upgrade: PER related changes

diff --git a/tests/90-cond-int-type-OK.asn1.-P b/tests/90-cond-int-type-OK.asn1.-P
index 89acc3f..9e03bc2 100644
--- a/tests/90-cond-int-type-OK.asn1.-P
+++ b/tests/90-cond-int-type-OK.asn1.-P
@@ -40,6 +40,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -92,7 +95,7 @@
 
 /*** <<< STAT-DEFS [CN-IntegerUnlimited] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_CN_IntegerUnlimited_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_CN_IntegerUnlimited_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_CN_IntegerUnlimited = {
@@ -105,13 +108,15 @@
 	CN_IntegerUnlimited_encode_der,
 	CN_IntegerUnlimited_decode_xer,
 	CN_IntegerUnlimited_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_CN_IntegerUnlimited_1_tags,
-	sizeof(asn_DEF_CN_IntegerUnlimited_1_tags)
-		/sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */
-	asn_DEF_CN_IntegerUnlimited_1_tags,	/* Same as above */
-	sizeof(asn_DEF_CN_IntegerUnlimited_1_tags)
-		/sizeof(asn_DEF_CN_IntegerUnlimited_1_tags[0]), /* 1 */
+	asn_DEF_CN_IntegerUnlimited_tags_1,
+	sizeof(asn_DEF_CN_IntegerUnlimited_tags_1)
+		/sizeof(asn_DEF_CN_IntegerUnlimited_tags_1[0]), /* 1 */
+	asn_DEF_CN_IntegerUnlimited_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CN_IntegerUnlimited_tags_1)
+		/sizeof(asn_DEF_CN_IntegerUnlimited_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -172,6 +177,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -224,7 +232,7 @@
 
 /*** <<< STAT-DEFS [CN-IntegerMinMax] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_CN_IntegerMinMax_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_CN_IntegerMinMax_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinMax = {
@@ -237,13 +245,15 @@
 	CN_IntegerMinMax_encode_der,
 	CN_IntegerMinMax_decode_xer,
 	CN_IntegerMinMax_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_CN_IntegerMinMax_1_tags,
-	sizeof(asn_DEF_CN_IntegerMinMax_1_tags)
-		/sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */
-	asn_DEF_CN_IntegerMinMax_1_tags,	/* Same as above */
-	sizeof(asn_DEF_CN_IntegerMinMax_1_tags)
-		/sizeof(asn_DEF_CN_IntegerMinMax_1_tags[0]), /* 1 */
+	asn_DEF_CN_IntegerMinMax_tags_1,
+	sizeof(asn_DEF_CN_IntegerMinMax_tags_1)
+		/sizeof(asn_DEF_CN_IntegerMinMax_tags_1[0]), /* 1 */
+	asn_DEF_CN_IntegerMinMax_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CN_IntegerMinMax_tags_1)
+		/sizeof(asn_DEF_CN_IntegerMinMax_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -313,6 +323,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -365,7 +378,7 @@
 
 /*** <<< STAT-DEFS [CN-IntegerMinLow] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_CN_IntegerMinLow_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_CN_IntegerMinLow_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_CN_IntegerMinLow = {
@@ -378,13 +391,15 @@
 	CN_IntegerMinLow_encode_der,
 	CN_IntegerMinLow_decode_xer,
 	CN_IntegerMinLow_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_CN_IntegerMinLow_1_tags,
-	sizeof(asn_DEF_CN_IntegerMinLow_1_tags)
-		/sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */
-	asn_DEF_CN_IntegerMinLow_1_tags,	/* Same as above */
-	sizeof(asn_DEF_CN_IntegerMinLow_1_tags)
-		/sizeof(asn_DEF_CN_IntegerMinLow_1_tags[0]), /* 1 */
+	asn_DEF_CN_IntegerMinLow_tags_1,
+	sizeof(asn_DEF_CN_IntegerMinLow_tags_1)
+		/sizeof(asn_DEF_CN_IntegerMinLow_tags_1[0]), /* 1 */
+	asn_DEF_CN_IntegerMinLow_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CN_IntegerMinLow_tags_1)
+		/sizeof(asn_DEF_CN_IntegerMinLow_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -454,6 +469,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -506,7 +524,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerMinHigh] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerMinHigh_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerMinHigh_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerMinHigh = {
@@ -519,13 +537,15 @@
 	NO_IntegerMinHigh_encode_der,
 	NO_IntegerMinHigh_decode_xer,
 	NO_IntegerMinHigh_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerMinHigh_1_tags,
-	sizeof(asn_DEF_NO_IntegerMinHigh_1_tags)
-		/sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerMinHigh_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerMinHigh_1_tags)
-		/sizeof(asn_DEF_NO_IntegerMinHigh_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerMinHigh_tags_1,
+	sizeof(asn_DEF_NO_IntegerMinHigh_tags_1)
+		/sizeof(asn_DEF_NO_IntegerMinHigh_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerMinHigh_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerMinHigh_tags_1)
+		/sizeof(asn_DEF_NO_IntegerMinHigh_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -595,6 +615,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -647,7 +670,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerLowHigh] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerLowHigh_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerLowHigh_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowHigh = {
@@ -660,13 +683,15 @@
 	NO_IntegerLowHigh_encode_der,
 	NO_IntegerLowHigh_decode_xer,
 	NO_IntegerLowHigh_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerLowHigh_1_tags,
-	sizeof(asn_DEF_NO_IntegerLowHigh_1_tags)
-		/sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerLowHigh_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerLowHigh_1_tags)
-		/sizeof(asn_DEF_NO_IntegerLowHigh_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerLowHigh_tags_1,
+	sizeof(asn_DEF_NO_IntegerLowHigh_tags_1)
+		/sizeof(asn_DEF_NO_IntegerLowHigh_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerLowHigh_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerLowHigh_tags_1)
+		/sizeof(asn_DEF_NO_IntegerLowHigh_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -736,6 +761,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -788,7 +816,7 @@
 
 /*** <<< STAT-DEFS [CN-IntegerLowMax] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_CN_IntegerLowMax_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_CN_IntegerLowMax_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_CN_IntegerLowMax = {
@@ -801,13 +829,15 @@
 	CN_IntegerLowMax_encode_der,
 	CN_IntegerLowMax_decode_xer,
 	CN_IntegerLowMax_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_CN_IntegerLowMax_1_tags,
-	sizeof(asn_DEF_CN_IntegerLowMax_1_tags)
-		/sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */
-	asn_DEF_CN_IntegerLowMax_1_tags,	/* Same as above */
-	sizeof(asn_DEF_CN_IntegerLowMax_1_tags)
-		/sizeof(asn_DEF_CN_IntegerLowMax_1_tags[0]), /* 1 */
+	asn_DEF_CN_IntegerLowMax_tags_1,
+	sizeof(asn_DEF_CN_IntegerLowMax_tags_1)
+		/sizeof(asn_DEF_CN_IntegerLowMax_tags_1[0]), /* 1 */
+	asn_DEF_CN_IntegerLowMax_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CN_IntegerLowMax_tags_1)
+		/sizeof(asn_DEF_CN_IntegerLowMax_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -877,6 +907,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -929,7 +962,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerHighMax] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerHighMax_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerHighMax_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerHighMax = {
@@ -942,13 +975,15 @@
 	NO_IntegerHighMax_encode_der,
 	NO_IntegerHighMax_decode_xer,
 	NO_IntegerHighMax_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerHighMax_1_tags,
-	sizeof(asn_DEF_NO_IntegerHighMax_1_tags)
-		/sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerHighMax_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerHighMax_1_tags)
-		/sizeof(asn_DEF_NO_IntegerHighMax_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerHighMax_tags_1,
+	sizeof(asn_DEF_NO_IntegerHighMax_tags_1)
+		/sizeof(asn_DEF_NO_IntegerHighMax_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerHighMax_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerHighMax_tags_1)
+		/sizeof(asn_DEF_NO_IntegerHighMax_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1018,6 +1053,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -1070,7 +1108,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerLowestMax] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerLowestMax_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerLowestMax_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerLowestMax = {
@@ -1083,13 +1121,15 @@
 	NO_IntegerLowestMax_encode_der,
 	NO_IntegerLowestMax_decode_xer,
 	NO_IntegerLowestMax_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerLowestMax_1_tags,
-	sizeof(asn_DEF_NO_IntegerLowestMax_1_tags)
-		/sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerLowestMax_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerLowestMax_1_tags)
-		/sizeof(asn_DEF_NO_IntegerLowestMax_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerLowestMax_tags_1,
+	sizeof(asn_DEF_NO_IntegerLowestMax_tags_1)
+		/sizeof(asn_DEF_NO_IntegerLowestMax_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerLowestMax_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerLowestMax_tags_1)
+		/sizeof(asn_DEF_NO_IntegerLowestMax_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1159,6 +1199,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -1211,7 +1254,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerOutRange] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerOutRange_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerOutRange_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutRange = {
@@ -1224,13 +1267,15 @@
 	NO_IntegerOutRange_encode_der,
 	NO_IntegerOutRange_decode_xer,
 	NO_IntegerOutRange_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerOutRange_1_tags,
-	sizeof(asn_DEF_NO_IntegerOutRange_1_tags)
-		/sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerOutRange_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerOutRange_1_tags)
-		/sizeof(asn_DEF_NO_IntegerOutRange_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerOutRange_tags_1,
+	sizeof(asn_DEF_NO_IntegerOutRange_tags_1)
+		/sizeof(asn_DEF_NO_IntegerOutRange_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerOutRange_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerOutRange_tags_1)
+		/sizeof(asn_DEF_NO_IntegerOutRange_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1300,6 +1345,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -1352,7 +1400,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerOutValue] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerOutValue_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerOutValue_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerOutValue = {
@@ -1365,13 +1413,15 @@
 	NO_IntegerOutValue_encode_der,
 	NO_IntegerOutValue_decode_xer,
 	NO_IntegerOutValue_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerOutValue_1_tags,
-	sizeof(asn_DEF_NO_IntegerOutValue_1_tags)
-		/sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerOutValue_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerOutValue_1_tags)
-		/sizeof(asn_DEF_NO_IntegerOutValue_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerOutValue_tags_1,
+	sizeof(asn_DEF_NO_IntegerOutValue_tags_1)
+		/sizeof(asn_DEF_NO_IntegerOutValue_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerOutValue_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerOutValue_tags_1)
+		/sizeof(asn_DEF_NO_IntegerOutValue_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1435,6 +1485,9 @@
 	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
 	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
 	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
 	td->elements_count = asn_DEF_NativeInteger.elements_count;
 	td->specifics      = asn_DEF_NativeInteger.specifics;
@@ -1487,7 +1540,7 @@
 
 /*** <<< STAT-DEFS [OK-IntegerInRange1] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_OK_IntegerInRange1_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_OK_IntegerInRange1_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange1 = {
@@ -1500,13 +1553,15 @@
 	OK_IntegerInRange1_encode_der,
 	OK_IntegerInRange1_decode_xer,
 	OK_IntegerInRange1_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_OK_IntegerInRange1_1_tags,
-	sizeof(asn_DEF_OK_IntegerInRange1_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */
-	asn_DEF_OK_IntegerInRange1_1_tags,	/* Same as above */
-	sizeof(asn_DEF_OK_IntegerInRange1_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange1_1_tags[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange1_tags_1,
+	sizeof(asn_DEF_OK_IntegerInRange1_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange1_tags_1[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_OK_IntegerInRange1_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange1_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1570,6 +1625,9 @@
 	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
 	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
 	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
 	td->elements_count = asn_DEF_NativeInteger.elements_count;
 	td->specifics      = asn_DEF_NativeInteger.specifics;
@@ -1622,7 +1680,7 @@
 
 /*** <<< STAT-DEFS [OK-IntegerInRange2] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_OK_IntegerInRange2_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_OK_IntegerInRange2_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange2 = {
@@ -1635,13 +1693,15 @@
 	OK_IntegerInRange2_encode_der,
 	OK_IntegerInRange2_decode_xer,
 	OK_IntegerInRange2_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_OK_IntegerInRange2_1_tags,
-	sizeof(asn_DEF_OK_IntegerInRange2_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */
-	asn_DEF_OK_IntegerInRange2_1_tags,	/* Same as above */
-	sizeof(asn_DEF_OK_IntegerInRange2_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange2_1_tags[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange2_tags_1,
+	sizeof(asn_DEF_OK_IntegerInRange2_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange2_tags_1[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_OK_IntegerInRange2_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange2_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1705,6 +1765,9 @@
 	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
 	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
 	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
 	td->elements_count = asn_DEF_NativeInteger.elements_count;
 	td->specifics      = asn_DEF_NativeInteger.specifics;
@@ -1757,7 +1820,7 @@
 
 /*** <<< STAT-DEFS [OK-IntegerInRange3] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_OK_IntegerInRange3_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_OK_IntegerInRange3_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange3 = {
@@ -1770,13 +1833,15 @@
 	OK_IntegerInRange3_encode_der,
 	OK_IntegerInRange3_decode_xer,
 	OK_IntegerInRange3_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_OK_IntegerInRange3_1_tags,
-	sizeof(asn_DEF_OK_IntegerInRange3_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */
-	asn_DEF_OK_IntegerInRange3_1_tags,	/* Same as above */
-	sizeof(asn_DEF_OK_IntegerInRange3_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange3_1_tags[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange3_tags_1,
+	sizeof(asn_DEF_OK_IntegerInRange3_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange3_tags_1[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange3_tags_1,	/* Same as above */
+	sizeof(asn_DEF_OK_IntegerInRange3_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange3_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1840,6 +1905,9 @@
 	td->der_encoder    = asn_DEF_NativeInteger.der_encoder;
 	td->xer_decoder    = asn_DEF_NativeInteger.xer_decoder;
 	td->xer_encoder    = asn_DEF_NativeInteger.xer_encoder;
+	td->uper_decoder   = asn_DEF_NativeInteger.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_NativeInteger.per_constraints;
 	td->elements       = asn_DEF_NativeInteger.elements;
 	td->elements_count = asn_DEF_NativeInteger.elements_count;
 	td->specifics      = asn_DEF_NativeInteger.specifics;
@@ -1892,7 +1960,7 @@
 
 /*** <<< STAT-DEFS [OK-IntegerInRange4] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_OK_IntegerInRange4_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_OK_IntegerInRange4_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange4 = {
@@ -1905,13 +1973,15 @@
 	OK_IntegerInRange4_encode_der,
 	OK_IntegerInRange4_decode_xer,
 	OK_IntegerInRange4_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_OK_IntegerInRange4_1_tags,
-	sizeof(asn_DEF_OK_IntegerInRange4_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */
-	asn_DEF_OK_IntegerInRange4_1_tags,	/* Same as above */
-	sizeof(asn_DEF_OK_IntegerInRange4_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange4_1_tags[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange4_tags_1,
+	sizeof(asn_DEF_OK_IntegerInRange4_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange4_tags_1[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange4_tags_1,	/* Same as above */
+	sizeof(asn_DEF_OK_IntegerInRange4_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange4_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -1981,6 +2051,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -2033,7 +2106,7 @@
 
 /*** <<< STAT-DEFS [OK-IntegerInRange5] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_OK_IntegerInRange5_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_OK_IntegerInRange5_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_OK_IntegerInRange5 = {
@@ -2046,13 +2119,15 @@
 	OK_IntegerInRange5_encode_der,
 	OK_IntegerInRange5_decode_xer,
 	OK_IntegerInRange5_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_OK_IntegerInRange5_1_tags,
-	sizeof(asn_DEF_OK_IntegerInRange5_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */
-	asn_DEF_OK_IntegerInRange5_1_tags,	/* Same as above */
-	sizeof(asn_DEF_OK_IntegerInRange5_1_tags)
-		/sizeof(asn_DEF_OK_IntegerInRange5_1_tags[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange5_tags_1,
+	sizeof(asn_DEF_OK_IntegerInRange5_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange5_tags_1[0]), /* 1 */
+	asn_DEF_OK_IntegerInRange5_tags_1,	/* Same as above */
+	sizeof(asn_DEF_OK_IntegerInRange5_tags_1)
+		/sizeof(asn_DEF_OK_IntegerInRange5_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -2122,6 +2197,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -2174,7 +2252,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerInRange6] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerInRange6_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerInRange6_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerInRange6 = {
@@ -2187,13 +2265,15 @@
 	NO_IntegerInRange6_encode_der,
 	NO_IntegerInRange6_decode_xer,
 	NO_IntegerInRange6_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerInRange6_1_tags,
-	sizeof(asn_DEF_NO_IntegerInRange6_1_tags)
-		/sizeof(asn_DEF_NO_IntegerInRange6_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerInRange6_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerInRange6_1_tags)
-		/sizeof(asn_DEF_NO_IntegerInRange6_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerInRange6_tags_1,
+	sizeof(asn_DEF_NO_IntegerInRange6_tags_1)
+		/sizeof(asn_DEF_NO_IntegerInRange6_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerInRange6_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerInRange6_tags_1)
+		/sizeof(asn_DEF_NO_IntegerInRange6_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* No members */
 	0	/* No specifics */
 };
@@ -2247,6 +2327,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -2299,7 +2382,7 @@
 
 /*** <<< STAT-DEFS [CN-IntegerEnumerated1] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_CN_IntegerEnumerated1_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_CN_IntegerEnumerated1_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_CN_IntegerEnumerated1 = {
@@ -2312,13 +2395,15 @@
 	CN_IntegerEnumerated1_encode_der,
 	CN_IntegerEnumerated1_decode_xer,
 	CN_IntegerEnumerated1_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_CN_IntegerEnumerated1_1_tags,
-	sizeof(asn_DEF_CN_IntegerEnumerated1_1_tags)
-		/sizeof(asn_DEF_CN_IntegerEnumerated1_1_tags[0]), /* 1 */
-	asn_DEF_CN_IntegerEnumerated1_1_tags,	/* Same as above */
-	sizeof(asn_DEF_CN_IntegerEnumerated1_1_tags)
-		/sizeof(asn_DEF_CN_IntegerEnumerated1_1_tags[0]), /* 1 */
+	asn_DEF_CN_IntegerEnumerated1_tags_1,
+	sizeof(asn_DEF_CN_IntegerEnumerated1_tags_1)
+		/sizeof(asn_DEF_CN_IntegerEnumerated1_tags_1[0]), /* 1 */
+	asn_DEF_CN_IntegerEnumerated1_tags_1,	/* Same as above */
+	sizeof(asn_DEF_CN_IntegerEnumerated1_tags_1)
+		/sizeof(asn_DEF_CN_IntegerEnumerated1_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* Defined elsewhere */
 	0	/* No specifics */
 };
@@ -2372,6 +2457,9 @@
 	td->der_encoder    = asn_DEF_INTEGER.der_encoder;
 	td->xer_decoder    = asn_DEF_INTEGER.xer_decoder;
 	td->xer_encoder    = asn_DEF_INTEGER.xer_encoder;
+	td->uper_decoder   = asn_DEF_INTEGER.uper_decoder;
+	if(!td->per_constraints)
+		td->per_constraints = asn_DEF_INTEGER.per_constraints;
 	td->elements       = asn_DEF_INTEGER.elements;
 	td->elements_count = asn_DEF_INTEGER.elements_count;
 	td->specifics      = asn_DEF_INTEGER.specifics;
@@ -2424,7 +2512,7 @@
 
 /*** <<< STAT-DEFS [NO-IntegerEnumerated2] >>> ***/
 
-static ber_tlv_tag_t asn_DEF_NO_IntegerEnumerated2_1_tags[] = {
+static ber_tlv_tag_t asn_DEF_NO_IntegerEnumerated2_tags_1[] = {
 	(ASN_TAG_CLASS_UNIVERSAL | (2 << 2))
 };
 asn_TYPE_descriptor_t asn_DEF_NO_IntegerEnumerated2 = {
@@ -2437,13 +2525,15 @@
 	NO_IntegerEnumerated2_encode_der,
 	NO_IntegerEnumerated2_decode_xer,
 	NO_IntegerEnumerated2_encode_xer,
+	0,	/* No PER decoder, -gen-PER to enable */
 	0,	/* Use generic outmost tag fetcher */
-	asn_DEF_NO_IntegerEnumerated2_1_tags,
-	sizeof(asn_DEF_NO_IntegerEnumerated2_1_tags)
-		/sizeof(asn_DEF_NO_IntegerEnumerated2_1_tags[0]), /* 1 */
-	asn_DEF_NO_IntegerEnumerated2_1_tags,	/* Same as above */
-	sizeof(asn_DEF_NO_IntegerEnumerated2_1_tags)
-		/sizeof(asn_DEF_NO_IntegerEnumerated2_1_tags[0]), /* 1 */
+	asn_DEF_NO_IntegerEnumerated2_tags_1,
+	sizeof(asn_DEF_NO_IntegerEnumerated2_tags_1)
+		/sizeof(asn_DEF_NO_IntegerEnumerated2_tags_1[0]), /* 1 */
+	asn_DEF_NO_IntegerEnumerated2_tags_1,	/* Same as above */
+	sizeof(asn_DEF_NO_IntegerEnumerated2_tags_1)
+		/sizeof(asn_DEF_NO_IntegerEnumerated2_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
 	0, 0,	/* Defined elsewhere */
 	0	/* No specifics */
 };