diff --git a/src/rua/RUA_UnsuccessfulOutcome.c b/src/rua/RUA_UnsuccessfulOutcome.c
new file mode 100644
index 0000000..9aa1c81
--- /dev/null
+++ b/src/rua/RUA_UnsuccessfulOutcome.c
@@ -0,0 +1,81 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "RUA-PDU"
+ * 	found in "../../asn1/rua/RUA-PDU.asn"
+ */
+
+#include "RUA_UnsuccessfulOutcome.h"
+
+static asn_TYPE_member_t asn_MBR_RUA_UnsuccessfulOutcome_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, procedureCode),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RUA_ProcedureCode,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"procedureCode"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, criticality),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_RUA_Criticality,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"criticality"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct RUA_UnsuccessfulOutcome, value),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		+1,	/* EXPLICIT tag at current level */
+		&asn_DEF_ANY,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"value"
+		},
+};
+static const ber_tlv_tag_t asn_DEF_RUA_UnsuccessfulOutcome_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_RUA_UnsuccessfulOutcome_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* procedureCode */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_RUA_UnsuccessfulOutcome_specs_1 = {
+	sizeof(struct RUA_UnsuccessfulOutcome),
+	offsetof(struct RUA_UnsuccessfulOutcome, _asn_ctx),
+	asn_MAP_RUA_UnsuccessfulOutcome_tag2el_1,
+	3,	/* Count of tags in the map */
+	0, 0, 0,	/* Optional elements (not needed) */
+	-1,	/* Start extensions */
+	-1	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_RUA_UnsuccessfulOutcome = {
+	"RUA_UnsuccessfulOutcome",
+	"RUA_UnsuccessfulOutcome",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_RUA_UnsuccessfulOutcome_tags_1,
+	sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+	asn_DEF_RUA_UnsuccessfulOutcome_tags_1,	/* Same as above */
+	sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1)
+		/sizeof(asn_DEF_RUA_UnsuccessfulOutcome_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_RUA_UnsuccessfulOutcome_1,
+	3,	/* Elements count */
+	&asn_SPC_RUA_UnsuccessfulOutcome_specs_1	/* Additional specs */
+};
+
