summaryrefslogtreecommitdiff
path: root/titan
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-03-26 19:02:08 +0200
committerHarald Welte <laforge@gnumonks.org>2018-03-26 19:02:08 +0200
commit670659c28c298a6383838bdb5c94da36312c26f3 (patch)
tree5cbe04e7c033d857a7bdbb095c97bd558afad2af /titan
parent75e95789179b2efac88fd0f8d6555722695e3f94 (diff)
add TITAN support for MNCC/PCU interface decoding
Diffstat (limited to 'titan')
-rw-r--r--titan/General_Types.cc14382
-rw-r--r--titan/General_Types.hh2464
-rw-r--r--titan/MNCC_EncDec.cc321
-rw-r--r--titan/MNCC_Types.cc33991
-rw-r--r--titan/MNCC_Types.hh4049
-rw-r--r--titan/Makefile19
-rw-r--r--titan/Osmocom_Types.cc2348
-rw-r--r--titan/Osmocom_Types.hh389
-rw-r--r--titan/PCUIF_Types.cc31065
-rw-r--r--titan/PCUIF_Types.hh3579
-rw-r--r--titan/hello.cc44
-rw-r--r--titan/mncc.h304
12 files changed, 92955 insertions, 0 deletions
diff --git a/titan/General_Types.cc b/titan/General_Types.cc
new file mode 100644
index 0000000..cd2d70c
--- /dev/null
+++ b/titan/General_Types.cc
@@ -0,0 +1,14382 @@
+// This C++ source file was generated by the TTCN-3 compiler
+// of the TTCN-3 Test Executor version CRL 113 200/6 R3B
+// for Harald Welte (laforge@nataraja) on Mon Mar 26 16:56:01 2018
+
+// Copyright (c) 2000-2017 Ericsson Telecom AB
+
+// Do not edit this file unless you know what you are doing.
+
+/* Including header files */
+
+#include "General_Types.hh"
+
+namespace General__Types {
+
+/* Prototypes of static functions */
+
+static boolean init_comp_type(const char *component_type, boolean init_base_comps);
+
+/* Literal string constants */
+
+static const unsigned char module_checksum[] = { 0xe4, 0xf9, 0x7d, 0x9e, 0x63, 0x8b, 0x6b, 0x3c, 0xee, 0x34, 0x63, 0x47, 0x30, 0x5f, 0x6b, 0x1b };
+
+/* Global variable definitions */
+
+const TTCN_RAWdescriptor_t BIT1n_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};
+const XERdescriptor_t BIT1n_xer_ = { {"BIT1n>\n", "BIT1n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT1n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT1n_descr_ = { "@General_Types.BIT1n", &BITSTRING_ber_, &BIT1n_raw_, NULL, &BIT1n_xer_, &BIT1n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT1n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT2n_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};
+const XERdescriptor_t BIT2n_xer_ = { {"BIT2n>\n", "BIT2n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT2n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT2n_descr_ = { "@General_Types.BIT2n", &BITSTRING_ber_, &BIT2n_raw_, NULL, &BIT2n_xer_, &BIT2n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT2n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT3n_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};
+const XERdescriptor_t BIT3n_xer_ = { {"BIT3n>\n", "BIT3n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT3n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT3n_descr_ = { "@General_Types.BIT3n", &BITSTRING_ber_, &BIT3n_raw_, NULL, &BIT3n_xer_, &BIT3n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT3n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT4n_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};
+const XERdescriptor_t BIT4n_xer_ = { {"BIT4n>\n", "BIT4n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT4n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT4n_descr_ = { "@General_Types.BIT4n", &BITSTRING_ber_, &BIT4n_raw_, NULL, &BIT4n_xer_, &BIT4n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT4n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT5n_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};
+const XERdescriptor_t BIT5n_xer_ = { {"BIT5n>\n", "BIT5n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT5n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT5n_descr_ = { "@General_Types.BIT5n", &BITSTRING_ber_, &BIT5n_raw_, NULL, &BIT5n_xer_, &BIT5n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT5n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT6n_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};
+const XERdescriptor_t BIT6n_xer_ = { {"BIT6n>\n", "BIT6n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT6n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT6n_descr_ = { "@General_Types.BIT6n", &BITSTRING_ber_, &BIT6n_raw_, NULL, &BIT6n_xer_, &BIT6n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT6n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT7n_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};
+const XERdescriptor_t BIT7n_xer_ = { {"BIT7n>\n", "BIT7n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT7n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT7n_descr_ = { "@General_Types.BIT7n", &BITSTRING_ber_, &BIT7n_raw_, NULL, &BIT7n_xer_, &BIT7n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT7n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT8n_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};
+const XERdescriptor_t BIT8n_xer_ = { {"BIT8n>\n", "BIT8n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT8n_descr_ = { "@General_Types.BIT8n", &BITSTRING_ber_, &BIT8n_raw_, NULL, &BIT8n_xer_, &BIT8n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT8n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT9n_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};
+const XERdescriptor_t BIT9n_xer_ = { {"BIT9n>\n", "BIT9n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT9n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT9n_descr_ = { "@General_Types.BIT9n", &BITSTRING_ber_, &BIT9n_raw_, NULL, &BIT9n_xer_, &BIT9n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT9n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT12n_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};
+const XERdescriptor_t BIT12n_xer_ = { {"BIT12n>\n", "BIT12n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT12n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT12n_descr_ = { "@General_Types.BIT12n", &BITSTRING_ber_, &BIT12n_raw_, NULL, &BIT12n_xer_, &BIT12n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT12n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT14n_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};
+const XERdescriptor_t BIT14n_xer_ = { {"BIT14n>\n", "BIT14n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT14n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT14n_descr_ = { "@General_Types.BIT14n", &BITSTRING_ber_, &BIT14n_raw_, NULL, &BIT14n_xer_, &BIT14n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT14n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT15n_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};
+const XERdescriptor_t BIT15n_xer_ = { {"BIT15n>\n", "BIT15n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT15n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT15n_descr_ = { "@General_Types.BIT15n", &BITSTRING_ber_, &BIT15n_raw_, NULL, &BIT15n_xer_, &BIT15n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT15n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT16n_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};
+const XERdescriptor_t BIT16n_xer_ = { {"BIT16n>\n", "BIT16n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT16n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT16n_descr_ = { "@General_Types.BIT16n", &BITSTRING_ber_, &BIT16n_raw_, NULL, &BIT16n_xer_, &BIT16n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT16n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT56n_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};
+const XERdescriptor_t BIT56n_xer_ = { {"BIT56n>\n", "BIT56n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT56n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT56n_descr_ = { "@General_Types.BIT56n", &BITSTRING_ber_, &BIT56n_raw_, NULL, &BIT56n_xer_, &BIT56n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT56n_default_coding("RAW");
+const XERdescriptor_t BIT14__24n_xer_ = { {"BIT14_24n>\n", "BIT14_24n>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT14__24n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT14__24n_descr_ = { "@General_Types.BIT14_24n", &BITSTRING_ber_, &BITSTRING_raw_, NULL, &BIT14__24n_xer_, &BIT14__24n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT14__24n_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT1np_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};
+const XERdescriptor_t BIT1np_xer_ = { {"BIT1np>\n", "BIT1np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT1np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT1np_descr_ = { "@General_Types.BIT1np", &BITSTRING_ber_, &BIT1np_raw_, NULL, &BIT1np_xer_, &BIT1np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT1np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT2np_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};
+const XERdescriptor_t BIT2np_xer_ = { {"BIT2np>\n", "BIT2np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT2np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT2np_descr_ = { "@General_Types.BIT2np", &BITSTRING_ber_, &BIT2np_raw_, NULL, &BIT2np_xer_, &BIT2np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT2np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT3np_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};
+const XERdescriptor_t BIT3np_xer_ = { {"BIT3np>\n", "BIT3np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT3np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT3np_descr_ = { "@General_Types.BIT3np", &BITSTRING_ber_, &BIT3np_raw_, NULL, &BIT3np_xer_, &BIT3np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT3np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT4np_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};
+const XERdescriptor_t BIT4np_xer_ = { {"BIT4np>\n", "BIT4np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT4np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT4np_descr_ = { "@General_Types.BIT4np", &BITSTRING_ber_, &BIT4np_raw_, NULL, &BIT4np_xer_, &BIT4np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT4np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT5np_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};
+const XERdescriptor_t BIT5np_xer_ = { {"BIT5np>\n", "BIT5np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT5np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT5np_descr_ = { "@General_Types.BIT5np", &BITSTRING_ber_, &BIT5np_raw_, NULL, &BIT5np_xer_, &BIT5np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT5np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT6np_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};
+const XERdescriptor_t BIT6np_xer_ = { {"BIT6np>\n", "BIT6np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT6np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT6np_descr_ = { "@General_Types.BIT6np", &BITSTRING_ber_, &BIT6np_raw_, NULL, &BIT6np_xer_, &BIT6np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT6np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT7np_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};
+const XERdescriptor_t BIT7np_xer_ = { {"BIT7np>\n", "BIT7np>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT7np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT7np_descr_ = { "@General_Types.BIT7np", &BITSTRING_ber_, &BIT7np_raw_, NULL, &BIT7np_xer_, &BIT7np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT7np_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT15np_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};
+const XERdescriptor_t BIT15np_xer_ = { {"BIT15np>\n", "BIT15np>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT15np_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT15np_descr_ = { "@General_Types.BIT15np", &BITSTRING_ber_, &BIT15np_raw_, NULL, &BIT15np_xer_, &BIT15np_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT15np_default_coding("RAW");
+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};
+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_JSONdescriptor_t BIT1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT1_descr_ = { "@General_Types.BIT1", &BITSTRING_ber_, &BIT1_raw_, NULL, &BIT1_xer_, &BIT1_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT1_default_coding("RAW");
+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,2,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_OERdescriptor_t BIT2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
+const TTCN_Typedescriptor_t BIT2_descr_ = { "@General_Types.BIT2", &BITSTRING_ber_, &BIT2_raw_, NULL, &BIT2_xer_, &BIT2_json_, &BIT2_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT2_default_coding("RAW");
+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,3,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT3_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_OERdescriptor_t BIT3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
+const TTCN_Typedescriptor_t BIT3_descr_ = { "@General_Types.BIT3", &BITSTRING_ber_, &BIT3_raw_, NULL, &BIT3_xer_, &BIT3_json_, &BIT3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT3_default_coding("RAW");
+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,4,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT4_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_OERdescriptor_t BIT4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, NULL, 0, NULL };
+const TTCN_Typedescriptor_t BIT4_descr_ = { "@General_Types.BIT4", &BITSTRING_ber_, &BIT4_raw_, NULL, &BIT4_xer_, &BIT4_json_, &BIT4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT4_default_coding("RAW");
+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,5,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT5_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT5_descr_ = { "@General_Types.BIT5", &BITSTRING_ber_, &BIT5_raw_, NULL, &BIT5_xer_, &BIT5_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT5_default_coding("RAW");
+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,6,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT6_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT6_descr_ = { "@General_Types.BIT6", &BITSTRING_ber_, &BIT6_raw_, NULL, &BIT6_xer_, &BIT6_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT6_default_coding("RAW");
+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,7,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT7_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT7_descr_ = { "@General_Types.BIT7", &BITSTRING_ber_, &BIT7_raw_, NULL, &BIT7_xer_, &BIT7_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT7_default_coding("RAW");
+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,8,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT8_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT8_descr_ = { "@General_Types.BIT8", &BITSTRING_ber_, &BIT8_raw_, NULL, &BIT8_xer_, &BIT8_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT8_default_coding("RAW");
+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,9,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT9_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT9_descr_ = { "@General_Types.BIT9", &BITSTRING_ber_, &BIT9_raw_, NULL, &BIT9_xer_, &BIT9_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT9_default_coding("RAW");
+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,10,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT10_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT10_descr_ = { "@General_Types.BIT10", &BITSTRING_ber_, &BIT10_raw_, NULL, &BIT10_xer_, &BIT10_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT10_default_coding("RAW");
+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,11,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT11_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT11_descr_ = { "@General_Types.BIT11", &BITSTRING_ber_, &BIT11_raw_, NULL, &BIT11_xer_, &BIT11_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT11_default_coding("RAW");
+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,12,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT12_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT12_descr_ = { "@General_Types.BIT12", &BITSTRING_ber_, &BIT12_raw_, NULL, &BIT12_xer_, &BIT12_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT12_default_coding("RAW");
+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,14,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT14_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT14_descr_ = { "@General_Types.BIT14", &BITSTRING_ber_, &BIT14_raw_, NULL, &BIT14_xer_, &BIT14_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT14_default_coding("RAW");
+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,15,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT15_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT15_descr_ = { "@General_Types.BIT15", &BITSTRING_ber_, &BIT15_raw_, NULL, &BIT15_xer_, &BIT15_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT15_default_coding("RAW");
+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,16,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT16_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT16_descr_ = { "@General_Types.BIT16", &BITSTRING_ber_, &BIT16_raw_, NULL, &BIT16_xer_, &BIT16_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT16_default_coding("RAW");
+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,24,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT24_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT24_descr_ = { "@General_Types.BIT24", &BITSTRING_ber_, &BIT24_raw_, NULL, &BIT24_xer_, &BIT24_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT24_default_coding("RAW");
+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,31,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT31_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT31_descr_ = { "@General_Types.BIT31", &BITSTRING_ber_, &BIT31_raw_, NULL, &BIT31_xer_, &BIT31_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT31_default_coding("RAW");
+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,32,CharCoding::UNKNOWN};
+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_JSONdescriptor_t BIT32_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT32_descr_ = { "@General_Types.BIT32", &BITSTRING_ber_, &BIT32_raw_, NULL, &BIT32_xer_, &BIT32_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT32_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT56_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,56,CharCoding::UNKNOWN};
+const XERdescriptor_t BIT56_xer_ = { {"BIT56>\n", "BIT56>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT56_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT56_descr_ = { "@General_Types.BIT56", &BITSTRING_ber_, &BIT56_raw_, NULL, &BIT56_xer_, &BIT56_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT56_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT0n_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};
+const XERdescriptor_t OCT0n_xer_ = { {"OCT0n>\n", "OCT0n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT0n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT0n_oer_ext_arr_[0] = {};
+const int OCT0n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT0n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT0n_oer_ext_arr_, 0, OCT0n_oer_p_};
+const TTCN_Typedescriptor_t OCT0n_descr_ = { "@General_Types.OCT0n", &OCTETSTRING_ber_, &OCT0n_raw_, &OCTETSTRING_text_, &OCT0n_xer_, &OCT0n_json_, &OCT0n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT0n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT1n_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};
+const XERdescriptor_t OCT1n_xer_ = { {"OCT1n>\n", "OCT1n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1n_oer_ext_arr_[0] = {};
+const int OCT1n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1n_oer_ext_arr_, 0, OCT1n_oer_p_};
+const TTCN_Typedescriptor_t OCT1n_descr_ = { "@General_Types.OCT1n", &OCTETSTRING_ber_, &OCT1n_raw_, &OCTETSTRING_text_, &OCT1n_xer_, &OCT1n_json_, &OCT1n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT2n_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};
+const XERdescriptor_t OCT2n_xer_ = { {"OCT2n>\n", "OCT2n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT2n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT2n_oer_ext_arr_[0] = {};
+const int OCT2n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT2n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT2n_oer_ext_arr_, 0, OCT2n_oer_p_};
+const TTCN_Typedescriptor_t OCT2n_descr_ = { "@General_Types.OCT2n", &OCTETSTRING_ber_, &OCT2n_raw_, &OCTETSTRING_text_, &OCT2n_xer_, &OCT2n_json_, &OCT2n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT2n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT3n_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};
+const XERdescriptor_t OCT3n_xer_ = { {"OCT3n>\n", "OCT3n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3n_oer_ext_arr_[0] = {};
+const int OCT3n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3n_oer_ext_arr_, 0, OCT3n_oer_p_};
+const TTCN_Typedescriptor_t OCT3n_descr_ = { "@General_Types.OCT3n", &OCTETSTRING_ber_, &OCT3n_raw_, &OCTETSTRING_text_, &OCT3n_xer_, &OCT3n_json_, &OCT3n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT4n_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};
+const XERdescriptor_t OCT4n_xer_ = { {"OCT4n>\n", "OCT4n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT4n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT4n_oer_ext_arr_[0] = {};
+const int OCT4n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT4n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT4n_oer_ext_arr_, 0, OCT4n_oer_p_};
+const TTCN_Typedescriptor_t OCT4n_descr_ = { "@General_Types.OCT4n", &OCTETSTRING_ber_, &OCT4n_raw_, &OCTETSTRING_text_, &OCT4n_xer_, &OCT4n_json_, &OCT4n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT4n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT5n_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};
+const XERdescriptor_t OCT5n_xer_ = { {"OCT5n>\n", "OCT5n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT5n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT5n_oer_ext_arr_[0] = {};
+const int OCT5n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT5n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT5n_oer_ext_arr_, 0, OCT5n_oer_p_};
+const TTCN_Typedescriptor_t OCT5n_descr_ = { "@General_Types.OCT5n", &OCTETSTRING_ber_, &OCT5n_raw_, &OCTETSTRING_text_, &OCT5n_xer_, &OCT5n_json_, &OCT5n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT5n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT6n_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};
+const XERdescriptor_t OCT6n_xer_ = { {"OCT6n>\n", "OCT6n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT6n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT6n_oer_ext_arr_[0] = {};
+const int OCT6n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT6n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT6n_oer_ext_arr_, 0, OCT6n_oer_p_};
+const TTCN_Typedescriptor_t OCT6n_descr_ = { "@General_Types.OCT6n", &OCTETSTRING_ber_, &OCT6n_raw_, &OCTETSTRING_text_, &OCT6n_xer_, &OCT6n_json_, &OCT6n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT6n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT7n_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};
+const XERdescriptor_t OCT7n_xer_ = { {"OCT7n>\n", "OCT7n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT7n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT7n_oer_ext_arr_[0] = {};
+const int OCT7n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT7n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT7n_oer_ext_arr_, 0, OCT7n_oer_p_};
+const TTCN_Typedescriptor_t OCT7n_descr_ = { "@General_Types.OCT7n", &OCTETSTRING_ber_, &OCT7n_raw_, &OCTETSTRING_text_, &OCT7n_xer_, &OCT7n_json_, &OCT7n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT7n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT8n_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};
+const XERdescriptor_t OCT8n_xer_ = { {"OCT8n>\n", "OCT8n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT8n_oer_ext_arr_[0] = {};
+const int OCT8n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT8n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT8n_oer_ext_arr_, 0, OCT8n_oer_p_};
+const TTCN_Typedescriptor_t OCT8n_descr_ = { "@General_Types.OCT8n", &OCTETSTRING_ber_, &OCT8n_raw_, &OCTETSTRING_text_, &OCT8n_xer_, &OCT8n_json_, &OCT8n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT8n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT9n_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};
+const XERdescriptor_t OCT9n_xer_ = { {"OCT9n>\n", "OCT9n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT9n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT9n_oer_ext_arr_[0] = {};
+const int OCT9n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT9n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT9n_oer_ext_arr_, 0, OCT9n_oer_p_};
+const TTCN_Typedescriptor_t OCT9n_descr_ = { "@General_Types.OCT9n", &OCTETSTRING_ber_, &OCT9n_raw_, &OCTETSTRING_text_, &OCT9n_xer_, &OCT9n_json_, &OCT9n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT9n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT10n_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};
+const XERdescriptor_t OCT10n_xer_ = { {"OCT10n>\n", "OCT10n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT10n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT10n_oer_ext_arr_[0] = {};
+const int OCT10n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT10n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT10n_oer_ext_arr_, 0, OCT10n_oer_p_};
+const TTCN_Typedescriptor_t OCT10n_descr_ = { "@General_Types.OCT10n", &OCTETSTRING_ber_, &OCT10n_raw_, &OCTETSTRING_text_, &OCT10n_xer_, &OCT10n_json_, &OCT10n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT10n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT11n_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};
+const XERdescriptor_t OCT11n_xer_ = { {"OCT11n>\n", "OCT11n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT11n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT11n_oer_ext_arr_[0] = {};
+const int OCT11n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT11n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT11n_oer_ext_arr_, 0, OCT11n_oer_p_};
+const TTCN_Typedescriptor_t OCT11n_descr_ = { "@General_Types.OCT11n", &OCTETSTRING_ber_, &OCT11n_raw_, &OCTETSTRING_text_, &OCT11n_xer_, &OCT11n_json_, &OCT11n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT11n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT12n_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};
+const XERdescriptor_t OCT12n_xer_ = { {"OCT12n>\n", "OCT12n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT12n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT12n_oer_ext_arr_[0] = {};
+const int OCT12n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT12n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT12n_oer_ext_arr_, 0, OCT12n_oer_p_};
+const TTCN_Typedescriptor_t OCT12n_descr_ = { "@General_Types.OCT12n", &OCTETSTRING_ber_, &OCT12n_raw_, &OCTETSTRING_text_, &OCT12n_xer_, &OCT12n_json_, &OCT12n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT12n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT13n_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};
+const XERdescriptor_t OCT13n_xer_ = { {"OCT13n>\n", "OCT13n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT13n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT13n_oer_ext_arr_[0] = {};
+const int OCT13n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT13n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT13n_oer_ext_arr_, 0, OCT13n_oer_p_};
+const TTCN_Typedescriptor_t OCT13n_descr_ = { "@General_Types.OCT13n", &OCTETSTRING_ber_, &OCT13n_raw_, &OCTETSTRING_text_, &OCT13n_xer_, &OCT13n_json_, &OCT13n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT13n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT14n_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};
+const XERdescriptor_t OCT14n_xer_ = { {"OCT14n>\n", "OCT14n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT14n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT14n_oer_ext_arr_[0] = {};
+const int OCT14n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT14n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT14n_oer_ext_arr_, 0, OCT14n_oer_p_};
+const TTCN_Typedescriptor_t OCT14n_descr_ = { "@General_Types.OCT14n", &OCTETSTRING_ber_, &OCT14n_raw_, &OCTETSTRING_text_, &OCT14n_xer_, &OCT14n_json_, &OCT14n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT14n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT15n_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};
+const XERdescriptor_t OCT15n_xer_ = { {"OCT15n>\n", "OCT15n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT15n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT15n_oer_ext_arr_[0] = {};
+const int OCT15n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT15n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT15n_oer_ext_arr_, 0, OCT15n_oer_p_};
+const TTCN_Typedescriptor_t OCT15n_descr_ = { "@General_Types.OCT15n", &OCTETSTRING_ber_, &OCT15n_raw_, &OCTETSTRING_text_, &OCT15n_xer_, &OCT15n_json_, &OCT15n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT15n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT16n_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};
+const XERdescriptor_t OCT16n_xer_ = { {"OCT16n>\n", "OCT16n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT16n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT16n_oer_ext_arr_[0] = {};
+const int OCT16n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT16n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT16n_oer_ext_arr_, 0, OCT16n_oer_p_};
+const TTCN_Typedescriptor_t OCT16n_descr_ = { "@General_Types.OCT16n", &OCTETSTRING_ber_, &OCT16n_raw_, &OCTETSTRING_text_, &OCT16n_xer_, &OCT16n_json_, &OCT16n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT16n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT17n_raw_ = {136,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};
+const XERdescriptor_t OCT17n_xer_ = { {"OCT17n>\n", "OCT17n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT17n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT17n_oer_ext_arr_[0] = {};
+const int OCT17n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT17n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT17n_oer_ext_arr_, 0, OCT17n_oer_p_};
+const TTCN_Typedescriptor_t OCT17n_descr_ = { "@General_Types.OCT17n", &OCTETSTRING_ber_, &OCT17n_raw_, &OCTETSTRING_text_, &OCT17n_xer_, &OCT17n_json_, &OCT17n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT17n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT18n_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};
+const XERdescriptor_t OCT18n_xer_ = { {"OCT18n>\n", "OCT18n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT18n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT18n_oer_ext_arr_[0] = {};
+const int OCT18n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT18n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT18n_oer_ext_arr_, 0, OCT18n_oer_p_};
+const TTCN_Typedescriptor_t OCT18n_descr_ = { "@General_Types.OCT18n", &OCTETSTRING_ber_, &OCT18n_raw_, &OCTETSTRING_text_, &OCT18n_xer_, &OCT18n_json_, &OCT18n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT18n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT19n_raw_ = {152,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};
+const XERdescriptor_t OCT19n_xer_ = { {"OCT19n>\n", "OCT19n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT19n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT19n_oer_ext_arr_[0] = {};
+const int OCT19n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT19n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT19n_oer_ext_arr_, 0, OCT19n_oer_p_};
+const TTCN_Typedescriptor_t OCT19n_descr_ = { "@General_Types.OCT19n", &OCTETSTRING_ber_, &OCT19n_raw_, &OCTETSTRING_text_, &OCT19n_xer_, &OCT19n_json_, &OCT19n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT19n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT20n_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};
+const XERdescriptor_t OCT20n_xer_ = { {"OCT20n>\n", "OCT20n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT20n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT20n_oer_ext_arr_[0] = {};
+const int OCT20n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT20n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT20n_oer_ext_arr_, 0, OCT20n_oer_p_};
+const TTCN_Typedescriptor_t OCT20n_descr_ = { "@General_Types.OCT20n", &OCTETSTRING_ber_, &OCT20n_raw_, &OCTETSTRING_text_, &OCT20n_xer_, &OCT20n_json_, &OCT20n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT20n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT28n_raw_ = {224,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};
+const XERdescriptor_t OCT28n_xer_ = { {"OCT28n>\n", "OCT28n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT28n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT28n_oer_ext_arr_[0] = {};
+const int OCT28n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT28n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT28n_oer_ext_arr_, 0, OCT28n_oer_p_};
+const TTCN_Typedescriptor_t OCT28n_descr_ = { "@General_Types.OCT28n", &OCTETSTRING_ber_, &OCT28n_raw_, &OCTETSTRING_text_, &OCT28n_xer_, &OCT28n_json_, &OCT28n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT28n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT32n_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};
+const XERdescriptor_t OCT32n_xer_ = { {"OCT32n>\n", "OCT32n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT32n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT32n_oer_ext_arr_[0] = {};
+const int OCT32n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT32n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT32n_oer_ext_arr_, 0, OCT32n_oer_p_};
+const TTCN_Typedescriptor_t OCT32n_descr_ = { "@General_Types.OCT32n", &OCTETSTRING_ber_, &OCT32n_raw_, &OCTETSTRING_text_, &OCT32n_xer_, &OCT32n_json_, &OCT32n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT32n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT34n_raw_ = {272,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};
+const XERdescriptor_t OCT34n_xer_ = { {"OCT34n>\n", "OCT34n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT34n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT34n_oer_ext_arr_[0] = {};
+const int OCT34n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT34n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT34n_oer_ext_arr_, 0, OCT34n_oer_p_};
+const TTCN_Typedescriptor_t OCT34n_descr_ = { "@General_Types.OCT34n", &OCTETSTRING_ber_, &OCT34n_raw_, &OCTETSTRING_text_, &OCT34n_xer_, &OCT34n_json_, &OCT34n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT34n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT46n_raw_ = {368,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};
+const XERdescriptor_t OCT46n_xer_ = { {"OCT46n>\n", "OCT46n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT46n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT46n_oer_ext_arr_[0] = {};
+const int OCT46n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT46n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT46n_oer_ext_arr_, 0, OCT46n_oer_p_};
+const TTCN_Typedescriptor_t OCT46n_descr_ = { "@General_Types.OCT46n", &OCTETSTRING_ber_, &OCT46n_raw_, &OCTETSTRING_text_, &OCT46n_xer_, &OCT46n_json_, &OCT46n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT46n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT50n_raw_ = {400,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};
+const XERdescriptor_t OCT50n_xer_ = { {"OCT50n>\n", "OCT50n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT50n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT50n_oer_ext_arr_[0] = {};
+const int OCT50n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT50n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT50n_oer_ext_arr_, 0, OCT50n_oer_p_};
+const TTCN_Typedescriptor_t OCT50n_descr_ = { "@General_Types.OCT50n", &OCTETSTRING_ber_, &OCT50n_raw_, &OCTETSTRING_text_, &OCT50n_xer_, &OCT50n_json_, &OCT50n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT50n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT69n_raw_ = {552,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};
+const XERdescriptor_t OCT69n_xer_ = { {"OCT69n>\n", "OCT69n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT69n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT69n_oer_ext_arr_[0] = {};
+const int OCT69n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT69n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT69n_oer_ext_arr_, 0, OCT69n_oer_p_};
+const TTCN_Typedescriptor_t OCT69n_descr_ = { "@General_Types.OCT69n", &OCTETSTRING_ber_, &OCT69n_raw_, &OCTETSTRING_text_, &OCT69n_xer_, &OCT69n_json_, &OCT69n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT69n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT100n_raw_ = {800,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};
+const XERdescriptor_t OCT100n_xer_ = { {"OCT100n>\n", "OCT100n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT100n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT100n_oer_ext_arr_[0] = {};
+const int OCT100n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT100n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT100n_oer_ext_arr_, 0, OCT100n_oer_p_};
+const TTCN_Typedescriptor_t OCT100n_descr_ = { "@General_Types.OCT100n", &OCTETSTRING_ber_, &OCT100n_raw_, &OCTETSTRING_text_, &OCT100n_xer_, &OCT100n_json_, &OCT100n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT100n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT128n_raw_ = {1024,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};
+const XERdescriptor_t OCT128n_xer_ = { {"OCT128n>\n", "OCT128n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT128n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT128n_oer_ext_arr_[0] = {};
+const int OCT128n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT128n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT128n_oer_ext_arr_, 0, OCT128n_oer_p_};
+const TTCN_Typedescriptor_t OCT128n_descr_ = { "@General_Types.OCT128n", &OCTETSTRING_ber_, &OCT128n_raw_, &OCTETSTRING_text_, &OCT128n_xer_, &OCT128n_json_, &OCT128n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT128n_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT500n_raw_ = {4000,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};
+const XERdescriptor_t OCT500n_xer_ = { {"OCT500n>\n", "OCT500n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT500n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT500n_oer_ext_arr_[0] = {};
+const int OCT500n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT500n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT500n_oer_ext_arr_, 0, OCT500n_oer_p_};
+const TTCN_Typedescriptor_t OCT500n_descr_ = { "@General_Types.OCT500n", &OCTETSTRING_ber_, &OCT500n_raw_, &OCTETSTRING_text_, &OCT500n_xer_, &OCT500n_json_, &OCT500n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT500n_default_coding("RAW");
+const XERdescriptor_t OCTNn_xer_ = { {"OCTNn>\n", "OCTNn>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCTNn_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCTNn_oer_ext_arr_[0] = {};
+const int OCTNn_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCTNn_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCTNn_oer_ext_arr_, 0, OCTNn_oer_p_};
+const TTCN_Typedescriptor_t OCTNn_descr_ = { "@General_Types.OCTNn", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCTNn_xer_, &OCTNn_json_, &OCTNn_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCTNn_default_coding("RAW");
+const XERdescriptor_t OCT1__3n_xer_ = { {"OCT1_3n>\n", "OCT1_3n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__3n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__3n_oer_ext_arr_[0] = {};
+const int OCT1__3n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__3n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__3n_oer_ext_arr_, 0, OCT1__3n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__3n_descr_ = { "@General_Types.OCT1_3n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__3n_xer_, &OCT1__3n_json_, &OCT1__3n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__3n_default_coding("RAW");
+const XERdescriptor_t OCT1__4n_xer_ = { {"OCT1_4n>\n", "OCT1_4n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__4n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__4n_oer_ext_arr_[0] = {};
+const int OCT1__4n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__4n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__4n_oer_ext_arr_, 0, OCT1__4n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__4n_descr_ = { "@General_Types.OCT1_4n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__4n_xer_, &OCT1__4n_json_, &OCT1__4n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__4n_default_coding("RAW");
+const XERdescriptor_t OCT1__5n_xer_ = { {"OCT1_5n>\n", "OCT1_5n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__5n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__5n_oer_ext_arr_[0] = {};
+const int OCT1__5n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__5n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__5n_oer_ext_arr_, 0, OCT1__5n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__5n_descr_ = { "@General_Types.OCT1_5n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__5n_xer_, &OCT1__5n_json_, &OCT1__5n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__5n_default_coding("RAW");
+const XERdescriptor_t OCT1__6n_xer_ = { {"OCT1_6n>\n", "OCT1_6n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__6n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__6n_oer_ext_arr_[0] = {};
+const int OCT1__6n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__6n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__6n_oer_ext_arr_, 0, OCT1__6n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__6n_descr_ = { "@General_Types.OCT1_6n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__6n_xer_, &OCT1__6n_json_, &OCT1__6n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__6n_default_coding("RAW");
+const XERdescriptor_t OCT1__7n_xer_ = { {"OCT1_7n>\n", "OCT1_7n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__7n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__7n_oer_ext_arr_[0] = {};
+const int OCT1__7n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__7n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__7n_oer_ext_arr_, 0, OCT1__7n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__7n_descr_ = { "@General_Types.OCT1_7n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__7n_xer_, &OCT1__7n_json_, &OCT1__7n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__7n_default_coding("RAW");
+const XERdescriptor_t OCT1__8n_xer_ = { {"OCT1_8n>\n", "OCT1_8n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__8n_oer_ext_arr_[0] = {};
+const int OCT1__8n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__8n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__8n_oer_ext_arr_, 0, OCT1__8n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__8n_descr_ = { "@General_Types.OCT1_8n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__8n_xer_, &OCT1__8n_json_, &OCT1__8n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__8n_default_coding("RAW");
+const XERdescriptor_t OCT1__12n_xer_ = { {"OCT1_12n>\n", "OCT1_12n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__12n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__12n_oer_ext_arr_[0] = {};
+const int OCT1__12n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__12n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__12n_oer_ext_arr_, 0, OCT1__12n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__12n_descr_ = { "@General_Types.OCT1_12n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__12n_xer_, &OCT1__12n_json_, &OCT1__12n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__12n_default_coding("RAW");
+const XERdescriptor_t OCT1__15n_xer_ = { {"OCT1_15n>\n", "OCT1_15n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__15n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__15n_oer_ext_arr_[0] = {};
+const int OCT1__15n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__15n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__15n_oer_ext_arr_, 0, OCT1__15n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__15n_descr_ = { "@General_Types.OCT1_15n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__15n_xer_, &OCT1__15n_json_, &OCT1__15n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__15n_default_coding("RAW");
+const XERdescriptor_t OCT1__16n_xer_ = { {"OCT1_16n>\n", "OCT1_16n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__16n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__16n_oer_ext_arr_[0] = {};
+const int OCT1__16n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__16n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__16n_oer_ext_arr_, 0, OCT1__16n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__16n_descr_ = { "@General_Types.OCT1_16n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__16n_xer_, &OCT1__16n_json_, &OCT1__16n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__16n_default_coding("RAW");
+const XERdescriptor_t OCT1__18n_xer_ = { {"OCT1_18n>\n", "OCT1_18n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__18n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__18n_oer_ext_arr_[0] = {};
+const int OCT1__18n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__18n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__18n_oer_ext_arr_, 0, OCT1__18n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__18n_descr_ = { "@General_Types.OCT1_18n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__18n_xer_, &OCT1__18n_json_, &OCT1__18n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__18n_default_coding("RAW");
+const XERdescriptor_t OCT1__20n_xer_ = { {"OCT1_20n>\n", "OCT1_20n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__20n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__20n_oer_ext_arr_[0] = {};
+const int OCT1__20n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__20n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__20n_oer_ext_arr_, 0, OCT1__20n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__20n_descr_ = { "@General_Types.OCT1_20n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__20n_xer_, &OCT1__20n_json_, &OCT1__20n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__20n_default_coding("RAW");
+const XERdescriptor_t OCT1__24n_xer_ = { {"OCT1_24n>\n", "OCT1_24n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__24n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__24n_oer_ext_arr_[0] = {};
+const int OCT1__24n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__24n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__24n_oer_ext_arr_, 0, OCT1__24n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__24n_descr_ = { "@General_Types.OCT1_24n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__24n_xer_, &OCT1__24n_json_, &OCT1__24n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__24n_default_coding("RAW");
+const XERdescriptor_t OCT1__32n_xer_ = { {"OCT1_32n>\n", "OCT1_32n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__32n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__32n_oer_ext_arr_[0] = {};
+const int OCT1__32n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__32n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__32n_oer_ext_arr_, 0, OCT1__32n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__32n_descr_ = { "@General_Types.OCT1_32n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__32n_xer_, &OCT1__32n_json_, &OCT1__32n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__32n_default_coding("RAW");
+const XERdescriptor_t OCT1__34n_xer_ = { {"OCT1_34n>\n", "OCT1_34n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__34n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__34n_oer_ext_arr_[0] = {};
+const int OCT1__34n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__34n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__34n_oer_ext_arr_, 0, OCT1__34n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__34n_descr_ = { "@General_Types.OCT1_34n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__34n_xer_, &OCT1__34n_json_, &OCT1__34n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__34n_default_coding("RAW");
+const XERdescriptor_t OCT1__46n_xer_ = { {"OCT1_46n>\n", "OCT1_46n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__46n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__46n_oer_ext_arr_[0] = {};
+const int OCT1__46n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__46n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__46n_oer_ext_arr_, 0, OCT1__46n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__46n_descr_ = { "@General_Types.OCT1_46n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__46n_xer_, &OCT1__46n_json_, &OCT1__46n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__46n_default_coding("RAW");
+const XERdescriptor_t OCT1__50n_xer_ = { {"OCT1_50n>\n", "OCT1_50n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__50n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__50n_oer_ext_arr_[0] = {};
+const int OCT1__50n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__50n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__50n_oer_ext_arr_, 0, OCT1__50n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__50n_descr_ = { "@General_Types.OCT1_50n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__50n_xer_, &OCT1__50n_json_, &OCT1__50n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__50n_default_coding("RAW");
+const XERdescriptor_t OCT1__112n_xer_ = { {"OCT1_112n>\n", "OCT1_112n>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__112n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__112n_oer_ext_arr_[0] = {};
+const int OCT1__112n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__112n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__112n_oer_ext_arr_, 0, OCT1__112n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__112n_descr_ = { "@General_Types.OCT1_112n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__112n_xer_, &OCT1__112n_json_, &OCT1__112n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__112n_default_coding("RAW");
+const XERdescriptor_t OCT1__127n_xer_ = { {"OCT1_127n>\n", "OCT1_127n>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__127n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__127n_oer_ext_arr_[0] = {};
+const int OCT1__127n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__127n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__127n_oer_ext_arr_, 0, OCT1__127n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__127n_descr_ = { "@General_Types.OCT1_127n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__127n_xer_, &OCT1__127n_json_, &OCT1__127n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__127n_default_coding("RAW");
+const XERdescriptor_t OCT1__128n_xer_ = { {"OCT1_128n>\n", "OCT1_128n>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__128n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__128n_oer_ext_arr_[0] = {};
+const int OCT1__128n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__128n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__128n_oer_ext_arr_, 0, OCT1__128n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__128n_descr_ = { "@General_Types.OCT1_128n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__128n_xer_, &OCT1__128n_json_, &OCT1__128n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__128n_default_coding("RAW");
+const XERdescriptor_t OCT1__172n_xer_ = { {"OCT1_172n>\n", "OCT1_172n>\n"}, {11, 11}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__172n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__172n_oer_ext_arr_[0] = {};
+const int OCT1__172n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__172n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__172n_oer_ext_arr_, 0, OCT1__172n_oer_p_};
+const TTCN_Typedescriptor_t OCT1__172n_descr_ = { "@General_Types.OCT1_172n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__172n_xer_, &OCT1__172n_json_, &OCT1__172n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__172n_default_coding("RAW");
+const XERdescriptor_t OCT3__5n_xer_ = { {"OCT3_5n>\n", "OCT3_5n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__5n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__5n_oer_ext_arr_[0] = {};
+const int OCT3__5n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__5n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__5n_oer_ext_arr_, 0, OCT3__5n_oer_p_};
+const TTCN_Typedescriptor_t OCT3__5n_descr_ = { "@General_Types.OCT3_5n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__5n_xer_, &OCT3__5n_json_, &OCT3__5n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__5n_default_coding("RAW");
+const XERdescriptor_t OCT3__7n_xer_ = { {"OCT3_7n>\n", "OCT3_7n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__7n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__7n_oer_ext_arr_[0] = {};
+const int OCT3__7n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__7n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__7n_oer_ext_arr_, 0, OCT3__7n_oer_p_};
+const TTCN_Typedescriptor_t OCT3__7n_descr_ = { "@General_Types.OCT3_7n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__7n_xer_, &OCT3__7n_json_, &OCT3__7n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__7n_default_coding("RAW");
+const XERdescriptor_t OCT3__8n_xer_ = { {"OCT3_8n>\n", "OCT3_8n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__8n_oer_ext_arr_[0] = {};
+const int OCT3__8n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__8n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__8n_oer_ext_arr_, 0, OCT3__8n_oer_p_};
+const TTCN_Typedescriptor_t OCT3__8n_descr_ = { "@General_Types.OCT3_8n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__8n_xer_, &OCT3__8n_json_, &OCT3__8n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__8n_default_coding("RAW");
+const XERdescriptor_t OCT3__14n_xer_ = { {"OCT3_14n>\n", "OCT3_14n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__14n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__14n_oer_ext_arr_[0] = {};
+const int OCT3__14n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__14n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__14n_oer_ext_arr_, 0, OCT3__14n_oer_p_};
+const TTCN_Typedescriptor_t OCT3__14n_descr_ = { "@General_Types.OCT3_14n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__14n_xer_, &OCT3__14n_json_, &OCT3__14n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__14n_default_coding("RAW");
+const XERdescriptor_t OCT3__17n_xer_ = { {"OCT3_17n>\n", "OCT3_17n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__17n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__17n_oer_ext_arr_[0] = {};
+const int OCT3__17n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__17n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__17n_oer_ext_arr_, 0, OCT3__17n_oer_p_};
+const TTCN_Typedescriptor_t OCT3__17n_descr_ = { "@General_Types.OCT3_17n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__17n_xer_, &OCT3__17n_json_, &OCT3__17n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__17n_default_coding("RAW");
+const XERdescriptor_t OCT4__8n_xer_ = { {"OCT4_8n>\n", "OCT4_8n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT4__8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT4__8n_oer_ext_arr_[0] = {};
+const int OCT4__8n_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT4__8n_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT4__8n_oer_ext_arr_, 0, OCT4__8n_oer_p_};
+const TTCN_Typedescriptor_t OCT4__8n_descr_ = { "@General_Types.OCT4_8n", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT4__8n_xer_, &OCT4__8n_json_, &OCT4__8n_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT4__8n_default_coding("RAW");
+const TTCN_RAWdescriptor_t CHAR4_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};
+const XERdescriptor_t CHAR4_xer_ = { {"CHAR4>\n", "CHAR4>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t CHAR4_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t CHAR4_descr_ = { "@General_Types.CHAR4", NULL, &CHAR4_raw_, &CHARSTRING_text_, &CHAR4_xer_, &CHAR4_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING CHAR4_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX4n_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};
+const XERdescriptor_t HEX4n_xer_ = { {"HEX4n>\n", "HEX4n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX4n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX4n_descr_ = { "@General_Types.HEX4n", NULL, &HEX4n_raw_, NULL, &HEX4n_xer_, &HEX4n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX4n_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX6n_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};
+const XERdescriptor_t HEX6n_xer_ = { {"HEX6n>\n", "HEX6n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX6n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX6n_descr_ = { "@General_Types.HEX6n", NULL, &HEX6n_raw_, NULL, &HEX6n_xer_, &HEX6n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX6n_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX8n_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};
+const XERdescriptor_t HEX8n_xer_ = { {"HEX8n>\n", "HEX8n>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX8n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX8n_descr_ = { "@General_Types.HEX8n", NULL, &HEX8n_raw_, NULL, &HEX8n_xer_, &HEX8n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX8n_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX15n_raw_ = {60,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};
+const XERdescriptor_t HEX15n_xer_ = { {"HEX15n>\n", "HEX15n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX15n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX15n_descr_ = { "@General_Types.HEX15n", NULL, &HEX15n_raw_, NULL, &HEX15n_xer_, &HEX15n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX15n_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX16n_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};
+const XERdescriptor_t HEX16n_xer_ = { {"HEX16n>\n", "HEX16n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX16n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX16n_descr_ = { "@General_Types.HEX16n", NULL, &HEX16n_raw_, NULL, &HEX16n_xer_, &HEX16n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX16n_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX24n_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};
+const XERdescriptor_t HEX24n_xer_ = { {"HEX24n>\n", "HEX24n>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX24n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX24n_descr_ = { "@General_Types.HEX24n", NULL, &HEX24n_raw_, NULL, &HEX24n_xer_, &HEX24n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX24n_default_coding("RAW");
+const XERdescriptor_t HEX0__3n_xer_ = { {"HEX0_3n>\n", "HEX0_3n>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX0__3n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX0__3n_descr_ = { "@General_Types.HEX0_3n", NULL, &HEXSTRING_raw_, NULL, &HEX0__3n_xer_, &HEX0__3n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX0__3n_default_coding("RAW");
+const XERdescriptor_t HEX0__18n_xer_ = { {"HEX0_18n>\n", "HEX0_18n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX0__18n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX0__18n_descr_ = { "@General_Types.HEX0_18n", NULL, &HEXSTRING_raw_, NULL, &HEX0__18n_xer_, &HEX0__18n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX0__18n_default_coding("RAW");
+const XERdescriptor_t HEX1__20n_xer_ = { {"HEX1_20n>\n", "HEX1_20n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX1__20n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX1__20n_descr_ = { "@General_Types.HEX1_20n", NULL, &HEXSTRING_raw_, NULL, &HEX1__20n_xer_, &HEX1__20n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX1__20n_default_coding("RAW");
+const XERdescriptor_t HEX1__34n_xer_ = { {"HEX1_34n>\n", "HEX1_34n>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX1__34n_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX1__34n_descr_ = { "@General_Types.HEX1_34n", NULL, &HEXSTRING_raw_, NULL, &HEX1__34n_xer_, &HEX1__34n_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX1__34n_default_coding("RAW");
+const XERdescriptor_t INT3nb_xer_ = { {"INT3nb>\n", "INT3nb>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT3nb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT3nb_descr_ = { "@General_Types.INT3nb", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT3nb_xer_, &INT3nb_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT3nb_default_coding("RAW");
+const XERdescriptor_t INT4nb_xer_ = { {"INT4nb>\n", "INT4nb>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT4nb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT4nb_descr_ = { "@General_Types.INT4nb", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT4nb_xer_, &INT4nb_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT4nb_default_coding("RAW");
+const XERdescriptor_t INT5nb_xer_ = { {"INT5nb>\n", "INT5nb>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT5nb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT5nb_descr_ = { "@General_Types.INT5nb", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT5nb_xer_, &INT5nb_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT5nb_default_coding("RAW");
+const XERdescriptor_t INT8nb_xer_ = { {"INT8nb>\n", "INT8nb>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT8nb_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT8nb_descr_ = { "@General_Types.INT8nb", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT8nb_xer_, &INT8nb_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT8nb_default_coding("RAW");
+const XERdescriptor_t INT2nbp_xer_ = { {"INT2nbp>\n", "INT2nbp>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT2nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT2nbp_descr_ = { "@General_Types.INT2nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT2nbp_xer_, &INT2nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT2nbp_default_coding("RAW");
+const XERdescriptor_t INT1nbp_xer_ = { {"INT1nbp>\n", "INT1nbp>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT1nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT1nbp_descr_ = { "@General_Types.INT1nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT1nbp_xer_, &INT1nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT1nbp_default_coding("RAW");
+const XERdescriptor_t INT3nbp_xer_ = { {"INT3nbp>\n", "INT3nbp>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT3nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT3nbp_descr_ = { "@General_Types.INT3nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT3nbp_xer_, &INT3nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT3nbp_default_coding("RAW");
+const XERdescriptor_t INT5nbp_xer_ = { {"INT5nbp>\n", "INT5nbp>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT5nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT5nbp_descr_ = { "@General_Types.INT5nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT5nbp_xer_, &INT5nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT5nbp_default_coding("RAW");
+const XERdescriptor_t INT9nbp_xer_ = { {"INT9nbp>\n", "INT9nbp>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT9nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT9nbp_descr_ = { "@General_Types.INT9nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT9nbp_xer_, &INT9nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT9nbp_default_coding("RAW");
+const XERdescriptor_t INT13nbp_xer_ = { {"INT13nbp>\n", "INT13nbp>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT13nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT13nbp_descr_ = { "@General_Types.INT13nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT13nbp_xer_, &INT13nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT13nbp_default_coding("RAW");
+const XERdescriptor_t INT15nbp_xer_ = { {"INT15nbp>\n", "INT15nbp>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT15nbp_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT15nbp_descr_ = { "@General_Types.INT15nbp", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &INT15nbp_xer_, &INT15nbp_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT15nbp_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT6__BO__LAST_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};
+const XERdescriptor_t BIT6__BO__LAST_xer_ = { {"BIT6_BO_LAST>\n", "BIT6_BO_LAST>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT6__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT6__BO__LAST_descr_ = { "@General_Types.BIT6_BO_LAST", &BITSTRING_ber_, &BIT6__BO__LAST_raw_, NULL, &BIT6__BO__LAST_xer_, &BIT6__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT6__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT16__BO__LAST_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};
+const XERdescriptor_t BIT16__BO__LAST_xer_ = { {"BIT16_BO_LAST>\n", "BIT16_BO_LAST>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT16__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT16__BO__LAST_descr_ = { "@General_Types.BIT16_BO_LAST", &BITSTRING_ber_, &BIT16__BO__LAST_raw_, NULL, &BIT16__BO__LAST_xer_, &BIT16__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT16__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t BIT32__BO__LAST_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};
+const XERdescriptor_t BIT32__BO__LAST_xer_ = { {"BIT32_BO_LAST>\n", "BIT32_BO_LAST>\n"}, {15, 15}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t BIT32__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t BIT32__BO__LAST_descr_ = { "@General_Types.BIT32_BO_LAST", &BITSTRING_ber_, &BIT32__BO__LAST_raw_, NULL, &BIT32__BO__LAST_xer_, &BIT32__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING BIT32__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t Dummy_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};
+const XERdescriptor_t Dummy_xer_ = { {"Dummy>\n", "Dummy>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t Dummy_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int Dummy_oer_ext_arr_[0] = {};
+const int Dummy_oer_p_[0] = {};
+const TTCN_OERdescriptor_t Dummy_oer_ = { -1, FALSE, -1, FALSE, 0, 0, Dummy_oer_ext_arr_, 0, Dummy_oer_p_};
+const TTCN_Typedescriptor_t Dummy_descr_ = { "@General_Types.Dummy", &OCTETSTRING_ber_, &Dummy_raw_, &OCTETSTRING_text_, &Dummy_xer_, &Dummy_json_, &Dummy_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING Dummy_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT0_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};
+const XERdescriptor_t OCT0_xer_ = { {"OCT0>\n", "OCT0>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT0_oer_ext_arr_[0] = {};
+const int OCT0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT0_oer_ext_arr_, 0, OCT0_oer_p_};
+const TTCN_Typedescriptor_t OCT0_descr_ = { "@General_Types.OCT0", &OCTETSTRING_ber_, &OCT0_raw_, &OCTETSTRING_text_, &OCT0_xer_, &OCT0_json_, &OCT0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT0_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT1_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};
+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 TTCN_JSONdescriptor_t OCT1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1_oer_ext_arr_[0] = {};
+const int OCT1_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1_oer_ext_arr_, 0, OCT1_oer_p_};
+const TTCN_Typedescriptor_t OCT1_descr_ = { "@General_Types.OCT1", &OCTETSTRING_ber_, &OCT1_raw_, &OCTETSTRING_text_, &OCT1_xer_, &OCT1_json_, &OCT1_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT2_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,2,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT2_oer_ext_arr_[0] = {};
+const int OCT2_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT2_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT2_oer_ext_arr_, 0, OCT2_oer_p_};
+const TTCN_Typedescriptor_t OCT2_descr_ = { "@General_Types.OCT2", &OCTETSTRING_ber_, &OCT2_raw_, &OCTETSTRING_text_, &OCT2_xer_, &OCT2_json_, &OCT2_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT2_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT3_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,3,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT3_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3_oer_ext_arr_[0] = {};
+const int OCT3_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3_oer_ext_arr_, 0, OCT3_oer_p_};
+const TTCN_Typedescriptor_t OCT3_descr_ = { "@General_Types.OCT3", &OCTETSTRING_ber_, &OCT3_raw_, &OCTETSTRING_text_, &OCT3_xer_, &OCT3_json_, &OCT3_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT4_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,4,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT4_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT4_oer_ext_arr_[0] = {};
+const int OCT4_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT4_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT4_oer_ext_arr_, 0, OCT4_oer_p_};
+const TTCN_Typedescriptor_t OCT4_descr_ = { "@General_Types.OCT4", &OCTETSTRING_ber_, &OCT4_raw_, &OCTETSTRING_text_, &OCT4_xer_, &OCT4_json_, &OCT4_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT4_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT5_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,5,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT5_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT5_oer_ext_arr_[0] = {};
+const int OCT5_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT5_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT5_oer_ext_arr_, 0, OCT5_oer_p_};
+const TTCN_Typedescriptor_t OCT5_descr_ = { "@General_Types.OCT5", &OCTETSTRING_ber_, &OCT5_raw_, &OCTETSTRING_text_, &OCT5_xer_, &OCT5_json_, &OCT5_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT5_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT6_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,6,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT6_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT6_oer_ext_arr_[0] = {};
+const int OCT6_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT6_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT6_oer_ext_arr_, 0, OCT6_oer_p_};
+const TTCN_Typedescriptor_t OCT6_descr_ = { "@General_Types.OCT6", &OCTETSTRING_ber_, &OCT6_raw_, &OCTETSTRING_text_, &OCT6_xer_, &OCT6_json_, &OCT6_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT6_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT7_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,7,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT7_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT7_oer_ext_arr_[0] = {};
+const int OCT7_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT7_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT7_oer_ext_arr_, 0, OCT7_oer_p_};
+const TTCN_Typedescriptor_t OCT7_descr_ = { "@General_Types.OCT7", &OCTETSTRING_ber_, &OCT7_raw_, &OCTETSTRING_text_, &OCT7_xer_, &OCT7_json_, &OCT7_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT7_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT8_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,8,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT8_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT8_oer_ext_arr_[0] = {};
+const int OCT8_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT8_oer_ext_arr_, 0, OCT8_oer_p_};
+const TTCN_Typedescriptor_t OCT8_descr_ = { "@General_Types.OCT8", &OCTETSTRING_ber_, &OCT8_raw_, &OCTETSTRING_text_, &OCT8_xer_, &OCT8_json_, &OCT8_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT8_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT9_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,9,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT9_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT9_oer_ext_arr_[0] = {};
+const int OCT9_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT9_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT9_oer_ext_arr_, 0, OCT9_oer_p_};
+const TTCN_Typedescriptor_t OCT9_descr_ = { "@General_Types.OCT9", &OCTETSTRING_ber_, &OCT9_raw_, &OCTETSTRING_text_, &OCT9_xer_, &OCT9_json_, &OCT9_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT9_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT10_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,10,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT10_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT10_oer_ext_arr_[0] = {};
+const int OCT10_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT10_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT10_oer_ext_arr_, 0, OCT10_oer_p_};
+const TTCN_Typedescriptor_t OCT10_descr_ = { "@General_Types.OCT10", &OCTETSTRING_ber_, &OCT10_raw_, &OCTETSTRING_text_, &OCT10_xer_, &OCT10_json_, &OCT10_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT10_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT11_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,11,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT11_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT11_oer_ext_arr_[0] = {};
+const int OCT11_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT11_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT11_oer_ext_arr_, 0, OCT11_oer_p_};
+const TTCN_Typedescriptor_t OCT11_descr_ = { "@General_Types.OCT11", &OCTETSTRING_ber_, &OCT11_raw_, &OCTETSTRING_text_, &OCT11_xer_, &OCT11_json_, &OCT11_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT11_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT12_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,12,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT12_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT12_oer_ext_arr_[0] = {};
+const int OCT12_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT12_oer_ext_arr_, 0, OCT12_oer_p_};
+const TTCN_Typedescriptor_t OCT12_descr_ = { "@General_Types.OCT12", &OCTETSTRING_ber_, &OCT12_raw_, &OCTETSTRING_text_, &OCT12_xer_, &OCT12_json_, &OCT12_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT12_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT13_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,13,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT13_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT13_oer_ext_arr_[0] = {};
+const int OCT13_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT13_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT13_oer_ext_arr_, 0, OCT13_oer_p_};
+const TTCN_Typedescriptor_t OCT13_descr_ = { "@General_Types.OCT13", &OCTETSTRING_ber_, &OCT13_raw_, &OCTETSTRING_text_, &OCT13_xer_, &OCT13_json_, &OCT13_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT13_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT14_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,14,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT14_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT14_oer_ext_arr_[0] = {};
+const int OCT14_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT14_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT14_oer_ext_arr_, 0, OCT14_oer_p_};
+const TTCN_Typedescriptor_t OCT14_descr_ = { "@General_Types.OCT14", &OCTETSTRING_ber_, &OCT14_raw_, &OCTETSTRING_text_, &OCT14_xer_, &OCT14_json_, &OCT14_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT14_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT15_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,15,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT15_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT15_oer_ext_arr_[0] = {};
+const int OCT15_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT15_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT15_oer_ext_arr_, 0, OCT15_oer_p_};
+const TTCN_Typedescriptor_t OCT15_descr_ = { "@General_Types.OCT15", &OCTETSTRING_ber_, &OCT15_raw_, &OCTETSTRING_text_, &OCT15_xer_, &OCT15_json_, &OCT15_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT15_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT16_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,16,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT16_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT16_oer_ext_arr_[0] = {};
+const int OCT16_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT16_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT16_oer_ext_arr_, 0, OCT16_oer_p_};
+const TTCN_Typedescriptor_t OCT16_descr_ = { "@General_Types.OCT16", &OCTETSTRING_ber_, &OCT16_raw_, &OCTETSTRING_text_, &OCT16_xer_, &OCT16_json_, &OCT16_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT16_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT17_raw_ = {136,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,17,CharCoding::UNKNOWN};
+const XERdescriptor_t OCT17_xer_ = { {"OCT17>\n", "OCT17>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT17_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT17_oer_ext_arr_[0] = {};
+const int OCT17_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT17_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT17_oer_ext_arr_, 0, OCT17_oer_p_};
+const TTCN_Typedescriptor_t OCT17_descr_ = { "@General_Types.OCT17", &OCTETSTRING_ber_, &OCT17_raw_, &OCTETSTRING_text_, &OCT17_xer_, &OCT17_json_, &OCT17_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT17_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT18_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,18,CharCoding::UNKNOWN};
+const XERdescriptor_t OCT18_xer_ = { {"OCT18>\n", "OCT18>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT18_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT18_oer_ext_arr_[0] = {};
+const int OCT18_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT18_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT18_oer_ext_arr_, 0, OCT18_oer_p_};
+const TTCN_Typedescriptor_t OCT18_descr_ = { "@General_Types.OCT18", &OCTETSTRING_ber_, &OCT18_raw_, &OCTETSTRING_text_, &OCT18_xer_, &OCT18_json_, &OCT18_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT18_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT19_raw_ = {152,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,19,CharCoding::UNKNOWN};
+const XERdescriptor_t OCT19_xer_ = { {"OCT19>\n", "OCT19>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT19_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT19_oer_ext_arr_[0] = {};
+const int OCT19_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT19_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT19_oer_ext_arr_, 0, OCT19_oer_p_};
+const TTCN_Typedescriptor_t OCT19_descr_ = { "@General_Types.OCT19", &OCTETSTRING_ber_, &OCT19_raw_, &OCTETSTRING_text_, &OCT19_xer_, &OCT19_json_, &OCT19_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT19_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT20_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,20,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT20_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT20_oer_ext_arr_[0] = {};
+const int OCT20_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT20_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT20_oer_ext_arr_, 0, OCT20_oer_p_};
+const TTCN_Typedescriptor_t OCT20_descr_ = { "@General_Types.OCT20", &OCTETSTRING_ber_, &OCT20_raw_, &OCTETSTRING_text_, &OCT20_xer_, &OCT20_json_, &OCT20_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT20_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT32_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,32,CharCoding::UNKNOWN};
+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 TTCN_JSONdescriptor_t OCT32_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT32_oer_ext_arr_[0] = {};
+const int OCT32_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT32_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT32_oer_ext_arr_, 0, OCT32_oer_p_};
+const TTCN_Typedescriptor_t OCT32_descr_ = { "@General_Types.OCT32", &OCTETSTRING_ber_, &OCT32_raw_, &OCTETSTRING_text_, &OCT32_xer_, &OCT32_json_, &OCT32_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT32_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT34_raw_ = {272,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,34,CharCoding::UNKNOWN};
+const XERdescriptor_t OCT34_xer_ = { {"OCT34>\n", "OCT34>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT34_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT34_oer_ext_arr_[0] = {};
+const int OCT34_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT34_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT34_oer_ext_arr_, 0, OCT34_oer_p_};
+const TTCN_Typedescriptor_t OCT34_descr_ = { "@General_Types.OCT34", &OCTETSTRING_ber_, &OCT34_raw_, &OCTETSTRING_text_, &OCT34_xer_, &OCT34_json_, &OCT34_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT34_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT46_raw_ = {368,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,46,CharCoding::UNKNOWN};
+const XERdescriptor_t OCT46_xer_ = { {"OCT46>\n", "OCT46>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT46_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT46_oer_ext_arr_[0] = {};
+const int OCT46_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT46_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT46_oer_ext_arr_, 0, OCT46_oer_p_};
+const TTCN_Typedescriptor_t OCT46_descr_ = { "@General_Types.OCT46", &OCTETSTRING_ber_, &OCT46_raw_, &OCTETSTRING_text_, &OCT46_xer_, &OCT46_json_, &OCT46_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT46_default_coding("RAW");
+const XERdescriptor_t OCT1__260_xer_ = { {"OCT1_260>\n", "OCT1_260>\n"}, {10, 10}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__260_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__260_oer_ext_arr_[0] = {};
+const int OCT1__260_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__260_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__260_oer_ext_arr_, 0, OCT1__260_oer_p_};
+const TTCN_Typedescriptor_t OCT1__260_descr_ = { "@General_Types.OCT1_260", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__260_xer_, &OCT1__260_json_, &OCT1__260_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__260_default_coding("RAW");
+const XERdescriptor_t OCT1__8_xer_ = { {"OCT1_8>\n", "OCT1_8>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__8_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__8_oer_ext_arr_[0] = {};
+const int OCT1__8_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__8_oer_ext_arr_, 0, OCT1__8_oer_p_};
+const TTCN_Typedescriptor_t OCT1__8_descr_ = { "@General_Types.OCT1_8", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__8_xer_, &OCT1__8_json_, &OCT1__8_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__8_default_coding("RAW");
+const XERdescriptor_t OCT1__12_xer_ = { {"OCT1_12>\n", "OCT1_12>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__12_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__12_oer_ext_arr_[0] = {};
+const int OCT1__12_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__12_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__12_oer_ext_arr_, 0, OCT1__12_oer_p_};
+const TTCN_Typedescriptor_t OCT1__12_descr_ = { "@General_Types.OCT1_12", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__12_xer_, &OCT1__12_json_, &OCT1__12_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__12_default_coding("RAW");
+const XERdescriptor_t OCT1__32_xer_ = { {"OCT1_32>\n", "OCT1_32>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__32_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__32_oer_ext_arr_[0] = {};
+const int OCT1__32_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__32_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__32_oer_ext_arr_, 0, OCT1__32_oer_p_};
+const TTCN_Typedescriptor_t OCT1__32_descr_ = { "@General_Types.OCT1_32", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__32_xer_, &OCT1__32_json_, &OCT1__32_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__32_default_coding("RAW");
+const XERdescriptor_t OCT1__50_xer_ = { {"OCT1_50>\n", "OCT1_50>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1__50_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1__50_oer_ext_arr_[0] = {};
+const int OCT1__50_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1__50_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1__50_oer_ext_arr_, 0, OCT1__50_oer_p_};
+const TTCN_Typedescriptor_t OCT1__50_descr_ = { "@General_Types.OCT1_50", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT1__50_xer_, &OCT1__50_json_, &OCT1__50_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1__50_default_coding("RAW");
+const XERdescriptor_t OCT3__8_xer_ = { {"OCT3_8>\n", "OCT3_8>\n"}, {8, 8}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3__8_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3__8_oer_ext_arr_[0] = {};
+const int OCT3__8_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3__8_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3__8_oer_ext_arr_, 0, OCT3__8_oer_p_};
+const TTCN_Typedescriptor_t OCT3__8_descr_ = { "@General_Types.OCT3_8", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCT3__8_xer_, &OCT3__8_json_, &OCT3__8_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3__8_default_coding("RAW");
+const XERdescriptor_t OCTN_xer_ = { {"OCTN>\n", "OCTN>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCTN_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCTN_oer_ext_arr_[0] = {};
+const int OCTN_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCTN_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCTN_oer_ext_arr_, 0, OCTN_oer_p_};
+const TTCN_Typedescriptor_t OCTN_descr_ = { "@General_Types.OCTN", &OCTETSTRING_ber_, &OCTETSTRING_raw_, &OCTETSTRING_text_, &OCTN_xer_, &OCTN_json_, &OCTN_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCTN_default_coding("RAW");
+const TTCN_RAWdescriptor_t HEX1_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};
+const XERdescriptor_t HEX1_xer_ = { {"HEX1>\n", "HEX1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX1_descr_ = { "@General_Types.HEX1", NULL, &HEX1_raw_, NULL, &HEX1_xer_, &HEX1_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX1_default_coding("RAW");
+const XERdescriptor_t HEX0__16_xer_ = { {"HEX0_16>\n", "HEX0_16>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX0__16_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX0__16_descr_ = { "@General_Types.HEX0_16", NULL, &HEXSTRING_raw_, NULL, &HEX0__16_xer_, &HEX0__16_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX0__16_default_coding("RAW");
+const XERdescriptor_t HEX5__16_xer_ = { {"HEX5_16>\n", "HEX5_16>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX5__16_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX5__16_descr_ = { "@General_Types.HEX5_16", NULL, &HEXSTRING_raw_, NULL, &HEX5__16_xer_, &HEX5__16_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX5__16_default_coding("RAW");
+const XERdescriptor_t HEX1__32_xer_ = { {"HEX1_32>\n", "HEX1_32>\n"}, {9, 9}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t HEX1__32_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t HEX1__32_descr_ = { "@General_Types.HEX1_32", NULL, &HEXSTRING_raw_, NULL, &HEX1__32_xer_, &HEX1__32_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING HEX1__32_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT1_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};
+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_JSONdescriptor_t INT1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT1_descr_ = { "@General_Types.INT1", &INTEGER_ber_, &INT1_raw_, &INTEGER_text_, &INT1_xer_, &INT1_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT1_default_coding("RAW");
+const TTCN_RAWdescriptor_t LIN1_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};
+const XERdescriptor_t LIN1_xer_ = { {"LIN1>\n", "LIN1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t LIN1_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t LIN1_descr_ = { "@General_Types.LIN1", &INTEGER_ber_, &LIN1_raw_, &INTEGER_text_, &LIN1_xer_, &LIN1_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING LIN1_default_coding("RAW");
+const TTCN_RAWdescriptor_t LIN2_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};
+const XERdescriptor_t LIN2_xer_ = { {"LIN2>\n", "LIN2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t LIN2_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t LIN2_descr_ = { "@General_Types.LIN2", &INTEGER_ber_, &LIN2_raw_, &INTEGER_text_, &LIN2_xer_, &LIN2_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING LIN2_default_coding("RAW");
+const TTCN_RAWdescriptor_t LIN2__BO__LAST_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};
+const XERdescriptor_t LIN2__BO__LAST_xer_ = { {"LIN2_BO_LAST>\n", "LIN2_BO_LAST>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t LIN2__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t LIN2__BO__LAST_descr_ = { "@General_Types.LIN2_BO_LAST", &INTEGER_ber_, &LIN2__BO__LAST_raw_, &INTEGER_text_, &LIN2__BO__LAST_xer_, &LIN2__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING LIN2__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t LIN3__BO__LAST_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};
+const XERdescriptor_t LIN3__BO__LAST_xer_ = { {"LIN3_BO_LAST>\n", "LIN3_BO_LAST>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t LIN3__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t LIN3__BO__LAST_descr_ = { "@General_Types.LIN3_BO_LAST", &INTEGER_ber_, &LIN3__BO__LAST_raw_, &INTEGER_text_, &LIN3__BO__LAST_xer_, &LIN3__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING LIN3__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t LIN4__BO__LAST_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};
+const XERdescriptor_t LIN4__BO__LAST_xer_ = { {"LIN4_BO_LAST>\n", "LIN4_BO_LAST>\n"}, {14, 14}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t LIN4__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t LIN4__BO__LAST_descr_ = { "@General_Types.LIN4_BO_LAST", &INTEGER_ber_, &LIN4__BO__LAST_raw_, &INTEGER_text_, &LIN4__BO__LAST_xer_, &LIN4__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING LIN4__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT1b_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};
+const XERdescriptor_t INT1b_xer_ = { {"INT1b>\n", "INT1b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT1b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT1b_descr_ = { "@General_Types.INT1b", &INTEGER_ber_, &INT1b_raw_, &INTEGER_text_, &INT1b_xer_, &INT1b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT1b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT2b_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};
+const XERdescriptor_t INT2b_xer_ = { {"INT2b>\n", "INT2b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT2b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT2b_descr_ = { "@General_Types.INT2b", &INTEGER_ber_, &INT2b_raw_, &INTEGER_text_, &INT2b_xer_, &INT2b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT2b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT3b_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};
+const XERdescriptor_t INT3b_xer_ = { {"INT3b>\n", "INT3b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT3b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT3b_descr_ = { "@General_Types.INT3b", &INTEGER_ber_, &INT3b_raw_, &INTEGER_text_, &INT3b_xer_, &INT3b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT3b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT4b_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};
+const XERdescriptor_t INT4b_xer_ = { {"INT4b>\n", "INT4b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT4b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT4b_descr_ = { "@General_Types.INT4b", &INTEGER_ber_, &INT4b_raw_, &INTEGER_text_, &INT4b_xer_, &INT4b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT4b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT5b_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};
+const XERdescriptor_t INT5b_xer_ = { {"INT5b>\n", "INT5b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT5b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT5b_descr_ = { "@General_Types.INT5b", &INTEGER_ber_, &INT5b_raw_, &INTEGER_text_, &INT5b_xer_, &INT5b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT5b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT6b_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};
+const XERdescriptor_t INT6b_xer_ = { {"INT6b>\n", "INT6b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT6b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT6b_descr_ = { "@General_Types.INT6b", &INTEGER_ber_, &INT6b_raw_, &INTEGER_text_, &INT6b_xer_, &INT6b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT6b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT7b_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};
+const XERdescriptor_t INT7b_xer_ = { {"INT7b>\n", "INT7b>\n"}, {7, 7}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT7b_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT7b_descr_ = { "@General_Types.INT7b", &INTEGER_ber_, &INT7b_raw_, &INTEGER_text_, &INT7b_xer_, &INT7b_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT7b_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT11b__BO__LAST_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};
+const XERdescriptor_t INT11b__BO__LAST_xer_ = { {"INT11b_BO_LAST>\n", "INT11b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT11b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT11b__BO__LAST_descr_ = { "@General_Types.INT11b_BO_LAST", &INTEGER_ber_, &INT11b__BO__LAST_raw_, &INTEGER_text_, &INT11b__BO__LAST_xer_, &INT11b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT11b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT12b__BO__LAST_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};
+const XERdescriptor_t INT12b__BO__LAST_xer_ = { {"INT12b_BO_LAST>\n", "INT12b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT12b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT12b__BO__LAST_descr_ = { "@General_Types.INT12b_BO_LAST", &INTEGER_ber_, &INT12b__BO__LAST_raw_, &INTEGER_text_, &INT12b__BO__LAST_xer_, &INT12b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT12b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT13b__BO__LAST_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};
+const XERdescriptor_t INT13b__BO__LAST_xer_ = { {"INT13b_BO_LAST>\n", "INT13b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT13b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT13b__BO__LAST_descr_ = { "@General_Types.INT13b_BO_LAST", &INTEGER_ber_, &INT13b__BO__LAST_raw_, &INTEGER_text_, &INT13b__BO__LAST_xer_, &INT13b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT13b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT14b__BO__LAST_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};
+const XERdescriptor_t INT14b__BO__LAST_xer_ = { {"INT14b_BO_LAST>\n", "INT14b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT14b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT14b__BO__LAST_descr_ = { "@General_Types.INT14b_BO_LAST", &INTEGER_ber_, &INT14b__BO__LAST_raw_, &INTEGER_text_, &INT14b__BO__LAST_xer_, &INT14b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT14b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT18b__BO__LAST_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};
+const XERdescriptor_t INT18b__BO__LAST_xer_ = { {"INT18b_BO_LAST>\n", "INT18b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT18b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT18b__BO__LAST_descr_ = { "@General_Types.INT18b_BO_LAST", &INTEGER_ber_, &INT18b__BO__LAST_raw_, &INTEGER_text_, &INT18b__BO__LAST_xer_, &INT18b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT18b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT20b__BO__LAST_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};
+const XERdescriptor_t INT20b__BO__LAST_xer_ = { {"INT20b_BO_LAST>\n", "INT20b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT20b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT20b__BO__LAST_descr_ = { "@General_Types.INT20b_BO_LAST", &INTEGER_ber_, &INT20b__BO__LAST_raw_, &INTEGER_text_, &INT20b__BO__LAST_xer_, &INT20b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT20b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t INT31b__BO__LAST_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};
+const XERdescriptor_t INT31b__BO__LAST_xer_ = { {"INT31b_BO_LAST>\n", "INT31b_BO_LAST>\n"}, {16, 16}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t INT31b__BO__LAST_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t INT31b__BO__LAST_descr_ = { "@General_Types.INT31b_BO_LAST", &INTEGER_ber_, &INT31b__BO__LAST_raw_, &INTEGER_text_, &INT31b__BO__LAST_xer_, &INT31b__BO__LAST_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING INT31b__BO__LAST_default_coding("RAW");
+const TTCN_RAWdescriptor_t Integers_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};
+// No XER for Integers
+const TTCN_Typedescriptor_t Integers_descr_ = { "@General_Types.Integers", NULL, &Integers_raw_, NULL, NULL, NULL, NULL, &INTEGER_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t Integers_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_JSONdescriptor_t Integers_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const TTCN_Typedescriptor_t Integers_0_descr_ = { "@General_Types.Integers.INTEGER", &INTEGER_ber_, &INTEGER_raw_, &INTEGER_text_, &Integers_0_xer_, &Integers_0_json_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING Integers_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING Integers_default_coding("RAW");
+const TTCN_RAWdescriptor_t Integer__array_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};
+// No XER for Integer__array
+const TTCN_Typedescriptor_t Integer__array_descr_ = { "@General_Types.Integer_array", NULL, &Integer__array_raw_, NULL, NULL, NULL, NULL, &Integers_descr_, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING Integer__array_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING Integer__array_default_coding("RAW");
+const TTCN_Typedescriptor_t& Dummy__comptype_descr_ = COMPONENT_descr_;
+const TTCN_Typedescriptor_t& Dummy__CT_descr_ = COMPONENT_descr_;
+const TTCN_RAWdescriptor_t Protocols_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};
+// No XER for Protocols
+const TTCN_Typedescriptor_t Protocols_descr_ = { "@General_Types.Protocols", NULL, &Protocols_raw_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING Protocols_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT1List_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};
+// No XER for OCT1List
+const TTCN_Typedescriptor_t OCT1List_descr_ = { "@General_Types.OCT1List", NULL, &OCT1List_raw_, NULL, NULL, NULL, NULL, &OCT1_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT1List_0_xer_ = { {"OCT1>\n", "OCT1>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT1List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT1List_0_oer_ext_arr_[0] = {};
+const int OCT1List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT1List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT1List_0_oer_ext_arr_, 0, OCT1List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT1List_0_descr_ = { "@General_Types.OCT1List.<oftype>", &OCTETSTRING_ber_, &OCT1_raw_, &OCTETSTRING_text_, &OCT1List_0_xer_, &OCT1List_0_json_, &OCT1List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT1List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT1List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT2List_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};
+// No XER for OCT2List
+const TTCN_Typedescriptor_t OCT2List_descr_ = { "@General_Types.OCT2List", NULL, &OCT2List_raw_, NULL, NULL, NULL, NULL, &OCT2_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT2List_0_xer_ = { {"OCT2>\n", "OCT2>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT2List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT2List_0_oer_ext_arr_[0] = {};
+const int OCT2List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT2List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT2List_0_oer_ext_arr_, 0, OCT2List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT2List_0_descr_ = { "@General_Types.OCT2List.<oftype>", &OCTETSTRING_ber_, &OCT2_raw_, &OCTETSTRING_text_, &OCT2List_0_xer_, &OCT2List_0_json_, &OCT2List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT2List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT2List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT3List_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};
+// No XER for OCT3List
+const TTCN_Typedescriptor_t OCT3List_descr_ = { "@General_Types.OCT3List", NULL, &OCT3List_raw_, NULL, NULL, NULL, NULL, &OCT3_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT3List_0_xer_ = { {"OCT3>\n", "OCT3>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT3List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT3List_0_oer_ext_arr_[0] = {};
+const int OCT3List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT3List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT3List_0_oer_ext_arr_, 0, OCT3List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT3List_0_descr_ = { "@General_Types.OCT3List.<oftype>", &OCTETSTRING_ber_, &OCT3_raw_, &OCTETSTRING_text_, &OCT3List_0_xer_, &OCT3List_0_json_, &OCT3List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT3List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT3List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT4List_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};
+// No XER for OCT4List
+const TTCN_Typedescriptor_t OCT4List_descr_ = { "@General_Types.OCT4List", NULL, &OCT4List_raw_, NULL, NULL, NULL, NULL, &OCT4_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT4List_0_xer_ = { {"OCT4>\n", "OCT4>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT4List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT4List_0_oer_ext_arr_[0] = {};
+const int OCT4List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT4List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT4List_0_oer_ext_arr_, 0, OCT4List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT4List_0_descr_ = { "@General_Types.OCT4List.<oftype>", &OCTETSTRING_ber_, &OCT4_raw_, &OCTETSTRING_text_, &OCT4List_0_xer_, &OCT4List_0_json_, &OCT4List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT4List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT4List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT5List_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};
+// No XER for OCT5List
+const TTCN_Typedescriptor_t OCT5List_descr_ = { "@General_Types.OCT5List", NULL, &OCT5List_raw_, NULL, NULL, NULL, NULL, &OCT5_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT5List_0_xer_ = { {"OCT5>\n", "OCT5>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT5List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT5List_0_oer_ext_arr_[0] = {};
+const int OCT5List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT5List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT5List_0_oer_ext_arr_, 0, OCT5List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT5List_0_descr_ = { "@General_Types.OCT5List.<oftype>", &OCTETSTRING_ber_, &OCT5_raw_, &OCTETSTRING_text_, &OCT5List_0_xer_, &OCT5List_0_json_, &OCT5List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT5List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT5List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT6List_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};
+// No XER for OCT6List
+const TTCN_Typedescriptor_t OCT6List_descr_ = { "@General_Types.OCT6List", NULL, &OCT6List_raw_, NULL, NULL, NULL, NULL, &OCT6_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT6List_0_xer_ = { {"OCT6>\n", "OCT6>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT6List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT6List_0_oer_ext_arr_[0] = {};
+const int OCT6List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT6List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT6List_0_oer_ext_arr_, 0, OCT6List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT6List_0_descr_ = { "@General_Types.OCT6List.<oftype>", &OCTETSTRING_ber_, &OCT6_raw_, &OCTETSTRING_text_, &OCT6List_0_xer_, &OCT6List_0_json_, &OCT6List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT6List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT6List_default_coding("RAW");
+const TTCN_RAWdescriptor_t OCT7List_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};
+// No XER for OCT7List
+const TTCN_Typedescriptor_t OCT7List_descr_ = { "@General_Types.OCT7List", NULL, &OCT7List_raw_, NULL, NULL, NULL, NULL, &OCT7_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const XERdescriptor_t OCT7List_0_xer_ = { {"OCT7>\n", "OCT7>\n"}, {6, 6}, 0 |FORM_UNQUALIFIED, WHITESPACE_PRESERVE, NULL, &module_object, -1, 0, NULL, NULL, -1, XSD_NONE };
+const TTCN_JSONdescriptor_t OCT7List_0_json_ = { FALSE, NULL, FALSE, NULL, FALSE, FALSE };
+const int OCT7List_0_oer_ext_arr_[0] = {};
+const int OCT7List_0_oer_p_[0] = {};
+const TTCN_OERdescriptor_t OCT7List_0_oer_ = { -1, FALSE, -1, FALSE, 0, 0, OCT7List_0_oer_ext_arr_, 0, OCT7List_0_oer_p_};
+const TTCN_Typedescriptor_t OCT7List_0_descr_ = { "@General_Types.OCT7List.<oftype>", &OCTETSTRING_ber_, &OCT7_raw_, &OCTETSTRING_text_, &OCT7List_0_xer_, &OCT7List_0_json_, &OCT7List_0_oer_, NULL, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING OCT7List_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING OCT7List_default_coding("RAW");
+// No XER for ListOfDummy__comptype
+const TTCN_Typedescriptor_t ListOfDummy__comptype_descr_ = { "@General_Types.ListOfDummy_comptype", NULL, NULL, NULL, NULL, NULL, NULL, &COMPONENT_descr_, TTCN_Typedescriptor_t::DONTCARE };
+// No XER for ListOfDummy__CT
+const TTCN_Typedescriptor_t ListOfDummy__CT_descr_ = { "@General_Types.ListOfDummy_CT", NULL, NULL, NULL, NULL, NULL, NULL, &COMPONENT_descr_, TTCN_Typedescriptor_t::DONTCARE };
+const TTCN_RAWdescriptor_t ProtocolList_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};
+// No XER for ProtocolList
+const TTCN_Typedescriptor_t ProtocolList_descr_ = { "@General_Types.ProtocolList", NULL, &ProtocolList_raw_, NULL, NULL, NULL, NULL, &Protocols_descr_, TTCN_Typedescriptor_t::DONTCARE };
+UNIVERSAL_CHARSTRING ProtocolList_0_default_coding("RAW");
+UNIVERSAL_CHARSTRING ProtocolList_default_coding("RAW");
+TTCN_Module module_object("General_Types", __DATE__, __TIME__, module_checksum, NULL, NULL, 0U, 4294967295U, 4294967295U, 4294967295U, NULL, 0LU, 0, NULL, NULL, NULL, NULL, init_comp_type, NULL, NULL);
+
+static const RuntimeVersionChecker ver_checker( current_runtime_version.requires_major_version_6,
+ current_runtime_version.requires_minor_version_3,
+ current_runtime_version.requires_patch_level_1, current_runtime_version.requires_runtime_1);
+
+/* Member functions of C++ classes */
+
+
+const Integers Integer__array::UNBOUND_ELEM;
+Integer__array::Integer__array()
+{
+val_ptr = NULL;
+}
+
+Integer__array::Integer__array(null_type)
+{
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+}
+
+Integer__array::Integer__array(const Integer__array& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @General_Types.Integer_array.");
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+
+Integer__array::~Integer__array()
+{
+clean_up();
+if (val_ptr != NULL) val_ptr = NULL;
+}
+
+void Integer__array::clean_up()
+{
+if (val_ptr != NULL) {
+if (val_ptr->ref_count > 1) {
+val_ptr->ref_count--;
+val_ptr = NULL;
+}
+else if (val_ptr->ref_count == 1) {
+for (int elem_count = 0; elem_count < val_ptr->n_elements;
+elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)
+delete val_ptr->value_elements[elem_count];
+free_pointers((void**)val_ptr->value_elements);
+delete val_ptr;
+val_ptr = NULL;
+}
+else
+TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
+}
+}
+
+Integer__array& Integer__array::operator=(null_type)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+return *this;
+}
+
+Integer__array& Integer__array::operator=(const Integer__array& other_value)
+{
+if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @General_Types.Integer_array.");
+if (this != &other_value) {
+clean_up();
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+return *this;
+}
+
+boolean Integer__array::operator==(null_type) const
+{
+if (val_ptr == NULL)
+TTCN_error("The left operand of comparison is an unbound value of type @General_Types.Integer_array.");
+return val_ptr->n_elements == 0 ;
+}
+
+boolean Integer__array::operator==(const Integer__array& other_value) const
+{
+if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @General_Types.Integer_array.");
+if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @General_Types.Integer_array.");
+if (val_ptr == other_value.val_ptr) return TRUE;
+if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
+return FALSE;
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
+ if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
+} else return FALSE;
+} else {
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
+}
+}
+return TRUE;
+}
+
+Integers& Integer__array::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.Integer_array using a negative index: %d.", index_value);
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
+new_val_ptr->value_elements = (Integers**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new Integers(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
+if (val_ptr->value_elements[index_value] == NULL) {
+val_ptr->value_elements[index_value] = new Integers;
+}
+return *val_ptr->value_elements[index_value];
+}
+
+Integers& Integer__array::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.Integer_array.");
+return (*this)[(int)index_value];
+}
+
+const Integers& Integer__array::operator[](int index_value) const
+{
+if (val_ptr == NULL)
+TTCN_error("Accessing an element in an unbound value of type @General_Types.Integer_array.");
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.Integer_array using a negative index: %d.", index_value);
+if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @General_Types.Integer_array: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
+return (val_ptr->value_elements[index_value] != NULL) ?
+*val_ptr->value_elements[index_value] : UNBOUND_ELEM;
+}
+
+const Integers& Integer__array::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.Integer_array.");
+return (*this)[(int)index_value];
+}
+
+Integer__array Integer__array::operator<<=(int rotate_count) const
+{
+return *this >>= (-rotate_count);
+}
+
+Integer__array Integer__array::operator<<=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate left operator.");
+return *this >>= (int)(-rotate_count);
+}
+
+Integer__array Integer__array::operator>>=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate right operator.");
+return *this >>= (int)rotate_count;
+}
+
+Integer__array Integer__array::operator>>=(int rotate_count) const
+{
+if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @General_Types.Integer_array.");
+if (val_ptr->n_elements == 0) return *this;
+int rc;
+if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
+else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
+if (rc == 0) return *this;
+Integer__array ret_val;
+ret_val.set_size(val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new Integers(*val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+Integer__array Integer__array::operator+(const Integer__array& other_value) const
+{
+if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @General_Types.Integer_array concatenation.");
+if (val_ptr->n_elements == 0) return other_value;
+if (other_value.val_ptr->n_elements == 0) return *this;
+Integer__array ret_val;
+ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Integers(*val_ptr->value_elements[i]);
+}
+}
+for (int i=0; i<other_value.val_ptr->n_elements; i++) {
+if (other_value.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new Integers(*other_value.val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+Integer__array Integer__array::substr(int index, int returncount) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @General_Types.Integer_array.");
+check_substr_arguments(val_ptr->n_elements, index, returncount, "@General_Types.Integer_array","element");
+Integer__array ret_val;
+ret_val.set_size(returncount);
+for (int i=0; i<returncount; i++) {
+if (val_ptr->value_elements[i+index] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Integers(*val_ptr->value_elements[i+index]);
+}
+}
+return ret_val;
+}
+
+Integer__array Integer__array::replace(int index, int len, const Integer__array& repl) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @General_Types.Integer_array.");
+if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @General_Types.Integer_array.");
+check_replace_arguments(val_ptr->n_elements, index, len, "@General_Types.Integer_array","element");
+Integer__array ret_val;
+ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
+for (int i = 0; i < index; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Integers(*val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < repl.val_ptr->n_elements; i++) {
+if (repl.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+index] = new Integers(*repl.val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
+if (val_ptr->value_elements[index+i+len] != NULL) {
+ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new Integers(*val_ptr->value_elements[index+i+len]);
+}
+}
+return ret_val;
+}
+
+Integer__array Integer__array::replace(int index, int len, const Integer__array_template& repl) const
+{
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return replace(index, len, repl.valueof());
+}
+
+void Integer__array::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @General_Types.Integer_array.");
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
+new_val_ptr->value_elements = (Integers**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new Integers(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (new_size > val_ptr->n_elements) {
+val_ptr->value_elements = (Integers**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
+if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @General_Types.Integer_array: %d",new_size);
+#endif
+val_ptr->n_elements = new_size;
+} else if (new_size < val_ptr->n_elements) {
+for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
+val_ptr->value_elements = (Integers**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+val_ptr->n_elements = new_size;
+}
+}
+
+boolean Integer__array::is_value() const
+{
+if (val_ptr == NULL) return FALSE;
+for(int i = 0; i < val_ptr->n_elements; ++i) {
+if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
+}
+return TRUE;
+}
+
+int Integer__array::size_of() const
+{
+if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @General_Types.Integer_array.");
+return val_ptr->n_elements;
+}
+
+int Integer__array::lengthof() const
+{
+if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @General_Types.Integer_array.");
+for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
+return 0;
+}
+
+void Integer__array::log() const
+{
+if (val_ptr == NULL) {;
+TTCN_Logger::log_event_unbound();
+return;
+}
+switch (val_ptr->n_elements) {
+case 0:
+TTCN_Logger::log_event_str("{ }");
+break;
+default:
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+(*this)[elem_count].log();
+}
+TTCN_Logger::log_event_str(" }");
+}
+}
+
+void Integer__array::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
+ switch (param.get_operation_type()) {
+ case Module_Param::OT_ASSIGN:
+ if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
+ *this = NULL_VALUE;
+ return;
+ }
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List:
+ set_size(param.get_size());
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if (curr->get_type()!=Module_Param::MP_NotUsed) {
+ (*this)[i].set_param(*curr);
+ if (!(*this)[i].is_bound()) {
+ delete val_ptr->value_elements[i];
+ val_ptr->value_elements[i] = NULL;
+ }
+ }
+ }
+ break;
+ case Module_Param::MP_Indexed_List:
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ (*this)[curr->get_id()->get_index()].set_param(*curr);
+ if (!(*this)[curr->get_id()->get_index()].is_bound()) {
+ delete val_ptr->value_elements[curr->get_id()->get_index()];
+ val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
+ }
+ }
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.Integer_array");
+ }
+ break;
+ case Module_Param::OT_CONCAT:
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List: {
+ if (!is_bound()) *this = NULL_VALUE;
+ int start_idx = lengthof();
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
+ (*this)[start_idx+(int)i].set_param(*curr);
+ }
+ }
+ } break;
+ case Module_Param::MP_Indexed_List:
+ param.error("Cannot concatenate an indexed value list");
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.Integer_array");
+ }
+ break;
+ default:
+ TTCN_error("Internal error: Unknown operation type.");
+ }
+}
+
+void Integer__array::set_implicit_omit()
+{
+if (val_ptr == NULL) return;
+for (int i = 0; i < val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
+}
+}
+
+void Integer__array::encode_text(Text_Buf& text_buf) const
+{
+if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @General_Types.Integer_array.");
+text_buf.push_int(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
+(*this)[elem_count].encode_text(text_buf);
+}
+
+void Integer__array::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = text_buf.pull_int().get_val();
+if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @General_Types.Integer_array.");
+val_ptr->value_elements = (Integers**)allocate_pointers(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+val_ptr->value_elements[elem_count] = new Integers;
+val_ptr->value_elements[elem_count]->decode_text(text_buf);
+}
+}
+
+void Integer__array::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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(FALSE, 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);
+ 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;}
+ default:
+ TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+void Integer__array::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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();
+ if(b_data[p_buf.get_len()-1]!='\0'){
+ 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);
+ 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)<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;}
+ default:
+ TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+int Integer__array::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 first_call){
+ int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
+ limit-=prepaddlength;
+ int decoded_length=0;
+ int decoded_field_length=0;
+ size_t start_of_field=0;
+ if(first_call) {
+ clean_up();
+ val_ptr=new recordof_setof_struct;
+ val_ptr->ref_count=1;
+ val_ptr->n_elements=0;
+ val_ptr->value_elements=NULL;
+ }
+ int start_field=val_ptr->n_elements;
+ if(p_td.raw->fieldlength || sel_field!=-1){
+ int a=0;
+ if(sel_field==-1) sel_field=p_td.raw->fieldlength;
+ for(a=0;a<sel_field;a++){
+ decoded_field_length=(*this)[a+start_field].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE);
+ if(decoded_field_length < 0) return decoded_field_length;
+ decoded_length+=decoded_field_length;
+ limit-=decoded_field_length;
+ }
+ if(a==0) val_ptr->n_elements=0;
+ } else {
+ int a=start_field;
+ if(limit==0){
+ if(!first_call) return -1;
+ val_ptr->n_elements=0;
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+ }
+ while(limit>0){
+ start_of_field=p_buf.get_pos_bit();
+ decoded_field_length=(*this)[a].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE);
+ if(decoded_field_length < 0){
+ delete &(*this)[a];
+ val_ptr->n_elements--;
+ p_buf.set_pos_bit(start_of_field);
+ if(a>start_field){
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+ } else return -1;
+ }
+ decoded_length+=decoded_field_length;
+ limit-=decoded_field_length;
+ a++;
+ }
+ }
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+}
+
+int Integer__array::RAW_encode(const TTCN_Typedescriptor_t& p_td,RAW_enc_tree& myleaf) const{
+ int encoded_length=0;
+ int encoded_num_of_records=p_td.raw->fieldlength?smaller(val_ptr->n_elements, p_td.raw->fieldlength):val_ptr->n_elements;
+ myleaf.isleaf=FALSE;
+ myleaf.rec_of=TRUE;
+ myleaf.body.node.num_of_nodes=encoded_num_of_records;
+ myleaf.body.node.nodes=init_nodes_of_enc_tree(encoded_num_of_records);
+ for(int a=0;a<encoded_num_of_records;a++){
+ myleaf.body.node.nodes[a]=new RAW_enc_tree(TRUE,&myleaf,&(myleaf.curr_pos),a,p_td.oftype_descr->raw);
+ encoded_length+=(*this)[a].RAW_encode(*p_td.oftype_descr,*myleaf.body.node.nodes[a]);
+ }
+ return myleaf.length=encoded_length;
+}
+
+void Integer__array_template::copy_value(const Integer__array& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @General_Types.Integer_array with an unbound value.");
+single_value.n_elements = other_value.size_of();
+single_value.value_elements = (Integers_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (other_value[elem_count].is_bound()) {
+single_value.value_elements[elem_count] = new Integers_template(other_value[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new Integers_template;
+}
+}
+set_selection(SPECIFIC_VALUE);
+}
+
+void Integer__array_template::copy_template(const Integer__array_template& other_value)
+{
+switch (other_value.template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = other_value.single_value.n_elements;
+single_value.value_elements = (Integers_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
+single_value.value_elements[elem_count] = new Integers_template(*other_value.single_value.value_elements[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new Integers_template;
+}
+}
+case OMIT_VALUE:
+case ANY_VALUE:
+case ANY_OR_OMIT:
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = other_value.value_list.n_values;
+value_list.list_value = new Integer__array_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;
+default:
+TTCN_error("Copying an uninitialized/unsupported template of type @General_Types.Integer_array.");
+break;
+}
+set_selection(other_value);
+}
+
+boolean Integer__array_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
+{
+if (value_index >= 0) return ((const Integer__array_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const Integer__array*)value_ptr)[value_index], legacy);
+else return ((const Integer__array_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
+}
+
+Integer__array_template::Integer__array_template()
+{
+}
+
+Integer__array_template::Integer__array_template(template_sel other_value)
+ : Record_Of_Template(other_value)
+{
+check_single_selection(other_value);
+}
+
+Integer__array_template::Integer__array_template(null_type)
+ : Record_Of_Template(SPECIFIC_VALUE)
+{
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+
+Integer__array_template::Integer__array_template(const Integer__array& other_value)
+{
+copy_value(other_value);
+}
+
+Integer__array_template::Integer__array_template(const OPTIONAL<Integer__array>& other_value)
+{
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const Integer__array&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Creating a template of type @General_Types.Integer_array from an unbound optional field.");
+}
+}
+
+Integer__array_template::Integer__array_template(const Integer__array_template& other_value)
+ : Record_Of_Template()
+{
+copy_template(other_value);
+}
+
+Integer__array_template::~Integer__array_template()
+{
+clean_up();
+}
+
+void Integer__array_template::clean_up()
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+free_pointers((void**)single_value.value_elements);
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+delete [] value_list.list_value;
+default:
+break;
+}
+template_selection = UNINITIALIZED_TEMPLATE;
+}
+
+Integer__array_template& Integer__array_template::operator=(template_sel other_value)
+{
+check_single_selection(other_value);
+clean_up();
+set_selection(other_value);
+return *this;
+}
+
+Integer__array_template& Integer__array_template::operator=(null_type)
+{
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+return *this;
+}
+
+Integer__array_template& Integer__array_template::operator=(const Integer__array& other_value)
+{
+clean_up();
+copy_value(other_value);
+return *this;
+}
+
+Integer__array_template& Integer__array_template::operator=(const OPTIONAL<Integer__array>& other_value)
+{
+clean_up();
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const Integer__array&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Assignment of an unbound optional field to a template of type @General_Types.Integer_array.");
+}
+return *this;
+}
+
+Integer__array_template& Integer__array_template::operator=(const Integer__array_template& other_value)
+{
+if (&other_value != this) {
+clean_up();
+copy_template(other_value);
+}
+return *this;
+}
+
+Integers_template& Integer__array_template::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.Integer_array using a negative index: %d.", index_value);
+switch (template_selection)
+{
+ case SPECIFIC_VALUE:
+ if(index_value < single_value.n_elements) break;
+ // no break
+ case OMIT_VALUE:
+ case ANY_VALUE:
+ case ANY_OR_OMIT:
+ case UNINITIALIZED_TEMPLATE:
+ set_size(index_value + 1);
+ break;
+ default:
+ TTCN_error("Accessing an element of a non-specific template for type @General_Types.Integer_array.");
+ break;
+}
+return *single_value.value_elements[index_value];
+}
+
+Integers_template& Integer__array_template::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.Integer_array.");
+return (*this)[(int)index_value];
+}
+
+const Integers_template& Integer__array_template::operator[](int index_value) const
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.Integer_array using a negative index: %d.", index_value);
+if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @General_Types.Integer_array.");
+if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @General_Types.Integer_array: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
+return *single_value.value_elements[index_value];
+}
+
+const Integers_template& Integer__array_template::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.Integer_array.");
+return (*this)[(int)index_value];
+}
+
+void Integer__array_template::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @General_Types.Integer_array.");
+template_sel old_selection = template_selection;
+if (old_selection != SPECIFIC_VALUE) {
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+if (new_size > single_value.n_elements) {
+single_value.value_elements = (Integers_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new Integers_template(ANY_VALUE);
+} else {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new Integers_template;
+}
+single_value.n_elements = new_size;
+} else if (new_size < single_value.n_elements) {
+for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+single_value.value_elements = (Integers_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+single_value.n_elements = new_size;
+}
+}
+
+int Integer__array_template::n_elem() const
+{
+ switch (template_selection) {
+ case SPECIFIC_VALUE:
+ return single_value.n_elements;
+ break;
+ case VALUE_LIST:
+ return value_list.n_values;
+ break;
+ default:
+ TTCN_error("Performing n_elem");
+ }
+}
+
+int Integer__array_template::size_of(boolean is_size) const
+{
+const char* op_name = is_size ? "size" : "length";
+int min_size;
+boolean has_any_or_none;
+if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array which has an ifpresent attribute.", op_name);
+switch (template_selection)
+{
+case SPECIFIC_VALUE: {
+ min_size = 0;
+ has_any_or_none = FALSE;
+ int elem_count = single_value.n_elements;
+ if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
+ for (int i=0; i<elem_count; i++) {
+ switch (single_value.value_elements[i]->get_selection()) {
+ case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array containing omit element.", op_name);
+ case ANY_OR_OMIT:
+ has_any_or_none = TRUE;
+ break;
+ default:
+ min_size++;
+ break;
+ }
+ }
+} break;
+case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array containing omit value.", op_name);
+case ANY_VALUE:
+case ANY_OR_OMIT:
+ min_size = 0;
+ has_any_or_none = TRUE;
+ break;
+case VALUE_LIST:
+{
+ if (value_list.n_values<1)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array containing an empty list.", op_name);
+ int item_size = value_list.list_value[0].size_of(is_size);
+ for (unsigned int i = 1; i < value_list.n_values; i++) {
+ if (value_list.list_value[i].size_of(is_size)!=item_size)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array containing a value list with different sizes.", op_name);
+ }
+ min_size = item_size;
+ has_any_or_none = FALSE;
+ break;
+}
+case COMPLEMENTED_LIST:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.Integer_array containing complemented list.", op_name);
+default:
+ TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @General_Types.Integer_array.", op_name);
+}
+return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @General_Types.Integer_array");
+}
+
+boolean Integer__array_template::match(const Integer__array& other_value, boolean legacy) const
+{
+if (!other_value.is_bound()) return FALSE;
+int value_length = other_value.size_of();
+if (!match_length(value_length)) return FALSE;
+switch (template_selection) {
+case SPECIFIC_VALUE:
+return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
+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, legacy)) return template_selection == VALUE_LIST;
+return template_selection == COMPLEMENTED_LIST;
+default:
+TTCN_error("Matching with an uninitialized/unsupported template of type @General_Types.Integer_array.");
+}
+return FALSE;
+}
+
+boolean Integer__array_template::is_value() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
+return TRUE;
+}
+
+Integer__array Integer__array_template::valueof() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @General_Types.Integer_array.");
+Integer__array ret_val;
+ret_val.set_size(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (single_value.value_elements[elem_count]->is_bound()) {
+ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
+}
+return ret_val;
+}
+
+Integer__array Integer__array_template::substr(int index, int returncount) const
+{
+if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
+return valueof().substr(index, returncount);
+}
+
+Integer__array Integer__array_template::replace(int index, int len, const Integer__array_template& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl.valueof());
+}
+
+Integer__array Integer__array_template::replace(int index, int len, const Integer__array& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl);
+}
+
+void Integer__array_template::set_type(template_sel template_type, unsigned int list_length)
+{
+clean_up();
+switch (template_type) {
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = list_length;
+value_list.list_value = new Integer__array_template[list_length];
+break;
+default:
+TTCN_error("Internal error: Setting an invalid type for a template of type @General_Types.Integer_array.");
+}
+set_selection(template_type);
+}
+
+Integer__array_template& Integer__array_template::list_item(unsigned int list_index)
+{
+if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @General_Types.Integer_array.");
+if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @General_Types.Integer_array.");
+return value_list.list_value[list_index];
+}
+
+void Integer__array_template::log() const
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+if (single_value.n_elements > 0) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
+single_value.value_elements[elem_count]->log();
+if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
+}
+TTCN_Logger::log_event_str(" }");
+} else TTCN_Logger::log_event_str("{ }");
+break;
+case COMPLEMENTED_LIST:
+TTCN_Logger::log_event_str("complement");
+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;
+default:
+log_generic();
+}
+log_restricted();
+log_ifpresent();
+}
+
+void Integer__array_template::log_match(const Integer__array& match_value, boolean legacy) const
+{
+if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
+if(match(match_value, legacy)){
+TTCN_Logger::print_logmatch_buffer();
+TTCN_Logger::log_event_str(" matched");
+}else{
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
+TTCN_Logger::log_logmatch_info("[%d]", elem_count);
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+TTCN_Logger::set_logmatch_buffer_len(previous_size);
+}
+}
+log_match_length(single_value.n_elements);
+} else {
+TTCN_Logger::print_logmatch_buffer();
+match_value.log();
+TTCN_Logger::log_event_str(" with ");
+log();
+TTCN_Logger::log_event_str(" unmatched");
+}
+}
+return;
+}
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+}
+TTCN_Logger::log_event_str(" }");
+log_match_length(single_value.n_elements);
+} else {
+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 Integer__array_template::encode_text(Text_Buf& text_buf) const
+{
+encode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+text_buf.push_int(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+single_value.value_elements[elem_count]->encode_text(text_buf);
+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/unsupported template of type @General_Types.Integer_array.");
+}
+}
+
+void Integer__array_template::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+decode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = text_buf.pull_int().get_val();
+if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @General_Types.Integer_array.");
+single_value.value_elements = (Integers_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+single_value.value_elements[elem_count] = new Integers_template;
+single_value.value_elements[elem_count]->decode_text(text_buf);
+}
+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 Integer__array_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: An unknown/unsupported selection was received for a template of type @General_Types.Integer_array.");
+}
+}
+
+boolean Integer__array_template::is_present(boolean legacy) const
+{
+if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
+return !match_omit(legacy);
+}
+
+boolean Integer__array_template::match_omit(boolean legacy) const
+{
+if (is_ifpresent) return TRUE;
+switch (template_selection) {
+case OMIT_VALUE:
+case ANY_OR_OMIT:
+return TRUE;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+if (legacy) {
+for (unsigned int i=0; i<value_list.n_values; i++)
+if (value_list.list_value[i].match_omit())
+return template_selection==VALUE_LIST;
+return template_selection==COMPLEMENTED_LIST;
+} // else fall through
+default:
+return FALSE;
+}
+return FALSE;
+}
+
+void Integer__array_template::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
+ switch (param.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: {
+ Integer__array_template temp;
+ temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
+ for (size_t p_i=0; p_i<param.get_size(); p_i++) {
+ temp.list_item(p_i).set_param(*param.get_elem(p_i));
+ }
+ *this = temp;
+ break; }
+ case Module_Param::MP_Indexed_List:
+ if (template_selection!=SPECIFIC_VALUE) set_size(0);
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
+ }
+ break;
+ case Module_Param::MP_Value_List: {
+ set_size(param.get_size());
+ int curr_idx = 0;
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ switch (param.get_elem(p_i)->get_type()) {
+ case Module_Param::MP_NotUsed:
+ curr_idx++;
+ break;
+ case Module_Param::MP_Permutation_Template: {
+ int perm_start_idx = curr_idx;
+ for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) {
+ (*this)[curr_idx].set_param(*(param.get_elem(p_i)->get_elem(perm_i)));
+ curr_idx++;
+ }
+ int perm_end_idx = curr_idx - 1;
+ add_permutation(perm_start_idx, perm_end_idx);
+ } break;
+ default:
+ (*this)[curr_idx].set_param(*param.get_elem(p_i));
+ curr_idx++;
+ }
+ }
+ } break;
+ default:
+ param.type_error("record of template", "@General_Types.Integer_array");
+ }
+ is_ifpresent = param.get_ifpresent();
+ set_length_range(param);
+}
+
+void Integer__array_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;
+for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@General_Types.Integer_array");
+return;
+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 : "@General_Types.Integer_array");
+}
+
+boolean Integer__array_template::get_istemplate_kind(const char* type) const {
+if (!strcmp(type, "AnyElement")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "AnyElementsOrNone")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "permutation")) {
+ return number_of_permutations;
+} else if (!strcmp(type, "length")) {
+ return length_restriction_type != NO_LENGTH_RESTRICTION;
+} else {
+ return Base_Template::get_istemplate_kind(type);
+}
+}
+Protocols::Protocols()
+{
+enum_value = UNBOUND_VALUE;
+}
+
+Protocols::Protocols(int other_value)
+{
+if (!is_valid_enum(other_value)) TTCN_error("Initializing a variable of enumerated type @General_Types.Protocols with invalid numeric value %d.", other_value);
+enum_value = (enum_type)other_value;
+}
+
+Protocols::Protocols(enum_type other_value)
+{
+enum_value = other_value;
+}
+
+Protocols::Protocols(const Protocols& other_value)
+: Base_Type()
+{
+if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Copying an unbound value of enumerated type @General_Types.Protocols.");
+enum_value = other_value.enum_value;
+}
+
+Protocols& Protocols::operator=(int other_value)
+{
+if (!is_valid_enum(other_value)) TTCN_error("Assigning unknown numeric value %d to a variable of enumerated type @General_Types.Protocols.", other_value);
+enum_value = (enum_type)other_value;
+return *this;
+}
+
+Protocols& Protocols::operator=(enum_type other_value)
+{
+enum_value = other_value;
+return *this;
+}
+
+Protocols& Protocols::operator=(const Protocols& other_value)
+{
+if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @General_Types.Protocols.");
+enum_value = other_value.enum_value;
+return *this;
+}
+
+boolean Protocols::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 @General_Types.Protocols.");
+return enum_value == other_value;
+}
+
+boolean Protocols::operator==(const Protocols& other_value) const
+{
+if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+return enum_value == other_value.enum_value;
+}
+
+boolean Protocols::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 @General_Types.Protocols.");
+return enum_value < other_value;
+}
+
+boolean Protocols::operator<(const Protocols& other_value) const
+{
+if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+return enum_value < other_value.enum_value;
+}
+
+boolean Protocols::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 @General_Types.Protocols.");
+return enum_value > other_value;
+}
+
+boolean Protocols::operator>(const Protocols& other_value) const
+{
+if (enum_value == UNBOUND_VALUE) TTCN_error("The left operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+if (other_value.enum_value == UNBOUND_VALUE) TTCN_error("The right operand of comparison is an unbound value of enumerated type @General_Types.Protocols.");
+return enum_value > other_value.enum_value;
+}
+
+const char *Protocols::enum_to_str(enum_type enum_par)
+{
+switch (enum_par) {
+case mtp3: return "mtp3";
+case sccp: return "sccp";
+case isup: return "isup";
+case bicc: return "bicc";
+case qaal2: return "qaal2";
+case gcp: return "gcp";
+case bssap: return "bssap";
+case bssmap: return "bssmap";
+case ranap: return "ranap";
+case dtap: return "dtap";
+default: return "<unknown>";
+}
+}
+
+Protocols::enum_type Protocols::str_to_enum(const char *str_par)
+{
+if (!strcmp(str_par, "mtp3")) return mtp3;
+else if (!strcmp(str_par, "sccp")) return sccp;
+else if (!strcmp(str_par, "isup")) return isup;
+else if (!strcmp(str_par, "bicc")) return bicc;
+else if (!strcmp(str_par, "qaal2")) return qaal2;
+else if (!strcmp(str_par, "gcp")) return gcp;
+else if (!strcmp(str_par, "bssap")) return bssap;
+else if (!strcmp(str_par, "bssmap")) return bssmap;
+else if (!strcmp(str_par, "ranap")) return ranap;
+else if (!strcmp(str_par, "dtap")) return dtap;
+else return UNKNOWN_VALUE;
+}
+
+boolean Protocols::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:
+return TRUE;
+default:
+return FALSE;
+}
+}
+
+int Protocols::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 @General_Types.Protocols.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
+return enum_par;
+}
+
+int Protocols::enum2int(const Protocols& 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 @General_Types.Protocols.", enum_par==UNBOUND_VALUE?"unbound":"invalid");
+return enum_par.enum_value;
+}
+
+void Protocols::int2enum(int int_val)
+{
+if (!is_valid_enum(int_val)) TTCN_error("Assigning invalid numeric value %d to a variable of enumerated type @General_Types.Protocols.", int_val);
+enum_value = (enum_type)int_val;
+}
+
+Protocols::operator Protocols::enum_type() const
+{
+if (enum_value == UNBOUND_VALUE) TTCN_error("Using the value of an unbound variable of enumerated type @General_Types.Protocols.");
+return enum_value;
+}
+
+void Protocols::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 Protocols::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_VALUE, "enumerated value");
+ if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error("enumerated value", "@General_Types.Protocols");
+ enum_value = str_to_enum(param.get_enumerated());
+ if (!is_valid_enum(enum_value)) {
+ param.error("Invalid enumerated value for type @General_Types.Protocols.");
+ }
+}
+
+void Protocols::encode_text(Text_Buf& text_buf) const
+{
+if (enum_value == UNBOUND_VALUE) TTCN_error("Text encoder: Encoding an unbound value of enumerated type @General_Types.Protocols.");
+text_buf.push_int(enum_value);
+}
+
+void Protocols::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 @General_Types.Protocols.", enum_value);
+}
+
+void Protocols::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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);
+ 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;}
+ default:
+ TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+void Protocols::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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();
+ if(b_data[p_buf.get_len()-1]!='\0'){
+ 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);
+ 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)<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;}
+ default:
+ TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+int Protocols::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)
+{
+ int decoded_value = 0;
+ int decoded_length = RAW_decode_enum_type(p_td, p_buf, limit, top_bit_ord, decoded_value, 4, no_err);
+ if (decoded_length < 0) return decoded_length;
+ if (is_valid_enum(decoded_value)) enum_value = (enum_type)decoded_value;
+ else {
+ if(no_err){
+ return -1;
+ } else {
+ TTCN_EncDec_ErrorContext::error
+ (TTCN_EncDec::ET_ENC_ENUM, "Invalid enum value '%d' for '%s': ",decoded_value, p_td.name);
+ enum_value = UNKNOWN_VALUE;
+ }
+ }
+ return decoded_length;
+}
+
+int Protocols::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const
+{
+ return RAW_encode_enum_type(p_td, myleaf, (int)enum_value, 4);
+}
+
+void Protocols_template::copy_template(const Protocols_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:
+value_list.n_values = other_value.value_list.n_values;
+value_list.list_value = new Protocols_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;
+default:
+TTCN_error("Copying an uninitialized/unsupported template of enumerated type @General_Types.Protocols.");
+}
+}
+
+Protocols_template::Protocols_template()
+{
+}
+
+Protocols_template::Protocols_template(template_sel other_value)
+ : Base_Template(other_value)
+{
+check_single_selection(other_value);
+}
+
+Protocols_template::Protocols_template(int other_value)
+ : Base_Template(SPECIFIC_VALUE)
+{
+if (!Protocols::is_valid_enum(other_value)) TTCN_error("Initializing a template of enumerated type @General_Types.Protocols with unknown numeric value %d.", other_value);
+single_value = (Protocols::enum_type)other_value;
+}
+
+Protocols_template::Protocols_template(Protocols::enum_type other_value)
+ : Base_Template(SPECIFIC_VALUE)
+{
+single_value = other_value;
+}
+
+Protocols_template::Protocols_template(const Protocols& other_value)
+ : Base_Template(SPECIFIC_VALUE)
+{
+if (other_value.enum_value == Protocols::UNBOUND_VALUE) TTCN_error("Creating a template from an unbound value of enumerated type @General_Types.Protocols.");
+single_value = other_value.enum_value;
+}
+
+Protocols_template::Protocols_template(const OPTIONAL<Protocols>& other_value)
+{
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+set_selection(SPECIFIC_VALUE);
+single_value = (Protocols::enum_type)(const Protocols&)other_value;
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Creating a template of enumerated type @General_Types.Protocols from an unbound optional field.");
+}
+}
+
+Protocols_template::Protocols_template(const Protocols_template& other_value)
+ : Base_Template()
+{
+copy_template(other_value);
+}
+
+Protocols_template::~Protocols_template()
+{
+clean_up();
+}
+
+boolean Protocols_template::is_bound() const
+{
+if (template_selection == UNINITIALIZED_TEMPLATE && !is_ifpresent) return FALSE;
+return TRUE;
+}
+
+boolean Protocols_template::is_value() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
+return single_value != Protocols::UNBOUND_VALUE;
+}
+
+void Protocols_template::clean_up()
+{
+if (template_selection == VALUE_LIST || template_selection == COMPLEMENTED_LIST) delete [] value_list.list_value;
+template_selection = UNINITIALIZED_TEMPLATE;
+}
+
+Protocols_template& Protocols_template::operator=(template_sel other_value)
+{
+check_single_selection(other_value);
+clean_up();
+set_selection(other_value);
+return *this;
+}
+
+Protocols_template& Protocols_template::operator=(int other_value)
+{
+if (!Protocols::is_valid_enum(other_value)) TTCN_warning("Assigning unknown numeric value %d to a template of enumerated type @General_Types.Protocols.", other_value);
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value = (Protocols::enum_type)other_value;
+return *this;
+}
+
+Protocols_template& Protocols_template::operator=(Protocols::enum_type other_value)
+{
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value = other_value;
+return *this;
+}
+
+Protocols_template& Protocols_template::operator=(const Protocols& other_value)
+{
+if (other_value.enum_value == Protocols::UNBOUND_VALUE) TTCN_error("Assignment of an unbound value of enumerated type @General_Types.Protocols to a template.");
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value = other_value.enum_value;
+return *this;
+}
+
+Protocols_template& Protocols_template::operator=(const OPTIONAL<Protocols>& other_value)
+{
+clean_up();
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+set_selection(SPECIFIC_VALUE);
+single_value = (Protocols::enum_type)(const Protocols&)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 @General_Types.Protocols.");
+}
+return *this;
+}
+
+Protocols_template& Protocols_template::operator=(const Protocols_template& other_value)
+{
+if (&other_value != this) {
+clean_up();
+copy_template(other_value);
+}
+return *this;
+}
+
+boolean Protocols_template::match(Protocols::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;
+default:
+TTCN_error("Matching an uninitialized/unsupported template of enumerated type @General_Types.Protocols.");
+}
+return FALSE;
+}
+
+boolean Protocols_template::match(const Protocols& other_value, boolean) const
+{
+if (other_value.enum_value == Protocols::UNBOUND_VALUE) TTCN_error("Matching a template of enumerated type @General_Types.Protocols with an unbound value.");
+return match(other_value.enum_value);
+}
+
+Protocols::enum_type Protocols_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 @General_Types.Protocols.");
+return single_value;
+}
+
+void Protocols_template::set_type(template_sel template_type, unsigned int list_length)
+{
+if (template_type != VALUE_LIST && template_type != COMPLEMENTED_LIST) TTCN_error("Setting an invalid list type for a template of enumerated type @General_Types.Protocols.");
+clean_up();
+set_selection(template_type);
+value_list.n_values = list_length;
+value_list.list_value = new Protocols_template[list_length];
+}
+
+Protocols_template& Protocols_template::list_item(unsigned int list_index)
+{
+if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Accessing a list element in a non-list template of enumerated type @General_Types.Protocols.");
+if (list_index >= value_list.n_values) TTCN_error("Index overflow in a value list template of enumerated type @General_Types.Protocols.");
+return value_list.list_value[list_index];
+}
+
+void Protocols_template::log() const
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+TTCN_Logger::log_event_enum(Protocols::enum_to_str(single_value), single_value);
+break;
+case COMPLEMENTED_LIST:
+TTCN_Logger::log_event_str("complement");
+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;
+default:
+log_generic();
+}
+log_ifpresent();
+}
+
+void Protocols_template::log_match(const Protocols& 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 Protocols_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 @General_Types.Protocols.");
+}
+}
+
+void Protocols_template::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+decode_text_base(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+single_value = (Protocols::enum_type)text_buf.pull_int().get_val();
+if (!Protocols::is_valid_enum(single_value)) TTCN_error("Text decoder: Unknown numeric value %d was received for a template of enumerated type @General_Types.Protocols.", 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 Protocols_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 @General_Types.Protocols.");
+}
+}
+
+boolean Protocols_template::is_present(boolean legacy) const
+{
+if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
+return !match_omit(legacy);
+}
+
+boolean Protocols_template::match_omit(boolean legacy) const
+{
+if (is_ifpresent) return TRUE;
+switch (template_selection) {
+case OMIT_VALUE:
+case ANY_OR_OMIT:
+return TRUE;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+if (legacy) {
+for (unsigned int i=0; i<value_list.n_values; i++)
+if (value_list.list_value[i].match_omit())
+return template_selection==VALUE_LIST;
+return template_selection==COMPLEMENTED_LIST;
+} // else fall through
+default:
+return FALSE;
+}
+return FALSE;
+}
+
+void Protocols_template::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_TEMPLATE, "enumerated template");
+ Module_Param_Ptr m_p = &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: {
+ Protocols_template new_temp;
+ new_temp.set_type(m_p->get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, m_p->get_size());
+ for (size_t p_i=0; p_i<m_p->get_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: {
+ Protocols::enum_type enum_val = Protocols::str_to_enum(m_p->get_enumerated());
+ if (!Protocols::is_valid_enum(enum_val)) {
+ param.error("Invalid enumerated value for type @General_Types.Protocols.");
+ }
+ *this = enum_val;
+ } break;
+ default:
+ param.type_error("enumerated template", "@General_Types.Protocols");
+ }
+ is_ifpresent = param.get_ifpresent();
+}
+
+void Protocols_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_VALUE:
+if (!is_ifpresent && template_selection==SPECIFIC_VALUE) return;
+break;
+case TR_OMIT:
+if (!is_ifpresent && (template_selection==OMIT_VALUE || template_selection==SPECIFIC_VALUE)) return;
+break;
+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 : "@General_Types.Protocols");
+}
+
+
+const COMPONENT ListOfDummy__comptype::UNBOUND_ELEM;
+ListOfDummy__comptype::ListOfDummy__comptype()
+{
+val_ptr = NULL;
+}
+
+ListOfDummy__comptype::ListOfDummy__comptype(null_type)
+{
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+}
+
+ListOfDummy__comptype::ListOfDummy__comptype(const ListOfDummy__comptype& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @General_Types.ListOfDummy_comptype.");
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+
+ListOfDummy__comptype::~ListOfDummy__comptype()
+{
+clean_up();
+if (val_ptr != NULL) val_ptr = NULL;
+}
+
+void ListOfDummy__comptype::clean_up()
+{
+if (val_ptr != NULL) {
+if (val_ptr->ref_count > 1) {
+val_ptr->ref_count--;
+val_ptr = NULL;
+}
+else if (val_ptr->ref_count == 1) {
+for (int elem_count = 0; elem_count < val_ptr->n_elements;
+elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)
+delete val_ptr->value_elements[elem_count];
+free_pointers((void**)val_ptr->value_elements);
+delete val_ptr;
+val_ptr = NULL;
+}
+else
+TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
+}
+}
+
+ListOfDummy__comptype& ListOfDummy__comptype::operator=(null_type)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+return *this;
+}
+
+ListOfDummy__comptype& ListOfDummy__comptype::operator=(const ListOfDummy__comptype& other_value)
+{
+if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (this != &other_value) {
+clean_up();
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+return *this;
+}
+
+boolean ListOfDummy__comptype::operator==(null_type) const
+{
+if (val_ptr == NULL)
+TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ListOfDummy_comptype.");
+return val_ptr->n_elements == 0 ;
+}
+
+boolean ListOfDummy__comptype::operator==(const ListOfDummy__comptype& other_value) const
+{
+if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (val_ptr == other_value.val_ptr) return TRUE;
+if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
+return FALSE;
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
+ if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
+} else return FALSE;
+} else {
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
+}
+}
+return TRUE;
+}
+
+COMPONENT& ListOfDummy__comptype::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ListOfDummy_comptype using a negative index: %d.", index_value);
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
+new_val_ptr->value_elements = (COMPONENT**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new COMPONENT(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
+if (val_ptr->value_elements[index_value] == NULL) {
+val_ptr->value_elements[index_value] = new COMPONENT;
+}
+return *val_ptr->value_elements[index_value];
+}
+
+COMPONENT& ListOfDummy__comptype::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ListOfDummy_comptype.");
+return (*this)[(int)index_value];
+}
+
+const COMPONENT& ListOfDummy__comptype::operator[](int index_value) const
+{
+if (val_ptr == NULL)
+TTCN_error("Accessing an element in an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ListOfDummy_comptype using a negative index: %d.", index_value);
+if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @General_Types.ListOfDummy_comptype: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
+return (val_ptr->value_elements[index_value] != NULL) ?
+*val_ptr->value_elements[index_value] : UNBOUND_ELEM;
+}
+
+const COMPONENT& ListOfDummy__comptype::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ListOfDummy_comptype.");
+return (*this)[(int)index_value];
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::operator<<=(int rotate_count) const
+{
+return *this >>= (-rotate_count);
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::operator<<=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate left operator.");
+return *this >>= (int)(-rotate_count);
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::operator>>=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate right operator.");
+return *this >>= (int)rotate_count;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::operator>>=(int rotate_count) const
+{
+if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (val_ptr->n_elements == 0) return *this;
+int rc;
+if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
+else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
+if (rc == 0) return *this;
+ListOfDummy__comptype ret_val;
+ret_val.set_size(val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::operator+(const ListOfDummy__comptype& other_value) const
+{
+if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @General_Types.ListOfDummy_comptype concatenation.");
+if (val_ptr->n_elements == 0) return other_value;
+if (other_value.val_ptr->n_elements == 0) return *this;
+ListOfDummy__comptype ret_val;
+ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+for (int i=0; i<other_value.val_ptr->n_elements; i++) {
+if (other_value.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new COMPONENT(*other_value.val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::substr(int index, int returncount) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @General_Types.ListOfDummy_comptype.");
+check_substr_arguments(val_ptr->n_elements, index, returncount, "@General_Types.ListOfDummy_comptype","element");
+ListOfDummy__comptype ret_val;
+ret_val.set_size(returncount);
+for (int i=0; i<returncount; i++) {
+if (val_ptr->value_elements[i+index] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i+index]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::replace(int index, int len, const ListOfDummy__comptype& repl) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @General_Types.ListOfDummy_comptype.");
+if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @General_Types.ListOfDummy_comptype.");
+check_replace_arguments(val_ptr->n_elements, index, len, "@General_Types.ListOfDummy_comptype","element");
+ListOfDummy__comptype ret_val;
+ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
+for (int i = 0; i < index; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < repl.val_ptr->n_elements; i++) {
+if (repl.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+index] = new COMPONENT(*repl.val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
+if (val_ptr->value_elements[index+i+len] != NULL) {
+ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new COMPONENT(*val_ptr->value_elements[index+i+len]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype::replace(int index, int len, const ListOfDummy__comptype_template& repl) const
+{
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return replace(index, len, repl.valueof());
+}
+
+void ListOfDummy__comptype::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @General_Types.ListOfDummy_comptype.");
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
+new_val_ptr->value_elements = (COMPONENT**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new COMPONENT(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (new_size > val_ptr->n_elements) {
+val_ptr->value_elements = (COMPONENT**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
+if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @General_Types.ListOfDummy_comptype: %d",new_size);
+#endif
+val_ptr->n_elements = new_size;
+} else if (new_size < val_ptr->n_elements) {
+for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
+val_ptr->value_elements = (COMPONENT**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+val_ptr->n_elements = new_size;
+}
+}
+
+boolean ListOfDummy__comptype::is_value() const
+{
+if (val_ptr == NULL) return FALSE;
+for(int i = 0; i < val_ptr->n_elements; ++i) {
+if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
+}
+return TRUE;
+}
+
+int ListOfDummy__comptype::size_of() const
+{
+if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @General_Types.ListOfDummy_comptype.");
+return val_ptr->n_elements;
+}
+
+int ListOfDummy__comptype::lengthof() const
+{
+if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @General_Types.ListOfDummy_comptype.");
+for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
+return 0;
+}
+
+void ListOfDummy__comptype::log() const
+{
+if (val_ptr == NULL) {;
+TTCN_Logger::log_event_unbound();
+return;
+}
+switch (val_ptr->n_elements) {
+case 0:
+TTCN_Logger::log_event_str("{ }");
+break;
+default:
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+(*this)[elem_count].log();
+}
+TTCN_Logger::log_event_str(" }");
+}
+}
+
+void ListOfDummy__comptype::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
+ switch (param.get_operation_type()) {
+ case Module_Param::OT_ASSIGN:
+ if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
+ *this = NULL_VALUE;
+ return;
+ }
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List:
+ set_size(param.get_size());
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if (curr->get_type()!=Module_Param::MP_NotUsed) {
+ (*this)[i].set_param(*curr);
+ if (!(*this)[i].is_bound()) {
+ delete val_ptr->value_elements[i];
+ val_ptr->value_elements[i] = NULL;
+ }
+ }
+ }
+ break;
+ case Module_Param::MP_Indexed_List:
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ (*this)[curr->get_id()->get_index()].set_param(*curr);
+ if (!(*this)[curr->get_id()->get_index()].is_bound()) {
+ delete val_ptr->value_elements[curr->get_id()->get_index()];
+ val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
+ }
+ }
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ListOfDummy_comptype");
+ }
+ break;
+ case Module_Param::OT_CONCAT:
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List: {
+ if (!is_bound()) *this = NULL_VALUE;
+ int start_idx = lengthof();
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
+ (*this)[start_idx+(int)i].set_param(*curr);
+ }
+ }
+ } break;
+ case Module_Param::MP_Indexed_List:
+ param.error("Cannot concatenate an indexed value list");
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ListOfDummy_comptype");
+ }
+ break;
+ default:
+ TTCN_error("Internal error: Unknown operation type.");
+ }
+}
+
+void ListOfDummy__comptype::set_implicit_omit()
+{
+if (val_ptr == NULL) return;
+for (int i = 0; i < val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
+}
+}
+
+void ListOfDummy__comptype::encode_text(Text_Buf& text_buf) const
+{
+if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @General_Types.ListOfDummy_comptype.");
+text_buf.push_int(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
+(*this)[elem_count].encode_text(text_buf);
+}
+
+void ListOfDummy__comptype::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = text_buf.pull_int().get_val();
+if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @General_Types.ListOfDummy_comptype.");
+val_ptr->value_elements = (COMPONENT**)allocate_pointers(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+val_ptr->value_elements[elem_count] = new COMPONENT;
+val_ptr->value_elements[elem_count]->decode_text(text_buf);
+}
+}
+
+void ListOfDummy__comptype_template::copy_value(const ListOfDummy__comptype& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @General_Types.ListOfDummy_comptype with an unbound value.");
+single_value.n_elements = other_value.size_of();
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (other_value[elem_count].is_bound()) {
+single_value.value_elements[elem_count] = new COMPONENT_template(other_value[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+}
+set_selection(SPECIFIC_VALUE);
+}
+
+void ListOfDummy__comptype_template::copy_template(const ListOfDummy__comptype_template& other_value)
+{
+switch (other_value.template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = other_value.single_value.n_elements;
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
+single_value.value_elements[elem_count] = new COMPONENT_template(*other_value.single_value.value_elements[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+}
+case OMIT_VALUE:
+case ANY_VALUE:
+case ANY_OR_OMIT:
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = other_value.value_list.n_values;
+value_list.list_value = new ListOfDummy__comptype_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;
+default:
+TTCN_error("Copying an uninitialized/unsupported template of type @General_Types.ListOfDummy_comptype.");
+break;
+}
+set_selection(other_value);
+}
+
+boolean ListOfDummy__comptype_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
+{
+if (value_index >= 0) return ((const ListOfDummy__comptype_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const ListOfDummy__comptype*)value_ptr)[value_index], legacy);
+else return ((const ListOfDummy__comptype_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template()
+{
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template(template_sel other_value)
+ : Record_Of_Template(other_value)
+{
+check_single_selection(other_value);
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template(null_type)
+ : Record_Of_Template(SPECIFIC_VALUE)
+{
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template(const ListOfDummy__comptype& other_value)
+{
+copy_value(other_value);
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template(const OPTIONAL<ListOfDummy__comptype>& other_value)
+{
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ListOfDummy__comptype&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Creating a template of type @General_Types.ListOfDummy_comptype from an unbound optional field.");
+}
+}
+
+ListOfDummy__comptype_template::ListOfDummy__comptype_template(const ListOfDummy__comptype_template& other_value)
+ : Record_Of_Template()
+{
+copy_template(other_value);
+}
+
+ListOfDummy__comptype_template::~ListOfDummy__comptype_template()
+{
+clean_up();
+}
+
+void ListOfDummy__comptype_template::clean_up()
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+free_pointers((void**)single_value.value_elements);
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+delete [] value_list.list_value;
+default:
+break;
+}
+template_selection = UNINITIALIZED_TEMPLATE;
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::operator=(template_sel other_value)
+{
+check_single_selection(other_value);
+clean_up();
+set_selection(other_value);
+return *this;
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::operator=(null_type)
+{
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+return *this;
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::operator=(const ListOfDummy__comptype& other_value)
+{
+clean_up();
+copy_value(other_value);
+return *this;
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::operator=(const OPTIONAL<ListOfDummy__comptype>& other_value)
+{
+clean_up();
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ListOfDummy__comptype&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Assignment of an unbound optional field to a template of type @General_Types.ListOfDummy_comptype.");
+}
+return *this;
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::operator=(const ListOfDummy__comptype_template& other_value)
+{
+if (&other_value != this) {
+clean_up();
+copy_template(other_value);
+}
+return *this;
+}
+
+COMPONENT_template& ListOfDummy__comptype_template::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ListOfDummy_comptype using a negative index: %d.", index_value);
+switch (template_selection)
+{
+ case SPECIFIC_VALUE:
+ if(index_value < single_value.n_elements) break;
+ // no break
+ case OMIT_VALUE:
+ case ANY_VALUE:
+ case ANY_OR_OMIT:
+ case UNINITIALIZED_TEMPLATE:
+ set_size(index_value + 1);
+ break;
+ default:
+ TTCN_error("Accessing an element of a non-specific template for type @General_Types.ListOfDummy_comptype.");
+ break;
+}
+return *single_value.value_elements[index_value];
+}
+
+COMPONENT_template& ListOfDummy__comptype_template::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ListOfDummy_comptype.");
+return (*this)[(int)index_value];
+}
+
+const COMPONENT_template& ListOfDummy__comptype_template::operator[](int index_value) const
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ListOfDummy_comptype using a negative index: %d.", index_value);
+if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @General_Types.ListOfDummy_comptype.");
+if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @General_Types.ListOfDummy_comptype: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
+return *single_value.value_elements[index_value];
+}
+
+const COMPONENT_template& ListOfDummy__comptype_template::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ListOfDummy_comptype.");
+return (*this)[(int)index_value];
+}
+
+void ListOfDummy__comptype_template::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @General_Types.ListOfDummy_comptype.");
+template_sel old_selection = template_selection;
+if (old_selection != SPECIFIC_VALUE) {
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+if (new_size > single_value.n_elements) {
+single_value.value_elements = (COMPONENT_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new COMPONENT_template(ANY_VALUE);
+} else {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+single_value.n_elements = new_size;
+} else if (new_size < single_value.n_elements) {
+for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+single_value.value_elements = (COMPONENT_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+single_value.n_elements = new_size;
+}
+}
+
+int ListOfDummy__comptype_template::n_elem() const
+{
+ switch (template_selection) {
+ case SPECIFIC_VALUE:
+ return single_value.n_elements;
+ break;
+ case VALUE_LIST:
+ return value_list.n_values;
+ break;
+ default:
+ TTCN_error("Performing n_elem");
+ }
+}
+
+int ListOfDummy__comptype_template::size_of(boolean is_size) const
+{
+const char* op_name = is_size ? "size" : "length";
+int min_size;
+boolean has_any_or_none;
+if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype which has an ifpresent attribute.", op_name);
+switch (template_selection)
+{
+case SPECIFIC_VALUE: {
+ min_size = 0;
+ has_any_or_none = FALSE;
+ int elem_count = single_value.n_elements;
+ if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
+ for (int i=0; i<elem_count; i++) {
+ switch (single_value.value_elements[i]->get_selection()) {
+ case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype containing omit element.", op_name);
+ case ANY_OR_OMIT:
+ has_any_or_none = TRUE;
+ break;
+ default:
+ min_size++;
+ break;
+ }
+ }
+} break;
+case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype containing omit value.", op_name);
+case ANY_VALUE:
+case ANY_OR_OMIT:
+ min_size = 0;
+ has_any_or_none = TRUE;
+ break;
+case VALUE_LIST:
+{
+ if (value_list.n_values<1)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype containing an empty list.", op_name);
+ int item_size = value_list.list_value[0].size_of(is_size);
+ for (unsigned int i = 1; i < value_list.n_values; i++) {
+ if (value_list.list_value[i].size_of(is_size)!=item_size)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype containing a value list with different sizes.", op_name);
+ }
+ min_size = item_size;
+ has_any_or_none = FALSE;
+ break;
+}
+case COMPLEMENTED_LIST:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_comptype containing complemented list.", op_name);
+default:
+ TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @General_Types.ListOfDummy_comptype.", op_name);
+}
+return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @General_Types.ListOfDummy_comptype");
+}
+
+boolean ListOfDummy__comptype_template::match(const ListOfDummy__comptype& other_value, boolean legacy) const
+{
+if (!other_value.is_bound()) return FALSE;
+int value_length = other_value.size_of();
+if (!match_length(value_length)) return FALSE;
+switch (template_selection) {
+case SPECIFIC_VALUE:
+return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
+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, legacy)) return template_selection == VALUE_LIST;
+return template_selection == COMPLEMENTED_LIST;
+default:
+TTCN_error("Matching with an uninitialized/unsupported template of type @General_Types.ListOfDummy_comptype.");
+}
+return FALSE;
+}
+
+boolean ListOfDummy__comptype_template::is_value() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
+return TRUE;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype_template::valueof() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @General_Types.ListOfDummy_comptype.");
+ListOfDummy__comptype ret_val;
+ret_val.set_size(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (single_value.value_elements[elem_count]->is_bound()) {
+ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
+}
+return ret_val;
+}
+
+ListOfDummy__comptype ListOfDummy__comptype_template::substr(int index, int returncount) const
+{
+if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
+return valueof().substr(index, returncount);
+}
+
+ListOfDummy__comptype ListOfDummy__comptype_template::replace(int index, int len, const ListOfDummy__comptype_template& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl.valueof());
+}
+
+ListOfDummy__comptype ListOfDummy__comptype_template::replace(int index, int len, const ListOfDummy__comptype& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl);
+}
+
+void ListOfDummy__comptype_template::set_type(template_sel template_type, unsigned int list_length)
+{
+clean_up();
+switch (template_type) {
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = list_length;
+value_list.list_value = new ListOfDummy__comptype_template[list_length];
+break;
+default:
+TTCN_error("Internal error: Setting an invalid type for a template of type @General_Types.ListOfDummy_comptype.");
+}
+set_selection(template_type);
+}
+
+ListOfDummy__comptype_template& ListOfDummy__comptype_template::list_item(unsigned int list_index)
+{
+if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @General_Types.ListOfDummy_comptype.");
+if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @General_Types.ListOfDummy_comptype.");
+return value_list.list_value[list_index];
+}
+
+void ListOfDummy__comptype_template::log() const
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+if (single_value.n_elements > 0) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
+single_value.value_elements[elem_count]->log();
+if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
+}
+TTCN_Logger::log_event_str(" }");
+} else TTCN_Logger::log_event_str("{ }");
+break;
+case COMPLEMENTED_LIST:
+TTCN_Logger::log_event_str("complement");
+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;
+default:
+log_generic();
+}
+log_restricted();
+log_ifpresent();
+}
+
+void ListOfDummy__comptype_template::log_match(const ListOfDummy__comptype& match_value, boolean legacy) const
+{
+if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
+if(match(match_value, legacy)){
+TTCN_Logger::print_logmatch_buffer();
+TTCN_Logger::log_event_str(" matched");
+}else{
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
+TTCN_Logger::log_logmatch_info("[%d]", elem_count);
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+TTCN_Logger::set_logmatch_buffer_len(previous_size);
+}
+}
+log_match_length(single_value.n_elements);
+} else {
+TTCN_Logger::print_logmatch_buffer();
+match_value.log();
+TTCN_Logger::log_event_str(" with ");
+log();
+TTCN_Logger::log_event_str(" unmatched");
+}
+}
+return;
+}
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+}
+TTCN_Logger::log_event_str(" }");
+log_match_length(single_value.n_elements);
+} else {
+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 ListOfDummy__comptype_template::encode_text(Text_Buf& text_buf) const
+{
+encode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+text_buf.push_int(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+single_value.value_elements[elem_count]->encode_text(text_buf);
+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/unsupported template of type @General_Types.ListOfDummy_comptype.");
+}
+}
+
+void ListOfDummy__comptype_template::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+decode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = text_buf.pull_int().get_val();
+if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @General_Types.ListOfDummy_comptype.");
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+single_value.value_elements[elem_count]->decode_text(text_buf);
+}
+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 ListOfDummy__comptype_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: An unknown/unsupported selection was received for a template of type @General_Types.ListOfDummy_comptype.");
+}
+}
+
+boolean ListOfDummy__comptype_template::is_present(boolean legacy) const
+{
+if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
+return !match_omit(legacy);
+}
+
+boolean ListOfDummy__comptype_template::match_omit(boolean legacy) const
+{
+if (is_ifpresent) return TRUE;
+switch (template_selection) {
+case OMIT_VALUE:
+case ANY_OR_OMIT:
+return TRUE;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+if (legacy) {
+for (unsigned int i=0; i<value_list.n_values; i++)
+if (value_list.list_value[i].match_omit())
+return template_selection==VALUE_LIST;
+return template_selection==COMPLEMENTED_LIST;
+} // else fall through
+default:
+return FALSE;
+}
+return FALSE;
+}
+
+void ListOfDummy__comptype_template::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
+ switch (param.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: {
+ ListOfDummy__comptype_template temp;
+ temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
+ for (size_t p_i=0; p_i<param.get_size(); p_i++) {
+ temp.list_item(p_i).set_param(*param.get_elem(p_i));
+ }
+ *this = temp;
+ break; }
+ case Module_Param::MP_Indexed_List:
+ if (template_selection!=SPECIFIC_VALUE) set_size(0);
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
+ }
+ break;
+ case Module_Param::MP_Value_List: {
+ set_size(param.get_size());
+ int curr_idx = 0;
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ switch (param.get_elem(p_i)->get_type()) {
+ case Module_Param::MP_NotUsed:
+ curr_idx++;
+ break;
+ case Module_Param::MP_Permutation_Template: {
+ int perm_start_idx = curr_idx;
+ for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) {
+ (*this)[curr_idx].set_param(*(param.get_elem(p_i)->get_elem(perm_i)));
+ curr_idx++;
+ }
+ int perm_end_idx = curr_idx - 1;
+ add_permutation(perm_start_idx, perm_end_idx);
+ } break;
+ default:
+ (*this)[curr_idx].set_param(*param.get_elem(p_i));
+ curr_idx++;
+ }
+ }
+ } break;
+ default:
+ param.type_error("record of template", "@General_Types.ListOfDummy_comptype");
+ }
+ is_ifpresent = param.get_ifpresent();
+ set_length_range(param);
+}
+
+void ListOfDummy__comptype_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;
+for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@General_Types.ListOfDummy_comptype");
+return;
+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 : "@General_Types.ListOfDummy_comptype");
+}
+
+boolean ListOfDummy__comptype_template::get_istemplate_kind(const char* type) const {
+if (!strcmp(type, "AnyElement")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "AnyElementsOrNone")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "permutation")) {
+ return number_of_permutations;
+} else if (!strcmp(type, "length")) {
+ return length_restriction_type != NO_LENGTH_RESTRICTION;
+} else {
+ return Base_Template::get_istemplate_kind(type);
+}
+}
+
+const COMPONENT ListOfDummy__CT::UNBOUND_ELEM;
+ListOfDummy__CT::ListOfDummy__CT()
+{
+val_ptr = NULL;
+}
+
+ListOfDummy__CT::ListOfDummy__CT(null_type)
+{
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+}
+
+ListOfDummy__CT::ListOfDummy__CT(const ListOfDummy__CT& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @General_Types.ListOfDummy_CT.");
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+
+ListOfDummy__CT::~ListOfDummy__CT()
+{
+clean_up();
+if (val_ptr != NULL) val_ptr = NULL;
+}
+
+void ListOfDummy__CT::clean_up()
+{
+if (val_ptr != NULL) {
+if (val_ptr->ref_count > 1) {
+val_ptr->ref_count--;
+val_ptr = NULL;
+}
+else if (val_ptr->ref_count == 1) {
+for (int elem_count = 0; elem_count < val_ptr->n_elements;
+elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)
+delete val_ptr->value_elements[elem_count];
+free_pointers((void**)val_ptr->value_elements);
+delete val_ptr;
+val_ptr = NULL;
+}
+else
+TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
+}
+}
+
+ListOfDummy__CT& ListOfDummy__CT::operator=(null_type)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+return *this;
+}
+
+ListOfDummy__CT& ListOfDummy__CT::operator=(const ListOfDummy__CT& other_value)
+{
+if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @General_Types.ListOfDummy_CT.");
+if (this != &other_value) {
+clean_up();
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+return *this;
+}
+
+boolean ListOfDummy__CT::operator==(null_type) const
+{
+if (val_ptr == NULL)
+TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ListOfDummy_CT.");
+return val_ptr->n_elements == 0 ;
+}
+
+boolean ListOfDummy__CT::operator==(const ListOfDummy__CT& other_value) const
+{
+if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ListOfDummy_CT.");
+if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ListOfDummy_CT.");
+if (val_ptr == other_value.val_ptr) return TRUE;
+if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
+return FALSE;
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
+ if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
+} else return FALSE;
+} else {
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
+}
+}
+return TRUE;
+}
+
+COMPONENT& ListOfDummy__CT::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ListOfDummy_CT using a negative index: %d.", index_value);
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
+new_val_ptr->value_elements = (COMPONENT**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new COMPONENT(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
+if (val_ptr->value_elements[index_value] == NULL) {
+val_ptr->value_elements[index_value] = new COMPONENT;
+}
+return *val_ptr->value_elements[index_value];
+}
+
+COMPONENT& ListOfDummy__CT::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ListOfDummy_CT.");
+return (*this)[(int)index_value];
+}
+
+const COMPONENT& ListOfDummy__CT::operator[](int index_value) const
+{
+if (val_ptr == NULL)
+TTCN_error("Accessing an element in an unbound value of type @General_Types.ListOfDummy_CT.");
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ListOfDummy_CT using a negative index: %d.", index_value);
+if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @General_Types.ListOfDummy_CT: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
+return (val_ptr->value_elements[index_value] != NULL) ?
+*val_ptr->value_elements[index_value] : UNBOUND_ELEM;
+}
+
+const COMPONENT& ListOfDummy__CT::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ListOfDummy_CT.");
+return (*this)[(int)index_value];
+}
+
+ListOfDummy__CT ListOfDummy__CT::operator<<=(int rotate_count) const
+{
+return *this >>= (-rotate_count);
+}
+
+ListOfDummy__CT ListOfDummy__CT::operator<<=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate left operator.");
+return *this >>= (int)(-rotate_count);
+}
+
+ListOfDummy__CT ListOfDummy__CT::operator>>=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate right operator.");
+return *this >>= (int)rotate_count;
+}
+
+ListOfDummy__CT ListOfDummy__CT::operator>>=(int rotate_count) const
+{
+if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @General_Types.ListOfDummy_CT.");
+if (val_ptr->n_elements == 0) return *this;
+int rc;
+if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
+else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
+if (rc == 0) return *this;
+ListOfDummy__CT ret_val;
+ret_val.set_size(val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__CT ListOfDummy__CT::operator+(const ListOfDummy__CT& other_value) const
+{
+if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @General_Types.ListOfDummy_CT concatenation.");
+if (val_ptr->n_elements == 0) return other_value;
+if (other_value.val_ptr->n_elements == 0) return *this;
+ListOfDummy__CT ret_val;
+ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+for (int i=0; i<other_value.val_ptr->n_elements; i++) {
+if (other_value.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new COMPONENT(*other_value.val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__CT ListOfDummy__CT::substr(int index, int returncount) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @General_Types.ListOfDummy_CT.");
+check_substr_arguments(val_ptr->n_elements, index, returncount, "@General_Types.ListOfDummy_CT","element");
+ListOfDummy__CT ret_val;
+ret_val.set_size(returncount);
+for (int i=0; i<returncount; i++) {
+if (val_ptr->value_elements[i+index] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i+index]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__CT ListOfDummy__CT::replace(int index, int len, const ListOfDummy__CT& repl) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @General_Types.ListOfDummy_CT.");
+if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @General_Types.ListOfDummy_CT.");
+check_replace_arguments(val_ptr->n_elements, index, len, "@General_Types.ListOfDummy_CT","element");
+ListOfDummy__CT ret_val;
+ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
+for (int i = 0; i < index; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new COMPONENT(*val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < repl.val_ptr->n_elements; i++) {
+if (repl.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+index] = new COMPONENT(*repl.val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
+if (val_ptr->value_elements[index+i+len] != NULL) {
+ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new COMPONENT(*val_ptr->value_elements[index+i+len]);
+}
+}
+return ret_val;
+}
+
+ListOfDummy__CT ListOfDummy__CT::replace(int index, int len, const ListOfDummy__CT_template& repl) const
+{
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return replace(index, len, repl.valueof());
+}
+
+void ListOfDummy__CT::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @General_Types.ListOfDummy_CT.");
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
+new_val_ptr->value_elements = (COMPONENT**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new COMPONENT(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (new_size > val_ptr->n_elements) {
+val_ptr->value_elements = (COMPONENT**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
+if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @General_Types.ListOfDummy_CT: %d",new_size);
+#endif
+val_ptr->n_elements = new_size;
+} else if (new_size < val_ptr->n_elements) {
+for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
+val_ptr->value_elements = (COMPONENT**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+val_ptr->n_elements = new_size;
+}
+}
+
+boolean ListOfDummy__CT::is_value() const
+{
+if (val_ptr == NULL) return FALSE;
+for(int i = 0; i < val_ptr->n_elements; ++i) {
+if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
+}
+return TRUE;
+}
+
+int ListOfDummy__CT::size_of() const
+{
+if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @General_Types.ListOfDummy_CT.");
+return val_ptr->n_elements;
+}
+
+int ListOfDummy__CT::lengthof() const
+{
+if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @General_Types.ListOfDummy_CT.");
+for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
+return 0;
+}
+
+void ListOfDummy__CT::log() const
+{
+if (val_ptr == NULL) {;
+TTCN_Logger::log_event_unbound();
+return;
+}
+switch (val_ptr->n_elements) {
+case 0:
+TTCN_Logger::log_event_str("{ }");
+break;
+default:
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+(*this)[elem_count].log();
+}
+TTCN_Logger::log_event_str(" }");
+}
+}
+
+void ListOfDummy__CT::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
+ switch (param.get_operation_type()) {
+ case Module_Param::OT_ASSIGN:
+ if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
+ *this = NULL_VALUE;
+ return;
+ }
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List:
+ set_size(param.get_size());
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if (curr->get_type()!=Module_Param::MP_NotUsed) {
+ (*this)[i].set_param(*curr);
+ if (!(*this)[i].is_bound()) {
+ delete val_ptr->value_elements[i];
+ val_ptr->value_elements[i] = NULL;
+ }
+ }
+ }
+ break;
+ case Module_Param::MP_Indexed_List:
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ (*this)[curr->get_id()->get_index()].set_param(*curr);
+ if (!(*this)[curr->get_id()->get_index()].is_bound()) {
+ delete val_ptr->value_elements[curr->get_id()->get_index()];
+ val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
+ }
+ }
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ListOfDummy_CT");
+ }
+ break;
+ case Module_Param::OT_CONCAT:
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List: {
+ if (!is_bound()) *this = NULL_VALUE;
+ int start_idx = lengthof();
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
+ (*this)[start_idx+(int)i].set_param(*curr);
+ }
+ }
+ } break;
+ case Module_Param::MP_Indexed_List:
+ param.error("Cannot concatenate an indexed value list");
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ListOfDummy_CT");
+ }
+ break;
+ default:
+ TTCN_error("Internal error: Unknown operation type.");
+ }
+}
+
+void ListOfDummy__CT::set_implicit_omit()
+{
+if (val_ptr == NULL) return;
+for (int i = 0; i < val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
+}
+}
+
+void ListOfDummy__CT::encode_text(Text_Buf& text_buf) const
+{
+if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @General_Types.ListOfDummy_CT.");
+text_buf.push_int(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
+(*this)[elem_count].encode_text(text_buf);
+}
+
+void ListOfDummy__CT::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = text_buf.pull_int().get_val();
+if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @General_Types.ListOfDummy_CT.");
+val_ptr->value_elements = (COMPONENT**)allocate_pointers(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+val_ptr->value_elements[elem_count] = new COMPONENT;
+val_ptr->value_elements[elem_count]->decode_text(text_buf);
+}
+}
+
+void ListOfDummy__CT_template::copy_value(const ListOfDummy__CT& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @General_Types.ListOfDummy_CT with an unbound value.");
+single_value.n_elements = other_value.size_of();
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (other_value[elem_count].is_bound()) {
+single_value.value_elements[elem_count] = new COMPONENT_template(other_value[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+}
+set_selection(SPECIFIC_VALUE);
+}
+
+void ListOfDummy__CT_template::copy_template(const ListOfDummy__CT_template& other_value)
+{
+switch (other_value.template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = other_value.single_value.n_elements;
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
+single_value.value_elements[elem_count] = new COMPONENT_template(*other_value.single_value.value_elements[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+}
+case OMIT_VALUE:
+case ANY_VALUE:
+case ANY_OR_OMIT:
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = other_value.value_list.n_values;
+value_list.list_value = new ListOfDummy__CT_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;
+default:
+TTCN_error("Copying an uninitialized/unsupported template of type @General_Types.ListOfDummy_CT.");
+break;
+}
+set_selection(other_value);
+}
+
+boolean ListOfDummy__CT_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
+{
+if (value_index >= 0) return ((const ListOfDummy__CT_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const ListOfDummy__CT*)value_ptr)[value_index], legacy);
+else return ((const ListOfDummy__CT_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template()
+{
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template(template_sel other_value)
+ : Record_Of_Template(other_value)
+{
+check_single_selection(other_value);
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template(null_type)
+ : Record_Of_Template(SPECIFIC_VALUE)
+{
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template(const ListOfDummy__CT& other_value)
+{
+copy_value(other_value);
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template(const OPTIONAL<ListOfDummy__CT>& other_value)
+{
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ListOfDummy__CT&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Creating a template of type @General_Types.ListOfDummy_CT from an unbound optional field.");
+}
+}
+
+ListOfDummy__CT_template::ListOfDummy__CT_template(const ListOfDummy__CT_template& other_value)
+ : Record_Of_Template()
+{
+copy_template(other_value);
+}
+
+ListOfDummy__CT_template::~ListOfDummy__CT_template()
+{
+clean_up();
+}
+
+void ListOfDummy__CT_template::clean_up()
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+free_pointers((void**)single_value.value_elements);
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+delete [] value_list.list_value;
+default:
+break;
+}
+template_selection = UNINITIALIZED_TEMPLATE;
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::operator=(template_sel other_value)
+{
+check_single_selection(other_value);
+clean_up();
+set_selection(other_value);
+return *this;
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::operator=(null_type)
+{
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+return *this;
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::operator=(const ListOfDummy__CT& other_value)
+{
+clean_up();
+copy_value(other_value);
+return *this;
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::operator=(const OPTIONAL<ListOfDummy__CT>& other_value)
+{
+clean_up();
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ListOfDummy__CT&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Assignment of an unbound optional field to a template of type @General_Types.ListOfDummy_CT.");
+}
+return *this;
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::operator=(const ListOfDummy__CT_template& other_value)
+{
+if (&other_value != this) {
+clean_up();
+copy_template(other_value);
+}
+return *this;
+}
+
+COMPONENT_template& ListOfDummy__CT_template::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ListOfDummy_CT using a negative index: %d.", index_value);
+switch (template_selection)
+{
+ case SPECIFIC_VALUE:
+ if(index_value < single_value.n_elements) break;
+ // no break
+ case OMIT_VALUE:
+ case ANY_VALUE:
+ case ANY_OR_OMIT:
+ case UNINITIALIZED_TEMPLATE:
+ set_size(index_value + 1);
+ break;
+ default:
+ TTCN_error("Accessing an element of a non-specific template for type @General_Types.ListOfDummy_CT.");
+ break;
+}
+return *single_value.value_elements[index_value];
+}
+
+COMPONENT_template& ListOfDummy__CT_template::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ListOfDummy_CT.");
+return (*this)[(int)index_value];
+}
+
+const COMPONENT_template& ListOfDummy__CT_template::operator[](int index_value) const
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ListOfDummy_CT using a negative index: %d.", index_value);
+if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @General_Types.ListOfDummy_CT.");
+if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @General_Types.ListOfDummy_CT: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
+return *single_value.value_elements[index_value];
+}
+
+const COMPONENT_template& ListOfDummy__CT_template::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ListOfDummy_CT.");
+return (*this)[(int)index_value];
+}
+
+void ListOfDummy__CT_template::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @General_Types.ListOfDummy_CT.");
+template_sel old_selection = template_selection;
+if (old_selection != SPECIFIC_VALUE) {
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+if (new_size > single_value.n_elements) {
+single_value.value_elements = (COMPONENT_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new COMPONENT_template(ANY_VALUE);
+} else {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new COMPONENT_template;
+}
+single_value.n_elements = new_size;
+} else if (new_size < single_value.n_elements) {
+for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+single_value.value_elements = (COMPONENT_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+single_value.n_elements = new_size;
+}
+}
+
+int ListOfDummy__CT_template::n_elem() const
+{
+ switch (template_selection) {
+ case SPECIFIC_VALUE:
+ return single_value.n_elements;
+ break;
+ case VALUE_LIST:
+ return value_list.n_values;
+ break;
+ default:
+ TTCN_error("Performing n_elem");
+ }
+}
+
+int ListOfDummy__CT_template::size_of(boolean is_size) const
+{
+const char* op_name = is_size ? "size" : "length";
+int min_size;
+boolean has_any_or_none;
+if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT which has an ifpresent attribute.", op_name);
+switch (template_selection)
+{
+case SPECIFIC_VALUE: {
+ min_size = 0;
+ has_any_or_none = FALSE;
+ int elem_count = single_value.n_elements;
+ if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
+ for (int i=0; i<elem_count; i++) {
+ switch (single_value.value_elements[i]->get_selection()) {
+ case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT containing omit element.", op_name);
+ case ANY_OR_OMIT:
+ has_any_or_none = TRUE;
+ break;
+ default:
+ min_size++;
+ break;
+ }
+ }
+} break;
+case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT containing omit value.", op_name);
+case ANY_VALUE:
+case ANY_OR_OMIT:
+ min_size = 0;
+ has_any_or_none = TRUE;
+ break;
+case VALUE_LIST:
+{
+ if (value_list.n_values<1)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT containing an empty list.", op_name);
+ int item_size = value_list.list_value[0].size_of(is_size);
+ for (unsigned int i = 1; i < value_list.n_values; i++) {
+ if (value_list.list_value[i].size_of(is_size)!=item_size)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT containing a value list with different sizes.", op_name);
+ }
+ min_size = item_size;
+ has_any_or_none = FALSE;
+ break;
+}
+case COMPLEMENTED_LIST:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ListOfDummy_CT containing complemented list.", op_name);
+default:
+ TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @General_Types.ListOfDummy_CT.", op_name);
+}
+return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @General_Types.ListOfDummy_CT");
+}
+
+boolean ListOfDummy__CT_template::match(const ListOfDummy__CT& other_value, boolean legacy) const
+{
+if (!other_value.is_bound()) return FALSE;
+int value_length = other_value.size_of();
+if (!match_length(value_length)) return FALSE;
+switch (template_selection) {
+case SPECIFIC_VALUE:
+return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
+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, legacy)) return template_selection == VALUE_LIST;
+return template_selection == COMPLEMENTED_LIST;
+default:
+TTCN_error("Matching with an uninitialized/unsupported template of type @General_Types.ListOfDummy_CT.");
+}
+return FALSE;
+}
+
+boolean ListOfDummy__CT_template::is_value() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
+return TRUE;
+}
+
+ListOfDummy__CT ListOfDummy__CT_template::valueof() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @General_Types.ListOfDummy_CT.");
+ListOfDummy__CT ret_val;
+ret_val.set_size(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (single_value.value_elements[elem_count]->is_bound()) {
+ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
+}
+return ret_val;
+}
+
+ListOfDummy__CT ListOfDummy__CT_template::substr(int index, int returncount) const
+{
+if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
+return valueof().substr(index, returncount);
+}
+
+ListOfDummy__CT ListOfDummy__CT_template::replace(int index, int len, const ListOfDummy__CT_template& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl.valueof());
+}
+
+ListOfDummy__CT ListOfDummy__CT_template::replace(int index, int len, const ListOfDummy__CT& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl);
+}
+
+void ListOfDummy__CT_template::set_type(template_sel template_type, unsigned int list_length)
+{
+clean_up();
+switch (template_type) {
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = list_length;
+value_list.list_value = new ListOfDummy__CT_template[list_length];
+break;
+default:
+TTCN_error("Internal error: Setting an invalid type for a template of type @General_Types.ListOfDummy_CT.");
+}
+set_selection(template_type);
+}
+
+ListOfDummy__CT_template& ListOfDummy__CT_template::list_item(unsigned int list_index)
+{
+if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @General_Types.ListOfDummy_CT.");
+if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @General_Types.ListOfDummy_CT.");
+return value_list.list_value[list_index];
+}
+
+void ListOfDummy__CT_template::log() const
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+if (single_value.n_elements > 0) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
+single_value.value_elements[elem_count]->log();
+if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
+}
+TTCN_Logger::log_event_str(" }");
+} else TTCN_Logger::log_event_str("{ }");
+break;
+case COMPLEMENTED_LIST:
+TTCN_Logger::log_event_str("complement");
+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;
+default:
+log_generic();
+}
+log_restricted();
+log_ifpresent();
+}
+
+void ListOfDummy__CT_template::log_match(const ListOfDummy__CT& match_value, boolean legacy) const
+{
+if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
+if(match(match_value, legacy)){
+TTCN_Logger::print_logmatch_buffer();
+TTCN_Logger::log_event_str(" matched");
+}else{
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
+TTCN_Logger::log_logmatch_info("[%d]", elem_count);
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+TTCN_Logger::set_logmatch_buffer_len(previous_size);
+}
+}
+log_match_length(single_value.n_elements);
+} else {
+TTCN_Logger::print_logmatch_buffer();
+match_value.log();
+TTCN_Logger::log_event_str(" with ");
+log();
+TTCN_Logger::log_event_str(" unmatched");
+}
+}
+return;
+}
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+}
+TTCN_Logger::log_event_str(" }");
+log_match_length(single_value.n_elements);
+} else {
+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 ListOfDummy__CT_template::encode_text(Text_Buf& text_buf) const
+{
+encode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+text_buf.push_int(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+single_value.value_elements[elem_count]->encode_text(text_buf);
+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/unsupported template of type @General_Types.ListOfDummy_CT.");
+}
+}
+
+void ListOfDummy__CT_template::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+decode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = text_buf.pull_int().get_val();
+if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @General_Types.ListOfDummy_CT.");
+single_value.value_elements = (COMPONENT_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+single_value.value_elements[elem_count] = new COMPONENT_template;
+single_value.value_elements[elem_count]->decode_text(text_buf);
+}
+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 ListOfDummy__CT_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: An unknown/unsupported selection was received for a template of type @General_Types.ListOfDummy_CT.");
+}
+}
+
+boolean ListOfDummy__CT_template::is_present(boolean legacy) const
+{
+if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
+return !match_omit(legacy);
+}
+
+boolean ListOfDummy__CT_template::match_omit(boolean legacy) const
+{
+if (is_ifpresent) return TRUE;
+switch (template_selection) {
+case OMIT_VALUE:
+case ANY_OR_OMIT:
+return TRUE;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+if (legacy) {
+for (unsigned int i=0; i<value_list.n_values; i++)
+if (value_list.list_value[i].match_omit())
+return template_selection==VALUE_LIST;
+return template_selection==COMPLEMENTED_LIST;
+} // else fall through
+default:
+return FALSE;
+}
+return FALSE;
+}
+
+void ListOfDummy__CT_template::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
+ switch (param.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: {
+ ListOfDummy__CT_template temp;
+ temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
+ for (size_t p_i=0; p_i<param.get_size(); p_i++) {
+ temp.list_item(p_i).set_param(*param.get_elem(p_i));
+ }
+ *this = temp;
+ break; }
+ case Module_Param::MP_Indexed_List:
+ if (template_selection!=SPECIFIC_VALUE) set_size(0);
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
+ }
+ break;
+ case Module_Param::MP_Value_List: {
+ set_size(param.get_size());
+ int curr_idx = 0;
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ switch (param.get_elem(p_i)->get_type()) {
+ case Module_Param::MP_NotUsed:
+ curr_idx++;
+ break;
+ case Module_Param::MP_Permutation_Template: {
+ int perm_start_idx = curr_idx;
+ for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) {
+ (*this)[curr_idx].set_param(*(param.get_elem(p_i)->get_elem(perm_i)));
+ curr_idx++;
+ }
+ int perm_end_idx = curr_idx - 1;
+ add_permutation(perm_start_idx, perm_end_idx);
+ } break;
+ default:
+ (*this)[curr_idx].set_param(*param.get_elem(p_i));
+ curr_idx++;
+ }
+ }
+ } break;
+ default:
+ param.type_error("record of template", "@General_Types.ListOfDummy_CT");
+ }
+ is_ifpresent = param.get_ifpresent();
+ set_length_range(param);
+}
+
+void ListOfDummy__CT_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;
+for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@General_Types.ListOfDummy_CT");
+return;
+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 : "@General_Types.ListOfDummy_CT");
+}
+
+boolean ListOfDummy__CT_template::get_istemplate_kind(const char* type) const {
+if (!strcmp(type, "AnyElement")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "AnyElementsOrNone")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "permutation")) {
+ return number_of_permutations;
+} else if (!strcmp(type, "length")) {
+ return length_restriction_type != NO_LENGTH_RESTRICTION;
+} else {
+ return Base_Template::get_istemplate_kind(type);
+}
+}
+
+const Protocols ProtocolList::UNBOUND_ELEM;
+ProtocolList::ProtocolList()
+{
+val_ptr = NULL;
+}
+
+ProtocolList::ProtocolList(null_type)
+{
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+}
+
+ProtocolList::ProtocolList(const ProtocolList& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Copying an unbound value of type @General_Types.ProtocolList.");
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+
+ProtocolList::~ProtocolList()
+{
+clean_up();
+if (val_ptr != NULL) val_ptr = NULL;
+}
+
+void ProtocolList::clean_up()
+{
+if (val_ptr != NULL) {
+if (val_ptr->ref_count > 1) {
+val_ptr->ref_count--;
+val_ptr = NULL;
+}
+else if (val_ptr->ref_count == 1) {
+for (int elem_count = 0; elem_count < val_ptr->n_elements;
+elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)
+delete val_ptr->value_elements[elem_count];
+free_pointers((void**)val_ptr->value_elements);
+delete val_ptr;
+val_ptr = NULL;
+}
+else
+TTCN_error("Internal error: Invalid reference counter in a record of/set of value.");
+}
+}
+
+ProtocolList& ProtocolList::operator=(null_type)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+return *this;
+}
+
+ProtocolList& ProtocolList::operator=(const ProtocolList& other_value)
+{
+if (other_value.val_ptr == NULL) TTCN_error("Assigning an unbound value of type @General_Types.ProtocolList.");
+if (this != &other_value) {
+clean_up();
+val_ptr = other_value.val_ptr;
+val_ptr->ref_count++;
+}
+return *this;
+}
+
+boolean ProtocolList::operator==(null_type) const
+{
+if (val_ptr == NULL)
+TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ProtocolList.");
+return val_ptr->n_elements == 0 ;
+}
+
+boolean ProtocolList::operator==(const ProtocolList& other_value) const
+{
+if (val_ptr == NULL) TTCN_error("The left operand of comparison is an unbound value of type @General_Types.ProtocolList.");
+if (other_value.val_ptr == NULL) TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ProtocolList.");
+if (val_ptr == other_value.val_ptr) return TRUE;
+if (val_ptr->n_elements != (other_value.val_ptr)->n_elements)
+return FALSE;
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL){
+ if (*val_ptr->value_elements[elem_count] != *(other_value.val_ptr)->value_elements[elem_count]) return FALSE;
+} else return FALSE;
+} else {
+if ((other_value.val_ptr)->value_elements[elem_count] != NULL) return FALSE;
+}
+}
+return TRUE;
+}
+
+Protocols& ProtocolList::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ProtocolList using a negative index: %d.", index_value);
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (index_value >= val_ptr->n_elements) ? index_value + 1 : val_ptr->n_elements;
+new_val_ptr->value_elements = (Protocols**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++){
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new Protocols(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (index_value >= val_ptr->n_elements) set_size(index_value + 1);
+if (val_ptr->value_elements[index_value] == NULL) {
+val_ptr->value_elements[index_value] = new Protocols;
+}
+return *val_ptr->value_elements[index_value];
+}
+
+Protocols& ProtocolList::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ProtocolList.");
+return (*this)[(int)index_value];
+}
+
+const Protocols& ProtocolList::operator[](int index_value) const
+{
+if (val_ptr == NULL)
+TTCN_error("Accessing an element in an unbound value of type @General_Types.ProtocolList.");
+if (index_value < 0) TTCN_error("Accessing an element of type @General_Types.ProtocolList using a negative index: %d.", index_value);
+if (index_value >= val_ptr->n_elements) TTCN_error("Index overflow in a value of type @General_Types.ProtocolList: The index is %d, but the value has only %d elements.", index_value, val_ptr->n_elements);
+return (val_ptr->value_elements[index_value] != NULL) ?
+*val_ptr->value_elements[index_value] : UNBOUND_ELEM;
+}
+
+const Protocols& ProtocolList::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a value of type @General_Types.ProtocolList.");
+return (*this)[(int)index_value];
+}
+
+ProtocolList ProtocolList::operator<<=(int rotate_count) const
+{
+return *this >>= (-rotate_count);
+}
+
+ProtocolList ProtocolList::operator<<=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate left operator.");
+return *this >>= (int)(-rotate_count);
+}
+
+ProtocolList ProtocolList::operator>>=(const INTEGER& rotate_count) const
+{
+rotate_count.must_bound("Unbound integer operand of rotate right operator.");
+return *this >>= (int)rotate_count;
+}
+
+ProtocolList ProtocolList::operator>>=(int rotate_count) const
+{
+if (val_ptr == NULL) TTCN_error("Performing rotation operation on an unbound value of type @General_Types.ProtocolList.");
+if (val_ptr->n_elements == 0) return *this;
+int rc;
+if (rotate_count>=0) rc = rotate_count % val_ptr->n_elements;
+else rc = val_ptr->n_elements - ((-rotate_count) % val_ptr->n_elements);
+if (rc == 0) return *this;
+ProtocolList ret_val;
+ret_val.set_size(val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[(i+rc)%val_ptr->n_elements] =new Protocols(*val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ProtocolList ProtocolList::operator+(const ProtocolList& other_value) const
+{
+if (val_ptr == NULL || other_value.val_ptr == NULL) TTCN_error("Unbound operand of @General_Types.ProtocolList concatenation.");
+if (val_ptr->n_elements == 0) return other_value;
+if (other_value.val_ptr->n_elements == 0) return *this;
+ProtocolList ret_val;
+ret_val.set_size(val_ptr->n_elements+other_value.val_ptr->n_elements);
+for (int i=0; i<val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Protocols(*val_ptr->value_elements[i]);
+}
+}
+for (int i=0; i<other_value.val_ptr->n_elements; i++) {
+if (other_value.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+val_ptr->n_elements] = new Protocols(*other_value.val_ptr->value_elements[i]);
+}
+}
+return ret_val;
+}
+
+ProtocolList ProtocolList::substr(int index, int returncount) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of substr() is an unbound value of type @General_Types.ProtocolList.");
+check_substr_arguments(val_ptr->n_elements, index, returncount, "@General_Types.ProtocolList","element");
+ProtocolList ret_val;
+ret_val.set_size(returncount);
+for (int i=0; i<returncount; i++) {
+if (val_ptr->value_elements[i+index] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Protocols(*val_ptr->value_elements[i+index]);
+}
+}
+return ret_val;
+}
+
+ProtocolList ProtocolList::replace(int index, int len, const ProtocolList& repl) const
+{
+if (val_ptr == NULL) TTCN_error("The first argument of replace() is an unbound value of type @General_Types.ProtocolList.");
+if (repl.val_ptr == NULL) TTCN_error("The fourth argument of replace() is an unbound value of type @General_Types.ProtocolList.");
+check_replace_arguments(val_ptr->n_elements, index, len, "@General_Types.ProtocolList","element");
+ProtocolList ret_val;
+ret_val.set_size(val_ptr->n_elements + repl.val_ptr->n_elements - len);
+for (int i = 0; i < index; i++) {
+if (val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i] = new Protocols(*val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < repl.val_ptr->n_elements; i++) {
+if (repl.val_ptr->value_elements[i] != NULL) {
+ret_val.val_ptr->value_elements[i+index] = new Protocols(*repl.val_ptr->value_elements[i]);
+}
+}
+for (int i = 0; i < val_ptr->n_elements - index - len; i++) {
+if (val_ptr->value_elements[index+i+len] != NULL) {
+ret_val.val_ptr->value_elements[index+i+repl.val_ptr->n_elements] = new Protocols(*val_ptr->value_elements[index+i+len]);
+}
+}
+return ret_val;
+}
+
+ProtocolList ProtocolList::replace(int index, int len, const ProtocolList_template& repl) const
+{
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return replace(index, len, repl.valueof());
+}
+
+void ProtocolList::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a value of type @General_Types.ProtocolList.");
+if (val_ptr == NULL) {
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = 0;
+val_ptr->value_elements = NULL;
+} else if (val_ptr->ref_count > 1) {
+struct recordof_setof_struct *new_val_ptr = new recordof_setof_struct;
+new_val_ptr->ref_count = 1;
+new_val_ptr->n_elements = (new_size < val_ptr->n_elements) ? new_size : val_ptr->n_elements;
+new_val_ptr->value_elements = (Protocols**)allocate_pointers(new_val_ptr->n_elements);
+for (int elem_count = 0; elem_count < new_val_ptr->n_elements; elem_count++) {
+if (val_ptr->value_elements[elem_count] != NULL){
+new_val_ptr->value_elements[elem_count] = new Protocols(*(val_ptr->value_elements[elem_count]));
+}
+}
+clean_up();
+val_ptr = new_val_ptr;
+}
+if (new_size > val_ptr->n_elements) {
+val_ptr->value_elements = (Protocols**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+#ifdef TITAN_MEMORY_DEBUG_SET_RECORD_OF
+if((val_ptr->n_elements/1000)!=(new_size/1000)) TTCN_warning("New size of type @General_Types.ProtocolList: %d",new_size);
+#endif
+val_ptr->n_elements = new_size;
+} else if (new_size < val_ptr->n_elements) {
+for (int elem_count = new_size; elem_count < val_ptr->n_elements; elem_count++)
+if (val_ptr->value_elements[elem_count] != NULL)delete val_ptr->value_elements[elem_count];
+val_ptr->value_elements = (Protocols**)reallocate_pointers((void**)val_ptr->value_elements, val_ptr->n_elements, new_size);
+val_ptr->n_elements = new_size;
+}
+}
+
+boolean ProtocolList::is_value() const
+{
+if (val_ptr == NULL) return FALSE;
+for(int i = 0; i < val_ptr->n_elements; ++i) {
+if (val_ptr->value_elements[i] == NULL || !val_ptr->value_elements[i]->is_value()) return FALSE;
+}
+return TRUE;
+}
+
+int ProtocolList::size_of() const
+{
+if (val_ptr == NULL) TTCN_error("Performing sizeof operation on an unbound value of type @General_Types.ProtocolList.");
+return val_ptr->n_elements;
+}
+
+int ProtocolList::lengthof() const
+{
+if (val_ptr == NULL) TTCN_error("Performing lengthof operation on an unbound value of type @General_Types.ProtocolList.");
+for (int my_length=val_ptr->n_elements; my_length>0; my_length--) if (val_ptr->value_elements[my_length-1] != NULL) return my_length;
+return 0;
+}
+
+void ProtocolList::log() const
+{
+if (val_ptr == NULL) {;
+TTCN_Logger::log_event_unbound();
+return;
+}
+switch (val_ptr->n_elements) {
+case 0:
+TTCN_Logger::log_event_str("{ }");
+break;
+default:
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+(*this)[elem_count].log();
+}
+TTCN_Logger::log_event_str(" }");
+}
+}
+
+void ProtocolList::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "record of value");
+ switch (param.get_operation_type()) {
+ case Module_Param::OT_ASSIGN:
+ if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
+ *this = NULL_VALUE;
+ return;
+ }
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List:
+ set_size(param.get_size());
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if (curr->get_type()!=Module_Param::MP_NotUsed) {
+ (*this)[i].set_param(*curr);
+ if (!(*this)[i].is_bound()) {
+ delete val_ptr->value_elements[i];
+ val_ptr->value_elements[i] = NULL;
+ }
+ }
+ }
+ break;
+ case Module_Param::MP_Indexed_List:
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ (*this)[curr->get_id()->get_index()].set_param(*curr);
+ if (!(*this)[curr->get_id()->get_index()].is_bound()) {
+ delete val_ptr->value_elements[curr->get_id()->get_index()];
+ val_ptr->value_elements[curr->get_id()->get_index()] = NULL;
+ }
+ }
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ProtocolList");
+ }
+ break;
+ case Module_Param::OT_CONCAT:
+ switch (param.get_type()) {
+ case Module_Param::MP_Value_List: {
+ if (!is_bound()) *this = NULL_VALUE;
+ int start_idx = lengthof();
+ for (size_t i=0; i<param.get_size(); ++i) {
+ Module_Param* const curr = param.get_elem(i);
+ if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
+ (*this)[start_idx+(int)i].set_param(*curr);
+ }
+ }
+ } break;
+ case Module_Param::MP_Indexed_List:
+ param.error("Cannot concatenate an indexed value list");
+ break;
+ default:
+ param.type_error("record of value", "@General_Types.ProtocolList");
+ }
+ break;
+ default:
+ TTCN_error("Internal error: Unknown operation type.");
+ }
+}
+
+void ProtocolList::set_implicit_omit()
+{
+if (val_ptr == NULL) return;
+for (int i = 0; i < val_ptr->n_elements; i++) {
+if (val_ptr->value_elements[i] != NULL) val_ptr->value_elements[i]->set_implicit_omit();
+}
+}
+
+void ProtocolList::encode_text(Text_Buf& text_buf) const
+{
+if (val_ptr == NULL) TTCN_error("Text encoder: Encoding an unbound value of type @General_Types.ProtocolList.");
+text_buf.push_int(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++)
+(*this)[elem_count].encode_text(text_buf);
+}
+
+void ProtocolList::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+val_ptr = new recordof_setof_struct;
+val_ptr->ref_count = 1;
+val_ptr->n_elements = text_buf.pull_int().get_val();
+if (val_ptr->n_elements < 0) TTCN_error("Text decoder: Negative size was received for a value of type @General_Types.ProtocolList.");
+val_ptr->value_elements = (Protocols**)allocate_pointers(val_ptr->n_elements);
+for (int elem_count = 0; elem_count < val_ptr->n_elements; elem_count++) {
+val_ptr->value_elements[elem_count] = new Protocols;
+val_ptr->value_elements[elem_count]->decode_text(text_buf);
+}
+}
+
+void ProtocolList::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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(FALSE, 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);
+ 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;}
+ default:
+ TTCN_error("Unknown coding method requested to encode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+void ProtocolList::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t 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();
+ if(b_data[p_buf.get_len()-1]!='\0'){
+ 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);
+ 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)<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;}
+ default:
+ TTCN_error("Unknown coding method requested to decode type '%s'", p_td.name);
+ }
+ va_end(pvar);
+}
+
+int ProtocolList::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 first_call){
+ int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);
+ limit-=prepaddlength;
+ int decoded_length=0;
+ int decoded_field_length=0;
+ size_t start_of_field=0;
+ if(first_call) {
+ clean_up();
+ val_ptr=new recordof_setof_struct;
+ val_ptr->ref_count=1;
+ val_ptr->n_elements=0;
+ val_ptr->value_elements=NULL;
+ }
+ int start_field=val_ptr->n_elements;
+ if(p_td.raw->fieldlength || sel_field!=-1){
+ int a=0;
+ if(sel_field==-1) sel_field=p_td.raw->fieldlength;
+ for(a=0;a<sel_field;a++){
+ decoded_field_length=(*this)[a+start_field].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE);
+ if(decoded_field_length < 0) return decoded_field_length;
+ decoded_length+=decoded_field_length;
+ limit-=decoded_field_length;
+ }
+ if(a==0) val_ptr->n_elements=0;
+ } else {
+ int a=start_field;
+ if(limit==0){
+ if(!first_call) return -1;
+ val_ptr->n_elements=0;
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+ }
+ while(limit>0){
+ start_of_field=p_buf.get_pos_bit();
+ decoded_field_length=(*this)[a].RAW_decode(*p_td.oftype_descr,p_buf,limit,top_bit_ord,TRUE);
+ if(decoded_field_length < 0){
+ delete &(*this)[a];
+ val_ptr->n_elements--;
+ p_buf.set_pos_bit(start_of_field);
+ if(a>start_field){
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+ } else return -1;
+ }
+ decoded_length+=decoded_field_length;
+ limit-=decoded_field_length;
+ a++;
+ }
+ }
+ return decoded_length+p_buf.increase_pos_padd(p_td.raw->padding)+prepaddlength;
+}
+
+int ProtocolList::RAW_encode(const TTCN_Typedescriptor_t& p_td,RAW_enc_tree& myleaf) const{
+ int encoded_length=0;
+ int encoded_num_of_records=p_td.raw->fieldlength?smaller(val_ptr->n_elements, p_td.raw->fieldlength):val_ptr->n_elements;
+ myleaf.isleaf=FALSE;
+ myleaf.rec_of=TRUE;
+ myleaf.body.node.num_of_nodes=encoded_num_of_records;
+ myleaf.body.node.nodes=init_nodes_of_enc_tree(encoded_num_of_records);
+ for(int a=0;a<encoded_num_of_records;a++){
+ myleaf.body.node.nodes[a]=new RAW_enc_tree(TRUE,&myleaf,&(myleaf.curr_pos),a,p_td.oftype_descr->raw);
+ encoded_length+=(*this)[a].RAW_encode(*p_td.oftype_descr,*myleaf.body.node.nodes[a]);
+ }
+ return myleaf.length=encoded_length;
+}
+
+void ProtocolList_template::copy_value(const ProtocolList& other_value)
+{
+if (!other_value.is_bound()) TTCN_error("Initialization of a template of type @General_Types.ProtocolList with an unbound value.");
+single_value.n_elements = other_value.size_of();
+single_value.value_elements = (Protocols_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (other_value[elem_count].is_bound()) {
+single_value.value_elements[elem_count] = new Protocols_template(other_value[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new Protocols_template;
+}
+}
+set_selection(SPECIFIC_VALUE);
+}
+
+void ProtocolList_template::copy_template(const ProtocolList_template& other_value)
+{
+switch (other_value.template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = other_value.single_value.n_elements;
+single_value.value_elements = (Protocols_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (UNINITIALIZED_TEMPLATE != other_value.single_value.value_elements[elem_count]->get_selection()) {
+single_value.value_elements[elem_count] = new Protocols_template(*other_value.single_value.value_elements[elem_count]);
+} else {
+single_value.value_elements[elem_count] = new Protocols_template;
+}
+}
+case OMIT_VALUE:
+case ANY_VALUE:
+case ANY_OR_OMIT:
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = other_value.value_list.n_values;
+value_list.list_value = new ProtocolList_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;
+default:
+TTCN_error("Copying an uninitialized/unsupported template of type @General_Types.ProtocolList.");
+break;
+}
+set_selection(other_value);
+}
+
+boolean ProtocolList_template::match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy)
+{
+if (value_index >= 0) return ((const ProtocolList_template*)template_ptr)->single_value.value_elements[template_index]->match((*(const ProtocolList*)value_ptr)[value_index], legacy);
+else return ((const ProtocolList_template*)template_ptr)->single_value.value_elements[template_index]->is_any_or_omit();
+}
+
+ProtocolList_template::ProtocolList_template()
+{
+}
+
+ProtocolList_template::ProtocolList_template(template_sel other_value)
+ : Record_Of_Template(other_value)
+{
+check_single_selection(other_value);
+}
+
+ProtocolList_template::ProtocolList_template(null_type)
+ : Record_Of_Template(SPECIFIC_VALUE)
+{
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+
+ProtocolList_template::ProtocolList_template(const ProtocolList& other_value)
+{
+copy_value(other_value);
+}
+
+ProtocolList_template::ProtocolList_template(const OPTIONAL<ProtocolList>& other_value)
+{
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ProtocolList&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Creating a template of type @General_Types.ProtocolList from an unbound optional field.");
+}
+}
+
+ProtocolList_template::ProtocolList_template(const ProtocolList_template& other_value)
+ : Record_Of_Template()
+{
+copy_template(other_value);
+}
+
+ProtocolList_template::~ProtocolList_template()
+{
+clean_up();
+}
+
+void ProtocolList_template::clean_up()
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+free_pointers((void**)single_value.value_elements);
+break;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+delete [] value_list.list_value;
+default:
+break;
+}
+template_selection = UNINITIALIZED_TEMPLATE;
+}
+
+ProtocolList_template& ProtocolList_template::operator=(template_sel other_value)
+{
+check_single_selection(other_value);
+clean_up();
+set_selection(other_value);
+return *this;
+}
+
+ProtocolList_template& ProtocolList_template::operator=(null_type)
+{
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+return *this;
+}
+
+ProtocolList_template& ProtocolList_template::operator=(const ProtocolList& other_value)
+{
+clean_up();
+copy_value(other_value);
+return *this;
+}
+
+ProtocolList_template& ProtocolList_template::operator=(const OPTIONAL<ProtocolList>& other_value)
+{
+clean_up();
+switch (other_value.get_selection()) {
+case OPTIONAL_PRESENT:
+copy_value((const ProtocolList&)other_value);
+break;
+case OPTIONAL_OMIT:
+set_selection(OMIT_VALUE);
+break;
+default:
+TTCN_error("Assignment of an unbound optional field to a template of type @General_Types.ProtocolList.");
+}
+return *this;
+}
+
+ProtocolList_template& ProtocolList_template::operator=(const ProtocolList_template& other_value)
+{
+if (&other_value != this) {
+clean_up();
+copy_template(other_value);
+}
+return *this;
+}
+
+Protocols_template& ProtocolList_template::operator[](int index_value)
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ProtocolList using a negative index: %d.", index_value);
+switch (template_selection)
+{
+ case SPECIFIC_VALUE:
+ if(index_value < single_value.n_elements) break;
+ // no break
+ case OMIT_VALUE:
+ case ANY_VALUE:
+ case ANY_OR_OMIT:
+ case UNINITIALIZED_TEMPLATE:
+ set_size(index_value + 1);
+ break;
+ default:
+ TTCN_error("Accessing an element of a non-specific template for type @General_Types.ProtocolList.");
+ break;
+}
+return *single_value.value_elements[index_value];
+}
+
+Protocols_template& ProtocolList_template::operator[](const INTEGER& index_value)
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ProtocolList.");
+return (*this)[(int)index_value];
+}
+
+const Protocols_template& ProtocolList_template::operator[](int index_value) const
+{
+if (index_value < 0) TTCN_error("Accessing an element of a template for type @General_Types.ProtocolList using a negative index: %d.", index_value);
+if (template_selection != SPECIFIC_VALUE) TTCN_error("Accessing an element of a non-specific template for type @General_Types.ProtocolList.");
+if (index_value >= single_value.n_elements) TTCN_error("Index overflow in a template of type @General_Types.ProtocolList: The index is %d, but the template has only %d elements.", index_value, single_value.n_elements);
+return *single_value.value_elements[index_value];
+}
+
+const Protocols_template& ProtocolList_template::operator[](const INTEGER& index_value) const
+{
+index_value.must_bound("Using an unbound integer value for indexing a template of type @General_Types.ProtocolList.");
+return (*this)[(int)index_value];
+}
+
+void ProtocolList_template::set_size(int new_size)
+{
+if (new_size < 0) TTCN_error("Internal error: Setting a negative size for a template of type @General_Types.ProtocolList.");
+template_sel old_selection = template_selection;
+if (old_selection != SPECIFIC_VALUE) {
+clean_up();
+set_selection(SPECIFIC_VALUE);
+single_value.n_elements = 0;
+single_value.value_elements = NULL;
+}
+if (new_size > single_value.n_elements) {
+single_value.value_elements = (Protocols_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+if (old_selection == ANY_VALUE || old_selection == ANY_OR_OMIT) {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new Protocols_template(ANY_VALUE);
+} else {
+for (int elem_count = single_value.n_elements; elem_count < new_size; elem_count++)
+single_value.value_elements[elem_count] = new Protocols_template;
+}
+single_value.n_elements = new_size;
+} else if (new_size < single_value.n_elements) {
+for (int elem_count = new_size; elem_count < single_value.n_elements; elem_count++)
+delete single_value.value_elements[elem_count];
+single_value.value_elements = (Protocols_template**)reallocate_pointers((void**)single_value.value_elements, single_value.n_elements, new_size);
+single_value.n_elements = new_size;
+}
+}
+
+int ProtocolList_template::n_elem() const
+{
+ switch (template_selection) {
+ case SPECIFIC_VALUE:
+ return single_value.n_elements;
+ break;
+ case VALUE_LIST:
+ return value_list.n_values;
+ break;
+ default:
+ TTCN_error("Performing n_elem");
+ }
+}
+
+int ProtocolList_template::size_of(boolean is_size) const
+{
+const char* op_name = is_size ? "size" : "length";
+int min_size;
+boolean has_any_or_none;
+if (is_ifpresent) TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList which has an ifpresent attribute.", op_name);
+switch (template_selection)
+{
+case SPECIFIC_VALUE: {
+ min_size = 0;
+ has_any_or_none = FALSE;
+ int elem_count = single_value.n_elements;
+ if (!is_size) { while (elem_count>0 && !single_value.value_elements[elem_count-1]->is_bound()) elem_count--; }
+ for (int i=0; i<elem_count; i++) {
+ switch (single_value.value_elements[i]->get_selection()) {
+ case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList containing omit element.", op_name);
+ case ANY_OR_OMIT:
+ has_any_or_none = TRUE;
+ break;
+ default:
+ min_size++;
+ break;
+ }
+ }
+} break;
+case OMIT_VALUE:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList containing omit value.", op_name);
+case ANY_VALUE:
+case ANY_OR_OMIT:
+ min_size = 0;
+ has_any_or_none = TRUE;
+ break;
+case VALUE_LIST:
+{
+ if (value_list.n_values<1)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList containing an empty list.", op_name);
+ int item_size = value_list.list_value[0].size_of(is_size);
+ for (unsigned int i = 1; i < value_list.n_values; i++) {
+ if (value_list.list_value[i].size_of(is_size)!=item_size)
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList containing a value list with different sizes.", op_name);
+ }
+ min_size = item_size;
+ has_any_or_none = FALSE;
+ break;
+}
+case COMPLEMENTED_LIST:
+ TTCN_error("Performing %sof() operation on a template of type @General_Types.ProtocolList containing complemented list.", op_name);
+default:
+ TTCN_error("Performing %sof() operation on an uninitialized/unsupported template of type @General_Types.ProtocolList.", op_name);
+}
+return check_section_is_single(min_size, has_any_or_none, op_name, "a", "template of type @General_Types.ProtocolList");
+}
+
+boolean ProtocolList_template::match(const ProtocolList& other_value, boolean legacy) const
+{
+if (!other_value.is_bound()) return FALSE;
+int value_length = other_value.size_of();
+if (!match_length(value_length)) return FALSE;
+switch (template_selection) {
+case SPECIFIC_VALUE:
+return match_record_of(&other_value, value_length, this, single_value.n_elements, match_function_specific, legacy);
+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, legacy)) return template_selection == VALUE_LIST;
+return template_selection == COMPLEMENTED_LIST;
+default:
+TTCN_error("Matching with an uninitialized/unsupported template of type @General_Types.ProtocolList.");
+}
+return FALSE;
+}
+
+boolean ProtocolList_template::is_value() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) return FALSE;
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (!single_value.value_elements[elem_count]->is_value()) return FALSE;
+return TRUE;
+}
+
+ProtocolList ProtocolList_template::valueof() const
+{
+if (template_selection != SPECIFIC_VALUE || is_ifpresent) TTCN_error("Performing a valueof or send operation on a non-specific template of type @General_Types.ProtocolList.");
+ProtocolList ret_val;
+ret_val.set_size(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+if (single_value.value_elements[elem_count]->is_bound()) {
+ret_val[elem_count] = single_value.value_elements[elem_count]->valueof();
+}
+return ret_val;
+}
+
+ProtocolList ProtocolList_template::substr(int index, int returncount) const
+{
+if (!is_value()) TTCN_error("The first argument of function substr() is a template with non-specific value.");
+return valueof().substr(index, returncount);
+}
+
+ProtocolList ProtocolList_template::replace(int index, int len, const ProtocolList_template& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+if (!repl.is_value()) TTCN_error("The fourth argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl.valueof());
+}
+
+ProtocolList ProtocolList_template::replace(int index, int len, const ProtocolList& repl) const
+{
+if (!is_value()) TTCN_error("The first argument of function replace() is a template with non-specific value.");
+return valueof().replace(index, len, repl);
+}
+
+void ProtocolList_template::set_type(template_sel template_type, unsigned int list_length)
+{
+clean_up();
+switch (template_type) {
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+value_list.n_values = list_length;
+value_list.list_value = new ProtocolList_template[list_length];
+break;
+default:
+TTCN_error("Internal error: Setting an invalid type for a template of type @General_Types.ProtocolList.");
+}
+set_selection(template_type);
+}
+
+ProtocolList_template& ProtocolList_template::list_item(unsigned int list_index)
+{
+if (template_selection != VALUE_LIST && template_selection != COMPLEMENTED_LIST) TTCN_error("Internal error: Accessing a list element of a non-list template of type @General_Types.ProtocolList.");
+if (list_index >= value_list.n_values) TTCN_error("Internal error: Index overflow in a value list template of type @General_Types.ProtocolList.");
+return value_list.list_value[list_index];
+}
+
+void ProtocolList_template::log() const
+{
+switch (template_selection) {
+case SPECIFIC_VALUE:
+if (single_value.n_elements > 0) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+if (permutation_starts_at(elem_count)) TTCN_Logger::log_event_str("permutation(");
+single_value.value_elements[elem_count]->log();
+if (permutation_ends_at(elem_count)) TTCN_Logger::log_char(')');
+}
+TTCN_Logger::log_event_str(" }");
+} else TTCN_Logger::log_event_str("{ }");
+break;
+case COMPLEMENTED_LIST:
+TTCN_Logger::log_event_str("complement");
+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;
+default:
+log_generic();
+}
+log_restricted();
+log_ifpresent();
+}
+
+void ProtocolList_template::log_match(const ProtocolList& match_value, boolean legacy) const
+{
+if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
+if(match(match_value, legacy)){
+TTCN_Logger::print_logmatch_buffer();
+TTCN_Logger::log_event_str(" matched");
+}else{
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){
+TTCN_Logger::log_logmatch_info("[%d]", elem_count);
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+TTCN_Logger::set_logmatch_buffer_len(previous_size);
+}
+}
+log_match_length(single_value.n_elements);
+} else {
+TTCN_Logger::print_logmatch_buffer();
+match_value.log();
+TTCN_Logger::log_event_str(" with ");
+log();
+TTCN_Logger::log_event_str(" unmatched");
+}
+}
+return;
+}
+if (template_selection == SPECIFIC_VALUE && single_value.n_elements > 0 && get_number_of_permutations() == 0 && single_value.n_elements == match_value.size_of()) {
+TTCN_Logger::log_event_str("{ ");
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+if (elem_count > 0) TTCN_Logger::log_event_str(", ");
+single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);
+}
+TTCN_Logger::log_event_str(" }");
+log_match_length(single_value.n_elements);
+} else {
+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 ProtocolList_template::encode_text(Text_Buf& text_buf) const
+{
+encode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+text_buf.push_int(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++)
+single_value.value_elements[elem_count]->encode_text(text_buf);
+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/unsupported template of type @General_Types.ProtocolList.");
+}
+}
+
+void ProtocolList_template::decode_text(Text_Buf& text_buf)
+{
+clean_up();
+decode_text_permutation(text_buf);
+switch (template_selection) {
+case SPECIFIC_VALUE:
+single_value.n_elements = text_buf.pull_int().get_val();
+if (single_value.n_elements < 0) TTCN_error("Text decoder: Negative size was received for a template of type @General_Types.ProtocolList.");
+single_value.value_elements = (Protocols_template**)allocate_pointers(single_value.n_elements);
+for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
+single_value.value_elements[elem_count] = new Protocols_template;
+single_value.value_elements[elem_count]->decode_text(text_buf);
+}
+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 ProtocolList_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: An unknown/unsupported selection was received for a template of type @General_Types.ProtocolList.");
+}
+}
+
+boolean ProtocolList_template::is_present(boolean legacy) const
+{
+if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
+return !match_omit(legacy);
+}
+
+boolean ProtocolList_template::match_omit(boolean legacy) const
+{
+if (is_ifpresent) return TRUE;
+switch (template_selection) {
+case OMIT_VALUE:
+case ANY_OR_OMIT:
+return TRUE;
+case VALUE_LIST:
+case COMPLEMENTED_LIST:
+if (legacy) {
+for (unsigned int i=0; i<value_list.n_values; i++)
+if (value_list.list_value[i].match_omit())
+return template_selection==VALUE_LIST;
+return template_selection==COMPLEMENTED_LIST;
+} // else fall through
+default:
+return FALSE;
+}
+return FALSE;
+}
+
+void ProtocolList_template::set_param(Module_Param& param)
+{
+ param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
+ switch (param.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: {
+ ProtocolList_template temp;
+ temp.set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
+ for (size_t p_i=0; p_i<param.get_size(); p_i++) {
+ temp.list_item(p_i).set_param(*param.get_elem(p_i));
+ }
+ *this = temp;
+ break; }
+ case Module_Param::MP_Indexed_List:
+ if (template_selection!=SPECIFIC_VALUE) set_size(0);
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));
+ }
+ break;
+ case Module_Param::MP_Value_List: {
+ set_size(param.get_size());
+ int curr_idx = 0;
+ for (size_t p_i=0; p_i<param.get_size(); ++p_i) {
+ switch (param.get_elem(p_i)->get_type()) {
+ case Module_Param::MP_NotUsed:
+ curr_idx++;
+ break;
+ case Module_Param::MP_Permutation_Template: {
+ int perm_start_idx = curr_idx;
+ for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) {
+ (*this)[curr_idx].set_param(*(param.get_elem(p_i)->get_elem(perm_i)));
+ curr_idx++;
+ }
+ int perm_end_idx = curr_idx - 1;
+ add_permutation(perm_start_idx, perm_end_idx);
+ } break;
+ default:
+ (*this)[curr_idx].set_param(*param.get_elem(p_i));
+ curr_idx++;
+ }
+ }
+ } break;
+ default:
+ param.type_error("record of template", "@General_Types.ProtocolList");
+ }
+ is_ifpresent = param.get_ifpresent();
+ set_length_range(param);
+}
+
+void ProtocolList_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;
+for (int i=0; i<single_value.n_elements; i++) single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "@General_Types.ProtocolList");
+return;
+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 : "@General_Types.ProtocolList");
+}
+
+boolean ProtocolList_template::get_istemplate_kind(const char* type) const {
+if (!strcmp(type, "AnyElement")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_VALUE) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "AnyElementsOrNone")) {
+ if (template_selection != SPECIFIC_VALUE) {
+ return FALSE;
+ }
+ for (int i = 0; i < single_value.n_elements; i++) {
+ if (single_value.value_elements[i]->get_selection() == ANY_OR_OMIT) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+} else if (!strcmp(type, "permutation")) {
+ return number_of_permutations;
+} else if (!strcmp(type, "length")) {
+ return length_restriction_type != NO_LENGTH_RESTRICTION;
+} else {
+ return Base_Template::get_istemplate_kind(type);
+}
+}
+
+/* Bodies of functions, altsteps and testcases */
+
+void BIT1n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT1n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT1n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT1n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT2n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT2n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT2n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT2n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT3n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT3n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT3n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT3n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT4n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT4n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT4n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT4n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT5n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT5n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT5n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT5n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT6n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT6n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT6n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT6n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT7n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT7n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT7n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT7n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT8n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT8n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT8n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT8n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT9n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT9n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT9n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT9n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT12n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT12n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT12n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT12n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT14n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT14n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT14n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT14n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT15n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT15n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT15n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT15n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT16n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT16n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT16n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT16n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT56n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT56n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT56n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT56n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT14__24n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BITSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT14__24n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BITSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT1np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT1np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT1np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT1np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT2np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT2np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT2np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT2np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT3np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT3np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT3np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT3np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT4np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT4np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT4np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT4np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT5np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT5np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT5np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT5np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT6np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT6np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT6np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT6np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT7np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT7np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT7np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT7np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT15np_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT15np_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT15np_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT15np_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT1_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT1_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT1_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT1_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT2_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT2_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT2_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT2_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT3_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT3_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT3_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT3_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT4_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT4_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT4_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT4_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT5_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT5_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT5_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT5_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT6_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT6_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT6_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT6_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT7_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT7_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT7_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT7_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT8_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT8_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT8_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT8_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT9_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT9_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT9_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT9_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT10_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT10_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT10_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT10_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT11_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT11_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT11_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT11_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT12_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT12_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT12_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT12_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT14_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT14_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT14_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT14_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT15_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT15_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT15_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT15_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT16_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT16_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT16_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT16_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT24_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT24_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT24_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT24_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT31_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT31_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT31_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT31_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT32_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT32_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT32_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT32_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT56_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT56_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT56_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT56_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT0n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT0n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT0n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT0n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT1n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT1n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT2n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT2n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT2n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT2n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT3n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT3n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT4n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT4n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT4n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT4n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT5n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT5n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT5n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT5n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT6n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT6n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT6n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT6n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT7n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT7n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT7n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT7n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT8n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT8n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT8n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT8n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT9n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT9n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT9n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT9n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT10n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT10n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT10n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT10n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT11n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT11n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT11n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT11n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT12n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT12n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT12n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT12n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT13n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT13n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT13n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT13n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT14n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT14n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT14n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT14n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT15n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT15n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT15n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT15n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT16n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT16n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT16n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT16n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT17n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT17n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT17n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT17n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT18n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT18n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT18n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT18n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT19n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT19n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT19n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT19n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT20n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT20n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT20n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT20n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT28n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT28n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT28n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT28n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT32n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT32n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT32n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT32n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT34n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT34n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT34n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT34n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT46n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT46n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT46n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT46n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT50n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT50n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT50n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT50n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT69n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT69n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT69n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT69n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT100n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT100n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT100n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT100n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT128n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT128n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT128n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT128n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT500n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT500n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT500n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT500n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCTNn_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCTNn_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__3n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__3n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__4n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__4n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__5n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__5n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__6n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__6n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__7n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__7n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__8n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__8n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__12n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__12n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__15n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__15n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__16n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__16n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__18n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__18n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__20n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__20n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__24n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__24n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__32n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__32n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__34n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__34n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__46n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__46n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__50n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__50n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__112n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__112n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__127n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__127n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__128n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__128n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__172n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__172n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__5n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__5n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__7n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__7n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__8n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__8n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__14n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__14n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__17n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__17n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT4__8n_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT4__8n_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void CHAR4_encoder(const CHARSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(CHAR4_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER CHAR4_decoder(OCTETSTRING& input_stream, CHARSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `charstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(CHAR4_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX4n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX4n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX4n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX4n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX6n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX6n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX6n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX6n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX8n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX8n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX8n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX8n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX15n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX15n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX15n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX15n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX16n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX16n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX16n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX16n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX24n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX24n_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX24n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX24n_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX0__3n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX0__3n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX0__18n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX0__18n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX1__20n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX1__20n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX1__34n_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX1__34n_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT3nb_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT3nb_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT4nb_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT4nb_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT5nb_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT5nb_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT8nb_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT8nb_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT2nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT2nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT1nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT1nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT3nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT3nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT5nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT5nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT9nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT9nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT13nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT13nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT15nbp_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT15nbp_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT6__BO__LAST_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT6__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT6__BO__LAST_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT6__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT16__BO__LAST_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT16__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT16__BO__LAST_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT16__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void BIT32__BO__LAST_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(BIT32__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER BIT32__BO__LAST_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `bitstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(BIT32__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void Dummy_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(Dummy_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER Dummy_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(Dummy_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT0_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT0_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT0_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT0_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT1_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT1_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT2_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT2_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT2_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT2_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT3_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT3_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT4_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT4_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT4_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT4_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT5_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT5_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT5_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT5_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT6_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT6_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT6_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT6_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT7_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT7_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT7_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT7_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT8_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT8_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT8_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT8_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT9_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT9_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT9_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT9_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT10_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT10_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT10_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT10_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT11_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT11_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT11_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT11_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT12_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT12_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT12_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT12_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT13_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT13_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT13_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT13_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT14_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT14_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT14_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT14_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT15_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT15_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT15_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT15_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT16_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT16_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT16_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT16_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT17_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT17_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT17_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT17_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT18_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT18_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT18_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT18_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT19_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT19_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT19_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT19_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT20_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT20_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT20_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT20_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT32_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT32_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT32_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT32_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT34_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT34_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT34_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT34_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT46_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT46_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT46_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT46_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__260_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__260_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__8_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__8_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__12_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__12_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__32_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__32_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1__50_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1__50_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3__8_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3__8_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCTN_encoder(const OCTETSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCTN_decoder(OCTETSTRING& input_stream, OCTETSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `octetstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCTETSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX1_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEX1_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX1_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEX1_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX0__16_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX0__16_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX5__16_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX5__16_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void HEX1__32_encoder(const HEXSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER HEX1__32_decoder(OCTETSTRING& input_stream, HEXSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `hexstring' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(HEXSTRING_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT1_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT1_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT1_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT1_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void LIN1_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(LIN1_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER LIN1_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(LIN1_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void LIN2_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(LIN2_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER LIN2_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(LIN2_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void LIN2__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(LIN2__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER LIN2__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(LIN2__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void LIN3__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(LIN3__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER LIN3__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(LIN3__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void LIN4__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(LIN4__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER LIN4__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(LIN4__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT1b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT1b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT1b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT1b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT2b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT2b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT2b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT2b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT3b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT3b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT3b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT3b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT4b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT4b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT4b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT4b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT5b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT5b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT5b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT5b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT6b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT6b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT6b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT6b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT7b_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT7b_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT7b_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT7b_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT11b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT11b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT11b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT11b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT12b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT12b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT12b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT12b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT13b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT13b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT13b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT13b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT14b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT14b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT14b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT14b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT18b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT18b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT18b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT18b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT20b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT20b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT20b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT20b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void INT31b__BO__LAST_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INT31b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER INT31b__BO__LAST_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INT31b__BO__LAST_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void Integers_0_encoder(const INTEGER& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER Integers_0_decoder(OCTETSTRING& input_stream, INTEGER& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `integer' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(INTEGER_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void Integers_encoder(const Integers& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Integers' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(Integers_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER Integers_decoder(OCTETSTRING& input_stream, Integers& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Integers' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(Integers_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+boolean operator==(null_type, const Integer__array& other_value)
+{
+if (other_value.val_ptr == NULL)
+TTCN_error("The right operand of comparison is an unbound value of type @General_Types.Integer_array.");
+return other_value.val_ptr->n_elements == 0;
+}
+
+void Integer__array_encoder(const Integer__array& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Integer_array' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(Integer__array_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER Integer__array_decoder(OCTETSTRING& input_stream, Integer__array& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Integer_array' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(Integer__array_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void Protocols_encoder(const Protocols& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Protocols' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(Protocols_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER Protocols_decoder(OCTETSTRING& input_stream, Protocols& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.Protocols' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(Protocols_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT1List_encoder(const OCT1List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT1List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT1List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT1List_decoder(OCTETSTRING& input_stream, OCT1List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT1List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT1List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT2List_encoder(const OCT2List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT2List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT2List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT2List_decoder(OCTETSTRING& input_stream, OCT2List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT2List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT2List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT3List_encoder(const OCT3List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT3List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT3List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT3List_decoder(OCTETSTRING& input_stream, OCT3List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT3List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT3List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT4List_encoder(const OCT4List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT4List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT4List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT4List_decoder(OCTETSTRING& input_stream, OCT4List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT4List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT4List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT5List_encoder(const OCT5List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT5List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT5List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT5List_decoder(OCTETSTRING& input_stream, OCT5List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT5List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT5List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT6List_encoder(const OCT6List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT6List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT6List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT6List_decoder(OCTETSTRING& input_stream, OCT6List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT6List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT6List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+void OCT7List_encoder(const OCT7List& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT7List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(OCT7List_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER OCT7List_decoder(OCTETSTRING& input_stream, OCT7List& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.OCT7List' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(OCT7List_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+boolean operator==(null_type, const ListOfDummy__comptype& other_value)
+{
+if (other_value.val_ptr == NULL)
+TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ListOfDummy_comptype.");
+return other_value.val_ptr->n_elements == 0;
+}
+
+boolean operator==(null_type, const ListOfDummy__CT& other_value)
+{
+if (other_value.val_ptr == NULL)
+TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ListOfDummy_CT.");
+return other_value.val_ptr->n_elements == 0;
+}
+
+boolean operator==(null_type, const ProtocolList& other_value)
+{
+if (other_value.val_ptr == NULL)
+TTCN_error("The right operand of comparison is an unbound value of type @General_Types.ProtocolList.");
+return other_value.val_ptr->n_elements == 0;
+}
+
+void ProtocolList_encoder(const ProtocolList& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, TRUE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.ProtocolList' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf;
+input_value.encode(ProtocolList_descr_, ttcn_buf, coding_type, extra_options);
+ttcn_buf.get_string(output_stream);
+}
+
+INTEGER ProtocolList_decoder(OCTETSTRING& input_stream, ProtocolList& output_value, const UNIVERSAL_CHARSTRING& coding_name)
+{
+TTCN_EncDec::coding_t coding_type;
+unsigned int extra_options = 0;
+TTCN_EncDec::get_coding_from_str(coding_name, &coding_type, &extra_options, FALSE);
+if (coding_type != TTCN_EncDec::CT_RAW) {
+TTCN_Logger::begin_event_log2str();
+coding_name.log();
+TTCN_error("Type `@General_Types.ProtocolList' does not support %s encoding", (const char*) TTCN_Logger::end_event_log2str());
+}
+TTCN_Buffer ttcn_buf(input_stream);
+output_value.decode(ProtocolList_descr_, ttcn_buf, coding_type, extra_options);
+switch (TTCN_EncDec::get_last_error_type()) {
+case TTCN_EncDec::ET_NONE:
+ttcn_buf.cut();
+ttcn_buf.get_string(input_stream);
+return 0;
+case TTCN_EncDec::ET_INCOMPL_MSG:
+case TTCN_EncDec::ET_LEN_ERR:
+return 2;
+default:
+return 1;
+}
+}
+
+
+/* Bodies of static functions */
+
+static boolean init_comp_type(const char *component_type, boolean init_base_comps)
+{
+(void)init_base_comps;
+if (!strcmp(component_type, "Dummy_comptype")) {
+return TRUE;
+} else if (!strcmp(component_type, "Dummy_CT")) {
+return TRUE;
+} else return FALSE;
+}
+
+
+} /* end of namespace */
diff --git a/titan/General_Types.hh b/titan/General_Types.hh
new file mode 100644
index 0000000..9909f49
--- /dev/null
+++ b/titan/General_Types.hh
@@ -0,0 +1,2464 @@
+// This C++ header file was generated by the TTCN-3 compiler
+// of the TTCN-3 Test Executor version CRL 113 200/6 R3B
+// for Harald Welte (laforge@nataraja) on Mon Mar 26 16:56:01 2018
+
+// Copyright (c) 2000-2017 Ericsson Telecom AB
+
+// Do not edit this file unless you know what you are doing.
+
+#ifndef General__Types_HH
+#define General__Types_HH
+
+#ifdef TITAN_RUNTIME_2
+#error Generated code does not match with used runtime.\
+ Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
+#endif
+
+/* Header file includes */
+
+#include <TTCN3.hh>
+
+#if TTCN3_VERSION != 60301
+#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 General__Types_HH
+#endif
+
+namespace General__Types {
+
+/* Forward declarations of classes */
+
+typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER Integers;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__INTEGER_template Integers_template;
+class Integer__array;
+class Integer__array_template;
+class Protocols;
+class Protocols_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT1List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT1List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT2List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT2List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT3List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT3List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT4List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT4List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT5List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT5List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT6List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT6List_template;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING OCT7List;
+typedef PreGenRecordOf::PREGEN__RECORD__OF__OCTETSTRING_template OCT7List_template;
+class ListOfDummy__comptype;
+class ListOfDummy__comptype_template;
+class ListOfDummy__CT;
+class ListOfDummy__CT_template;
+class ProtocolList;
+class ProtocolList_template;
+
+} /* end of namespace */
+
+#ifndef General__Types_HH
+#define General__Types_HH
+
+namespace General__Types {
+
+/* Type definitions */
+
+typedef BITSTRING BIT1n;
+typedef BITSTRING_template BIT1n_template;
+typedef BITSTRING BIT2n;
+typedef BITSTRING_template BIT2n_template;
+typedef BITSTRING BIT3n;
+typedef BITSTRING_template BIT3n_template;
+typedef BITSTRING BIT4n;
+typedef BITSTRING_template BIT4n_template;
+typedef BITSTRING BIT5n;
+typedef BITSTRING_template BIT5n_template;
+typedef BITSTRING BIT6n;
+typedef BITSTRING_template BIT6n_template;
+typedef BITSTRING BIT7n;
+typedef BITSTRING_template BIT7n_template;
+typedef BITSTRING BIT8n;
+typedef BITSTRING_template BIT8n_template;
+typedef BITSTRING BIT9n;
+typedef BITSTRING_template BIT9n_template;
+typedef BITSTRING BIT12n;
+typedef BITSTRING_template BIT12n_template;
+typedef BITSTRING BIT14n;
+typedef BITSTRING_template BIT14n_template;
+typedef BITSTRING BIT15n;
+typedef BITSTRING_template BIT15n_template;
+typedef BITSTRING BIT16n;
+typedef BITSTRING_template BIT16n_template;
+typedef BITSTRING BIT56n;
+typedef BITSTRING_template BIT56n_template;
+typedef BITSTRING BIT14__24n;
+typedef BITSTRING_template BIT14__24n_template;
+typedef BITSTRING BIT1np;
+typedef BITSTRING_template BIT1np_template;
+typedef BITSTRING BIT2np;
+typedef BITSTRING_template BIT2np_template;
+typedef BITSTRING BIT3np;
+typedef BITSTRING_template BIT3np_template;
+typedef BITSTRING BIT4np;
+typedef BITSTRING_template BIT4np_template;
+typedef BITSTRING BIT5np;
+typedef BITSTRING_template BIT5np_template;
+typedef BITSTRING BIT6np;
+typedef BITSTRING_template BIT6np_template;
+typedef BITSTRING BIT7np;
+typedef BITSTRING_template BIT7np_template;
+typedef BITSTRING BIT15np;
+typedef BITSTRING_template BIT15np_template;
+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 BIT14;
+typedef BITSTRING_template BIT14_template;
+typedef BITSTRING BIT15;
+typedef BITSTRING_template BIT15_template;
+typedef BITSTRING BIT16;
+typedef BITSTRING_template BIT16_template;
+typedef BITSTRING BIT24;
+typedef BITSTRING_template BIT24_template;
+typedef BITSTRING BIT31;
+typedef BITSTRING_template BIT31_template;
+typedef BITSTRING BIT32;
+typedef BITSTRING_template BIT32_template;
+typedef BITSTRING BIT56;
+typedef BITSTRING_template BIT56_template;
+typedef OCTETSTRING OCT0n;
+typedef OCTETSTRING_template OCT0n_template;
+typedef OCTETSTRING OCT1n;
+typedef OCTETSTRING_template OCT1n_template;
+typedef OCTETSTRING OCT2n;
+typedef OCTETSTRING_template OCT2n_template;
+typedef OCTETSTRING OCT3n;
+typedef OCTETSTRING_template OCT3n_template;
+typedef OCTETSTRING OCT4n;
+typedef OCTETSTRING_template OCT4n_template;
+typedef OCTETSTRING OCT5n;
+typedef OCTETSTRING_template OCT5n_template;
+typedef OCTETSTRING OCT6n;
+typedef OCTETSTRING_template OCT6n_template;
+typedef OCTETSTRING OCT7n;
+typedef OCTETSTRING_template OCT7n_template;
+typedef OCTETSTRING OCT8n;
+typedef OCTETSTRING_template OCT8n_template;
+typedef OCTETSTRING OCT9n;
+typedef OCTETSTRING_template OCT9n_template;
+typedef OCTETSTRING OCT10n;
+typedef OCTETSTRING_template OCT10n_template;
+typedef OCTETSTRING OCT11n;
+typedef OCTETSTRING_template OCT11n_template;
+typedef OCTETSTRING OCT12n;
+typedef OCTETSTRING_template OCT12n_template;
+typedef OCTETSTRING OCT13n;
+typedef OCTETSTRING_template OCT13n_template;
+typedef OCTETSTRING OCT14n;
+typedef OCTETSTRING_template OCT14n_template;
+typedef OCTETSTRING OCT15n;
+typedef OCTETSTRING_template OCT15n_template;
+typedef OCTETSTRING OCT16n;
+typedef OCTETSTRING_template OCT16n_template;
+typedef OCTETSTRING OCT17n;
+typedef OCTETSTRING_template OCT17n_template;
+typedef OCTETSTRING OCT18n;
+typedef OCTETSTRING_template OCT18n_template;
+typedef OCTETSTRING OCT19n;
+typedef OCTETSTRING_template OCT19n_template;
+typedef OCTETSTRING OCT20n;
+typedef OCTETSTRING_template OCT20n_template;
+typedef OCTETSTRING OCT28n;
+typedef OCTETSTRING_template OCT28n_template;
+typedef OCTETSTRING OCT32n;
+typedef OCTETSTRING_template OCT32n_template;
+typedef OCTETSTRING OCT34n;
+typedef OCTETSTRING_template OCT34n_template;
+typedef OCTETSTRING OCT46n;
+typedef OCTETSTRING_template OCT46n_template;
+typedef OCTETSTRING OCT50n;
+typedef OCTETSTRING_template OCT50n_template;
+typedef OCTETSTRING OCT69n;
+typedef OCTETSTRING_template OCT69n_template;
+typedef OCTETSTRING OCT100n;
+typedef OCTETSTRING_template OCT100n_template;
+typedef OCTETSTRING OCT128n;
+typedef OCTETSTRING_template OCT128n_template;
+typedef OCTETSTRING OCT500n;
+typedef OCTETSTRING_template OCT500n_template;
+typedef OCTETSTRING OCTNn;
+typedef OCTETSTRING_template OCTNn_template;
+typedef OCTETSTRING OCT1__3n;
+typedef OCTETSTRING_template OCT1__3n_template;
+typedef OCTETSTRING OCT1__4n;
+typedef OCTETSTRING_template OCT1__4n_template;
+typedef OCTETSTRING OCT1__5n;
+typedef OCTETSTRING_template OCT1__5n_template;
+typedef OCTETSTRING OCT1__6n;
+typedef OCTETSTRING_template OCT1__6n_template;
+typedef OCTETSTRING OCT1__7n;
+typedef OCTETSTRING_template OCT1__7n_template;
+typedef OCTETSTRING OCT1__8n;
+typedef OCTETSTRING_template OCT1__8n_template;
+typedef OCTETSTRING OCT1__12n;
+typedef OCTETSTRING_template OCT1__12n_template;
+typedef OCTETSTRING OCT1__15n;
+typedef OCTETSTRING_template OCT1__15n_template;
+typedef OCTETSTRING OCT1__16n;
+typedef OCTETSTRING_template OCT1__16n_template;
+typedef OCTETSTRING OCT1__18n;
+typedef OCTETSTRING_template OCT1__18n_template;
+typedef OCTETSTRING OCT1__20n;
+typedef OCTETSTRING_template OCT1__20n_template;
+typedef OCTETSTRING OCT1__24n;
+typedef OCTETSTRING_template OCT1__24n_template;
+typedef OCTETSTRING OCT1__32n;
+typedef OCTETSTRING_template OCT1__32n_template;
+typedef OCTETSTRING OCT1__34n;
+typedef OCTETSTRING_template OCT1__34n_template;
+typedef OCTETSTRING OCT1__46n;
+typedef OCTETSTRING_template OCT1__46n_template;
+typedef OCTETSTRING OCT1__50n;
+typedef OCTETSTRING_template OCT1__50n_template;
+typedef OCTETSTRING OCT1__112n;
+typedef OCTETSTRING_template OCT1__112n_template;
+typedef OCTETSTRING OCT1__127n;
+typedef OCTETSTRING_template OCT1__127n_template;
+typedef OCTETSTRING OCT1__128n;
+typedef OCTETSTRING_template OCT1__128n_template;
+typedef OCTETSTRING OCT1__172n;
+typedef OCTETSTRING_template OCT1__172n_template;
+typedef OCTETSTRING OCT3__5n;
+typedef OCTETSTRING_template OCT3__5n_template;
+typedef OCTETSTRING OCT3__7n;
+typedef OCTETSTRING_template OCT3__7n_template;
+typedef OCTETSTRING OCT3__8n;
+typedef OCTETSTRING_template OCT3__8n_template;
+typedef OCTETSTRING OCT3__14n;
+typedef OCTETSTRING_template OCT3__14n_template;
+typedef OCTETSTRING OCT3__17n;
+typedef OCTETSTRING_template OCT3__17n_template;
+typedef OCTETSTRING OCT4__8n;
+typedef OCTETSTRING_template OCT4__8n_template;
+typedef CHARSTRING CHAR4;
+typedef CHARSTRING_template CHAR4_template;
+typedef HEXSTRING HEX4n;
+typedef HEXSTRING_template HEX4n_template;
+typedef HEXSTRING HEX6n;
+typedef HEXSTRING_template HEX6n_template;
+typedef HEXSTRING HEX8n;
+typedef HEXSTRING_template HEX8n_template;
+typedef HEXSTRING HEX15n;
+typedef HEXSTRING_template HEX15n_template;
+typedef HEXSTRING HEX16n;
+typedef HEXSTRING_template HEX16n_template;
+typedef HEXSTRING HEX24n;
+typedef HEXSTRING_template HEX24n_template;
+typedef HEXSTRING HEX0__3n;
+typedef HEXSTRING_template HEX0__3n_template;
+typedef HEXSTRING HEX0__18n;
+typedef HEXSTRING_template HEX0__18n_template;
+typedef HEXSTRING HEX1__20n;
+typedef HEXSTRING_template HEX1__20n_template;
+typedef HEXSTRING HEX1__34n;
+typedef HEXSTRING_template HEX1__34n_template;
+typedef INTEGER INT3nb;
+typedef INTEGER_template INT3nb_template;
+typedef INTEGER INT4nb;
+typedef INTEGER_template INT4nb_template;
+typedef INTEGER INT5nb;
+typedef INTEGER_template INT5nb_template;
+typedef INTEGER INT8nb;
+typedef INTEGER_template INT8nb_template;
+typedef INTEGER INT2nbp;
+typedef INTEGER_template INT2nbp_template;
+typedef INTEGER INT1nbp;
+typedef INTEGER_template INT1nbp_template;
+typedef INTEGER INT3nbp;
+typedef INTEGER_template INT3nbp_template;
+typedef INTEGER INT5nbp;
+typedef INTEGER_template INT5nbp_template;
+typedef INTEGER INT9nbp;
+typedef INTEGER_template INT9nbp_template;
+typedef INTEGER INT13nbp;
+typedef INTEGER_template INT13nbp_template;
+typedef INTEGER INT15nbp;
+typedef INTEGER_template INT15nbp_template;
+typedef BITSTRING BIT6__BO__LAST;
+typedef BITSTRING_template BIT6__BO__LAST_template;
+typedef BITSTRING BIT16__BO__LAST;
+typedef BITSTRING_template BIT16__BO__LAST_template;
+typedef BITSTRING BIT32__BO__LAST;
+typedef BITSTRING_template BIT32__BO__LAST_template;
+typedef OCTETSTRING Dummy;
+typedef OCTETSTRING_template Dummy_template;
+typedef OCTETSTRING OCT0;
+typedef OCTETSTRING_template OCT0_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 OCT17;
+typedef OCTETSTRING_template OCT17_template;
+typedef OCTETSTRING OCT18;
+typedef OCTETSTRING_template OCT18_template;
+typedef OCTETSTRING OCT19;
+typedef OCTETSTRING_template OCT19_template;
+typedef OCTETSTRING OCT20;
+typedef OCTETSTRING_template OCT20_template;
+typedef OCTETSTRING OCT32;
+typedef OCTETSTRING_template OCT32_template;
+typedef OCTETSTRING OCT34;
+typedef OCTETSTRING_template OCT34_template;
+typedef OCTETSTRING OCT46;
+typedef OCTETSTRING_template OCT46_template;
+typedef OCTETSTRING OCT1__260;
+typedef OCTETSTRING_template OCT1__260_template;
+typedef OCTETSTRING OCT1__8;
+typedef OCTETSTRING_template OCT1__8_template;
+typedef OCTETSTRING OCT1__12;
+typedef OCTETSTRING_template OCT1__12_template;
+typedef OCTETSTRING OCT1__32;
+typedef OCTETSTRING_template OCT1__32_template;
+typedef OCTETSTRING OCT1__50;
+typedef OCTETSTRING_template OCT1__50_template;
+typedef OCTETSTRING OCT3__8;
+typedef OCTETSTRING_template OCT3__8_template;
+typedef OCTETSTRING OCTN;
+typedef OCTETSTRING_template OCTN_template;
+typedef HEXSTRING HEX1;
+typedef HEXSTRING_template HEX1_template;
+typedef HEXSTRING HEX0__16;
+typedef HEXSTRING_template HEX0__16_template;
+typedef HEXSTRING HEX5__16;
+typedef HEXSTRING_template HEX5__16_template;
+typedef HEXSTRING HEX1__32;
+typedef HEXSTRING_template HEX1__32_template;
+typedef INTEGER INT1;
+typedef INTEGER_template INT1_template;
+typedef INTEGER LIN1;
+typedef INTEGER_template LIN1_template;
+typedef INTEGER LIN2;
+typedef INTEGER_template LIN2_template;
+typedef INTEGER LIN2__BO__LAST;
+typedef INTEGER_template LIN2__BO__LAST_template;
+typedef INTEGER LIN3__BO__LAST;
+typedef INTEGER_template LIN3__BO__LAST_template;
+typedef INTEGER LIN4__BO__LAST;
+typedef INTEGER_template LIN4__BO__LAST_template;
+typedef INTEGER INT1b;
+typedef INTEGER_template INT1b_template;
+typedef INTEGER INT2b;
+typedef INTEGER_template INT2b_template;
+typedef INTEGER INT3b;
+typedef INTEGER_template INT3b_template;
+typedef INTEGER INT4b;
+typedef INTEGER_template INT4b_template;
+typedef INTEGER INT5b;
+typedef INTEGER_template INT5b_template;
+typedef INTEGER INT6b;
+typedef INTEGER_template INT6b_template;
+typedef INTEGER INT7b;
+typedef INTEGER_template INT7b_template;
+typedef INTEGER INT11b__BO__LAST;
+typedef INTEGER_template INT11b__BO__LAST_template;
+typedef INTEGER INT12b__BO__LAST;
+typedef INTEGER_template INT12b__BO__LAST_template;
+typedef INTEGER INT13b__BO__LAST;
+typedef INTEGER_template INT13b__BO__LAST_template;
+typedef INTEGER INT14b__BO__LAST;
+typedef INTEGER_template INT14b__BO__LAST_template;
+typedef INTEGER INT18b__BO__LAST;
+typedef INTEGER_template INT18b__BO__LAST_template;
+typedef INTEGER INT20b__BO__LAST;
+typedef INTEGER_template INT20b__BO__LAST_template;
+typedef INTEGER INT31b__BO__LAST;
+typedef INTEGER_template INT31b__BO__LAST_template;
+typedef COMPONENT Dummy__comptype;
+typedef COMPONENT_template Dummy__comptype_template;
+typedef COMPONENT Dummy__CT;
+typedef COMPONENT_template Dummy__CT_template;
+
+/* Class definitions */
+
+class Integer__array : public Base_Type {
+struct recordof_setof_struct {
+int ref_count;
+int n_elements;
+Integers **value_elements;
+} *val_ptr;
+
+static const Integers UNBOUND_ELEM;
+private:
+friend boolean operator==(null_type null_value, const Integer__array& other_value);
+
+public:
+ typedef Integers of_type;
+Integer__array();
+Integer__array(null_type other_value);
+Integer__array(const Integer__array& other_value);
+~Integer__array();
+
+void clean_up();
+Integer__array& operator=(null_type other_value);
+Integer__array& operator=(const Integer__array& other_value);
+
+boolean operator==(null_type other_value) const;
+boolean operator==(const Integer__array& other_value) const;
+inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
+inline boolean operator!=(const Integer__array& other_value) const { return !(*this == other_value); }
+
+Integers& operator[](int index_value);
+Integers& operator[](const INTEGER& index_value);
+const Integers& operator[](int index_value) const;
+const Integers& operator[](const INTEGER& index_value) const;
+
+Integer__array operator<<=(int rotate_count) const;
+Integer__array operator<<=(const INTEGER& rotate_count) const;
+Integer__array operator>>=(int rotate_count) const;
+Integer__array operator>>=(const INTEGER& rotate_count) const;
+
+Integer__array operator+(const Integer__array& other_value) const;
+
+Integer__array substr(int index, int returncount) const;
+
+Integer__array replace(int index, int len, const Integer__array& repl) const;
+
+Integer__array replace(int index, int len, const Integer__array_template& repl) const;
+
+void set_size(int new_size);
+inline boolean is_bound() const {return val_ptr != NULL; }
+inline boolean is_present() const { return is_bound(); }
+boolean is_value() const;
+int size_of() const;
+int n_elem() const { return size_of(); }
+int lengthof() const;
+void log() const;
+void set_param(Module_Param& param);
+ void set_implicit_omit();
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
+void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+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);
+};
+
+class Integer__array_template : public Record_Of_Template {
+union {
+struct {
+int n_elements;
+Integers_template **value_elements;
+} single_value;
+struct {
+unsigned int n_values;
+Integer__array_template *list_value;
+} value_list;
+};
+void copy_value(const Integer__array& other_value);
+void copy_template(const Integer__array_template& other_value);
+static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
+
+public:
+Integer__array_template();
+Integer__array_template(template_sel other_value);
+Integer__array_template(null_type other_value);
+Integer__array_template(const Integer__array& other_value);
+Integer__array_template(const OPTIONAL<Integer__array>& other_value);
+Integer__array_template(const Integer__array_template& other_value);
+~Integer__array_template();
+
+void clean_up();
+Integer__array_template& operator=(template_sel other_value);
+Integer__array_template& operator=(null_type other_value);
+Integer__array_template& operator=(const Integer__array& other_value);
+Integer__array_template& operator=(const OPTIONAL<Integer__array>& other_value);
+Integer__array_template& operator=(const Integer__array_template& other_value);
+
+Integers_template& operator[](int index_value);
+Integers_template& operator[](const INTEGER& index_value);
+const Integers_template& operator[](int index_value) const;
+const Integers_template& operator[](const INTEGER& index_value) const;
+
+void set_size(int new_size);
+int n_elem() const;
+int size_of(boolean is_size) const;
+inline int size_of() const { return size_of(TRUE); }
+inline int lengthof() const { return size_of(FALSE); }
+boolean match(const Integer__array& other_value, boolean legacy = FALSE) const;
+inline boolean is_bound() const
+ {return template_selection != UNINITIALIZED_TEMPLATE; }
+boolean is_value() const;
+Integer__array valueof() const;
+Integer__array substr(int index, int returncount) const;
+
+Integer__array replace(int index, int len, const Integer__array_template& repl) const;
+
+Integer__array replace(int index, int len, const Integer__array& repl) const;
+
+void set_type(template_sel template_type, unsigned int list_length);
+Integer__array_template& list_item(unsigned int list_index);
+void log() const;
+void log_match(const Integer__array& match_value, boolean legacy = FALSE) const;
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+boolean is_present(boolean legacy = FALSE) const;
+boolean match_omit(boolean legacy = FALSE) const;
+void set_param(Module_Param& param);
+void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
+boolean get_istemplate_kind(const char* type) const;
+};
+
+class Protocols : public Base_Type { // enum
+friend class Protocols_template;
+public:
+enum enum_type { mtp3 = 0, sccp = 1, isup = 2, bicc = 3, qaal2 = 4, gcp = 5, bssap = 6, bssmap = 7, ranap = 8, dtap = 9, UNKNOWN_VALUE = 10, UNBOUND_VALUE = 11 };
+private:
+enum_type enum_value;
+
+public:
+Protocols();
+Protocols(int other_value);
+Protocols(enum_type other_value);
+Protocols(const Protocols& other_value);
+
+Protocols& operator=(int other_value);
+Protocols& operator=(enum_type other_value);
+Protocols& operator=(const Protocols& other_value);
+
+boolean operator==(enum_type other_value) const;
+boolean operator==(const Protocols& other_value) const;
+inline boolean operator!=(enum_type other_value) const { return !(*this == other_value); }
+inline boolean operator!=(const Protocols& other_value) const { return !(*this == other_value); }
+boolean operator<(enum_type other_value) const;
+boolean operator<(const Protocols& other_value) const;
+boolean operator>(enum_type other_value) const;
+boolean operator>(const Protocols& other_value) const;
+inline boolean operator<=(enum_type other_value) const { return !(*this > other_value); }
+inline boolean operator<=(const Protocols& other_value) const { return !(*this > other_value); }
+inline boolean operator>=(enum_type other_value) const { return !(*this < other_value); }
+inline boolean operator>=(const Protocols& 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 Protocols& 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; }
+inline boolean is_present() const { return is_bound(); }
+void log() const;
+void set_param(Module_Param& param);
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
+void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+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);
+};
+
+class Protocols_template : public Base_Template {
+union {
+Protocols::enum_type single_value;
+struct {
+unsigned int n_values;
+Protocols_template *list_value;
+} value_list;
+};
+
+void copy_template(const Protocols_template& other_value);
+
+public:
+Protocols_template();
+Protocols_template(template_sel other_value);
+Protocols_template(int other_value);
+Protocols_template(Protocols::enum_type other_value);
+Protocols_template(const Protocols& other_value);
+Protocols_template(const OPTIONAL<Protocols>& other_value);
+Protocols_template(const Protocols_template& other_value);
+~Protocols_template();
+
+boolean is_bound() const;
+boolean is_value() const;
+void clean_up();
+Protocols_template& operator=(template_sel other_value);
+Protocols_template& operator=(int other_value);
+Protocols_template& operator=(Protocols::enum_type other_value);
+Protocols_template& operator=(const Protocols& other_value);
+Protocols_template& operator=(const OPTIONAL<Protocols>& other_value);
+Protocols_template& operator=(const Protocols_template& other_value);
+
+boolean match(Protocols::enum_type other_value, boolean legacy = FALSE) const;
+boolean match(const Protocols& other_value, boolean legacy = FALSE) const;
+Protocols::enum_type valueof() const;
+void set_type(template_sel template_type, unsigned int list_length);
+Protocols_template& list_item(unsigned int list_index);
+void log() const;
+void log_match(const Protocols& match_value, boolean legacy = FALSE) const;
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+boolean is_present(boolean legacy = FALSE) const;
+boolean match_omit(boolean legacy = FALSE) const;
+void set_param(Module_Param& param);
+void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
+};
+
+class ListOfDummy__comptype : public Base_Type {
+struct recordof_setof_struct {
+int ref_count;
+int n_elements;
+COMPONENT **value_elements;
+} *val_ptr;
+
+static const COMPONENT UNBOUND_ELEM;
+private:
+friend boolean operator==(null_type null_value, const ListOfDummy__comptype& other_value);
+
+public:
+ typedef COMPONENT of_type;
+ListOfDummy__comptype();
+ListOfDummy__comptype(null_type other_value);
+ListOfDummy__comptype(const ListOfDummy__comptype& other_value);
+~ListOfDummy__comptype();
+
+void clean_up();
+ListOfDummy__comptype& operator=(null_type other_value);
+ListOfDummy__comptype& operator=(const ListOfDummy__comptype& other_value);
+
+boolean operator==(null_type other_value) const;
+boolean operator==(const ListOfDummy__comptype& other_value) const;
+inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
+inline boolean operator!=(const ListOfDummy__comptype& other_value) const { return !(*this == 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;
+
+ListOfDummy__comptype operator<<=(int rotate_count) const;
+ListOfDummy__comptype operator<<=(const INTEGER& rotate_count) const;
+ListOfDummy__comptype operator>>=(int rotate_count) const;
+ListOfDummy__comptype operator>>=(const INTEGER& rotate_count) const;
+
+ListOfDummy__comptype operator+(const ListOfDummy__comptype& other_value) const;
+
+ListOfDummy__comptype substr(int index, int returncount) const;
+
+ListOfDummy__comptype replace(int index, int len, const ListOfDummy__comptype& repl) const;
+
+ListOfDummy__comptype replace(int index, int len, const ListOfDummy__comptype_template& repl) const;
+
+void set_size(int new_size);
+inline boolean is_bound() const {return val_ptr != NULL; }
+inline boolean is_present() const { return is_bound(); }
+boolean is_value() const;
+int size_of() const;
+int n_elem() const { return size_of(); }
+int lengthof() const;
+void log() const;
+void set_param(Module_Param& param);
+ void set_implicit_omit();
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+};
+
+class ListOfDummy__comptype_template : public Record_Of_Template {
+union {
+struct {
+int n_elements;
+COMPONENT_template **value_elements;
+} single_value;
+struct {
+unsigned int n_values;
+ListOfDummy__comptype_template *list_value;
+} value_list;
+};
+void copy_value(const ListOfDummy__comptype& other_value);
+void copy_template(const ListOfDummy__comptype_template& other_value);
+static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
+
+public:
+ListOfDummy__comptype_template();
+ListOfDummy__comptype_template(template_sel other_value);
+ListOfDummy__comptype_template(null_type other_value);
+ListOfDummy__comptype_template(const ListOfDummy__comptype& other_value);
+ListOfDummy__comptype_template(const OPTIONAL<ListOfDummy__comptype>& other_value);
+ListOfDummy__comptype_template(const ListOfDummy__comptype_template& other_value);
+~ListOfDummy__comptype_template();
+
+void clean_up();
+ListOfDummy__comptype_template& operator=(template_sel other_value);
+ListOfDummy__comptype_template& operator=(null_type other_value);
+ListOfDummy__comptype_template& operator=(const ListOfDummy__comptype& other_value);
+ListOfDummy__comptype_template& operator=(const OPTIONAL<ListOfDummy__comptype>& other_value);
+ListOfDummy__comptype_template& operator=(const ListOfDummy__comptype_template& other_value);
+
+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;
+
+void set_size(int new_size);
+int n_elem() const;
+int size_of(boolean is_size) const;
+inline int size_of() const { return size_of(TRUE); }
+inline int lengthof() const { return size_of(FALSE); }
+boolean match(const ListOfDummy__comptype& other_value, boolean legacy = FALSE) const;
+inline boolean is_bound() const
+ {return template_selection != UNINITIALIZED_TEMPLATE; }
+boolean is_value() const;
+ListOfDummy__comptype valueof() const;
+ListOfDummy__comptype substr(int index, int returncount) const;
+
+ListOfDummy__comptype replace(int index, int len, const ListOfDummy__comptype_template& repl) const;
+
+ListOfDummy__comptype replace(int index, int len, const ListOfDummy__comptype& repl) const;
+
+void set_type(template_sel template_type, unsigned int list_length);
+ListOfDummy__comptype_template& list_item(unsigned int list_index);
+void log() const;
+void log_match(const ListOfDummy__comptype& match_value, boolean legacy = FALSE) const;
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+boolean is_present(boolean legacy = FALSE) const;
+boolean match_omit(boolean legacy = FALSE) const;
+void set_param(Module_Param& param);
+void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
+boolean get_istemplate_kind(const char* type) const;
+};
+
+class ListOfDummy__CT : public Base_Type {
+struct recordof_setof_struct {
+int ref_count;
+int n_elements;
+COMPONENT **value_elements;
+} *val_ptr;
+
+static const COMPONENT UNBOUND_ELEM;
+private:
+friend boolean operator==(null_type null_value, const ListOfDummy__CT& other_value);
+
+public:
+ typedef COMPONENT of_type;
+ListOfDummy__CT();
+ListOfDummy__CT(null_type other_value);
+ListOfDummy__CT(const ListOfDummy__CT& other_value);
+~ListOfDummy__CT();
+
+void clean_up();
+ListOfDummy__CT& operator=(null_type other_value);
+ListOfDummy__CT& operator=(const ListOfDummy__CT& other_value);
+
+boolean operator==(null_type other_value) const;
+boolean operator==(const ListOfDummy__CT& other_value) const;
+inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
+inline boolean operator!=(const ListOfDummy__CT& other_value) const { return !(*this == 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;
+
+ListOfDummy__CT operator<<=(int rotate_count) const;
+ListOfDummy__CT operator<<=(const INTEGER& rotate_count) const;
+ListOfDummy__CT operator>>=(int rotate_count) const;
+ListOfDummy__CT operator>>=(const INTEGER& rotate_count) const;
+
+ListOfDummy__CT operator+(const ListOfDummy__CT& other_value) const;
+
+ListOfDummy__CT substr(int index, int returncount) const;
+
+ListOfDummy__CT replace(int index, int len, const ListOfDummy__CT& repl) const;
+
+ListOfDummy__CT replace(int index, int len, const ListOfDummy__CT_template& repl) const;
+
+void set_size(int new_size);
+inline boolean is_bound() const {return val_ptr != NULL; }
+inline boolean is_present() const { return is_bound(); }
+boolean is_value() const;
+int size_of() const;
+int n_elem() const { return size_of(); }
+int lengthof() const;
+void log() const;
+void set_param(Module_Param& param);
+ void set_implicit_omit();
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+};
+
+class ListOfDummy__CT_template : public Record_Of_Template {
+union {
+struct {
+int n_elements;
+COMPONENT_template **value_elements;
+} single_value;
+struct {
+unsigned int n_values;
+ListOfDummy__CT_template *list_value;
+} value_list;
+};
+void copy_value(const ListOfDummy__CT& other_value);
+void copy_template(const ListOfDummy__CT_template& other_value);
+static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
+
+public:
+ListOfDummy__CT_template();
+ListOfDummy__CT_template(template_sel other_value);
+ListOfDummy__CT_template(null_type other_value);
+ListOfDummy__CT_template(const ListOfDummy__CT& other_value);
+ListOfDummy__CT_template(const OPTIONAL<ListOfDummy__CT>& other_value);
+ListOfDummy__CT_template(const ListOfDummy__CT_template& other_value);
+~ListOfDummy__CT_template();
+
+void clean_up();
+ListOfDummy__CT_template& operator=(template_sel other_value);
+ListOfDummy__CT_template& operator=(null_type other_value);
+ListOfDummy__CT_template& operator=(const ListOfDummy__CT& other_value);
+ListOfDummy__CT_template& operator=(const OPTIONAL<ListOfDummy__CT>& other_value);
+ListOfDummy__CT_template& operator=(const ListOfDummy__CT_template& other_value);
+
+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;
+
+void set_size(int new_size);
+int n_elem() const;
+int size_of(boolean is_size) const;
+inline int size_of() const { return size_of(TRUE); }
+inline int lengthof() const { return size_of(FALSE); }
+boolean match(const ListOfDummy__CT& other_value, boolean legacy = FALSE) const;
+inline boolean is_bound() const
+ {return template_selection != UNINITIALIZED_TEMPLATE; }
+boolean is_value() const;
+ListOfDummy__CT valueof() const;
+ListOfDummy__CT substr(int index, int returncount) const;
+
+ListOfDummy__CT replace(int index, int len, const ListOfDummy__CT_template& repl) const;
+
+ListOfDummy__CT replace(int index, int len, const ListOfDummy__CT& repl) const;
+
+void set_type(template_sel template_type, unsigned int list_length);
+ListOfDummy__CT_template& list_item(unsigned int list_index);
+void log() const;
+void log_match(const ListOfDummy__CT& match_value, boolean legacy = FALSE) const;
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+boolean is_present(boolean legacy = FALSE) const;
+boolean match_omit(boolean legacy = FALSE) const;
+void set_param(Module_Param& param);
+void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
+boolean get_istemplate_kind(const char* type) const;
+};
+
+class ProtocolList : public Base_Type {
+struct recordof_setof_struct {
+int ref_count;
+int n_elements;
+Protocols **value_elements;
+} *val_ptr;
+
+static const Protocols UNBOUND_ELEM;
+private:
+friend boolean operator==(null_type null_value, const ProtocolList& other_value);
+
+public:
+ typedef Protocols of_type;
+ProtocolList();
+ProtocolList(null_type other_value);
+ProtocolList(const ProtocolList& other_value);
+~ProtocolList();
+
+void clean_up();
+ProtocolList& operator=(null_type other_value);
+ProtocolList& operator=(const ProtocolList& other_value);
+
+boolean operator==(null_type other_value) const;
+boolean operator==(const ProtocolList& other_value) const;
+inline boolean operator!=(null_type other_value) const { return !(*this == other_value); }
+inline boolean operator!=(const ProtocolList& other_value) const { return !(*this == other_value); }
+
+Protocols& operator[](int index_value);
+Protocols& operator[](const INTEGER& index_value);
+const Protocols& operator[](int index_value) const;
+const Protocols& operator[](const INTEGER& index_value) const;
+
+ProtocolList operator<<=(int rotate_count) const;
+ProtocolList operator<<=(const INTEGER& rotate_count) const;
+ProtocolList operator>>=(int rotate_count) const;
+ProtocolList operator>>=(const INTEGER& rotate_count) const;
+
+ProtocolList operator+(const ProtocolList& other_value) const;
+
+ProtocolList substr(int index, int returncount) const;
+
+ProtocolList replace(int index, int len, const ProtocolList& repl) const;
+
+ProtocolList replace(int index, int len, const ProtocolList_template& repl) const;
+
+void set_size(int new_size);
+inline boolean is_bound() const {return val_ptr != NULL; }
+inline boolean is_present() const { return is_bound(); }
+boolean is_value() const;
+int size_of() const;
+int n_elem() const { return size_of(); }
+int lengthof() const;
+void log() const;
+void set_param(Module_Param& param);
+ void set_implicit_omit();
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
+void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+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);
+};
+
+class ProtocolList_template : public Record_Of_Template {
+union {
+struct {
+int n_elements;
+Protocols_template **value_elements;
+} single_value;
+struct {
+unsigned int n_values;
+ProtocolList_template *list_value;
+} value_list;
+};
+void copy_value(const ProtocolList& other_value);
+void copy_template(const ProtocolList_template& other_value);
+static boolean match_function_specific(const Base_Type *value_ptr, int value_index, const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
+
+public:
+ProtocolList_template();
+ProtocolList_template(template_sel other_value);
+ProtocolList_template(null_type other_value);
+ProtocolList_template(const ProtocolList& other_value);
+ProtocolList_template(const OPTIONAL<ProtocolList>& other_value);
+ProtocolList_template(const ProtocolList_template& other_value);
+~ProtocolList_template();
+
+void clean_up();
+ProtocolList_template& operator=(template_sel other_value);
+ProtocolList_template& operator=(null_type other_value);
+ProtocolList_template& operator=(const ProtocolList& other_value);
+ProtocolList_template& operator=(const OPTIONAL<ProtocolList>& other_value);
+ProtocolList_template& operator=(const ProtocolList_template& other_value);
+
+Protocols_template& operator[](int index_value);
+Protocols_template& operator[](const INTEGER& index_value);
+const Protocols_template& operator[](int index_value) const;
+const Protocols_template& operator[](const INTEGER& index_value) const;
+
+void set_size(int new_size);
+int n_elem() const;
+int size_of(boolean is_size) const;
+inline int size_of() const { return size_of(TRUE); }
+inline int lengthof() const { return size_of(FALSE); }
+boolean match(const ProtocolList& other_value, boolean legacy = FALSE) const;
+inline boolean is_bound() const
+ {return template_selection != UNINITIALIZED_TEMPLATE; }
+boolean is_value() const;
+ProtocolList valueof() const;
+ProtocolList substr(int index, int returncount) const;
+
+ProtocolList replace(int index, int len, const ProtocolList_template& repl) const;
+
+ProtocolList replace(int index, int len, const ProtocolList& repl) const;
+
+void set_type(template_sel template_type, unsigned int list_length);
+ProtocolList_template& list_item(unsigned int list_index);
+void log() const;
+void log_match(const ProtocolList& match_value, boolean legacy = FALSE) const;
+void encode_text(Text_Buf& text_buf) const;
+void decode_text(Text_Buf& text_buf);
+boolean is_present(boolean legacy = FALSE) const;
+boolean match_omit(boolean legacy = FALSE) const;
+void set_param(Module_Param& param);
+void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
+boolean get_istemplate_kind(const char* type) const;
+};
+
+
+/* Function prototypes */
+
+extern void BIT1n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT1n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT2n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT2n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT3n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT3n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT4n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT4n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT5n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT5n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT6n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT6n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT7n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT7n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT8n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT8n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT9n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT9n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT12n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSAL_CHARSTRING& coding_name);
+extern INTEGER BIT12n_decoder(OCTETSTRING& input_stream, BITSTRING& output_value, const UNIVERSAL_CHARSTRING& coding_name);
+extern void BIT14n_encoder(const BITSTRING& input_value, OCTETSTRING& output_stream, const UNIVERSA