X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=Bouncer%2Fe2sm_kpm%2Flib%2Fcscope.out;fp=Bouncer%2Fe2sm_kpm%2Flib%2Fcscope.out;h=9b3ad351dad246b140c45ac680382e93ec067b27;hb=fbc7e3ad84fc7269233a2f0b5d416cb1c6f8a6ea;hp=0000000000000000000000000000000000000000;hpb=eb27c05c05b5042d115480c40cffa16e7d473d80;p=ric-app%2Fbouncer.git diff --git a/Bouncer/e2sm_kpm/lib/cscope.out b/Bouncer/e2sm_kpm/lib/cscope.out new file mode 100644 index 0000000..9b3ad35 --- /dev/null +++ b/Bouncer/e2sm_kpm/lib/cscope.out @@ -0,0 +1,116022 @@ +cscope 15 $HOME/Desktop/kpimon/e2sm/lib 0000709974 + @AMF-UE-NGAP-ID.c + +8  + ~"AMF-UE-NGAP-ID.h +" + +11 + $AMF_UE_NGAP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +14  +v®ue +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) { + +24 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +26 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +30 if(( +v®ue + >= 0 && value <= 1099511627775)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_AMF_UE_NGAP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_CONSTRAINED +, 40, -1, 0, 1099511627775 } , + +47 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_AMF_UE_NGAP_ID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_AMF_UE_NGAP_ID + = { + +56 & +a¢_OP_INTEGER +, + +57 +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +, + +58 ( +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +) + +59 /( +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +[0]), + +60 +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +, + +61 ( +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +) + +62 /( +a¢_DEF_AMF_UE_NGAP_ID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_AMF_UE_NGAP_ID_cÚ¡r_1 +, +AMF_UE_NGAP_ID_cÚ¡¿št + }, + + @AMFPointer.c + +8  + ~"AMFPoš‹r.h +" + +11 + $AMFPoš‹r_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 6)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_AMFPoš‹r_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +47 { +APC_CONSTRAINED +, 0, 0, 6, 6 } , + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_AMFPoš‹r_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_AMFPoš‹r + = { + +56 & +a¢_OP_BIT_STRING +, + +57 +a¢_DEF_AMFPoš‹r_gs_1 +, + +58 ( +a¢_DEF_AMFPoš‹r_gs_1 +) + +59 /( +a¢_DEF_AMFPoš‹r_gs_1 +[0]), + +60 +a¢_DEF_AMFPoš‹r_gs_1 +, + +61 ( +a¢_DEF_AMFPoš‹r_gs_1 +) + +62 /( +a¢_DEF_AMFPoš‹r_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_AMFPoš‹r_cÚ¡r_1 +, +AMFPoš‹r_cÚ¡¿št + }, + +65 & +a¢_SPC_BIT_STRING_¥ecs + + + @AMFRegionID.c + +8  + ~"AMFRegiÚID.h +" + +11 + $AMFRegiÚID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 8)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_AMFRegiÚID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +47 { +APC_CONSTRAINED +, 0, 0, 8, 8 } , + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_AMFRegiÚID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_AMFRegiÚID + = { + +56 & +a¢_OP_BIT_STRING +, + +57 +a¢_DEF_AMFRegiÚID_gs_1 +, + +58 ( +a¢_DEF_AMFRegiÚID_gs_1 +) + +59 /( +a¢_DEF_AMFRegiÚID_gs_1 +[0]), + +60 +a¢_DEF_AMFRegiÚID_gs_1 +, + +61 ( +a¢_DEF_AMFRegiÚID_gs_1 +) + +62 /( +a¢_DEF_AMFRegiÚID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_AMFRegiÚID_cÚ¡r_1 +, +AMFRegiÚID_cÚ¡¿št + }, + +65 & +a¢_SPC_BIT_STRING_¥ecs + + + @AMFSetID.c + +8  + ~"AMFS‘ID.h +" + +11 + $AMFS‘ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 10)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_AMFS‘ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +47 { +APC_CONSTRAINED +, 0, 0, 10, 10 } , + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_AMFS‘ID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_AMFS‘ID + = { + +56 & +a¢_OP_BIT_STRING +, + +57 +a¢_DEF_AMFS‘ID_gs_1 +, + +58 ( +a¢_DEF_AMFS‘ID_gs_1 +) + +59 /( +a¢_DEF_AMFS‘ID_gs_1 +[0]), + +60 +a¢_DEF_AMFS‘ID_gs_1 +, + +61 ( +a¢_DEF_AMFS‘ID_gs_1 +) + +62 /( +a¢_DEF_AMFS‘ID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_AMFS‘ID_cÚ¡r_1 +, +AMFS‘ID_cÚ¡¿št + }, + +65 & +a¢_SPC_BIT_STRING_¥ecs + + + @BIT_STRING.c + +5  + ~ + +6  + ~ + +7  + ~ + +12 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_BIT_STRING_gs +[] = { + +13 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +15 +a¢_OCTET_STRING_¥ecifics_t + + ga¢_SPC_BIT_STRING_¥ecs + = { + +16 ( +BIT_STRING_t +), + +17 +off£tof +( +BIT_STRING_t +, +_a¢_ùx +), + +18 +ASN_OSUBV_BIT + + +20 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_BIT_STRING + = { + +21 +OCTET_STRING_ä“ +, + +22 +BIT_STRING_´št +, + +23 +BIT_STRING_com·» +, + +24 +OCTET_STRING_decode_b” +, + +25 +OCTET_STRING_’code_d” +, + +26 +OCTET_STRING_decode_x”_bš¬y +, + +27 +BIT_STRING_’code_x” +, + +28 #ifdef +ASN_DISABLE_OER_SUPPORT + + +32 +BIT_STRING_decode_Ûr +, + +33 +BIT_STRING_’code_Ûr +, + +35 #ifdef +ASN_DISABLE_PER_SUPPORT + + +41 +BIT_STRING_decode_u³r +, + +42 +BIT_STRING_’code_u³r +, + +43 +OCTET_STRING_decode_­” +, + +44 +OCTET_STRING_’code_­” +, + +46 +BIT_STRING_¿ndom_fžl +, + +49 +a¢_TYPE_desütÜ_t + + ga¢_DEF_BIT_STRING + = { + +52 & +a¢_OP_BIT_STRING +, + +53 +a¢_DEF_BIT_STRING_gs +, + +54 ( +a¢_DEF_BIT_STRING_gs +) + +55 / ( +a¢_DEF_BIT_STRING_gs +[0]), + +56 +a¢_DEF_BIT_STRING_gs +, + +57 ( +a¢_DEF_BIT_STRING_gs +) + +58 / ( +a¢_DEF_BIT_STRING_gs +[0]), + +59 { 0, 0, +BIT_STRING_cÚ¡¿št + }, + +61 & +a¢_SPC_BIT_STRING_¥ecs + + +68 + $BIT_STRING_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +69 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +70 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +72 if( +¡ + && st-> +buf +) { + +73 if(( +¡ +-> +size + =ð0 && st-> +b™s_unu£d +) + +74 || +¡ +-> +b™s_unu£d + < 0 || st->bits_unused > 7) { + +75 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +77 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +81 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +83 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +88 + } +} + +90 cÚ¡ * + g_b™_·‰”n +[16] = { + +95 +a¢_’c_rv®_t + + +96 + $BIT_STRING_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +97  +žev– +, +x”_’cod”_æags_e + +æags +, + +98 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +99 +a¢_’c_rv®_t + +” + = {0, 0, 0}; + +100  +sü©ch +[128]; + +101 * +p + = +sü©ch +; + +102 * +sûnd + = +sü©ch + + ((scratch) - 10); + +103 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +104  +xÿn + = ( +æags + & +XER_F_CANONICAL +); + +105 +ušt8_t + * +buf +; + +106 +ušt8_t + * +’d +; + +108 if(! +¡ + || !¡-> +buf +) + +109 +ASN__ENCODE_FAILED +; + +111 +” +. +’coded + = 0; + +113 +buf + = +¡ +->buf; + +114 +’d + = +buf + + +¡ +-> +size + - 1; + +119 ; +buf + < +’d +; buf++) { + +120  +v + = * +buf +; + +121  +ƚe + = +xÿn +?0:((( +buf + - +¡ +->buf) % 8) == 0); + +122 if( +p + >ð +sûnd + || +ƚe +) { + +123 + `ASN__CALLBACK +( +sü©ch +, +p + - scratch); + +124 +p + = +sü©ch +; + +125 if( +ƚe +è + `ASN__TEXT_INDENT +(1, +žev– +); + +127 + `memýy +( +p + + 0, +_b™_·‰”n +[ +v + >> 4], 4); + +128 + `memýy +( +p + + 4, +_b™_·‰”n +[ +v + & 0x0f], 4); + +129 +p + += 8; + +132 if(! +xÿn + && (( +buf + - +¡ +->buf) % 8) == 0) + +133 + `ASN__TEXT_INDENT +(1, +žev– +); + +134 + `ASN__CALLBACK +( +sü©ch +, +p + - scratch); + +135 +p + = +sü©ch +; + +137 if( +buf + =ð +’d +) { + +138  +v + = * +buf +; + +139  +ub™s + = +¡ +-> +b™s_unu£d +; + +140  +i +; + +141  +i + = 7; i >ð +ub™s +; i--) + +142 * +p +++ = ( +v + & (1 << +i +)) ? 0x31 : 0x30; + +143 + `ASN__CALLBACK +( +sü©ch +, +p + - scratch); + +146 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– + - 1); + +148 + `ASN__ENCODED_OK +( +” +); + +149 +cb_çžed +: + +150 +ASN__ENCODE_FAILED +; + +151 + } +} + +158 + $BIT_STRING_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +159 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +160 cÚ¡ * cÚ¡ +h2c + = "0123456789ABCDEF"; + +161  +sü©ch +[64]; + +162 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +163 +ušt8_t + * +buf +; + +164 +ušt8_t + * +’d +; + +165 * +p + = +sü©ch +; + +167 () +td +; + +169 if(! +¡ + || !¡-> +buf +) + +170  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +172 +žev– +++; + +173 +buf + = +¡ +->buf; + +174 +’d + = +buf + + +¡ +-> +size +; + +179 ; +buf + < +’d +; buf++) { + +180 if(( +buf + - +¡ +->bufè% 16 =ð0 && (¡-> +size + > 16) + +181 && +buf + !ð +¡ +->buf) { + +182 + `_i_INDENT +(1); + +184 if( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +) < 0)  -1; + +185 +p + = +sü©ch +; + +187 * +p +++ = +h2c +[* +buf + >> 4]; + +188 * +p +++ = +h2c +[* +buf + & 0x0F]; + +189 * +p +++ = 0x20; + +192 if( +p + > +sü©ch +) { + +193 +p +--; + +195 if(( +¡ +-> +size + > 16)) { + +196 + `_i_INDENT +(1); + +200 if( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +) < 0) + +204 if( +¡ +-> +b™s_unu£d +) { + +205  +»t + = + `¢´štf +( +sü©ch +, (scratch), " (%d bit%s unused)", + +206 +¡ +-> +b™s_unu£d +, st->bits_unused == 1 ? "" : "s"); + +207 + `as£¹ +( +»t + > 0 &&„‘ < ( +ssize_t +)( +sü©ch +)); + +208 if( +»t + > 0 &&„‘ < ( +ssize_t +)( +sü©ch +) + +209 && + `cb +( +sü©ch +, +»t +, +­p_key +) < 0) + +214 + } +} + +219 cÚ¡ +BIT_STRING_t + * + +220 + $BIT_STRING__com·ùify +(cÚ¡ +BIT_STRING_t + * +¡ +, BIT_STRING_ˆ* +tmp +) { + +221 cÚ¡ +ušt8_t + * +b +; + +223 cÚ¡ +ušt8_t + * +c_buf +; + +224 +ušt8_t + * +nc_buf +; + +225 } +uncÚ¡ +; + +227 if( +¡ +-> +size + == 0) { + +228 + `as£¹ +( +¡ +-> +b™s_unu£d + == 0); + +229  +¡ +; + +231  +b + = & +¡ +-> +buf +[¡-> +size + - 1]; b > st->buf && *b == 0; b--) { + +235 if(* +b +) { + +236  +unu£d + = 7; + +237 +ušt8_t + +v + = * +b +; + +238 +v + &ð-( +št8_t +)v; + +239 if( +v + & 0x0Fè +unu£d + -= 4; + +240 if( +v + & 0x33è +unu£d + -= 2; + +241 if( +v + & 0x55è +unu£d + -= 1; + +242 +tmp +-> +size + = +b +- +¡ +-> +buf + + 1; + +243 +tmp +-> +b™s_unu£d + = +unu£d +; + +245 +tmp +-> +size + = +b +- +¡ +-> +buf +; + +246 +tmp +-> +b™s_unu£d + = 0; + +249 + `as£¹ +( +b + >ð +¡ +-> +buf +); + +252 +uncÚ¡ +. +c_buf + = +¡ +-> +buf +; + +253 +tmp +-> +buf + = +uncÚ¡ +. +nc_buf +; + +254  +tmp +; + +255 + } +} + +262 + $BIT_STRING_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +263 cÚ¡ * +b±r +) { + +269 +BIT_STRING_t + +com·ù_a +, +com·ù_b +; + +270 cÚ¡ +BIT_STRING_t + * +a + = + `BIT_STRING__com·ùify +( +­Œ +, & +com·ù_a +); + +271 cÚ¡ +BIT_STRING_t + * +b + = + `BIT_STRING__com·ùify +( +b±r +, & +com·ù_b +); + +272 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics +; + +274 + `as£¹ +( +¥ecs + && s³cs-> +subv¬ŸÁ + =ð +ASN_OSUBV_BIT +); + +276 if( +a + && +b +) { + +277 +size_t + +commÚ_´efix_size + = +a +-> +size + <ð +b +->size ?‡->size : b->size; + +278  +»t + = + `memcmp +( +a +-> +buf +, +b +->buf, +commÚ_´efix_size +); + +279 if( +»t + == 0) { + +281 if( +a +-> +size + < +b +->size) { + +283 } if( +a +-> +size + > +b +->size) { + +287 if( +a +-> +b™s_unu£d + > +b +->bits_unused) { + +289 } if( +a +-> +b™s_unu£d + < +b +->bits_unused) { + +296  +»t +; + +298 } if(! +a + && ! +b +) { + +300 } if(! +a +) { + +305 + } +} + +307 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +309 #undeà +RETURN + + +310  + #RETURN +( +_code +) \ + +312 +a¢_dec_rv®_t + +tm´v® +; \ + +313 +tm´v® +. +code + = +_code +; \ + +314 +tm´v® +. +cÚsumed + = +cÚsumed_my£lf +; \ + +315  +tm´v® +; \ + +316 } 0) + + ) + +318  +a¢_³r_cÚ¡¿št_t + + ga¢_DEF_BIT_STRING_cÚ¡¿št_size + = { + +319 +APC_SEMI_CONSTRAINED +, -1, -1, 0, 0}; + +321 +a¢_dec_rv®_t + + +322 + $BIT_STRING_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +323 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +324 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +325 +a¢_³r_d©a_t + * +pd +) { + +326 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +327 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +328 : & +a¢_SPC_BIT_STRING_¥ecs +; + +329 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = + +330 +cÚ¡¿šts + ? cÚ¡¿št : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +331 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +332 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +333 +BIT_STRING_t + * +¡ + = (BIT_STRING_ˆ*)* +¥Œ +; + +334 +ssize_t + +cÚsumed_my£lf + = 0; + +335  +»³© +; + +337 () +Ýt_codec_ùx +; + +339 if( +pc +) { + +340 +csiz + = & +pc +-> +size +; + +342 +csiz + = & +a¢_DEF_BIT_STRING_cÚ¡¿št_size +; + +345 if( +¥ecs +-> +subv¬ŸÁ + !ð +ASN_OSUBV_BIT +) { + +346 + `ASN_DEBUG +("Subv¬ŸÁ %d i nÙ BIT OSUBV_BIT", +¥ecs +-> +subv¬ŸÁ +); + +347 + `RETURN +( +RC_FAIL +); + +353 if(! +¡ +) { + +354 +¡ + = ( +BIT_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +355 if(! +¡ +è + `RETURN +( +RC_FAIL +); + +358 + `ASN_DEBUG +("PER Decoding %s size %ld .. %ld bits %d", + +359 +csiz +-> +æags + & +APC_EXTENSIBLE + ? "extensible" : "non-extensible", + +360 +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, csiz-> +efãùive_b™s +); + +362 if( +csiz +-> +æags + & +APC_EXTENSIBLE +) { + +363  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +364 if( +šext + < 0è + `RETURN +( +RC_WMORE +); + +365 if( +šext +) { + +366 +csiz + = & +a¢_DEF_BIT_STRING_cÚ¡¿št_size +; + +370 if( +csiz +-> +efãùive_b™s + >= 0) { + +371 + `FREEMEM +( +¡ +-> +buf +); + +372 +¡ +-> +size + = ( +csiz +-> +uµ”_bound + + 7) >> 3; + +373 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +(¡-> +size + + 1); + +374 if(! +¡ +-> +buf +è{ st-> +size + = 0; + `RETURN +( +RC_FAIL +); } + +380 if( +csiz +-> +efãùive_b™s + == 0) { + +381  +»t +; + +382 + `ASN_DEBUG +("Encodšg BIT STRING siz%ld", +csiz +-> +uµ”_bound +); + +383 +»t + = + `³r_g‘_mªy_b™s +( +pd +, +¡ +-> +buf +, 0, +csiz +-> +uµ”_bound +); + +384 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +385 +cÚsumed_my£lf + +ð +csiz +-> +uµ”_bound +; + +386 +¡ +-> +buf +[¡-> +size +] = 0; + +387 +¡ +-> +b™s_unu£d + = (8 - ( +csiz +-> +uµ”_bound + & 0x7)) & 0x7; + +388 + `RETURN +( +RC_OK +); + +391 +¡ +-> +size + = 0; + +393 +ssize_t + +¿w_Ën +; + +394 +ssize_t + +Ën_by‹s +; + +395 +ssize_t + +Ën_b™s +; + +396 * +p +; + +397  +»t +; + +400 +¿w_Ën + = + `u³r_g‘_Ëngth +( +pd +, +csiz +-> +efãùive_b™s +, csiz-> +low”_bound +, + +401 & +»³© +); + +402 if( +¿w_Ën + < 0è + `RETURN +( +RC_WMORE +); + +403 if( +¿w_Ën + =ð0 && +¡ +-> +buf +) ; + +405 + `ASN_DEBUG +("Got PER†engthƒb %ld,†en %ld, %s (%s)", + +406 () +csiz +-> +efãùive_b™s +, () +¿w_Ën +, + +407 +»³© + ? "»³©" : "Úû", +td +-> +Çme +); + +408 +Ën_b™s + = +¿w_Ën +; + +409 +Ën_by‹s + = ( +Ën_b™s + + 7) >> 3; + +410 if( +Ën_b™s + & 0x7è +¡ +-> +b™s_unu£d + = 8 - (len_bits & 0x7); + +412 +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + +Ën_by‹s + + 1); + +413 if(! +p +è + `RETURN +( +RC_FAIL +); + +414 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +416 +»t + = + `³r_g‘_mªy_b™s +( +pd +, & +¡ +-> +buf +[¡-> +size +], 0, +Ën_b™s +); + +417 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +418 +¡ +-> +size + +ð +Ën_by‹s +; + +419 }  +»³© +); + +420 +¡ +-> +buf +[¡-> +size +] = 0; + +422  +rv® +; + +423 + } +} + +425 +a¢_’c_rv®_t + + +426 + $BIT_STRING_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +427 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +428 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +429 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = + +430 +td +-> +¥ecifics + ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *)td->specifics + +431 : & +a¢_SPC_BIT_STRING_¥ecs +; + +432 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = + +433 +cÚ¡¿šts + ? cÚ¡¿št : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +434 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +435 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +436 +BIT_STRING_t + +com·ù_b¡r +; + +437 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +438  +šext + = 0; + +439 +size_t + +size_š_b™s +; + +440 cÚ¡ +ušt8_t + * +buf +; + +441  +»t +; + +442  +ù_ex‹nsibË +; + +444 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +445 +ASN__ENCODE_FAILED +; + +447 if( +¥ecs +-> +subv¬ŸÁ + =ð +ASN_OSUBV_BIT +) { + +448 if(( +¡ +-> +size + =ð0 && st-> +b™s_unu£d +) || (st->bits_unused & ~7)) + +449 +ASN__ENCODE_FAILED +; + +451 +ASN__ENCODE_FAILED +; + +454 if( +pc +) { + +455 +csiz + = & +pc +-> +size +; + +457 +csiz + = & +a¢_DEF_BIT_STRING_cÚ¡¿št_size +; + +459 +ù_ex‹nsibË + = +csiz +-> +æags + & +APC_EXTENSIBLE +; + +462 +¡ + = + `BIT_STRING__com·ùify +(¡, & +com·ù_b¡r +); + +463 +size_š_b™s + = 8 * +¡ +-> +size + - st-> +b™s_unu£d +; + +465 + `ASN_DEBUG +( + +466 "Encodšg % štØ%" +ASN_PRI_SIZE + " bits" + +468 +td +-> +Çme +, +size_š_b™s +, +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, + +469 +csiz +-> +efãùive_b™s +, +ù_ex‹nsibË + ? " EXT" : ""); + +473 if( +csiz +-> +efãùive_b™s + >= 0) { + +474 if(( +ssize_t +) +size_š_b™s + > +csiz +-> +uµ”_bound +) { + +475 if( +ù_ex‹nsibË +) { + +476 +csiz + = & +a¢_DEF_BIT_STRING_cÚ¡¿št_size +; + +477 +šext + = 1; + +479 +ASN__ENCODE_FAILED +; + +483 +šext + = 0; + +486 if( +ù_ex‹nsibË +) { + +488 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +489 +ASN__ENCODE_FAILED +; + +492 if( +csiz +-> +efãùive_b™s + >ð0 && ! +šext +) { + +493  +add_Œaž” + = ( +ssize_t +) +size_š_b™s + < +csiz +-> +low”_bound +; + +494 + `ASN_DEBUG +( + +495 "Encodšg %" +ASN_PRI_SIZE + " bytes (%ld),†ength (in %d bits)railer %d;‡ctual " + +496 "v®u%" +ASN_PRI_SSIZE + "", + +497 +¡ +-> +size +, +size_š_b™s + - +csiz +-> +low”_bound +, csiz-> +efãùive_b™s +, + +498 +add_Œaž” +, + +499 +add_Œaž” + ? 0 : ( +ssize_t +) +size_š_b™s + - +csiz +-> +low”_bound +); + +500 +»t + = + `³r_put_ãw_b™s +( + +501 +po +, +add_Œaž” + ? 0 : ( +ssize_t +) +size_š_b™s + - +csiz +-> +low”_bound +, + +502 +csiz +-> +efãùive_b™s +); + +503 if( +»t +è +ASN__ENCODE_FAILED +; + +504 +»t + = + `³r_put_mªy_b™s +( +po +, +¡ +-> +buf +, +size_š_b™s +); + +505 if( +»t +è +ASN__ENCODE_FAILED +; + +506 if( +add_Œaž” +) { + +507 cÚ¡ +ušt8_t + +z”os +[16]; + +508 +size_t + +Œažšg_z”o_b™s + = +csiz +-> +low”_bound + - +size_š_b™s +; + +509  +Œažšg_z”o_b™s + > 0) { + +510 if( +Œažšg_z”o_b™s + > 8 * ( +z”os +)) { + +511 +»t + = + `³r_put_mªy_b™s +( +po +, +z”os +, 8 * (zeros)); + +512 +Œažšg_z”o_b™s + -ð8 * ( +z”os +); + +514 +»t + = + `³r_put_mªy_b™s +( +po +, +z”os +, +Œažšg_z”o_b™s +); + +515 +Œažšg_z”o_b™s + = 0; + +517 if( +»t +è +ASN__ENCODE_FAILED +; + +520 + `ASN__ENCODED_OK +( +” +); + +523 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SIZE + " by‹s", +¡ +-> +size +); + +525 +buf + = +¡ +->buf; + +527  +Ãed_eom + = 0; + +528 +ssize_t + +maySave + = + `u³r_put_Ëngth +( +po +, +size_š_b™s +, & +Ãed_eom +); + +529 if( +maySave + < 0è +ASN__ENCODE_FAILED +; + +531 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SSIZE + " oà%" +ASN_PRI_SIZE + "", +maySave +, +size_š_b™s +); + +533 +»t + = + `³r_put_mªy_b™s +( +po +, +buf +, +maySave +); + +534 if( +»t +è +ASN__ENCODE_FAILED +; + +536 +buf + +ð +maySave + >> 3; + +537 +size_š_b™s + -ð +maySave +; + +538 + `as£¹ +(!( +maySave + & 0x07è|| ! +size_š_b™s +); + +539 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)) + +540 +ASN__ENCODE_FAILED +; + +541 }  +size_š_b™s +); + +543 + `ASN__ENCODED_OK +( +” +); + +544 + } +} + +548 +a¢_¿ndom_fžl_»suÉ_t + + +549 + $BIT_STRING_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +550 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +551 +size_t + +max_Ëngth +) { + +552 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = + +553 +td +-> +¥ecifics + ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *)td->specifics + +554 : & +a¢_SPC_BIT_STRING_¥ecs +; + +555 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +556 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +557 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +558  +Ëngths +[] = {0, 1, 2, 3, 4, 8, + +561 +ušt8_t + * +buf +; + +562 +ušt8_t + * +b’d +; + +563 +ušt8_t + * +b +; + +564 +size_t + +ºd_b™s +, +ºd_Ën +; + +565 +BIT_STRING_t + * +¡ +; + +567 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +569  +¥ecs +-> +subv¬ŸÁ +) { + +570  +ASN_OSUBV_ANY +: + +571  +»suÉ_çžed +; + +572  +ASN_OSUBV_BIT +: + +579 +ºd_b™s + = +Ëngths +[ + `a¢_¿ndom_b‘w“n +( + +580 0, ( +Ëngths +) / (lengths[0]) - 1)]; + +581 if(! +cÚ¡¿šts + || !cÚ¡¿šts-> +³r_cÚ¡¿šts +) + +582 +cÚ¡¿šts + = & +td +-> +’codšg_cÚ¡¿šts +; + +583 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +) { + +584 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +pc + = & +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +size +; + +585 if( +pc +-> +æags + & +APC_CONSTRAINED +) { + +586  +sugge¡ed_uµ”_bound + = +pc +-> +uµ”_bound + < ( +ssize_t +) +max_Ëngth + + +587 ? +pc +-> +uµ”_bound + + +588 : ( +ssize_t +) +max_Ëngth +; + +589 if( +max_Ëngth + < ( +size_t +) +pc +-> +low”_bound +) { + +590  +»suÉ_sk³d +; + +592 if( +pc +-> +æags + & +APC_EXTENSIBLE +) { + +593  + `a¢_¿ndom_b‘w“n +(0, 5)) { + +595 if( +pc +-> +low”_bound + > 0) { + +596 +ºd_b™s + = +pc +-> +low”_bound + - 1; + +601 +ºd_b™s + = +pc +-> +uµ”_bound + + 1; + +605 if( +ºd_b™s + < +max_Ëngth +) { + +610 +ºd_b™s + = + `a¢_¿ndom_b‘w“n +( +pc +-> +low”_bound +, + +611 +sugge¡ed_uµ”_bound +); + +614 +ºd_b™s + = + +615 + `a¢_¿ndom_b‘w“n +( +pc +-> +low”_bound +, +sugge¡ed_uµ”_bound +); + +618 +ºd_b™s + = + `a¢_¿ndom_b‘w“n +(0, +max_Ëngth + - 1); + +620 } if( +ºd_b™s + >ð +max_Ëngth +) { + +621 +ºd_b™s + = + `a¢_¿ndom_b‘w“n +(0, +max_Ëngth + - 1); + +624 +ºd_Ën + = ( +ºd_b™s + + 7) / 8; + +625 +buf + = + `CALLOC +(1, +ºd_Ën + + 1); + +626 if(! +buf +è +»suÉ_çžed +; + +628 +b’d + = & +buf +[ +ºd_Ën +]; + +630  +b + = +buf +; b < +b’d +; b++) { + +631 *( +ušt8_t + *) +b + = + `a¢_¿ndom_b‘w“n +(0, 255); + +633 * +b + = 0; + +635 if(* +¥Œ +) { + +636 +¡ + = * +¥Œ +; + +637 + `FREEMEM +( +¡ +-> +buf +); + +639 +¡ + = ( +BIT_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +640 if(! +¡ +) { + +641 + `FREEMEM +( +buf +); + +642  +»suÉ_çžed +; + +646 +¡ +-> +buf + = buf; + +647 +¡ +-> +size + = +ºd_Ën +; + +648 +¡ +-> +b™s_unu£d + = (8 - ( +ºd_b™s + & 0x7)) & 0x7; + +649 if( +¡ +-> +b™s_unu£d +) { + +650 + `as£¹ +( +¡ +-> +size + > 0); + +651 +¡ +-> +buf +[¡-> +size +-1] &ð0xfà<< st-> +b™s_unu£d +; + +654 +»suÉ_ok +. +Ëngth + = +¡ +-> +size +; + +655  +»suÉ_ok +; + +656 + } +} + + @BOOLEAN.c + +5  + ~ + +6  + ~ + +7  + ~ + +12 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_BOOLEAN_gs +[] = { + +13 ( +ASN_TAG_CLASS_UNIVERSAL + | (1 << 2)) + +15 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_BOOLEAN + = { + +16 +BOOLEAN_ä“ +, + +17 +BOOLEAN_´št +, + +18 +BOOLEAN_com·» +, + +19 +BOOLEAN_decode_b” +, + +20 +BOOLEAN_’code_d” +, + +21 +BOOLEAN_decode_x” +, + +22 +BOOLEAN_’code_x” +, + +23 #ifdef +ASN_DISABLE_OER_SUPPORT + + +27 +BOOLEAN_decode_Ûr +, + +28 +BOOLEAN_’code_Ûr +, + +30 #ifdef +ASN_DISABLE_PER_SUPPORT + + +36 +BOOLEAN_decode_u³r +, + +37 +BOOLEAN_’code_u³r +, + +38 +BOOLEAN_decode_­” +, + +39 +BOOLEAN_’code_­” +, + +41 +BOOLEAN_¿ndom_fžl +, + +44 +a¢_TYPE_desütÜ_t + + ga¢_DEF_BOOLEAN + = { + +47 & +a¢_OP_BOOLEAN +, + +48 +a¢_DEF_BOOLEAN_gs +, + +49 ( +a¢_DEF_BOOLEAN_gs +) / (asn_DEF_BOOLEAN_tags[0]), + +50 +a¢_DEF_BOOLEAN_gs +, + +51 ( +a¢_DEF_BOOLEAN_gs +) / (asn_DEF_BOOLEAN_tags[0]), + +52 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +60 +a¢_dec_rv®_t + + +61 + $BOOLEAN_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +62 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +boÞ_v®ue +, + +63 cÚ¡ * +buf_±r +, +size_t + +size +,  +g_mode +) { + +64 +BOOLEAN_t + * +¡ + = (BOOLEAN_ˆ*)* +boÞ_v®ue +; + +65 +a¢_dec_rv®_t + +rv® +; + +66 +b”_Žv_Ën_t + +Ëngth +; + +67 +b”_Žv_Ën_t + +lidx +; + +69 if( +¡ + =ð +NULL +) { + +70 +¡ + = ( +BOOLEAN_t + *)(* +boÞ_v®ue + = + `CALLOC +(1, (*st))); + +71 if( +¡ + =ð +NULL +) { + +72 +rv® +. +code + = +RC_FAIL +; + +73 +rv® +. +cÚsumed + = 0; + +74  +rv® +; + +78 + `ASN_DEBUG +("Decoding %s‡s BOOLEAN (tm=%d)", + +79 +td +-> +Çme +, +g_mode +); + +84 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, 0, +buf_±r +, +size +, + +85 +g_mode +, 0, & +Ëngth +, 0); + +86 if( +rv® +. +code + !ð +RC_OK +) + +87  +rv® +; + +89 + `ASN_DEBUG +("BoޗÀËngth i %d by‹s", () +Ëngth +); + +91 +buf_±r + = ((cÚ¡ *)buf_±rè+ +rv® +. +cÚsumed +; + +92 +size + -ð +rv® +. +cÚsumed +; + +93 if( +Ëngth + > ( +b”_Žv_Ën_t +) +size +) { + +94 +rv® +. +code + = +RC_WMORE +; + +95 +rv® +. +cÚsumed + = 0; + +96  +rv® +; + +102 * +¡ + = 0, +lidx + = 0; + +103 ( +lidx + < +Ëngth +è&& * +¡ + == 0;†idx++) { + +109 * +¡ + |ð((cÚ¡ +ušt8_t + *) +buf_±r +)[ +lidx +]; + +112 +rv® +. +code + = +RC_OK +; + +113 +rv® +. +cÚsumed + +ð +Ëngth +; + +115 + `ASN_DEBUG +("Took %ld/%ld bytesoƒncode %s, value=%d", + +116 () +rv® +. +cÚsumed +, () +Ëngth +, + +117 +td +-> +Çme +, * +¡ +); + +119  +rv® +; + +120 + } +} + +122 +a¢_’c_rv®_t + + +123 + $BOOLEAN_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +124  +g_mode +, +b”_Žv_g_t + +g +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +125 * +­p_key +) { + +126 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +127 cÚ¡ +BOOLEAN_t + * +¡ + = (cÚ¡ BOOLEAN_ˆ*) +¥Œ +; + +129 +”v® +. +’coded + = + `d”_wr™e_gs +( +td +, 1, +g_mode +, 0, +g +, +cb +, +­p_key +); + +130 if( +”v® +. +’coded + == -1) { + +131 +”v® +. +çžed_ty³ + = +td +; + +132 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +133  +”v® +; + +136 if( +cb +) { + +137 +ušt8_t + +boÞ_v®ue +; + +139 +boÞ_v®ue + = * +¡ + ? 0xff : 0; + +141 if( + `cb +(& +boÞ_v®ue +, 1, +­p_key +) < 0) { + +142 +”v® +. +’coded + = -1; + +143 +”v® +. +çžed_ty³ + = +td +; + +144 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +145  +”v® +; + +149 +”v® +. +’coded + += 1; + +151 + `ASN__ENCODED_OK +( +”v® +); + +152 + } +} + +158  +x”_pbd_rv® + + +159 + $BOOLEAN__x”_body_decode +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +160 cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +161 +BOOLEAN_t + * +¡ + = (BOOLEAN_ˆ*) +¥Œ +; + +162 cÚ¡ * +p + = (cÚ¡ *) +chunk_buf +; + +164 () +td +; + +166 if( +chunk_size + && +p +[0] == 0x3c ) { + +167  + `x”_check_g +( +chunk_buf +, +chunk_size +, "false")) { + +168  +XCT_BOTH +: + +170 * +¡ + = 0; + +172  +XCT_UNKNOWN_BO +: + +173 if( + `x”_check_g +( +chunk_buf +, +chunk_size +, "true") + +174 !ð +XCT_BOTH +) + +175  +XPBD_BROKEN_ENCODING +; + +177 * +¡ + = 1; + +180  +XPBD_BROKEN_ENCODING +; + +182  +XPBD_BODY_CONSUMED +; + +184  +XPBD_BROKEN_ENCODING +; + +186 + } +} + +189 +a¢_dec_rv®_t + + +190 + $BOOLEAN_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +191 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +192 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +193  + `x”_decode_´im™ive +( +Ýt_codec_ùx +, +td +, + +194 +¥Œ +, ( +BOOLEAN_t +), +Ýt_mÇme +, +buf_±r +, +size +, + +195 +BOOLEAN__x”_body_decode +); + +196 + } +} + +198 +a¢_’c_rv®_t + + +199 + $BOOLEAN_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +200  +žev– +, +x”_’cod”_æags_e + +æags +, + +201 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +202 cÚ¡ +BOOLEAN_t + * +¡ + = (cÚ¡ BOOLEAN_ˆ*) +¥Œ +; + +203 +a¢_’c_rv®_t + +” + = {0, 0, 0}; + +205 () +žev– +; + +206 () +æags +; + +208 if(! +¡ +è +ASN__ENCODE_FAILED +; + +210 if(* +¡ +) { + +211 + `ASN__CALLBACK +("", 7); + +213 + `ASN__CALLBACK +("", 8); + +216 + `ASN__ENCODED_OK +( +” +); + +217 +cb_çžed +: + +218 +ASN__ENCODE_FAILED +; + +219 + } +} + +222 + $BOOLEAN_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +223 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +224 cÚ¡ +BOOLEAN_t + * +¡ + = (cÚ¡ BOOLEAN_ˆ*) +¥Œ +; + +225 cÚ¡ * +buf +; + +226 +size_t + +buæ’ +; + +228 () +td +; + +229 () +žev– +; + +231 if( +¡ +) { + +232 if(* +¡ +) { + +233 +buf + = "TRUE"; + +234 +buæ’ + = 4; + +236 +buf + = "FALSE"; + +237 +buæ’ + = 5; + +240 +buf + = ""; + +241 +buæ’ + = 8; + +244  ( + `cb +( +buf +, +buæ’ +, +­p_key +) < 0) ? -1 : 0; + +245 + } +} + +248 + $BOOLEAN_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +±r +, + +249 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +250 if( +td + && +±r +) { + +251  +m‘hod +) { + +252  +ASFM_FREE_EVERYTHING +: + +253 + `FREEMEM +( +±r +); + +255  +ASFM_FREE_UNDERLYING +: + +257  +ASFM_FREE_UNDERLYING_AND_RESET +: + +258 + `mem£t +( +±r +, 0, ( +BOOLEAN_t +)); + +262 + } +} + +264 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +266 +a¢_dec_rv®_t + + +267 + $BOOLEAN_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +268 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +269 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +270 +a¢_³r_d©a_t + * +pd +) { + +271 +a¢_dec_rv®_t + +rv +; + +272 +BOOLEAN_t + * +¡ + = (BOOLEAN_ˆ*)* +¥Œ +; + +274 () +Ýt_codec_ùx +; + +275 () +td +; + +276 () +cÚ¡¿šts +; + +278 if(! +¡ +) { + +279 +¡ + = ( +BOOLEAN_t + *)(* +¥Œ + = + `MALLOC +((*st))); + +280 if(! +¡ +è +ASN__DECODE_FAILED +; + +286  + `³r_g‘_ãw_b™s +( +pd +, 1)) { + +287 1: * +¡ + = 1; ; + +288 0: * +¡ + = 0; ; + +289 -1: : +ASN__DECODE_STARVED +; + +292 + `ASN_DEBUG +("% decoded‡ %s", +td +-> +Çme +, * +¡ + ? "TRUE" : "FALSE"); + +294 +rv +. +code + = +RC_OK +; + +295 +rv +. +cÚsumed + = 1; + +296  +rv +; + +297 + } +} + +300 +a¢_’c_rv®_t + + +301 + $BOOLEAN_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +302 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +303 +a¢_³r_ou_t + * +po +) { + +304 cÚ¡ +BOOLEAN_t + * +¡ + = (cÚ¡ BOOLEAN_ˆ*) +¥Œ +; + +305 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +307 () +cÚ¡¿šts +; + +309 if(! +¡ +è +ASN__ENCODE_FAILED +; + +311 if( + `³r_put_ãw_b™s +( +po +, * +¡ + ? 1 : 0, 1)) + +312 +ASN__ENCODE_FAILED +; + +314 + `ASN__ENCODED_OK +( +” +); + +315 + } +} + +317 +a¢_dec_rv®_t + + +318 + $BOOLEAN_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +319 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +320 +a¢_dec_rv®_t + +rv +; + +321 +BOOLEAN_t + * +¡ + = (BOOLEAN_ˆ*)* +¥Œ +; + +323 () +Ýt_codec_ùx +; + +324 () +cÚ¡¿šts +; + +325 () +td +; + +327 if(! +¡ +) { + +328 +¡ + = ( +BOOLEAN_t + *)(* +¥Œ + = + `MALLOC +((*st))); + +329 if(! +¡ +è +ASN__DECODE_FAILED +; + +335  + `³r_g‘_ãw_b™s +( +pd +, 1)) { + +337 * +¡ + = 1; + +340 * +¡ + = 0; + +344 +ASN__DECODE_STARVED +; + +347 + `ASN_DEBUG +("% decoded‡ %s", +td +-> +Çme +, * +¡ + ? "TRUE" : "FALSE"); + +349 +rv +. +code + = +RC_OK +; + +350 +rv +. +cÚsumed + = 1; + +351  +rv +; + +352 + } +} + +354 +a¢_’c_rv®_t + + +355 + $BOOLEAN_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +356 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +357 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +358 cÚ¡ +BOOLEAN_t + * +¡ + = (cÚ¡ BOOLEAN_ˆ*) +¥Œ +; + +359 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +361 () +cÚ¡¿šts +; + +363 if(! +¡ +è +ASN__ENCODE_FAILED +; + +365 if( + `³r_put_ãw_b™s +( +po +, * +¡ + ? 1 : 0, 1)) + +366 +ASN__ENCODE_FAILED +; + +368 + `ASN__ENCODED_OK +( +” +); + +369 + } +} + +373 #iâdeà +ASN_DISABLE_OER_SUPPORT + + +378 +a¢_’c_rv®_t + + +379 + $BOOLEAN_’code_Ûr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +380 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +381 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +382 +a¢_’c_rv®_t + +” + = { 1, 0, 0 }; + +383 cÚ¡ +BOOLEAN_t + * +¡ + = +¥Œ +; + +384 +ušt8_t + +boÞ_v®ue + = * +¡ + ? 0xff : 0; + +386 () +td +; + +387 () +cÚ¡¿šts +; + +389 if( + `cb +(& +boÞ_v®ue +, 1, +­p_key +) < 0) { + +390 +ASN__ENCODE_FAILED +; + +392 + `ASN__ENCODED_OK +( +” +); + +394 + } +} + +396 +a¢_dec_rv®_t + + +397 + $BOOLEAN_decode_Ûr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +398 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +399 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +400 cÚ¡ * +±r +, +size_t + +size +) { + +401 +a¢_dec_rv®_t + +ok + = { +RC_OK +, 1}; + +402 +BOOLEAN_t + * +¡ +; + +404 () +Ýt_codec_ùx +; + +405 () +td +; + +406 () +cÚ¡¿šts +; + +408 if( +size + < 1) { + +409 +ASN__DECODE_STARVED +; + +412 if(!( +¡ + = * +¥Œ +)) { + +413 +¡ + = ( +BOOLEAN_t + *)(* +¥Œ + = + `CALLOC +(1, (*st))); + +414 if(! +¡ +è +ASN__DECODE_FAILED +; + +417 * +¡ + = *(cÚ¡ +ušt8_t + *) +±r +; + +419  +ok +; + +420 + } +} + +427 + $BOOLEAN_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +428 cÚ¡ * +b±r +) { + +429 cÚ¡ +BOOLEAN_t + * +a + = +­Œ +; + +430 cÚ¡ +BOOLEAN_t + * +b + = +b±r +; + +432 () +td +; + +434 if( +a + && +b +) { + +435 if(!* +a + =ð!* +b +) { + +437 } if(!* +a +) { + +442 } if(! +a +) { + +447 + } +} + +449 +a¢_¿ndom_fžl_»suÉ_t + + +450 + $BOOLEAN_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +451 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +452 +size_t + +max_Ëngth +) { + +453 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +454 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +455 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +456 +BOOLEAN_t + * +¡ + = * +¥Œ +; + +458 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +460 if( +¡ + =ð +NULL +) { + +461 +¡ + = ( +BOOLEAN_t + *)(* +¥Œ + = + `CALLOC +(1, (*st))); + +462 if( +¡ + =ð +NULL +) { + +463  +»suÉ_çžed +; + +467 if(! +cÚ¡¿šts + || !cÚ¡¿šts-> +³r_cÚ¡¿šts +) + +468 +cÚ¡¿šts + = & +td +-> +’codšg_cÚ¡¿šts +; + +469 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +) { + +470 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +pc + = & +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +v®ue +; + +471 if( +pc +-> +æags + & +APC_CONSTRAINED +) { + +472 * +¡ + = + `a¢_¿ndom_b‘w“n +( +pc +-> +low”_bound +,…c-> +uµ”_bound +); + +473  +»suÉ_ok +; + +478  + `a¢_¿ndom_b‘w“n +(0, 7)) { + +482 * +¡ + = 0; ; + +483 3: * +¡ + = -1; ; + +484 4: * +¡ + = 1; ; + +485 5: * +¡ + = +INT_MIN +; ; + +486 6: * +¡ + = +INT_MAX +; ; + +488 * +¡ + = + `a¢_¿ndom_b‘w“n +( +INT_MIN +, +INT_MAX +); + +491  +»suÉ_ok +; + +492 + } +} + + @CGI.c + +8  + ~"CGI.h +" + +10  + ~"NR-CGI.h +" + +11  + ~"EUTRA-CGI.h +" + +12 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_CGI_cÚ¡r_1 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17 +a¢_TYPE_memb”_t + + ga¢_MBR_CGI_1 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +CGI +, +choiû +. +nR_CGI +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_NR_CGI +, + +27 { +ATF_POINTER +, 0, +off£tof +( +CGI +, +choiû +. +eUTRA_CGI +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_EUTRA_CGI +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_CGI_g2–_1 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_CGI_¥ecs_1 + = { + +42 ( +CGI +), + +43 +off£tof +( +CGI +, +_a¢_ùx +), + +44 +off£tof +( +CGI +, +´e£Á +), + +45 ((( +CGI + *)0)-> +´e£Á +), + +46 +a¢_MAP_CGI_g2–_1 +, + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_CGI + = { + +54 & +a¢_OP_CHOICE +, + +59 { 0, & +a¢_PER_ty³_CGI_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +60 +a¢_MBR_CGI_1 +, + +62 & +a¢_SPC_CGI_¥ecs_1 + + + @CoreCPID.c + +8  + ~"CÜeCPID.h +" + +10  + ~"GUAMI.h +" + +11  + ~"GUMMEI.h +" + +12  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_CÜeCPID_cÚ¡r_1 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17  +a¢_TYPE_memb”_t + + ga¢_MBR_CÜeCPID_1 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +CÜeCPID +, +choiû +. +fiveGC +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_GUAMI +, + +27 { +ATF_POINTER +, 0, +off£tof +( +CÜeCPID +, +choiû +. +ePC +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_GUMMEI +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_CÜeCPID_g2–_1 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_CÜeCPID_¥ecs_1 + = { + +42 ( +CÜeCPID +), + +43 +off£tof +( +CÜeCPID +, +_a¢_ùx +), + +44 +off£tof +( +CÜeCPID +, +´e£Á +), + +45 ((( +CÜeCPID + *)0)-> +´e£Á +), + +46 +a¢_MAP_CÜeCPID_g2–_1 +, + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_CÜeCPID + = { + +54 & +a¢_OP_CHOICE +, + +59 { 0, & +a¢_PER_ty³_CÜeCPID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +60 +a¢_MBR_CÜeCPID_1 +, + +62 & +a¢_SPC_CÜeCPID_¥ecs_1 + + + @E-UTRA-ARFCN.c + +8  + ~"E-UTRA-ARFCN.h +" + +11 + $E_UTRA_ARFCN_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 65535)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_E_UTRA_ARFCN_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 16, 16, 0, 65535 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E_UTRA_ARFCN_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E_UTRA_ARFCN + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_E_UTRA_ARFCN_gs_1 +, + +52 ( +a¢_DEF_E_UTRA_ARFCN_gs_1 +) + +53 /( +a¢_DEF_E_UTRA_ARFCN_gs_1 +[0]), + +54 +a¢_DEF_E_UTRA_ARFCN_gs_1 +, + +55 ( +a¢_DEF_E_UTRA_ARFCN_gs_1 +) + +56 /( +a¢_DEF_E_UTRA_ARFCN_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_E_UTRA_ARFCN_cÚ¡r_1 +, +E_UTRA_ARFCN_cÚ¡¿št + }, + + @E-UTRA-PCI.c + +8  + ~"E-UTRA-PCI.h +" + +11 + $E_UTRA_PCI_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 503)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_E_UTRA_PCI_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 9, 9, 0, 503 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E_UTRA_PCI_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E_UTRA_PCI + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_E_UTRA_PCI_gs_1 +, + +52 ( +a¢_DEF_E_UTRA_PCI_gs_1 +) + +53 /( +a¢_DEF_E_UTRA_PCI_gs_1 +[0]), + +54 +a¢_DEF_E_UTRA_PCI_gs_1 +, + +55 ( +a¢_DEF_E_UTRA_PCI_gs_1 +) + +56 /( +a¢_DEF_E_UTRA_PCI_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_E_UTRA_PCI_cÚ¡r_1 +, +E_UTRA_PCI_cÚ¡¿št + }, + + @E-UTRA-TAC.c + +8  + ~"E-UTRA-TAC.h +" + +11 + $E_UTRA_TAC_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 2)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_E_UTRA_TAC_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 2, 2 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E_UTRA_TAC_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E_UTRA_TAC + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_E_UTRA_TAC_gs_1 +, + +53 ( +a¢_DEF_E_UTRA_TAC_gs_1 +) + +54 /( +a¢_DEF_E_UTRA_TAC_gs_1 +[0]), + +55 +a¢_DEF_E_UTRA_TAC_gs_1 +, + +56 ( +a¢_DEF_E_UTRA_TAC_gs_1 +) + +57 /( +a¢_DEF_E_UTRA_TAC_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_E_UTRA_TAC_cÚ¡r_1 +, +E_UTRA_TAC_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @E2SM-KPM-ActionDefinition-Format1.c + +8  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©1.h +" + +10  + ~"CGI.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, +m—sInfoLi¡ +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_M—su»m’tInfoLi¡ +, + +21 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, +g¿nulP”iod +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_G¿nuÏr™yP”iod +, + +30 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, +ûÎGlob®ID +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_CGI +, + +40 cÚ¡  + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_oms_1 +[] = { 2 }; + +41 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +[] = { + +42 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +44 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_g2–_1 +[] = { + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +47 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +49 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_¥ecs_1 + = { + +50 ( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +), + +51 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, +_a¢_ùx +), + +52 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_g2–_1 +, + +54 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_oms_1 +, + +58 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 + = { + +61 & +a¢_OP_SEQUENCE +, + +62 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +, + +63 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +) + +64 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +[0]), + +65 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +, + +66 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +) + +67 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_gs_1 +[0]), + +68 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +69 +a¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_1 +, + +71 & +a¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1_¥ecs_1 + + + @E2SM-KPM-ActionDefinition-Format2.c + +8  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©2.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 +, +ueID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_UEID +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 +, +subsütInfo +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_¥ecs_1 + = { + +38 ( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 +), + +39 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 +, +_a¢_ùx +), + +40 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +, + +50 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +) + +51 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +[0]), + +52 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +, + +53 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +) + +54 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_1 +, + +58 & +a¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2_¥ecs_1 + + + @E2SM-KPM-ActionDefinition-Format3.c + +8  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©3.h +" + +10  + ~"CGI.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +, +m—sCÚdLi¡ +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_M—su»m’tCÚdLi¡ +, + +21 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +, +g¿nulP”iod +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_G¿nuÏr™yP”iod +, + +30 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +, +ûÎGlob®ID +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_CGI +, + +40 cÚ¡  + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_oms_1 +[] = { 2 }; + +41 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +[] = { + +42 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +44 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_g2–_1 +[] = { + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +47 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +49 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_¥ecs_1 + = { + +50 ( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +), + +51 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +, +_a¢_ùx +), + +52 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_g2–_1 +, + +54 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_oms_1 +, + +58 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 + = { + +61 & +a¢_OP_SEQUENCE +, + +62 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +, + +63 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +) + +64 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +[0]), + +65 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +, + +66 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +) + +67 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_gs_1 +[0]), + +68 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +69 +a¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_1 +, + +71 & +a¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3_¥ecs_1 + + + @E2SM-KPM-ActionDefinition.c + +8  + ~"E2SM-KPM-AùiÚDefš™iÚ.h +" + +10  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©1.h +" + +11  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©2.h +" + +12  + ~"E2SM-KPM-AùiÚDefš™iÚ-FÜm©3.h +" + +13  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_aùiÚDefš™iÚ_fÜm©s_cÚ¡r_3 + + gCC_NOTUSED + = { + +14 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 2, 2, 0, 2 } , + +15 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +18  +a¢_TYPE_memb”_t + + ga¢_MBR_aùiÚDefš™iÚ_fÜm©s_3 +[] = { + +19 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +, +choiû +. +aùiÚDefš™iÚ_FÜm©1 +), + +20 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +22 & +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©1 +, + +28 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +, +choiû +. +aùiÚDefš™iÚ_FÜm©2 +), + +29 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +31 & +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©2 +, + +37 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +, +choiû +. +aùiÚDefš™iÚ_FÜm©3 +), + +38 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +40 & +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_FÜm©3 +, + +47 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_aùiÚDefš™iÚ_fÜm©s_g2–_3 +[] = { + +48 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +49 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +50 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +52  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_aùiÚDefš™iÚ_fÜm©s_¥ecs_3 + = { + +53 ( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +), + +54 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +, +_a¢_ùx +), + +55 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s +, +´e£Á +), + +56 ((( +E2SM_KPM_AùiÚDefš™iÚ__aùiÚDefš™iÚ_fÜm©s + *)0)-> +´e£Á +), + +57 +a¢_MAP_aùiÚDefš™iÚ_fÜm©s_g2–_3 +, + +63 +a¢_TYPE_desütÜ_t + + ga¢_DEF_aùiÚDefš™iÚ_fÜm©s_3 + = { + +66 & +a¢_OP_CHOICE +, + +71 { 0, & +a¢_PER_ty³_aùiÚDefš™iÚ_fÜm©s_cÚ¡r_3 +, +CHOICE_cÚ¡¿št + }, + +72 +a¢_MBR_aùiÚDefš™iÚ_fÜm©s_3 +, + +74 & +a¢_SPC_aùiÚDefš™iÚ_fÜm©s_¥ecs_3 + + +77  +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_1 +[] = { + +78 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ +, +ric_StyË_Ty³ +), + +79 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +81 & +a¢_DEF_RIC_StyË_Ty³ +, + +87 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ +, +aùiÚDefš™iÚ_fÜm©s +), + +88 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +90 & +a¢_DEF_aùiÚDefš™iÚ_fÜm©s_3 +, + +97 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +[] = { + +98 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +100 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_g2–_1 +[] = { + +101 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +102 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +104  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_¥ecs_1 + = { + +105 ( +E2SM_KPM_AùiÚDefš™iÚ +), + +106 +off£tof +( +E2SM_KPM_AùiÚDefš™iÚ +, +_a¢_ùx +), + +107 +a¢_MAP_E2SM_KPM_AùiÚDefš™iÚ_g2–_1 +, + +112 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_AùiÚDefš™iÚ + = { + +115 & +a¢_OP_SEQUENCE +, + +116 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +, + +117 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +) + +118 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +[0]), + +119 +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +, + +120 ( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +) + +121 /( +a¢_DEF_E2SM_KPM_AùiÚDefš™iÚ_gs_1 +[0]), + +122 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +123 +a¢_MBR_E2SM_KPM_AùiÚDefš™iÚ_1 +, + +125 & +a¢_SPC_E2SM_KPM_AùiÚDefš™iÚ_¥ecs_1 + + + @E2SM-KPM-EventTriggerDefinition-Format1.c + +8  + ~"E2SM-KPM-Ev’tTrigg”Defš™iÚ-FÜm©1.h +" + +11 + $»pÜtšgP”iod_2_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 4294967295)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +40 + $memb_»pÜtšgP”iod_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +41 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +42  +v®ue +; + +44 if(! +¥Œ +) { + +45 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +47 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +51 +v®ue + = *(cÚ¡ *) +¥Œ +; + +53 if(( +v®ue + >= 1 && value <= 4294967295)) { + +57 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +59 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +62 + } +} + +64  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_»pÜtšgP”iod_cÚ¡r_2 + + gCC_NOTUSED + = { + +65 { +APC_CONSTRAINED +, 32, -1, 1, 4294967295 } , + +66 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +69  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_»pÜtšgP”iod_cÚ¡r_2 + + gCC_NOTUSED + = { + +70 { +APC_CONSTRAINED +, 32, -1, 1, 4294967295 } , + +71 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +74 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_»pÜtšgP”iod_¥ecs_2 + = { + +79 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_»pÜtšgP”iod_gs_2 +[] = { + +80 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +81 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +84 +a¢_TYPE_desütÜ_t + + ga¢_DEF_»pÜtšgP”iod_2 + = { + +87 & +a¢_OP_N©iveIÁeg” +, + +88 +a¢_DEF_»pÜtšgP”iod_gs_2 +, + +89 ( +a¢_DEF_»pÜtšgP”iod_gs_2 +) + +90 /( +a¢_DEF_»pÜtšgP”iod_gs_2 +[0]) - 1, + +91 +a¢_DEF_»pÜtšgP”iod_gs_2 +, + +92 ( +a¢_DEF_»pÜtšgP”iod_gs_2 +) + +93 /( +a¢_DEF_»pÜtšgP”iod_gs_2 +[0]), + +94 { 0, & +a¢_PER_ty³_»pÜtšgP”iod_cÚ¡r_2 +, +»pÜtšgP”iod_2_cÚ¡¿št + }, + +96 & +a¢_SPC_»pÜtšgP”iod_¥ecs_2 + + +99 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_1 +[] = { + +100 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1 +, +»pÜtšgP”iod +), + +101 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +103 & +a¢_DEF_»pÜtšgP”iod_2 +, + +105 { 0, & +a¢_PER_memb_»pÜtšgP”iod_cÚ¡r_2 +, +memb_»pÜtšgP”iod_cÚ¡¿št_1 + }, + +110 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +[] = { + +111 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +113 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_g2–_1 +[] = { + +114 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +116 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_¥ecs_1 + = { + +117 ( +E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1 +), + +118 +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1 +, +_a¢_ùx +), + +119 +a¢_MAP_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_g2–_1 +, + +124 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1 + = { + +127 & +a¢_OP_SEQUENCE +, + +128 +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +, + +129 ( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +) + +130 /( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +[0]), + +131 +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +, + +132 ( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +) + +133 /( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_gs_1 +[0]), + +134 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +135 +a¢_MBR_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_1 +, + +137 & +a¢_SPC_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1_¥ecs_1 + + + @E2SM-KPM-EventTriggerDefinition.c + +8  + ~"E2SM-KPM-Ev’tTrigg”Defš™iÚ.h +" + +10  + ~"E2SM-KPM-Ev’tTrigg”Defš™iÚ-FÜm©1.h +" + +11  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ev’tDefš™iÚ_fÜm©s_cÚ¡r_2 + + gCC_NOTUSED + = { + +12 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +13 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +16  +a¢_TYPE_memb”_t + + ga¢_MBR_ev’tDefš™iÚ_fÜm©s_2 +[] = { + +17 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ__ev’tDefš™iÚ_fÜm©s +, +choiû +. +ev’tDefš™iÚ_FÜm©1 +), + +18 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +20 & +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_FÜm©1 +, + +27 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_ev’tDefš™iÚ_fÜm©s_g2–_2 +[] = { + +28 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +30  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_ev’tDefš™iÚ_fÜm©s_¥ecs_2 + = { + +31 ( +E2SM_KPM_Ev’tTrigg”Defš™iÚ__ev’tDefš™iÚ_fÜm©s +), + +32 +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ__ev’tDefš™iÚ_fÜm©s +, +_a¢_ùx +), + +33 +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ__ev’tDefš™iÚ_fÜm©s +, +´e£Á +), + +34 ((( +E2SM_KPM_Ev’tTrigg”Defš™iÚ__ev’tDefš™iÚ_fÜm©s + *)0)-> +´e£Á +), + +35 +a¢_MAP_ev’tDefš™iÚ_fÜm©s_g2–_2 +, + +41 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ev’tDefš™iÚ_fÜm©s_2 + = { + +44 & +a¢_OP_CHOICE +, + +49 { 0, & +a¢_PER_ty³_ev’tDefš™iÚ_fÜm©s_cÚ¡r_2 +, +CHOICE_cÚ¡¿št + }, + +50 +a¢_MBR_ev’tDefš™iÚ_fÜm©s_2 +, + +52 & +a¢_SPC_ev’tDefš™iÚ_fÜm©s_¥ecs_2 + + +55  +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_Ev’tTrigg”Defš™iÚ_1 +[] = { + +56 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ +, +ev’tDefš™iÚ_fÜm©s +), + +57 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +59 & +a¢_DEF_ev’tDefš™iÚ_fÜm©s_2 +, + +66 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +[] = { + +67 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +69 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_Ev’tTrigg”Defš™iÚ_g2–_1 +[] = { + +70 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +72  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_Ev’tTrigg”Defš™iÚ_¥ecs_1 + = { + +73 ( +E2SM_KPM_Ev’tTrigg”Defš™iÚ +), + +74 +off£tof +( +E2SM_KPM_Ev’tTrigg”Defš™iÚ +, +_a¢_ùx +), + +75 +a¢_MAP_E2SM_KPM_Ev’tTrigg”Defš™iÚ_g2–_1 +, + +80 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ + = { + +83 & +a¢_OP_SEQUENCE +, + +84 +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +, + +85 ( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +) + +86 /( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +[0]), + +87 +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +, + +88 ( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +) + +89 /( +a¢_DEF_E2SM_KPM_Ev’tTrigg”Defš™iÚ_gs_1 +[0]), + +90 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +91 +a¢_MBR_E2SM_KPM_Ev’tTrigg”Defš™iÚ_1 +, + +93 & +a¢_SPC_E2SM_KPM_Ev’tTrigg”Defš™iÚ_¥ecs_1 + + + @E2SM-KPM-IndicationHeader-Format1.c + +8  + ~"E2SM-KPM-IndiÿtiÚH—d”-FÜm©1.h +" + +10 cÚ¡  + g³rm™‹d_®phab‘_bË_3 +[256] = { + +20 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_3 +[74] = { + +28  + $check_³rm™‹d_®phab‘_3 +(cÚ¡ * +¥Œ +) { + +29 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_3 +; + +31 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +32 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +33 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +35 ; +ch + < +’d +; ch++) { + +36 +ušt8_t + +cv + = * +ch +; + +37 if(! +bË +[ +cv +])  -1; + +40 + } +} + +42 cÚ¡  + g³rm™‹d_®phab‘_bË_4 +[256] = { + +52 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_4 +[74] = { + +60  + $check_³rm™‹d_®phab‘_4 +(cÚ¡ * +¥Œ +) { + +61 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_4 +; + +63 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +64 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +65 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +67 ; +ch + < +’d +; ch++) { + +68 +ušt8_t + +cv + = * +ch +; + +69 if(! +bË +[ +cv +])  -1; + +72 + } +} + +74 cÚ¡  + g³rm™‹d_®phab‘_bË_5 +[256] = { + +84 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_5 +[74] = { + +92  + $check_³rm™‹d_®phab‘_5 +(cÚ¡ * +¥Œ +) { + +93 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_5 +; + +95 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +96 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +97 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +99 ; +ch + < +’d +; ch++) { + +100 +ušt8_t + +cv + = * +ch +; + +101 if(! +bË +[ +cv +])  -1; + +104 + } +} + +106 cÚ¡  + g³rm™‹d_®phab‘_bË_6 +[256] = { + +116 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_6 +[74] = { + +124  + $check_³rm™‹d_®phab‘_6 +(cÚ¡ * +¥Œ +) { + +125 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_6 +; + +127 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +128 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +129 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +131 ; +ch + < +’d +; ch++) { + +132 +ušt8_t + +cv + = * +ch +; + +133 if(! +bË +[ +cv +])  -1; + +136 + } +} + +139 + $memb_fžeFÜm©v”siÚ_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +140 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +141 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +142 +size_t + +size +; + +144 if(! +¥Œ +) { + +145 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +147 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +151 +size + = +¡ +->size; + +153 if(( +size + <= 15) + +154 && ! + `check_³rm™‹d_®phab‘_3 +( +¡ +)) { + +158 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +160 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +163 + } +} + +165  + $a¢_PER_MAP_fžeFÜm©v”siÚ_3_v2c +( +v®ue +) { + +166 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_3 +)/(permitted_alphabet_table_3[0])) + +168  +³rm™‹d_®phab‘_bË_3 +[ +v®ue +] - 1; + +169 + } +} + +170  + $a¢_PER_MAP_fžeFÜm©v”siÚ_3_c2v +( +code +) { + +171 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_3 +)/(permitted_alphabet_code2value_3[0])) + +173  +³rm™‹d_®phab‘_code2v®ue_3 +[ +code +]; + +174 + } +} + +176 + $memb_£nd”Name_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +177 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +178 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +179 +size_t + +size +; + +181 if(! +¥Œ +) { + +182 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +184 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +188 +size + = +¡ +->size; + +190 if(( +size + <= 400) + +191 && ! + `check_³rm™‹d_®phab‘_4 +( +¡ +)) { + +195 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +197 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +200 + } +} + +202  + $a¢_PER_MAP_£nd”Name_4_v2c +( +v®ue +) { + +203 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_4 +)/(permitted_alphabet_table_4[0])) + +205  +³rm™‹d_®phab‘_bË_4 +[ +v®ue +] - 1; + +206 + } +} + +207  + $a¢_PER_MAP_£nd”Name_4_c2v +( +code +) { + +208 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_4 +)/(permitted_alphabet_code2value_4[0])) + +210  +³rm™‹d_®phab‘_code2v®ue_4 +[ +code +]; + +211 + } +} + +213 + $memb_£nd”Ty³_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +214 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +215 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +216 +size_t + +size +; + +218 if(! +¥Œ +) { + +219 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +221 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +225 +size + = +¡ +->size; + +227 if(( +size + <= 8) + +228 && ! + `check_³rm™‹d_®phab‘_5 +( +¡ +)) { + +232 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +234 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +237 + } +} + +239  + $a¢_PER_MAP_£nd”Ty³_5_v2c +( +v®ue +) { + +240 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_5 +)/(permitted_alphabet_table_5[0])) + +242  +³rm™‹d_®phab‘_bË_5 +[ +v®ue +] - 1; + +243 + } +} + +244  + $a¢_PER_MAP_£nd”Ty³_5_c2v +( +code +) { + +245 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_5 +)/(permitted_alphabet_code2value_5[0])) + +247  +³rm™‹d_®phab‘_code2v®ue_5 +[ +code +]; + +248 + } +} + +250 + $memb_v’dÜName_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +251 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +252 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +253 +size_t + +size +; + +255 if(! +¥Œ +) { + +256 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +258 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +262 +size + = +¡ +->size; + +264 if(( +size + <= 32) + +265 && ! + `check_³rm™‹d_®phab‘_6 +( +¡ +)) { + +269 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +271 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +274 + } +} + +276  + $a¢_PER_MAP_v’dÜName_6_v2c +( +v®ue +) { + +277 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_6 +)/(permitted_alphabet_table_6[0])) + +279  +³rm™‹d_®phab‘_bË_6 +[ +v®ue +] - 1; + +280 + } +} + +281  + $a¢_PER_MAP_v’dÜName_6_c2v +( +code +) { + +282 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_6 +)/(permitted_alphabet_code2value_6[0])) + +284  +³rm™‹d_®phab‘_code2v®ue_6 +[ +code +]; + +285 + } +} + +286  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_fžeFÜm©v”siÚ_cÚ¡r_3 + + gCC_NOTUSED + = { + +287 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +288 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 4, 4, 0, 15 } , + +289 +a¢_PER_MAP_fžeFÜm©v”siÚ_3_v2c +, + +290 +a¢_PER_MAP_fžeFÜm©v”siÚ_3_c2v + + +292  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_£nd”Name_cÚ¡r_4 + + gCC_NOTUSED + = { + +293 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +294 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 9, 9, 0, 400 } , + +295 +a¢_PER_MAP_£nd”Name_4_v2c +, + +296 +a¢_PER_MAP_£nd”Name_4_c2v + + +298  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_£nd”Ty³_cÚ¡r_5 + + gCC_NOTUSED + = { + +299 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +300 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 4, 4, 0, 8 } , + +301 +a¢_PER_MAP_£nd”Ty³_5_v2c +, + +302 +a¢_PER_MAP_£nd”Ty³_5_c2v + + +304  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_v’dÜName_cÚ¡r_6 + + gCC_NOTUSED + = { + +305 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +306 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 6, 6, 0, 32 } , + +307 +a¢_PER_MAP_v’dÜName_6_v2c +, + +308 +a¢_PER_MAP_v’dÜName_6_c2v + + +310 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_1 +[] = { + +311 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +cÞËtS¹Time +), + +312 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +314 & +a¢_DEF_TimeSmp +, + +320 { +ATF_POINTER +, 4, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +fžeFÜm©v”siÚ +), + +321 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +323 & +a¢_DEF_PršbËSŒšg +, + +325 { 0, & +a¢_PER_memb_fžeFÜm©v”siÚ_cÚ¡r_3 +, +memb_fžeFÜm©v”siÚ_cÚ¡¿št_1 + }, + +329 { +ATF_POINTER +, 3, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +£nd”Name +), + +330 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +332 & +a¢_DEF_PršbËSŒšg +, + +334 { 0, & +a¢_PER_memb_£nd”Name_cÚ¡r_4 +, +memb_£nd”Name_cÚ¡¿št_1 + }, + +338 { +ATF_POINTER +, 2, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +£nd”Ty³ +), + +339 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +341 & +a¢_DEF_PršbËSŒšg +, + +343 { 0, & +a¢_PER_memb_£nd”Ty³_cÚ¡r_5 +, +memb_£nd”Ty³_cÚ¡¿št_1 + }, + +347 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +v’dÜName +), + +348 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +350 & +a¢_DEF_PršbËSŒšg +, + +352 { 0, & +a¢_PER_memb_v’dÜName_cÚ¡r_6 +, +memb_v’dÜName_cÚ¡¿št_1 + }, + +357 cÚ¡  + ga¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_oms_1 +[] = { 1, 2, 3, 4 }; + +358 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +[] = { + +359 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +361 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_g2–_1 +[] = { + +362 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +363 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +364 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +365 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +366 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 } + +368 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_¥ecs_1 + = { + +369 ( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +), + +370 +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, +_a¢_ùx +), + +371 +a¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_g2–_1 +, + +373 +a¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_oms_1 +, + +377 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 + = { + +380 & +a¢_OP_SEQUENCE +, + +381 +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +, + +382 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +) + +383 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +[0]), + +384 +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +, + +385 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +) + +386 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_gs_1 +[0]), + +387 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +388 +a¢_MBR_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_1 +, + +390 & +a¢_SPC_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1_¥ecs_1 + + + @E2SM-KPM-IndicationHeader.c + +8  + ~"E2SM-KPM-IndiÿtiÚH—d”.h +" + +10  + ~"E2SM-KPM-IndiÿtiÚH—d”-FÜm©1.h +" + +11  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_šdiÿtiÚH—d”_fÜm©s_cÚ¡r_2 + + gCC_NOTUSED + = { + +12 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +13 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +16  +a¢_TYPE_memb”_t + + ga¢_MBR_šdiÿtiÚH—d”_fÜm©s_2 +[] = { + +17 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”__šdiÿtiÚH—d”_fÜm©s +, +choiû +. +šdiÿtiÚH—d”_FÜm©1 +), + +18 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +20 & +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_FÜm©1 +, + +27 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_šdiÿtiÚH—d”_fÜm©s_g2–_2 +[] = { + +28 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +30  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_šdiÿtiÚH—d”_fÜm©s_¥ecs_2 + = { + +31 ( +E2SM_KPM_IndiÿtiÚH—d”__šdiÿtiÚH—d”_fÜm©s +), + +32 +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”__šdiÿtiÚH—d”_fÜm©s +, +_a¢_ùx +), + +33 +off£tof +( +E2SM_KPM_IndiÿtiÚH—d”__šdiÿtiÚH—d”_fÜm©s +, +´e£Á +), + +34 ((( +E2SM_KPM_IndiÿtiÚH—d”__šdiÿtiÚH—d”_fÜm©s + *)0)-> +´e£Á +), + +35 +a¢_MAP_šdiÿtiÚH—d”_fÜm©s_g2–_2 +, + +41 +a¢_TYPE_desütÜ_t + + ga¢_DEF_šdiÿtiÚH—d”_fÜm©s_2 + = { + +44 & +a¢_OP_CHOICE +, + +49 { 0, & +a¢_PER_ty³_šdiÿtiÚH—d”_fÜm©s_cÚ¡r_2 +, +CHOICE_cÚ¡¿št + }, + +50 +a¢_MBR_šdiÿtiÚH—d”_fÜm©s_2 +, + +52 & +a¢_SPC_šdiÿtiÚH—d”_fÜm©s_¥ecs_2 + + +55  +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_IndiÿtiÚH—d”_1 +[] = { + +56 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚH—d” +, +šdiÿtiÚH—d”_fÜm©s +), + +57 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +59 & +a¢_DEF_šdiÿtiÚH—d”_fÜm©s_2 +, + +66 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +[] = { + +67 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +69 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_g2–_1 +[] = { + +70 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +72  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_IndiÿtiÚH—d”_¥ecs_1 + = { + +73 ( +E2SM_KPM_IndiÿtiÚH—d” +), + +74 +off£tof +( +E2SM_KPM_IndiÿtiÚH—d” +, +_a¢_ùx +), + +75 +a¢_MAP_E2SM_KPM_IndiÿtiÚH—d”_g2–_1 +, + +80 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚH—d” + = { + +83 & +a¢_OP_SEQUENCE +, + +84 +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +, + +85 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +) + +86 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +[0]), + +87 +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +, + +88 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +) + +89 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚH—d”_gs_1 +[0]), + +90 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +91 +a¢_MBR_E2SM_KPM_IndiÿtiÚH—d”_1 +, + +93 & +a¢_SPC_E2SM_KPM_IndiÿtiÚH—d”_¥ecs_1 + + + @E2SM-KPM-IndicationMessage-Format1.c + +8  + ~"E2SM-KPM-IndiÿtiÚMes§ge-FÜm©1.h +" + +10  + ~"M—su»m’tInfoLi¡.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +, +m—sD©a +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_M—su»m’tD©a +, + +21 { +ATF_POINTER +, 2, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +, +m—sInfoLi¡ +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_M—su»m’tInfoLi¡ +, + +30 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +, +g¿nulP”iod +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_G¿nuÏr™yP”iod +, + +40 cÚ¡  + ga¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_oms_1 +[] = { 1, 2 }; + +41 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +[] = { + +42 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +44 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_g2–_1 +[] = { + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +47 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +49 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_¥ecs_1 + = { + +50 ( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +), + +51 +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +, +_a¢_ùx +), + +52 +a¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_g2–_1 +, + +54 +a¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_oms_1 +, + +58 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 + = { + +61 & +a¢_OP_SEQUENCE +, + +62 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +, + +63 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +) + +64 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +[0]), + +65 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +, + +66 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +) + +67 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_gs_1 +[0]), + +68 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +69 +a¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_1 +, + +71 & +a¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1_¥ecs_1 + + + @E2SM-KPM-IndicationMessage-Format2.c + +8  + ~"E2SM-KPM-IndiÿtiÚMes§ge-FÜm©2.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +, +m—sD©a +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_M—su»m’tD©a +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +, +m—sCÚdUEidLi¡ +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_M—su»m’tCÚdUEidLi¡ +, + +29 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +, +g¿nulP”iod +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_G¿nuÏr™yP”iod +, + +39 cÚ¡  + ga¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_oms_1 +[] = { 2 }; + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +43 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_g2–_1 +[] = { + +44 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +48 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_¥ecs_1 + = { + +49 ( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +), + +50 +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +, +_a¢_ùx +), + +51 +a¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_g2–_1 +, + +53 +a¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_oms_1 +, + +57 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 + = { + +60 & +a¢_OP_SEQUENCE +, + +61 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +, + +62 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +) + +63 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +[0]), + +64 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +, + +65 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +) + +66 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_gs_1 +[0]), + +67 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +68 +a¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_1 +, + +70 & +a¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2_¥ecs_1 + + + @E2SM-KPM-IndicationMessage.c + +8  + ~"E2SM-KPM-IndiÿtiÚMes§ge.h +" + +10  + ~"E2SM-KPM-IndiÿtiÚMes§ge-FÜm©1.h +" + +11  + ~"E2SM-KPM-IndiÿtiÚMes§ge-FÜm©2.h +" + +12  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_šdiÿtiÚMes§ge_fÜm©s_cÚ¡r_2 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17  +a¢_TYPE_memb”_t + + ga¢_MBR_šdiÿtiÚMes§ge_fÜm©s_2 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s +, +choiû +. +šdiÿtiÚMes§ge_FÜm©1 +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©1 +, + +27 { +ATF_POINTER +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s +, +choiû +. +šdiÿtiÚMes§ge_FÜm©2 +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_FÜm©2 +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_šdiÿtiÚMes§ge_fÜm©s_g2–_2 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_šdiÿtiÚMes§ge_fÜm©s_¥ecs_2 + = { + +42 ( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s +), + +43 +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s +, +_a¢_ùx +), + +44 +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s +, +´e£Á +), + +45 ((( +E2SM_KPM_IndiÿtiÚMes§ge__šdiÿtiÚMes§ge_fÜm©s + *)0)-> +´e£Á +), + +46 +a¢_MAP_šdiÿtiÚMes§ge_fÜm©s_g2–_2 +, + +52 +a¢_TYPE_desütÜ_t + + ga¢_DEF_šdiÿtiÚMes§ge_fÜm©s_2 + = { + +55 & +a¢_OP_CHOICE +, + +60 { 0, & +a¢_PER_ty³_šdiÿtiÚMes§ge_fÜm©s_cÚ¡r_2 +, +CHOICE_cÚ¡¿št + }, + +61 +a¢_MBR_šdiÿtiÚMes§ge_fÜm©s_2 +, + +63 & +a¢_SPC_šdiÿtiÚMes§ge_fÜm©s_¥ecs_2 + + +66  +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_1 +[] = { + +67 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge +, +šdiÿtiÚMes§ge_fÜm©s +), + +68 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +70 & +a¢_DEF_šdiÿtiÚMes§ge_fÜm©s_2 +, + +77 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +[] = { + +78 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +80 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_g2–_1 +[] = { + +81 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +83  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_¥ecs_1 + = { + +84 ( +E2SM_KPM_IndiÿtiÚMes§ge +), + +85 +off£tof +( +E2SM_KPM_IndiÿtiÚMes§ge +, +_a¢_ùx +), + +86 +a¢_MAP_E2SM_KPM_IndiÿtiÚMes§ge_g2–_1 +, + +91 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge + = { + +94 & +a¢_OP_SEQUENCE +, + +95 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +, + +96 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +) + +97 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +[0]), + +98 +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +, + +99 ( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +) + +100 /( +a¢_DEF_E2SM_KPM_IndiÿtiÚMes§ge_gs_1 +[0]), + +101 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +102 +a¢_MBR_E2SM_KPM_IndiÿtiÚMes§ge_1 +, + +104 & +a¢_SPC_E2SM_KPM_IndiÿtiÚMes§ge_¥ecs_1 + + + @E2SM-KPM-RANfunction-Description.c + +8  + ~"E2SM-KPM-RANfunùiÚ-DesütiÚ.h +" + +10  + ~"RIC-Ev’tTrigg”StyË-I‹m.h +" + +11  + ~"RIC-R•ÜtStyË-I‹m.h +" + +13 + $memb_ric_Ev’tTrigg”StyË_Li¡_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +14 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +15 +size_t + +size +; + +17 if(! +¥Œ +) { + +18 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +20 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +25 +size + = + `_A_CSEQUENCE_FROM_VOID +( +¥Œ +)-> +couÁ +; + +27 if(( +size + >= 1 && size <= 63)) { + +29  +td +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +Ñd, +¥Œ +, +ùçžcb +, +­p_key +); + +31 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +33 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +36 + } +} + +39 + $memb_ric_R•ÜtStyË_Li¡_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +40 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +41 +size_t + +size +; + +43 if(! +¥Œ +) { + +44 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +46 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +51 +size + = + `_A_CSEQUENCE_FROM_VOID +( +¥Œ +)-> +couÁ +; + +53 if(( +size + >= 1 && size <= 63)) { + +55  +td +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +Ñd, +¥Œ +, +ùçžcb +, +­p_key +); + +57 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +59 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +62 + } +} + +64  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ric_Ev’tTrigg”StyË_Li¡_cÚ¡r_3 + + gCC_NOTUSED + = { + +65 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +66 { +APC_CONSTRAINED +, 6, 6, 1, 63 } , + +69  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ric_R•ÜtStyË_Li¡_cÚ¡r_5 + + gCC_NOTUSED + = { + +70 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +71 { +APC_CONSTRAINED +, 6, 6, 1, 63 } , + +74  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_ric_Ev’tTrigg”StyË_Li¡_cÚ¡r_3 + + gCC_NOTUSED + = { + +75 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +76 { +APC_CONSTRAINED +, 6, 6, 1, 63 } , + +79  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_ric_R•ÜtStyË_Li¡_cÚ¡r_5 + + gCC_NOTUSED + = { + +80 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +81 { +APC_CONSTRAINED +, 6, 6, 1, 63 } , + +84  +a¢_TYPE_memb”_t + + ga¢_MBR_ric_Ev’tTrigg”StyË_Li¡_3 +[] = { + +85 { +ATF_POINTER +, 0, 0, + +86 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +88 & +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m +, + +95 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +[] = { + +96 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +97 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +99  +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_ric_Ev’tTrigg”StyË_Li¡_¥ecs_3 + = { + +100 ( +E2SM_KPM_RANfunùiÚ_DesütiÚ__ric_Ev’tTrigg”StyË_Li¡ +), + +101 +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ__ric_Ev’tTrigg”StyË_Li¡ +, +_a¢_ùx +), + +105 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ric_Ev’tTrigg”StyË_Li¡_3 + = { + +108 & +a¢_OP_SEQUENCE_OF +, + +109 +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +, + +110 ( +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +) + +111 /( +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +[0]) - 1, + +112 +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +, + +113 ( +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +) + +114 /( +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_gs_3 +[0]), + +115 { 0, & +a¢_PER_ty³_ric_Ev’tTrigg”StyË_Li¡_cÚ¡r_3 +, +SEQUENCE_OF_cÚ¡¿št + }, + +116 +a¢_MBR_ric_Ev’tTrigg”StyË_Li¡_3 +, + +118 & +a¢_SPC_ric_Ev’tTrigg”StyË_Li¡_¥ecs_3 + + +121  +a¢_TYPE_memb”_t + + ga¢_MBR_ric_R•ÜtStyË_Li¡_5 +[] = { + +122 { +ATF_POINTER +, 0, 0, + +123 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +125 & +a¢_DEF_RIC_R•ÜtStyË_I‹m +, + +132 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +[] = { + +133 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +134 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +136  +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_ric_R•ÜtStyË_Li¡_¥ecs_5 + = { + +137 ( +E2SM_KPM_RANfunùiÚ_DesütiÚ__ric_R•ÜtStyË_Li¡ +), + +138 +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ__ric_R•ÜtStyË_Li¡ +, +_a¢_ùx +), + +142 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ric_R•ÜtStyË_Li¡_5 + = { + +145 & +a¢_OP_SEQUENCE_OF +, + +146 +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +, + +147 ( +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +) + +148 /( +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +[0]) - 1, + +149 +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +, + +150 ( +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +) + +151 /( +a¢_DEF_ric_R•ÜtStyË_Li¡_gs_5 +[0]), + +152 { 0, & +a¢_PER_ty³_ric_R•ÜtStyË_Li¡_cÚ¡r_5 +, +SEQUENCE_OF_cÚ¡¿št + }, + +153 +a¢_MBR_ric_R•ÜtStyË_Li¡_5 +, + +155 & +a¢_SPC_ric_R•ÜtStyË_Li¡_¥ecs_5 + + +158  +a¢_TYPE_memb”_t + + ga¢_MBR_E2SM_KPM_RANfunùiÚ_DesütiÚ_1 +[] = { + +159 { +ATF_NOFLAGS +, 0, +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ +, +¿nFunùiÚ_Name +), + +160 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +162 & +a¢_DEF_RANfunùiÚ_Name +, + +168 { +ATF_POINTER +, 2, +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ +, +ric_Ev’tTrigg”StyË_Li¡ +), + +169 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +171 & +a¢_DEF_ric_Ev’tTrigg”StyË_Li¡_3 +, + +173 { 0, & +a¢_PER_memb_ric_Ev’tTrigg”StyË_Li¡_cÚ¡r_3 +, +memb_ric_Ev’tTrigg”StyË_Li¡_cÚ¡¿št_1 + }, + +177 { +ATF_POINTER +, 1, +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ +, +ric_R•ÜtStyË_Li¡ +), + +178 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +180 & +a¢_DEF_ric_R•ÜtStyË_Li¡_5 +, + +182 { 0, & +a¢_PER_memb_ric_R•ÜtStyË_Li¡_cÚ¡r_5 +, +memb_ric_R•ÜtStyË_Li¡_cÚ¡¿št_1 + }, + +187 cÚ¡  + ga¢_MAP_E2SM_KPM_RANfunùiÚ_DesütiÚ_oms_1 +[] = { 1, 2 }; + +188 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +[] = { + +189 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +191 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_E2SM_KPM_RANfunùiÚ_DesütiÚ_g2–_1 +[] = { + +192 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +193 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +194 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +196  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_E2SM_KPM_RANfunùiÚ_DesütiÚ_¥ecs_1 + = { + +197 ( +E2SM_KPM_RANfunùiÚ_DesütiÚ +), + +198 +off£tof +( +E2SM_KPM_RANfunùiÚ_DesütiÚ +, +_a¢_ùx +), + +199 +a¢_MAP_E2SM_KPM_RANfunùiÚ_DesütiÚ_g2–_1 +, + +201 +a¢_MAP_E2SM_KPM_RANfunùiÚ_DesütiÚ_oms_1 +, + +205 +a¢_TYPE_desütÜ_t + + ga¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ + = { + +208 & +a¢_OP_SEQUENCE +, + +209 +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +, + +210 ( +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +) + +211 /( +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +[0]), + +212 +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +, + +213 ( +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +) + +214 /( +a¢_DEF_E2SM_KPM_RANfunùiÚ_DesütiÚ_gs_1 +[0]), + +215 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +216 +a¢_MBR_E2SM_KPM_RANfunùiÚ_DesütiÚ_1 +, + +218 & +a¢_SPC_E2SM_KPM_RANfunùiÚ_DesütiÚ_¥ecs_1 + + + @EN-GNB-ID.c + +8  + ~"EN-GNB-ID.h +" + +11 + $memb_’_gNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + >= 22 && size <= 32)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +41  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_’_gNB_ID_cÚ¡r_2 + + gCC_NOTUSED + = { + +42 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +43 { +APC_CONSTRAINED +, 4, 4, 22, 32 } , + +46 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_EN_GNB_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +47 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +48 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +51 +a¢_TYPE_memb”_t + + ga¢_MBR_EN_GNB_ID_1 +[] = { + +52 { +ATF_NOFLAGS +, 0, +off£tof +( +EN_GNB_ID +, +choiû +. +’_gNB_ID +), + +53 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +55 & +a¢_DEF_BIT_STRING +, + +57 { 0, & +a¢_PER_memb_’_gNB_ID_cÚ¡r_2 +, +memb_’_gNB_ID_cÚ¡¿št_1 + }, + +62 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_EN_GNB_ID_g2–_1 +[] = { + +63 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +65 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_EN_GNB_ID_¥ecs_1 + = { + +66 ( +EN_GNB_ID +), + +67 +off£tof +( +EN_GNB_ID +, +_a¢_ùx +), + +68 +off£tof +( +EN_GNB_ID +, +´e£Á +), + +69 ((( +EN_GNB_ID + *)0)-> +´e£Á +), + +70 +a¢_MAP_EN_GNB_ID_g2–_1 +, + +75 +a¢_TYPE_desütÜ_t + + ga¢_DEF_EN_GNB_ID + = { + +78 & +a¢_OP_CHOICE +, + +83 { 0, & +a¢_PER_ty³_EN_GNB_ID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +84 +a¢_MBR_EN_GNB_ID_1 +, + +86 & +a¢_SPC_EN_GNB_ID_¥ecs_1 + + + @ENB-ID.c + +8  + ~"ENB-ID.h +" + +11 + $memb_maüo_eNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 20)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +42 + $memb_home_eNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +43 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +44 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +45 +size_t + +size +; + +47 if(! +¥Œ +) { + +48 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +50 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +54 if( +¡ +-> +size + > 0) { + +56 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +58 +size + = 0; + +61 if(( +size + == 28)) { + +65 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +67 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +70 + } +} + +73 + $memb_shÜt_Maüo_eNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +74 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +75 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +76 +size_t + +size +; + +78 if(! +¥Œ +) { + +79 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +81 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +85 if( +¡ +-> +size + > 0) { + +87 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +89 +size + = 0; + +92 if(( +size + == 18)) { + +96 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +98 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +101 + } +} + +104 + $memb_lÚg_Maüo_eNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +105 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +106 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +107 +size_t + +size +; + +109 if(! +¥Œ +) { + +110 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +112 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +116 if( +¡ +-> +size + > 0) { + +118 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +120 +size + = 0; + +123 if(( +size + == 21)) { + +127 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +129 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +132 + } +} + +134  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_maüo_eNB_ID_cÚ¡r_2 + + gCC_NOTUSED + = { + +135 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +136 { +APC_CONSTRAINED +, 0, 0, 20, 20 } , + +139  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_home_eNB_ID_cÚ¡r_3 + + gCC_NOTUSED + = { + +140 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +141 { +APC_CONSTRAINED +, 0, 0, 28, 28 } , + +144  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_shÜt_Maüo_eNB_ID_cÚ¡r_5 + + gCC_NOTUSED + = { + +145 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +146 { +APC_CONSTRAINED +, 0, 0, 18, 18 } , + +149  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_lÚg_Maüo_eNB_ID_cÚ¡r_6 + + gCC_NOTUSED + = { + +150 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +151 { +APC_CONSTRAINED +, 0, 0, 21, 21 } , + +154 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ENB_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +155 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +156 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +159 +a¢_TYPE_memb”_t + + ga¢_MBR_ENB_ID_1 +[] = { + +160 { +ATF_NOFLAGS +, 0, +off£tof +( +ENB_ID +, +choiû +. +maüo_eNB_ID +), + +161 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +163 & +a¢_DEF_BIT_STRING +, + +165 { 0, & +a¢_PER_memb_maüo_eNB_ID_cÚ¡r_2 +, +memb_maüo_eNB_ID_cÚ¡¿št_1 + }, + +169 { +ATF_NOFLAGS +, 0, +off£tof +( +ENB_ID +, +choiû +. +home_eNB_ID +), + +170 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +172 & +a¢_DEF_BIT_STRING +, + +174 { 0, & +a¢_PER_memb_home_eNB_ID_cÚ¡r_3 +, +memb_home_eNB_ID_cÚ¡¿št_1 + }, + +178 { +ATF_NOFLAGS +, 0, +off£tof +( +ENB_ID +, +choiû +. +shÜt_Maüo_eNB_ID +), + +179 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +181 & +a¢_DEF_BIT_STRING +, + +183 { 0, & +a¢_PER_memb_shÜt_Maüo_eNB_ID_cÚ¡r_5 +, +memb_shÜt_Maüo_eNB_ID_cÚ¡¿št_1 + }, + +187 { +ATF_NOFLAGS +, 0, +off£tof +( +ENB_ID +, +choiû +. +lÚg_Maüo_eNB_ID +), + +188 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +190 & +a¢_DEF_BIT_STRING +, + +192 { 0, & +a¢_PER_memb_lÚg_Maüo_eNB_ID_cÚ¡r_6 +, +memb_lÚg_Maüo_eNB_ID_cÚ¡¿št_1 + }, + +197 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_ENB_ID_g2–_1 +[] = { + +198 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +199 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +200 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +201 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 } + +203 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_ENB_ID_¥ecs_1 + = { + +204 ( +ENB_ID +), + +205 +off£tof +( +ENB_ID +, +_a¢_ùx +), + +206 +off£tof +( +ENB_ID +, +´e£Á +), + +207 ((( +ENB_ID + *)0)-> +´e£Á +), + +208 +a¢_MAP_ENB_ID_g2–_1 +, + +213 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ENB_ID + = { + +216 & +a¢_OP_CHOICE +, + +221 { 0, & +a¢_PER_ty³_ENB_ID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +222 +a¢_MBR_ENB_ID_1 +, + +224 & +a¢_SPC_ENB_ID_¥ecs_1 + + + @ENB-UE-X2AP-ID-Extension.c + +8  + ~"ENB-UE-X2AP-ID-Ex‹nsiÚ.h +" + +11 + $ENB_UE_X2AP_ID_Ex‹nsiÚ_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 4095)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ENB_UE_X2AP_ID_Ex‹nsiÚ_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 12, 12, 0, 4095 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +, + +52 ( +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +) + +53 /( +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +[0]), + +54 +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +, + +55 ( +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +) + +56 /( +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_ENB_UE_X2AP_ID_Ex‹nsiÚ_cÚ¡r_1 +, +ENB_UE_X2AP_ID_Ex‹nsiÚ_cÚ¡¿št + }, + + @ENB-UE-X2AP-ID.c + +8  + ~"ENB-UE-X2AP-ID.h +" + +11 + $ENB_UE_X2AP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 4095)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_ENB_UE_X2AP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 12, 12, 0, 4095 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_ENB_UE_X2AP_ID_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_ENB_UE_X2AP_ID + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +, + +52 ( +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +) + +53 /( +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +[0]), + +54 +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +, + +55 ( +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +) + +56 /( +a¢_DEF_ENB_UE_X2AP_ID_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_ENB_UE_X2AP_ID_cÚ¡r_1 +, +ENB_UE_X2AP_ID_cÚ¡¿št + }, + + @EUTRA-CGI.c + +8  + ~"EUTRA-CGI.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_EUTRA_CGI_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +EUTRA_CGI +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +EUTRA_CGI +, +eUTRAC–lId’t™y +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_EUTRAC–lId’t™y +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_EUTRA_CGI_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_EUTRA_CGI_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_EUTRA_CGI_¥ecs_1 + = { + +38 ( +EUTRA_CGI +), + +39 +off£tof +( +EUTRA_CGI +, +_a¢_ùx +), + +40 +a¢_MAP_EUTRA_CGI_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_EUTRA_CGI + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_EUTRA_CGI_gs_1 +, + +50 ( +a¢_DEF_EUTRA_CGI_gs_1 +) + +51 /( +a¢_DEF_EUTRA_CGI_gs_1 +[0]), + +52 +a¢_DEF_EUTRA_CGI_gs_1 +, + +53 ( +a¢_DEF_EUTRA_CGI_gs_1 +) + +54 /( +a¢_DEF_EUTRA_CGI_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_EUTRA_CGI_1 +, + +58 & +a¢_SPC_EUTRA_CGI_¥ecs_1 + + + @EUTRACellIdentity.c + +8  + ~"EUTRAC–lId’t™y.h +" + +11 + $EUTRAC–lId’t™y_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 28)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_EUTRAC–lId’t™y_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +47 { +APC_CONSTRAINED +, 0, 0, 28, 28 } , + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_EUTRAC–lId’t™y_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_EUTRAC–lId’t™y + = { + +56 & +a¢_OP_BIT_STRING +, + +57 +a¢_DEF_EUTRAC–lId’t™y_gs_1 +, + +58 ( +a¢_DEF_EUTRAC–lId’t™y_gs_1 +) + +59 /( +a¢_DEF_EUTRAC–lId’t™y_gs_1 +[0]), + +60 +a¢_DEF_EUTRAC–lId’t™y_gs_1 +, + +61 ( +a¢_DEF_EUTRAC–lId’t™y_gs_1 +) + +62 /( +a¢_DEF_EUTRAC–lId’t™y_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_EUTRAC–lId’t™y_cÚ¡r_1 +, +EUTRAC–lId’t™y_cÚ¡¿št + }, + +65 & +a¢_SPC_BIT_STRING_¥ecs + + + @FiveGS-TAC.c + +8  + ~"FiveGS-TAC.h +" + +11 + $FiveGS_TAC_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 3)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_FiveGS_TAC_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 3, 3 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_FiveGS_TAC_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_FiveGS_TAC + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_FiveGS_TAC_gs_1 +, + +53 ( +a¢_DEF_FiveGS_TAC_gs_1 +) + +54 /( +a¢_DEF_FiveGS_TAC_gs_1 +[0]), + +55 +a¢_DEF_FiveGS_TAC_gs_1 +, + +56 ( +a¢_DEF_FiveGS_TAC_gs_1 +) + +57 /( +a¢_DEF_FiveGS_TAC_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_FiveGS_TAC_cÚ¡r_1 +, +FiveGS_TAC_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @FiveQI.c + +8  + ~"FiveQI.h +" + +11 + $FiveQI_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 255)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_FiveQI_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 0, 255 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_FiveQI_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_FiveQI + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_FiveQI_gs_1 +, + +52 ( +a¢_DEF_FiveQI_gs_1 +) + +53 /( +a¢_DEF_FiveQI_gs_1 +[0]), + +54 +a¢_DEF_FiveQI_gs_1 +, + +55 ( +a¢_DEF_FiveQI_gs_1 +) + +56 /( +a¢_DEF_FiveQI_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_FiveQI_cÚ¡r_1 +, +FiveQI_cÚ¡¿št + }, + + @FreqBandNrItem.c + +8  + ~"F»qBªdNrI‹m.h +" + +11 + $memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 1024)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +35  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 + + gCC_NOTUSED + = { + +36 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 10, 10, 1, 1024 } , + +37 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +40  +a¢_TYPE_memb”_t + + ga¢_MBR_F»qBªdNrI‹m_1 +[] = { + +41 { +ATF_NOFLAGS +, 0, +off£tof +( +F»qBªdNrI‹m +, +äeqBªdIndiÿtÜNr +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +44 & +a¢_DEF_N©iveIÁeg” +, + +46 { 0, & +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 +, +memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 + }, + +51 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_F»qBªdNrI‹m_gs_1 +[] = { + +52 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +54 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_F»qBªdNrI‹m_g2–_1 +[] = { + +55 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +57  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_F»qBªdNrI‹m_¥ecs_1 + = { + +58 ( +F»qBªdNrI‹m +), + +59 +off£tof +( +F»qBªdNrI‹m +, +_a¢_ùx +), + +60 +a¢_MAP_F»qBªdNrI‹m_g2–_1 +, + +65 +a¢_TYPE_desütÜ_t + + ga¢_DEF_F»qBªdNrI‹m + = { + +68 & +a¢_OP_SEQUENCE +, + +69 +a¢_DEF_F»qBªdNrI‹m_gs_1 +, + +70 ( +a¢_DEF_F»qBªdNrI‹m_gs_1 +) + +71 /( +a¢_DEF_F»qBªdNrI‹m_gs_1 +[0]), + +72 +a¢_DEF_F»qBªdNrI‹m_gs_1 +, + +73 ( +a¢_DEF_F»qBªdNrI‹m_gs_1 +) + +74 /( +a¢_DEF_F»qBªdNrI‹m_gs_1 +[0]), + +75 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +76 +a¢_MBR_F»qBªdNrI‹m_1 +, + +78 & +a¢_SPC_F»qBªdNrI‹m_¥ecs_1 + + + @GNB-CU-CP-UE-E1AP-ID.c + +8  + ~"GNB-CU-CP-UE-E1AP-ID.h +" + +11 + $GNB_CU_CP_UE_E1AP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +30 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GNB_CU_CP_UE_E1AP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +31 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +32 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_GNB_CU_CP_UE_E1AP_ID_¥ecs_1 + = { + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +43 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GNB_CU_CP_UE_E1AP_ID + = { + +46 & +a¢_OP_N©iveIÁeg” +, + +47 +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +, + +48 ( +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +) + +49 /( +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +[0]), + +50 +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +, + +51 ( +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +) + +52 /( +a¢_DEF_GNB_CU_CP_UE_E1AP_ID_gs_1 +[0]), + +53 { 0, & +a¢_PER_ty³_GNB_CU_CP_UE_E1AP_ID_cÚ¡r_1 +, +GNB_CU_CP_UE_E1AP_ID_cÚ¡¿št + }, + +55 & +a¢_SPC_GNB_CU_CP_UE_E1AP_ID_¥ecs_1 + + + @GNB-CU-UE-F1AP-ID.c + +8  + ~"GNB-CU-UE-F1AP-ID.h +" + +11 + $GNB_CU_UE_F1AP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +30 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GNB_CU_UE_F1AP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +31 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +32 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_GNB_CU_UE_F1AP_ID_¥ecs_1 + = { + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +43 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GNB_CU_UE_F1AP_ID + = { + +46 & +a¢_OP_N©iveIÁeg” +, + +47 +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +, + +48 ( +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +) + +49 /( +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +[0]), + +50 +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +, + +51 ( +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +) + +52 /( +a¢_DEF_GNB_CU_UE_F1AP_ID_gs_1 +[0]), + +53 { 0, & +a¢_PER_ty³_GNB_CU_UE_F1AP_ID_cÚ¡r_1 +, +GNB_CU_UE_F1AP_ID_cÚ¡¿št + }, + +55 & +a¢_SPC_GNB_CU_UE_F1AP_ID_¥ecs_1 + + + @GNB-CU-UP-ID.c + +8  + ~"GNB-CU-UP-ID.h +" + +11 + $GNB_CU_UP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +14  +v®ue +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) { + +24 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +26 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +30 if(( +v®ue + >= 0 && value <= 68719476735)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GNB_CU_UP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_CONSTRAINED +, 36, -1, 0, 68719476735 } , + +47 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GNB_CU_UP_ID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GNB_CU_UP_ID + = { + +56 & +a¢_OP_INTEGER +, + +57 +a¢_DEF_GNB_CU_UP_ID_gs_1 +, + +58 ( +a¢_DEF_GNB_CU_UP_ID_gs_1 +) + +59 /( +a¢_DEF_GNB_CU_UP_ID_gs_1 +[0]), + +60 +a¢_DEF_GNB_CU_UP_ID_gs_1 +, + +61 ( +a¢_DEF_GNB_CU_UP_ID_gs_1 +) + +62 /( +a¢_DEF_GNB_CU_UP_ID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_GNB_CU_UP_ID_cÚ¡r_1 +, +GNB_CU_UP_ID_cÚ¡¿št + }, + + @GNB-DU-ID.c + +8  + ~"GNB-DU-ID.h +" + +11 + $GNB_DU_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +14  +v®ue +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) { + +24 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +26 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +30 if(( +v®ue + >= 0 && value <= 68719476735)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GNB_DU_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_CONSTRAINED +, 36, -1, 0, 68719476735 } , + +47 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GNB_DU_ID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GNB_DU_ID + = { + +56 & +a¢_OP_INTEGER +, + +57 +a¢_DEF_GNB_DU_ID_gs_1 +, + +58 ( +a¢_DEF_GNB_DU_ID_gs_1 +) + +59 /( +a¢_DEF_GNB_DU_ID_gs_1 +[0]), + +60 +a¢_DEF_GNB_DU_ID_gs_1 +, + +61 ( +a¢_DEF_GNB_DU_ID_gs_1 +) + +62 /( +a¢_DEF_GNB_DU_ID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_GNB_DU_ID_cÚ¡r_1 +, +GNB_DU_ID_cÚ¡¿št + }, + + @GNB-ID.c + +8  + ~"GNB-ID.h +" + +11 + $memb_gNB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + >= 22 && size <= 32)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +41  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_gNB_ID_cÚ¡r_2 + + gCC_NOTUSED + = { + +42 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +43 { +APC_CONSTRAINED +, 4, 4, 22, 32 } , + +46 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GNB_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +47 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +48 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +51 +a¢_TYPE_memb”_t + + ga¢_MBR_GNB_ID_1 +[] = { + +52 { +ATF_NOFLAGS +, 0, +off£tof +( +GNB_ID +, +choiû +. +gNB_ID +), + +53 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +55 & +a¢_DEF_BIT_STRING +, + +57 { 0, & +a¢_PER_memb_gNB_ID_cÚ¡r_2 +, +memb_gNB_ID_cÚ¡¿št_1 + }, + +62 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_GNB_ID_g2–_1 +[] = { + +63 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +65 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_GNB_ID_¥ecs_1 + = { + +66 ( +GNB_ID +), + +67 +off£tof +( +GNB_ID +, +_a¢_ùx +), + +68 +off£tof +( +GNB_ID +, +´e£Á +), + +69 ((( +GNB_ID + *)0)-> +´e£Á +), + +70 +a¢_MAP_GNB_ID_g2–_1 +, + +75 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GNB_ID + = { + +78 & +a¢_OP_CHOICE +, + +83 { 0, & +a¢_PER_ty³_GNB_ID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +84 +a¢_MBR_GNB_ID_1 +, + +86 & +a¢_SPC_GNB_ID_¥ecs_1 + + + @GUAMI.c + +8  + ~"GUAMI.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_GUAMI_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +GUAMI +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +GUAMI +, +aMFRegiÚID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_AMFRegiÚID +, + +29 { +ATF_NOFLAGS +, 0, +off£tof +( +GUAMI +, +aMFS‘ID +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_AMFS‘ID +, + +38 { +ATF_NOFLAGS +, 0, +off£tof +( +GUAMI +, +aMFPoš‹r +), + +39 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +41 & +a¢_DEF_AMFPoš‹r +, + +48 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GUAMI_gs_1 +[] = { + +49 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +51 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_GUAMI_g2–_1 +[] = { + +52 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +53 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +54 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +55 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 } + +57 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_GUAMI_¥ecs_1 + = { + +58 ( +GUAMI +), + +59 +off£tof +( +GUAMI +, +_a¢_ùx +), + +60 +a¢_MAP_GUAMI_g2–_1 +, + +65 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GUAMI + = { + +68 & +a¢_OP_SEQUENCE +, + +69 +a¢_DEF_GUAMI_gs_1 +, + +70 ( +a¢_DEF_GUAMI_gs_1 +) + +71 /( +a¢_DEF_GUAMI_gs_1 +[0]), + +72 +a¢_DEF_GUAMI_gs_1 +, + +73 ( +a¢_DEF_GUAMI_gs_1 +) + +74 /( +a¢_DEF_GUAMI_gs_1 +[0]), + +75 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +76 +a¢_MBR_GUAMI_1 +, + +78 & +a¢_SPC_GUAMI_¥ecs_1 + + + @GUMMEI.c + +8  + ~"GUMMEI.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_GUMMEI_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +GUMMEI +, +pLMN_Id’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +GUMMEI +, +mME_Group_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_MME_Group_ID +, + +29 { +ATF_NOFLAGS +, 0, +off£tof +( +GUMMEI +, +mME_Code +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_MME_Code +, + +39 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_GUMMEI_gs_1 +[] = { + +40 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +42 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_GUMMEI_g2–_1 +[] = { + +43 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +44 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +47 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_GUMMEI_¥ecs_1 + = { + +48 ( +GUMMEI +), + +49 +off£tof +( +GUMMEI +, +_a¢_ùx +), + +50 +a¢_MAP_GUMMEI_g2–_1 +, + +55 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GUMMEI + = { + +58 & +a¢_OP_SEQUENCE +, + +59 +a¢_DEF_GUMMEI_gs_1 +, + +60 ( +a¢_DEF_GUMMEI_gs_1 +) + +61 /( +a¢_DEF_GUMMEI_gs_1 +[0]), + +62 +a¢_DEF_GUMMEI_gs_1 +, + +63 ( +a¢_DEF_GUMMEI_gs_1 +) + +64 /( +a¢_DEF_GUMMEI_gs_1 +[0]), + +65 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +66 +a¢_MBR_GUMMEI_1 +, + +68 & +a¢_SPC_GUMMEI_¥ecs_1 + + + @GlobalENB-ID.c + +8  + ~"Glob®ENB-ID.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Glob®ENB_ID_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®ENB_ID +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®ENB_ID +, +eNB_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_ENB_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Glob®ENB_ID_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Glob®ENB_ID_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Glob®ENB_ID_¥ecs_1 + = { + +38 ( +Glob®ENB_ID +), + +39 +off£tof +( +Glob®ENB_ID +, +_a¢_ùx +), + +40 +a¢_MAP_Glob®ENB_ID_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Glob®ENB_ID + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_Glob®ENB_ID_gs_1 +, + +50 ( +a¢_DEF_Glob®ENB_ID_gs_1 +) + +51 /( +a¢_DEF_Glob®ENB_ID_gs_1 +[0]), + +52 +a¢_DEF_Glob®ENB_ID_gs_1 +, + +53 ( +a¢_DEF_Glob®ENB_ID_gs_1 +) + +54 /( +a¢_DEF_Glob®ENB_ID_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_Glob®ENB_ID_1 +, + +58 & +a¢_SPC_Glob®ENB_ID_¥ecs_1 + + + @GlobalGNB-ID.c + +8  + ~"Glob®GNB-ID.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Glob®GNB_ID_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®GNB_ID +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®GNB_ID +, +gNB_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_GNB_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Glob®GNB_ID_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Glob®GNB_ID_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Glob®GNB_ID_¥ecs_1 + = { + +38 ( +Glob®GNB_ID +), + +39 +off£tof +( +Glob®GNB_ID +, +_a¢_ùx +), + +40 +a¢_MAP_Glob®GNB_ID_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Glob®GNB_ID + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_Glob®GNB_ID_gs_1 +, + +50 ( +a¢_DEF_Glob®GNB_ID_gs_1 +) + +51 /( +a¢_DEF_Glob®GNB_ID_gs_1 +[0]), + +52 +a¢_DEF_Glob®GNB_ID_gs_1 +, + +53 ( +a¢_DEF_Glob®GNB_ID_gs_1 +) + +54 /( +a¢_DEF_Glob®GNB_ID_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_Glob®GNB_ID_1 +, + +58 & +a¢_SPC_Glob®GNB_ID_¥ecs_1 + + + @GlobalNGRANNodeID.c + +8  + ~"Glob®NGRANNodeID.h +" + +10  + ~"Glob®GNB-ID.h +" + +11  + ~"Glob®NgENB-ID.h +" + +12 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Glob®NGRANNodeID_cÚ¡r_1 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17 +a¢_TYPE_memb”_t + + ga¢_MBR_Glob®NGRANNodeID_1 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +Glob®NGRANNodeID +, +choiû +. +gNB +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_Glob®GNB_ID +, + +27 { +ATF_POINTER +, 0, +off£tof +( +Glob®NGRANNodeID +, +choiû +. +ng_eNB +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_Glob®NgENB_ID +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Glob®NGRANNodeID_g2–_1 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_Glob®NGRANNodeID_¥ecs_1 + = { + +42 ( +Glob®NGRANNodeID +), + +43 +off£tof +( +Glob®NGRANNodeID +, +_a¢_ùx +), + +44 +off£tof +( +Glob®NGRANNodeID +, +´e£Á +), + +45 ((( +Glob®NGRANNodeID + *)0)-> +´e£Á +), + +46 +a¢_MAP_Glob®NGRANNodeID_g2–_1 +, + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Glob®NGRANNodeID + = { + +54 & +a¢_OP_CHOICE +, + +59 { 0, & +a¢_PER_ty³_Glob®NGRANNodeID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +60 +a¢_MBR_Glob®NGRANNodeID_1 +, + +62 & +a¢_SPC_Glob®NGRANNodeID_¥ecs_1 + + + @GlobalNgENB-ID.c + +8  + ~"Glob®NgENB-ID.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Glob®NgENB_ID_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®NgENB_ID +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®NgENB_ID +, +ngENB_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_NgENB_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Glob®NgENB_ID_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Glob®NgENB_ID_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Glob®NgENB_ID_¥ecs_1 + = { + +38 ( +Glob®NgENB_ID +), + +39 +off£tof +( +Glob®NgENB_ID +, +_a¢_ùx +), + +40 +a¢_MAP_Glob®NgENB_ID_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Glob®NgENB_ID + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_Glob®NgENB_ID_gs_1 +, + +50 ( +a¢_DEF_Glob®NgENB_ID_gs_1 +) + +51 /( +a¢_DEF_Glob®NgENB_ID_gs_1 +[0]), + +52 +a¢_DEF_Glob®NgENB_ID_gs_1 +, + +53 ( +a¢_DEF_Glob®NgENB_ID_gs_1 +) + +54 /( +a¢_DEF_Glob®NgENB_ID_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_Glob®NgENB_ID_1 +, + +58 & +a¢_SPC_Glob®NgENB_ID_¥ecs_1 + + + @GlobalenGNB-ID.c + +8  + ~"Glob®’GNB-ID.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Glob®’GNB_ID_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®’GNB_ID +, +pLMN_Id’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +Glob®’GNB_ID +, +’_gNB_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_EN_GNB_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Glob®’GNB_ID_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Glob®’GNB_ID_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Glob®’GNB_ID_¥ecs_1 + = { + +38 ( +Glob®’GNB_ID +), + +39 +off£tof +( +Glob®’GNB_ID +, +_a¢_ùx +), + +40 +a¢_MAP_Glob®’GNB_ID_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Glob®’GNB_ID + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_Glob®’GNB_ID_gs_1 +, + +50 ( +a¢_DEF_Glob®’GNB_ID_gs_1 +) + +51 /( +a¢_DEF_Glob®’GNB_ID_gs_1 +[0]), + +52 +a¢_DEF_Glob®’GNB_ID_gs_1 +, + +53 ( +a¢_DEF_Glob®’GNB_ID_gs_1 +) + +54 /( +a¢_DEF_Glob®’GNB_ID_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_Glob®’GNB_ID_1 +, + +58 & +a¢_SPC_Glob®’GNB_ID_¥ecs_1 + + + @GranularityPeriod.c + +8  + ~"G¿nuÏr™yP”iod.h +" + +11 + $G¿nuÏr™yP”iod_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 4294967295)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_G¿nuÏr™yP”iod_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 32, -1, 1, 4294967295 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_G¿nuÏr™yP”iod_¥ecs_1 + = { + +49 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_G¿nuÏr™yP”iod_gs_1 +[] = { + +50 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +52 +a¢_TYPE_desütÜ_t + + ga¢_DEF_G¿nuÏr™yP”iod + = { + +55 & +a¢_OP_N©iveIÁeg” +, + +56 +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +, + +57 ( +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +) + +58 /( +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +[0]), + +59 +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +, + +60 ( +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +) + +61 /( +a¢_DEF_G¿nuÏr™yP”iod_gs_1 +[0]), + +62 { 0, & +a¢_PER_ty³_G¿nuÏr™yP”iod_cÚ¡r_1 +, +G¿nuÏr™yP”iod_cÚ¡¿št + }, + +64 & +a¢_SPC_G¿nuÏr™yP”iod_¥ecs_1 + + + @GroupID.c + +8  + ~"GroupID.h +" + +10  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_GroupID_cÚ¡r_1 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15  +a¢_TYPE_memb”_t + + ga¢_MBR_GroupID_1 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +GroupID +, +choiû +. +fiveGC +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_FiveQI +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +GroupID +, +choiû +. +ePC +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_QCI +, + +35 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_GroupID_g2–_1 +[] = { + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +39  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_GroupID_¥ecs_1 + = { + +40 ( +GroupID +), + +41 +off£tof +( +GroupID +, +_a¢_ùx +), + +42 +off£tof +( +GroupID +, +´e£Á +), + +43 ((( +GroupID + *)0)-> +´e£Á +), + +44 +a¢_MAP_GroupID_g2–_1 +, + +49 +a¢_TYPE_desütÜ_t + + ga¢_DEF_GroupID + = { + +52 & +a¢_OP_CHOICE +, + +57 { 0, & +a¢_PER_ty³_GroupID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +58 +a¢_MBR_GroupID_1 +, + +60 & +a¢_SPC_GroupID_¥ecs_1 + + + @INTEGER.c + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~<”ºo.h +> + +14 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_INTEGER_gs +[] = { + +15 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +17 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_INTEGER + = { + +18 +INTEGER_ä“ +, + +19 +INTEGER_´št +, + +20 +INTEGER_com·» +, + +21 +b”_decode_´im™ive +, + +22 +INTEGER_’code_d” +, + +23 +INTEGER_decode_x” +, + +24 +INTEGER_’code_x” +, + +25 #ifdeà +ASN_DISABLE_OER_SUPPORT + + +29 +INTEGER_decode_Ûr +, + +30 +INTEGER_’code_Ûr +, + +32 #ifdef +ASN_DISABLE_PER_SUPPORT + + +38 +INTEGER_decode_u³r +, + +39 +INTEGER_’code_u³r +, + +40 +INTEGER_decode_­” +, + +41 +INTEGER_’code_­” +, + +43 +INTEGER_¿ndom_fžl +, + +46 +a¢_TYPE_desütÜ_t + + ga¢_DEF_INTEGER + = { + +49 & +a¢_OP_INTEGER +, + +50 +a¢_DEF_INTEGER_gs +, + +51 ( +a¢_DEF_INTEGER_gs +) / (asn_DEF_INTEGER_tags[0]), + +52 +a¢_DEF_INTEGER_gs +, + +53 ( +a¢_DEF_INTEGER_gs +) / (asn_DEF_INTEGER_tags[0]), + +54 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +62 +a¢_’c_rv®_t + + +63 + $INTEGER_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +64  +g_mode +, +b”_Žv_g_t + +g +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +65 * +­p_key +) { + +66 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +67 +a¢_’c_rv®_t + +rv® +; + +68 +INTEGER_t + +efãùive_š‹g” +; + +70 + `ASN_DEBUG +("%s %s‡s INTEGER (tm=%d)", + +71 +cb +?"Encodšg":"E¡im©šg", +td +-> +Çme +, +g_mode +); + +77 if( +¡ +-> +buf +) { + +78 +ušt8_t + * +buf + = +¡ +->buf; + +79 +ušt8_t + * +’d1 + = +buf + + +¡ +-> +size + - 1; + +80  +shiá +; + +83 ; +buf + < +’d1 +; buf++) { + +91 * +buf +) { + +92 0x00: if(( +buf +[1] & 0x80) == 0) + +95 0xff: if(( +buf +[1] & 0x80)) + +103 +shiá + = +buf + - +¡ +->buf; + +104 if( +shiá +) { + +106 cÚ¡ +ušt8_t + * +c_buf +; + +107 +ušt8_t + * +nc_buf +; + +108 } +uncÚ¡ +; + +109 +uncÚ¡ +. +c_buf + = +¡ +-> +buf +; + +110 +efãùive_š‹g” +. +buf + = +uncÚ¡ +. +nc_buf + + +shiá +; + +111 +efãùive_š‹g” +. +size + = +¡ +->siz- +shiá +; + +113 +¡ + = & +efãùive_š‹g” +; + +117 +rv® + = + `d”_’code_´im™ive +( +td +, +¡ +, +g_mode +, +g +, +cb +, +­p_key +); + +118 if( +rv® +. +¡ruùu»_±r + =ð& +efãùive_š‹g” +) { + +119 +rv® +. +¡ruùu»_±r + = +¥Œ +; + +121  +rv® +; + +122 + } +} + +124 cÚ¡ +a¢_INTEGER_’um_m­_t + * +INTEGER_m­_’um2v®ue +( + +125 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs +, cÚ¡ * +l¡¬t +, + +126 cÚ¡ * +l¡Ý +); + +131  +ssize_t + + +132 + $INTEGER__dump +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ +INTEGER_t + * +¡ +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +,  +¶ašOrXER +) { + +133 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +134 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +135  +sü©ch +[32]; + +136 +ušt8_t + * +buf + = +¡ +->buf; + +137 +ušt8_t + * +buf_’d + = +¡ +-> +buf + + st-> +size +; + +138 +štmax_t + +v®ue +; + +139 +ssize_t + +wrÙe + = 0; + +140 * +p +; + +141  +»t +; + +143 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) + +144 +»t + = + `a¢_INTEGER2umax +( +¡ +, ( +uštmax_t + *)& +v®ue +); + +146 +»t + = + `a¢_INTEGER2imax +( +¡ +, & +v®ue +); + +149 if( +»t + == 0) { + +150 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– +; + +151 +– + = ( +v®ue + >ð0 || ! +¥ecs + || !¥ecs-> +f›ld_unsigÃd +) + +152 ? + `INTEGER_m­_v®ue2’um +( +¥ecs +, +v®ue +) : 0; + +153 if( +– +) { + +154 if( +¶ašOrXER + == 0) + +155  + `a¢__fÜm©_to_ÿÎback +( +cb +, +­p_key +, + +156 "%" +ASN_PRIdMAX + " (%s)", +v®ue +, +– +-> +’um_Çme +); + +158  + `a¢__fÜm©_to_ÿÎback +( +cb +, +­p_key +, + +159 "<%s/>", +– +-> +’um_Çme +); + +160 } if( +¶ašOrXER + && +¥ecs + && s³cs-> +¡riù_’um”©iÚ +) { + +161 + `ASN_DEBUG +("ASN.1 forbids dealing with " + +163 +”ºo + = +EPERM +; + +166  + `a¢__fÜm©_to_ÿÎback +( +cb +, +­p_key +, + +167 ( +¥ecs + && s³cs-> +f›ld_unsigÃd +) + +168 ? "%" +ASN_PRIuMAX + + +169 : "%" +ASN_PRIdMAX +, + +170 +v®ue +); + +172 } if( +¶ašOrXER + && +¥ecs + && s³cs-> +¡riù_’um”©iÚ +) { + +177 + `ASN_DEBUG +("ASN.1 forbids dealing with " + +179 +”ºo + = +EPERM +; + +185  +p + = +sü©ch +; +buf + < +buf_’d +; buf++) { + +186 cÚ¡ * cÚ¡ +h2c + = "0123456789ABCDEF"; + +187 if(( +p + - +sü©ch +è>ð( +ssize_t +)((scratch) - 4)) { + +189 if( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +) < 0) + +191 +wrÙe + +ð +p + - +sü©ch +; + +192 +p + = +sü©ch +; + +194 * +p +++ = +h2c +[* +buf + >> 4]; + +195 * +p +++ = +h2c +[* +buf + & 0x0F]; + +196 * +p +++ = 0x3a; + +198 if( +p + !ð +sü©ch +) + +199 +p +--; + +201 +wrÙe + +ð +p + - +sü©ch +; + +202  ( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +è< 0è? -1 : +wrÙe +; + +203 + } +} + +209 + $INTEGER_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +210 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +211 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +212 +ssize_t + +»t +; + +214 () +žev– +; + +216 if(! +¡ + || !¡-> +buf +) + +217 +»t + = + `cb +("", 8, +­p_key +); + +219 +»t + = + `INTEGER__dump +( +td +, +¡ +, +cb +, +­p_key +, 0); + +221  ( +»t + < 0) ? -1 : 0; + +222 + } +} + +224  + se2v_key + { + +225 cÚ¡ * + m¡¬t +; + +226 cÚ¡ * + m¡Ý +; + +227 cÚ¡ +a¢_INTEGER_’um_m­_t + * + mvem­ +; + +228 cÚ¡ * + mevm­ +; + +231 + $INTEGER__com·r_’um2v®ue +(cÚ¡ * +kp +, cÚ¡ * +am +) { + +232 cÚ¡  +e2v_key + * +key + = (cÚ¡ e2v_key *) +kp +; + +233 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– + = (cÚ¡‡¢_INTEGER_’um_m­_ˆ*) +am +; + +234 cÚ¡ * +±r +, * +’d +, * +Çme +; + +237 +– + = +key +-> +vem­ + + key-> +evm­ +[el - key->vemap]; + +240  +±r + = +key +-> +¡¬t +, +’d + = key-> +¡Ý +, +Çme + = +– +-> +’um_Çme +; + +241 +±r + < +’d +;…Œ++, +Çme +++) { + +242 if(* +±r + !ð* +Çme + || !*name) + +243  *(cÚ¡ *) +±r + + +244 - *(cÚ¡ *) +Çme +; + +246  +Çme +[0] ? -1 : 0; + +247 + } +} + +249 cÚ¡ +a¢_INTEGER_’um_m­_t + * + +250 + $INTEGER_m­_’um2v®ue +(cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs +, cÚ¡ * +l¡¬t +, + +251 cÚ¡ * +l¡Ý +) { + +252 cÚ¡ +a¢_INTEGER_’um_m­_t + * +–_found +; + +253  +couÁ + = +¥ecs + ? s³cs-> +m­_couÁ + : 0; + +254  +e2v_key + +key +; + +255 cÚ¡ * +Í +; + +257 if(! +couÁ +è +NULL +; + +261  +l¡¬t +++, +Í + =†¡¬t;†°< +l¡Ý +;†p++) { + +262 * +Í +) { + +271 if( +Í + =ð +l¡Ý +è +NULL +; + +272 +l¡Ý + = +Í +; + +274 +key +. +¡¬t + = +l¡¬t +; + +275 +key +. +¡Ý + = +l¡Ý +; + +276 +key +. +vem­ + = +¥ecs +-> +v®ue2’um +; + +277 +key +. +evm­ + = +¥ecs +-> +’um2v®ue +; + +278 +–_found + = ( +a¢_INTEGER_’um_m­_t + *) + `b£¬ch +(& +key +, + +279 +¥ecs +-> +v®ue2’um +, +couÁ +, (specs->value2enum[0]), + +280 +INTEGER__com·r_’um2v®ue +); + +281 if( +–_found +) { + +283 +–_found + = +key +. +vem­ + + key. +evm­ +[el_found - key.vemap]; + +285  +–_found +; + +286 + } +} + +289 + $INTEGER__com·r_v®ue2’um +(cÚ¡ * +kp +, cÚ¡ * +am +) { + +290  +a + = *(cÚ¡ *) +kp +; + +291 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– + = (cÚ¡‡¢_INTEGER_’um_m­_ˆ*) +am +; + +292  +b + = +– +-> +Çt_v®ue +; + +293 if( +a + < +b +)  -1; + +294 if( +a + =ð +b +)  0; + +296 + } +} + +298 cÚ¡ +a¢_INTEGER_’um_m­_t + * + +299 + $INTEGER_m­_v®ue2’um +(cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs +,  +v®ue +) { + +300  +couÁ + = +¥ecs + ? s³cs-> +m­_couÁ + : 0; + +301 if(! +couÁ +)  0; + +302  ( +a¢_INTEGER_’um_m­_t + *) + `b£¬ch +(& +v®ue +, +¥ecs +-> +v®ue2’um +, + +303 +couÁ +, ( +¥ecs +-> +v®ue2’um +[0]), + +304 +INTEGER__com·r_v®ue2’um +); + +305 + } +} + +308 + $INTEGER_¡_´—Îoc +( +INTEGER_t + * +¡ +,  +mš_size +) { + +309 * +p + = + `MALLOC +( +mš_size + + 1); + +310 if( +p +) { + +311 * +b + = +¡ +-> +buf +; + +312 +¡ +-> +size + = 0; + +313 +¡ +-> +buf + = +p +; + +314 + `FREEMEM +( +b +); + +319 + } +} + +324  +x”_pbd_rv® + + +325 + $INTEGER__x”_body_decode +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +326 cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +327 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +328 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +329 +INTEGER_t + * +¡ + = (INTEGER_ˆ*) +¥Œ +; + +330 +štmax_t + +dec_v®ue +; + +331 +štmax_t + +hex_v®ue + = 0; + +332 cÚ¡ * +Í +; + +333 cÚ¡ * +l¡¬t + = (cÚ¡ *) +chunk_buf +; + +334 cÚ¡ * +l¡Ý + = +l¡¬t + + +chunk_size +; + +336 +ST_LEADSPACE +, + +337 +ST_SKIPSPHEX +, + +338 +ST_WAITDIGITS +, + +339 +ST_DIGITS +, + +340 +ST_DIGITS_TRAILSPACE +, + +341 +ST_HEXDIGIT1 +, + +342 +ST_HEXDIGIT2 +, + +343 +ST_HEXDIGITS_TRAILSPACE +, + +344 +ST_HEXCOLON +, + +345 +ST_END_ENUM +, + +346 +ST_UNEXPECTED + + +347 } +¡©e + = +ST_LEADSPACE +; + +348 cÚ¡ * +dec_v®ue_¡¬t + = 0; + +349 cÚ¡ * +dec_v®ue_’d + = 0; + +351 if( +chunk_size +) + +352 + `ASN_DEBUG +("INTEGER body %ld 0x%2x..0x%2x", + +353 () +chunk_size +, * +l¡¬t +, +l¡Ý +[-1]); + +355 if( + `INTEGER_¡_´—Îoc +( +¡ +, ( +chunk_size +/3) + 1)) + +356  +XPBD_SYSTEM_FAILURE +; + +362  +Í + = +l¡¬t +;†°< +l¡Ý +;†p++) { + +363  +lv + = * +Í +; + +364  +lv +) { + +366  +¡©e +) { + +367  +ST_LEADSPACE +: + +368  +ST_DIGITS_TRAILSPACE +: + +369  +ST_HEXDIGITS_TRAILSPACE +: + +370  +ST_SKIPSPHEX +: + +372  +ST_DIGITS +: + +373 +dec_v®ue_’d + = +Í +; + +374 +¡©e + = +ST_DIGITS_TRAILSPACE +; + +376  +ST_HEXCOLON +: + +377 +¡©e + = +ST_HEXDIGITS_TRAILSPACE +; + +384 if( +¡©e + =ð +ST_LEADSPACE +) { + +385 +dec_v®ue + = 0; + +386 +dec_v®ue_¡¬t + = +Í +; + +387 +¡©e + = +ST_WAITDIGITS +; + +392 if( +¡©e + =ð +ST_LEADSPACE +) { + +393 +dec_v®ue + = 0; + +394 +dec_v®ue_¡¬t + = +Í +; + +395 +¡©e + = +ST_WAITDIGITS +; + +401  +¡©e +) { + +402  +ST_DIGITS +: ; + +403  +ST_SKIPSPHEX +: + +404  +ST_HEXDIGIT1 +: + +405 +hex_v®ue + = ( +lv + - 0x30) << 4; + +406 +¡©e + = +ST_HEXDIGIT2 +; + +408  +ST_HEXDIGIT2 +: + +409 +hex_v®ue + +ð( +lv + - 0x30); + +410 +¡©e + = +ST_HEXCOLON +; + +411 +¡ +-> +buf +[¡-> +size +++] = ( +ušt8_t +) +hex_v®ue +; + +413  +ST_HEXCOLON +: + +414  +XPBD_BROKEN_ENCODING +; + +415  +ST_LEADSPACE +: + +416 +dec_v®ue + = 0; + +417 +dec_v®ue_¡¬t + = +Í +; + +419  +ST_WAITDIGITS +: + +420 +¡©e + = +ST_DIGITS +; + +427 if( +¡©e + =ð +ST_LEADSPACE +) { + +428 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– +; + +429 +– + = + `INTEGER_m­_’um2v®ue +( + +430 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) + +431 +td +-> +¥ecifics +, +l¡¬t +, +l¡Ý +); + +432 if( +– +) { + +433 + `ASN_DEBUG +("Found \"%s\" => %ld", + +434 +– +-> +’um_Çme +,ƒl-> +Çt_v®ue +); + +435 +dec_v®ue + = +– +-> +Çt_v®ue +; + +436 +¡©e + = +ST_END_ENUM +; + +437 +Í + = +l¡Ý + - 1; + +440 + `ASN_DEBUG +("Unknown identifier for INTEGER"); + +442  +XPBD_BROKEN_ENCODING +; + +444 if( +¡©e + =ð +ST_HEXCOLON +) { + +446 +¡©e + = +ST_HEXDIGIT1 +; + +448 } if( +¡©e + =ð +ST_DIGITS +) { + +453 + `ASN_DEBUG +("INTEGER„e-evaluate‡s hex form"); + +454 +¡©e + = +ST_SKIPSPHEX +; + +455 +dec_v®ue_¡¬t + = 0; + +456 +Í + = +l¡¬t + - 1; + +459 + `ASN_DEBUG +("¡©%d‡ˆ%ld", +¡©e +, ()( +Í + - +l¡¬t +)); + +465  +¡©e +) { + +466  +ST_SKIPSPHEX +: + +467  +ST_LEADSPACE +: + +468  +ST_HEXDIGIT1 +: + +469 +hex_v®ue + = +lv + - ((lv < 0x61) ? 0x41 : 0x61); + +470 +hex_v®ue + += 10; + +471 +hex_v®ue + <<= 4; + +472 +¡©e + = +ST_HEXDIGIT2 +; + +474  +ST_HEXDIGIT2 +: + +475 +hex_v®ue + +ð +lv + - ((lv < 0x61) ? 0x41 : 0x61); + +476 +hex_v®ue + += 10; + +477 +¡ +-> +buf +[¡-> +size +++] = ( +ušt8_t +) +hex_v®ue +; + +478 +¡©e + = +ST_HEXCOLON +; + +480  +ST_DIGITS +: + +481 + `ASN_DEBUG +("INTEGER„e-evaluate‡s hex form"); + +482 +¡©e + = +ST_SKIPSPHEX +; + +483 +dec_v®ue_¡¬t + = 0; + +484 +Í + = +l¡¬t + - 1; + +493 + `ASN_DEBUG +("INTEGER :: Found‚on-numeric 0x%2x‡t %ld", + +494 +lv +, ()( +Í + - +l¡¬t +)); + +495 +¡©e + = +ST_UNEXPECTED +; + +499  +¡©e +) { + +500  +ST_END_ENUM +: + +503  +ST_DIGITS +: + +504 +dec_v®ue_’d + = +l¡Ý +; + +506  +ST_DIGITS_TRAILSPACE +: + +508  + `a¢_¡¹oimax_lim +( +dec_v®ue_¡¬t +, & +dec_v®ue_’d +, & +dec_v®ue +)) { + +509  +ASN_STRTOX_OK +: + +510 if( +¥ecs + && s³cs-> +f›ld_unsigÃd + && ( +uštmax_t +è +dec_v®ue + <ð +ULONG_MAX +) { + +512 } if( +dec_v®ue + >ð +LONG_MIN + && dec_v®u<ð +LONG_MAX +) { + +519 + `ASN_DEBUG +("INTEGERƒxceeds†ong„ange"); + +522  +ASN_STRTOX_ERROR_RANGE +: + +523 + `ASN_DEBUG +("INTEGER decod% h™„ªglim™", +td +-> +Çme +); + +524  +XPBD_DECODER_LIMIT +; + +525  +ASN_STRTOX_ERROR_INVAL +: + +526  +ASN_STRTOX_EXPECT_MORE +: + +527  +ASN_STRTOX_EXTRA_DATA +: + +528  +XPBD_BROKEN_ENCODING +; + +531  +ST_HEXCOLON +: + +532  +ST_HEXDIGITS_TRAILSPACE +: + +533 +¡ +-> +buf +[¡-> +size +] = 0; + +534  +XPBD_BODY_CONSUMED +; + +535  +ST_HEXDIGIT1 +: + +536  +ST_HEXDIGIT2 +: + +537  +ST_SKIPSPHEX +: + +538  +XPBD_BROKEN_ENCODING +; + +539  +ST_LEADSPACE +: + +541  +XPBD_NOT_BODY_IGNORE +; + +542  +ST_WAITDIGITS +: + +543  +ST_UNEXPECTED +: + +544 + `ASN_DEBUG +("INTEGER: NØu£fuÈdig™ (¡©%d)", +¡©e +); + +545  +XPBD_BROKEN_ENCODING +; + +552 if( + `a¢_imax2INTEGER +( +¡ +, +dec_v®ue +)) { + +553 + `ASN_DEBUG +("INTEGER decod% cÚv”siÚ fažed", +td +-> +Çme +); + +554  +XPBD_SYSTEM_FAILURE +; + +557  +XPBD_BODY_CONSUMED +; + +558 + } +} + +560 +a¢_dec_rv®_t + + +561 + $INTEGER_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +562 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +563 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +564  + `x”_decode_´im™ive +( +Ýt_codec_ùx +, +td +, + +565 +¥Œ +, ( +INTEGER_t +), +Ýt_mÇme +, + +566 +buf_±r +, +size +, +INTEGER__x”_body_decode +); + +567 + } +} + +569 +a¢_’c_rv®_t + + +570 + $INTEGER_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +571  +žev– +, +x”_’cod”_æags_e + +æags +, + +572 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +573 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +574 +a¢_’c_rv®_t + +” + = {0,0,0}; + +576 () +žev– +; + +577 () +æags +; + +579 if(! +¡ + || !¡-> +buf +) + +580 +ASN__ENCODE_FAILED +; + +582 +” +. +’coded + = + `INTEGER__dump +( +td +, +¡ +, +cb +, +­p_key +, 1); + +583 if( +” +. +’coded + < 0è +ASN__ENCODE_FAILED +; + +585 + `ASN__ENCODED_OK +( +” +); + +586 + } +} + +588 #iâdef +ASN_DISABLE_PER_SUPPORT + + +590 +a¢_dec_rv®_t + + +591 + $INTEGER_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +592 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +593 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +594 +a¢_³r_d©a_t + * +pd +) { + +595 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +596 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +597 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +598 +INTEGER_t + * +¡ + = (INTEGER_ˆ*)* +¥Œ +; + +599 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +600  +»³© +; + +602 () +Ýt_codec_ùx +; + +604 if(! +¡ +) { + +605 +¡ + = ( +INTEGER_t + *)(* +¥Œ + = + `CALLOC +(1, (*st))); + +606 if(! +¡ +è +ASN__DECODE_FAILED +; + +609 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +610 +ù + = +cÚ¡¿šts + ? &cÚ¡¿šts-> +v®ue + : 0; + +612 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +613  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +614 if( +šext + < 0è +ASN__DECODE_STARVED +; + +615 if( +šext +è +ù + = 0; + +618 + `FREEMEM +( +¡ +-> +buf +); + +619 +¡ +-> +buf + = 0; + +620 +¡ +-> +size + = 0; + +621 if( +ù +) { + +622 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +623 +¡ +-> +buf + = ( +ušt8_t + *) + `CALLOC +(1, 2); + +624 if(! +¡ +-> +buf +è +ASN__DECODE_FAILED +; + +625 +¡ +-> +size + = 1; + +626 } if( +ù +-> +æags + & +APC_CONSTRAINED + && ct-> +¿nge_b™s + >= 0) { + +627 +size_t + +size + = ( +ù +-> +¿nge_b™s + + 7) >> 3; + +628 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +(1 + +size + + 1); + +629 if(! +¡ +-> +buf +è +ASN__DECODE_FAILED +; + +630 +¡ +-> +size + = size; + +635 if( +ù + && ct-> +æags + !ð +APC_UNCONSTRAINED +) { + +637 + `ASN_DEBUG +("IÁeg” w™h„ªg%d b™s", +ù +-> +¿nge_b™s +); + +638 if( +ù +-> +¿nge_b™s + >= 0) { + +639 if(( +size_t +) +ù +-> +¿nge_b™s + > 8 * ()) + +640 +ASN__DECODE_FAILED +; + +642 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +643  +uv®ue + = 0; + +644 if( + `u³r_g‘_cÚ¡¿šed_whÞe_numb” +( +pd +, + +645 & +uv®ue +, +ù +-> +¿nge_b™s +)) + +646 +ASN__DECODE_STARVED +; + +647 + `ASN_DEBUG +("Got value %lu +†ow %ld", + +648 +uv®ue +, +ù +-> +low”_bound +); + +649 +uv®ue + +ð +ù +-> +low”_bound +; + +650 if( + `a¢_ulÚg2INTEGER +( +¡ +, +uv®ue +)) + +651 +ASN__DECODE_FAILED +; + +653  +uv®ue + = 0; + +654  +sv®ue +; + +655 if( + `u³r_g‘_cÚ¡¿šed_whÞe_numb” +( +pd +, + +656 & +uv®ue +, +ù +-> +¿nge_b™s +)) + +657 +ASN__DECODE_STARVED +; + +658 + `ASN_DEBUG +("Got value %lu +†ow %ld", + +659 +uv®ue +, +ù +-> +low”_bound +); + +660 if( + `³r_lÚg_¿nge_uÄeba£ +( +uv®ue +, +ù +-> +low”_bound +, + +661 +ù +-> +uµ”_bound +, & +sv®ue +) + +662 || + `a¢_lÚg2INTEGER +( +¡ +, +sv®ue +)) { + +663 +ASN__DECODE_FAILED +; + +666  +rv® +; + +669 + `ASN_DEBUG +("Decodšg uncÚ¡¿šed iÁeg” %s", +td +-> +Çme +); + +674 +ssize_t + +Ën + = 0; + +675 * +p + = +NULL +; + +676  +»t + = 0; + +679 +Ën + = + `u³r_g‘_Ëngth +( +pd +, -1, 0, & +»³© +); + +680 if( +Ën + < 0è +ASN__DECODE_STARVED +; + +682 +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + +Ën + + 1); + +683 if(! +p +è +ASN__DECODE_FAILED +; + +684 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +686 +»t + = + `³r_g‘_mªy_b™s +( +pd +, & +¡ +-> +buf +[¡-> +size +], 0, 8 * +Ën +); + +687 if( +»t + < 0è +ASN__DECODE_STARVED +; + +688 +¡ +-> +size + +ð +Ën +; + +689 }  +»³© +); + +690 +¡ +-> +buf +[¡-> +size +] = 0; + +693 if( +ù + && ct-> +low”_bound +) { + +697  +v®ue + = 0; + +698 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) + +699 +ASN__DECODE_FAILED +; + +700 if( + `a¢_imax2INTEGER +( +¡ +, +v®ue + + +ù +-> +low”_bound +)) + +701 +ASN__DECODE_FAILED +; + +704  +rv® +; + +705 + } +} + +707 +a¢_’c_rv®_t + + +708 + $INTEGER_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +709 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +710 +a¢_³r_ou_t + * +po +) { + +711 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +712 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +713 +a¢_’c_rv®_t + +” + = {0,0,0}; + +714 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +715 cÚ¡ +ušt8_t + * +buf +; + +716 cÚ¡ +ušt8_t + * +’d +; + +717 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +718  +v®ue + = 0; + +720 if(! +¡ + || st-> +size + =ð0è +ASN__ENCODE_FAILED +; + +722 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +723 +ù + = +cÚ¡¿šts + ? &cÚ¡¿šts-> +v®ue + : 0; + +725 +” +. +’coded + = 0; + +727 if( +ù +) { + +728  +šext + = 0; + +729 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +730  +uv® +; + +731 if( + `a¢_INTEGER2ulÚg +( +¡ +, & +uv® +)) + +732 +ASN__ENCODE_FAILED +; + +734 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +735 if( +uv® + < () +ù +-> +low”_bound +) + +736 +šext + = 1; + +737 } if( +ù +-> +¿nge_b™s + >= 0) { + +738 if( +uv® + < () +ù +-> +low”_bound + + +739 || +uv® + > () +ù +-> +uµ”_bound +) + +740 +šext + = 1; + +742 + `ASN_DEBUG +("V®u%lu (%02x/%" +ASN_PRI_SIZE + ")†b %lu ub %lu %s", + +743 +uv® +, +¡ +-> +buf +[0], st-> +size +, + +744 +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +745 +šext + ? "ext" : "fix"); + +746 +v®ue + = +uv® +; + +748 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) + +749 +ASN__ENCODE_FAILED +; + +751 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +752 if( +v®ue + < +ù +-> +low”_bound +) + +753 +šext + = 1; + +754 } if( +ù +-> +¿nge_b™s + >= 0) { + +755 if( +v®ue + < +ù +-> +low”_bound + + +756 || +v®ue + > +ù +-> +uµ”_bound +) + +757 +šext + = 1; + +759 + `ASN_DEBUG +("V®u%ld (%02x/%" +ASN_PRI_SIZE + ")†b %ld ub %ld %s", + +760 +v®ue +, +¡ +-> +buf +[0], st-> +size +, + +761 +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +762 +šext + ? "ext" : "fix"); + +764 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +765 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +766 +ASN__ENCODE_FAILED +; + +767 if( +šext +è +ù + = 0; + +768 } if( +šext +) { + +769 +ASN__ENCODE_FAILED +; + +775 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +776  +v +; + +778 + `ASN_DEBUG +("Encoding integer %ld (%lu) with„ange %d bits", + +779 +v®ue +, v®u- +ù +-> +low”_bound +, ct-> +¿nge_b™s +); + +780 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +781 iàÐ(() +ù +-> +low”_bound + > ()(ù-> +uµ”_bound +) + +782 || (() +v®ue + < () +ù +-> +low”_bound +)) + +783 || (() +v®ue + > () +ù +-> +uµ”_bound +) + +785 + `ASN_DEBUG +("Value %luo-be-encoded is outsidehe bounds [%lu, %lu]!", + +786 +v®ue +, +ù +-> +low”_bound +, ct-> +uµ”_bound +); + +787 +ASN__ENCODE_FAILED +; + +789 +v + = () +v®ue + - () +ù +-> +low”_bound +; + +791 if( + `³r_lÚg_¿nge_»ba£ +( +v®ue +, +ù +-> +low”_bound +, ct-> +uµ”_bound +, & +v +)) { + +792 +ASN__ENCODE_FAILED +; + +795 if( + `u³r_put_cÚ¡¿šed_whÞe_numb”_u +( +po +, +v +, +ù +-> +¿nge_b™s +)) + +796 +ASN__ENCODE_FAILED +; + +797 + `ASN__ENCODED_OK +( +” +); + +800 if( +ù + && ct-> +low”_bound +) { + +801 + `ASN_DEBUG +("Adju¡†ow” boundØ%ld", +ù +-> +low”_bound +); + +803 +ASN__ENCODE_FAILED +; + +806  +buf + = +¡ +->buf, +’d + = st->buà+ st-> +size +; buf <ƒnd;) { + +807  +Ãed_eom + = 0; + +808 +ssize_t + +mayEncode + = + `u³r_put_Ëngth +( +po +, +’d + - +buf +, & +Ãed_eom +); + +809 if( +mayEncode + < 0) + +810 +ASN__ENCODE_FAILED +; + +811 if( + `³r_put_mªy_b™s +( +po +, +buf +, 8 * +mayEncode +)) + +812 +ASN__ENCODE_FAILED +; + +813 +buf + +ð +mayEncode +; + +814 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)è +ASN__ENCODE_FAILED +; + +817 + `ASN__ENCODED_OK +( +” +); + +818 + } +} + +820 +a¢_dec_rv®_t + + +821 + $INTEGER_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +822 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +823 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +824 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +825 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +826 +INTEGER_t + * +¡ + = (INTEGER_ˆ*)* +¥Œ +; + +827 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +828  +»³© +; + +830 () +Ýt_codec_ùx +; + +832 if(! +¡ +) { + +833 +¡ + = ( +INTEGER_t + *)(* +¥Œ + = + `CALLOC +(1, (*st))); + +834 if(! +¡ +è +ASN__DECODE_FAILED +; + +837 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +838 +ù + = +cÚ¡¿šts + ? &cÚ¡¿šts-> +v®ue + : 0; + +840 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +841  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +842 if( +šext + < 0è +ASN__DECODE_STARVED +; + +843 if( +šext +è +ù + = 0; + +846 + `FREEMEM +( +¡ +-> +buf +); + +847 +¡ +-> +buf + = 0; + +848 +¡ +-> +size + = 0; + +849 if( +ù +) { + +850 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +851 +¡ +-> +buf + = ( +ušt8_t + *) + `CALLOC +(1, 2); + +852 if(! +¡ +-> +buf +è +ASN__DECODE_FAILED +; + +853 +¡ +-> +size + = 1; + +854 } if( +ù +-> +æags + & +APC_CONSTRAINED + && ct-> +¿nge_b™s + >= 0) { + +855 +size_t + +size + = ( +ù +-> +¿nge_b™s + + 7) >> 3; + +856 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +(1 + +size + + 1); + +857 if(! +¡ +-> +buf +è +ASN__DECODE_FAILED +; + +858 +¡ +-> +size + = size; + +863 if( +ù + && ct-> +æags + !ð +APC_UNCONSTRAINED +) { + +865 + `ASN_DEBUG +("IÁeg” w™h„ªg%d b™s", +ù +-> +¿nge_b™s +); + +866 if( +ù +-> +¿nge_b™s + >= 0) { + +867 ià( +ù +-> +¿nge_b™s + > 16) { + +868  +max_¿nge_by‹s + = ( +ù +-> +¿nge_b™s + >> 3) + + +869 ((( +ù +-> +¿nge_b™s + % 8) > 0) ? 1 : 0); + +870  +Ëngth + = 0, +i +; + +871  +v®ue + = 0; + +873  +i + = 1; ; i++) { + +874  +uµ” + = 1 << +i +; + +875 ià( +uµ” + >ð +max_¿nge_by‹s +) + +878 + `ASN_DEBUG +("Cªƒncod%d (%d by‹sèš %d b™s", +ù +-> +¿nge_b™s +, + +879 +max_¿nge_by‹s +, +i +); + +881 ià(( +Ëngth + = + `³r_g‘_ãw_b™s +( +pd +, +i +)) < 0) + +882 +ASN__DECODE_FAILED +; + +885 +Ëngth + += 1; + +886 + `ASN_DEBUG +("Gن’gth %d", +Ëngth +); + +887 ià( + `­”_g‘_®ign +( +pd +) != 0) + +888 +ASN__DECODE_FAILED +; + +889  +Ëngth +--) { + +890  +buf + = + `³r_g‘_ãw_b™s +( +pd +, 8); + +891 ià( +buf + < 0) + +892 +ASN__DECODE_FAILED +; + +893 +v®ue + +ð((() +buf +è<< (8 * +Ëngth +)); + +896 +v®ue + +ð +ù +-> +low”_bound +; + +897 if(( +¥ecs + && s³cs-> +f›ld_unsigÃd +) + +898 ? + `a¢_ušt642INTEGER +( +¡ +, () +v®ue +) + +899 : + `a¢_št642INTEGER +( +¡ +, +v®ue +)) + +900 +ASN__DECODE_FAILED +; + +901 + `ASN_DEBUG +("Got value %ld +†ow %ld", + +902 +v®ue +, +ù +-> +low”_bound +); + +904  +v®ue + = 0; + +905 ià( +ù +-> +¿nge_b™s + < 8) { + +906 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +907 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +908 } ià( +ù +-> +¿nge_b™s + == 8) { + +909 ià( + `­”_g‘_®ign +( +pd +) < 0) + +910 +ASN__DECODE_FAILED +; + +911 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +912 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +915 ià( + `­”_g‘_®ign +( +pd +) < 0) + +916 +ASN__DECODE_FAILED +; + +917 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 16); + +918 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +920 +v®ue + +ð +ù +-> +low”_bound +; + +921 if(( +¥ecs + && s³cs-> +f›ld_unsigÃd +) + +922 ? + `a¢_ulÚg2INTEGER +( +¡ +, +v®ue +) + +923 : + `a¢_lÚg2INTEGER +( +¡ +, +v®ue +)) + +924 +ASN__DECODE_FAILED +; + +925 + `ASN_DEBUG +("Got value %ld +†ow %ld", + +926 +v®ue +, +ù +-> +low”_bound +); + +928  +rv® +; + +930 +ASN__DECODE_FAILED +; + +933 + `ASN_DEBUG +("Decodšg uncÚ¡¿šed iÁeg” %s", +td +-> +Çme +); + +938 +ssize_t + +Ën +; + +939 * +p +; + +940  +»t +; + +943 +Ën + = + `­”_g‘_Ëngth +( +pd +, -1, -1, & +»³© +); + +944 if( +Ën + < 0è +ASN__DECODE_STARVED +; + +946 +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + +Ën + + 1); + +947 if(! +p +è +ASN__DECODE_FAILED +; + +948 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +950 +»t + = + `³r_g‘_mªy_b™s +( +pd +, & +¡ +-> +buf +[¡-> +size +], 0, 8 * +Ën +); + +951 if( +»t + < 0è +ASN__DECODE_STARVED +; + +952 +¡ +-> +size + +ð +Ën +; + +953 }  +»³© +); + +954 +¡ +-> +buf +[¡-> +size +] = 0; + +957 if( +ù + && ct-> +low”_bound +) { + +961  +v®ue +; + +962 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) + +963 +ASN__DECODE_FAILED +; + +964 if( + `a¢_lÚg2INTEGER +( +¡ +, +v®ue + + +ù +-> +low”_bound +)) + +965 +ASN__DECODE_FAILED +; + +968  +rv® +; + +969 + } +} + +971 +a¢_’c_rv®_t + + +972 + $INTEGER_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +973 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +974 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +975 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +976 +a¢_’c_rv®_t + +” + = {0,0,0}; + +977 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +978 cÚ¡ +ušt8_t + * +buf +; + +979 cÚ¡ +ušt8_t + * +’d +; + +980 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +981  +v®ue + = 0; + +983 if(! +¡ + || st-> +size + =ð0è +ASN__ENCODE_FAILED +; + +985 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +986 +ù + = +cÚ¡¿šts + ? &cÚ¡¿šts-> +v®ue + : 0; + +988 +” +. +’coded + = 0; + +990 if( +ù +) { + +991  +šext + = 0; + +992 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +993  +uv® +; + +994 if( + `a¢_INTEGER2ulÚg +( +¡ +, & +uv® +)) + +995 +ASN__ENCODE_FAILED +; + +997 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +998 if( +uv® + < () +ù +-> +low”_bound +) + +999 +šext + = 1; + +1000 } if( +ù +-> +¿nge_b™s + >= 0) { + +1001 if( +uv® + < () +ù +-> +low”_bound + + +1002 || +uv® + > () +ù +-> +uµ”_bound +) + +1003 +šext + = 1; + +1005 + `ASN_DEBUG +("Value %lu (%02x/%lu)†b %ld ub %ld %s", + +1006 +uv® +, +¡ +-> +buf +[0], st-> +size +, + +1007 +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +1008 +šext + ? "ext" : "fix"); + +1009 +v®ue + = +uv® +; + +1011 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)è +ASN__ENCODE_FAILED +; + +1013 if( +ù +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +1014 if( +v®ue + < +ù +-> +low”_bound +) + +1015 +šext + = 1; + +1016 } if( +ù +-> +¿nge_b™s + >= 0) { + +1017 if( +v®ue + < +ù +-> +low”_bound + + +1018 || +v®ue + > +ù +-> +uµ”_bound +) + +1019 +šext + = 1; + +1021 + `ASN_DEBUG +("Value %lu (%02x/%lu)†b %ld ub %ld %s", + +1022 +v®ue +, +¡ +-> +buf +[0], st-> +size +, + +1023 +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +1024 +šext + ? "ext" : "fix"); + +1026 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +1027 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +1028 +ASN__ENCODE_FAILED +; + +1029 if( +šext +è +ù + = 0; + +1030 } if( +šext +) { + +1031 +ASN__ENCODE_FAILED +; + +1036 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +1037  +v +; + +1040 + `ASN_DEBUG +("Encoding integer %ld (%lu) with„ange %d bits", + +1041 +v®ue +, v®u- +ù +-> +low”_bound +, ct-> +¿nge_b™s +); + +1043 +v + = +v®ue + - +ù +-> +low”_bound +; + +1046 ià( +ù +-> +¿nge_b™s + < 8) { + +1047 if( + `³r_put_ãw_b™s +( +po +, 0x00 | +v +, +ù +-> +¿nge_b™s +)) + +1048 +ASN__ENCODE_FAILED +; + +1049 } ià( +ù +-> +¿nge_b™s + == 8) { + +1050 if( + `­”_put_®ign +( +po +) < 0) + +1051 +ASN__ENCODE_FAILED +; + +1052 if( + `³r_put_ãw_b™s +( +po +, 0x00 | +v +, +ù +-> +¿nge_b™s +)) + +1053 +ASN__ENCODE_FAILED +; + +1054 } ià( +ù +-> +¿nge_b™s + <= 16) { + +1056 if( + `­”_put_®ign +( +po +) < 0) + +1057 +ASN__ENCODE_FAILED +; + +1058 if( + `³r_put_ãw_b™s +( +po +, 0x0000 | +v +, + +1060 +ASN__ENCODE_FAILED +; + +1063 +št64_t + +v64 + = +v +; + +1064  +i +, +j +; + +1065  +max_¿nge_by‹s + = ( +ù +-> +¿nge_b™s + >> 3) + + +1066 ((( +ù +-> +¿nge_b™s + % 8) > 0) ? 1 : 0); + +1068  +i + = 1; ; i++) { + +1069  +uµ” + = 1 << +i +; + +1070 ià( +uµ” + >ð +max_¿nge_by‹s +) + +1074  +j + = ( +št64_t +) -1; j != 0; j--) { + +1075 +št64_t + +v® +; + +1076 +v® + = +v64 + >> ( +j + * 8); + +1077 ià( +v® + != 0) + +1082 ià( + `³r_put_ãw_b™s +( +po +, +j +, +i +)) + +1083 +ASN__ENCODE_FAILED +; + +1086 ià( + `­”_put_®ign +( +po +) < 0) + +1087 +ASN__ENCODE_FAILED +; + +1089  +i + = 0; i <ð +j +; i++) { + +1090 if( + `³r_put_ãw_b™s +( +po +, ( +v64 + >> (8 * ( +j + - +i +))) & 0xff, 8)) + +1091 +ASN__ENCODE_FAILED +; + +1094 + `ASN__ENCODED_OK +( +” +); + +1097 if( +ù + && ct-> +low”_bound +) { + +1098 + `ASN_DEBUG +("Adju¡†ow” boundØ%ld", +ù +-> +low”_bound +); + +1100 +ASN__ENCODE_FAILED +; + +1103  +buf + = +¡ +->buf, +’d + = st->buà+ st-> +size +; buf <ƒnd;) { + +1104 +ssize_t + +mayEncode + = + `­”_put_Ëngth +( +po +, -1, +’d + - +buf +); + +1105 if( +mayEncode + < 0) + +1106 +ASN__ENCODE_FAILED +; + +1107 if( + `³r_put_mªy_b™s +( +po +, +buf +, 8 * +mayEncode +)) + +1108 +ASN__ENCODE_FAILED +; + +1109 +buf + +ð +mayEncode +; + +1112 + `ASN__ENCODED_OK +( +” +); + +1113 + } +} + +1117  +štmax_t + + +1118 + $a¢__š‹g”_cÚv”t +(cÚ¡ +ušt8_t + * +b +, cÚ¡ ušt8_ˆ* +’d +) { + +1119 +uštmax_t + +v®ue +; + +1123 if((* +b + >> 7)) { + +1124 +v®ue + = ( +uštmax_t +)(-1); + +1126 +v®ue + = 0; + +1130 ; +b + < +’d +; b++) { + +1131 +v®ue + = (v®u<< 8è| * +b +; + +1134  +v®ue +; + +1135 + } +} + +1138 + $a¢_INTEGER2imax +(cÚ¡ +INTEGER_t + * +Œ +, +štmax_t + * +͌ +) { + +1139 +ušt8_t + * +b +, * +’d +; + +1140 +size_t + +size +; + +1143 if(! +Œ + || !Œ-> +buf + || ! +͌ +) { + +1144 +”ºo + = +EINVAL +; + +1149 +b + = +Œ +-> +buf +; + +1150 +size + = +Œ +->size; + +1151 +’d + = +b + + +size +; + +1153 if( +size + > ( +štmax_t +)) { + +1154 +ušt8_t + * +’d1 + = +’d + - 1; + +1162 ; +b + < +’d1 +; b++) { + +1163 * +b +) { + +1164 0x00: if(( +b +[1] & 0x80) == 0) ; ; + +1165 0xff: if(( +b +[1] & 0x80) != 0) ; ; + +1170 +size + = +’d + - +b +; + +1171 if( +size + > ( +štmax_t +)) { + +1173 +”ºo + = +ERANGE +; + +1179 if( +’d + =ð +b +) { + +1180 * +͌ + = 0; + +1184 * +͌ + = + `a¢__š‹g”_cÚv”t +( +b +, +’d +); + +1186 + } +} + +1190 + $a¢_INTEGER2umax +(cÚ¡ +INTEGER_t + * +Œ +, +uštmax_t + * +͌ +) { + +1191 +ušt8_t + * +b +, * +’d +; + +1192 +uštmax_t + +v®ue +; + +1193 +size_t + +size +; + +1195 if(! +Œ + || !Œ-> +buf + || ! +͌ +) { + +1196 +”ºo + = +EINVAL +; + +1200 +b + = +Œ +-> +buf +; + +1201 +size + = +Œ +->size; + +1202 +’d + = +b + + +size +; + +1205 ; +size + > ( +v®ue +); +b +++, size--) { + +1206 if(* +b +) { + +1208 +”ºo + = +ERANGE +; + +1214  +v®ue + = 0; +b + < +’d +; b++) + +1215 +v®ue + = (v®u<< 8è| * +b +; + +1217 * +͌ + = +v®ue +; + +1219 + } +} + +1222 + $a¢_umax2INTEGER +( +INTEGER_t + * +¡ +, +uštmax_t + +v®ue +) { + +1223 +ušt8_t + * +buf +; + +1224 +ušt8_t + * +’d +; + +1225 +ušt8_t + * +b +; + +1226  +shr +; + +1228 if( +v®ue + <ð((~( +uštmax_t +)0) >> 1)) { + +1229  + `a¢_imax2INTEGER +( +¡ +, +v®ue +); + +1232 +buf + = ( +ušt8_t + *) + `MALLOC +(1 + ( +v®ue +)); + +1233 if(! +buf +)  -1; + +1235 +’d + = +buf + + (( +v®ue +) + 1); + +1236 +buf +[0] = 0; + +1237  +b + = +buf + + 1, +shr + = (( +v®ue +è- 1è* 8; b < +’d +; shr -= 8, b++) + +1238 * +b + = ( +ušt8_t +)( +v®ue + >> +shr +); + +1240 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +1241 +¡ +-> +buf + = buf; + +1242 +¡ +-> +size + = 1 + ( +v®ue +); + +1245 + } +} + +1248 + $a¢_imax2INTEGER +( +INTEGER_t + * +¡ +, +štmax_t + +v®ue +) { + +1249 +ušt8_t + * +buf +, * +bp +; + +1250 +ušt8_t + * +p +; + +1251 +ušt8_t + * +p¡¬t +; + +1252 +ušt8_t + * +³nd1 +; + +1253  +l™ŽeEndŸn + = 1; + +1254  +add +; + +1256 if(! +¡ +) { + +1257 +”ºo + = +EINVAL +; + +1261 +buf + = ( +ušt8_t + *)(*) + `MALLOC +(( +v®ue +)); + +1262 if(! +buf +)  -1; + +1264 if(*(*)& +l™ŽeEndŸn +) { + +1265 +p¡¬t + = ( +ušt8_t + *)& +v®ue + + (value) - 1; + +1266 +³nd1 + = ( +ušt8_t + *)& +v®ue +; + +1267 +add + = -1; + +1269 +p¡¬t + = ( +ušt8_t + *)& +v®ue +; + +1270 +³nd1 + = +p¡¬t + + ( +v®ue +) - 1; + +1271 +add + = 1; + +1280  +p + = +p¡¬t +;… !ð +³nd1 +;… +ð +add +) { + +1281 * +p +) { + +1282 0x00: if((*( +p ++ +add +) & 0x80) == 0) + +1285 0xff: if((*( +p ++ +add +) & 0x80)) + +1292  +bp + = +buf +, +³nd1 + +ð +add +; +p + !=…end1;… +=‡dd) + +1293 * +bp +++ = * +p +; + +1295 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +1296 +¡ +-> +buf + = buf; + +1297 +¡ +-> +size + = +bp + - +buf +; + +1300 + } +} + +1303 + $a¢_INTEGER2lÚg +(cÚ¡ +INTEGER_t + * +Œ +, * +l +) { + +1304 +štmax_t + +v +; + +1305 if( + `a¢_INTEGER2imax +( +Œ +, & +v +) == 0) { + +1306 if( +v + < +LONG_MIN + || v > +LONG_MAX +) { + +1307 +”ºo + = +ERANGE +; + +1310 * +l + = +v +; + +1315 + } +} + +1318 + $a¢_INTEGER2ulÚg +(cÚ¡ +INTEGER_t + * +Œ +, * +l +) { + +1319 +uštmax_t + +v +; + +1320 if( + `a¢_INTEGER2umax +( +Œ +, & +v +) == 0) { + +1321 if( +v + > +ULONG_MAX +) { + +1322 +”ºo + = +ERANGE +; + +1325 * +l + = +v +; + +1330 + } +} + +1333 + $a¢_lÚg2INTEGER +( +INTEGER_t + * +¡ +,  +v®ue +) { + +1334  + `a¢_imax2INTEGER +( +¡ +, +v®ue +); + +1335 + } +} + +1338 + $a¢_ulÚg2INTEGER +( +INTEGER_t + * +¡ +,  +v®ue +) { + +1339  + `a¢_imax2INTEGER +( +¡ +, +v®ue +); + +1340 + } +} + +1344 + $a¢_ušt642INTEGER +( +INTEGER_t + * +¡ +, +ušt64_t + +v®ue +) { + +1345 +ušt8_t + * +buf +; + +1346 +ušt8_t + * +’d +; + +1347 +ušt8_t + * +b +; + +1348  +shr +; + +1350 if( +v®ue + <ð +INT64_MAX +) + +1351  + `a¢_št642INTEGER +( +¡ +, +v®ue +); + +1353 +buf + = ( +ušt8_t + *) + `MALLOC +(1 + ( +v®ue +)); + +1354 if(! +buf +)  -1; + +1356 +’d + = +buf + + (( +v®ue +) + 1); + +1357 +buf +[0] = 0; + +1358  +b + = +buf + + 1, +shr + = (( +v®ue +)-1)*8; b < +’d +; shr -= 8, b++) + +1359 * +b + = ( +ušt8_t +)( +v®ue + >> +shr +); + +1361 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +1362 +¡ +-> +buf + = buf; + +1363 +¡ +-> +size + = 1 + ( +v®ue +); + +1366 + } +} + +1369 + $a¢_št642INTEGER +( +INTEGER_t + * +¡ +, +št64_t + +v®ue +) { + +1370 +ušt8_t + * +buf +, * +bp +; + +1371 +ušt8_t + * +p +; + +1372 +ušt8_t + * +p¡¬t +; + +1373 +ušt8_t + * +³nd1 +; + +1374  +l™ŽeEndŸn + = 1; + +1375  +add +; + +1377 if(! +¡ +) { + +1378 +”ºo + = +EINVAL +; + +1382 +buf + = ( +ušt8_t + *) + `MALLOC +(( +v®ue +)); + +1383 if(! +buf +)  -1; + +1385 if(*(*)& +l™ŽeEndŸn +) { + +1386 +p¡¬t + = ( +ušt8_t + *)& +v®ue + + (value) - 1; + +1387 +³nd1 + = ( +ušt8_t + *)& +v®ue +; + +1388 +add + = -1; + +1390 +p¡¬t + = ( +ušt8_t + *)& +v®ue +; + +1391 +³nd1 + = +p¡¬t + + ( +v®ue +) - 1; + +1392 +add + = 1; + +1401  +p + = +p¡¬t +;… !ð +³nd1 +;… +ð +add +) { + +1402 * +p +) { + +1403 0x00: if((*( +p ++ +add +) & 0x80) == 0) + +1406 0xff: if((*( +p ++ +add +) & 0x80)) + +1413  +p¡¬t + = +p +, +bp + = +buf +, +³nd1 + +ð +add +;… !=…end1;… +=‡dd) + +1414 * +bp +++ = * +p +; + +1416 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +1417 +¡ +-> +buf + = buf; + +1418 +¡ +-> +size + = +bp + - +buf +; + +1421 + } +} + +1429 +a¢_¡¹ox_»suÉ_e + + +1430 + $a¢_¡¹oimax_lim +(cÚ¡ * +¡r +, cÚ¡ ** +’d +, +štmax_t + * +š +) { + +1431  +sign + = 1; + +1432 +štmax_t + +v®ue +; + +1434  + #ASN1_INTMAX_MAX + ((~( +uštmax_t +)0è>> 1) + + ) + +1435 cÚ¡ +štmax_t + +uµ”_bound¬y + = +ASN1_INTMAX_MAX + / 10; + +1436 +štmax_t + +Ï¡_dig™_max + = +ASN1_INTMAX_MAX + % 10; + +1437 #undeà +ASN1_INTMAX_MAX + + +1439 if( +¡r + >ð* +’d +è +ASN_STRTOX_ERROR_INVAL +; + +1441 * +¡r +) { + +1443 +Ï¡_dig™_max +++; + +1444 +sign + = -1; + +1447 +¡r +++; + +1448 if( +¡r + >ð* +’d +) { + +1449 * +’d + = +¡r +; + +1450  +ASN_STRTOX_EXPECT_MORE +; + +1454  +v®ue + = 0; +¡r + < (* +’d +); str++) { + +1455 * +¡r +) { + +1458  +d + = * +¡r + - '0'; + +1459 if( +v®ue + < +uµ”_bound¬y +) { + +1460 +v®ue + = v®u* 10 + +d +; + +1461 } if( +v®ue + =ð +uµ”_bound¬y +) { + +1462 if( +d + <ð +Ï¡_dig™_max +) { + +1463 if( +sign + > 0) { + +1464 +v®ue + = v®u* 10 + +d +; + +1466 +sign + = 1; + +1467 +v®ue + = -v®u* 10 - +d +; + +1470 * +’d + = +¡r +; + +1471  +ASN_STRTOX_ERROR_RANGE +; + +1474 * +’d + = +¡r +; + +1475  +ASN_STRTOX_ERROR_RANGE +; + +1480 * +’d + = +¡r +; + +1481 * +š + = +sign + * +v®ue +; + +1482  +ASN_STRTOX_EXTRA_DATA +; + +1486 * +’d + = +¡r +; + +1487 * +š + = +sign + * +v®ue +; + +1488  +ASN_STRTOX_OK +; + +1489 + } +} + +1497 +a¢_¡¹ox_»suÉ_e + + +1498 + $a¢_¡¹oumax_lim +(cÚ¡ * +¡r +, cÚ¡ ** +’d +, +uštmax_t + * +uš +) { + +1499 +uštmax_t + +v®ue +; + +1501  + #ASN1_UINTMAX_MAX + ((~( +uštmax_t +)0)) + + ) + +1502 cÚ¡ +uštmax_t + +uµ”_bound¬y + = +ASN1_UINTMAX_MAX + / 10; + +1503 +uštmax_t + +Ï¡_dig™_max + = +ASN1_UINTMAX_MAX + % 10; + +1504 #undeà +ASN1_UINTMAX_MAX + + +1506 if( +¡r + >ð* +’d +è +ASN_STRTOX_ERROR_INVAL +; + +1508 * +¡r +) { + +1510  +ASN_STRTOX_ERROR_INVAL +; + +1512 +¡r +++; + +1513 if( +¡r + >ð* +’d +) { + +1514 * +’d + = +¡r +; + +1515  +ASN_STRTOX_EXPECT_MORE +; + +1519  +v®ue + = 0; +¡r + < (* +’d +); str++) { + +1520 * +¡r +) { + +1523  +d + = * +¡r + - '0'; + +1524 if( +v®ue + < +uµ”_bound¬y +) { + +1525 +v®ue + = v®u* 10 + +d +; + +1526 } if( +v®ue + =ð +uµ”_bound¬y +) { + +1527 if( +d + <ð +Ï¡_dig™_max +) { + +1528 +v®ue + = v®u* 10 + +d +; + +1530 * +’d + = +¡r +; + +1531  +ASN_STRTOX_ERROR_RANGE +; + +1534 * +’d + = +¡r +; + +1535  +ASN_STRTOX_ERROR_RANGE +; + +1540 * +’d + = +¡r +; + +1541 * +uš + = +v®ue +; + +1542  +ASN_STRTOX_EXTRA_DATA +; + +1546 * +’d + = +¡r +; + +1547 * +uš + = +v®ue +; + +1548  +ASN_STRTOX_OK +; + +1549 + } +} + +1551 +a¢_¡¹ox_»suÉ_e + + +1552 + $a¢_¡¹Þ_lim +(cÚ¡ * +¡r +, cÚ¡ ** +’d +, * +Í +) { + +1553 +štmax_t + +v®ue +; + +1554  + `a¢_¡¹oimax_lim +( +¡r +, +’d +, & +v®ue +)) { + +1555  +ASN_STRTOX_ERROR_RANGE +: + +1556  +ASN_STRTOX_ERROR_RANGE +; + +1557  +ASN_STRTOX_ERROR_INVAL +: + +1558  +ASN_STRTOX_ERROR_INVAL +; + +1559  +ASN_STRTOX_EXPECT_MORE +: + +1560  +ASN_STRTOX_EXPECT_MORE +; + +1561  +ASN_STRTOX_OK +: + +1562 if( +v®ue + >ð +LONG_MIN + && v®u<ð +LONG_MAX +) { + +1563 * +Í + = +v®ue +; + +1564  +ASN_STRTOX_OK +; + +1566  +ASN_STRTOX_ERROR_RANGE +; + +1568  +ASN_STRTOX_EXTRA_DATA +: + +1569 if( +v®ue + >ð +LONG_MIN + && v®u<ð +LONG_MAX +) { + +1570 * +Í + = +v®ue +; + +1571  +ASN_STRTOX_EXTRA_DATA +; + +1573  +ASN_STRTOX_ERROR_RANGE +; + +1577 + `as£¹ +(!"Unreachable"); + +1578  +ASN_STRTOX_ERROR_INVAL +; + +1579 + } +} + +1581 +a¢_¡¹ox_»suÉ_e + + +1582 + $a¢_¡¹oul_lim +(cÚ¡ * +¡r +, cÚ¡ ** +’d +, * +uÍ +) { + +1583 +uštmax_t + +v®ue +; + +1584  + `a¢_¡¹oumax_lim +( +¡r +, +’d +, & +v®ue +)) { + +1585  +ASN_STRTOX_ERROR_RANGE +: + +1586  +ASN_STRTOX_ERROR_RANGE +; + +1587  +ASN_STRTOX_ERROR_INVAL +: + +1588  +ASN_STRTOX_ERROR_INVAL +; + +1589  +ASN_STRTOX_EXPECT_MORE +: + +1590  +ASN_STRTOX_EXPECT_MORE +; + +1591  +ASN_STRTOX_OK +: + +1592 if( +v®ue + <ð +ULONG_MAX +) { + +1593 * +uÍ + = +v®ue +; + +1594  +ASN_STRTOX_OK +; + +1596  +ASN_STRTOX_ERROR_RANGE +; + +1598  +ASN_STRTOX_EXTRA_DATA +: + +1599 if( +v®ue + <ð +ULONG_MAX +) { + +1600 * +uÍ + = +v®ue +; + +1601  +ASN_STRTOX_EXTRA_DATA +; + +1603  +ASN_STRTOX_ERROR_RANGE +; + +1607 + `as£¹ +(!"Unreachable"); + +1608  +ASN_STRTOX_ERROR_INVAL +; + +1609 + } +} + +1612 + $INTEGER_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +1613 cÚ¡ * +b±r +) { + +1614 cÚ¡ +INTEGER_t + * +a + = +­Œ +; + +1615 cÚ¡ +INTEGER_t + * +b + = +b±r +; + +1617 () +td +; + +1619 if( +a + && +b +) { + +1620 if( +a +-> +size + && +b +->size) { + +1621  +sign_a + = ( +a +-> +buf +[0] & 0x80) ? -1 : 1; + +1622  +sign_b + = ( +b +-> +buf +[0] & 0x80) ? -1 : 1; + +1624 if( +sign_a + < +sign_b +)  -1; + +1625 if( +sign_a + > +sign_b +)  1; + +1628 if( +a +-> +size + < +b +->size) { + +1629  -1 * +sign_a +; + +1630 } if( +a +-> +size + > +b +->size) { + +1631  1 * +sign_b +; + +1634  +sign_a + * + `memcmp +( +a +-> +buf +, +b +->buf,‡-> +size +); + +1635 } if( +a +-> +size +) { + +1636  +sign + = ( +a +-> +buf +[0] & 0x80) ? -1 : 1; + +1637  (1è* +sign +; + +1638 } if( +b +-> +size +) { + +1639  +sign + = ( +a +-> +buf +[0] & 0x80) ? -1 : 1; + +1640  (-1è* +sign +; + +1644 } if(! +a + && ! +b +) { + +1646 } if(! +a +) { + +1652 + } +} + +1654 +a¢_¿ndom_fžl_»suÉ_t + + +1655 + $INTEGER_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1656 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1657 +size_t + +max_Ëngth +) { + +1658 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +1659 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +1660 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +1661 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +1662 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +1663 +INTEGER_t + * +¡ + = * +¥Œ +; + +1664 cÚ¡ +a¢_INTEGER_’um_m­_t + * +em­ +; + +1665 +size_t + +em­_Ën +; + +1666 +štmax_t + +v®ue +; + +1667  +fšd_šside_m­ +; + +1669 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +1671 if( +¡ + =ð +NULL +) { + +1672 +¡ + = ( +INTEGER_t + *) + `CALLOC +(1, (*st)); + +1673 if( +¡ + =ð +NULL +) { + +1674  +»suÉ_çžed +; + +1678 if( +¥ecs +) { + +1679 +em­ + = +¥ecs +-> +v®ue2’um +; + +1680 +em­_Ën + = +¥ecs +-> +m­_couÁ +; + +1681 if( +¥ecs +-> +¡riù_’um”©iÚ +) { + +1682 +fšd_šside_m­ + = +em­_Ën + > 0; + +1684 +fšd_šside_m­ + = +em­_Ën + ? + `a¢_¿ndom_b‘w“n +(0, 1) : 0; + +1687 +em­ + = 0; + +1688 +em­_Ën + = 0; + +1689 +fšd_šside_m­ + = 0; + +1692 if( +fšd_šside_m­ +) { + +1693 + `as£¹ +( +em­_Ën + > 0); + +1694 +v®ue + = +em­ +[ + `a¢_¿ndom_b‘w“n +(0, +em­_Ën + - 1)]. +Çt_v®ue +; + +1696 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +ù +; + +1698 cÚ¡  +v¬ŸÁs +[] = { + +1704 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +1705 + `as£¹ +( +v¬ŸÁs +[18] == 0); + +1706 +v®ue + = +v¬ŸÁs +[ + `a¢_¿ndom_b‘w“n +( + +1707 18, ( +v¬ŸÁs +) / (variants[0]) - 1)]; + +1709 +v®ue + = +v¬ŸÁs +[ + `a¢_¿ndom_b‘w“n +( + +1710 0, ( +v¬ŸÁs +) / (variants[0]) - 1)]; + +1713 if(! +cÚ¡¿šts +ècÚ¡¿št ð& +td +-> +’codšg_cÚ¡¿šts +; + +1714 +ù + = +cÚ¡¿šts + ? cÚ¡¿šts-> +³r_cÚ¡¿šts + : 0; + +1715 if( +ù + && (ù-> +v®ue +. +æags + & +APC_CONSTRAINED +)) { + +1716 if( +v®ue + < +ù +->v®ue. +low”_bound + || v®u> ct->v®ue. +uµ”_bound +) { + +1717 +v®ue + = + `a¢_¿ndom_b‘w“n +( +ù +->v®ue. +low”_bound +, + +1718 +ù +-> +v®ue +. +uµ”_bound +); + +1723 if( + `a¢_imax2INTEGER +( +¡ +, +v®ue +)) { + +1724 if( +¡ + =ð* +¥Œ +) { + +1725 + `ASN_STRUCT_RESET +(* +td +, +¡ +); + +1727 + `ASN_STRUCT_FREE +(* +td +, +¡ +); + +1729  +»suÉ_çžed +; + +1731 * +¥Œ + = +¡ +; + +1732 +»suÉ_ok +. +Ëngth + = +¡ +-> +size +; + +1733  +»suÉ_ok +; + +1735 + } +} + + @IndexToRFSP.c + +8  + ~"IndexToRFSP.h +" + +11 + $IndexToRFSP_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 256)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_IndexToRFSP_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 1, 256 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IndexToRFSP_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IndexToRFSP + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_IndexToRFSP_gs_1 +, + +52 ( +a¢_DEF_IndexToRFSP_gs_1 +) + +53 /( +a¢_DEF_IndexToRFSP_gs_1 +[0]), + +54 +a¢_DEF_IndexToRFSP_gs_1 +, + +55 ( +a¢_DEF_IndexToRFSP_gs_1 +) + +56 /( +a¢_DEF_IndexToRFSP_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_IndexToRFSP_cÚ¡r_1 +, +IndexToRFSP_cÚ¡¿št + }, + + @Interface-MessageID.c + +8  + ~"IÁ”çû-Mes§geID.h +" + +14  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_mes§geTy³_cÚ¡r_3 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 2, 2, 0, 2 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_mes§geTy³_v®ue2’um_3 +[] = { + +25 cÚ¡  + ga¢_MAP_mes§geTy³_’um2v®ue_3 +[] = { + +31 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_mes§geTy³_¥ecs_3 + = { + +32 +a¢_MAP_mes§geTy³_v®ue2’um_3 +, + +33 +a¢_MAP_mes§geTy³_’um2v®ue_3 +, + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_mes§geTy³_gs_3 +[] = { + +41 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +42 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_mes§geTy³_3 + = { + +48 & +a¢_OP_N©iveEnum”©ed +, + +49 +a¢_DEF_mes§geTy³_gs_3 +, + +50 ( +a¢_DEF_mes§geTy³_gs_3 +) + +51 /( +a¢_DEF_mes§geTy³_gs_3 +[0]) - 1, + +52 +a¢_DEF_mes§geTy³_gs_3 +, + +53 ( +a¢_DEF_mes§geTy³_gs_3 +) + +54 /( +a¢_DEF_mes§geTy³_gs_3 +[0]), + +55 { 0, & +a¢_PER_ty³_mes§geTy³_cÚ¡r_3 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +57 & +a¢_SPC_mes§geTy³_¥ecs_3 + + +60  +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çû_Mes§geID_1 +[] = { + +61 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çû_Mes§geID +, +š‹rçûProûdu»ID +), + +62 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +64 & +a¢_DEF_N©iveIÁeg” +, + +70 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çû_Mes§geID +, +mes§geTy³ +), + +71 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +73 & +a¢_DEF_mes§geTy³_3 +, + +80 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çû_Mes§geID_gs_1 +[] = { + +81 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +83 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çû_Mes§geID_g2–_1 +[] = { + +84 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +85 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +87  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çû_Mes§geID_¥ecs_1 + = { + +88 ( +IÁ”çû_Mes§geID +), + +89 +off£tof +( +IÁ”çû_Mes§geID +, +_a¢_ùx +), + +90 +a¢_MAP_IÁ”çû_Mes§geID_g2–_1 +, + +95 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çû_Mes§geID + = { + +98 & +a¢_OP_SEQUENCE +, + +99 +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +, + +100 ( +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +) + +101 /( +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +[0]), + +102 +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +, + +103 ( +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +) + +104 /( +a¢_DEF_IÁ”çû_Mes§geID_gs_1 +[0]), + +105 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +106 +a¢_MBR_IÁ”çû_Mes§geID_1 +, + +108 & +a¢_SPC_IÁ”çû_Mes§geID_¥ecs_1 + + + @InterfaceID-E1.c + +8  + ~"IÁ”çûID-E1.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_E1_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_E1 +, +glob®GNB_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_Glob®GNB_ID +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_E1 +, +gNB_CU_UP_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_GNB_CU_UP_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_E1_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_E1_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_E1_¥ecs_1 + = { + +38 ( +IÁ”çûID_E1 +), + +39 +off£tof +( +IÁ”çûID_E1 +, +_a¢_ùx +), + +40 +a¢_MAP_IÁ”çûID_E1_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_E1 + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_IÁ”çûID_E1_gs_1 +, + +50 ( +a¢_DEF_IÁ”çûID_E1_gs_1 +) + +51 /( +a¢_DEF_IÁ”çûID_E1_gs_1 +[0]), + +52 +a¢_DEF_IÁ”çûID_E1_gs_1 +, + +53 ( +a¢_DEF_IÁ”çûID_E1_gs_1 +) + +54 /( +a¢_DEF_IÁ”çûID_E1_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_IÁ”çûID_E1_1 +, + +58 & +a¢_SPC_IÁ”çûID_E1_¥ecs_1 + + + @InterfaceID-F1.c + +8  + ~"IÁ”çûID-F1.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_F1_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_F1 +, +glob®GNB_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_Glob®GNB_ID +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_F1 +, +gNB_DU_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_GNB_DU_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_F1_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_F1_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_F1_¥ecs_1 + = { + +38 ( +IÁ”çûID_F1 +), + +39 +off£tof +( +IÁ”çûID_F1 +, +_a¢_ùx +), + +40 +a¢_MAP_IÁ”çûID_F1_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_F1 + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_IÁ”çûID_F1_gs_1 +, + +50 ( +a¢_DEF_IÁ”çûID_F1_gs_1 +) + +51 /( +a¢_DEF_IÁ”çûID_F1_gs_1 +[0]), + +52 +a¢_DEF_IÁ”çûID_F1_gs_1 +, + +53 ( +a¢_DEF_IÁ”çûID_F1_gs_1 +) + +54 /( +a¢_DEF_IÁ”çûID_F1_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_IÁ”çûID_F1_1 +, + +58 & +a¢_SPC_IÁ”çûID_F1_¥ecs_1 + + + @InterfaceID-NG.c + +8  + ~"IÁ”çûID-NG.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_NG_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_NG +, +guami +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GUAMI +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_NG_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_NG_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_NG_¥ecs_1 + = { + +28 ( +IÁ”çûID_NG +), + +29 +off£tof +( +IÁ”çûID_NG +, +_a¢_ùx +), + +30 +a¢_MAP_IÁ”çûID_NG_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_NG + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_IÁ”çûID_NG_gs_1 +, + +40 ( +a¢_DEF_IÁ”çûID_NG_gs_1 +) + +41 /( +a¢_DEF_IÁ”çûID_NG_gs_1 +[0]), + +42 +a¢_DEF_IÁ”çûID_NG_gs_1 +, + +43 ( +a¢_DEF_IÁ”çûID_NG_gs_1 +) + +44 /( +a¢_DEF_IÁ”çûID_NG_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_IÁ”çûID_NG_1 +, + +48 & +a¢_SPC_IÁ”çûID_NG_¥ecs_1 + + + @InterfaceID-S1.c + +8  + ~"IÁ”çûID-S1.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_S1_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_S1 +, +gUMMEI +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GUMMEI +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_S1_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_S1_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_S1_¥ecs_1 + = { + +28 ( +IÁ”çûID_S1 +), + +29 +off£tof +( +IÁ”çûID_S1 +, +_a¢_ùx +), + +30 +a¢_MAP_IÁ”çûID_S1_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_S1 + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_IÁ”çûID_S1_gs_1 +, + +40 ( +a¢_DEF_IÁ”çûID_S1_gs_1 +) + +41 /( +a¢_DEF_IÁ”çûID_S1_gs_1 +[0]), + +42 +a¢_DEF_IÁ”çûID_S1_gs_1 +, + +43 ( +a¢_DEF_IÁ”çûID_S1_gs_1 +) + +44 /( +a¢_DEF_IÁ”çûID_S1_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_IÁ”çûID_S1_1 +, + +48 & +a¢_SPC_IÁ”çûID_S1_¥ecs_1 + + + @InterfaceID-W1.c + +8  + ~"IÁ”çûID-W1.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_W1_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_W1 +, +glob®_ng_eNB_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_Glob®NgENB_ID +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_W1 +, +ng_eNB_DU_ID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_NGENB_DU_ID +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_W1_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_W1_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_W1_¥ecs_1 + = { + +38 ( +IÁ”çûID_W1 +), + +39 +off£tof +( +IÁ”çûID_W1 +, +_a¢_ùx +), + +40 +a¢_MAP_IÁ”çûID_W1_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_W1 + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_IÁ”çûID_W1_gs_1 +, + +50 ( +a¢_DEF_IÁ”çûID_W1_gs_1 +) + +51 /( +a¢_DEF_IÁ”çûID_W1_gs_1 +[0]), + +52 +a¢_DEF_IÁ”çûID_W1_gs_1 +, + +53 ( +a¢_DEF_IÁ”çûID_W1_gs_1 +) + +54 /( +a¢_DEF_IÁ”çûID_W1_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_IÁ”çûID_W1_1 +, + +58 & +a¢_SPC_IÁ”çûID_W1_¥ecs_1 + + + @InterfaceID-X2.c + +8  + ~"IÁ”çûID-X2.h +" + +10  + ~"Glob®ENB-ID.h +" + +11  + ~"Glob®’GNB-ID.h +" + +12  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_nodeTy³_cÚ¡r_2 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17  +a¢_TYPE_memb”_t + + ga¢_MBR_nodeTy³_2 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûID_X2__nodeTy³ +, +choiû +. +glob®_eNB_ID +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_Glob®ENB_ID +, + +27 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûID_X2__nodeTy³ +, +choiû +. +glob®_’_gNB_ID +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_Glob®’GNB_ID +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_nodeTy³_g2–_2 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_nodeTy³_¥ecs_2 + = { + +42 ( +IÁ”çûID_X2__nodeTy³ +), + +43 +off£tof +( +IÁ”çûID_X2__nodeTy³ +, +_a¢_ùx +), + +44 +off£tof +( +IÁ”çûID_X2__nodeTy³ +, +´e£Á +), + +45 ((( +IÁ”çûID_X2__nodeTy³ + *)0)-> +´e£Á +), + +46 +a¢_MAP_nodeTy³_g2–_2 +, + +52 +a¢_TYPE_desütÜ_t + + ga¢_DEF_nodeTy³_2 + = { + +55 & +a¢_OP_CHOICE +, + +60 { 0, & +a¢_PER_ty³_nodeTy³_cÚ¡r_2 +, +CHOICE_cÚ¡¿št + }, + +61 +a¢_MBR_nodeTy³_2 +, + +63 & +a¢_SPC_nodeTy³_¥ecs_2 + + +66 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_X2_1 +[] = { + +67 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_X2 +, +nodeTy³ +), + +68 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +70 & +a¢_DEF_nodeTy³_2 +, + +77 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_X2_gs_1 +[] = { + +78 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +80 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_X2_g2–_1 +[] = { + +81 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +83 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_X2_¥ecs_1 + = { + +84 ( +IÁ”çûID_X2 +), + +85 +off£tof +( +IÁ”çûID_X2 +, +_a¢_ùx +), + +86 +a¢_MAP_IÁ”çûID_X2_g2–_1 +, + +91 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_X2 + = { + +94 & +a¢_OP_SEQUENCE +, + +95 +a¢_DEF_IÁ”çûID_X2_gs_1 +, + +96 ( +a¢_DEF_IÁ”çûID_X2_gs_1 +) + +97 /( +a¢_DEF_IÁ”çûID_X2_gs_1 +[0]), + +98 +a¢_DEF_IÁ”çûID_X2_gs_1 +, + +99 ( +a¢_DEF_IÁ”çûID_X2_gs_1 +) + +100 /( +a¢_DEF_IÁ”çûID_X2_gs_1 +[0]), + +101 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +102 +a¢_MBR_IÁ”çûID_X2_1 +, + +104 & +a¢_SPC_IÁ”çûID_X2_¥ecs_1 + + + @InterfaceID-Xn.c + +8  + ~"IÁ”çûID-Xn.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûID_Xn_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +IÁ”çûID_Xn +, +glob®_NG_RAN_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_Glob®NGRANNodeID +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûID_Xn_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûID_Xn_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_IÁ”çûID_Xn_¥ecs_1 + = { + +28 ( +IÁ”çûID_Xn +), + +29 +off£tof +( +IÁ”çûID_Xn +, +_a¢_ùx +), + +30 +a¢_MAP_IÁ”çûID_Xn_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûID_Xn + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_IÁ”çûID_Xn_gs_1 +, + +40 ( +a¢_DEF_IÁ”çûID_Xn_gs_1 +) + +41 /( +a¢_DEF_IÁ”çûID_Xn_gs_1 +[0]), + +42 +a¢_DEF_IÁ”çûID_Xn_gs_1 +, + +43 ( +a¢_DEF_IÁ”çûID_Xn_gs_1 +) + +44 /( +a¢_DEF_IÁ”çûID_Xn_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_IÁ”çûID_Xn_1 +, + +48 & +a¢_SPC_IÁ”çûID_Xn_¥ecs_1 + + + @InterfaceIdentifier.c + +8  + ~"IÁ”çûId’tif›r.h +" + +10  + ~"IÁ”çûID-NG.h +" + +11  + ~"IÁ”çûID-Xn.h +" + +12  + ~"IÁ”çûID-F1.h +" + +13  + ~"IÁ”çûID-E1.h +" + +14  + ~"IÁ”çûID-S1.h +" + +15  + ~"IÁ”çûID-X2.h +" + +16  + ~"IÁ”çûID-W1.h +" + +17  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_IÁ”çûId’tif›r_cÚ¡r_1 + + gCC_NOTUSED + = { + +18 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 6 } , + +19 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +22  +a¢_TYPE_memb”_t + + ga¢_MBR_IÁ”çûId’tif›r_1 +[] = { + +23 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +nG +), + +24 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +26 & +a¢_DEF_IÁ”çûID_NG +, + +32 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +xN +), + +33 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +35 & +a¢_DEF_IÁ”çûID_Xn +, + +41 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +f1 +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +44 & +a¢_DEF_IÁ”çûID_F1 +, + +50 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +e1 +), + +51 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +53 & +a¢_DEF_IÁ”çûID_E1 +, + +59 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +s1 +), + +60 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +62 & +a¢_DEF_IÁ”çûID_S1 +, + +68 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +x2 +), + +69 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +71 & +a¢_DEF_IÁ”çûID_X2 +, + +77 { +ATF_POINTER +, 0, +off£tof +( +IÁ”çûId’tif›r +, +choiû +. +w1 +), + +78 ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), + +80 & +a¢_DEF_IÁ”çûID_W1 +, + +87 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_IÁ”çûId’tif›r_g2–_1 +[] = { + +88 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +89 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +90 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +91 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +92 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +93 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 }, + +94 { ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), 6, 0, 0 } + +96  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_IÁ”çûId’tif›r_¥ecs_1 + = { + +97 ( +IÁ”çûId’tif›r +), + +98 +off£tof +( +IÁ”çûId’tif›r +, +_a¢_ùx +), + +99 +off£tof +( +IÁ”çûId’tif›r +, +´e£Á +), + +100 ((( +IÁ”çûId’tif›r + *)0)-> +´e£Á +), + +101 +a¢_MAP_IÁ”çûId’tif›r_g2–_1 +, + +106 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûId’tif›r + = { + +109 & +a¢_OP_CHOICE +, + +114 { 0, & +a¢_PER_ty³_IÁ”çûId’tif›r_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +115 +a¢_MBR_IÁ”çûId’tif›r_1 +, + +117 & +a¢_SPC_IÁ”çûId’tif›r_¥ecs_1 + + + @InterfaceType.c + +8  + ~"IÁ”çûTy³.h +" + +14  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_IÁ”çûTy³_cÚ¡r_1 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 6 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_IÁ”çûTy³_v®ue2’um_1 +[] = { + +29 cÚ¡  + ga¢_MAP_IÁ”çûTy³_’um2v®ue_1 +[] = { + +39 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_IÁ”çûTy³_¥ecs_1 + = { + +40 +a¢_MAP_IÁ”çûTy³_v®ue2’um_1 +, + +41 +a¢_MAP_IÁ”çûTy³_’um2v®ue_1 +, + +48 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_IÁ”çûTy³_gs_1 +[] = { + +49 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_IÁ”çûTy³ + = { + +54 & +a¢_OP_N©iveEnum”©ed +, + +55 +a¢_DEF_IÁ”çûTy³_gs_1 +, + +56 ( +a¢_DEF_IÁ”çûTy³_gs_1 +) + +57 /( +a¢_DEF_IÁ”çûTy³_gs_1 +[0]), + +58 +a¢_DEF_IÁ”çûTy³_gs_1 +, + +59 ( +a¢_DEF_IÁ”çûTy³_gs_1 +) + +60 /( +a¢_DEF_IÁ”çûTy³_gs_1 +[0]), + +61 { 0, & +a¢_PER_ty³_IÁ”çûTy³_cÚ¡r_1 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +63 & +a¢_SPC_IÁ”çûTy³_¥ecs_1 + + + @LabelInfoItem.c + +8  + ~"Lab–InfoI‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Lab–InfoI‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Lab–InfoI‹m +, +m—sLab– +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_M—su»m’tLab– +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Lab–InfoI‹m_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Lab–InfoI‹m_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Lab–InfoI‹m_¥ecs_1 + = { + +28 ( +Lab–InfoI‹m +), + +29 +off£tof +( +Lab–InfoI‹m +, +_a¢_ùx +), + +30 +a¢_MAP_Lab–InfoI‹m_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Lab–InfoI‹m + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_Lab–InfoI‹m_gs_1 +, + +40 ( +a¢_DEF_Lab–InfoI‹m_gs_1 +) + +41 /( +a¢_DEF_Lab–InfoI‹m_gs_1 +[0]), + +42 +a¢_DEF_Lab–InfoI‹m_gs_1 +, + +43 ( +a¢_DEF_Lab–InfoI‹m_gs_1 +) + +44 /( +a¢_DEF_Lab–InfoI‹m_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_Lab–InfoI‹m_1 +, + +48 & +a¢_SPC_Lab–InfoI‹m_¥ecs_1 + + + @LabelInfoList.c + +8  + ~"Lab–InfoLi¡.h +" + +10  + ~"Lab–InfoI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Lab–InfoLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 31, -1, 1, 2147483647 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_Lab–InfoLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_Lab–InfoI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Lab–InfoLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_Lab–InfoLi¡_¥ecs_1 + = { + +31 ( +Lab–InfoLi¡ +), + +32 +off£tof +( +Lab–InfoLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Lab–InfoLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_Lab–InfoLi¡_gs_1 +, + +40 ( +a¢_DEF_Lab–InfoLi¡_gs_1 +) + +41 /( +a¢_DEF_Lab–InfoLi¡_gs_1 +[0]), + +42 +a¢_DEF_Lab–InfoLi¡_gs_1 +, + +43 ( +a¢_DEF_Lab–InfoLi¡_gs_1 +) + +44 /( +a¢_DEF_Lab–InfoLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_Lab–InfoLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_Lab–InfoLi¡_1 +, + +48 & +a¢_SPC_Lab–InfoLi¡_¥ecs_1 + + + @MME-Code.c + +8  + ~"MME-Code.h +" + +11 + $MME_Code_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 1)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_MME_Code_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 1, 1 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_MME_Code_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_MME_Code + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_MME_Code_gs_1 +, + +53 ( +a¢_DEF_MME_Code_gs_1 +) + +54 /( +a¢_DEF_MME_Code_gs_1 +[0]), + +55 +a¢_DEF_MME_Code_gs_1 +, + +56 ( +a¢_DEF_MME_Code_gs_1 +) + +57 /( +a¢_DEF_MME_Code_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_MME_Code_cÚ¡r_1 +, +MME_Code_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @MME-Group-ID.c + +8  + ~"MME-Group-ID.h +" + +11 + $MME_Group_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 2)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_MME_Group_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 2, 2 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_MME_Group_ID_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_MME_Group_ID + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_MME_Group_ID_gs_1 +, + +53 ( +a¢_DEF_MME_Group_ID_gs_1 +) + +54 /( +a¢_DEF_MME_Group_ID_gs_1 +[0]), + +55 +a¢_DEF_MME_Group_ID_gs_1 +, + +56 ( +a¢_DEF_MME_Group_ID_gs_1 +) + +57 /( +a¢_DEF_MME_Group_ID_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_MME_Group_ID_cÚ¡r_1 +, +MME_Group_ID_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @MME-UE-S1AP-ID.c + +8  + ~"MME-UE-S1AP-ID.h +" + +11 + $MME_UE_S1AP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +30 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_MME_UE_S1AP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +31 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +32 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_MME_UE_S1AP_ID_¥ecs_1 + = { + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_MME_UE_S1AP_ID_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +43 +a¢_TYPE_desütÜ_t + + ga¢_DEF_MME_UE_S1AP_ID + = { + +46 & +a¢_OP_N©iveIÁeg” +, + +47 +a¢_DEF_MME_UE_S1AP_ID_gs_1 +, + +48 ( +a¢_DEF_MME_UE_S1AP_ID_gs_1 +) + +49 /( +a¢_DEF_MME_UE_S1AP_ID_gs_1 +[0]), + +50 +a¢_DEF_MME_UE_S1AP_ID_gs_1 +, + +51 ( +a¢_DEF_MME_UE_S1AP_ID_gs_1 +) + +52 /( +a¢_DEF_MME_UE_S1AP_ID_gs_1 +[0]), + +53 { 0, & +a¢_PER_ty³_MME_UE_S1AP_ID_cÚ¡r_1 +, +MME_UE_S1AP_ID_cÚ¡¿št + }, + +55 & +a¢_SPC_MME_UE_S1AP_ID_¥ecs_1 + + + @MatchingCondItem.c + +8  + ~"M©chšgCÚdI‹m.h +" + +10  + ~"M—su»m’tLab–.h +" + +11  + ~"Te¡CÚdInfo.h +" + +12 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M©chšgCÚdI‹m_cÚ¡r_1 + + gCC_NOTUSED + = { + +13 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +14 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +17 +a¢_TYPE_memb”_t + + ga¢_MBR_M©chšgCÚdI‹m_1 +[] = { + +18 { +ATF_POINTER +, 0, +off£tof +( +M©chšgCÚdI‹m +, +choiû +. +m—sLab– +), + +19 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +21 & +a¢_DEF_M—su»m’tLab– +, + +27 { +ATF_POINTER +, 0, +off£tof +( +M©chšgCÚdI‹m +, +choiû +. +‹¡CÚdInfo +), + +28 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +30 & +a¢_DEF_Te¡CÚdInfo +, + +37 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M©chšgCÚdI‹m_g2–_1 +[] = { + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +39 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +41 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_M©chšgCÚdI‹m_¥ecs_1 + = { + +42 ( +M©chšgCÚdI‹m +), + +43 +off£tof +( +M©chšgCÚdI‹m +, +_a¢_ùx +), + +44 +off£tof +( +M©chšgCÚdI‹m +, +´e£Á +), + +45 ((( +M©chšgCÚdI‹m + *)0)-> +´e£Á +), + +46 +a¢_MAP_M©chšgCÚdI‹m_g2–_1 +, + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M©chšgCÚdI‹m + = { + +54 & +a¢_OP_CHOICE +, + +59 { 0, & +a¢_PER_ty³_M©chšgCÚdI‹m_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +60 +a¢_MBR_M©chšgCÚdI‹m_1 +, + +62 & +a¢_SPC_M©chšgCÚdI‹m_¥ecs_1 + + + @MatchingCondList.c + +8  + ~"M©chšgCÚdLi¡.h +" + +10  + ~"M©chšgCÚdI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M©chšgCÚdLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 15, 15, 1, 32768 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M©chšgCÚdLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +20 & +a¢_DEF_M©chšgCÚdI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M©chšgCÚdLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M©chšgCÚdLi¡_¥ecs_1 + = { + +31 ( +M©chšgCÚdLi¡ +), + +32 +off£tof +( +M©chšgCÚdLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M©chšgCÚdLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M©chšgCÚdLi¡_gs_1 +, + +40 ( +a¢_DEF_M©chšgCÚdLi¡_gs_1 +) + +41 /( +a¢_DEF_M©chšgCÚdLi¡_gs_1 +[0]), + +42 +a¢_DEF_M©chšgCÚdLi¡_gs_1 +, + +43 ( +a¢_DEF_M©chšgCÚdLi¡_gs_1 +) + +44 /( +a¢_DEF_M©chšgCÚdLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M©chšgCÚdLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M©chšgCÚdLi¡_1 +, + +48 & +a¢_SPC_M©chšgCÚdLi¡_¥ecs_1 + + + @MatchingUEidItem.c + +8  + ~"M©chšgUEidI‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_M©chšgUEidI‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +M©chšgUEidI‹m +, +ueID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_UEID +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M©chšgUEidI‹m_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M©chšgUEidI‹m_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M©chšgUEidI‹m_¥ecs_1 + = { + +28 ( +M©chšgUEidI‹m +), + +29 +off£tof +( +M©chšgUEidI‹m +, +_a¢_ùx +), + +30 +a¢_MAP_M©chšgUEidI‹m_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M©chšgUEidI‹m + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_M©chšgUEidI‹m_gs_1 +, + +40 ( +a¢_DEF_M©chšgUEidI‹m_gs_1 +) + +41 /( +a¢_DEF_M©chšgUEidI‹m_gs_1 +[0]), + +42 +a¢_DEF_M©chšgUEidI‹m_gs_1 +, + +43 ( +a¢_DEF_M©chšgUEidI‹m_gs_1 +) + +44 /( +a¢_DEF_M©chšgUEidI‹m_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_M©chšgUEidI‹m_1 +, + +48 & +a¢_SPC_M©chšgUEidI‹m_¥ecs_1 + + + @MatchingUEidList.c + +8  + ~"M©chšgUEidLi¡.h +" + +10  + ~"M©chšgUEidI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M©chšgUEidLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M©chšgUEidLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M©chšgUEidI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M©chšgUEidLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M©chšgUEidLi¡_¥ecs_1 + = { + +31 ( +M©chšgUEidLi¡ +), + +32 +off£tof +( +M©chšgUEidLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M©chšgUEidLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M©chšgUEidLi¡_gs_1 +, + +40 ( +a¢_DEF_M©chšgUEidLi¡_gs_1 +) + +41 /( +a¢_DEF_M©chšgUEidLi¡_gs_1 +[0]), + +42 +a¢_DEF_M©chšgUEidLi¡_gs_1 +, + +43 ( +a¢_DEF_M©chšgUEidLi¡_gs_1 +) + +44 /( +a¢_DEF_M©chšgUEidLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M©chšgUEidLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M©chšgUEidLi¡_1 +, + +48 & +a¢_SPC_M©chšgUEidLi¡_¥ecs_1 + + + @MeasurementCondItem.c + +8  + ~"M—su»m’tCÚdI‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tCÚdI‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tCÚdI‹m +, +m—sTy³ +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_M—su»m’tTy³ +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tCÚdI‹m +, +m©chšgCÚd +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_M©chšgCÚdLi¡ +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tCÚdI‹m_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tCÚdI‹m_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tCÚdI‹m_¥ecs_1 + = { + +38 ( +M—su»m’tCÚdI‹m +), + +39 +off£tof +( +M—su»m’tCÚdI‹m +, +_a¢_ùx +), + +40 +a¢_MAP_M—su»m’tCÚdI‹m_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tCÚdI‹m + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +, + +50 ( +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +) + +51 /( +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +[0]), + +52 +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +, + +53 ( +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +) + +54 /( +a¢_DEF_M—su»m’tCÚdI‹m_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_M—su»m’tCÚdI‹m_1 +, + +58 & +a¢_SPC_M—su»m’tCÚdI‹m_¥ecs_1 + + + @MeasurementCondList.c + +8  + ~"M—su»m’tCÚdLi¡.h +" + +10  + ~"M—su»m’tCÚdI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tCÚdLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tCÚdLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M—su»m’tCÚdI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tCÚdLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tCÚdLi¡_¥ecs_1 + = { + +31 ( +M—su»m’tCÚdLi¡ +), + +32 +off£tof +( +M—su»m’tCÚdLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tCÚdLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tCÚdLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tCÚdLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tCÚdLi¡_1 +, + +48 & +a¢_SPC_M—su»m’tCÚdLi¡_¥ecs_1 + + + @MeasurementCondUEidItem.c + +8  + ~"M—su»m’tCÚdUEidI‹m.h +" + +10  + ~"M©chšgUEidLi¡.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tCÚdUEidI‹m_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tCÚdUEidI‹m +, +m—sTy³ +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_M—su»m’tTy³ +, + +21 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tCÚdUEidI‹m +, +m©chšgCÚd +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_M©chšgCÚdLi¡ +, + +30 { +ATF_POINTER +, 1, +off£tof +( +M—su»m’tCÚdUEidI‹m +, +m©chšgUEidLi¡ +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_M©chšgUEidLi¡ +, + +40 cÚ¡  + ga¢_MAP_M—su»m’tCÚdUEidI‹m_oms_1 +[] = { 2 }; + +41 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +[] = { + +42 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +44 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tCÚdUEidI‹m_g2–_1 +[] = { + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +47 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +49 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tCÚdUEidI‹m_¥ecs_1 + = { + +50 ( +M—su»m’tCÚdUEidI‹m +), + +51 +off£tof +( +M—su»m’tCÚdUEidI‹m +, +_a¢_ùx +), + +52 +a¢_MAP_M—su»m’tCÚdUEidI‹m_g2–_1 +, + +54 +a¢_MAP_M—su»m’tCÚdUEidI‹m_oms_1 +, + +58 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tCÚdUEidI‹m + = { + +61 & +a¢_OP_SEQUENCE +, + +62 +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +, + +63 ( +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +) + +64 /( +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +[0]), + +65 +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +, + +66 ( +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +) + +67 /( +a¢_DEF_M—su»m’tCÚdUEidI‹m_gs_1 +[0]), + +68 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +69 +a¢_MBR_M—su»m’tCÚdUEidI‹m_1 +, + +71 & +a¢_SPC_M—su»m’tCÚdUEidI‹m_¥ecs_1 + + + @MeasurementCondUEidList.c + +8  + ~"M—su»m’tCÚdUEidLi¡.h +" + +10  + ~"M—su»m’tCÚdUEidI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tCÚdUEidLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tCÚdUEidLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M—su»m’tCÚdUEidI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tCÚdUEidLi¡_¥ecs_1 + = { + +31 ( +M—su»m’tCÚdUEidLi¡ +), + +32 +off£tof +( +M—su»m’tCÚdUEidLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tCÚdUEidLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tCÚdUEidLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tCÚdUEidLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tCÚdUEidLi¡_1 +, + +48 & +a¢_SPC_M—su»m’tCÚdUEidLi¡_¥ecs_1 + + + @MeasurementData.c + +8  + ~"M—su»m’tD©a.h +" + +10  + ~"M—su»m’tD©aI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tD©a_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tD©a_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M—su»m’tD©aI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tD©a_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tD©a_¥ecs_1 + = { + +31 ( +M—su»m’tD©a +), + +32 +off£tof +( +M—su»m’tD©a +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tD©a + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tD©a_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tD©a_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tD©a_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tD©a_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tD©a_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tD©a_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tD©a_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tD©a_1 +, + +48 & +a¢_SPC_M—su»m’tD©a_¥ecs_1 + + + @MeasurementDataItem.c + +8  + ~"M—su»m’tD©aI‹m.h +" + +14  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_šcom¶‘eFÏg_cÚ¡r_3 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_šcom¶‘eFÏg_v®ue2’um_3 +[] = { + +23 cÚ¡  + ga¢_MAP_šcom¶‘eFÏg_’um2v®ue_3 +[] = { + +27 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_šcom¶‘eFÏg_¥ecs_3 + = { + +28 +a¢_MAP_šcom¶‘eFÏg_v®ue2’um_3 +, + +29 +a¢_MAP_šcom¶‘eFÏg_’um2v®ue_3 +, + +36 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_šcom¶‘eFÏg_gs_3 +[] = { + +37 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +38 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +41 +a¢_TYPE_desütÜ_t + + ga¢_DEF_šcom¶‘eFÏg_3 + = { + +44 & +a¢_OP_N©iveEnum”©ed +, + +45 +a¢_DEF_šcom¶‘eFÏg_gs_3 +, + +46 ( +a¢_DEF_šcom¶‘eFÏg_gs_3 +) + +47 /( +a¢_DEF_šcom¶‘eFÏg_gs_3 +[0]) - 1, + +48 +a¢_DEF_šcom¶‘eFÏg_gs_3 +, + +49 ( +a¢_DEF_šcom¶‘eFÏg_gs_3 +) + +50 /( +a¢_DEF_šcom¶‘eFÏg_gs_3 +[0]), + +51 { 0, & +a¢_PER_ty³_šcom¶‘eFÏg_cÚ¡r_3 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +53 & +a¢_SPC_šcom¶‘eFÏg_¥ecs_3 + + +56 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tD©aI‹m_1 +[] = { + +57 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tD©aI‹m +, +m—sRecÜd +), + +58 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +60 & +a¢_DEF_M—su»m’tRecÜd +, + +66 { +ATF_POINTER +, 1, +off£tof +( +M—su»m’tD©aI‹m +, +šcom¶‘eFÏg +), + +67 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +69 & +a¢_DEF_šcom¶‘eFÏg_3 +, + +76 cÚ¡  + ga¢_MAP_M—su»m’tD©aI‹m_oms_1 +[] = { 1 }; + +77 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tD©aI‹m_gs_1 +[] = { + +78 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +80 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tD©aI‹m_g2–_1 +[] = { + +81 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +82 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +84 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tD©aI‹m_¥ecs_1 + = { + +85 ( +M—su»m’tD©aI‹m +), + +86 +off£tof +( +M—su»m’tD©aI‹m +, +_a¢_ùx +), + +87 +a¢_MAP_M—su»m’tD©aI‹m_g2–_1 +, + +89 +a¢_MAP_M—su»m’tD©aI‹m_oms_1 +, + +93 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tD©aI‹m + = { + +96 & +a¢_OP_SEQUENCE +, + +97 +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +, + +98 ( +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +) + +99 /( +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +[0]), + +100 +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +, + +101 ( +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +) + +102 /( +a¢_DEF_M—su»m’tD©aI‹m_gs_1 +[0]), + +103 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +104 +a¢_MBR_M—su»m’tD©aI‹m_1 +, + +106 & +a¢_SPC_M—su»m’tD©aI‹m_¥ecs_1 + + + @MeasurementInfo-Action-Item.c + +8  + ~"M—su»m’tInfo-AùiÚ-I‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tInfo_AùiÚ_I‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tInfo_AùiÚ_I‹m +, +m—sName +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_M—su»m’tTy³Name +, + +20 { +ATF_POINTER +, 1, +off£tof +( +M—su»m’tInfo_AùiÚ_I‹m +, +m—sID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_M—su»m’tTy³ID +, + +30 cÚ¡  + ga¢_MAP_M—su»m’tInfo_AùiÚ_I‹m_oms_1 +[] = { 1 }; + +31 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +[] = { + +32 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +34 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tInfo_AùiÚ_I‹m_g2–_1 +[] = { + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +38 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tInfo_AùiÚ_I‹m_¥ecs_1 + = { + +39 ( +M—su»m’tInfo_AùiÚ_I‹m +), + +40 +off£tof +( +M—su»m’tInfo_AùiÚ_I‹m +, +_a¢_ùx +), + +41 +a¢_MAP_M—su»m’tInfo_AùiÚ_I‹m_g2–_1 +, + +43 +a¢_MAP_M—su»m’tInfo_AùiÚ_I‹m_oms_1 +, + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tInfo_AùiÚ_I‹m + = { + +50 & +a¢_OP_SEQUENCE +, + +51 +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +, + +52 ( +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +) + +53 /( +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +[0]), + +54 +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +, + +55 ( +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +) + +56 /( +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m_gs_1 +[0]), + +57 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +58 +a¢_MBR_M—su»m’tInfo_AùiÚ_I‹m_1 +, + +60 & +a¢_SPC_M—su»m’tInfo_AùiÚ_I‹m_¥ecs_1 + + + @MeasurementInfo-Action-List.c + +8  + ~"M—su»m’tInfo-AùiÚ-Li¡.h +" + +10  + ~"M—su»m’tInfo-AùiÚ-I‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tInfo_AùiÚ_Li¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tInfo_AùiÚ_Li¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M—su»m’tInfo_AùiÚ_I‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tInfo_AùiÚ_Li¡_¥ecs_1 + = { + +31 ( +M—su»m’tInfo_AùiÚ_Li¡ +), + +32 +off£tof +( +M—su»m’tInfo_AùiÚ_Li¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tInfo_AùiÚ_Li¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tInfo_AùiÚ_Li¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tInfo_AùiÚ_Li¡_1 +, + +48 & +a¢_SPC_M—su»m’tInfo_AùiÚ_Li¡_¥ecs_1 + + + @MeasurementInfoItem.c + +8  + ~"M—su»m’tInfoI‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tInfoI‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tInfoI‹m +, +m—sTy³ +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_M—su»m’tTy³ +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tInfoI‹m +, +Ïb–InfoLi¡ +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_Lab–InfoLi¡ +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tInfoI‹m_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tInfoI‹m_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tInfoI‹m_¥ecs_1 + = { + +38 ( +M—su»m’tInfoI‹m +), + +39 +off£tof +( +M—su»m’tInfoI‹m +, +_a¢_ùx +), + +40 +a¢_MAP_M—su»m’tInfoI‹m_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tInfoI‹m + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +, + +50 ( +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +) + +51 /( +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +[0]), + +52 +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +, + +53 ( +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +) + +54 /( +a¢_DEF_M—su»m’tInfoI‹m_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_M—su»m’tInfoI‹m_1 +, + +58 & +a¢_SPC_M—su»m’tInfoI‹m_¥ecs_1 + + + @MeasurementInfoList.c + +8  + ~"M—su»m’tInfoLi¡.h +" + +10  + ~"M—su»m’tInfoI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tInfoLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tInfoLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_M—su»m’tInfoI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tInfoLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tInfoLi¡_¥ecs_1 + = { + +31 ( +M—su»m’tInfoLi¡ +), + +32 +off£tof +( +M—su»m’tInfoLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tInfoLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tInfoLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tInfoLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tInfoLi¡_1 +, + +48 & +a¢_SPC_M—su»m’tInfoLi¡_¥ecs_1 + + + @MeasurementLabel.c + +8  + ~"M—su»m’tLab–.h +" + +10  + ~"S-NSSAI.h +" + +40 + $memb_aRPmax_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +41 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +42  +v®ue +; + +44 if(! +¥Œ +) { + +45 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +47 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +51 +v®ue + = *(cÚ¡ *) +¥Œ +; + +53 if(( +v®ue + >= 1 && value <= 15)) { + +57 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +59 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +62 + } +} + +65 + $memb_aRPmš_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +66 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +67  +v®ue +; + +69 if(! +¥Œ +) { + +70 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +72 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +76 +v®ue + = *(cÚ¡ *) +¥Œ +; + +78 if(( +v®ue + >= 1 && value <= 15)) { + +82 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +84 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +87 + } +} + +90 + $memb_b™¿‹Rªge_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +91 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +92  +v®ue +; + +94 if(! +¥Œ +) { + +95 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +97 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +101 +v®ue + = *(cÚ¡ *) +¥Œ +; + +103 if(( +v®ue + >= 1 && value <= 65535)) { + +107 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +109 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +112 + } +} + +115 + $memb_Ïy”MU_MIMO_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +116 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +117  +v®ue +; + +119 if(! +¥Œ +) { + +120 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +122 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +126 +v®ue + = *(cÚ¡ *) +¥Œ +; + +128 if(( +v®ue + >= 1 && value <= 65535)) { + +132 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +134 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +137 + } +} + +140 + $memb_di¡BšX_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +141 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +142  +v®ue +; + +144 if(! +¥Œ +) { + +145 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +147 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +151 +v®ue + = *(cÚ¡ *) +¥Œ +; + +153 if(( +v®ue + >= 1 && value <= 65535)) { + +157 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +159 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +162 + } +} + +165 + $memb_di¡BšY_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +166 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +167  +v®ue +; + +169 if(! +¥Œ +) { + +170 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +172 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +176 +v®ue + = *(cÚ¡ *) +¥Œ +; + +178 if(( +v®ue + >= 1 && value <= 65535)) { + +182 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +184 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +187 + } +} + +190 + $memb_di¡BšZ_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +191 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +192  +v®ue +; + +194 if(! +¥Œ +) { + +195 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +197 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +201 +v®ue + = *(cÚ¡ *) +¥Œ +; + +203 if(( +v®ue + >= 1 && value <= 65535)) { + +207 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +209 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +212 + } +} + +214  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_noLab–_cÚ¡r_2 + + gCC_NOTUSED + = { + +215 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +216 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +219  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_sUM_cÚ¡r_16 + + gCC_NOTUSED + = { + +220 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +221 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +224  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_´eLab–Ov”ride_cÚ¡r_22 + + gCC_NOTUSED + = { + +225 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +226 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +229  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_¡¬tEndInd_cÚ¡r_25 + + gCC_NOTUSED + = { + +230 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +231 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +234  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_mš_cÚ¡r_29 + + gCC_NOTUSED + = { + +235 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +236 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +239  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_max_cÚ¡r_32 + + gCC_NOTUSED + = { + +240 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +241 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +244  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_avg_cÚ¡r_35 + + gCC_NOTUSED + = { + +245 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +246 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +249  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_aRPmax_cÚ¡r_12 + + gCC_NOTUSED + = { + +250 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 4, 4, 1, 15 } , + +251 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +254  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_aRPmš_cÚ¡r_13 + + gCC_NOTUSED + = { + +255 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 4, 4, 1, 15 } , + +256 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +259  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_b™¿‹Rªge_cÚ¡r_14 + + gCC_NOTUSED + = { + +260 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, 16, 1, 65535 } , + +261 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +264  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_Ïy”MU_MIMO_cÚ¡r_15 + + gCC_NOTUSED + = { + +265 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, 16, 1, 65535 } , + +266 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +269  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_di¡BšX_cÚ¡r_19 + + gCC_NOTUSED + = { + +270 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, 16, 1, 65535 } , + +271 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +274  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_di¡BšY_cÚ¡r_20 + + gCC_NOTUSED + = { + +275 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, 16, 1, 65535 } , + +276 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +279  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_di¡BšZ_cÚ¡r_21 + + gCC_NOTUSED + = { + +280 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, 16, 1, 65535 } , + +281 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +284 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_noLab–_v®ue2’um_2 +[] = { + +288 cÚ¡  + ga¢_MAP_noLab–_’um2v®ue_2 +[] = { + +292 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_noLab–_¥ecs_2 + = { + +293 +a¢_MAP_noLab–_v®ue2’um_2 +, + +294 +a¢_MAP_noLab–_’um2v®ue_2 +, + +301 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_noLab–_gs_2 +[] = { + +302 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +303 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +306 +a¢_TYPE_desütÜ_t + + ga¢_DEF_noLab–_2 + = { + +309 & +a¢_OP_N©iveEnum”©ed +, + +310 +a¢_DEF_noLab–_gs_2 +, + +311 ( +a¢_DEF_noLab–_gs_2 +) + +312 /( +a¢_DEF_noLab–_gs_2 +[0]) - 1, + +313 +a¢_DEF_noLab–_gs_2 +, + +314 ( +a¢_DEF_noLab–_gs_2 +) + +315 /( +a¢_DEF_noLab–_gs_2 +[0]), + +316 { 0, & +a¢_PER_ty³_noLab–_cÚ¡r_2 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +318 & +a¢_SPC_noLab–_¥ecs_2 + + +321 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_sUM_v®ue2’um_16 +[] = { + +325 cÚ¡  + ga¢_MAP_sUM_’um2v®ue_16 +[] = { + +329 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_sUM_¥ecs_16 + = { + +330 +a¢_MAP_sUM_v®ue2’um_16 +, + +331 +a¢_MAP_sUM_’um2v®ue_16 +, + +338 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_sUM_gs_16 +[] = { + +339 ( +ASN_TAG_CLASS_CONTEXT + | (12 << 2)), + +340 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +343 +a¢_TYPE_desütÜ_t + + ga¢_DEF_sUM_16 + = { + +346 & +a¢_OP_N©iveEnum”©ed +, + +347 +a¢_DEF_sUM_gs_16 +, + +348 ( +a¢_DEF_sUM_gs_16 +) + +349 /( +a¢_DEF_sUM_gs_16 +[0]) - 1, + +350 +a¢_DEF_sUM_gs_16 +, + +351 ( +a¢_DEF_sUM_gs_16 +) + +352 /( +a¢_DEF_sUM_gs_16 +[0]), + +353 { 0, & +a¢_PER_ty³_sUM_cÚ¡r_16 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +355 & +a¢_SPC_sUM_¥ecs_16 + + +358 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_´eLab–Ov”ride_v®ue2’um_22 +[] = { + +362 cÚ¡  + ga¢_MAP_´eLab–Ov”ride_’um2v®ue_22 +[] = { + +366 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_´eLab–Ov”ride_¥ecs_22 + = { + +367 +a¢_MAP_´eLab–Ov”ride_v®ue2’um_22 +, + +368 +a¢_MAP_´eLab–Ov”ride_’um2v®ue_22 +, + +375 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_´eLab–Ov”ride_gs_22 +[] = { + +376 ( +ASN_TAG_CLASS_CONTEXT + | (16 << 2)), + +377 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +380 +a¢_TYPE_desütÜ_t + + ga¢_DEF_´eLab–Ov”ride_22 + = { + +383 & +a¢_OP_N©iveEnum”©ed +, + +384 +a¢_DEF_´eLab–Ov”ride_gs_22 +, + +385 ( +a¢_DEF_´eLab–Ov”ride_gs_22 +) + +386 /( +a¢_DEF_´eLab–Ov”ride_gs_22 +[0]) - 1, + +387 +a¢_DEF_´eLab–Ov”ride_gs_22 +, + +388 ( +a¢_DEF_´eLab–Ov”ride_gs_22 +) + +389 /( +a¢_DEF_´eLab–Ov”ride_gs_22 +[0]), + +390 { 0, & +a¢_PER_ty³_´eLab–Ov”ride_cÚ¡r_22 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +392 & +a¢_SPC_´eLab–Ov”ride_¥ecs_22 + + +395 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_¡¬tEndInd_v®ue2’um_25 +[] = { + +400 cÚ¡  + ga¢_MAP_¡¬tEndInd_’um2v®ue_25 +[] = { + +405 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_¡¬tEndInd_¥ecs_25 + = { + +406 +a¢_MAP_¡¬tEndInd_v®ue2’um_25 +, + +407 +a¢_MAP_¡¬tEndInd_’um2v®ue_25 +, + +414 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_¡¬tEndInd_gs_25 +[] = { + +415 ( +ASN_TAG_CLASS_CONTEXT + | (17 << 2)), + +416 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +419 +a¢_TYPE_desütÜ_t + + ga¢_DEF_¡¬tEndInd_25 + = { + +422 & +a¢_OP_N©iveEnum”©ed +, + +423 +a¢_DEF_¡¬tEndInd_gs_25 +, + +424 ( +a¢_DEF_¡¬tEndInd_gs_25 +) + +425 /( +a¢_DEF_¡¬tEndInd_gs_25 +[0]) - 1, + +426 +a¢_DEF_¡¬tEndInd_gs_25 +, + +427 ( +a¢_DEF_¡¬tEndInd_gs_25 +) + +428 /( +a¢_DEF_¡¬tEndInd_gs_25 +[0]), + +429 { 0, & +a¢_PER_ty³_¡¬tEndInd_cÚ¡r_25 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +431 & +a¢_SPC_¡¬tEndInd_¥ecs_25 + + +434 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_mš_v®ue2’um_29 +[] = { + +438 cÚ¡  + ga¢_MAP_mš_’um2v®ue_29 +[] = { + +442 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_mš_¥ecs_29 + = { + +443 +a¢_MAP_mš_v®ue2’um_29 +, + +444 +a¢_MAP_mš_’um2v®ue_29 +, + +451 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_mš_gs_29 +[] = { + +452 ( +ASN_TAG_CLASS_CONTEXT + | (18 << 2)), + +453 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +456 +a¢_TYPE_desütÜ_t + + ga¢_DEF_mš_29 + = { + +459 & +a¢_OP_N©iveEnum”©ed +, + +460 +a¢_DEF_mš_gs_29 +, + +461 ( +a¢_DEF_mš_gs_29 +) + +462 /( +a¢_DEF_mš_gs_29 +[0]) - 1, + +463 +a¢_DEF_mš_gs_29 +, + +464 ( +a¢_DEF_mš_gs_29 +) + +465 /( +a¢_DEF_mš_gs_29 +[0]), + +466 { 0, & +a¢_PER_ty³_mš_cÚ¡r_29 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +468 & +a¢_SPC_mš_¥ecs_29 + + +471 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_max_v®ue2’um_32 +[] = { + +475 cÚ¡  + ga¢_MAP_max_’um2v®ue_32 +[] = { + +479 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_max_¥ecs_32 + = { + +480 +a¢_MAP_max_v®ue2’um_32 +, + +481 +a¢_MAP_max_’um2v®ue_32 +, + +488 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_max_gs_32 +[] = { + +489 ( +ASN_TAG_CLASS_CONTEXT + | (19 << 2)), + +490 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +493 +a¢_TYPE_desütÜ_t + + ga¢_DEF_max_32 + = { + +496 & +a¢_OP_N©iveEnum”©ed +, + +497 +a¢_DEF_max_gs_32 +, + +498 ( +a¢_DEF_max_gs_32 +) + +499 /( +a¢_DEF_max_gs_32 +[0]) - 1, + +500 +a¢_DEF_max_gs_32 +, + +501 ( +a¢_DEF_max_gs_32 +) + +502 /( +a¢_DEF_max_gs_32 +[0]), + +503 { 0, & +a¢_PER_ty³_max_cÚ¡r_32 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +505 & +a¢_SPC_max_¥ecs_32 + + +508 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_avg_v®ue2’um_35 +[] = { + +512 cÚ¡  + ga¢_MAP_avg_’um2v®ue_35 +[] = { + +516 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_avg_¥ecs_35 + = { + +517 +a¢_MAP_avg_v®ue2’um_35 +, + +518 +a¢_MAP_avg_’um2v®ue_35 +, + +525 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_avg_gs_35 +[] = { + +526 ( +ASN_TAG_CLASS_CONTEXT + | (20 << 2)), + +527 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +530 +a¢_TYPE_desütÜ_t + + ga¢_DEF_avg_35 + = { + +533 & +a¢_OP_N©iveEnum”©ed +, + +534 +a¢_DEF_avg_gs_35 +, + +535 ( +a¢_DEF_avg_gs_35 +) + +536 /( +a¢_DEF_avg_gs_35 +[0]) - 1, + +537 +a¢_DEF_avg_gs_35 +, + +538 ( +a¢_DEF_avg_gs_35 +) + +539 /( +a¢_DEF_avg_gs_35 +[0]), + +540 { 0, & +a¢_PER_ty³_avg_cÚ¡r_35 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +542 & +a¢_SPC_avg_¥ecs_35 + + +545 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tLab–_1 +[] = { + +546 { +ATF_POINTER +, 21, +off£tof +( +M—su»m’tLab– +, +noLab– +), + +547 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +549 & +a¢_DEF_noLab–_2 +, + +555 { +ATF_POINTER +, 20, +off£tof +( +M—su»m’tLab– +, +¶mnID +), + +556 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +558 & +a¢_DEF_PLMNId’t™y +, + +564 { +ATF_POINTER +, 19, +off£tof +( +M—su»m’tLab– +, +¦iûID +), + +565 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +567 & +a¢_DEF_S_NSSAI +, + +573 { +ATF_POINTER +, 18, +off£tof +( +M—su»m’tLab– +, +fiveQI +), + +574 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +576 & +a¢_DEF_FiveQI +, + +582 { +ATF_POINTER +, 17, +off£tof +( +M—su»m’tLab– +, +qFI +), + +583 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +585 & +a¢_DEF_QosFlowId’tif›r +, + +591 { +ATF_POINTER +, 16, +off£tof +( +M—su»m’tLab– +, +qCI +), + +592 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +594 & +a¢_DEF_QCI +, + +600 { +ATF_POINTER +, 15, +off£tof +( +M—su»m’tLab– +, +qCImax +), + +601 ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), + +603 & +a¢_DEF_QCI +, + +609 { +ATF_POINTER +, 14, +off£tof +( +M—su»m’tLab– +, +qCImš +), + +610 ( +ASN_TAG_CLASS_CONTEXT + | (7 << 2)), + +612 & +a¢_DEF_QCI +, + +618 { +ATF_POINTER +, 13, +off£tof +( +M—su»m’tLab– +, +aRPmax +), + +619 ( +ASN_TAG_CLASS_CONTEXT + | (8 << 2)), + +621 & +a¢_DEF_N©iveIÁeg” +, + +623 { 0, & +a¢_PER_memb_aRPmax_cÚ¡r_12 +, +memb_aRPmax_cÚ¡¿št_1 + }, + +627 { +ATF_POINTER +, 12, +off£tof +( +M—su»m’tLab– +, +aRPmš +), + +628 ( +ASN_TAG_CLASS_CONTEXT + | (9 << 2)), + +630 & +a¢_DEF_N©iveIÁeg” +, + +632 { 0, & +a¢_PER_memb_aRPmš_cÚ¡r_13 +, +memb_aRPmš_cÚ¡¿št_1 + }, + +636 { +ATF_POINTER +, 11, +off£tof +( +M—su»m’tLab– +, +b™¿‹Rªge +), + +637 ( +ASN_TAG_CLASS_CONTEXT + | (10 << 2)), + +639 & +a¢_DEF_N©iveIÁeg” +, + +641 { 0, & +a¢_PER_memb_b™¿‹Rªge_cÚ¡r_14 +, +memb_b™¿‹Rªge_cÚ¡¿št_1 + }, + +645 { +ATF_POINTER +, 10, +off£tof +( +M—su»m’tLab– +, +Ïy”MU_MIMO +), + +646 ( +ASN_TAG_CLASS_CONTEXT + | (11 << 2)), + +648 & +a¢_DEF_N©iveIÁeg” +, + +650 { 0, & +a¢_PER_memb_Ïy”MU_MIMO_cÚ¡r_15 +, +memb_Ïy”MU_MIMO_cÚ¡¿št_1 + }, + +654 { +ATF_POINTER +, 9, +off£tof +( +M—su»m’tLab– +, +sUM +), + +655 ( +ASN_TAG_CLASS_CONTEXT + | (12 << 2)), + +657 & +a¢_DEF_sUM_16 +, + +663 { +ATF_POINTER +, 8, +off£tof +( +M—su»m’tLab– +, +di¡BšX +), + +664 ( +ASN_TAG_CLASS_CONTEXT + | (13 << 2)), + +666 & +a¢_DEF_N©iveIÁeg” +, + +668 { 0, & +a¢_PER_memb_di¡BšX_cÚ¡r_19 +, +memb_di¡BšX_cÚ¡¿št_1 + }, + +672 { +ATF_POINTER +, 7, +off£tof +( +M—su»m’tLab– +, +di¡BšY +), + +673 ( +ASN_TAG_CLASS_CONTEXT + | (14 << 2)), + +675 & +a¢_DEF_N©iveIÁeg” +, + +677 { 0, & +a¢_PER_memb_di¡BšY_cÚ¡r_20 +, +memb_di¡BšY_cÚ¡¿št_1 + }, + +681 { +ATF_POINTER +, 6, +off£tof +( +M—su»m’tLab– +, +di¡BšZ +), + +682 ( +ASN_TAG_CLASS_CONTEXT + | (15 << 2)), + +684 & +a¢_DEF_N©iveIÁeg” +, + +686 { 0, & +a¢_PER_memb_di¡BšZ_cÚ¡r_21 +, +memb_di¡BšZ_cÚ¡¿št_1 + }, + +690 { +ATF_POINTER +, 5, +off£tof +( +M—su»m’tLab– +, +´eLab–Ov”ride +), + +691 ( +ASN_TAG_CLASS_CONTEXT + | (16 << 2)), + +693 & +a¢_DEF_´eLab–Ov”ride_22 +, + +699 { +ATF_POINTER +, 4, +off£tof +( +M—su»m’tLab– +, +¡¬tEndInd +), + +700 ( +ASN_TAG_CLASS_CONTEXT + | (17 << 2)), + +702 & +a¢_DEF_¡¬tEndInd_25 +, + +708 { +ATF_POINTER +, 3, +off£tof +( +M—su»m’tLab– +, +mš +), + +709 ( +ASN_TAG_CLASS_CONTEXT + | (18 << 2)), + +711 & +a¢_DEF_mš_29 +, + +717 { +ATF_POINTER +, 2, +off£tof +( +M—su»m’tLab– +, +max +), + +718 ( +ASN_TAG_CLASS_CONTEXT + | (19 << 2)), + +720 & +a¢_DEF_max_32 +, + +726 { +ATF_POINTER +, 1, +off£tof +( +M—su»m’tLab– +, +avg +), + +727 ( +ASN_TAG_CLASS_CONTEXT + | (20 << 2)), + +729 & +a¢_DEF_avg_35 +, + +736 cÚ¡  + ga¢_MAP_M—su»m’tLab–_oms_1 +[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; + +737 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tLab–_gs_1 +[] = { + +738 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +740 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tLab–_g2–_1 +[] = { + +741 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +742 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +743 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +744 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +745 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +746 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 }, + +747 { ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), 6, 0, 0 }, + +748 { ( +ASN_TAG_CLASS_CONTEXT + | (7 << 2)), 7, 0, 0 }, + +749 { ( +ASN_TAG_CLASS_CONTEXT + | (8 << 2)), 8, 0, 0 }, + +750 { ( +ASN_TAG_CLASS_CONTEXT + | (9 << 2)), 9, 0, 0 }, + +751 { ( +ASN_TAG_CLASS_CONTEXT + | (10 << 2)), 10, 0, 0 }, + +752 { ( +ASN_TAG_CLASS_CONTEXT + | (11 << 2)), 11, 0, 0 }, + +753 { ( +ASN_TAG_CLASS_CONTEXT + | (12 << 2)), 12, 0, 0 }, + +754 { ( +ASN_TAG_CLASS_CONTEXT + | (13 << 2)), 13, 0, 0 }, + +755 { ( +ASN_TAG_CLASS_CONTEXT + | (14 << 2)), 14, 0, 0 }, + +756 { ( +ASN_TAG_CLASS_CONTEXT + | (15 << 2)), 15, 0, 0 }, + +757 { ( +ASN_TAG_CLASS_CONTEXT + | (16 << 2)), 16, 0, 0 }, + +758 { ( +ASN_TAG_CLASS_CONTEXT + | (17 << 2)), 17, 0, 0 }, + +759 { ( +ASN_TAG_CLASS_CONTEXT + | (18 << 2)), 18, 0, 0 }, + +760 { ( +ASN_TAG_CLASS_CONTEXT + | (19 << 2)), 19, 0, 0 }, + +761 { ( +ASN_TAG_CLASS_CONTEXT + | (20 << 2)), 20, 0, 0 } + +763 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_M—su»m’tLab–_¥ecs_1 + = { + +764 ( +M—su»m’tLab– +), + +765 +off£tof +( +M—su»m’tLab– +, +_a¢_ùx +), + +766 +a¢_MAP_M—su»m’tLab–_g2–_1 +, + +768 +a¢_MAP_M—su»m’tLab–_oms_1 +, + +772 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tLab– + = { + +775 & +a¢_OP_SEQUENCE +, + +776 +a¢_DEF_M—su»m’tLab–_gs_1 +, + +777 ( +a¢_DEF_M—su»m’tLab–_gs_1 +) + +778 /( +a¢_DEF_M—su»m’tLab–_gs_1 +[0]), + +779 +a¢_DEF_M—su»m’tLab–_gs_1 +, + +780 ( +a¢_DEF_M—su»m’tLab–_gs_1 +) + +781 /( +a¢_DEF_M—su»m’tLab–_gs_1 +[0]), + +782 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +783 +a¢_MBR_M—su»m’tLab–_1 +, + +785 & +a¢_SPC_M—su»m’tLab–_¥ecs_1 + + + @MeasurementRecord.c + +8  + ~"M—su»m’tRecÜd.h +" + +10  + ~"M—su»m’tRecÜdI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tRecÜd_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 31, -1, 1, 2147483647 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tRecÜd_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +20 & +a¢_DEF_M—su»m’tRecÜdI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tRecÜd_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_M—su»m’tRecÜd_¥ecs_1 + = { + +31 ( +M—su»m’tRecÜd +), + +32 +off£tof +( +M—su»m’tRecÜd +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tRecÜd + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_M—su»m’tRecÜd_gs_1 +, + +40 ( +a¢_DEF_M—su»m’tRecÜd_gs_1 +) + +41 /( +a¢_DEF_M—su»m’tRecÜd_gs_1 +[0]), + +42 +a¢_DEF_M—su»m’tRecÜd_gs_1 +, + +43 ( +a¢_DEF_M—su»m’tRecÜd_gs_1 +) + +44 /( +a¢_DEF_M—su»m’tRecÜd_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_M—su»m’tRecÜd_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_M—su»m’tRecÜd_1 +, + +48 & +a¢_SPC_M—su»m’tRecÜd_¥ecs_1 + + + @MeasurementRecordItem.c + +8  + ~"M—su»m’tRecÜdI‹m.h +" + +11 + $š‹g”_2_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +31 + $memb_š‹g”_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +32 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +34 if(! +¥Œ +) { + +35 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +37 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +44 + } +} + +46  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_š‹g”_cÚ¡r_2 + + gCC_NOTUSED + = { + +47 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +48 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +51  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_š‹g”_cÚ¡r_2 + + gCC_NOTUSED + = { + +52 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +53 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +56 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tRecÜdI‹m_cÚ¡r_1 + + gCC_NOTUSED + = { + +57 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 2, 2, 0, 2 } , + +58 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +61 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_š‹g”_¥ecs_2 + = { + +66 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_š‹g”_gs_2 +[] = { + +67 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +68 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +71 +a¢_TYPE_desütÜ_t + + ga¢_DEF_š‹g”_2 + = { + +74 & +a¢_OP_N©iveIÁeg” +, + +75 +a¢_DEF_š‹g”_gs_2 +, + +76 ( +a¢_DEF_š‹g”_gs_2 +) + +77 /( +a¢_DEF_š‹g”_gs_2 +[0]) - 1, + +78 +a¢_DEF_š‹g”_gs_2 +, + +79 ( +a¢_DEF_š‹g”_gs_2 +) + +80 /( +a¢_DEF_š‹g”_gs_2 +[0]), + +81 { 0, & +a¢_PER_ty³_š‹g”_cÚ¡r_2 +, +š‹g”_2_cÚ¡¿št + }, + +83 & +a¢_SPC_š‹g”_¥ecs_2 + + +86 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tRecÜdI‹m_1 +[] = { + +87 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tRecÜdI‹m +, +choiû +. +š‹g” +), + +88 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +90 & +a¢_DEF_š‹g”_2 +, + +92 { 0, & +a¢_PER_memb_š‹g”_cÚ¡r_2 +, +memb_š‹g”_cÚ¡¿št_1 + }, + +96 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tRecÜdI‹m +, +choiû +. +»® +), + +97 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +99 & +a¢_DEF_N©iveR—l +, + +105 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tRecÜdI‹m +, +choiû +. +noV®ue +), + +106 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +108 & +a¢_DEF_NULL +, + +115 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tRecÜdI‹m_g2–_1 +[] = { + +116 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +117 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +118 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +120 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_M—su»m’tRecÜdI‹m_¥ecs_1 + = { + +121 ( +M—su»m’tRecÜdI‹m +), + +122 +off£tof +( +M—su»m’tRecÜdI‹m +, +_a¢_ùx +), + +123 +off£tof +( +M—su»m’tRecÜdI‹m +, +´e£Á +), + +124 ((( +M—su»m’tRecÜdI‹m + *)0)-> +´e£Á +), + +125 +a¢_MAP_M—su»m’tRecÜdI‹m_g2–_1 +, + +130 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tRecÜdI‹m + = { + +133 & +a¢_OP_CHOICE +, + +138 { 0, & +a¢_PER_ty³_M—su»m’tRecÜdI‹m_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +139 +a¢_MBR_M—su»m’tRecÜdI‹m_1 +, + +141 & +a¢_SPC_M—su»m’tRecÜdI‹m_¥ecs_1 + + + @MeasurementType.c + +8  + ~"M—su»m’tTy³.h +" + +10 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tTy³_cÚ¡r_1 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15 +a¢_TYPE_memb”_t + + ga¢_MBR_M—su»m’tTy³_1 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tTy³ +, +choiû +. +m—sName +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_M—su»m’tTy³Name +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +M—su»m’tTy³ +, +choiû +. +m—sID +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_M—su»m’tTy³ID +, + +35 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_M—su»m’tTy³_g2–_1 +[] = { + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +39 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_M—su»m’tTy³_¥ecs_1 + = { + +40 ( +M—su»m’tTy³ +), + +41 +off£tof +( +M—su»m’tTy³ +, +_a¢_ùx +), + +42 +off£tof +( +M—su»m’tTy³ +, +´e£Á +), + +43 ((( +M—su»m’tTy³ + *)0)-> +´e£Á +), + +44 +a¢_MAP_M—su»m’tTy³_g2–_1 +, + +49 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tTy³ + = { + +52 & +a¢_OP_CHOICE +, + +57 { 0, & +a¢_PER_ty³_M—su»m’tTy³_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +58 +a¢_MBR_M—su»m’tTy³_1 +, + +60 & +a¢_SPC_M—su»m’tTy³_¥ecs_1 + + + @MeasurementTypeID.c + +8  + ~"M—su»m’tTy³ID.h +" + +11 + $M—su»m’tTy³ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 65536)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tTy³ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 16, -1, 1, 65536 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tTy³ID_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tTy³ID + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_M—su»m’tTy³ID_gs_1 +, + +52 ( +a¢_DEF_M—su»m’tTy³ID_gs_1 +) + +53 /( +a¢_DEF_M—su»m’tTy³ID_gs_1 +[0]), + +54 +a¢_DEF_M—su»m’tTy³ID_gs_1 +, + +55 ( +a¢_DEF_M—su»m’tTy³ID_gs_1 +) + +56 /( +a¢_DEF_M—su»m’tTy³ID_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_M—su»m’tTy³ID_cÚ¡r_1 +, +M—su»m’tTy³ID_cÚ¡¿št + }, + + @MeasurementTypeName.c + +8  + ~"M—su»m’tTy³Name.h +" + +10 cÚ¡  + g³rm™‹d_®phab‘_bË_1 +[256] = { + +20 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_1 +[74] = { + +28  + $check_³rm™‹d_®phab‘_1 +(cÚ¡ * +¥Œ +) { + +29 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_1 +; + +31 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +32 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +33 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +35 ; +ch + < +’d +; ch++) { + +36 +ušt8_t + +cv + = * +ch +; + +37 if(! +bË +[ +cv +])  -1; + +40 + } +} + +43 + $M—su»m’tTy³Name_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +44 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +45 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +46 +size_t + +size +; + +48 if(! +¥Œ +) { + +49 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +51 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +55 +size + = +¡ +->size; + +57 if(( +size + >= 1 && size <= 150) + +58 && ! + `check_³rm™‹d_®phab‘_1 +( +¡ +)) { + +62 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +64 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +67 + } +} + +69  + $a¢_PER_MAP_M—su»m’tTy³Name_1_v2c +( +v®ue +) { + +70 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_1 +)/(permitted_alphabet_table_1[0])) + +72  +³rm™‹d_®phab‘_bË_1 +[ +v®ue +] - 1; + +73 + } +} + +74  + $a¢_PER_MAP_M—su»m’tTy³Name_1_c2v +( +code +) { + +75 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_1 +)/(permitted_alphabet_code2value_1[0])) + +77  +³rm™‹d_®phab‘_code2v®ue_1 +[ +code +]; + +78 + } +} + +83 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_M—su»m’tTy³Name_cÚ¡r_1 + + gCC_NOTUSED + = { + +84 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +85 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 1, 150 } , + +86 +a¢_PER_MAP_M—su»m’tTy³Name_1_v2c +, + +87 +a¢_PER_MAP_M—su»m’tTy³Name_1_c2v + + +89 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_M—su»m’tTy³Name_gs_1 +[] = { + +90 ( +ASN_TAG_CLASS_UNIVERSAL + | (19 << 2)) + +92 +a¢_TYPE_desütÜ_t + + ga¢_DEF_M—su»m’tTy³Name + = { + +95 & +a¢_OP_PršbËSŒšg +, + +96 +a¢_DEF_M—su»m’tTy³Name_gs_1 +, + +97 ( +a¢_DEF_M—su»m’tTy³Name_gs_1 +) + +98 /( +a¢_DEF_M—su»m’tTy³Name_gs_1 +[0]), + +99 +a¢_DEF_M—su»m’tTy³Name_gs_1 +, + +100 ( +a¢_DEF_M—su»m’tTy³Name_gs_1 +) + +101 /( +a¢_DEF_M—su»m’tTy³Name_gs_1 +[0]), + +102 { 0, & +a¢_PER_ty³_M—su»m’tTy³Name_cÚ¡r_1 +, +M—su»m’tTy³Name_cÚ¡¿št + }, + + @NG-RANnodeUEXnAPID.c + +8  + ~"NG-RANnodeUEXnAPID.h +" + +11 + $NG_RANnodeUEXnAPID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +30 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NG_RANnodeUEXnAPID_cÚ¡r_1 + + gCC_NOTUSED + = { + +31 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +32 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_NG_RANnodeUEXnAPID_¥ecs_1 + = { + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NG_RANnodeUEXnAPID_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +43 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NG_RANnodeUEXnAPID + = { + +46 & +a¢_OP_N©iveIÁeg” +, + +47 +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +, + +48 ( +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +) + +49 /( +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +[0]), + +50 +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +, + +51 ( +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +) + +52 /( +a¢_DEF_NG_RANnodeUEXnAPID_gs_1 +[0]), + +53 { 0, & +a¢_PER_ty³_NG_RANnodeUEXnAPID_cÚ¡r_1 +, +NG_RANnodeUEXnAPID_cÚ¡¿št + }, + +55 & +a¢_SPC_NG_RANnodeUEXnAPID_¥ecs_1 + + + @NGENB-CU-UE-W1AP-ID.c + +8  + ~"NGENB-CU-UE-W1AP-ID.h +" + +11 + $NGENB_CU_UE_W1AP_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +14 if(! +¥Œ +) { + +15 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +17 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +24 + } +} + +30 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NGENB_CU_UE_W1AP_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +31 { +APC_CONSTRAINED +, 32, -1, 0, 4294967295 } , + +32 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_NGENB_CU_UE_W1AP_ID_¥ecs_1 + = { + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +43 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NGENB_CU_UE_W1AP_ID + = { + +46 & +a¢_OP_N©iveIÁeg” +, + +47 +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +, + +48 ( +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +) + +49 /( +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +[0]), + +50 +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +, + +51 ( +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +) + +52 /( +a¢_DEF_NGENB_CU_UE_W1AP_ID_gs_1 +[0]), + +53 { 0, & +a¢_PER_ty³_NGENB_CU_UE_W1AP_ID_cÚ¡r_1 +, +NGENB_CU_UE_W1AP_ID_cÚ¡¿št + }, + +55 & +a¢_SPC_NGENB_CU_UE_W1AP_ID_¥ecs_1 + + + @NGENB-DU-ID.c + +8  + ~"NGENB-DU-ID.h +" + +11 + $NGENB_DU_ID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +INTEGER_t + * +¡ + = (cÚ¡ INTEGER_ˆ*) +¥Œ +; + +14  +v®ue +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( + `a¢_INTEGER2lÚg +( +¡ +, & +v®ue +)) { + +24 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +26 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +30 if(( +v®ue + >= 0 && value <= 68719476735)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NGENB_DU_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_CONSTRAINED +, 36, -1, 0, 68719476735 } , + +47 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NGENB_DU_ID_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NGENB_DU_ID + = { + +56 & +a¢_OP_INTEGER +, + +57 +a¢_DEF_NGENB_DU_ID_gs_1 +, + +58 ( +a¢_DEF_NGENB_DU_ID_gs_1 +) + +59 /( +a¢_DEF_NGENB_DU_ID_gs_1 +[0]), + +60 +a¢_DEF_NGENB_DU_ID_gs_1 +, + +61 ( +a¢_DEF_NGENB_DU_ID_gs_1 +) + +62 /( +a¢_DEF_NGENB_DU_ID_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_NGENB_DU_ID_cÚ¡r_1 +, +NGENB_DU_ID_cÚ¡¿št + }, + + @NR-ARFCN.c + +8  + ~"NR-ARFCN.h +" + +11 + $memb_nRARFCN_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 3279165)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +35  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_nRARFCN_cÚ¡r_2 + + gCC_NOTUSED + = { + +36 { +APC_CONSTRAINED +, 22, -1, 0, 3279165 } , + +37 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +40 +a¢_TYPE_memb”_t + + ga¢_MBR_NR_ARFCN_1 +[] = { + +41 { +ATF_NOFLAGS +, 0, +off£tof +( +NR_ARFCN +, +nRARFCN +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +44 & +a¢_DEF_N©iveIÁeg” +, + +46 { 0, & +a¢_PER_memb_nRARFCN_cÚ¡r_2 +, +memb_nRARFCN_cÚ¡¿št_1 + }, + +51 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NR_ARFCN_gs_1 +[] = { + +52 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +54 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_NR_ARFCN_g2–_1 +[] = { + +55 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +57 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_NR_ARFCN_¥ecs_1 + = { + +58 ( +NR_ARFCN +), + +59 +off£tof +( +NR_ARFCN +, +_a¢_ùx +), + +60 +a¢_MAP_NR_ARFCN_g2–_1 +, + +65 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NR_ARFCN + = { + +68 & +a¢_OP_SEQUENCE +, + +69 +a¢_DEF_NR_ARFCN_gs_1 +, + +70 ( +a¢_DEF_NR_ARFCN_gs_1 +) + +71 /( +a¢_DEF_NR_ARFCN_gs_1 +[0]), + +72 +a¢_DEF_NR_ARFCN_gs_1 +, + +73 ( +a¢_DEF_NR_ARFCN_gs_1 +) + +74 /( +a¢_DEF_NR_ARFCN_gs_1 +[0]), + +75 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +76 +a¢_MBR_NR_ARFCN_1 +, + +78 & +a¢_SPC_NR_ARFCN_¥ecs_1 + + + @NR-CGI.c + +8  + ~"NR-CGI.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_NR_CGI_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +NR_CGI +, +pLMNId’t™y +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_PLMNId’t™y +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +NR_CGI +, +nRC–lId’t™y +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_NRC–lId’t™y +, + +30 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NR_CGI_gs_1 +[] = { + +31 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +33 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_NR_CGI_g2–_1 +[] = { + +34 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +37 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_NR_CGI_¥ecs_1 + = { + +38 ( +NR_CGI +), + +39 +off£tof +( +NR_CGI +, +_a¢_ùx +), + +40 +a¢_MAP_NR_CGI_g2–_1 +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NR_CGI + = { + +48 & +a¢_OP_SEQUENCE +, + +49 +a¢_DEF_NR_CGI_gs_1 +, + +50 ( +a¢_DEF_NR_CGI_gs_1 +) + +51 /( +a¢_DEF_NR_CGI_gs_1 +[0]), + +52 +a¢_DEF_NR_CGI_gs_1 +, + +53 ( +a¢_DEF_NR_CGI_gs_1 +) + +54 /( +a¢_DEF_NR_CGI_gs_1 +[0]), + +55 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +56 +a¢_MBR_NR_CGI_1 +, + +58 & +a¢_SPC_NR_CGI_¥ecs_1 + + + @NR-PCI.c + +8  + ~"NR-PCI.h +" + +11 + $NR_PCI_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 1007)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NR_PCI_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 10, 10, 0, 1007 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NR_PCI_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NR_PCI + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_NR_PCI_gs_1 +, + +52 ( +a¢_DEF_NR_PCI_gs_1 +) + +53 /( +a¢_DEF_NR_PCI_gs_1 +[0]), + +54 +a¢_DEF_NR_PCI_gs_1 +, + +55 ( +a¢_DEF_NR_PCI_gs_1 +) + +56 /( +a¢_DEF_NR_PCI_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_NR_PCI_cÚ¡r_1 +, +NR_PCI_cÚ¡¿št + }, + + @NRCellIdentity.c + +8  + ~"NRC–lId’t™y.h +" + +11 + $NRC–lId’t™y_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 36)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +45 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NRC–lId’t™y_cÚ¡r_1 + + gCC_NOTUSED + = { + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +47 { +APC_CONSTRAINED +, 0, 0, 36, 36 } , + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NRC–lId’t™y_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (3 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NRC–lId’t™y + = { + +56 & +a¢_OP_BIT_STRING +, + +57 +a¢_DEF_NRC–lId’t™y_gs_1 +, + +58 ( +a¢_DEF_NRC–lId’t™y_gs_1 +) + +59 /( +a¢_DEF_NRC–lId’t™y_gs_1 +[0]), + +60 +a¢_DEF_NRC–lId’t™y_gs_1 +, + +61 ( +a¢_DEF_NRC–lId’t™y_gs_1 +) + +62 /( +a¢_DEF_NRC–lId’t™y_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_NRC–lId’t™y_cÚ¡r_1 +, +NRC–lId’t™y_cÚ¡¿št + }, + +65 & +a¢_SPC_BIT_STRING_¥ecs + + + @NRFrequencyBand-List.c + +8  + ~"NRF»qu’cyBªd-Li¡.h +" + +10  + ~"NRF»qu’cyBªdI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NRF»qu’cyBªd_Li¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 5, 5, 1, 32 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_NRF»qu’cyBªd_Li¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_NRF»qu’cyBªdI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_NRF»qu’cyBªd_Li¡_¥ecs_1 + = { + +31 ( +NRF»qu’cyBªd_Li¡ +), + +32 +off£tof +( +NRF»qu’cyBªd_Li¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NRF»qu’cyBªd_Li¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +, + +40 ( +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +) + +41 /( +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +[0]), + +42 +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +, + +43 ( +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +) + +44 /( +a¢_DEF_NRF»qu’cyBªd_Li¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_NRF»qu’cyBªd_Li¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_NRF»qu’cyBªd_Li¡_1 +, + +48 & +a¢_SPC_NRF»qu’cyBªd_Li¡_¥ecs_1 + + + @NRFrequencyBandItem.c + +8  + ~"NRF»qu’cyBªdI‹m.h +" + +11 + $memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 1024)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +35  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 + + gCC_NOTUSED + = { + +36 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 10, 10, 1, 1024 } , + +37 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +40 +a¢_TYPE_memb”_t + + ga¢_MBR_NRF»qu’cyBªdI‹m_1 +[] = { + +41 { +ATF_NOFLAGS +, 0, +off£tof +( +NRF»qu’cyBªdI‹m +, +äeqBªdIndiÿtÜNr +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +44 & +a¢_DEF_N©iveIÁeg” +, + +46 { 0, & +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 +, +memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 + }, + +50 { +ATF_NOFLAGS +, 0, +off£tof +( +NRF»qu’cyBªdI‹m +, +suµÜ‹dSULBªdLi¡ +), + +51 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +53 & +a¢_DEF_SuµÜ‹dSULBªdLi¡ +, + +60 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +[] = { + +61 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +63 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_NRF»qu’cyBªdI‹m_g2–_1 +[] = { + +64 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +65 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +67 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_NRF»qu’cyBªdI‹m_¥ecs_1 + = { + +68 ( +NRF»qu’cyBªdI‹m +), + +69 +off£tof +( +NRF»qu’cyBªdI‹m +, +_a¢_ùx +), + +70 +a¢_MAP_NRF»qu’cyBªdI‹m_g2–_1 +, + +75 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NRF»qu’cyBªdI‹m + = { + +78 & +a¢_OP_SEQUENCE +, + +79 +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +, + +80 ( +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +) + +81 /( +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +[0]), + +82 +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +, + +83 ( +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +) + +84 /( +a¢_DEF_NRF»qu’cyBªdI‹m_gs_1 +[0]), + +85 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +86 +a¢_MBR_NRF»qu’cyBªdI‹m_1 +, + +88 & +a¢_SPC_NRF»qu’cyBªdI‹m_¥ecs_1 + + + @NRFrequencyInfo.c + +8  + ~"NRF»qu’cyInfo.h +" + +10  +a¢_TYPE_memb”_t + + ga¢_MBR_NRF»qu’cyInfo_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +NRF»qu’cyInfo +, +ÄARFCN +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_NR_ARFCN +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +NRF»qu’cyInfo +, +äequ’cyBªd_Li¡ +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_NRF»qu’cyBªd_Li¡ +, + +29 { +ATF_POINTER +, 1, +off£tof +( +NRF»qu’cyInfo +, +äequ’cyShiá7p5khz +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_NRF»qu’cyShiá7p5khz +, + +39 cÚ¡  + ga¢_MAP_NRF»qu’cyInfo_oms_1 +[] = { 2 }; + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NRF»qu’cyInfo_gs_1 +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +43 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_NRF»qu’cyInfo_g2–_1 +[] = { + +44 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +46 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +48  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_NRF»qu’cyInfo_¥ecs_1 + = { + +49 ( +NRF»qu’cyInfo +), + +50 +off£tof +( +NRF»qu’cyInfo +, +_a¢_ùx +), + +51 +a¢_MAP_NRF»qu’cyInfo_g2–_1 +, + +53 +a¢_MAP_NRF»qu’cyInfo_oms_1 +, + +57 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NRF»qu’cyInfo + = { + +60 & +a¢_OP_SEQUENCE +, + +61 +a¢_DEF_NRF»qu’cyInfo_gs_1 +, + +62 ( +a¢_DEF_NRF»qu’cyInfo_gs_1 +) + +63 /( +a¢_DEF_NRF»qu’cyInfo_gs_1 +[0]), + +64 +a¢_DEF_NRF»qu’cyInfo_gs_1 +, + +65 ( +a¢_DEF_NRF»qu’cyInfo_gs_1 +) + +66 /( +a¢_DEF_NRF»qu’cyInfo_gs_1 +[0]), + +67 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +68 +a¢_MBR_NRF»qu’cyInfo_1 +, + +70 & +a¢_SPC_NRF»qu’cyInfo_¥ecs_1 + + + @NRFrequencyShift7p5khz.c + +8  + ~"NRF»qu’cyShiá7p5khz.h +" + +14 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NRF»qu’cyShiá7p5khz_cÚ¡r_1 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_NRF»qu’cyShiá7p5khz_v®ue2’um_1 +[] = { + +24 cÚ¡  + ga¢_MAP_NRF»qu’cyShiá7p5khz_’um2v®ue_1 +[] = { + +29 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_NRF»qu’cyShiá7p5khz_¥ecs_1 + = { + +30 +a¢_MAP_NRF»qu’cyShiá7p5khz_v®ue2’um_1 +, + +31 +a¢_MAP_NRF»qu’cyShiá7p5khz_’um2v®ue_1 +, + +38 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +[] = { + +39 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +41 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NRF»qu’cyShiá7p5khz + = { + +44 & +a¢_OP_N©iveEnum”©ed +, + +45 +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +, + +46 ( +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +) + +47 /( +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +[0]), + +48 +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +, + +49 ( +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +) + +50 /( +a¢_DEF_NRF»qu’cyShiá7p5khz_gs_1 +[0]), + +51 { 0, & +a¢_PER_ty³_NRF»qu’cyShiá7p5khz_cÚ¡r_1 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +53 & +a¢_SPC_NRF»qu’cyShiá7p5khz_¥ecs_1 + + + @NULL.c + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~ + +13 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_NULL_gs +[] = { + +14 ( +ASN_TAG_CLASS_UNIVERSAL + | (5 << 2)) + +16 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_NULL + = { + +17 +BOOLEAN_ä“ +, + +18 +NULL_´št +, + +19 +NULL_com·» +, + +20 +BOOLEAN_decode_b” +, + +21 +NULL_’code_d” +, + +22 +NULL_decode_x” +, + +23 +NULL_’code_x” +, + +24 #ifdef +ASN_DISABLE_OER_SUPPORT + + +28 +NULL_decode_Ûr +, + +29 +NULL_’code_Ûr +, + +31 #ifdef +ASN_DISABLE_PER_SUPPORT + + +37 +NULL_decode_u³r +, + +38 +NULL_’code_u³r +, + +39 +NULL_decode_­” +, + +40 +NULL_’code_­” +, + +42 +NULL_¿ndom_fžl +, + +45 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NULL + = { + +48 & +a¢_OP_NULL +, + +49 +a¢_DEF_NULL_gs +, + +50 ( +a¢_DEF_NULL_gs +) / (asn_DEF_NULL_tags[0]), + +51 +a¢_DEF_NULL_gs +, + +52 ( +a¢_DEF_NULL_gs +) / (asn_DEF_NULL_tags[0]), + +53 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +58 +a¢_’c_rv®_t + + +59 + $NULL_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +±r +,  +g_mode +, + +60 +b”_Žv_g_t + +g +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +61 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +63 +”v® +. +’coded + = + `d”_wr™e_gs +( +td +, 0, +g_mode +, 0, +g +, +cb +, +­p_key +); + +64 if( +”v® +. +’coded + == -1) { + +65 +”v® +. +çžed_ty³ + = +td +; + +66 +”v® +. +¡ruùu»_±r + = +±r +; + +69 + `ASN__ENCODED_OK +( +”v® +); + +70 + } +} + +72 +a¢_’c_rv®_t + + +73 + $NULL_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +74 +x”_’cod”_æags_e + +æags +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +75 * +­p_key +) { + +76 +a¢_’c_rv®_t + +” + = {0,0,0}; + +78 () +td +; + +79 () +¥Œ +; + +80 () +žev– +; + +81 () +æags +; + +82 () +cb +; + +83 () +­p_key +; + +86 +” +. +’coded + = 0; + +87 + `ASN__ENCODED_OK +( +” +); + +88 + } +} + +91  +x”_pbd_rv® + + +92 + $NULL__x”_body_decode +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +93 cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +94 () +td +; + +95 () +¥Œ +; + +96 () +chunk_buf +; + +101 if( +chunk_size +) + +102  +XPBD_BROKEN_ENCODING +; + +104  +XPBD_BODY_CONSUMED +; + +105 + } +} + +107 +a¢_dec_rv®_t + + +108 + $NULL_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +109 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +110 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +111  + `x”_decode_´im™ive +( +Ýt_codec_ùx +, +td +, + +112 +¥Œ +, ( +NULL_t +), +Ýt_mÇme +, +buf_±r +, +size +, + +113 +NULL__x”_body_decode +); + +114 + } +} + +117 + $NULL_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +a +, cÚ¡ * +b +) { + +118 () +td +; + +119 () +a +; + +120 () +b +; + +122 + } +} + +125 + $NULL_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +126 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +127 () +td +; + +128 () +žev– +; + +130 if( +¥Œ +) { + +131  ( + `cb +("<´e£Á>", 9, +­p_key +) < 0) ? -1 : 0; + +133  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +135 + } +} + +137 #iâdeà +ASN_DISABLE_OER_SUPPORT + + +139 +a¢_dec_rv®_t + + +140 + $NULL_decode_Ûr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +141 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +142 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +143 cÚ¡ * +±r +, +size_t + +size +) { + +144 +a¢_dec_rv®_t + +rv + = { +RC_OK +, 0}; + +145 () +Ýt_codec_ùx +; + +146 () +td +; + +147 () +cÚ¡¿šts +; + +148 () +±r +; + +149 () +size +; + +151 if(!* +¥Œ +) { + +152 * +¥Œ + = + `MALLOC +(( +NULL_t +)); + +153 if(* +¥Œ +) { + +154 *( +NULL_t + *)* +¥Œ + = 0; + +156 +ASN__DECODE_FAILED +; + +160  +rv +; + +161 + } +} + +163 +a¢_’c_rv®_t + + +164 + $NULL_’code_Ûr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +165 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +166 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +167 +a¢_’c_rv®_t + +” + = {0,0,0}; + +169 () +td +; + +170 () +¥Œ +; + +171 () +cÚ¡¿šts +; + +172 () +cb +; + +173 () +­p_key +; + +175 +” +. +’coded + = 0; + +177 + `ASN__ENCODED_OK +( +” +); + +178 + } +} + +182 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +184 +a¢_dec_rv®_t + + +185 + $NULL_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +186 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +187 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +188 +a¢_³r_d©a_t + * +pd +) { + +189 +a¢_dec_rv®_t + +rv +; + +191 () +Ýt_codec_ùx +; + +192 () +td +; + +193 () +cÚ¡¿šts +; + +194 () +pd +; + +196 if(!* +¥Œ +) { + +197 * +¥Œ + = + `MALLOC +(( +NULL_t +)); + +198 if(* +¥Œ +) { + +199 *( +NULL_t + *)* +¥Œ + = 0; + +201 +ASN__DECODE_FAILED +; + +209 +rv +. +code + = +RC_OK +; + +210 +rv +. +cÚsumed + = 0; + +211  +rv +; + +212 + } +} + +214 +a¢_’c_rv®_t + + +215 + $NULL_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +216 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +217 +a¢_³r_ou_t + * +po +) { + +218 +a¢_’c_rv®_t + +” + = {0,0,0}; + +220 () +td +; + +221 () +cÚ¡¿šts +; + +222 () +¥Œ +; + +223 () +po +; + +225 +” +. +’coded + = 0; + +226 + `ASN__ENCODED_OK +( +” +); + +227 + } +} + +229 +a¢_dec_rv®_t + + +230 + $NULL_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +231 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +232 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +233 +a¢_dec_rv®_t + +rv + = { +RC_OK +, 0}; + +235 () +Ýt_codec_ùx +; + +236 () +td +; + +237 () +cÚ¡¿šts +; + +238 () +pd +; + +240 if(!* +¥Œ +) { + +241 * +¥Œ + = + `MALLOC +(( +NULL_t +)); + +242 if(* +¥Œ +) { + +243 *( +NULL_t + *)* +¥Œ + = 0; + +245 +ASN__DECODE_FAILED +; + +253 +rv +. +code + = +RC_OK +; + +254 +rv +. +cÚsumed + = 0; + +255  +rv +; + +256 + } +} + +259 +a¢_’c_rv®_t + + +260 + $NULL_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +261 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +262 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +263 +a¢_’c_rv®_t + +” + = {0,0,0}; + +265 () +td +; + +266 () +cÚ¡¿šts +; + +267 () +¥Œ +; + +268 () +po +; + +270 +” +. +’coded + = 0; + +271 + `ASN__ENCODED_OK +( +” +); + +272 + } +} + +276 +a¢_¿ndom_fžl_»suÉ_t + + +277 + $NULL_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +278 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡r +, + +279 +size_t + +max_Ëngth +) { + +280 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +281 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +282 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +283 +NULL_t + * +¡ + = * +¥Œ +; + +285 () +td +; + +286 () +cÚ¡r +; + +288 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +290 if( +¡ + =ð +NULL +) { + +291 +¡ + = ( +NULL_t + *)(* +¥Œ + = + `CALLOC +(1, (*st))); + +292 if( +¡ + =ð +NULL +) { + +293  +»suÉ_çžed +; + +297  +»suÉ_ok +; + +298 + } +} + + @NativeEnumerated.c + +12  + ~ + +13  + ~ + +18 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_N©iveEnum”©ed_gs +[] = { + +19 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +21 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_N©iveEnum”©ed + = { + +22 +N©iveIÁeg”_ä“ +, + +23 +N©iveIÁeg”_´št +, + +24 +N©iveIÁeg”_com·» +, + +25 +N©iveIÁeg”_decode_b” +, + +26 +N©iveIÁeg”_’code_d” +, + +27 +N©iveIÁeg”_decode_x” +, + +28 +N©iveEnum”©ed_’code_x” +, + +29 #ifdef +ASN_DISABLE_OER_SUPPORT + + +33 +N©iveEnum”©ed_decode_Ûr +, + +34 +N©iveEnum”©ed_’code_Ûr +, + +36 #ifdef +ASN_DISABLE_PER_SUPPORT + + +42 +N©iveEnum”©ed_decode_u³r +, + +43 +N©iveEnum”©ed_’code_u³r +, + +44 +N©iveEnum”©ed_decode_­” +, + +45 +N©iveEnum”©ed_’code_­” +, + +47 +N©iveEnum”©ed_¿ndom_fžl +, + +50 +a¢_TYPE_desütÜ_t + + ga¢_DEF_N©iveEnum”©ed + = { + +53 & +a¢_OP_N©iveEnum”©ed +, + +54 +a¢_DEF_N©iveEnum”©ed_gs +, + +55 ( +a¢_DEF_N©iveEnum”©ed_gs +) / (asn_DEF_NativeEnumerated_tags[0]), + +56 +a¢_DEF_N©iveEnum”©ed_gs +, + +57 ( +a¢_DEF_N©iveEnum”©ed_gs +) / (asn_DEF_NativeEnumerated_tags[0]), + +58 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +63 +a¢_’c_rv®_t + + +64 + $N©iveEnum”©ed_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +65  +žev– +, +x”_’cod”_æags_e + +æags +, + +66 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +67 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +68 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +69 +a¢_’c_rv®_t + +” + = {0,0,0}; + +70 cÚ¡ * +Çtive + = (cÚ¡ *) +¥Œ +; + +71 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– +; + +73 () +žev– +; + +74 () +æags +; + +76 if(! +Çtive +è +ASN__ENCODE_FAILED +; + +78 +– + = + `INTEGER_m­_v®ue2’um +( +¥ecs +, * +Çtive +); + +79 if( +– +) { + +80 +” +. +’coded + = + +81 + `a¢__fÜm©_to_ÿÎback +( +cb +, +­p_key +, "<%s/>", +– +-> +’um_Çme +); + +82 if( +” +. +’coded + < 0è +ASN__ENCODE_FAILED +; + +83 + `ASN__ENCODED_OK +( +” +); + +85 + `ASN_DEBUG +( + +88 +ASN__ENCODE_FAILED +; + +90 + } +} + +92 +a¢_dec_rv®_t + + +93 + $N©iveEnum”©ed_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +94 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +95 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +96 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +97 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics +; + +98 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +99 * +Çtive + = (*)* +¥Œ +; + +100 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù + = +NULL +; + +101  +v®ue +; + +103 () +Ýt_codec_ùx +; + +105 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +106 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +107 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +108 +ASN__DECODE_FAILED +; + +109 if(! +¥ecs +è +ASN__DECODE_FAILED +; + +111 if(! +Çtive +) { + +112 +Çtive + = (*)(* +¥Œ + = + `CALLOC +(1, (*native))); + +113 if(! +Çtive +è +ASN__DECODE_FAILED +; + +116 + `ASN_DEBUG +("Decodšg % a N©iveEnum”©ed", +td +-> +Çme +); + +118 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +119  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +120 if( +šext + < 0è +ASN__DECODE_STARVED +; + +121 if( +šext +è +ù + = 0; + +124 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +125 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +126 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +127 if( +v®ue + >ð( +¥ecs +-> +ex‹nsiÚ + + +128 ? +¥ecs +-> +ex‹nsiÚ + - 1 : s³cs-> +m­_couÁ +)) + +129 +ASN__DECODE_FAILED +; + +131 if(! +¥ecs +-> +ex‹nsiÚ +) + +132 +ASN__DECODE_FAILED +; + +136 +v®ue + = + `u³r_g‘_n¢nwn +( +pd +); + +137 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +138 +v®ue + +ð +¥ecs +-> +ex‹nsiÚ + - 1; + +139 if( +v®ue + >ð +¥ecs +-> +m­_couÁ +) + +140 +ASN__DECODE_FAILED +; + +143 * +Çtive + = +¥ecs +-> +v®ue2’um +[ +v®ue +]. +Çt_v®ue +; + +144 + `ASN_DEBUG +("Decoded % ð%ld", +td +-> +Çme +, * +Çtive +); + +146  +rv® +; + +147 + } +} + +150 + $N©iveEnum”©ed__com·r_v®ue2’um +(cÚ¡ * +­ +, cÚ¡ * +bp +) { + +151 cÚ¡ +a¢_INTEGER_’um_m­_t + * +a + = +­ +; + +152 cÚ¡ +a¢_INTEGER_’um_m­_t + * +b + = +bp +; + +153 if( +a +-> +Çt_v®ue + =ð +b +->nat_value) + +155 if( +a +-> +Çt_v®ue + < +b +->nat_value) + +158 + } +} + +160 +a¢_’c_rv®_t + + +161 + $N©iveEnum”©ed_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +162 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +163 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +164 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +165 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +166 +a¢_’c_rv®_t + +” + = {0,0,0}; + +167  +Çtive +, +v®ue +; + +168 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù + = +NULL +; + +169  +šext + = 0; + +170 +a¢_INTEGER_’um_m­_t + +key +; + +171 cÚ¡ +a¢_INTEGER_’um_m­_t + * +kf +; + +173 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +174 if(! +¥ecs +è +ASN__ENCODE_FAILED +; + +176 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +177 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +178 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +179 +ASN__ENCODE_FAILED +; + +181 + `ASN_DEBUG +("Encodšg % a N©iveEnum”©ed", +td +-> +Çme +); + +183 +” +. +’coded + = 0; + +185 +Çtive + = *(cÚ¡ *) +¥Œ +; + +187 +key +. +Çt_v®ue + = +Çtive +; + +188 +kf + = + `b£¬ch +(& +key +, +¥ecs +-> +v®ue2’um +, s³cs-> +m­_couÁ +, + +189 ( +key +), +N©iveEnum”©ed__com·r_v®ue2’um +); + +190 if(! +kf +) { + +191 + `ASN_DEBUG +("Nؖem’ˆcÜ»¥Úd tØ%ld", +Çtive +); + +192 +ASN__ENCODE_FAILED +; + +194 +v®ue + = +kf + - +¥ecs +-> +v®ue2’um +; + +196 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +197  +cmpW™h + = +¥ecs +-> +ex‹nsiÚ + + +198 ? +¥ecs +-> +ex‹nsiÚ + - 1 : s³cs-> +m­_couÁ +; + +199 if( +v®ue + >ð +cmpW™h +) + +200 +šext + = 1; + +202 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +203 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +204 +ASN__ENCODE_FAILED +; + +205 if( +šext +è +ù + = 0; + +206 } if( +šext +) { + +207 +ASN__ENCODE_FAILED +; + +210 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +211 if( + `³r_put_ãw_b™s +( +po +, +v®ue +, +ù +-> +¿nge_b™s +)) + +212 +ASN__ENCODE_FAILED +; + +213 + `ASN__ENCODED_OK +( +” +); + +216 if(! +¥ecs +-> +ex‹nsiÚ +) + +217 +ASN__ENCODE_FAILED +; + +222 + `ASN_DEBUG +("value = %ld,ƒxt = %d, inext = %d,„es = %ld", + +223 +v®ue +, +¥ecs +-> +ex‹nsiÚ +, +šext +, + +224 +v®ue + - ( +šext + ? ( +¥ecs +-> +ex‹nsiÚ + - 1) : 0)); + +225 if( + `u³r_put_n¢nwn +( +po +, +v®ue + - ( +šext + ? ( +¥ecs +-> +ex‹nsiÚ + - 1) : 0))) + +226 +ASN__ENCODE_FAILED +; + +228 + `ASN__ENCODED_OK +( +” +); + +229 + } +} + +231 +a¢_dec_rv®_t + + +232 + $N©iveEnum”©ed_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +233 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +234 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +235 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +236 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +237 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +238 * +Çtive + = (*)* +¥Œ +; + +239 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù + = +NULL +; + +240  +v®ue +; + +242 () +Ýt_codec_ùx +; + +244 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +245 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +246 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +247 +ASN__DECODE_FAILED +; + +248 if(! +¥ecs +è +ASN__DECODE_FAILED +; + +250 if(! +Çtive +) { + +251 +Çtive + = (*)(* +¥Œ + = + `CALLOC +(1, (*native))); + +252 if(! +Çtive +è +ASN__DECODE_FAILED +; + +255 + `ASN_DEBUG +("Decodšg % a N©iveEnum”©ed", +td +-> +Çme +); + +257 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +258  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +259 if( +šext + < 0è +ASN__DECODE_STARVED +; + +260 if( +šext +è +ù + = 0; + +264 if( +ù + && ct-> +uµ”_bound + >= 255) { + +265  +·ddšg + = 0; + +266 +·ddšg + = (8 - ( +pd +-> +moved + % 8)) % 8; + +267 + `ASN_DEBUG +("FÜ N©iveEnum”©ed %s,off£tð%lu Paddšg b™ ð%d", +td +-> +Çme +, +pd +-> +moved +, +·ddšg +); + +268 + `ASN_DEBUG +("FÜ N©iveEnum”©ed %s, uµ” bound = %lu", +td +-> +Çme +, +ù +-> +uµ”_bound +); + +269 if( +·ddšg + > 0) + +270 + `³r_g‘_ãw_b™s +( +pd +, +·ddšg +); + +273 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +274 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +275 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +276 if( +v®ue + >ð( +¥ecs +-> +ex‹nsiÚ + + +277 ? +¥ecs +-> +ex‹nsiÚ + - 1 : s³cs-> +m­_couÁ +)) + +278 +ASN__DECODE_FAILED +; + +280 if(! +¥ecs +-> +ex‹nsiÚ +) + +281 +ASN__DECODE_FAILED +; + +285 +v®ue + = + `u³r_g‘_n¢nwn +( +pd +); + +286 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +287 +v®ue + +ð +¥ecs +-> +ex‹nsiÚ + - 1; + +288 if( +v®ue + >ð +¥ecs +-> +m­_couÁ +) + +289 +ASN__DECODE_FAILED +; + +292 * +Çtive + = +¥ecs +-> +v®ue2’um +[ +v®ue +]. +Çt_v®ue +; + +293 + `ASN_DEBUG +("Decoded % ð%ld", +td +-> +Çme +, * +Çtive +); + +295  +rv® +; + +296 + } +} + +298 +a¢_’c_rv®_t + + +299 + $N©iveEnum”©ed_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +300 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +301 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +302 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +303 +a¢_’c_rv®_t + +” + = {0,0,0}; + +304  +Çtive +, +v®ue +; + +305 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù + = +NULL +; + +306  +šext + = 0; + +307 +a¢_INTEGER_’um_m­_t + +key +; + +308 +a¢_INTEGER_’um_m­_t + * +kf +; + +310 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +311 if(! +¥ecs +è +ASN__ENCODE_FAILED +; + +313 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +314 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +315 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +316 +ASN__ENCODE_FAILED +; + +318 + `ASN_DEBUG +("Encodšg % a N©iveEnum”©ed", +td +-> +Çme +); + +320 +” +. +’coded + = 0; + +322 +Çtive + = *(cÚ¡ *) +¥Œ +; + +323 if( +Çtive + < 0è +ASN__ENCODE_FAILED +; + +325 +key +. +Çt_v®ue + = +Çtive +; + +326 +kf + = + `b£¬ch +(& +key +, +¥ecs +-> +v®ue2’um +, s³cs-> +m­_couÁ +, + +327 ( +key +), +N©iveEnum”©ed__com·r_v®ue2’um +); + +328 if(! +kf +) { + +329 + `ASN_DEBUG +("Nؖem’ˆcÜ»¥Úd tØ%ld", +Çtive +); + +330 +ASN__ENCODE_FAILED +; + +332 +v®ue + = +kf + - +¥ecs +-> +v®ue2’um +; + +334 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +335  +cmpW™h + = +¥ecs +-> +ex‹nsiÚ + + +336 ? +¥ecs +-> +ex‹nsiÚ + - 1 : s³cs-> +m­_couÁ +; + +337 if( +v®ue + >ð +cmpW™h +) + +338 +šext + = 1; + +340 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +341 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +342 +ASN__ENCODE_FAILED +; + +343 if( +šext +è +ù + = 0; + +344 } if( +šext +) { + +345 +ASN__ENCODE_FAILED +; + +348 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +349 if( + `³r_put_ãw_b™s +( +po +, +v®ue +, +ù +-> +¿nge_b™s +)) + +350 +ASN__ENCODE_FAILED +; + +351 + `ASN__ENCODED_OK +( +” +); + +354 if(! +¥ecs +-> +ex‹nsiÚ +) + +355 +ASN__ENCODE_FAILED +; + +360 + `ASN_DEBUG +("value = %ld,ƒxt = %d, inext = %d,„es = %ld", + +361 +v®ue +, +¥ecs +-> +ex‹nsiÚ +, +šext +, + +362 +v®ue + - ( +šext + ? ( +¥ecs +-> +ex‹nsiÚ + - 1) : 0)); + +363 if( + `u³r_put_n¢nwn +( +po +, +v®ue + - ( +šext + ? ( +¥ecs +-> +ex‹nsiÚ + - 1) : 0))) + +364 +ASN__ENCODE_FAILED +; + +366 + `ASN__ENCODED_OK +( +” +); + +367 + } +} + + @NativeInteger.c + +13  + ~ + +14  + ~ + +19 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_N©iveIÁeg”_gs +[] = { + +20 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +22 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_N©iveIÁeg” + = { + +23 +N©iveIÁeg”_ä“ +, + +24 +N©iveIÁeg”_´št +, + +25 +N©iveIÁeg”_com·» +, + +26 +N©iveIÁeg”_decode_b” +, + +27 +N©iveIÁeg”_’code_d” +, + +28 +N©iveIÁeg”_decode_x” +, + +29 +N©iveIÁeg”_’code_x” +, + +30 #ifdef +ASN_DISABLE_OER_SUPPORT + + +34 +N©iveIÁeg”_decode_Ûr +, + +35 +N©iveIÁeg”_’code_Ûr +, + +37 #ifdef +ASN_DISABLE_PER_SUPPORT + + +43 +N©iveIÁeg”_decode_u³r +, + +44 +N©iveIÁeg”_’code_u³r +, + +45 +N©iveIÁeg”_decode_­” +, + +46 +N©iveIÁeg”_’code_­” +, + +48 +N©iveIÁeg”_¿ndom_fžl +, + +51 +a¢_TYPE_desütÜ_t + + ga¢_DEF_N©iveIÁeg” + = { + +54 & +a¢_OP_N©iveIÁeg” +, + +55 +a¢_DEF_N©iveIÁeg”_gs +, + +56 ( +a¢_DEF_N©iveIÁeg”_gs +) / (asn_DEF_NativeInteger_tags[0]), + +57 +a¢_DEF_N©iveIÁeg”_gs +, + +58 ( +a¢_DEF_N©iveIÁeg”_gs +) / (asn_DEF_NativeInteger_tags[0]), + +59 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +67 +a¢_dec_rv®_t + + +68 + $N©iveIÁeg”_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +69 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +nšt_±r +, + +70 cÚ¡ * +buf_±r +, +size_t + +size +,  +g_mode +) { + +71 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +72 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +73 * +Çtive + = (*)* +nšt_±r +; + +74 +a¢_dec_rv®_t + +rv® +; + +75 +b”_Žv_Ën_t + +Ëngth +; + +80 if( +Çtive + =ð +NULL +) { + +81 +Çtive + = (*)(* +nšt_±r + = + `CALLOC +(1, (*native))); + +82 if( +Çtive + =ð +NULL +) { + +83 +rv® +. +code + = +RC_FAIL +; + +84 +rv® +. +cÚsumed + = 0; + +85  +rv® +; + +89 + `ASN_DEBUG +("Decoding %s‡s INTEGER (tm=%d)", + +90 +td +-> +Çme +, +g_mode +); + +95 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, 0, +buf_±r +, +size +, + +96 +g_mode +, 0, & +Ëngth +, 0); + +97 if( +rv® +. +code + !ð +RC_OK +) + +98  +rv® +; + +100 + `ASN_DEBUG +("% Ëngth i %d by‹s", +td +-> +Çme +, () +Ëngth +); + +105 +buf_±r + = ((cÚ¡ *)buf_±rè+ +rv® +. +cÚsumed +; + +106 +size + -ð +rv® +. +cÚsumed +; + +107 if( +Ëngth + > ( +b”_Žv_Ën_t +) +size +) { + +108 +rv® +. +code + = +RC_WMORE +; + +109 +rv® +. +cÚsumed + = 0; + +110  +rv® +; + +119 +INTEGER_t + +tmp +; + +121 cÚ¡ * +cÚ¡buf +; + +122 * +nÚcÚ¡buf +; + +123 } +uncÚ¡_buf +; + +124  +l +; + +126 +uncÚ¡_buf +. +cÚ¡buf + = +buf_±r +; + +127 +tmp +. +buf + = ( +ušt8_t + *) +uncÚ¡_buf +. +nÚcÚ¡buf +; + +128 +tmp +. +size + = +Ëngth +; + +130 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +131 ? + `a¢_INTEGER2ulÚg +(& +tmp +, (*)& +l +) + +132 : + `a¢_INTEGER2lÚg +(& +tmp +, & +l +)) { + +133 +rv® +. +code + = +RC_FAIL +; + +134 +rv® +. +cÚsumed + = 0; + +135  +rv® +; + +138 * +Çtive + = +l +; + +141 +rv® +. +code + = +RC_OK +; + +142 +rv® +. +cÚsumed + +ð +Ëngth +; + +144 + `ASN_DEBUG +("Took %ld/%ld bytesoƒncode %s (%ld)", + +145 () +rv® +. +cÚsumed +, () +Ëngth +, +td +-> +Çme +, ()* +Çtive +); + +147  +rv® +; + +148 + } +} + +153 +a¢_’c_rv®_t + + +154 + $N©iveIÁeg”_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +sd +, cÚ¡ * +±r +, + +155  +g_mode +, +b”_Žv_g_t + +g +, + +156 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +157  +Çtive + = *(cÚ¡ *) +±r +; + +158 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +159 +INTEGER_t + +tmp +; + +161 #ifdef +WORDS_BIGENDIAN + + +163 +tmp +. +buf + = ( +ušt8_t + *)& +Çtive +; + +164 +tmp +. +size + = ( +Çtive +); + +167 +ušt8_t + +buf +[( +Çtive +)]; + +168 +ušt8_t + * +p +; + +171  +p + = +buf + + (bufè- 1;… >ðbuf;…--, +Çtive + >>= 8) + +172 * +p + = ( +ušt8_t +) +Çtive +; + +174 +tmp +. +buf + = buf; + +175 +tmp +. +size + = ( +buf +); + +179 +”v® + = + `INTEGER_’code_d” +( +sd +, & +tmp +, +g_mode +, +g +, +cb +, +­p_key +); + +180 if( +”v® +. +¡ruùu»_±r + =ð& +tmp +) { + +181 +”v® +. +¡ruùu»_±r + = +±r +; + +183  +”v® +; + +184 + } +} + +189 +a¢_dec_rv®_t + + +190 + $N©iveIÁeg”_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +191 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +192 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, + +193 +size_t + +size +) { + +194 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +195 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +196 +a¢_dec_rv®_t + +rv® +; + +197 +INTEGER_t + +¡ +; + +198 * +¡_±r + = (*)& +¡ +; + +199 * +Çtive + = (*)* +¥Œ +; + +201 if(! +Çtive +) { + +202 +Çtive + = (*)(* +¥Œ + = + `CALLOC +(1, (*native))); + +203 if(! +Çtive +è +ASN__DECODE_FAILED +; + +206 + `mem£t +(& +¡ +, 0, (st)); + +207 +rv® + = + `INTEGER_decode_x” +( +Ýt_codec_ùx +, +td +, & +¡_±r +, + +208 +Ýt_mÇme +, +buf_±r +, +size +); + +209 if( +rv® +. +code + =ð +RC_OK +) { + +210  +l +; + +211 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +212 ? + `a¢_INTEGER2ulÚg +(& +¡ +, (*)& +l +) + +213 : + `a¢_INTEGER2lÚg +(& +¡ +, & +l +)) { + +214 +rv® +. +code + = +RC_FAIL +; + +215 +rv® +. +cÚsumed + = 0; + +217 * +Çtive + = +l +; + +225 +rv® +. +cÚsumed + = 0; + +227 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_INTEGER +, & +¡ +); + +228  +rv® +; + +229 + } +} + +232 +a¢_’c_rv®_t + + +233 + $N©iveIÁeg”_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +234  +žev– +, +x”_’cod”_æags_e + +æags +, + +235 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +236 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +237 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +238  +sü©ch +[32]; + +239 +a¢_’c_rv®_t + +” + = {0,0,0}; + +240 cÚ¡ * +Çtive + = (cÚ¡ *) +¥Œ +; + +242 () +žev– +; + +243 () +æags +; + +245 if(! +Çtive +è +ASN__ENCODE_FAILED +; + +247 +” +. +’coded + = + `¢´štf +( +sü©ch +, (scratch), + +248 ( +¥ecs + && s³cs-> +f›ld_unsigÃd +) + +249 ? "%lu" : "%ld", * +Çtive +); + +250 if( +” +. +’coded + <ð0 || ( +size_t +ër.’coded >ð( +sü©ch +) + +251 || + `cb +( +sü©ch +, +” +. +’coded +, +­p_key +) < 0) + +252 +ASN__ENCODE_FAILED +; + +254 + `ASN__ENCODED_OK +( +” +); + +255 + } +} + +257 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +259 +a¢_dec_rv®_t + + +260 + $N©iveIÁeg”_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +261 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +262 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +263 +a¢_³r_d©a_t + * +pd +) { + +264 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +265 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +266 +a¢_dec_rv®_t + +rv® +; + +267 * +Çtive + = (*)* +¥Œ +; + +268 +INTEGER_t + +tmpšt +; + +269 * +tmpšŒ + = & +tmpšt +; + +271 () +Ýt_codec_ùx +; + +272 + `ASN_DEBUG +("Decodšg N©iveIÁeg” % (UPER)", +td +-> +Çme +); + +274 if(! +Çtive +) { + +275 +Çtive + = (*)(* +¥Œ + = + `CALLOC +(1, (*native))); + +276 if(! +Çtive +è +ASN__DECODE_FAILED +; + +279 + `mem£t +(& +tmpšt +, 0, mpint); + +280 +rv® + = + `INTEGER_decode_u³r +( +Ýt_codec_ùx +, +td +, +cÚ¡¿šts +, + +281 & +tmpšŒ +, +pd +); + +282 if( +rv® +. +code + =ð +RC_OK +) { + +283 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +284 ? + `a¢_INTEGER2ulÚg +(& +tmpšt +, (*) +Çtive +) + +285 : + `a¢_INTEGER2lÚg +(& +tmpšt +, +Çtive +)) + +286 +rv® +. +code + = +RC_FAIL +; + +288 + `ASN_DEBUG +("NativeInteger %s got value %ld", + +289 +td +-> +Çme +, * +Çtive +); + +291 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_INTEGER +, & +tmpšt +); + +293  +rv® +; + +294 + } +} + +296 +a¢_’c_rv®_t + + +297 + $N©iveIÁeg”_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +298 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +299 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +300 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +301 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +302 +a¢_’c_rv®_t + +” + = {0,0,0}; + +303  +Çtive +; + +304 +INTEGER_t + +tmpšt +; + +306 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +308 +Çtive + = *(cÚ¡ *) +¥Œ +; + +310 + `ASN_DEBUG +("Encodšg N©iveIÁeg” % %ld (UPER)", +td +-> +Çme +, +Çtive +); + +312 + `mem£t +(& +tmpšt +, 0, (tmpint)); + +313 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +314 ? + `a¢_ulÚg2INTEGER +(& +tmpšt +, +Çtive +) + +315 : + `a¢_lÚg2INTEGER +(& +tmpšt +, +Çtive +)) + +316 +ASN__ENCODE_FAILED +; + +317 +” + = + `INTEGER_’code_u³r +( +td +, +cÚ¡¿šts +, & +tmpšt +, +po +); + +318 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_INTEGER +, & +tmpšt +); + +319  +” +; + +320 + } +} + +322 +a¢_dec_rv®_t + + +323 + $N©iveIÁeg”_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +324 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +325 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +327 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +328 +a¢_dec_rv®_t + +rv® +; + +329 * +Çtive + = (*)* +¥Œ +; + +330 +INTEGER_t + +tmpšt +; + +331 * +tmpšŒ + = & +tmpšt +; + +333 () +Ýt_codec_ùx +; + +334 + `ASN_DEBUG +("Decodšg N©iveIÁeg” % (APER)", +td +-> +Çme +); + +336 if(! +Çtive +) { + +337 +Çtive + = (*)(* +¥Œ + = + `CALLOC +(1, (*native))); + +338 if(! +Çtive +è +ASN__DECODE_FAILED +; + +341 + `mem£t +(& +tmpšt +, 0, mpint); + +342 +rv® + = + `INTEGER_decode_­” +( +Ýt_codec_ùx +, +td +, +cÚ¡¿šts +, + +343 & +tmpšŒ +, +pd +); + +344 if( +rv® +. +code + =ð +RC_OK +) { + +345 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +346 ? + `a¢_INTEGER2ulÚg +(& +tmpšt +, (*) +Çtive +) + +347 : + `a¢_INTEGER2lÚg +(& +tmpšt +, +Çtive +)) + +348 +rv® +. +code + = +RC_FAIL +; + +350 + `ASN_DEBUG +("NativeInteger %s got value %ld", + +351 +td +-> +Çme +, * +Çtive +); + +353 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_INTEGER +, & +tmpšt +); + +355  +rv® +; + +356 + } +} + +358 +a¢_’c_rv®_t + + +359 + $N©iveIÁeg”_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +360 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +361 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +363 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_INTEGER_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +364 +a¢_’c_rv®_t + +” + = {0,0,0}; + +365  +Çtive +; + +366 +INTEGER_t + +tmpšt +; + +368 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +370 +Çtive + = *(cÚ¡ *) +¥Œ +; + +372 + `ASN_DEBUG +("Encodšg N©iveIÁeg” % %ld (APER)", +td +-> +Çme +, +Çtive +); + +374 + `mem£t +(& +tmpšt +, 0, (tmpint)); + +375 if(( +¥ecs +&&¥ecs-> +f›ld_unsigÃd +) + +376 ? + `a¢_ulÚg2INTEGER +(& +tmpšt +, () +Çtive +) + +377 : + `a¢_lÚg2INTEGER +(& +tmpšt +, +Çtive +)) + +378 +ASN__ENCODE_FAILED +; + +379 +” + = + `INTEGER_’code_­” +( +td +, +cÚ¡¿šts +, & +tmpšt +, +po +); + +380 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_INTEGER +, & +tmpšt +); + +381  +” +; + +382 + } +} + +390 + $N©iveIÁeg”_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +391  +žev– +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +392 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +393 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +394 cÚ¡ * +Çtive + = (cÚ¡ *) +¥Œ +; + +395  +sü©ch +[32]; + +396  +»t +; + +398 () +td +; + +399 () +žev– +; + +401 if( +Çtive +) { + +402  +v®ue + = * +Çtive +; + +403 +»t + = + `¢´štf +( +sü©ch +, (scratch), + +404 ( +¥ecs + && s³cs-> +f›ld_unsigÃd +è? "%lu" : "%ld", +v®ue +); + +405 + `as£¹ +( +»t + > 0 && ( +size_t +ì‘ < ( +sü©ch +)); + +406 if( + `cb +( +sü©ch +, +»t +, +­p_key +) < 0)  -1; + +407 if( +¥ecs + && ( +v®ue + >ð0 || !¥ecs-> +f›ld_unsigÃd +)) { + +408 cÚ¡ +a¢_INTEGER_’um_m­_t + * +– + = + +409 + `INTEGER_m­_v®ue2’um +( +¥ecs +, +v®ue +); + +410 if( +– +) { + +411 if( + `cb +(" (", 2, +­p_key +) < 0)  -1; + +412 if( + `cb +( +– +-> +’um_Çme +,ƒl-> +’um_Ën +, +­p_key +) < 0)  -1; + +413 if( + `cb +(")", 1, +­p_key +) < 0)  -1; + +418  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +420 + } +} + +423 + $N©iveIÁeg”_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +±r +, + +424 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +425 if(! +td + || ! +±r +) + +428 + `ASN_DEBUG +("Freeing %s‡s INTEGER (%d, %p, Native)", + +429 +td +-> +Çme +, +m‘hod +, +±r +); + +431  +m‘hod +) { + +432  +ASFM_FREE_EVERYTHING +: + +433 + `FREEMEM +( +±r +); + +435  +ASFM_FREE_UNDERLYING +: + +437  +ASFM_FREE_UNDERLYING_AND_RESET +: + +438 + `mem£t +( +±r +, 0, ()); + +441 + } +} + +444 + $N©iveIÁeg”_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, cÚ¡ * +b±r +) { + +445 () +td +; + +447 if( +­Œ + && +b±r +) { + +448 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +449 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +450 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +451 cÚ¡ * +a + = +­Œ +; + +452 cÚ¡ * +b + = +b±r +; + +453 if(* +a + < * +b +) { + +455 } if(* +a + > * +b +) { + +461 cÚ¡ * +a + = +­Œ +; + +462 cÚ¡ * +b + = +b±r +; + +463 if(* +a + < * +b +) { + +465 } if(* +a + > * +b +) { + +471 } if(! +­Œ +) { + +476 + } +} + +478 +a¢_¿ndom_fžl_»suÉ_t + + +479 + $N©iveIÁeg”_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +480 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +481 +size_t + +max_Ëngth +) { + +482 cÚ¡ +a¢_INTEGER_¥ecifics_t + * +¥ecs + = + +483 (cÚ¡ +a¢_INTEGER_¥ecifics_t + *) +td +-> +¥ecifics +; + +484 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +485 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +486 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +487 * +¡ + = * +¥Œ +; + +488 cÚ¡ +a¢_INTEGER_’um_m­_t + * +em­ +; + +489 +size_t + +em­_Ën +; + +490 +štmax_t + +v®ue +; + +491  +fšd_šside_m­ +; + +493 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +495 if( +¡ + =ð +NULL +) { + +496 +¡ + = (*) + `CALLOC +(1, (*st)); + +497 if( +¡ + =ð +NULL +) { + +498  +»suÉ_çžed +; + +502 if( +¥ecs +) { + +503 +em­ + = +¥ecs +-> +v®ue2’um +; + +504 +em­_Ën + = +¥ecs +-> +m­_couÁ +; + +505 if( +¥ecs +-> +¡riù_’um”©iÚ +) { + +506 +fšd_šside_m­ + = +em­_Ën + > 0; + +508 +fšd_šside_m­ + = +em­_Ën + ? + `a¢_¿ndom_b‘w“n +(0, 1) : 0; + +511 +em­ + = 0; + +512 +em­_Ën + = 0; + +513 +fšd_šside_m­ + = 0; + +516 if( +fšd_šside_m­ +) { + +517 + `as£¹ +( +em­_Ën + > 0); + +518 +v®ue + = +em­ +[ + `a¢_¿ndom_b‘w“n +(0, +em­_Ën + - 1)]. +Çt_v®ue +; + +520 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +ù +; + +522 cÚ¡  +v¬ŸÁs +[] = { + +528 if( +¥ecs + && s³cs-> +f›ld_unsigÃd +) { + +529 + `as£¹ +( +v¬ŸÁs +[18] == 0); + +530 +v®ue + = +v¬ŸÁs +[ + `a¢_¿ndom_b‘w“n +( + +531 18, ( +v¬ŸÁs +) / (variants[0]) - 1)]; + +533 +v®ue + = +v¬ŸÁs +[ + `a¢_¿ndom_b‘w“n +( + +534 0, ( +v¬ŸÁs +) / (variants[0]) - 1)]; + +537 if(! +cÚ¡¿šts +ècÚ¡¿št ð& +td +-> +’codšg_cÚ¡¿šts +; + +538 +ù + = +cÚ¡¿šts + ? cÚ¡¿šts-> +³r_cÚ¡¿šts + : 0; + +539 if( +ù + && (ù-> +v®ue +. +æags + & +APC_CONSTRAINED +)) { + +540 if( +v®ue + < +ù +->v®ue. +low”_bound + || v®u> ct->v®ue. +uµ”_bound +) { + +541 +v®ue + = + `a¢_¿ndom_b‘w“n +( +ù +->v®ue. +low”_bound +, + +542 +ù +-> +v®ue +. +uµ”_bound +); + +547 * +¥Œ + = +¡ +; + +548 * +¡ + = +v®ue +; + +549  +»suÉ_ok +; + +550 + } +} + + @NativeReal.c + +12  + ~ + +13  + ~ + +14  + ~ + +15  + ~ + +16  + ~ + +17  + ~<æßt.h +> + +19 #ià +defšed +( +__þªg__ +) + +27 #´agm¨ +þªg + +dŸgno¡ic + +push + + +28 #´agm¨ +þªg + +dŸgno¡ic + +ignÜed + "-Wc11-extensions" + +29  + $a¢_i¢ª +( +d +) { + +30  + `i¢ª +( +d +); + +31 + } +} + +32 #´agm¨ +þªg + +dŸgno¡ic + +pÝ + + +34  + #a¢_i¢ª +( +v +è + `i¢ª +(v) + + ) + +40 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_N©iveR—l_gs +[] = { + +41 ( +ASN_TAG_CLASS_UNIVERSAL + | (9 << 2)) + +43 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_N©iveR—l + = { + +44 +N©iveR—l_ä“ +, + +45 +N©iveR—l_´št +, + +46 +N©iveR—l_com·» +, + +47 +N©iveR—l_decode_b” +, + +48 +N©iveR—l_’code_d” +, + +49 +N©iveR—l_decode_x” +, + +50 +N©iveR—l_’code_x” +, + +51 #ifdef +ASN_DISABLE_OER_SUPPORT + + +55 +N©iveR—l_decode_Ûr +, + +56 +N©iveR—l_’code_Ûr +, + +58 #ifdef +ASN_DISABLE_PER_SUPPORT + + +64 +N©iveR—l_decode_u³r +, + +65 +N©iveR—l_’code_u³r +, + +66 +N©iveR—l_decode_­” +, + +67 +N©iveR—l_’code_­” +, + +69 +N©iveR—l_¿ndom_fžl +, + +72 +a¢_TYPE_desütÜ_t + + ga¢_DEF_N©iveR—l + = { + +75 & +a¢_OP_N©iveR—l +, + +76 +a¢_DEF_N©iveR—l_gs +, + +77 ( +a¢_DEF_N©iveR—l_gs +) / (asn_DEF_NativeReal_tags[0]), + +78 +a¢_DEF_N©iveR—l_gs +, + +79 ( +a¢_DEF_N©iveR—l_gs +) / (asn_DEF_NativeReal_tags[0]), + +80 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +85  +size_t + +N©iveR—l__æßt_size +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +); + +86  +N©iveR—l__g‘_doubË +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +87 cÚ¡ * +±r +); + +88  +ssize_t + +N©iveR—l__£t +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +89  +d +); + +94 +a¢_dec_rv®_t + + +95 + $N©iveR—l_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +96 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +97 cÚ¡ * +buf_±r +, +size_t + +size +,  +g_mode +) { + +98 +a¢_dec_rv®_t + +rv® +; + +99 +b”_Žv_Ën_t + +Ëngth +; + +101 + `ASN_DEBUG +("Decodšg % a REAL (tm=%d)", +td +-> +Çme +, +g_mode +); + +106 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, 0, +buf_±r +, +size +, +g_mode +, 0, + +107 & +Ëngth +, 0); + +108 if( +rv® +. +code + !ð +RC_OK +) „val; + +109 + `as£¹ +( +Ëngth + >= 0); + +111 + `ASN_DEBUG +("% Ëngth i %d by‹s", +td +-> +Çme +, () +Ëngth +); + +116 +buf_±r + = ((cÚ¡ *)buf_±rè+ +rv® +. +cÚsumed +; + +117 +size + -ð +rv® +. +cÚsumed +; + +118 if( +Ëngth + > ( +b”_Žv_Ën_t +) +size +) { + +119 +rv® +. +code + = +RC_WMORE +; + +120 +rv® +. +cÚsumed + = 0; + +121  +rv® +; + +130 +ušt8_t + +sü©ch +[24]; + +131 +REAL_t + +tmp +; + +132  +d +; + +133  +»t +; + +135 if(( +size_t +) +Ëngth + < ( +sü©ch +)) { + +136 +tmp +. +buf + = +sü©ch +; + +137 +tmp +. +size + = +Ëngth +; + +140 +tmp +. +buf + = + `CALLOC +(1, +Ëngth + + 1); + +141 +tmp +. +size + = +Ëngth +; + +142 if(! +tmp +. +buf +) { + +143 +rv® +. +code + = +RC_FAIL +; + +144 +rv® +. +cÚsumed + = 0; + +145  +rv® +; + +149 + `memýy +( +tmp +. +buf +, +buf_±r +, +Ëngth +); + +150 +tmp +. +buf +[ +Ëngth +] = '\0'; + +152 +»t + = + `a¢_REAL2doubË +(& +tmp +, & +d +); + +153 if( +tmp +. +buf + !ð +sü©ch +è + `FREEMEM +(tmp.buf); + +154 if( +»t +) { + +155 +rv® +. +code + = +RC_FAIL +; + +156 +rv® +. +cÚsumed + = 0; + +157  +rv® +; + +160 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +d +) < 0) + +161 +ASN__DECODE_FAILED +; + +164 +rv® +. +code + = +RC_OK +; + +165 +rv® +. +cÚsumed + +ð +Ëngth +; + +167 + `ASN_DEBUG +("Took %ld/%ld by‹ tؒcod%s", () +rv® +. +cÚsumed +, + +168 () +Ëngth +, +td +-> +Çme +); + +170  +rv® +; + +171 + } +} + +176 +a¢_’c_rv®_t + + +177 + $N©iveR—l_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +178  +g_mode +, +b”_Žv_g_t + +g +, + +179 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +180  +d + = + `N©iveR—l__g‘_doubË +( +td +, +¥Œ +); + +181 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +182 +REAL_t + +tmp +; + +185 + `mem£t +(& +tmp +, 0, (tmp)); + +187 if( + `a¢_doubË2REAL +(& +tmp +, +d +)) + +188 +ASN__ENCODE_FAILED +; + +191 +”v® + = + `d”_’code_´im™ive +( +td +, & +tmp +, +g_mode +, +g +, +cb +, +­p_key +); + +192 if( +”v® +. +’coded + == -1) { + +193 + `as£¹ +( +”v® +. +¡ruùu»_±r + =ð& +tmp +); + +194 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +198 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +200  +”v® +; + +201 + } +} + +203 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +208 +a¢_dec_rv®_t + + +209 + $N©iveR—l_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +210 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +211 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +212 +a¢_³r_d©a_t + * +pd +) { + +213 +a¢_dec_rv®_t + +rv® +; + +214  +d +; + +215 +REAL_t + +tmp +; + +216 * +±mp + = & +tmp +; + +217  +»t +; + +219 () +cÚ¡¿šts +; + +221 + `mem£t +(& +tmp +, 0, (tmp)); + +222 +rv® + = + `OCTET_STRING_decode_u³r +( +Ýt_codec_ùx +, & +a¢_DEF_REAL +, + +223 +NULL +, & +±mp +, +pd +); + +224 if( +rv® +. +code + !ð +RC_OK +) { + +225 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +226  +rv® +; + +229 +»t + = + `a¢_REAL2doubË +(& +tmp +, & +d +); + +230 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +231 if( +»t +è +ASN__DECODE_FAILED +; + +233 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +d +) < 0 ) + +234 +ASN__DECODE_FAILED +; + +236  +rv® +; + +237 + } +} + +242 +a¢_’c_rv®_t + + +243 + $N©iveR—l_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +244 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +245 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +246  +d + = + `N©iveR—l__g‘_doubË +( +td +, +¥Œ +); + +247 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +248 +REAL_t + +tmp +; + +250 () +cÚ¡¿šts +; + +253 + `mem£t +(& +tmp +, 0, (tmp)); + +255 if( + `a¢_doubË2REAL +(& +tmp +, +d +)) + +256 +ASN__ENCODE_FAILED +; + +259 +”v® + = + `OCTET_STRING_’code_u³r +(& +a¢_DEF_REAL +, +NULL +, & +tmp +, +po +); + +260 if( +”v® +. +’coded + == -1) + +261 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +264 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +266  +”v® +; + +267 + } +} + +270 +a¢_dec_rv®_t + + +271 + $N©iveR—l_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +272 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +273 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +274 ** +dbl_±r +, +a¢_³r_d©a_t + * +pd +) { + +275 * +Dbl + = (*)* +dbl_±r +; + +276 +a¢_dec_rv®_t + +rv® +; + +277 +REAL_t + +tmp +; + +278 * +±mp + = & +tmp +; + +279  +»t +; + +281 () +cÚ¡¿šts +; + +286 if( +Dbl + =ð +NULL +) { + +287 * +dbl_±r + = + `CALLOC +(1, (* +Dbl +)); + +288 +Dbl + = (*)* +dbl_±r +; + +289 if( +Dbl + =ð +NULL +) + +290 +ASN__DECODE_FAILED +; + +293 + `mem£t +(& +tmp +, 0, (tmp)); + +294 +rv® + = + `OCTET_STRING_decode_­” +( +Ýt_codec_ùx +, +td +, +NULL +, + +295 & +±mp +, +pd +); + +296 if( +rv® +. +code + !ð +RC_OK +) { + +297 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +298  +rv® +; + +301 +»t + = + `a¢_REAL2doubË +(& +tmp +, +Dbl +); + +302 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +303 if( +»t +è +ASN__DECODE_FAILED +; + +305  +rv® +; + +306 + } +} + +308 +a¢_’c_rv®_t + + +309 + $N©iveR—l_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +310 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +311 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +312  +Dbl + = *(cÚ¡ *) +¥Œ +; + +313 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +314 +REAL_t + +tmp +; + +316 () +cÚ¡¿šts +; + +319 + `mem£t +(& +tmp +, 0, (tmp)); + +321 if( + `a¢_doubË2REAL +(& +tmp +, +Dbl +)) + +322 +ASN__ENCODE_FAILED +; + +325 +”v® + = + `OCTET_STRING_’code_­” +( +td +, +NULL +, & +tmp +, +po +); + +326 if( +”v® +. +’coded + == -1) + +327 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +330 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +332  +”v® +; + +333 + } +} + +337 #iâdeà +ASN_DISABLE_OER_SUPPORT + + +344 + $N©iveR—l__ÃtwÜk_sw­ +( +size_t + +æßt_size +, cÚ¡ * +¤ý +, +ušt8_t + * +d¡ +) { + +345 cÚ¡ +ušt8_t + * +¤c + = +¤ý +; + +346  +‹¡ + = -0.0; + +347  +æßt_big_’dŸn + = *(cÚ¡ *)& +‹¡ + != 0; + +349 cÚ¡  +sizeof_doubË_is_8_a +[()-7] +CC_NOTUSED +; + +350 cÚ¡  +sizeof_doubË_is_8_b +[9-()] +CC_NOTUSED +; + +352 cÚ¡  +sizeof_æßt_is_4_a +[()-3] +CC_NOTUSED +; + +353 cÚ¡  +sizeof_æßt_is_4_b +[5-()] +CC_NOTUSED +; + +355  +æßt_size +) { + +357 + `as£¹ +(() == 8); + +358 if( +æßt_big_’dŸn +) { + +359 +d¡ +[0] = +¤c +[0]; + +360 +d¡ +[1] = +¤c +[1]; + +361 +d¡ +[2] = +¤c +[2]; + +362 +d¡ +[3] = +¤c +[3]; + +363 +d¡ +[4] = +¤c +[4]; + +364 +d¡ +[5] = +¤c +[5]; + +365 +d¡ +[6] = +¤c +[6]; + +366 +d¡ +[7] = +¤c +[7]; + +368 +d¡ +[0] = +¤c +[7]; + +369 +d¡ +[1] = +¤c +[6]; + +370 +d¡ +[2] = +¤c +[5]; + +371 +d¡ +[3] = +¤c +[4]; + +372 +d¡ +[4] = +¤c +[3]; + +373 +d¡ +[5] = +¤c +[2]; + +374 +d¡ +[6] = +¤c +[1]; + +375 +d¡ +[7] = +¤c +[0]; + +379 + `as£¹ +(() == 4); + +380 if( +æßt_big_’dŸn +) { + +381 +d¡ +[0] = +¤c +[0]; + +382 +d¡ +[1] = +¤c +[1]; + +383 +d¡ +[2] = +¤c +[2]; + +384 +d¡ +[3] = +¤c +[3]; + +386 +d¡ +[0] = +¤c +[3]; + +387 +d¡ +[1] = +¤c +[2]; + +388 +d¡ +[2] = +¤c +[1]; + +389 +d¡ +[3] = +¤c +[0]; + +393 + } +} + +398 +a¢_’c_rv®_t + + +399 + $N©iveR—l_’code_Ûr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +400 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +401 cÚ¡ * +¥Œ +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +402 * +­p_key +) { + +403 +a¢_’c_rv®_t + +” + = {0, 0, 0}; + +405 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +Ûr_cÚ¡¿šts +; + +406 if( +cÚ¡¿šts + && cÚ¡¿šts-> +v®ue +. +width + != 0) { + +408 +ušt8_t + +sü©ch +[()]; + +409 cÚ¡ +a¢_N©iveR—l_¥ecifics_t + * +¥ecs + = + +410 (cÚ¡ +a¢_N©iveR—l_¥ecifics_t + *) +td +-> +¥ecifics +; + +411 +size_t + +wœe_size + = +cÚ¡¿šts +-> +v®ue +. +width +; + +413 if( +¥ecs + ? ( +wœe_size + =ð¥ecs-> +æßt_size +) + +414 : ( +wœe_size + == ())) { + +420 + `as£¹ +(( +wœe_size + == ()) + +421 || ( +¥ecs + && s³cs-> +æßt_size + =ð +wœe_size +)); + +422 +ASN__ENCODE_FAILED +; + +429 + `N©iveR—l__ÃtwÜk_sw­ +( +wœe_size +, +¥Œ +, +sü©ch +); + +430 if( + `cb +( +sü©ch +, +wœe_size +, +­p_key +) < 0) { + +431 +ASN__ENCODE_FAILED +; + +433 +” +. +’coded + = +wœe_size +; + +434 + `ASN__ENCODED_OK +( +” +); + +437  +d + = + `N©iveR—l__g‘_doubË +( +td +, +¥Œ +); + +438 +ssize_t + +Ën_Ën +; + +439 +REAL_t + +tmp +; + +442 + `mem£t +(& +tmp +, 0, (tmp)); + +444 if( + `a¢_doubË2REAL +(& +tmp +, +d +)) { + +445 +ASN__ENCODE_FAILED +; + +449 +Ën_Ën + = + `Ûr_£rŸlize_Ëngth +( +tmp +. +size +, +cb +, +­p_key +); + +450 if( +Ën_Ën + < 0 || + `cb +( +tmp +. +buf +,mp. +size +, +­p_key +) < 0) { + +451 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +452 +ASN__ENCODE_FAILED +; + +454 +” +. +’coded + = +Ën_Ën + + +tmp +. +size +; + +455 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +tmp +); + +456 + `ASN__ENCODED_OK +( +” +); + +459 + } +} + +461 +a¢_dec_rv®_t + + +462 + $N©iveR—l_decode_Ûr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +463 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +464 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +465 cÚ¡ * +±r +, +size_t + +size +) { + +466 +a¢_dec_rv®_t + +ok + = { +RC_OK +, 0}; + +467  +d +; + +468 +ssize_t + +Ën_Ën +; + +469 +size_t + +»®_body_Ën +; + +471 () +Ýt_codec_ùx +; + +473 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +Ûr_cÚ¡¿šts +; + +474 if( +cÚ¡¿šts + && cÚ¡¿šts-> +v®ue +. +width + != 0) { + +476 +ušt8_t + +sü©ch +[()]; + +477 +size_t + +wœe_size + = +cÚ¡¿šts +-> +v®ue +. +width +; + +479 if( +size + < +wœe_size +) + +480 +ASN__DECODE_STARVED +; + +486 + `N©iveR—l__ÃtwÜk_sw­ +( +wœe_size +, +±r +, +sü©ch +); + +489  +wœe_size +) { + +492  +tmp +; + +493 + `memýy +(& +tmp +, +sü©ch +, ()); + +494 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +tmp +) < 0) + +495 +ASN__DECODE_FAILED +; + +500  +tmp +; + +501 + `memýy +(& +tmp +, +sü©ch +, ()); + +502 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +tmp +) < 0) + +503 +ASN__DECODE_FAILED +; + +507 +ASN__DECODE_FAILED +; + +510 +ok +. +cÚsumed + = +wœe_size +; + +511  +ok +; + +514 +Ën_Ën + = + `Ûr_ãtch_Ëngth +( +±r +, +size +, & +»®_body_Ën +); + +515 if( +Ën_Ën + < 0è +ASN__DECODE_FAILED +; + +516 if( +Ën_Ën + =ð0è +ASN__DECODE_STARVED +; + +518 +±r + = (cÚ¡ *íŒ + +Ën_Ën +; + +519 +size + -ð +Ën_Ën +; + +521 if( +»®_body_Ën + > +size +è +ASN__DECODE_STARVED +; + +524 +ušt8_t + +sü©ch +[24]; + +525 +REAL_t + +tmp +; + +526  +»t +; + +528 if( +»®_body_Ën + < ( +sü©ch +)) { + +529 +tmp +. +buf + = +sü©ch +; + +530 +tmp +. +size + = +»®_body_Ën +; + +533 +tmp +. +buf + = + `CALLOC +(1, +»®_body_Ën + + 1); + +534 +tmp +. +size + = +»®_body_Ën +; + +535 if(! +tmp +. +buf +) { + +536 +ASN__DECODE_FAILED +; + +540 + `memýy +( +tmp +. +buf +, +±r +, +»®_body_Ën +); + +541 +tmp +. +buf +[ +»®_body_Ën +] = '\0'; + +543 +»t + = + `a¢_REAL2doubË +(& +tmp +, & +d +); + +544 if( +tmp +. +buf + !ð +sü©ch +è + `FREEMEM +(tmp.buf); + +545 if( +»t +) { + +546 + `ASN_DEBUG +("REAL decoded iÀ%" +ASN_PRI_SIZE + " bytes, but can't convert double", + +547 +»®_body_Ën +); + +548 +ASN__DECODE_FAILED +; + +552 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +d +) < 0) + +553 +ASN__DECODE_FAILED +; + +555 +ok +. +cÚsumed + = +Ën_Ën + + +»®_body_Ën +; + +556  +ok +; + +557 + } +} + +564 +a¢_dec_rv®_t + + +565 + $N©iveR—l_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +566 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +567 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +568 +a¢_dec_rv®_t + +rv® +; + +569 +REAL_t + +¡ + = { 0, 0 }; + +570 +REAL_t + * +¡p + = & +¡ +; + +572 +rv® + = + `REAL_decode_x” +( +Ýt_codec_ùx +, +td +, (**)& +¡p +, +Ýt_mÇme +, + +573 +buf_±r +, +size +); + +574 if( +rv® +. +code + =ð +RC_OK +) { + +575  +d +; + +576 if( + `a¢_REAL2doubË +(& +¡ +, & +d +è|| + `N©iveR—l__£t +( +td +, +¥Œ +, d) < 0) { + +577 +rv® +. +code + = +RC_FAIL +; + +578 +rv® +. +cÚsumed + = 0; + +582 +rv® +. +cÚsumed + = 0; + +584 + `ASN_STRUCT_FREE_CONTENTS_ONLY +( +a¢_DEF_REAL +, & +¡ +); + +585  +rv® +; + +586 + } +} + +588 +a¢_’c_rv®_t + + +589 + $N©iveR—l_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +590  +žev– +, +x”_’cod”_æags_e + +æags +, + +591 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +592  +d + = + `N©iveR—l__g‘_doubË +( +td +, +¥Œ +); + +593 +a¢_’c_rv®_t + +” + = {0,0,0}; + +595 () +žev– +; + +597 +” +. +’coded + = + `REAL__dump +( +d +, +æags + & +XER_F_CANONICAL +, +cb +, +­p_key +); + +598 if( +” +. +’coded + < 0è +ASN__ENCODE_FAILED +; + +600 + `ASN__ENCODED_OK +( +” +); + +601 + } +} + +607 + $N©iveR—l_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +608 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +609 () +žev– +; + +611 if( +¥Œ +) { + +612  +d + = + `N©iveR—l__g‘_doubË +( +td +, +¥Œ +); + +613  ( + `REAL__dump +( +d +, 0, +cb +, +­p_key +) < 0) ? -1 : 0; + +615  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +617 + } +} + +620 + $N©iveR—l_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +621 cÚ¡ * +b±r +) { + +623 if( +­Œ + && +b±r +) { + +624  +a + = + `N©iveR—l__g‘_doubË +( +td +, +­Œ +); + +625  +b + = + `N©iveR—l__g‘_doubË +( +td +, +b±r +); + +628 if( + `a¢_i¢ª +( +a +)) { + +629 if( + `a¢_i¢ª +( +b +)) { + +634 } if( + `a¢_i¢ª +( +b +)) { + +638 if( +a + < +b +) { + +640 } if( +a + > +b +) { + +645 } if(! +­Œ +) { + +650 + } +} + +653 + $N©iveR—l_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +±r +, + +654 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +655 if(! +td + || ! +±r +) + +658 + `ASN_DEBUG +("Freeing %s‡s REAL (%d, %p, Native)", + +659 +td +-> +Çme +, +m‘hod +, +±r +); + +661  +m‘hod +) { + +662  +ASFM_FREE_EVERYTHING +: + +663 + `FREEMEM +( +±r +); + +665  +ASFM_FREE_UNDERLYING +: + +667  +ASFM_FREE_UNDERLYING_AND_RESET +: { + +668 cÚ¡ +a¢_N©iveR—l_¥ecifics_t + * +¥ecs +; + +669 +size_t + +æßt_size +; + +670 +¥ecs + = (cÚ¡ +a¢_N©iveR—l_¥ecifics_t + *) +td +-> +¥ecifics +; + +671 +æßt_size + = +¥ecs + ? specs->float_size : (); + +672 + `mem£t +( +±r +, 0, +æßt_size +); + +675 + } +} + +677 +a¢_¿ndom_fžl_»suÉ_t + + +678 + $N©iveR—l_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +679 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +680 +size_t + +max_Ëngth +) { + +681 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 0}; + +682 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +683 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +684 #iâdeà +INFINITY + + +685  + #INFINITY + (1.0/0.0) + + ) + +687 #iâdeà +NAN + + +688  + #NAN + (0.0/0.0) + + ) + +690 cÚ¡  +doubË_v®ues +[] = { + +691 - +M_E +, M_E, - +M_PI +, M_PI, + +699 - +DBL_MIN +, DBL_MIN, + +700 - +DBL_MAX +, DBL_MAX, + +701 #ifdeà +DBL_TRUE_MIN + + +702 - +DBL_TRUE_MIN +, DBL_TRUE_MIN + +705 cÚ¡  +æßt_v®ues +[] = { + +706 0, -0.0, -1, 1, - +M_E +, M_E, -3.14, 3.14, - +M_PI +, M_PI, -255, 255, + +707 - +FLT_MIN +, FLT_MIN, + +708 - +FLT_MAX +, FLT_MAX, + +709 #ifdeà +FLT_TRUE_MIN + + +710 - +FLT_TRUE_MIN +, FLT_TRUE_MIN, + +712 +INFINITY +, -INFINITY, +NAN + + +714 +ssize_t + +æßt_£t_size + = + `N©iveR—l__æßt_size +( +td +); + +715 cÚ¡ +size_t + +n_doubËs + = ( +doubË_v®ues +) / (double_values[0]); + +716 cÚ¡ +size_t + +n_æßts + = ( +æßt_v®ues +) / (float_values[0]); + +717  +d +; + +719 () +cÚ¡¿šts +; + +721 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +723 if( +æßt_£t_size + =ð(è&& + `a¢_¿ndom_b‘w“n +(0, 1) == 0) { + +724 +d + = +doubË_v®ues +[ + `a¢_¿ndom_b‘w“n +(0, +n_doubËs + - 1)]; + +726 +d + = +æßt_v®ues +[ + `a¢_¿ndom_b‘w“n +(0, +n_æßts + - 1)]; + +729 if( + `N©iveR—l__£t +( +td +, +¥Œ +, +d +) < 0) { + +730  +»suÉ_çžed +; + +733 +»suÉ_ok +. +Ëngth + = +æßt_£t_size +; + +734  +»suÉ_ok +; + +735 + } +} + +742  +size_t + + +743 + $N©iveR—l__æßt_size +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +) { + +744 cÚ¡ +a¢_N©iveR—l_¥ecifics_t + * +¥ecs + = + +745 (cÚ¡ +a¢_N©iveR—l_¥ecifics_t + *) +td +-> +¥ecifics +; + +746  +¥ecs + ? s³cs-> +æßt_size + : (); + +747 + } +} + +750 + $N©iveR—l__g‘_doubË +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +±r +) { + +751 +size_t + +æßt_size + = + `N©iveR—l__æßt_size +( +td +); + +752 if( +æßt_size + == ()) { + +753  *(cÚ¡ *) +±r +; + +755  *(cÚ¡ *) +±r +; + +757 + } +} + +759  +ssize_t + + +760 + $N©iveR—l__£t +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +,  +d +) { + +761 +size_t + +æßt_size + = + `N©iveR—l__æßt_size +( +td +); + +762 * +Çtive +; + +764 if(!( +Çtive + = * +¥Œ +)) { + +765 +Çtive + = (* +¥Œ + = + `CALLOC +(1, +æßt_size +)); + +766 if(! +Çtive +) { + +771 if( +æßt_size + == ()) { + +772 if( + `a¢_doubË2æßt +( +d +, (*) +Çtive +)) { + +776 *(*) +Çtive + = +d +; + +779  +æßt_size +; + +780 + } +} + + @NgENB-ID.c + +8  + ~"NgENB-ID.h +" + +11 + $memb_maüoNgENB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 if( +¡ +-> +size + > 0) { + +25 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +27 +size + = 0; + +30 if(( +size + == 20)) { + +34 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +36 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +39 + } +} + +42 + $memb_shÜtMaüoNgENB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +43 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +44 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +45 +size_t + +size +; + +47 if(! +¥Œ +) { + +48 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +50 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +54 if( +¡ +-> +size + > 0) { + +56 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +58 +size + = 0; + +61 if(( +size + == 18)) { + +65 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +67 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +70 + } +} + +73 + $memb_lÚgMaüoNgENB_ID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +74 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +75 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +76 +size_t + +size +; + +78 if(! +¥Œ +) { + +79 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +81 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +85 if( +¡ +-> +size + > 0) { + +87 +size + = 8 * +¡ +->siz- (¡-> +b™s_unu£d + & 0x07); + +89 +size + = 0; + +92 if(( +size + == 21)) { + +96 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +98 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +101 + } +} + +103  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_maüoNgENB_ID_cÚ¡r_2 + + gCC_NOTUSED + = { + +104 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +105 { +APC_CONSTRAINED +, 0, 0, 20, 20 } , + +108  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_shÜtMaüoNgENB_ID_cÚ¡r_3 + + gCC_NOTUSED + = { + +109 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +110 { +APC_CONSTRAINED +, 0, 0, 18, 18 } , + +113  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_lÚgMaüoNgENB_ID_cÚ¡r_4 + + gCC_NOTUSED + = { + +114 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +115 { +APC_CONSTRAINED +, 0, 0, 21, 21 } , + +118 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_NgENB_ID_cÚ¡r_1 + + gCC_NOTUSED + = { + +119 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 2, 2, 0, 2 } , + +120 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +123 +a¢_TYPE_memb”_t + + ga¢_MBR_NgENB_ID_1 +[] = { + +124 { +ATF_NOFLAGS +, 0, +off£tof +( +NgENB_ID +, +choiû +. +maüoNgENB_ID +), + +125 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +127 & +a¢_DEF_BIT_STRING +, + +129 { 0, & +a¢_PER_memb_maüoNgENB_ID_cÚ¡r_2 +, +memb_maüoNgENB_ID_cÚ¡¿št_1 + }, + +133 { +ATF_NOFLAGS +, 0, +off£tof +( +NgENB_ID +, +choiû +. +shÜtMaüoNgENB_ID +), + +134 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +136 & +a¢_DEF_BIT_STRING +, + +138 { 0, & +a¢_PER_memb_shÜtMaüoNgENB_ID_cÚ¡r_3 +, +memb_shÜtMaüoNgENB_ID_cÚ¡¿št_1 + }, + +142 { +ATF_NOFLAGS +, 0, +off£tof +( +NgENB_ID +, +choiû +. +lÚgMaüoNgENB_ID +), + +143 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +145 & +a¢_DEF_BIT_STRING +, + +147 { 0, & +a¢_PER_memb_lÚgMaüoNgENB_ID_cÚ¡r_4 +, +memb_lÚgMaüoNgENB_ID_cÚ¡¿št_1 + }, + +152 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_NgENB_ID_g2–_1 +[] = { + +153 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +154 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +155 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +157 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_NgENB_ID_¥ecs_1 + = { + +158 ( +NgENB_ID +), + +159 +off£tof +( +NgENB_ID +, +_a¢_ùx +), + +160 +off£tof +( +NgENB_ID +, +´e£Á +), + +161 ((( +NgENB_ID + *)0)-> +´e£Á +), + +162 +a¢_MAP_NgENB_ID_g2–_1 +, + +167 +a¢_TYPE_desütÜ_t + + ga¢_DEF_NgENB_ID + = { + +170 & +a¢_OP_CHOICE +, + +175 { 0, & +a¢_PER_ty³_NgENB_ID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +176 +a¢_MBR_NgENB_ID_1 +, + +178 & +a¢_SPC_NgENB_ID_¥ecs_1 + + + @OCTET_STRING.c + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~<”ºo.h +> + +14 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_OCTET_STRING_gs +[] = { + +15 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +17 +a¢_OCTET_STRING_¥ecifics_t + + ga¢_SPC_OCTET_STRING_¥ecs + = { + +18 ( +OCTET_STRING_t +), + +19 +off£tof +( +OCTET_STRING_t +, +_a¢_ùx +), + +20 +ASN_OSUBV_STR + + +23 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_OCTET_STRING + = { + +24 +OCTET_STRING_ä“ +, + +25 +OCTET_STRING_´št +, + +26 +OCTET_STRING_com·» +, + +27 +OCTET_STRING_decode_b” +, + +28 +OCTET_STRING_’code_d” +, + +29 +OCTET_STRING_decode_x”_hex +, + +30 +OCTET_STRING_’code_x” +, + +31 #ifdef +ASN_DISABLE_OER_SUPPORT + + +35 +OCTET_STRING_decode_Ûr +, + +36 +OCTET_STRING_’code_Ûr +, + +38 #ifdef +ASN_DISABLE_PER_SUPPORT + + +44 +OCTET_STRING_decode_u³r +, + +45 +OCTET_STRING_’code_u³r +, + +46 +OCTET_STRING_decode_­” +, + +47 +OCTET_STRING_’code_­” +, + +49 +OCTET_STRING_¿ndom_fžl +, + +52 +a¢_TYPE_desütÜ_t + + ga¢_DEF_OCTET_STRING + = { + +55 & +a¢_OP_OCTET_STRING +, + +56 +a¢_DEF_OCTET_STRING_gs +, + +57 ( +a¢_DEF_OCTET_STRING_gs +) + +58 / ( +a¢_DEF_OCTET_STRING_gs +[0]), + +59 +a¢_DEF_OCTET_STRING_gs +, + +60 ( +a¢_DEF_OCTET_STRING_gs +) + +61 / ( +a¢_DEF_OCTET_STRING_gs +[0]), + +62 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +64 & +a¢_SPC_OCTET_STRING_¥ecs + + +67 #undeà +_CH_PHASE + + +68 #undeà +NEXT_PHASE + + +69 #undeà +PREV_PHASE + + +70  + #_CH_PHASE +( +ùx +, +šc +) do { \ + +71 if( +ùx +-> +pha£ + == 0) \ + +72 +ùx +-> +cڋxt + = 0; \ + +73 +ùx +-> +pha£ + +ð +šc +; \ + +74 } 0) + + ) + +75  + #NEXT_PHASE +( +ùx +è + `_CH_PHASE +(ùx, +1) + + ) + +76  + #PREV_PHASE +( +ùx +è + `_CH_PHASE +(ùx, -1) + + ) + +78 #undeà +ADVANCE + + +79  + #ADVANCE +( +num_by‹s +) do { \ + +80 +size_t + +num + = ( +num_by‹s +); \ + +81 +buf_±r + = ((cÚ¡ *)buf_±rè+ +num +; \ + +82 +size + -ð +num +; \ + +83 +cÚsumed_my£lf + +ð +num +; \ + +84 } 0) + + ) + +86 #undeà +RETURN + + +87  + #RETURN +( +_code +) do { \ + +88 +a¢_dec_rv®_t + +tm´v® +; \ + +89 +tm´v® +. +code + = +_code +; \ + +90 +tm´v® +. +cÚsumed + = +cÚsumed_my£lf +; \ + +91  +tm´v® +; \ + +92 } 0) + + ) + +94 #undeà +APPEND + + +95  + #APPEND +( +buåŒ +, +bufsize +) do { \ + +96 +size_t + +_bs + = ( +bufsize +); \ + +97 +size_t + +_ns + = +ùx +-> +cڋxt +; \ + +98 +size_t + +_es + = +¡ +-> +size + + +_bs +; \ + +100 if(() +_es + < 0è + `RETURN +( +RC_FAIL +); \ + +101 if( +_ns + <ð +_es +) { \ + +102 * +±r +; \ + +104 dØ{ +_ns + = _ns ? _ns << 1 : 16; } \ + +105  +_ns + <ð +_es +); \ + +107 if(() +_ns + < 0è + `RETURN +( +RC_FAIL +); \ + +108 +±r + = + `REALLOC +( +¡ +-> +buf +, +_ns +); \ + +109 if( +±r +) { \ + +110 +¡ +-> +buf + = ( +ušt8_t + *) +±r +; \ + +111 +ùx +-> +cڋxt + = +_ns +; \ + +113 + `RETURN +( +RC_FAIL +); \ + +115 + `ASN_DEBUG +("R—Îoÿtšg iÁØ%ld", () +_ns +); \ + +117 + `memýy +( +¡ +-> +buf + + st-> +size +, +buåŒ +, +_bs +); \ + +119 +¡ +-> +buf +[ +_es +] = '\0'; \ + +120 +¡ +-> +size + = +_es +; \ + +121 } 0) + + ) + +129  + s_¡ack_– + { + +130 +b”_Žv_Ën_t + + mËá +; + +131 +b”_Žv_Ën_t + + mgÙ +; + +132  + mcÚt_Ëv– +; + +133  + mwªt_nuÎs +; + +134  + mb™s_chݳd +; + +135 +b”_Žv_g_t + + mg +; + +136  +_¡ack_– + * + m´ev +; + +137  +_¡ack_– + * + mÃxt +; + +139  + s_¡ack + { + +140  +_¡ack_– + * + mž +; + +141  +_¡ack_– + * + mcur_±r +; + +144  +_¡ack_– + * + +145 + $OS__add_¡ack_– +( +_¡ack + * +¡ +) { + +146  +_¡ack_– + * +Ãl +; + +151 if( +¡ +-> +cur_±r + && st->cur_±r-> +Ãxt +) { + +152 +Ãl + = +¡ +-> +cur_±r +-> +Ãxt +; + +153 +Ãl +-> +b™s_chݳd + = 0; + +154 +Ãl +-> +gÙ + = 0; + +157 +Ãl + = ( +_¡ack_– + *) + `CALLOC +(1, (_stack_el)); + +158 if( +Ãl + =ð +NULL +) + +159  +NULL +; + +161 if( +¡ +-> +ž +) { + +163 +Ãl +-> +cÚt_Ëv– + = +¡ +-> +ž +->cont_level + 1; + +164 +¡ +-> +ž +-> +Ãxt + = +Ãl +; + +166 +Ãl +-> +´ev + = +¡ +-> +ž +; + +167 +¡ +-> +ž + = +Ãl +; + +170 +¡ +-> +cur_±r + = +Ãl +; + +172  +Ãl +; + +173 + } +} + +175  +_¡ack + * + +176 + $_Ãw_¡ack +() { + +177  ( +_¡ack + *) + `CALLOC +(1, (_stack)); + +178 + } +} + +183 +a¢_dec_rv®_t + + +184 + $OCTET_STRING_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +185 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +186 cÚ¡ * +buf_±r +, +size_t + +size +,  +g_mode +) { + +187 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +188 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +189 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +190 +BIT_STRING_t + * +¡ + = (BIT_STRING_ˆ*)* +¥Œ +; + +191 +a¢_dec_rv®_t + +rv® +; + +192 +a¢_¡ruù_ùx_t + * +ùx +; + +193 +ssize_t + +cÚsumed_my£lf + = 0; + +194  +_¡ack + * +¡ck +; + +195  +_¡ack_– + * +£l + = 0; + +196  +Žv_cÚ¡r +; + +197 +a¢_OS_Subv¬ŸÁ + +ty³_v¬ŸÁ + = +¥ecs +-> +subv¬ŸÁ +; + +199 + `ASN_DEBUG +("Decoding %s‡s %s (frame %ld)", + +200 +td +-> +Çme +, + +201 ( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_STR +) ? + +203 () +size +); + +208 if( +¡ + =ð +NULL +) { + +209 +¡ + = ( +BIT_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +210 if( +¡ + =ð +NULL +è + `RETURN +( +RC_FAIL +); + +214 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +216  +ùx +-> +pha£ +) { + +221 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, +ùx +, + +222 +buf_±r +, +size +, +g_mode +, -1, + +223 & +ùx +-> +Ëá +, & +Žv_cÚ¡r +); + +224 if( +rv® +. +code + !ð +RC_OK +) + +225  +rv® +; + +227 if( +Žv_cÚ¡r +) { + +231 +ùx +-> +±r + = + `_Ãw_¡ack +(); + +232 if(! +ùx +-> +±r +) { + +233 + `RETURN +( +RC_FAIL +); + +239 + `_CH_PHASE +( +ùx +, 3); + +240 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_ANY + && +g_mode + != 1) + +241 + `APPEND +( +buf_±r +, +rv® +. +cÚsumed +); + +242 + `ADVANCE +( +rv® +. +cÚsumed +); + +243  +pha£3 +; + +246 + `NEXT_PHASE +( +ùx +); + +249 +pha£1 +: + +253 +¡ck + = ( +_¡ack + *) +ùx +-> +±r +; + +254 +£l + = +¡ck +-> +cur_±r +; + +256 +b”_Žv_g_t + +Žv_g +; + +257 +b”_Žv_Ën_t + +Žv_Ën +; + +258 +b”_Žv_g_t + +ex³ùed_g +; + +259 +ssize_t + +Ž +, +Î +, +Žvl +; + +261 +size_t + +Leá + = ((! +£l +||(size_t)£l-> +Ëá + >ð +size +) + +262 ? +size +:( +size_t +) +£l +-> +Ëá +); + +265 + `ASN_DEBUG +("%p, s->l=%ld, s->wn=%ld, s->g=%ld\n", (*) +£l +, + +266 ()( +£l +?£l-> +Ëá +:0), + +267 ()( +£l +?£l-> +wªt_nuÎs +:0), + +268 ()( +£l +?£l-> +gÙ +:0) + +270 if( +£l + && s–-> +Ëá + <ð0 && s–-> +wªt_nuÎs + == 0) { + +271 if( +£l +-> +´ev +) { + +272  +_¡ack_– + * +´ev + = +£l +->prev; + +273 if( +´ev +-> +Ëá + != -1) { + +274 if( +´ev +-> +Ëá + < +£l +-> +gÙ +) + +275 + `RETURN +( +RC_FAIL +); + +276 +´ev +-> +Ëá + -ð +£l +-> +gÙ +; + +278 +´ev +-> +gÙ + +ð +£l +->got; + +279 +£l + = +¡ck +-> +cur_±r + = +´ev +; + +280 if(! +£l +) ; + +281 +Žv_cÚ¡r + = 1; + +284 +£l + = +¡ck +-> +cur_±r + = 0; + +289 +Ž + = + `b”_ãtch_g +( +buf_±r +, +Leá +, & +Žv_g +); + +290 + `ASN_DEBUG +("fetchag(size=%ld,L=%ld), %sstack,†eft=%ld, wn=%ld,l=%ld", + +291 () +size +, () +Leá +, +£l +?"":"!", + +292 ()( +£l +?£l-> +Ëá +:0), + +293 ()( +£l +?£l-> +wªt_nuÎs +:0), + +294 () +Ž +); + +295  +Ž +) { + +296 -1: + `RETURN +( +RC_FAIL +); + +297 0: + `RETURN +( +RC_WMORE +); + +300 +Žv_cÚ¡r + = + `BER_TLV_CONSTRUCTED +( +buf_±r +); + +302 +Î + = + `b”_ãtch_Ëngth +( +Žv_cÚ¡r +, + +303 (cÚ¡ *) +buf_±r + + +Ž +, +Leá + -l,& +Žv_Ën +); + +304 + `ASN_DEBUG +("Gotag=%s,c=%d,†eft=%ld,l=%ld,†en=%ld,†l=%ld", + +305 + `b”_Žv_g_¡ršg +( +Žv_g +), +Žv_cÚ¡r +, + +306 () +Leá +, () +Ž +, () +Žv_Ën +, () +Î +); + +307  +Î +) { + +308 -1: + `RETURN +( +RC_FAIL +); + +309 0: + `RETURN +( +RC_WMORE +); + +312 if( +£l + && s–-> +wªt_nuÎs + + +313 && ((cÚ¡ +ušt8_t + *) +buf_±r +)[0] == 0 + +314 && ((cÚ¡ +ušt8_t + *) +buf_±r +)[1] == 0) + +317 + `ASN_DEBUG +("E© EOC; wn=%d--", +£l +-> +wªt_nuÎs +); + +319 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_ANY + + +320 && ( +g_mode + !ð1 || +£l +-> +cÚt_Ëv– +)) + +321 + `APPEND +("\0\0", 2); + +323 + `ADVANCE +(2); + +324 +£l +-> +gÙ + += 2; + +325 if( +£l +-> +Ëá + != -1) { + +326 +£l +-> +Ëá + -= 2; + +329 +£l +-> +wªt_nuÎs +--; + +330 if( +£l +-> +wªt_nuÎs + == 0) { + +332 +£l +-> +Ëá + = 0; + +333 +Žv_cÚ¡r + = 1; + +343  +ty³_v¬ŸÁ +) { + +344  +ASN_OSUBV_BIT +: + +347  +ASN_OSUBV_STR +: + +349 if( +£l +) { + +350  +Ëv– + = +£l +-> +cÚt_Ëv– +; + +351 if( +Ëv– + < +td +-> +®l_gs_couÁ +) { + +352 +ex³ùed_g + = +td +-> +®l_gs +[ +Ëv– +]; + +354 } if( +td +-> +®l_gs_couÁ +) { + +355 +ex³ùed_g + = +td +-> +®l_gs + + +356 [ +td +-> +®l_gs_couÁ + - 1]; + +362  +ASN_OSUBV_ANY +: + +363 +ex³ùed_g + = +Žv_g +; + +368 if( +Žv_g + !ð +ex³ùed_g +) { + +369  +buf +[2][32]; + +370 + `b”_Žv_g_¢´št +( +Žv_g +, + +371 +buf +[0], (buf[0])); + +372 + `b”_Žv_g_¢´št +( +td +-> +gs +[td-> +gs_couÁ +-1], + +373 +buf +[1], (buf[1])); + +374 + `ASN_DEBUG +("Tag does‚ot matchƒxpectation: %s != %s", + +375 +buf +[0], buf[1]); + +376 + `RETURN +( +RC_FAIL +); + +379 +Žvl + = +Ž + + +Î +; + +380 if(( +Žv_Ën + + +Žvl +) < 0) { + +382 + `ASN_DEBUG +("TLVƒncoding +†ength (%ld) isoo big", + +383 () +Žv_Ën +); + +384 + `RETURN +( +RC_FAIL +); + +390 +£l + = + `OS__add_¡ack_– +( +¡ck +); + +391 if(! +£l +è + `RETURN +( +RC_FAIL +); + +393 +£l +-> +g + = +Žv_g +; + +395 +£l +-> +wªt_nuÎs + = ( +Žv_Ën +==-1); + +396 if( +£l +-> +´ev + && s–->´ev-> +Ëá + != -1) { + +398 if( +£l +-> +´ev +-> +Ëá + < +Žvl + + ( +Žv_Ën +==-1?0:tlv_len)) + +399 + `RETURN +( +RC_FAIL +); + +400 if( +Žv_Ën + == -1) + +401 +£l +-> +Ëá + = s–-> +´ev +->Ëá - +Žvl +; + +403 +£l +-> +Ëá + = +Žv_Ën +; + +405 +£l +-> +Ëá + = +Žv_Ën +; + +407 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_ANY + + +408 && ( +g_mode + !ð1 || +£l +-> +cÚt_Ëv– +)) + +409 + `APPEND +( +buf_±r +, +Žvl +); + +410 +£l +-> +gÙ + +ð +Žvl +; + +411 + `ADVANCE +( +Žvl +); + +413 + `ASN_DEBUG +("+EXPECT2 got=%ld†eft=%ld, wn=%d, clvl=%u", + +414 () +£l +-> +gÙ +, ()£l-> +Ëá +, + +415 +£l +-> +wªt_nuÎs +, s–-> +cÚt_Ëv– +); + +417 }  +Žv_cÚ¡r +); + +418 if( +£l + =ð +NULL +) { + +420 + `ASN_DEBUG +("Phase out"); + +421 + `_CH_PHASE +( +ùx +, +3); + +425 + `NEXT_PHASE +( +ùx +); + +428 +¡ck + = ( +_¡ack + *) +ùx +-> +±r +; + +429 +£l + = +¡ck +-> +cur_±r +; + +430 + `ASN_DEBUG +("Phase 2: Need %ld bytes, size=%ld,‡lrg=%ld, wn=%d", + +431 () +£l +-> +Ëá +, () +size +, ()£l-> +gÙ +, + +432 +£l +-> +wªt_nuÎs +); + +434 +b”_Žv_Ën_t + +Ën +; + +436 + `as£¹ +( +£l +-> +Ëá + >= 0); + +438 +Ën + = (( +b”_Žv_Ën_t +) +size + < +£l +-> +Ëá +) + +439 ? ( +b”_Žv_Ën_t +) +size + : +£l +-> +Ëá +; + +440 if( +Ën + > 0) { + +441 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT + + +442 && +£l +-> +b™s_chݳd + == 0) { + +444 +¡ +-> +b™s_unu£d + = *(cÚ¡ +ušt8_t + *) +buf_±r +; + +445 + `APPEND +(((cÚ¡ *) +buf_±r ++1), ( +Ën + - 1)); + +446 +£l +-> +b™s_chݳd + = 1; + +448 + `APPEND +( +buf_±r +, +Ën +); + +450 + `ADVANCE +( +Ën +); + +451 +£l +-> +Ëá + -ð +Ën +; + +452 +£l +-> +gÙ + +ð +Ën +; + +455 if( +£l +-> +Ëá +) { + +456 + `ASN_DEBUG +("OS†eft %ld, size = %ld, wn=%d\n", + +457 () +£l +-> +Ëá +, () +size +, s–-> +wªt_nuÎs +); + +458 + `RETURN +( +RC_WMORE +); + +461 + `PREV_PHASE +( +ùx +); + +462  +pha£1 +; + +466 +pha£3 +: + +470 + `as£¹ +( +ùx +-> +Ëá + >= 0); + +472 if( +size + < ( +size_t +) +ùx +-> +Ëá +) { + +473 if(! +size +è + `RETURN +( +RC_WMORE +); + +474 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT + && ! +ùx +-> +cڋxt +) { + +475 +¡ +-> +b™s_unu£d + = *(cÚ¡ +ušt8_t + *) +buf_±r +; + +476 +ùx +-> +Ëá +--; + +477 + `ADVANCE +(1); + +479 + `APPEND +( +buf_±r +, +size +); + +480 + `as£¹ +( +ùx +-> +cڋxt + > 0); + +481 +ùx +-> +Ëá + -ð +size +; + +482 + `ADVANCE +( +size +); + +483 + `RETURN +( +RC_WMORE +); + +485 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT + + +486 && ! +ùx +-> +cڋxt + && ctx-> +Ëá +) { + +487 +¡ +-> +b™s_unu£d + = *(cÚ¡ +ušt8_t + *) +buf_±r +; + +488 +ùx +-> +Ëá +--; + +489 + `ADVANCE +(1); + +491 + `APPEND +( +buf_±r +, +ùx +-> +Ëá +); + +492 + `ADVANCE +( +ùx +-> +Ëá +); + +493 +ùx +-> +Ëá + = 0; + +495 + `NEXT_PHASE +( +ùx +); + +500 if( +£l +) { + +501 + `ASN_DEBUG +("3sel…=%p, wn=%d,†=%ld, g=%ld, size=%ld", + +502 (*) +£l +-> +´ev +, s–-> +wªt_nuÎs +, + +503 () +£l +-> +Ëá +, ()£l-> +gÙ +, () +size +); + +504 if( +£l +-> +´ev + || s–-> +wªt_nuÎs + > 1 || s–-> +Ëá + > 0) { + +505 + `RETURN +( +RC_WMORE +); + +512 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT +) { + +513 if( +¡ +-> +size +) { + +514 if( +¡ +-> +b™s_unu£d + < 0 || st->bits_unused > 7) { + +515 + `RETURN +( +RC_FAIL +); + +518 +¡ +-> +buf +[¡-> +size +-1] &ð0xfà<< st-> +b™s_unu£d +; + +520 if( +¡ +-> +b™s_unu£d +) { + +521 + `RETURN +( +RC_FAIL +); + +526 + `ASN_DEBUG +("Took %ld bytesoƒncode %s: [%s]:%ld", + +527 () +cÚsumed_my£lf +, +td +-> +Çme +, + +528 ( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_STR +è? (*) +¡ +-> +buf + : "", + +529 () +¡ +-> +size +); + +532 + `RETURN +( +RC_OK +); + +533 + } +} + +538 +a¢_’c_rv®_t + + +539 + $OCTET_STRING_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +540  +g_mode +, +b”_Žv_g_t + +g +, + +541 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +542 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +543 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +544 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +545 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +546 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +547 +a¢_OS_Subv¬ŸÁ + +ty³_v¬ŸÁ + = +¥ecs +-> +subv¬ŸÁ +; + +548  +fix_Ï¡_by‹ + = 0; + +550 + `ASN_DEBUG +("%s %s‡s OCTET STRING", + +551 +cb +?"E¡im©šg":"Encodšg", +td +-> +Çme +); + +556 if( +ty³_v¬ŸÁ + !ð +ASN_OSUBV_ANY + || +g_mode + == 1) { + +557 +” +. +’coded + = + `d”_wr™e_gs +( +td +, + +558 ( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT +è+ +¡ +-> +size +, + +559 +g_mode +, +ty³_v¬ŸÁ + =ð +ASN_OSUBV_ANY +, +g +, + +560 +cb +, +­p_key +); + +561 if( +” +. +’coded + == -1) { + +562 +” +. +çžed_ty³ + = +td +; + +563 +” +. +¡ruùu»_±r + = +¥Œ +; + +564  +” +; + +568 + `as£¹ +( +ty³_v¬ŸÁ + !ð +ASN_OSUBV_ANY + || +g_mode + != -1); + +569 +” +. +’coded + = 0; + +572 if(! +cb +) { + +573 +” +. +’coded + +ð( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT +è+ +¡ +-> +size +; + +574 + `ASN__ENCODED_OK +( +” +); + +580 if( +ty³_v¬ŸÁ + =ð +ASN_OSUBV_BIT +) { + +581 +ušt8_t + +b + = +¡ +-> +b™s_unu£d + & 0x07; + +582 if( +b + && +¡ +-> +size +è +fix_Ï¡_by‹ + = 1; + +583 + `ASN__CALLBACK +(& +b +, 1); + +587 + `ASN__CALLBACK +( +¡ +-> +buf +, st-> +size + - +fix_Ï¡_by‹ +); + +590 if( +fix_Ï¡_by‹ +) { + +591 +ušt8_t + +b + = +¡ +-> +buf +[¡-> +size +-1] & (0xfà<< st-> +b™s_unu£d +); + +592 + `ASN__CALLBACK +(& +b +, 1); + +595 + `ASN__ENCODED_OK +( +” +); + +596 +cb_çžed +: + +597 +ASN__ENCODE_FAILED +; + +598 + } +} + +600 +a¢_’c_rv®_t + + +601 + $OCTET_STRING_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +602  +žev– +, +x”_’cod”_æags_e + +æags +, + +603 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +604 cÚ¡ * cÚ¡ +h2c + = "0123456789ABCDEF"; + +605 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +606 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +607  +sü©ch +[16 * 3 + 4]; + +608 * +p + = +sü©ch +; + +609 +ušt8_t + * +buf +; + +610 +ušt8_t + * +’d +; + +611 +size_t + +i +; + +613 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +614 +ASN__ENCODE_FAILED +; + +616 +” +. +’coded + = 0; + +621 +buf + = +¡ +->buf; + +622 +’d + = +buf + + +¡ +-> +size +; + +623 if( +æags + & +XER_F_CANONICAL +) { + +624 * +sûnd + = +sü©ch + + ((scratch) - 2); + +625 ; +buf + < +’d +; buf++) { + +626 if( +p + >ð +sûnd +) { + +627 + `ASN__CALLBACK +( +sü©ch +, +p + - scratch); + +628 +p + = +sü©ch +; + +630 * +p +++ = +h2c +[(* +buf + >> 4) & 0x0F]; + +631 * +p +++ = +h2c +[* +buf + & 0x0F]; + +634 + `ASN__CALLBACK +( +sü©ch +, +p +-scratch); + +636  +i + = 0; +buf + < +’d +; buf++, i++) { + +637 if(!( +i + % 16è&& (˜|| +¡ +-> +size + > 16)) { + +638 + `ASN__CALLBACK +( +sü©ch +, +p +-scratch); + +639 +p + = +sü©ch +; + +640 + `ASN__TEXT_INDENT +(1, +žev– +); + +642 * +p +++ = +h2c +[(* +buf + >> 4) & 0x0F]; + +643 * +p +++ = +h2c +[* +buf + & 0x0F]; + +644 * +p +++ = 0x20; + +646 if( +p + - +sü©ch +) { + +647 +p +--; + +648 + `ASN__CALLBACK +( +sü©ch +, +p +-scratch); + +649 if( +¡ +-> +size + > 16) + +650 + `ASN__TEXT_INDENT +(1, +žev– +-1); + +654 + `ASN__ENCODED_OK +( +” +); + +655 +cb_çžed +: + +656 +ASN__ENCODE_FAILED +; + +657 + } +} + +659 cÚ¡  + sOCTET_STRING__x”_esÿ³_bË_s + { + +660 cÚ¡ * + m¡ršg +; + +661  + msize +; + +662 } + gOCTET_STRING__x”_esÿ³_bË +[] = { + +663  + #OSXET +( +s +è{ s, (sè- 1 } + + ) + +664 +OSXET +("\074\156\165\154\057\076"), + +665 +OSXET +("\074\163\157\150\057\076"), + +666 +OSXET +("\074\163\164\170\057\076"), + +667 +OSXET +("\074\145\164\170\057\076"), + +668 +OSXET +("\074\145\157\164\057\076"), + +669 +OSXET +("\074\145\156\161\057\076"), + +670 +OSXET +("\074\141\143\153\057\076"), + +671 +OSXET +("\074\142\145\154\057\076"), + +672 +OSXET +("\074\142\163\057\076"), + +673 +OSXET +("\011"), + +674 +OSXET +("\012"), + +675 +OSXET +("\074\166\164\057\076"), + +676 +OSXET +("\074\146\146\057\076"), + +677 +OSXET +("\015"), + +678 +OSXET +("\074\163\157\057\076"), + +679 +OSXET +("\074\163\151\057\076"), + +680 +OSXET +("\074\144\154\145\057\076"), + +681 +OSXET +("\074\144\143\061\057\076"), + +682 +OSXET +("\074\144\143\062\057\076"), + +683 +OSXET +("\074\144\143\063\057\076"), + +684 +OSXET +("\074\144\143\064\057\076"), + +685 +OSXET +("\074\156\141\153\057\076"), + +686 +OSXET +("\074\163\171\156\057\076"), + +687 +OSXET +("\074\145\164\142\057\076"), + +688 +OSXET +("\074\143\141\156\057\076"), + +689 +OSXET +("\074\145\155\057\076"), + +690 +OSXET +("\074\163\165\142\057\076"), + +691 +OSXET +("\074\145\163\143\057\076"), + +692 +OSXET +("\074\151\163\064\057\076"), + +693 +OSXET +("\074\151\163\063\057\076"), + +694 +OSXET +("\074\151\163\062\057\076"), + +695 +OSXET +("\074\151\163\061\057\076"), + +702 +OSXET +("\046\141\155\160\073"), + +707 +OSXET +("\046\154\164\073"), + +709 +OSXET +("\046\147\164\073"), + +713 + $OS__check_esÿ³d_cڌÞ_ch¬ +(cÚ¡ * +buf +,  +size +) { + +714 +size_t + +i +; + +721  +i + = 0; i < 32 ; i++) { + +722 cÚ¡  +OCTET_STRING__x”_esÿ³_bË_s + * +– +; + +723 +– + = & +OCTET_STRING__x”_esÿ³_bË +[ +i +]; + +724 if( +– +-> +size + =ðsiz&& + `memcmp +( +buf +,ƒl-> +¡ršg +, size) == 0) + +725  +i +; + +728 + } +} + +731 + $OCTET_STRING__hªdË_cڌÞ_ch¬s +(* +¡ruù_±r +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +737  +cڌÞ_ch¬ + = + `OS__check_esÿ³d_cڌÞ_ch¬ +( +chunk_buf +, +chunk_size +); + +738 if( +cڌÞ_ch¬ + >= 0) { + +739 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*) +¡ruù_±r +; + +740 * +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + 2); + +741 if( +p +) { + +742 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +743 +¡ +-> +buf +[¡-> +size +++] = +cڌÞ_ch¬ +; + +744 +¡ +-> +buf +[¡-> +size +] = '\0'; + +750 + } +} + +752 +a¢_’c_rv®_t + + +753 + $OCTET_STRING_’code_x”_utf8 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +754  +žev– +, +x”_’cod”_æags_e + +æags +, + +755 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +756 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +757 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +758 +ušt8_t + * +buf +, * +’d +; + +759 +ušt8_t + * +ss +; + +760 +ssize_t + +’coded_Ën + = 0; + +762 () +žev– +; + +763 () +æags +; + +765 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +766 +ASN__ENCODE_FAILED +; + +768 +buf + = +¡ +->buf; + +769 +’d + = +buf + + +¡ +-> +size +; + +770  +ss + = +buf +; buà< +’d +; buf++) { + +771  +ch + = * +buf +; + +772  +s_Ën +; + +777 if( +ch + < ( +OCTET_STRING__x”_esÿ³_bË +) + +778 /( +OCTET_STRING__x”_esÿ³_bË +[0]) + +779 && ( +s_Ën + = +OCTET_STRING__x”_esÿ³_bË +[ +ch +]. +size +)) { + +780 if((( +buf + - +ss +è&& + `cb +(ss, buà- ss, +­p_key +) < 0) + +781 || + `cb +( +OCTET_STRING__x”_esÿ³_bË +[ +ch +]. +¡ršg +, +s_Ën +, + +782 +­p_key +) < 0) + +783 +ASN__ENCODE_FAILED +; + +784 +’coded_Ën + +ð( +buf + - +ss +è+ +s_Ën +; + +785 +ss + = +buf + + 1; + +789 +’coded_Ën + +ð( +buf + - +ss +); + +790 if(( +buf + - +ss +è&& + `cb +(ss, buà- ss, +­p_key +) < 0) + +791 +ASN__ENCODE_FAILED +; + +793 +” +. +’coded + = +’coded_Ën +; + +794 + `ASN__ENCODED_OK +( +” +); + +795 + } +} + +800  +ssize_t + + $OCTET_STRING__cÚv”t_hexadecim® +(* +¥Œ +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +,  +have_mÜe +) { + +801 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*) +¥Œ +; + +802 cÚ¡ * +chunk_¡Ý + = (cÚ¡ *) +chunk_buf +; + +803 cÚ¡ * +p + = +chunk_¡Ý +; + +804 cÚ¡ * +³nd + = +p + + +chunk_size +; + +805  +þv + = 0; + +806  +h®f + = 0; + +807 +ušt8_t + * +buf +; + +810 +size_t + +Ãw_size + = +¡ +-> +size + + ( +chunk_size + + 1) / 2; + +811 * +Ō + = + `REALLOC +( +¡ +-> +buf +, +Ãw_size + + 1); + +812 if(! +Ō +)  -1; + +813 +¡ +-> +buf + = ( +ušt8_t + *) +Ō +; + +814 +buf + = +¡ +->buà+ st-> +size +; + +821 ; +p + < +³nd +;…++) { + +822  +ch + = *(cÚ¡ *) +p +; + +823  +ch +) { + +830 +þv + = (þv << 4è+ ( +ch + - 0x30); + +834 +þv + = (þv << 4è+ ( +ch + - 0x41 + 10); + +838 +þv + = (þv << 4è+ ( +ch + - 0x61 + 10); + +841 * +buf + = 0; + +844 if( +h®f +++) { + +845 +h®f + = 0; + +846 * +buf +++ = +þv +; + +847 +chunk_¡Ý + = +p + + 1; + +854 if( +h®f +) { + +855 if( +have_mÜe +) { + +860 * +buf +++ = +þv + << 4; + +861 +chunk_¡Ý + = +p +; + +864 +chunk_¡Ý + = +p +; + +867 +¡ +-> +size + = +buf + - st->buf; + +868 + `as£¹ +( +¡ +-> +size + <ð +Ãw_size +); + +869 +¡ +-> +buf +[¡-> +size +] = 0; + +871  ( +chunk_¡Ý + - (cÚ¡ *) +chunk_buf +); + +872 + } +} + +877  +ssize_t + + $OCTET_STRING__cÚv”t_bš¬y +(* +¥Œ +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +,  +have_mÜe +) { + +878 +BIT_STRING_t + * +¡ + = (BIT_STRING_ˆ*) +¥Œ +; + +879 cÚ¡ * +p + = (cÚ¡ *) +chunk_buf +; + +880 cÚ¡ * +³nd + = +p + + +chunk_size +; + +881  +b™s_unu£d + = +¡ +->bits_unused & 0x7; + +882 +ušt8_t + * +buf +; + +885 +size_t + +Ãw_size + = +¡ +-> +size + + ( +chunk_size + + 7) / 8; + +886 * +Ō + = + `REALLOC +( +¡ +-> +buf +, +Ãw_size + + 1); + +887 if(! +Ō +)  -1; + +888 +¡ +-> +buf + = ( +ušt8_t + *) +Ō +; + +889 +buf + = +¡ +->buà+ st-> +size +; + +891 () +have_mÜe +; + +893 if( +b™s_unu£d + == 0) + +894 +b™s_unu£d + = 8; + +895 if( +¡ +-> +size +) + +896 +buf +--; + +901 ; +p + < +³nd +;…++) { + +902  +ch + = *(cÚ¡ *) +p +; + +903  +ch +) { + +910 if( +b™s_unu£d +-- <= 0) { + +911 *++ +buf + = 0; + +912 +b™s_unu£d + = 7; + +914 * +buf + |ð( +ch +&1è<< +b™s_unu£d +; + +917 +¡ +-> +b™s_unu£d + = bits_unused; + +922 if( +b™s_unu£d + == 8) { + +923 +¡ +-> +size + = +buf + - st->buf; + +924 +¡ +-> +b™s_unu£d + = 0; + +926 +¡ +-> +size + = +buf + - st->buf + 1; + +927 +¡ +-> +b™s_unu£d + = bits_unused; + +930 + `as£¹ +( +¡ +-> +size + <ð +Ãw_size +); + +931 +¡ +-> +buf +[¡-> +size +] = 0; + +933  +chunk_size +; + +934 + } +} + +940 + $OS__¡¹ÛÁ +( +ba£ +, cÚ¡ * +buf +, cÚ¡ * +’d +, +št32_t + * +»t_v®ue +) { + +941 cÚ¡ +št32_t + +Ï¡_unicode_cod•ošt + = 0x10ffff; + +942 +št32_t + +v® + = 0; + +943 cÚ¡ * +p +; + +945  +p + = +buf +;… < +’d +;…++) { + +946  +ch + = * +p +; + +948  +ch +) { + +951 +v® + = v® * +ba£ + + ( +ch + - 0x30); + +955 +v® + = v® * +ba£ + + ( +ch + - 0x41 + 10); + +959 +v® + = v® * +ba£ + + ( +ch + - 0x61 + 10); + +962 * +»t_v®ue + = +v® +; + +963  ( +p + - +buf +) + 1; + +969 if( +v® + > +Ï¡_unicode_cod•ošt +) { + +974 * +»t_v®ue + = -1; + +975  ( +p + - +buf +); + +976 + } +} + +981  +ssize_t + + +982 + $OCTET_STRING__cÚv”t_’Œefs +(* +¥Œ +, cÚ¡ * +chunk_buf +, + +983 +size_t + +chunk_size +,  +have_mÜe +) { + +984 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*) +¥Œ +; + +985 cÚ¡ * +p + = (cÚ¡ *) +chunk_buf +; + +986 cÚ¡ * +³nd + = +p + + +chunk_size +; + +987 +ušt8_t + * +buf +; + +990 +size_t + +Ãw_size + = +¡ +-> +size + + +chunk_size +; + +991 * +Ō + = + `REALLOC +( +¡ +-> +buf +, +Ãw_size + + 1); + +992 if(! +Ō +)  -1; + +993 +¡ +-> +buf + = ( +ušt8_t + *) +Ō +; + +994 +buf + = +¡ +->buà+ st-> +size +; + +999 ; +p + < +³nd +;…++) { + +1000  +ch + = *(cÚ¡ *) +p +; + +1001  +Ën +; + +1003 if( +ch + != 0x26 ) { + +1004 * +buf +++ = +ch +; + +1011 +Ën + = +chunk_size + - ( +p + - (cÚ¡ *) +chunk_buf +); + +1012 if( +Ën + =ð1 )  +wªt_mÜe +; + +1013 if( +p +[1] == 0x23 ) { + +1014 cÚ¡ * +pv® +; + +1015 +št32_t + +v® + = 0; + +1016  +ba£ +; + +1018 if( +Ën + =ð2 )  +wªt_mÜe +; + +1019 if( +p +[2] == 0x78 ) + +1020 +pv® + = +p + + 3, +ba£ + = 16; + +1022 +pv® + = +p + + 2, +ba£ + = 10; + +1023 +Ën + = + `OS__¡¹ÛÁ +( +ba£ +, +pv® +, +p + +†’, & +v® +); + +1024 if( +Ën + == -1) { + +1026 * +buf +++ = +ch +; + +1029 if(! +Ën + || +pv® +[Ën-1] !ð0x3bè +wªt_mÜe +; + +1030 + `as£¹ +( +v® + > 0); + +1031 +p + +ð( +pv® + -…è+ +Ën + - 1; + +1033 if( +v® + < 0x80) { + +1034 * +buf +++ = () +v® +; + +1035 } if( +v® + < 0x800) { + +1036 * +buf +++ = 0xc0 | (( +v® + >> 6)); + +1037 * +buf +++ = 0x80 | (( +v® + & 0x3f)); + +1038 } if( +v® + < 0x10000) { + +1039 * +buf +++ = 0xe0 | (( +v® + >> 12)); + +1040 * +buf +++ = 0x80 | (( +v® + >> 6) & 0x3f); + +1041 * +buf +++ = 0x80 | (( +v® + & 0x3f)); + +1042 } if( +v® + < 0x200000) { + +1043 * +buf +++ = 0xf0 | (( +v® + >> 18)); + +1044 * +buf +++ = 0x80 | (( +v® + >> 12) & 0x3f); + +1045 * +buf +++ = 0x80 | (( +v® + >> 6) & 0x3f); + +1046 * +buf +++ = 0x80 | (( +v® + & 0x3f)); + +1047 } if( +v® + < 0x4000000) { + +1048 * +buf +++ = 0xf8 | (( +v® + >> 24)); + +1049 * +buf +++ = 0x80 | (( +v® + >> 18) & 0x3f); + +1050 * +buf +++ = 0x80 | (( +v® + >> 12) & 0x3f); + +1051 * +buf +++ = 0x80 | (( +v® + >> 6) & 0x3f); + +1052 * +buf +++ = 0x80 | (( +v® + & 0x3f)); + +1054 * +buf +++ = 0xfø| (( +v® + >> 30) & 0x1); + +1055 * +buf +++ = 0x80 | (( +v® + >> 24) & 0x3f); + +1056 * +buf +++ = 0x80 | (( +v® + >> 18) & 0x3f); + +1057 * +buf +++ = 0x80 | (( +v® + >> 12) & 0x3f); + +1058 * +buf +++ = 0x80 | (( +v® + >> 6) & 0x3f); + +1059 * +buf +++ = 0x80 | (( +v® + & 0x3f)); + +1065 * +sc + = (*) + `memchr +( +p +, 0x3b, +Ën + > 5 ? 5 :†en); + +1066 if(! +sc +è +wªt_mÜe +; + +1067 if(( +sc + - +p +) == 4 + +1068 && +p +[1] == 0x61 + +1069 && +p +[2] == 0x6d + +1070 && +p +[3] == 0x70 ) { + +1071 * +buf +++ = 0x26; + +1072 +p + = +sc +; + +1075 if(( +sc + - +p +) == 3) { + +1076 if( +p +[1] == 0x6c) { + +1077 * +buf + = 0x3c; + +1078 } if( +p +[1] == 0x67) { + +1079 * +buf + = 0x3e; + +1082 * +buf +++ = +ch +; + +1085 if( +p +[2] != 0x74) { + +1087 * +buf +++ = +ch +; + +1090 +buf +++; + +1091 +p + = +sc +; + +1095 * +buf +++ = +ch +; + +1099 +wªt_mÜe +: + +1100 if( +have_mÜe +) { + +1105 * +buf +++ = +ch +; + +1108 +chunk_size + = ( +p + - (cÚ¡ *) +chunk_buf +); + +1113 +¡ +-> +size + = +buf + - st->buf; + +1114 + `as£¹ +( +¡ +-> +size + <ð +Ãw_size +); + +1115 +¡ +-> +buf +[¡-> +size +] = 0; + +1117  +chunk_size +; + +1118 + } +} + +1123  +a¢_dec_rv®_t + + +1124 + $OCTET_STRING__decode_x” +( + +1125 cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1126 ** +¥Œ +, cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +, + +1127 (* +Ýt_uÃx³ùed_g_decod” +)(* +¡ruù_±r +, cÚ¡ * +chunk_buf +, + +1128 +size_t + +chunk_size +), + +1129 + $ssize_t + (* +body_»ûiv” +)(* +¡ruù_±r +, cÚ¡ * +chunk_buf +, + +1130 +size_t + +chunk_size +,  +have_mÜe +)) { + +1131 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*)* +¥Œ +; + +1132 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +1133 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +1134 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +1135 cÚ¡ * +xml_g + = +Ýt_mÇme + ? o±_mÇm: +td +->xml_tag; + +1136 +a¢_¡ruù_ùx_t + * +ùx +; + +1137 +a¢_dec_rv®_t + +rv® +; + +1138  +¡_®loÿ‹d +; + +1143 if(! +¡ +) { + +1144 +¡ + = ( +OCTET_STRING_t + *) + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1145 * +¥Œ + = (*) +¡ +; + +1146 if(! +¡ +è +¡a_çžed +; + +1147 +¡_®loÿ‹d + = 1; + +1149 +¡_®loÿ‹d + = 0; + +1151 if(! +¡ +-> +buf +) { + +1153 +¡ +-> +buf + = ( +ušt8_t + *) + `CALLOC +(1, 1); + +1154 if(! +¡ +-> +buf +) { + +1155 if( +¡_®loÿ‹d +) { + +1156 * +¥Œ + = 0; + +1157  +¡b_çžed +; + +1159  +¡a_çžed +; + +1165 +ùx + = ( +a¢_¡ruù_ùx_t + *)(((*)* +¥Œ +è+ +¥ecs +-> +ùx_off£t +); + +1167  + `x”_decode_g’”® +( +Ýt_codec_ùx +, +ùx +, * +¥Œ +, +xml_g +, + +1168 +buf_±r +, +size +, +Ýt_uÃx³ùed_g_decod” +, +body_»ûiv” +); + +1170 +¡b_çžed +: + +1171 + `FREEMEM +( +¡ +); + +1172 +¡a_çžed +: + +1173 +rv® +. +code + = +RC_FAIL +; + +1174 +rv® +. +cÚsumed + = 0; + +1175  +rv® +; + +1176 + } +} + +1181 +a¢_dec_rv®_t + + +1182 + $OCTET_STRING_decode_x”_hex +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1183 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1184 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, + +1185 +size_t + +size +) { + +1186  + `OCTET_STRING__decode_x” +( +Ýt_codec_ùx +, +td +, +¥Œ +, +Ýt_mÇme +, + +1187 +buf_±r +, +size +, 0, +OCTET_STRING__cÚv”t_hexadecim® +); + +1188 + } +} + +1193 +a¢_dec_rv®_t + + +1194 + $OCTET_STRING_decode_x”_bš¬y +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1195 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1196 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, + +1197 +size_t + +size +) { + +1198  + `OCTET_STRING__decode_x” +( +Ýt_codec_ùx +, +td +, +¥Œ +, +Ýt_mÇme +, + +1199 +buf_±r +, +size +, 0, +OCTET_STRING__cÚv”t_bš¬y +); + +1200 + } +} + +1205 +a¢_dec_rv®_t + + +1206 + $OCTET_STRING_decode_x”_utf8 +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1207 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1208 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, + +1209 +size_t + +size +) { + +1210  + `OCTET_STRING__decode_x” +( +Ýt_codec_ùx +, +td +, +¥Œ +, +Ýt_mÇme +, + +1211 +buf_±r +, +size +, + +1212 +OCTET_STRING__hªdË_cڌÞ_ch¬s +, + +1213 +OCTET_STRING__cÚv”t_’Œefs +); + +1214 + } +} + +1216 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +1219 + $OCTET_STRING_³r_g‘_ch¬aù”s +( +a¢_³r_d©a_t + * +po +, +ušt8_t + * +buf +, + +1220 +size_t + +un™s +,  +bpc +,  +un™_b™s +, + +1221  +lb +,  +ub +, cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc +) { + +1222 +ušt8_t + * +’d + = +buf + + +un™s + * +bpc +; + +1224 + `ASN_DEBUG +("Expanding %d characters into (%ld..%ld):%d", + +1225 () +un™s +, +lb +, +ub +, +un™_b™s +); + +1228 if(() +ub + <ð(()2 << ( +un™_b™s + - 1))) { + +1230 +lb + = 0; + +1231 } if( +pc + &&…c-> +code2v®ue +) { + +1232 if( +un™_b™s + > 16) + +1236 ; +buf + < +’d +; buà+ð +bpc +) { + +1237  +v®ue +; + +1238  +code + = + `³r_g‘_ãw_b™s +( +po +, +un™_b™s +); + +1239 if( +code + < 0)  -1; + +1240 +v®ue + = +pc +-> + `code2v®ue +( +code +); + +1241 if( +v®ue + < 0) { + +1242 + `ASN_DEBUG +("Code %d (0x%02x) is" + +1244 +code +, code, +lb +, +ub +); + +1247  +bpc +) { + +1248 1: * +buf + = +v®ue +; ; + +1249 2: +buf +[0] = +v®ue + >> 8; buf[1] = value; ; + +1250 4: +buf +[0] = +v®ue + >> 24; buf[1] = value >> 16; + +1251 +buf +[2] = +v®ue + >> 8; buf[3] = value; ; + +1258 if( +lb + =ð0 && ( +un™_b™s + =ð8 * +bpc +)) { + +1259  + `³r_g‘_mªy_b™s +( +po +, +buf +, 0, +un™_b™s + * +un™s +); + +1262 ; +buf + < +’d +; buà+ð +bpc +) { + +1263 +št32_t + +code + = + `³r_g‘_ãw_b™s +( +po +, +un™_b™s +); + +1264 +št32_t + +ch + = +code + + +lb +; + +1265 if( +code + < 0)  -1; + +1266 if( +ch + > +ub +) { + +1267 + `ASN_DEBUG +("Code %d is out of„ange (%ld..%ld)", + +1268 +ch +, +lb +, +ub +); + +1271  +bpc +) { + +1272 1: * +buf + = +ch +; ; + +1273 2: +buf +[0] = +ch + >> 8; buf[1] = ch; ; + +1274 4: +buf +[0] = +ch + >> 24; buf[1] = ch >> 16; + +1275 +buf +[2] = +ch + >> 8; buf[3] = ch; ; + +1280 + } +} + +1283 + $OCTET_STRING_³r_put_ch¬aù”s +( +a¢_³r_ou_t + * +po +, cÚ¡ +ušt8_t + * +buf +, + +1284 +size_t + +un™s +,  +bpc +,  +un™_b™s +, + +1285  +lb +,  +ub +, cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc +) { + +1286 cÚ¡ +ušt8_t + * +’d + = +buf + + +un™s + * +bpc +; + +1288 + `ASN_DEBUG +("Squeezing %d characters into (%ld..%ld):%d (%d bpc)", + +1289 () +un™s +, +lb +, +ub +, +un™_b™s +, +bpc +); + +1292 if(() +ub + <ð(()2 << ( +un™_b™s + - 1))) { + +1294 +lb + = 0; + +1295 } if( +pc + &&…c-> +v®ue2code +) { + +1296 ; +buf + < +’d +; buà+ð +bpc +) { + +1297  +code +; + +1298 +ušt32_t + +v®ue +; + +1299  +bpc +) { + +1300 1: +v®ue + = *(cÚ¡ +ušt8_t + *) +buf +; ; + +1301 2: +v®ue + = ( +buf +[0] << 8) | buf[1]; ; + +1302 4: +v®ue + = ( +buf +[0] << 24) | (buf[1] << 16) + +1303 | ( +buf +[2] << 8) | buf[3]; ; + +1306 +code + = +pc +-> + `v®ue2code +( +v®ue +); + +1307 if( +code + < 0) { + +1308 + `ASN_DEBUG +("Character %d (0x%02x) is" + +1310 * +buf +, *buf, +lb +, +ub +); + +1313 if( + `³r_put_ãw_b™s +( +po +, +code +, +un™_b™s +)) + +1319 if( +lb + =ð0 && ( +un™_b™s + =ð8 * +bpc +)) { + +1320  + `³r_put_mªy_b™s +( +po +, +buf +, +un™_b™s + * +un™s +); + +1323  +ub + -ð +lb +; +buf + < +’d +; buà+ð +bpc +) { + +1324  +ch +; + +1325 +ušt32_t + +v®ue +; + +1326  +bpc +) { + +1328 +v®ue + = *(cÚ¡ +ušt8_t + *) +buf +; + +1331 +v®ue + = ( +buf +[0] << 8) | buf[1]; + +1334 +v®ue + = ( +buf +[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]; + +1339 +ch + = +v®ue + - +lb +; + +1340 if( +ch + < 0 || ch > +ub +) { + +1341 + `ASN_DEBUG +("Ch¬aù” %d (0x%02xèi ouˆoà¿ng(%ld..%ld)", * +buf +, + +1342 +v®ue +, +lb +, +ub + +†b); + +1345 if( + `³r_put_ãw_b™s +( +po +, +ch +, +un™_b™s +))  -1; + +1349 + } +} + +1351  +a¢_³r_cÚ¡¿šts_t + + ga¢_DEF_OCTET_STRING_cÚ¡¿šts + = { + +1352 { +APC_CONSTRAINED +, 8, 8, 0, 255 }, + +1353 { +APC_SEMI_CONSTRAINED +, -1, -1, 0, 0 }, + +1357 +a¢_dec_rv®_t + + +1358 + $OCTET_STRING_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1359 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1360 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +1361 +a¢_³r_d©a_t + * +pd +) { + +1362 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +1363 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +1364 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +1365 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = + +1366 +cÚ¡¿šts + ? cÚ¡¿št : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +1367 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +cv® +; + +1368 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +1369 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +1370 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*)* +¥Œ +; + +1371 +ssize_t + +cÚsumed_my£lf + = 0; + +1372  +»³© +; + +1374 +OS__BPC_CHAR + = 1, + +1375 +OS__BPC_U16 + = 2, + +1376 +OS__BPC_U32 + = 4 + +1377 } +bpc +; + +1378  +un™_b™s +; + +1379  +ÿnÚiÿl_un™_b™s +; + +1381 () +Ýt_codec_ùx +; + +1383 if( +pc +) { + +1384 +cv® + = & +pc +-> +v®ue +; + +1385 +csiz + = & +pc +-> +size +; + +1387 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1388 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1391  +¥ecs +-> +subv¬ŸÁ +) { + +1393  +ASN_OSUBV_ANY +: + +1394  +ASN_OSUBV_BIT +: + +1395 + `ASN_DEBUG +("UÄecognized subv¬ŸÁ %d", +¥ecs +-> +subv¬ŸÁ +); + +1396 + `RETURN +( +RC_FAIL +); + +1398  +ASN_OSUBV_STR +: + +1399 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 8; + +1400 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1401 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1402 +bpc + = +OS__BPC_CHAR +; + +1404  +ASN_OSUBV_U16 +: + +1405 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 16; + +1406 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1407 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1408 +bpc + = +OS__BPC_U16 +; + +1410  +ASN_OSUBV_U32 +: + +1411 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 32; + +1412 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1413 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1414 +bpc + = +OS__BPC_U32 +; + +1421 if(! +¡ +) { + +1422 +¡ + = ( +OCTET_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +1423 if(! +¡ +è + `RETURN +( +RC_FAIL +); + +1426 + `ASN_DEBUG +("PER Decoding %s size %ld .. %ld bits %d", + +1427 +csiz +-> +æags + & +APC_EXTENSIBLE + ? "extensible" : "non-extensible", + +1428 +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, csiz-> +efãùive_b™s +); + +1430 if( +csiz +-> +æags + & +APC_EXTENSIBLE +) { + +1431  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1432 if( +šext + < 0è + `RETURN +( +RC_WMORE +); + +1433 if( +šext +) { + +1434 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1435 +un™_b™s + = +ÿnÚiÿl_un™_b™s +; + +1439 if( +csiz +-> +efãùive_b™s + >= 0) { + +1440 + `FREEMEM +( +¡ +-> +buf +); + +1441 if( +bpc +) { + +1442 +¡ +-> +size + = +csiz +-> +uµ”_bound + * +bpc +; + +1444 +¡ +-> +size + = ( +csiz +-> +uµ”_bound + + 7) >> 3; + +1446 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +(¡-> +size + + 1); + +1447 if(! +¡ +-> +buf +è{ st-> +size + = 0; + `RETURN +( +RC_FAIL +); } + +1453 if( +csiz +-> +efãùive_b™s + == 0) { + +1454  +»t +; + +1455 if( +bpc +) { + +1456 + `ASN_DEBUG +("Encoding OCTET STRING size %ld", + +1457 +csiz +-> +uµ”_bound +); + +1458 +»t + = + `OCTET_STRING_³r_g‘_ch¬aù”s +( +pd +, +¡ +-> +buf +, + +1459 +csiz +-> +uµ”_bound +, +bpc +, +un™_b™s +, + +1460 +cv® +-> +low”_bound +, cv®-> +uµ”_bound +, +pc +); + +1461 if( +»t + > 0è + `RETURN +( +RC_FAIL +); + +1463 + `ASN_DEBUG +("Encoding BIT STRING size %ld", + +1464 +csiz +-> +uµ”_bound +); + +1465 +»t + = + `³r_g‘_mªy_b™s +( +pd +, +¡ +-> +buf +, 0, + +1466 +un™_b™s + * +csiz +-> +uµ”_bound +); + +1468 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +1469 +cÚsumed_my£lf + +ð +un™_b™s + * +csiz +-> +uµ”_bound +; + +1470 +¡ +-> +buf +[¡-> +size +] = 0; + +1471 + `RETURN +( +RC_OK +); + +1474 +¡ +-> +size + = 0; + +1476 +ssize_t + +¿w_Ën +; + +1477 +ssize_t + +Ën_by‹s +; + +1478 * +p +; + +1479  +»t +; + +1482 +¿w_Ën + = + `u³r_g‘_Ëngth +( +pd +, +csiz +-> +efãùive_b™s +, csiz-> +low”_bound +, + +1483 & +»³© +); + +1484 if( +¿w_Ën + < 0è + `RETURN +( +RC_WMORE +); + +1485 if( +¿w_Ën + =ð0 && +¡ +-> +buf +) ; + +1487 + `ASN_DEBUG +("Got PER†engthƒb %ld,†en %ld, %s (%s)", + +1488 () +csiz +-> +efãùive_b™s +, () +¿w_Ën +, + +1489 +»³© + ? "»³©" : "Úû", +td +-> +Çme +); + +1490 +Ën_by‹s + = +¿w_Ën + * +bpc +; + +1491 +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + +Ën_by‹s + + 1); + +1492 if(! +p +è + `RETURN +( +RC_FAIL +); + +1493 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +1495 +»t + = + `OCTET_STRING_³r_g‘_ch¬aù”s +( +pd +, & +¡ +-> +buf +[¡-> +size +], +¿w_Ën +, + +1496 +bpc +, +un™_b™s +, +cv® +-> +low”_bound +, + +1497 +cv® +-> +uµ”_bound +, +pc +); + +1498 if( +»t + > 0è + `RETURN +( +RC_FAIL +); + +1499 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +1500 +¡ +-> +size + +ð +Ën_by‹s +; + +1501 }  +»³© +); + +1502 +¡ +-> +buf +[¡-> +size +] = 0; + +1504  +rv® +; + +1505 + } +} + +1507 +a¢_’c_rv®_t + + +1508 + $OCTET_STRING_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1509 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1510 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +1511 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +1512 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +1513 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +1514 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = +cÚ¡¿šts + ? constraints + +1515 : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +1516 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +cv® +; + +1517 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +1518 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +1519 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +1520  +šext + = 0; + +1521  +un™_b™s +; + +1522  +ÿnÚiÿl_un™_b™s +; + +1523 +size_t + +size_š_un™s +; + +1524 cÚ¡ +ušt8_t + * +buf +; + +1525  +»t +; + +1527 +OS__BPC_CHAR + = 1, + +1528 +OS__BPC_U16 + = 2, + +1529 +OS__BPC_U32 + = 4 + +1530 } +bpc +; + +1531  +ù_ex‹nsibË +; + +1533 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +1534 +ASN__ENCODE_FAILED +; + +1536 if( +pc +) { + +1537 +cv® + = & +pc +-> +v®ue +; + +1538 +csiz + = & +pc +-> +size +; + +1540 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1541 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1543 +ù_ex‹nsibË + = +csiz +-> +æags + & +APC_EXTENSIBLE +; + +1545  +¥ecs +-> +subv¬ŸÁ +) { + +1547  +ASN_OSUBV_ANY +: + +1548  +ASN_OSUBV_BIT +: + +1549 +ASN__ENCODE_FAILED +; + +1550  +ASN_OSUBV_STR +: + +1551 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 8; + +1552 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1553 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1554 +bpc + = +OS__BPC_CHAR +; + +1555 +size_š_un™s + = +¡ +-> +size +; + +1557  +ASN_OSUBV_U16 +: + +1558 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 16; + +1559 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1560 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1561 +bpc + = +OS__BPC_U16 +; + +1562 +size_š_un™s + = +¡ +-> +size + >> 1; + +1563 if( +¡ +-> +size + & 1) { + +1564 + `ASN_DEBUG +("% ¡ršg sizi nÙ modulØ2", +td +-> +Çme +); + +1565 +ASN__ENCODE_FAILED +; + +1568  +ASN_OSUBV_U32 +: + +1569 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 32; + +1570 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1571 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1572 +bpc + = +OS__BPC_U32 +; + +1573 +size_š_un™s + = +¡ +-> +size + >> 2; + +1574 if( +¡ +-> +size + & 3) { + +1575 + `ASN_DEBUG +("% ¡ršg sizi nÙ modulØ4", +td +-> +Çme +); + +1576 +ASN__ENCODE_FAILED +; + +1581 + `ASN_DEBUG +("Encodšg % štØ%" +ASN_PRI_SIZE + " units of %d bits" + +1583 +td +-> +Çme +, +size_š_un™s +, +un™_b™s +, + +1584 +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, + +1585 +csiz +-> +efãùive_b™s +, +ù_ex‹nsibË + ? " EXT" : ""); + +1589 if( +csiz +-> +efãùive_b™s + >= 0) { + +1590 if(( +ssize_t +) +size_š_un™s + < +csiz +-> +low”_bound + + +1591 || ( +ssize_t +) +size_š_un™s + > +csiz +-> +uµ”_bound +) { + +1592 if( +ù_ex‹nsibË +) { + +1593 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1594 +un™_b™s + = +ÿnÚiÿl_un™_b™s +; + +1595 +šext + = 1; + +1597 +ASN__ENCODE_FAILED +; + +1601 +šext + = 0; + +1604 if( +ù_ex‹nsibË +) { + +1606 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +1607 +ASN__ENCODE_FAILED +; + +1610 if( +csiz +-> +efãùive_b™s + >ð0 && ! +šext +) { + +1611 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SIZE + " by‹ (%ld),†’gth iÀ%d b™s", +¡ +-> +size +, + +1612 +size_š_un™s + - +csiz +-> +low”_bound +, csiz-> +efãùive_b™s +); + +1613 +»t + = + `³r_put_ãw_b™s +( +po +, +size_š_un™s + - +csiz +-> +low”_bound +, + +1614 +csiz +-> +efãùive_b™s +); + +1615 if( +»t +è +ASN__ENCODE_FAILED +; + +1616 +»t + = + `OCTET_STRING_³r_put_ch¬aù”s +( +po +, +¡ +-> +buf +, +size_š_un™s +, +bpc +, + +1617 +un™_b™s +, +cv® +-> +low”_bound +, + +1618 +cv® +-> +uµ”_bound +, +pc +); + +1619 if( +»t +è +ASN__ENCODE_FAILED +; + +1620 + `ASN__ENCODED_OK +( +” +); + +1623 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SIZE + " by‹s", +¡ +-> +size +); + +1625 +buf + = +¡ +->buf; + +1626 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SIZE + " iÀun™s", +size_š_un™s +); + +1628  +Ãed_eom + = 0; + +1629 +ssize_t + +may_§ve + = + `u³r_put_Ëngth +( +po +, +size_š_un™s +, & +Ãed_eom +); + +1630 if( +may_§ve + < 0è +ASN__ENCODE_FAILED +; + +1632 + `ASN_DEBUG +("Encodšg %" +ASN_PRI_SSIZE + " oà%" +ASN_PRI_SIZE + "%s", +may_§ve +, +size_š_un™s +, + +1633 +Ãed_eom + ? ",+EOM" : ""); + +1635 +»t + = + `OCTET_STRING_³r_put_ch¬aù”s +( +po +, +buf +, +may_§ve +, +bpc +, +un™_b™s +, + +1636 +cv® +-> +low”_bound +, + +1637 +cv® +-> +uµ”_bound +, +pc +); + +1638 if( +»t +è +ASN__ENCODE_FAILED +; + +1640 +buf + +ð +may_§ve + * +bpc +; + +1641 +size_š_un™s + -ð +may_§ve +; + +1642 + `as£¹ +(!( +may_§ve + & 0x07è|| ! +size_š_un™s +); + +1643 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)) + +1644 +ASN__ENCODE_FAILED +; + +1645 }  +size_š_un™s +); + +1647 + `ASN__ENCODED_OK +( +” +); + +1648 + } +} + +1650 +a¢_dec_rv®_t + + +1651 + $OCTET_STRING_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1652 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1653 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1654 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +1656 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +1657 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +1658 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +1659 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = +cÚ¡¿šts + ? constraints + +1660 : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +1661 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +cv® +; + +1662 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +1663 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0 }; + +1664 +BIT_STRING_t + * +¡ + = (BIT_STRING_ˆ*)* +¥Œ +; + +1665 +ssize_t + +cÚsumed_my£lf + = 0; + +1666  +»³© +; + +1668 +OS__BPC_BIT + = 0, + +1669 +OS__BPC_CHAR + = 1, + +1670 +OS__BPC_U16 + = 2, + +1671 +OS__BPC_U32 + = 4 + +1672 } +bpc +; + +1673  +un™_b™s +; + +1674  +ÿnÚiÿl_un™_b™s +; + +1676 () +Ýt_codec_ùx +; + +1678 if( +pc +) { + +1679 +cv® + = & +pc +-> +v®ue +; + +1680 +csiz + = & +pc +-> +size +; + +1682 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1683 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1686  +¥ecs +-> +subv¬ŸÁ +) { + +1692  +ASN_OSUBV_BIT +: + +1693 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 1; + +1694 +bpc + = +OS__BPC_BIT +; + +1696  +ASN_OSUBV_ANY +: + +1697  +ASN_OSUBV_STR +: + +1698 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 8; + +1702 +bpc + = +OS__BPC_CHAR +; + +1704  +ASN_OSUBV_U16 +: + +1705 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 16; + +1706 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1707 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1708 +bpc + = +OS__BPC_U16 +; + +1710  +ASN_OSUBV_U32 +: + +1711 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 32; + +1712 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1713 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1714 +bpc + = +OS__BPC_U32 +; + +1721 if(! +¡ +) { + +1722 +¡ + = ( +BIT_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +1723 if(! +¡ +è + `RETURN +( +RC_FAIL +); + +1726 + `ASN_DEBUG +("PER Decoding %s size %ld .. %ld bits %d", + +1727 +csiz +-> +æags + & +APC_EXTENSIBLE + ? "extensible" : "non-extensible", + +1728 +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, csiz-> +efãùive_b™s +); + +1730 if( +csiz +-> +æags + & +APC_EXTENSIBLE +) { + +1731  +šext + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1732 if( +šext + < 0è + `RETURN +( +RC_WMORE +); + +1733 if( +šext +) { + +1734 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1735 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1736 +un™_b™s + = +ÿnÚiÿl_un™_b™s +; + +1740 if( +csiz +-> +efãùive_b™s + >= 0) { + +1741 + `FREEMEM +( +¡ +-> +buf +); + +1742 if( +bpc +) { + +1743 +¡ +-> +size + = +csiz +-> +uµ”_bound + * +bpc +; + +1745 +¡ +-> +size + = ( +csiz +-> +uµ”_bound + + 7) >> 3; + +1747 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +(¡-> +size + + 1); + +1748 if(! +¡ +-> +buf +è{ st-> +size + = 0; + `RETURN +( +RC_FAIL +); } + +1754 if( +csiz +-> +efãùive_b™s + == 0) { + +1755  +»t +; + +1756 ià( +¡ +-> +size + > 2) { + +1757 ià( + `­”_g‘_®ign +( +pd +) < 0) + +1758 + `RETURN +( +RC_FAIL +); + +1760 if( +bpc +) { + +1761 + `ASN_DEBUG +("Decoding OCTET STRING size %ld", + +1762 +csiz +-> +uµ”_bound +); + +1763 +»t + = + `OCTET_STRING_³r_g‘_ch¬aù”s +( +pd +, +¡ +-> +buf +, + +1764 +csiz +-> +uµ”_bound +, +bpc +, +un™_b™s +, + +1765 +cv® +-> +low”_bound +, cv®-> +uµ”_bound +, +pc +); + +1766 if( +»t + > 0è + `RETURN +( +RC_FAIL +); + +1768 + `ASN_DEBUG +("Decoding BIT STRING size %ld", + +1769 +csiz +-> +uµ”_bound +); + +1770 +»t + = + `³r_g‘_mªy_b™s +( +pd +, +¡ +-> +buf +, 0, + +1771 +un™_b™s + * +csiz +-> +uµ”_bound +); + +1773 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +1774 +cÚsumed_my£lf + +ð +un™_b™s + * +csiz +-> +uµ”_bound +; + +1775 +¡ +-> +buf +[¡-> +size +] = 0; + +1776 if( +bpc + == 0) { + +1777  +ubs + = ( +csiz +-> +uµ”_bound + & 0x7); + +1778 +¡ +-> +b™s_unu£d + = +ubs + ? 8 - ubs : 0; + +1780 + `RETURN +( +RC_OK +); + +1783 +¡ +-> +size + = 0; + +1785 +ssize_t + +¿w_Ën +; + +1786 +ssize_t + +Ën_by‹s +; + +1787 +ssize_t + +Ën_b™s +; + +1788 * +p +; + +1789  +»t +; + +1792 ià( +csiz +-> +uµ”_bound + - csiz-> +low”_bound + == 0) + +1794 +¿w_Ën + = + `­”_g‘_Ëngth +( +pd +, -1, +csiz +-> +efãùive_b™s +, & +»³© +); + +1796 +¿w_Ën + = + `­”_g‘_Ëngth +( +pd +, +csiz +-> +uµ”_bound + - csiz-> +low”_bound + + 1, csiz-> +efãùive_b™s +, & +»³© +); + +1797 +»³© + = 0; + +1798 if( +¿w_Ën + < 0è + `RETURN +( +RC_WMORE +); + +1799 +¿w_Ën + +ð +csiz +-> +low”_bound +; + +1801 + `ASN_DEBUG +("Got PER†engthƒb %ld,†en %ld, %s (%s)", + +1802 () +csiz +-> +efãùive_b™s +, () +¿w_Ën +, + +1803 +»³© + ? "»³©" : "Úû", +td +-> +Çme +); + +1805 ià( +¿w_Ën + > 2) { + +1806 ià( + `­”_g‘_®ign +( +pd +) < 0) + +1807 + `RETURN +( +RC_FAIL +); + +1810 if( +bpc +) { + +1811 +Ën_by‹s + = +¿w_Ën + * +bpc +; + +1812 +Ën_b™s + = +Ën_by‹s + * +un™_b™s +; + +1814 +Ën_b™s + = +¿w_Ën +; + +1815 +Ën_by‹s + = ( +Ën_b™s + + 7) >> 3; + +1816 if( +Ën_b™s + & 0x7) + +1817 +¡ +-> +b™s_unu£d + = 8 - ( +Ën_b™s + & 0x7); + +1820 +p + = + `REALLOC +( +¡ +-> +buf +, st-> +size + + +Ën_by‹s + + 1); + +1821 if(! +p +è + `RETURN +( +RC_FAIL +); + +1822 +¡ +-> +buf + = ( +ušt8_t + *) +p +; + +1824 if( +bpc +) { + +1825 +»t + = + `OCTET_STRING_³r_g‘_ch¬aù”s +( +pd +, + +1826 & +¡ +-> +buf +[¡-> +size +], +¿w_Ën +, +bpc +, +un™_b™s +, + +1827 +cv® +-> +low”_bound +, cv®-> +uµ”_bound +, +pc +); + +1828 if( +»t + > 0è + `RETURN +( +RC_FAIL +); + +1830 +»t + = + `³r_g‘_mªy_b™s +( +pd +, & +¡ +-> +buf +[¡-> +size +], + +1831 0, +Ën_b™s +); + +1833 if( +»t + < 0è + `RETURN +( +RC_WMORE +); + +1834 +¡ +-> +size + +ð +Ën_by‹s +; + +1835 }  +»³© +); + +1836 +¡ +-> +buf +[¡-> +size +] = 0; + +1838  +rv® +; + +1839 + } +} + +1841 +a¢_’c_rv®_t + + +1842 + $OCTET_STRING_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1843 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1844 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +1846 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +1847 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +1848 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +1849 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +pc + = +cÚ¡¿šts + ? constraints + +1850 : +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +; + +1851 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +cv® +; + +1852 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +csiz +; + +1853 cÚ¡ +BIT_STRING_t + * +¡ + = (cÚ¡ BIT_STRING_ˆ*) +¥Œ +; + +1854 +a¢_’c_rv®_t + +” + = { 0, 0, 0 }; + +1855  +šext + = 0; + +1856  +un™_b™s +; + +1857  +ÿnÚiÿl_un™_b™s +; + +1858  +sizešun™s +; + +1859 cÚ¡ +ušt8_t + * +buf +; + +1860  +»t +; + +1862 +OS__BPC_BIT + = 0, + +1863 +OS__BPC_CHAR + = 1, + +1864 +OS__BPC_U16 + = 2, + +1865 +OS__BPC_U32 + = 4 + +1866 } +bpc +; + +1867  +ù_ex‹nsibË +; + +1869 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +1870 +ASN__ENCODE_FAILED +; + +1872 if( +pc +) { + +1873 +cv® + = & +pc +-> +v®ue +; + +1874 +csiz + = & +pc +-> +size +; + +1876 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1877 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1879 +ù_ex‹nsibË + = +csiz +-> +æags + & +APC_EXTENSIBLE +; + +1881  +¥ecs +-> +subv¬ŸÁ +) { + +1886  +ASN_OSUBV_BIT +: + +1887 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 1; + +1888 +bpc + = +OS__BPC_BIT +; + +1889 +sizešun™s + = +¡ +-> +size + * 8 - (¡-> +b™s_unu£d + & 0x07); + +1890 + `ASN_DEBUG +("BIT STRING of %d bytes", + +1891 +sizešun™s +); + +1893  +ASN_OSUBV_ANY +: + +1894  +ASN_OSUBV_STR +: + +1895 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 8; + +1899 +bpc + = +OS__BPC_CHAR +; + +1900 +sizešun™s + = +¡ +-> +size +; + +1902  +ASN_OSUBV_U16 +: + +1903 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 16; + +1904 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1905 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1906 +bpc + = +OS__BPC_U16 +; + +1907 +sizešun™s + = +¡ +-> +size + / 2; + +1909  +ASN_OSUBV_U32 +: + +1910 +ÿnÚiÿl_un™_b™s + = +un™_b™s + = 32; + +1911 if( +cv® +-> +æags + & +APC_CONSTRAINED +) + +1912 +un™_b™s + = +cv® +-> +¿nge_b™s +; + +1913 +bpc + = +OS__BPC_U32 +; + +1914 +sizešun™s + = +¡ +-> +size + / 4; + +1918 + `ASN_DEBUG +("Encoding %s into %d units of %d bits" + +1920 +td +-> +Çme +, +sizešun™s +, +un™_b™s +, + +1921 +csiz +-> +low”_bound +, csiz-> +uµ”_bound +, + +1922 +csiz +-> +efãùive_b™s +, +ù_ex‹nsibË + ? " EXT" : ""); + +1926 if( +csiz +-> +efãùive_b™s + >= 0) { + +1927 if(() +sizešun™s + < +csiz +-> +low”_bound + + +1928 || () +sizešun™s + > +csiz +-> +uµ”_bound +) { + +1929 if( +ù_ex‹nsibË +) { + +1930 +cv® + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +v®ue +; + +1931 +csiz + = & +a¢_DEF_OCTET_STRING_cÚ¡¿šts +. +size +; + +1932 +un™_b™s + = +ÿnÚiÿl_un™_b™s +; + +1933 +šext + = 1; + +1935 +ASN__ENCODE_FAILED +; + +1938 +šext + = 0; + +1942 if( +ù_ex‹nsibË +) { + +1944 if( + `³r_put_ãw_b™s +( +po +, +šext +, 1)) + +1945 +ASN__ENCODE_FAILED +; + +1951 if( +csiz +-> +efãùive_b™s + >= 0) { + +1952 + `ASN_DEBUG +("Encoding %lu bytes (%ld),†ength in %d bits", + +1953 +¡ +-> +size +, +sizešun™s + - +csiz +-> +low”_bound +, + +1954 +csiz +-> +efãùive_b™s +); + +1955 ià( +csiz +-> +efãùive_b™s + > 0) { + +1956 +»t + = + `­”_put_Ëngth +( +po +, +csiz +-> +uµ”_bound + - csiz-> +low”_bound + + 1, +sizešun™s + - csiz->lower_bound); + +1957 if( +»t +è +ASN__ENCODE_FAILED +; + +1961 ià(( +¡ +-> +size + > 2è|| ( +csiz +-> +low”_bound + !ðcsiz-> +uµ”_bound +)) { + +1962 ià( + `­”_put_®ign +( +po +) < 0) + +1963 +ASN__ENCODE_FAILED +; + +1965 if( +bpc +) { + +1966 +»t + = + `OCTET_STRING_³r_put_ch¬aù”s +( +po +, +¡ +-> +buf +, + +1967 +sizešun™s +, +bpc +, +un™_b™s +, + +1968 +cv® +-> +low”_bound +, cv®-> +uµ”_bound +, +pc +); + +1970 +»t + = + `³r_put_mªy_b™s +( +po +, +¡ +-> +buf +, + +1971 +sizešun™s + * +un™_b™s +); + +1973 if( +»t +è +ASN__ENCODE_FAILED +; + +1974 + `ASN__ENCODED_OK +( +” +); + +1977 + `ASN_DEBUG +("Encodšg %lu by‹s", +¡ +-> +size +); + +1979 if( +sizešun™s + == 0) { + +1980 if( + `­”_put_Ëngth +( +po +, -1, 0)) + +1981 +ASN__ENCODE_FAILED +; + +1982 + `ASN__ENCODED_OK +( +” +); + +1985 +buf + = +¡ +->buf; + +1986  +sizešun™s +) { + +1987 +ssize_t + +maySave + = + `­”_put_Ëngth +( +po +, -1, +sizešun™s +); + +1989 if( +maySave + < 0è +ASN__ENCODE_FAILED +; + +1991 + `ASN_DEBUG +("Encoding %ld of %ld", + +1992 () +maySave +, () +sizešun™s +); + +1994 if( +bpc +) { + +1995 +»t + = + `OCTET_STRING_³r_put_ch¬aù”s +( +po +, +buf +, + +1996 +maySave +, +bpc +, +un™_b™s +, + +1997 +cv® +-> +low”_bound +, cv®-> +uµ”_bound +, +pc +); + +1999 +»t + = + `³r_put_mªy_b™s +( +po +, +buf +, +maySave + * +un™_b™s +); + +2001 if( +»t +è +ASN__ENCODE_FAILED +; + +2003 if( +bpc +) + +2004 +buf + +ð +maySave + * +bpc +; + +2006 +buf + +ð +maySave + >> 3; + +2007 +sizešun™s + -ð +maySave +; + +2008 + `as£¹ +(!( +maySave + & 0x07è|| ! +sizešun™s +); + +2011 + `ASN__ENCODED_OK +( +” +); + +2012 + } +} + +2017 + $OCTET_STRING_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +2018  +žev– +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +2019 cÚ¡ * cÚ¡ +h2c + = "0123456789ABCDEF"; + +2020 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +2021  +sü©ch +[16 * 3 + 4]; + +2022 * +p + = +sü©ch +; + +2023 +ušt8_t + * +buf +; + +2024 +ušt8_t + * +’d +; + +2025 +size_t + +i +; + +2027 () +td +; + +2029 if(! +¡ + || (!¡-> +buf + && st-> +size +)) + +2030  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +2035 +buf + = +¡ +->buf; + +2036 +’d + = +buf + + +¡ +-> +size +; + +2037  +i + = 0; +buf + < +’d +; buf++, i++) { + +2038 if(!( +i + % 16è&& (˜|| +¡ +-> +size + > 16)) { + +2039 if( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +) < 0) + +2041 + `_i_INDENT +(1); + +2042 +p + = +sü©ch +; + +2044 * +p +++ = +h2c +[(* +buf + >> 4) & 0x0F]; + +2045 * +p +++ = +h2c +[* +buf + & 0x0F]; + +2046 * +p +++ = 0x20; + +2049 if( +p + > +sü©ch +) { + +2050 +p +--; + +2051 if( + `cb +( +sü©ch +, +p + - sü©ch, +­p_key +) < 0) + +2056 + } +} + +2059 + $OCTET_STRING_´št_utf8 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +2060  +žev– +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +2061 * +­p_key +) { + +2062 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +2064 () +td +; + +2065 () +žev– +; + +2067 if( +¡ + && (¡-> +buf + || !¡-> +size +)) { + +2068  ( + `cb +( +¡ +-> +buf +, st-> +size +, +­p_key +) < 0) ? -1 : 0; + +2070  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +2072 + } +} + +2075 + $OCTET_STRING_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +2076 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +2077 +OCTET_STRING_t + * +¡ + = (OCTET_STRING_ˆ*) +¥Œ +; + +2078 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs +; + +2079 +a¢_¡ruù_ùx_t + * +ùx +; + +2080  +_¡ack + * +¡ck +; + +2082 if(! +td + || ! +¡ +) + +2085 +¥ecs + = +td +-> +¥ecifics + + +2086 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +2087 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +2088 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +2090 + `ASN_DEBUG +("F»ešg % a OCTET STRING", +td +-> +Çme +); + +2092 if( +¡ +-> +buf +) { + +2093 + `FREEMEM +( +¡ +-> +buf +); + +2094 +¡ +-> +buf + = 0; + +2100 +¡ck + = ( +_¡ack + *) +ùx +-> +±r +; + +2101 if( +¡ck +) { + +2102  +¡ck +-> +ž +) { + +2103  +_¡ack_– + * +£l + = +¡ck +-> +ž +; + +2104 +¡ck +-> +ž + = +£l +-> +´ev +; + +2105 + `FREEMEM +( +£l +); + +2107 + `FREEMEM +( +¡ck +); + +2110  +m‘hod +) { + +2111  +ASFM_FREE_EVERYTHING +: + +2112 + `FREEMEM +( +¥Œ +); + +2114  +ASFM_FREE_UNDERLYING +: + +2116  +ASFM_FREE_UNDERLYING_AND_RESET +: + +2117 + `mem£t +( +¥Œ +, 0, + +2118 +td +-> +¥ecifics + + +2119 ? ((cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *)( +td +-> +¥ecifics +)) + +2120 -> +¡ruù_size + + +2121 : ( +OCTET_STRING_t +)); + +2124 + } +} + +2130 + $OCTET_STRING_äomBuf +( +OCTET_STRING_t + * +¡ +, cÚ¡ * +¡r +,  +Ën +) { + +2131 * +buf +; + +2133 if( +¡ + =ð0 || ( +¡r + =ð0 && +Ën +)) { + +2134 +”ºo + = +EINVAL +; + +2141 if( +¡r + =ð +NULL +) { + +2142 + `FREEMEM +( +¡ +-> +buf +); + +2143 +¡ +-> +buf + = 0; + +2144 +¡ +-> +size + = 0; + +2149 if( +Ën + < 0) + +2150 +Ën + = + `¡¾’ +( +¡r +); + +2153 +buf + = + `MALLOC +( +Ën + + 1); + +2154 if( +buf + =ð +NULL +) + +2157 + `memýy +( +buf +, +¡r +, +Ën +); + +2158 (( +ušt8_t + *) +buf +)[ +Ën +] = '\0'; + +2159 + `FREEMEM +( +¡ +-> +buf +); + +2160 +¡ +-> +buf + = ( +ušt8_t + *)buf; + +2161 +¡ +-> +size + = +Ën +; + +2164 + } +} + +2166 +OCTET_STRING_t + * + +2167 + $OCTET_STRING_Ãw_äomBuf +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¡r +, + +2168  +Ën +) { + +2169 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = + +2170 +td +-> +¥ecifics + ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *)td->specifics + +2171 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +2172 +OCTET_STRING_t + * +¡ +; + +2174 +¡ + = ( +OCTET_STRING_t + *) + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +2175 if( +¡ + && +¡r + && + `OCTET_STRING_äomBuf +(¡, sŒ, +Ën +)) { + +2176 + `FREEMEM +( +¡ +); + +2177 +¡ + = +NULL +; + +2180  +¡ +; + +2181 + } +} + +2188 + $OCTET_STRING_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +2189 cÚ¡ * +b±r +) { + +2190 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics +; + +2191 cÚ¡ +OCTET_STRING_t + * +a + = +­Œ +; + +2192 cÚ¡ +OCTET_STRING_t + * +b + = +b±r +; + +2194 + `as£¹ +(! +¥ecs + || s³cs-> +subv¬ŸÁ + !ð +ASN_OSUBV_BIT +); + +2196 if( +a + && +b +) { + +2197 +size_t + +commÚ_´efix_size + = +a +-> +size + <ð +b +->size ?‡->size : b->size; + +2198  +»t + = + `memcmp +( +a +-> +buf +, +b +->buf, +commÚ_´efix_size +); + +2199 if( +»t + == 0) { + +2201 if( +a +-> +size + < +b +->size) { + +2203 } if( +a +-> +size + > +b +->size) { + +2209  +»t + < 0 ? -1 : 1; + +2211 } if(! +a + && ! +b +) { + +2213 } if(! +a +) { + +2219 + } +} + +2224  +ušt32_t + + +2225 + $OCTET_STRING__¿ndom_ch¬ +( +lb +,  +ub +) { + +2226 + `as£¹ +( +lb + <ð +ub +); + +2227  + `a¢_¿ndom_b‘w“n +(0, 16)) { + +2229 if( +lb + < +ub +) †b + 1; + +2232  +lb +; + +2234 if( +lb + < +ub +)  ub - 1; + +2237  +ub +; + +2239  + `a¢_¿ndom_b‘w“n +( +lb +, +ub +); + +2241 + } +} + +2244 +size_t + + +2245 + $OCTET_STRING_¿ndom_Ëngth_cÚ¡¿šed +( + +2246 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +2247 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, +size_t + +max_Ëngth +) { + +2248 cÚ¡  +Ëngths +[] = {0, 1, 2, 3, 4, 8, + +2251 +size_t + +ºd_Ën +; + +2254 +ºd_Ën + = +Ëngths +[ + `a¢_¿ndom_b‘w“n +( + +2255 0, ( +Ëngths +) / (lengths[0]) - 1)]; + +2257 if(! +cÚ¡¿šts + || !cÚ¡¿šts-> +³r_cÚ¡¿šts +) + +2258 +cÚ¡¿šts + = & +td +-> +’codšg_cÚ¡¿šts +; + +2259 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +) { + +2260 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +pc + = & +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +size +; + +2261 if( +pc +-> +æags + & +APC_CONSTRAINED +) { + +2262  +sugge¡ed_uµ”_bound + = +pc +-> +uµ”_bound + < ( +ssize_t +) +max_Ëngth + + +2263 ? +pc +-> +uµ”_bound + + +2264 : ( +ssize_t +) +max_Ëngth +; + +2265 if( +max_Ëngth + <ð( +size_t +) +pc +-> +low”_bound +) { + +2266  +pc +-> +low”_bound +; + +2268 if( +pc +-> +æags + & +APC_EXTENSIBLE +) { + +2269  + `a¢_¿ndom_b‘w“n +(0, 5)) { + +2271 if( +pc +-> +low”_bound + > 0) { + +2272 +ºd_Ën + = +pc +-> +low”_bound + - 1; + +2277 +ºd_Ën + = +pc +-> +uµ”_bound + + 1; + +2281 if( +ºd_Ën + <ð +max_Ëngth +) { + +2286 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +pc +-> +low”_bound +, + +2287 +sugge¡ed_uµ”_bound +); + +2290 +ºd_Ën + = + +2291 + `a¢_¿ndom_b‘w“n +( +pc +-> +low”_bound +, +sugge¡ed_uµ”_bound +); + +2294 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +(0, +max_Ëngth +); + +2296 } if( +ºd_Ën + > +max_Ëngth +) { + +2297 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +(0, +max_Ëngth +); + +2300  +ºd_Ën +; + +2301 + } +} + +2303 +a¢_¿ndom_fžl_»suÉ_t + + +2304 + $OCTET_STRING_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +2305 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +2306 +size_t + +max_Ëngth +) { + +2307 cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + * +¥ecs + = +td +-> +¥ecifics + + +2308 ? (cÚ¡ +a¢_OCTET_STRING_¥ecifics_t + *) +td +-> +¥ecifics + + +2309 : & +a¢_SPC_OCTET_STRING_¥ecs +; + +2310 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +2311 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +2312 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +2313  +un™_by‹s + = 1; + +2314  +þb + = 0; + +2315  +cub + = 255; + +2316 +ušt8_t + * +buf +; + +2317 +ušt8_t + * +b’d +; + +2318 +ušt8_t + * +b +; + +2319 +size_t + +ºd_Ën +; + +2320 +OCTET_STRING_t + * +¡ +; + +2322 if( +max_Ëngth + =ð0 && !* +¥Œ +è +»suÉ_sk³d +; + +2324  +¥ecs +-> +subv¬ŸÁ +) { + +2326  +ASN_OSUBV_ANY +: + +2327  +»suÉ_çžed +; + +2328  +ASN_OSUBV_BIT +: + +2330  +»suÉ_çžed +; + +2331  +ASN_OSUBV_STR +: + +2332 +un™_by‹s + = 1; + +2333 +þb + = 0; + +2334 +cub + = 255; + +2336  +ASN_OSUBV_U16 +: + +2337 +un™_by‹s + = 2; + +2338 +þb + = 0; + +2339 +cub + = 65535; + +2341  +ASN_OSUBV_U32 +: + +2342 +un™_by‹s + = 4; + +2343 +þb + = 0; + +2344 +cub + = 0x10FFFF; + +2348 if(! +cÚ¡¿šts + || !cÚ¡¿šts-> +³r_cÚ¡¿šts +) + +2349 +cÚ¡¿šts + = & +td +-> +’codšg_cÚ¡¿šts +; + +2350 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +) { + +2351 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +pc + = & +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +v®ue +; + +2352 if( +pc +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +2353 +þb + = +pc +-> +low”_bound +; + +2354 } if( +pc +-> +æags + & +APC_CONSTRAINED +) { + +2355 +þb + = +pc +-> +low”_bound +; + +2356 +cub + = +pc +-> +uµ”_bound +; + +2360 +ºd_Ën + = + +2361 + `OCTET_STRING_¿ndom_Ëngth_cÚ¡¿šed +( +td +, +cÚ¡¿šts +, +max_Ëngth +); + +2363 +buf + = + `CALLOC +( +un™_by‹s +, +ºd_Ën + + 1); + +2364 if(! +buf +è +»suÉ_çžed +; + +2366 +b’d + = & +buf +[ +un™_by‹s + * +ºd_Ën +]; + +2368  +un™_by‹s +) { + +2370  +b + = +buf +; b < +b’d +; b +ð +un™_by‹s +) { + +2371 *( +ušt8_t + *) +b + = + `OCTET_STRING__¿ndom_ch¬ +( +þb +, +cub +); + +2373 *( +ušt8_t + *) +b + = 0; + +2376  +b + = +buf +; b < +b’d +; b +ð +un™_by‹s +) { + +2377 +ušt32_t + +code + = + `OCTET_STRING__¿ndom_ch¬ +( +þb +, +cub +); + +2378 +b +[0] = +code + >> 8; + +2379 +b +[1] = +code +; + +2381 *( +ušt16_t + *) +b + = 0; + +2384  +b + = +buf +; b < +b’d +; b +ð +un™_by‹s +) { + +2385 +ušt32_t + +code + = + `OCTET_STRING__¿ndom_ch¬ +( +þb +, +cub +); + +2386 +b +[0] = +code + >> 24; + +2387 +b +[1] = +code + >> 16; + +2388 +b +[2] = +code + >> 8; + +2389 +b +[3] = +code +; + +2391 *( +ušt32_t + *) +b + = 0; + +2395 if(* +¥Œ +) { + +2396 +¡ + = * +¥Œ +; + +2397 + `FREEMEM +( +¡ +-> +buf +); + +2399 +¡ + = ( +OCTET_STRING_t + *)(* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +2400 if(! +¡ +) { + +2401 + `FREEMEM +( +buf +); + +2402  +»suÉ_çžed +; + +2406 +¡ +-> +buf + = buf; + +2407 +¡ +-> +size + = +un™_by‹s + * +ºd_Ën +; + +2409 +»suÉ_ok +. +Ëngth + = +¡ +-> +size +; + +2410  +»suÉ_ok +; + +2411 + } +} + + @OPEN_TYPE.c + +5  + ~ + +6  + ~ + +7  + ~ + +8  + ~<³r_ݒty³.h +> + +9  + ~<”ºo.h +> + +11 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_OPEN_TYPE + = { + +12 +OPEN_TYPE_ä“ +, + +13 +OPEN_TYPE_´št +, + +14 +OPEN_TYPE_com·» +, + +15 +OPEN_TYPE_decode_b” +, + +16 +OPEN_TYPE_’code_d” +, + +17 +OPEN_TYPE_decode_x” +, + +18 +OPEN_TYPE_’code_x” +, + +19 #ifdeà +ASN_DISABLE_OER_SUPPORT + + +22 +OPEN_TYPE_decode_Ûr +, + +23 +OPEN_TYPE_’code_Ûr +, + +25 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +28 +OPEN_TYPE_decode_u³r +, + +29 +OPEN_TYPE_’code_u³r +, + +30 +OPEN_TYPE_decode_­” +, + +31 +OPEN_TYPE_’code_­” +, + +37 #undeà +ADVANCE + + +38  + #ADVANCE +( +num_by‹s +) \ + +40 +size_t + +num + = +num_by‹s +; \ + +41 +±r + = ((cÚ¡ *íŒè+ +num +; \ + +42 +size + -ð +num +; \ + +43 +cÚsumed_my£lf + +ð +num +; \ + +44 } 0) + + ) + +46 +a¢_dec_rv®_t + + +47 + $OPEN_TYPE_b”_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +48 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +49 cÚ¡ +a¢_TYPE_memb”_t + * +–m +, cÚ¡ * +±r +, +size_t + +size +) { + +50 +size_t + +cÚsumed_my£lf + = 0; + +51 +a¢_ty³_£ËùÜ_»suÉ_t + +£Ëùed +; + +52 * +memb_±r +; + +53 ** +memb_±r2 +; + +54 * +šÃr_v®ue +; + +55 +a¢_dec_rv®_t + +rv +; + +57 if(!( +–m +-> +æags + & +ATF_OPEN_TYPE +)) { + +58 +ASN__DECODE_FAILED +; + +61 if(! +–m +-> +ty³_£ËùÜ +) { + +62 + `ASN_DEBUG +("Type selector is‚ot defined for Open Type %s->%s->%s", + +63 +td +-> +Çme +, +–m +->Çme,ƒlm-> +ty³ +->name); + +64 +ASN__DECODE_FAILED +; + +67 +£Ëùed + = +–m +-> + `ty³_£ËùÜ +( +td +, +¥Œ +); + +68 if(! +£Ëùed +. +´e£nû_šdex +) { + +69 +ASN__DECODE_FAILED +; + +73 if( +–m +-> +æags + & +ATF_POINTER +) { + +74 +memb_±r2 + = (**)((*) +¥Œ + + +–m +-> +memb_off£t +); + +76 +memb_±r + = (*) +¥Œ + + +–m +-> +memb_off£t +; + +77 +memb_±r2 + = & +memb_±r +; + +79 if(* +memb_±r2 + !ð +NULL +) { + +81 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, 0) != 0) { + +82 +ASN__DECODE_FAILED +; + +86 +šÃr_v®ue + = + +87 (*)* +memb_±r2 + + +88 + +–m +-> +ty³ +-> +–em’ts +[ +£Ëùed +. +´e£nû_šdex + - 1]. +memb_off£t +; + +90 + `ASN_DEBUG +("´e£nû %d\n", +£Ëùed +. +´e£nû_šdex +); + +92 +rv + = +£Ëùed +. +ty³_desütÜ +-> +Ý +-> + `b”_decod” +( + +93 +Ýt_codec_ùx +, +£Ëùed +. +ty³_desütÜ +, & +šÃr_v®ue +, +±r +, +size +, + +94 +–m +-> +g_mode +); + +95 + `ADVANCE +( +rv +. +cÚsumed +); + +96 +rv +. +cÚsumed + = 0; + +97  +rv +. +code +) { + +98  +RC_OK +: + +99 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, + +100 +£Ëùed +. +´e£nû_šdex +) + +102 +rv +. +code + = +RC_OK +; + +103 +rv +. +cÚsumed + = +cÚsumed_my£lf +; + +104  +rv +; + +109  +RC_FAIL +: + +110 +rv +. +cÚsumed + = +cÚsumed_my£lf +; + +112  +RC_WMORE +: + +116 if(* +memb_±r2 +) { + +117 if( +–m +-> +æags + & +ATF_POINTER +) { + +118 + `ASN_STRUCT_FREE +(* +£Ëùed +. +ty³_desütÜ +, +šÃr_v®ue +); + +119 * +memb_±r2 + = +NULL +; + +121 + `ASN_STRUCT_RESET +(* +£Ëùed +. +ty³_desütÜ +, + +122 +šÃr_v®ue +); + +125  +rv +; + +126 + } +} + +128 +a¢_dec_rv®_t + + +129 + $OPEN_TYPE_x”_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +130 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +131 cÚ¡ +a¢_TYPE_memb”_t + * +–m +, cÚ¡ * +±r +, +size_t + +size +) { + +132 +size_t + +cÚsumed_my£lf + = 0; + +133 +a¢_ty³_£ËùÜ_»suÉ_t + +£Ëùed +; + +134 * +memb_±r +; + +135 ** +memb_±r2 +; + +136 * +šÃr_v®ue +; + +137 +a¢_dec_rv®_t + +rv +; + +139  +x”_cڋxt + = 0; + +140 +ssize_t + +ch_size +; + +141 +px”_chunk_ty³_e + +ch_ty³ +; + +143 if(!( +–m +-> +æags + & +ATF_OPEN_TYPE +)) { + +144 +ASN__DECODE_FAILED +; + +147 if(! +–m +-> +ty³_£ËùÜ +) { + +148 + `ASN_DEBUG +("Type selector is‚ot defined for Open Type %s->%s->%s", + +149 +td +-> +Çme +, +–m +->Çme,ƒlm-> +ty³ +->name); + +150 +ASN__DECODE_FAILED +; + +153 +£Ëùed + = +–m +-> + `ty³_£ËùÜ +( +td +, +¥Œ +); + +154 if(! +£Ëùed +. +´e£nû_šdex +) { + +155 +ASN__DECODE_FAILED +; + +159 + `as£¹ +( +–m +-> +æags + =ð +ATF_OPEN_TYPE +); + +160 if( +–m +-> +æags + & +ATF_POINTER +) { + +161 +memb_±r2 + = (**)((*) +¥Œ + + +–m +-> +memb_off£t +); + +163 +memb_±r + = (*) +¥Œ + + +–m +-> +memb_off£t +; + +164 +memb_±r2 + = & +memb_±r +; + +166 if(* +memb_±r2 + !ð +NULL +) { + +168 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, 0) + +170 +ASN__DECODE_FAILED +; + +178 +ch_size + = + `x”_Ãxt_tok’ +(& +x”_cڋxt +, +±r +, +size +, & +ch_ty³ +); + +179 if( +ch_size + < 0) { + +180 +ASN__DECODE_FAILED +; + +182  +ch_ty³ +) { + +183  +PXER_WMORE +: + +184 +ASN__DECODE_STARVED +; + +185  +PXER_COMMENT +: + +186  +PXER_TEXT +: + +187 + `ADVANCE +( +ch_size +); + +189  +PXER_TAG +: + +199  + `x”_check_g +( +±r +, +ch_size +, +–m +-> +Çme +)) { + +200  +XCT_OPENING +: + +201 + `ADVANCE +( +ch_size +); + +203  +XCT_BROKEN +: + +205 +ASN__DECODE_FAILED +; + +208 +šÃr_v®ue + = + +209 (*)* +memb_±r2 + + +210 + +–m +-> +ty³ +-> +–em’ts +[ +£Ëùed +. +´e£nû_šdex + - 1]. +memb_off£t +; + +212 +rv + = +£Ëùed +. +ty³_desütÜ +-> +Ý +-> + `x”_decod” +( + +213 +Ýt_codec_ùx +, +£Ëùed +. +ty³_desütÜ +, & +šÃr_v®ue +, +NULL +, +±r +, +size +); + +214 + `ADVANCE +( +rv +. +cÚsumed +); + +215 +rv +. +cÚsumed + = 0; + +216  +rv +. +code +) { + +217  +RC_OK +: + +218 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, + +219 +£Ëùed +. +´e£nû_šdex +) + +223 +rv +. +code + = +RC_FAIL +; + +226  +RC_FAIL +: + +228 +rv +. +cÚsumed + = +cÚsumed_my£lf +; + +230  +RC_WMORE +: + +235 if(* +memb_±r2 +) { + +236 if( +–m +-> +æags + & +ATF_POINTER +) { + +237 + `ASN_STRUCT_FREE +(* +£Ëùed +. +ty³_desütÜ +, +šÃr_v®ue +); + +238 * +memb_±r2 + = +NULL +; + +240 + `ASN_STRUCT_RESET +(* +£Ëùed +. +ty³_desütÜ +, + +241 +šÃr_v®ue +); + +244  +rv +; + +251 +ch_size + = + `x”_Ãxt_tok’ +(& +x”_cڋxt +, +±r +, +size +, & +ch_ty³ +); + +252 if( +ch_size + < 0) { + +253 +ASN__DECODE_FAILED +; + +255  +ch_ty³ +) { + +256  +PXER_WMORE +: + +257 +ASN__DECODE_STARVED +; + +258  +PXER_COMMENT +: + +259  +PXER_TEXT +: + +260 + `ADVANCE +( +ch_size +); + +262  +PXER_TAG +: + +272  + `x”_check_g +( +±r +, +ch_size +, +–m +-> +Çme +)) { + +273  +XCT_CLOSING +: + +274 + `ADVANCE +( +ch_size +); + +276  +XCT_BROKEN +: + +278 +ASN__DECODE_FAILED +; + +281 +rv +. +cÚsumed + +ð +cÚsumed_my£lf +; + +283  +rv +; + +284 + } +} + +287 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +289 +a¢_dec_rv®_t + + +290 + $OPEN_TYPE_u³r_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +291 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +292 cÚ¡ +a¢_TYPE_memb”_t + * +–m +, +a¢_³r_d©a_t + * +pd +) { + +293 +a¢_ty³_£ËùÜ_»suÉ_t + +£Ëùed +; + +294 * +memb_±r +; + +295 ** +memb_±r2 +; + +296 * +šÃr_v®ue +; + +297 +a¢_dec_rv®_t + +rv +; + +299 if(!( +–m +-> +æags + & +ATF_OPEN_TYPE +)) { + +300 +ASN__DECODE_FAILED +; + +303 if(! +–m +-> +ty³_£ËùÜ +) { + +304 + `ASN_DEBUG +("Type selector is‚ot defined for Open Type %s->%s->%s", + +305 +td +-> +Çme +, +–m +->Çme,ƒlm-> +ty³ +->name); + +306 +ASN__DECODE_FAILED +; + +309 +£Ëùed + = +–m +-> + `ty³_£ËùÜ +( +td +, +¥Œ +); + +310 if(! +£Ëùed +. +´e£nû_šdex +) { + +311 +ASN__DECODE_FAILED +; + +315 + `as£¹ +( +–m +-> +æags + =ð +ATF_OPEN_TYPE +); + +316 if( +–m +-> +æags + & +ATF_POINTER +) { + +317 +memb_±r2 + = (**)((*) +¥Œ + + +–m +-> +memb_off£t +); + +319 +memb_±r + = (*) +¥Œ + + +–m +-> +memb_off£t +; + +320 +memb_±r2 + = & +memb_±r +; + +322 if(* +memb_±r2 + !ð +NULL +) { + +324 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, 0) + +326 +ASN__DECODE_FAILED +; + +330 +šÃr_v®ue + = + +331 (*)* +memb_±r2 + + +332 + +–m +-> +ty³ +-> +–em’ts +[ +£Ëùed +. +´e£nû_šdex + - 1]. +memb_off£t +; + +334 +rv + = + `u³r_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +£Ëùed +. +ty³_desütÜ +, +NULL +, + +335 & +šÃr_v®ue +, +pd +); + +336  +rv +. +code +) { + +337  +RC_OK +: + +338 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, + +339 +£Ëùed +. +´e£nû_šdex +) + +343 +rv +. +code + = +RC_FAIL +; + +346  +RC_WMORE +: + +347  +RC_FAIL +: + +348 if(* +memb_±r2 +) { + +349 if( +–m +-> +æags + & +ATF_POINTER +) { + +350 + `ASN_STRUCT_FREE +(* +£Ëùed +. +ty³_desütÜ +, +šÃr_v®ue +); + +351 * +memb_±r2 + = +NULL +; + +353 + `ASN_STRUCT_RESET +(* +£Ëùed +. +ty³_desütÜ +, + +354 +šÃr_v®ue +); + +358  +rv +; + +359 + } +} + +361 +a¢_’c_rv®_t + + +362 + $OPEN_TYPE_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +363 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +364 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +365 cÚ¡ * +memb_±r +; + +366 +a¢_TYPE_memb”_t + * +–m +; + +367 +a¢_’c_rv®_t + +” + = {0,0,0}; + +368  +´e£Á +; + +370 () +cÚ¡¿šts +; + +372 +´e£Á + = + `CHOICE_v¬ŸÁ_g‘_´e£nû +( +td +, +¥Œ +); + +373 if( +´e£Á + =ð0 ||…»£Á > +td +-> +–em’ts_couÁ +) { + +374 +ASN__ENCODE_FAILED +; + +376 +´e£Á +--; + +379 + `ASN_DEBUG +("Encodšg % OPEN TYPEƒËm’ˆ%d", +td +-> +Çme +, +´e£Á +); + +381 +–m + = & +td +-> +–em’ts +[ +´e£Á +]; + +382 if( +–m +-> +æags + & +ATF_POINTER +) { + +384 +memb_±r + = + +385 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +386 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +388 +memb_±r + = (cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +; + +391 if( + `u³r_ݒ_ty³_put +( +–m +-> +ty³ +, +NULL +, +memb_±r +, +po +) < 0) { + +392 +ASN__ENCODE_FAILED +; + +395 +” +. +’coded + = 0; + +396 + `ASN__ENCODED_OK +( +” +); + +397 + } +} + +399 +a¢_dec_rv®_t + + +400 + $OPEN_TYPE_­”_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +401 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +402 cÚ¡ +a¢_TYPE_memb”_t + * +–m +, +a¢_³r_d©a_t + * +pd +) { + +403 +a¢_ty³_£ËùÜ_»suÉ_t + +£Ëùed +; + +404 * +memb_±r +; + +405 ** +memb_±r2 +; + +406 * +šÃr_v®ue +; + +407 +a¢_dec_rv®_t + +rv +; + +409 if(!( +–m +-> +æags + & +ATF_OPEN_TYPE +)) { + +410 +ASN__DECODE_FAILED +; + +413 if(! +–m +-> +ty³_£ËùÜ +) { + +414 + `ASN_DEBUG +("Type selector is‚ot defined for Open Type %s->%s->%s", + +415 +td +-> +Çme +, +–m +->Çme,ƒlm-> +ty³ +->name); + +416 +ASN__DECODE_FAILED +; + +419 +£Ëùed + = +–m +-> + `ty³_£ËùÜ +( +td +, +¥Œ +); + +420 if(! +£Ëùed +. +´e£nû_šdex +) { + +421 +ASN__DECODE_FAILED +; + +425 + `as£¹ +( +–m +-> +æags + =ð +ATF_OPEN_TYPE +); + +426 if( +–m +-> +æags + & +ATF_POINTER +) { + +427 +memb_±r2 + = (**)((*) +¥Œ + + +–m +-> +memb_off£t +); + +429 +memb_±r + = (*) +¥Œ + + +–m +-> +memb_off£t +; + +430 +memb_±r2 + = & +memb_±r +; + +432 if(* +memb_±r2 + !ð +NULL +) { + +434 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, 0) + +436 +ASN__DECODE_FAILED +; + +440 +šÃr_v®ue + = + +441 (*)* +memb_±r2 + + +442 + +–m +-> +ty³ +-> +–em’ts +[ +£Ëùed +. +´e£nû_šdex + - 1]. +memb_off£t +; + +444 +rv + = + `­”_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +£Ëùed +. +ty³_desütÜ +, +NULL +, + +445 & +šÃr_v®ue +, +pd +); + +446  +rv +. +code +) { + +447  +RC_OK +: + +448 if( + `CHOICE_v¬ŸÁ_£t_´e£nû +( +–m +-> +ty³ +, * +memb_±r2 +, + +449 +£Ëùed +. +´e£nû_šdex +) + +453 +rv +. +code + = +RC_FAIL +; + +456  +RC_WMORE +: + +457  +RC_FAIL +: + +458 if(* +memb_±r2 +) { + +459 if( +–m +-> +æags + & +ATF_POINTER +) { + +460 + `ASN_STRUCT_FREE +(* +£Ëùed +. +ty³_desütÜ +, +šÃr_v®ue +); + +461 * +memb_±r2 + = +NULL +; + +463 + `ASN_STRUCT_RESET +(* +£Ëùed +. +ty³_desütÜ +, + +464 +šÃr_v®ue +); + +468  +rv +; + +469 + } +} + +471 +a¢_’c_rv®_t + + +472 + $OPEN_TYPE_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +473 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +474 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +475 cÚ¡ * +memb_±r +; + +476 +a¢_TYPE_memb”_t + * +–m +; + +477 +a¢_’c_rv®_t + +” + = {0,0,0}; + +478  +´e£Á +; + +480 () +cÚ¡¿šts +; + +482 +´e£Á + = + `CHOICE_v¬ŸÁ_g‘_´e£nû +( +td +, +¥Œ +); + +483 if( +´e£Á + =ð0 ||…»£Á > +td +-> +–em’ts_couÁ +) { + +484 +ASN__ENCODE_FAILED +; + +486 +´e£Á +--; + +489 + `ASN_DEBUG +("Encodšg % OPEN TYPEƒËm’ˆ%d", +td +-> +Çme +, +´e£Á +); + +491 +–m + = & +td +-> +–em’ts +[ +´e£Á +]; + +492 if( +–m +-> +æags + & +ATF_POINTER +) { + +494 +memb_±r + = + +495 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +496 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +498 +memb_±r + = (cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +; + +501 if( + `­”_ݒ_ty³_put +( +–m +-> +ty³ +, +NULL +, +memb_±r +, +po +) < 0) { + +502 +ASN__ENCODE_FAILED +; + +505 +” +. +’coded + = 0; + +506 + `ASN__ENCODED_OK +( +” +); + +507 + } +} + + @PLMNIdentity.c + +8  + ~"PLMNId’t™y.h +" + +11 + $PLMNId’t™y_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 3)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_PLMNId’t™y_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 3, 3 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_PLMNId’t™y_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_PLMNId’t™y + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_PLMNId’t™y_gs_1 +, + +53 ( +a¢_DEF_PLMNId’t™y_gs_1 +) + +54 /( +a¢_DEF_PLMNId’t™y_gs_1 +[0]), + +55 +a¢_DEF_PLMNId’t™y_gs_1 +, + +56 ( +a¢_DEF_PLMNId’t™y_gs_1 +) + +57 /( +a¢_DEF_PLMNId’t™y_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_PLMNId’t™y_cÚ¡r_1 +, +PLMNId’t™y_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @PrintableString.c + +6  + ~ + +7  + ~ + +12 cÚ¡  + g_PršbËSŒšg_®phab‘ +[256] = { + +22 cÚ¡  + g_PršbËSŒšg_code2v®ue +[74] = { + +32 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_PršbËSŒšg_gs +[] = { + +33 ( +ASN_TAG_CLASS_UNIVERSAL + | (19 << 2)), + +34 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +36  + $a¢_DEF_PršbËSŒšg_v2c +( +v®ue +) { + +37  +_PršbËSŒšg_®phab‘ +[ +v®ue + > 255 ? 0 : value] - 1; + +38 + } +} + +39  + $a¢_DEF_PršbËSŒšg_c2v +( +code +) { + +40 if( +code + < 74) + +41  +_PršbËSŒšg_code2v®ue +[ +code +]; + +43 + } +} + +44  +a¢_³r_cÚ¡¿šts_t + + ga¢_DEF_PršbËSŒšg_³r_cÚ¡¿šts + = { + +45 { +APC_CONSTRAINED +, 4, 4, 0x20, 0x39 }, + +46 { +APC_SEMI_CONSTRAINED +, -1, -1, 0, 0 }, + +47 +a¢_DEF_PršbËSŒšg_v2c +, + +48 +a¢_DEF_PršbËSŒšg_c2v + + +50 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_PršbËSŒšg + = { + +51 +OCTET_STRING_ä“ +, + +52 +OCTET_STRING_´št_utf8 +, + +53 +OCTET_STRING_com·» +, + +54 +OCTET_STRING_decode_b” +, + +55 +OCTET_STRING_’code_d” +, + +56 +OCTET_STRING_decode_x”_utf8 +, + +57 +OCTET_STRING_’code_x”_utf8 +, + +58 #ifdef +ASN_DISABLE_OER_SUPPORT + + +62 +OCTET_STRING_decode_Ûr +, + +63 +OCTET_STRING_’code_Ûr +, + +65 #ifdef +ASN_DISABLE_PER_SUPPORT + + +71 +OCTET_STRING_decode_u³r +, + +72 +OCTET_STRING_’code_u³r +, + +73 +OCTET_STRING_decode_­” +, + +74 +OCTET_STRING_’code_­” +, + +76 +OCTET_STRING_¿ndom_fžl +, + +79 +a¢_TYPE_desütÜ_t + + ga¢_DEF_PršbËSŒšg + = { + +82 & +a¢_OP_PršbËSŒšg +, + +83 +a¢_DEF_PršbËSŒšg_gs +, + +84 ( +a¢_DEF_PršbËSŒšg_gs +) + +85 / ( +a¢_DEF_PršbËSŒšg_gs +[0]) - 1, + +86 +a¢_DEF_PršbËSŒšg_gs +, + +87 ( +a¢_DEF_PršbËSŒšg_gs +) + +88 / ( +a¢_DEF_PršbËSŒšg_gs +[0]), + +89 { 0, & +a¢_DEF_PršbËSŒšg_³r_cÚ¡¿šts +, +PršbËSŒšg_cÚ¡¿št + }, + +96 + $PršbËSŒšg_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +97 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, + +98 * +­p_key +) { + +99 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +101 if( +¡ + && st-> +buf +) { + +102 +ušt8_t + * +buf + = +¡ +->buf; + +103 +ušt8_t + * +’d + = +buf + + +¡ +-> +size +; + +109 ; +buf + < +’d +; buf++) { + +110 if(! +_PršbËSŒšg_®phab‘ +[* +buf +]) { + +111 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +115 +td +-> +Çme +, + +116 ()(( +buf + - +¡ +->buf) + 1), + +117 * +buf +, + +118 +__FILE__ +, +__LINE__ +); + +123 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +125 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +130 + } +} + + @QCI.c + +8  + ~"QCI.h +" + +11 + $QCI_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 255)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_QCI_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 8, 8, 0, 255 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_QCI_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_QCI + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_QCI_gs_1 +, + +52 ( +a¢_DEF_QCI_gs_1 +) + +53 /( +a¢_DEF_QCI_gs_1 +[0]), + +54 +a¢_DEF_QCI_gs_1 +, + +55 ( +a¢_DEF_QCI_gs_1 +) + +56 /( +a¢_DEF_QCI_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_QCI_cÚ¡r_1 +, +QCI_cÚ¡¿št + }, + + @QoSID.c + +8  + ~"QoSID.h +" + +10  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_QoSID_cÚ¡r_1 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15  +a¢_TYPE_memb”_t + + ga¢_MBR_QoSID_1 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +QoSID +, +choiû +. +fiveGC +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_FiveQI +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +QoSID +, +choiû +. +ePC +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_QCI +, + +35 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_QoSID_g2–_1 +[] = { + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +39  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_QoSID_¥ecs_1 + = { + +40 ( +QoSID +), + +41 +off£tof +( +QoSID +, +_a¢_ùx +), + +42 +off£tof +( +QoSID +, +´e£Á +), + +43 ((( +QoSID + *)0)-> +´e£Á +), + +44 +a¢_MAP_QoSID_g2–_1 +, + +49 +a¢_TYPE_desütÜ_t + + ga¢_DEF_QoSID + = { + +52 & +a¢_OP_CHOICE +, + +57 { 0, & +a¢_PER_ty³_QoSID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +58 +a¢_MBR_QoSID_1 +, + +60 & +a¢_SPC_QoSID_¥ecs_1 + + + @QosFlowIdentifier.c + +8  + ~"QosFlowId’tif›r.h +" + +11 + $QosFlowId’tif›r_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 0 && value <= 63)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_QosFlowId’tif›r_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 6, 6, 0, 63 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_QosFlowId’tif›r_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_QosFlowId’tif›r + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_QosFlowId’tif›r_gs_1 +, + +52 ( +a¢_DEF_QosFlowId’tif›r_gs_1 +) + +53 /( +a¢_DEF_QosFlowId’tif›r_gs_1 +[0]), + +54 +a¢_DEF_QosFlowId’tif›r_gs_1 +, + +55 ( +a¢_DEF_QosFlowId’tif›r_gs_1 +) + +56 /( +a¢_DEF_QosFlowId’tif›r_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_QosFlowId’tif›r_cÚ¡r_1 +, +QosFlowId’tif›r_cÚ¡¿št + }, + + @RANUEID.c + +8  + ~"RANUEID.h +" + +11 + $RANUEID_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 8)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_RANUEID_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 8, 8 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RANUEID_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RANUEID + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_RANUEID_gs_1 +, + +53 ( +a¢_DEF_RANUEID_gs_1 +) + +54 /( +a¢_DEF_RANUEID_gs_1 +[0]), + +55 +a¢_DEF_RANUEID_gs_1 +, + +56 ( +a¢_DEF_RANUEID_gs_1 +) + +57 /( +a¢_DEF_RANUEID_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_RANUEID_cÚ¡r_1 +, +RANUEID_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @RANfunction-Name.c + +8  + ~"RANfunùiÚ-Name.h +" + +10 cÚ¡  + g³rm™‹d_®phab‘_bË_2 +[256] = { + +20 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_2 +[74] = { + +28  + $check_³rm™‹d_®phab‘_2 +(cÚ¡ * +¥Œ +) { + +29 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_2 +; + +31 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +32 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +33 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +35 ; +ch + < +’d +; ch++) { + +36 +ušt8_t + +cv + = * +ch +; + +37 if(! +bË +[ +cv +])  -1; + +40 + } +} + +42 cÚ¡  + g³rm™‹d_®phab‘_bË_3 +[256] = { + +52 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_3 +[74] = { + +60  + $check_³rm™‹d_®phab‘_3 +(cÚ¡ * +¥Œ +) { + +61 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_3 +; + +63 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +64 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +65 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +67 ; +ch + < +’d +; ch++) { + +68 +ušt8_t + +cv + = * +ch +; + +69 if(! +bË +[ +cv +])  -1; + +72 + } +} + +74 cÚ¡  + g³rm™‹d_®phab‘_bË_4 +[256] = { + +84 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_4 +[74] = { + +92  + $check_³rm™‹d_®phab‘_4 +(cÚ¡ * +¥Œ +) { + +93 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_4 +; + +95 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +96 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +97 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +99 ; +ch + < +’d +; ch++) { + +100 +ušt8_t + +cv + = * +ch +; + +101 if(! +bË +[ +cv +])  -1; + +104 + } +} + +107 + $memb_¿nFunùiÚ_ShÜtName_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +108 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +109 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +110 +size_t + +size +; + +112 if(! +¥Œ +) { + +113 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +115 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +119 +size + = +¡ +->size; + +121 if(( +size + >= 1 && size <= 150) + +122 && ! + `check_³rm™‹d_®phab‘_2 +( +¡ +)) { + +126 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +128 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +131 + } +} + +133  + $a¢_PER_MAP_¿nFunùiÚ_ShÜtName_2_v2c +( +v®ue +) { + +134 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_2 +)/(permitted_alphabet_table_2[0])) + +136  +³rm™‹d_®phab‘_bË_2 +[ +v®ue +] - 1; + +137 + } +} + +138  + $a¢_PER_MAP_¿nFunùiÚ_ShÜtName_2_c2v +( +code +) { + +139 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_2 +)/(permitted_alphabet_code2value_2[0])) + +141  +³rm™‹d_®phab‘_code2v®ue_2 +[ +code +]; + +142 + } +} + +144 + $memb_¿nFunùiÚ_E2SM_OID_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +145 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +146 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +147 +size_t + +size +; + +149 if(! +¥Œ +) { + +150 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +152 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +156 +size + = +¡ +->size; + +158 if(( +size + >= 1 && size <= 1000) + +159 && ! + `check_³rm™‹d_®phab‘_3 +( +¡ +)) { + +163 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +165 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +168 + } +} + +170  + $a¢_PER_MAP_¿nFunùiÚ_E2SM_OID_3_v2c +( +v®ue +) { + +171 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_3 +)/(permitted_alphabet_table_3[0])) + +173  +³rm™‹d_®phab‘_bË_3 +[ +v®ue +] - 1; + +174 + } +} + +175  + $a¢_PER_MAP_¿nFunùiÚ_E2SM_OID_3_c2v +( +code +) { + +176 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_3 +)/(permitted_alphabet_code2value_3[0])) + +178  +³rm™‹d_®phab‘_code2v®ue_3 +[ +code +]; + +179 + } +} + +181 + $memb_¿nFunùiÚ_DesütiÚ_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +182 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +183 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +184 +size_t + +size +; + +186 if(! +¥Œ +) { + +187 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +189 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +193 +size + = +¡ +->size; + +195 if(( +size + >= 1 && size <= 150) + +196 && ! + `check_³rm™‹d_®phab‘_4 +( +¡ +)) { + +200 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +202 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +205 + } +} + +207  + $a¢_PER_MAP_¿nFunùiÚ_DesütiÚ_4_v2c +( +v®ue +) { + +208 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_4 +)/(permitted_alphabet_table_4[0])) + +210  +³rm™‹d_®phab‘_bË_4 +[ +v®ue +] - 1; + +211 + } +} + +212  + $a¢_PER_MAP_¿nFunùiÚ_DesütiÚ_4_c2v +( +code +) { + +213 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_4 +)/(permitted_alphabet_code2value_4[0])) + +215  +³rm™‹d_®phab‘_code2v®ue_4 +[ +code +]; + +216 + } +} + +217  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_¿nFunùiÚ_ShÜtName_cÚ¡r_2 + + gCC_NOTUSED + = { + +218 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +219 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 1, 150 } , + +220 +a¢_PER_MAP_¿nFunùiÚ_ShÜtName_2_v2c +, + +221 +a¢_PER_MAP_¿nFunùiÚ_ShÜtName_2_c2v + + +223  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_¿nFunùiÚ_E2SM_OID_cÚ¡r_3 + + gCC_NOTUSED + = { + +224 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +225 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 10, 10, 1, 1000 } , + +226 +a¢_PER_MAP_¿nFunùiÚ_E2SM_OID_3_v2c +, + +227 +a¢_PER_MAP_¿nFunùiÚ_E2SM_OID_3_c2v + + +229  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_¿nFunùiÚ_DesütiÚ_cÚ¡r_4 + + gCC_NOTUSED + = { + +230 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +231 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 1, 150 } , + +232 +a¢_PER_MAP_¿nFunùiÚ_DesütiÚ_4_v2c +, + +233 +a¢_PER_MAP_¿nFunùiÚ_DesütiÚ_4_c2v + + +235 +a¢_TYPE_memb”_t + + ga¢_MBR_RANfunùiÚ_Name_1 +[] = { + +236 { +ATF_NOFLAGS +, 0, +off£tof +( +RANfunùiÚ_Name +, +¿nFunùiÚ_ShÜtName +), + +237 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +239 & +a¢_DEF_PršbËSŒšg +, + +241 { 0, & +a¢_PER_memb_¿nFunùiÚ_ShÜtName_cÚ¡r_2 +, +memb_¿nFunùiÚ_ShÜtName_cÚ¡¿št_1 + }, + +245 { +ATF_NOFLAGS +, 0, +off£tof +( +RANfunùiÚ_Name +, +¿nFunùiÚ_E2SM_OID +), + +246 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +248 & +a¢_DEF_PršbËSŒšg +, + +250 { 0, & +a¢_PER_memb_¿nFunùiÚ_E2SM_OID_cÚ¡r_3 +, +memb_¿nFunùiÚ_E2SM_OID_cÚ¡¿št_1 + }, + +254 { +ATF_NOFLAGS +, 0, +off£tof +( +RANfunùiÚ_Name +, +¿nFunùiÚ_DesütiÚ +), + +255 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +257 & +a¢_DEF_PršbËSŒšg +, + +259 { 0, & +a¢_PER_memb_¿nFunùiÚ_DesütiÚ_cÚ¡r_4 +, +memb_¿nFunùiÚ_DesütiÚ_cÚ¡¿št_1 + }, + +263 { +ATF_POINTER +, 1, +off£tof +( +RANfunùiÚ_Name +, +¿nFunùiÚ_In¡ªû +), + +264 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +266 & +a¢_DEF_N©iveIÁeg” +, + +273 cÚ¡  + ga¢_MAP_RANfunùiÚ_Name_oms_1 +[] = { 3 }; + +274 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RANfunùiÚ_Name_gs_1 +[] = { + +275 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +277 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_RANfunùiÚ_Name_g2–_1 +[] = { + +278 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +279 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +280 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +281 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 } + +283 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_RANfunùiÚ_Name_¥ecs_1 + = { + +284 ( +RANfunùiÚ_Name +), + +285 +off£tof +( +RANfunùiÚ_Name +, +_a¢_ùx +), + +286 +a¢_MAP_RANfunùiÚ_Name_g2–_1 +, + +288 +a¢_MAP_RANfunùiÚ_Name_oms_1 +, + +292 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RANfunùiÚ_Name + = { + +295 & +a¢_OP_SEQUENCE +, + +296 +a¢_DEF_RANfunùiÚ_Name_gs_1 +, + +297 ( +a¢_DEF_RANfunùiÚ_Name_gs_1 +) + +298 /( +a¢_DEF_RANfunùiÚ_Name_gs_1 +[0]), + +299 +a¢_DEF_RANfunùiÚ_Name_gs_1 +, + +300 ( +a¢_DEF_RANfunùiÚ_Name_gs_1 +) + +301 /( +a¢_DEF_RANfunùiÚ_Name_gs_1 +[0]), + +302 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +303 +a¢_MBR_RANfunùiÚ_Name_1 +, + +305 & +a¢_SPC_RANfunùiÚ_Name_¥ecs_1 + + + @REAL.c + +5  + #_ISOC99_SOURCE + + + ) + +6 #iâdeà +_BSD_SOURCE + + +7  + #_BSD_SOURCE + + + ) + +9  + ~ + +10 #if +defšed +( +__®pha +) + +11  + ~ + +13  + ~<¡dlib.h +> + +14  + ~ + +15  + ~<æßt.h +> + +16  + ~<”ºo.h +> + +17  + ~ + +18  + ~ + +20 #undeà +INT_MAX + + +21  + #INT_MAX + (()((()-1è>> 1)) + + ) + +23 #if !( +defšed +( +NAN +è|| defšed( +INFINITY +)) + +24 vÞ©ž +»®_z”o + + gCC_NOTUSED + = 0.0; + +26 #iâdef +NAN + + +27  + #NAN + (0.0/0.0) + + ) + +29 #iâdef +INFINITY + + +30  + #INFINITY + (1.0/0.0) + + ) + +33 #ià +defšed +( +__þªg__ +) + +41 #´agm¨ +þªg + +dŸgno¡ic + +push + + +42 #´agm¨ +þªg + +dŸgno¡ic + +ignÜed + "-Wc11-extensions" + +43  + $a¢_i¢ª +( +d +) { + +44  + `i¢ª +( +d +); + +45 + } +} + +46  + $a¢_isfš™e +( +d +) { + +47 #ifdeà +isfš™e + + +48  + `isfš™e +( +d +); + +50  + `fš™e +( +d +); + +52 + } +} + +53 #´agm¨ +þªg + +dŸgno¡ic + +pÝ + + +55  + #a¢_i¢ª +( +v +è + `i¢ª +(v) + + ) + +56 #ifdeà +isfš™e + + +57  + #a¢_isfš™e +( +d +è + `isfš™e +(dè + + ) + +59  + #a¢_isfš™e +( +d +è + `fš™e +(dè + + ) + +66 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_REAL_gs +[] = { + +67 ( +ASN_TAG_CLASS_UNIVERSAL + | (9 << 2)) + +69 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_REAL + = { + +70 +ASN__PRIMITIVE_TYPE_ä“ +, + +71 +REAL_´št +, + +72 +REAL_com·» +, + +73 +b”_decode_´im™ive +, + +74 +d”_’code_´im™ive +, + +75 +REAL_decode_x” +, + +76 +REAL_’code_x” +, + +77 #ifdef +ASN_DISABLE_OER_SUPPORT + + +81 +REAL_decode_Ûr +, + +82 +REAL_’code_Ûr +, + +84 #ifdef +ASN_DISABLE_PER_SUPPORT + + +90 +REAL_decode_u³r +, + +91 +REAL_’code_u³r +, + +92 +REAL_decode_­” +, + +93 +REAL_’code_­” +, + +95 +REAL_¿ndom_fžl +, + +98 +a¢_TYPE_desütÜ_t + + ga¢_DEF_REAL + = { + +101 & +a¢_OP_REAL +, + +102 +a¢_DEF_REAL_gs +, + +103 ( +a¢_DEF_REAL_gs +) / (asn_DEF_REAL_tags[0]), + +104 +a¢_DEF_REAL_gs +, + +105 ( +a¢_DEF_REAL_gs +) / (asn_DEF_REAL_tags[0]), + +106 { 0, 0, +a¢_g’”ic_no_cÚ¡¿št + }, + +112  + e¥ecŸlR—lV®ue + { + +113 + mSRV__NOT_A_NUMBER +, + +114 + mSRV__MINUS_INFINITY +, + +115 + mSRV__PLUS_INFINITY + + +116 } + t¥ecŸlR—lV®ue_e +; + +117  + s¥ecŸlR—lV®ue_s + { + +118 * + m¡ršg +; + +119 +size_t + + mËngth +; + +120  + mdv +; + +121 } + g¥ecŸlR—lV®ue +[] = { + +122  + #SRV_SET +( +foo +, +v® +è{ foo, (fooè- 1, v® } + + ) + +123 +SRV_SET +("", 0), + +124 +SRV_SET +("", -1), + +125 +SRV_SET +("", 1), + +126 #undeà +SRV_SET + + +129 +ssize_t + + +130 + $REAL__dump +( +d +,  +ÿnÚiÿl +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +131  +loÿl_buf +[64]; + +132 * +buf + = +loÿl_buf +; + +133 +ssize_t + +buæ’ + = ( +loÿl_buf +); + +134 cÚ¡ * +fmt + = +ÿnÚiÿl + ? "%.17E" : "%.15f" ; + +135 +ssize_t + +»t +; + +141 if( + `a¢_i¢ª +( +d +)) { + +142 +buf + = +¥ecŸlR—lV®ue +[ +SRV__NOT_A_NUMBER +]. +¡ršg +; + +143 +buæ’ + = +¥ecŸlR—lV®ue +[ +SRV__NOT_A_NUMBER +]. +Ëngth +; + +144  ( + `cb +( +buf +, +buæ’ +, +­p_key +) < 0) ? -1 : buflen; + +145 } if(! + `a¢_isfš™e +( +d +)) { + +146 if( + `cÝysign +(1.0, +d +) < 0.0) { + +147 +buf + = +¥ecŸlR—lV®ue +[ +SRV__MINUS_INFINITY +]. +¡ršg +; + +148 +buæ’ + = +¥ecŸlR—lV®ue +[ +SRV__MINUS_INFINITY +]. +Ëngth +; + +150 +buf + = +¥ecŸlR—lV®ue +[ +SRV__PLUS_INFINITY +]. +¡ršg +; + +151 +buæ’ + = +¥ecŸlR—lV®ue +[ +SRV__PLUS_INFINITY +]. +Ëngth +; + +153  ( + `cb +( +buf +, +buæ’ +, +­p_key +) < 0) ? -1 : buflen; + +154 } if( + `žogb +( +d +è<ð- +INT_MAX +) { + +155 if( + `cÝysign +(1.0, +d +) < 0.0) { + +156 +buf + = "-0"; + +157 +buæ’ + = 2; + +159 +buf + = "0"; + +160 +buæ’ + = 1; + +162  ( + `cb +( +buf +, +buæ’ +, +­p_key +) < 0) ? -1 : buflen; + +169 +»t + = + `¢´štf +( +buf +, +buæ’ +, +fmt +, +d +); + +170 if( +»t + < 0) { + +172 +buæ’ + <<= 1; + +173 if( +buæ’ + > 4096) { + +175 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +178 } if( +»t + >ð +buæ’ +) { + +179 +buæ’ + = +»t + + 1; + +181 +buæ’ + = +»t +; + +184 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +185 +buf + = (*) + `MALLOC +( +buæ’ +); + +186 if(! +buf +)  -1; + +189 if( +ÿnÚiÿl +) { + +194 * +dÙ +; + +195 * +’d + = +buf + + +buæ’ +; + +196 * +Ï¡_z”o +; + +197 * +fœ¡_z”o_š_run +; + +198 * +s +; + +201 +LZSTATE_NOTHING +, + +202 +LZSTATE_ZEROES + + +203 } +lz_¡©e + = +LZSTATE_NOTHING +; + +205 +dÙ + = ( +buf +[0] == 0x2d ) ? (buf + 2) : (buf + 1); + +206 if(* +dÙ + >= 0x30) { + +207 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +208 +”ºo + = +EINVAL +; + +211 * +dÙ + = 0x2e; + +213  +fœ¡_z”o_š_run + = +Ï¡_z”o + = +s + = +dÙ + + 2; s < +’d +; s++) { + +214 * +s +) { + +216 if( +lz_¡©e + =ð +LZSTATE_ZEROES +è +Ï¡_z”o + = +fœ¡_z”o_š_run +; + +219 if( +lz_¡©e + =ð +LZSTATE_NOTHING +è +fœ¡_z”o_š_run + = +s +; + +220 +lz_¡©e + = +LZSTATE_ZEROES +; + +223 +lz_¡©e + = +LZSTATE_NOTHING +; + +229 if( +s + =ð +’d +) { + +230 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +231 +”ºo + = +EINVAL +; + +235 + `as£¹ +(* +s + == 0x45); + +237 * +E + = +s +; + +238 * +exµŒ + = ++ +E +; + +239 * +s + = +exµŒ +; + +240  +sign +; + +242 if(* +exµŒ + == 0x2b ) { + +244 +buæ’ + -= 1; + +245 +sign + = 0; + +247 +sign + = 1; + +248 +s +++; + +250 +exµŒ +++; + +251 if( +exµŒ + > +’d +) { + +252 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +253 +”ºo + = +EINVAL +; + +256 if(* +exµŒ + == 0x30) { + +257 +buæ’ +--; + +258 +exµŒ +++; + +260 if( +lz_¡©e + =ð +LZSTATE_ZEROES +) { + +261 * +Ï¡_z”o + = 0x45; + +262 +buæ’ + -ð +s + - ( +Ï¡_z”o + + 1); + +263 +s + = +Ï¡_z”o + + 1; + +264 if( +sign +) { + +265 * +s +++ = 0x2d ; + +266 +buæ’ +++; + +269 ; +exµŒ + <ð +’d +; +s +++,ƒxpptr++) + +270 * +s + = * +exµŒ +; + +276 * +’d + = +buf + + +buæ’ +; + +277 * +Ï¡_z”o + = +’d +; + +278  +¡Ýlookšg + = 0; + +279 * +z +; + +280  +z + = +’d + - 1; z > +buf +; z--) { + +281 * +z +) { + +283 if(! +¡Ýlookšg +) + +284 +Ï¡_z”o + = +z +; + +288 +¡Ýlookšg + = 1; + +295 * +z + = 0x2e; + +296 if( +Ï¡_z”o + =ð +z + + 1) { + +297 +Ï¡_z”o +++; + +299 +buæ’ + = +Ï¡_z”o + - +buf +; + +300 * +Ï¡_z”o + = '\0'; + +307 +»t + = + `cb +( +buf +, +buæ’ +, +­p_key +); + +308 if( +buf + !ð +loÿl_buf +è + `FREEMEM +(buf); + +309  ( +»t + < 0è? -1 : +buæ’ +; + +310 + } +} + +313 + $REAL_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +314 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +315 cÚ¡ +REAL_t + * +¡ + = (cÚ¡ REAL_ˆ*) +¥Œ +; + +316 +ssize_t + +»t +; + +317  +d +; + +319 () +td +; + +320 () +žev– +; + +322 if(! +¡ + || !¡-> +buf +) + +323 +»t + = + `cb +("", 8, +­p_key +); + +324 if( + `a¢_REAL2doubË +( +¡ +, & +d +)) + +325 +»t + = + `cb +("<”rÜ>", 7, +­p_key +); + +327 +»t + = + `REAL__dump +( +d +, 0, +cb +, +­p_key +); + +329  ( +»t + < 0) ? -1 : 0; + +330 + } +} + +333 + $REAL_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +334 cÚ¡ * +b±r +) { + +335 cÚ¡ +REAL_t + * +a + = +­Œ +; + +336 cÚ¡ +REAL_t + * +b + = +b±r +; + +338 () +td +; + +340 if( +a + && +b +) { + +341  +adbl +, +bdbl +; + +342  +¿ +, +rb +; + +343 +¿ + = + `a¢_REAL2doubË +( +a +, & +adbl +); + +344 +rb + = + `a¢_REAL2doubË +( +b +, & +bdbl +); + +345 if( +¿ + =ð0 && +rb + == 0) { + +346 if( + `a¢_i¢ª +( +adbl +)) { + +347 if( + `a¢_i¢ª +( +bdbl +)) { + +352 } if( + `a¢_i¢ª +( +bdbl +)) { + +356 if( +adbl + < +bdbl +) { + +358 } if( +adbl + > +bdbl +) { + +363 } if( +¿ +) { + +368 } if(! +a +) { + +373 + } +} + +375 +a¢_’c_rv®_t + + +376 + $REAL_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +377 +x”_’cod”_æags_e + +æags +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +378 * +­p_key +) { + +379 cÚ¡ +REAL_t + * +¡ + = (cÚ¡ REAL_ˆ*) +¥Œ +; + +380 +a¢_’c_rv®_t + +” + = {0,0,0}; + +381  +d +; + +383 () +žev– +; + +385 if(! +¡ + || !¡-> +buf + || + `a¢_REAL2doubË +(¡, & +d +)) + +386 +ASN__ENCODE_FAILED +; + +388 +” +. +’coded + = + `REAL__dump +( +d +, +æags + & +XER_F_CANONICAL +, +cb +, +­p_key +); + +389 if( +” +. +’coded + < 0è +ASN__ENCODE_FAILED +; + +391 + `ASN__ENCODED_OK +( +” +); + +392 + } +} + +398  +x”_pbd_rv® + + +399 + $REAL__x”_body_decode +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +400 cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +401 +REAL_t + * +¡ + = (REAL_ˆ*) +¥Œ +; + +402  +v®ue +; + +403 cÚ¡ * +x”d©a + = (cÚ¡ *) +chunk_buf +; + +404 * +’d±r + = 0; + +405 * +b +; + +407 () +td +; + +409 if(! +chunk_size +è +XPBD_BROKEN_ENCODING +; + +414 if( +x”d©a +[0] == 0x3c ) { + +415 +size_t + +i +; + +416  +i + = 0; i < ( +¥ecŸlR—lV®ue +) + +417 / ( +¥ecŸlR—lV®ue +[0]); +i +++) { + +418  +¥ecŸlR—lV®ue_s + * +¤v + = & +¥ecŸlR—lV®ue +[ +i +]; + +419  +dv +; + +421 if( +¤v +-> +Ëngth + !ð +chunk_size + + +422 || + `memcmp +( +¤v +-> +¡ršg +, +chunk_buf +, +chunk_size +)) + +430  +¤v +-> +dv +) { + +431 -1: +dv + = - +INFINITY +; ; + +432 0: +dv + = +NAN +; ; + +433 1: +dv + = +INFINITY +; ; + +434 :  +XPBD_SYSTEM_FAILURE +; + +437 if( + `a¢_doubË2REAL +( +¡ +, +dv +)) + +438  +XPBD_SYSTEM_FAILURE +; + +440  +XPBD_BODY_CONSUMED +; + +442 + `ASN_DEBUG +("Unknown XMLSpecialRealValue"); + +443  +XPBD_BROKEN_ENCODING +; + +449 +b + = (*) + `MALLOC +( +chunk_size + + 1); + +450 if(! +b +è +XPBD_SYSTEM_FAILURE +; + +451 + `memýy +( +b +, +chunk_buf +, +chunk_size +); + +452 +b +[ +chunk_size +] = 0; + +454 +v®ue + = + `¡¹od +( +b +, & +’d±r +); + +455 + `FREEMEM +( +b +); + +456 if( +’d±r + =ð +b +è +XPBD_BROKEN_ENCODING +; + +458 if( + `a¢_doubË2REAL +( +¡ +, +v®ue +)) + +459  +XPBD_SYSTEM_FAILURE +; + +461  +XPBD_BODY_CONSUMED +; + +462 + } +} + +464 +a¢_dec_rv®_t + + +465 + $REAL_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +466 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +467 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +468  + `x”_decode_´im™ive +( +Ýt_codec_ùx +, +td +, + +469 +¥Œ +, ( +REAL_t +), +Ýt_mÇme +, + +470 +buf_±r +, +size +, +REAL__x”_body_decode +); + +471 + } +} + +474 + $a¢_REAL2doubË +(cÚ¡ +REAL_t + * +¡ +, * +dbl_v®ue +) { + +475  +oùv +; + +477 if(! +¡ + || !¡-> +buf +) { + +478 +”ºo + = +EINVAL +; + +482 if( +¡ +-> +size + == 0) { + +483 * +dbl_v®ue + = 0; + +487 +oùv + = +¡ +-> +buf +[0]; + +489  +oùv + & 0xC0) { + +498  +¡ +-> +buf +[0]) { + +500 * +dbl_v®ue + = +INFINITY +; + +503 * +dbl_v®ue + = - +INFINITY +; + +506 * +dbl_v®ue + = +NAN +; + +509 * +dbl_v®ue + = -0.0; + +513 +”ºo + = +EINVAL +; + +522  +d +; + +523 * +sourû + = 0; + +524 * +’d±r +; + +525  +u£d_m®loc + = 0; + +527 if( +oùv + == 0 || (octv & 0x3C)) { + +529 +”ºo + = +EINVAL +; + +539 if( +¡ +-> +buf +[¡-> +size +] !ð'\0' || + `memchr +(st->buf, ',', st->size)) { + +540 cÚ¡ +ušt8_t + * +p +, * +’d +; + +541 * +b +; + +543 +b + = +sourû + = (*) + `MALLOC +( +¡ +-> +size + + 1); + +544 if(! +sourû +)  -1; + +545 +u£d_m®loc + = 1; + +548  +p + = +¡ +-> +buf + + 1, +’d + = st->buà+ st-> +size +; + +549 +p + < +’d +; +b +++,…++) + +550 * +b + = (* +p + == ',') ? '.' : *p; + +551 * +b + = '\0'; + +553 +sourû + = (*)& +¡ +-> +buf +[1]; + +556 +’d±r + = +sourû +; + +557 +d + = + `¡¹od +( +sourû +, & +’d±r +); + +558 if(* +’d±r + != '\0') { + +560 if( +u£d_m®loc +è + `FREEMEM +( +sourû +); + +561 +”ºo + = +EINVAL +; + +564 if( +u£d_m®loc +è + `FREEMEM +( +sourû +); + +565 if( + `a¢_isfš™e +( +d +)) { + +566 * +dbl_v®ue + = +d +; + +569 +”ºo + = +ERANGE +; + +579  +m +; + +580 +št32_t + +expv® +; + +581  +–’ +; + +582  +sÿËF +; + +583  +ba£F +; + +584 +ušt8_t + * +±r +; + +585 +ušt8_t + * +’d +; + +586  +sign +; + +588 ( +oùv + & 0x30) >> 4) { + +589 0x00: +ba£F + = 1; ; + +590 0x01: +ba£F + = 3; ; + +591 0x02: +ba£F + = 4; ; + +594 +”ºo + = +EINVAL +; + +598 +sign + = ( +oùv + & 0x40); + +599 +sÿËF + = ( +oùv + & 0x0C) >> 2; + +601 if( +¡ +-> +size + <ð1 + ( +oùv + & 0x03)) { + +602 +”ºo + = +EINVAL +; + +606 +–’ + = ( +oùv + & 0x03); + +607 if( +–’ + == 0x03) { + +608 +–’ + = +¡ +-> +buf +[1]; + +609 if( +–’ + =ð0 || +¡ +-> +size + <= (2 +ƒlen)) { + +610 +”ºo + = +EINVAL +; + +614 +±r + = & +¡ +-> +buf +[2]; + +616 +±r + = & +¡ +-> +buf +[1]; + +620 +expv® + = ()(*( +št8_t + *) +±r +); + +621 if( +–’ + >ð( +expv® +)-1) { + +622 +”ºo + = +ERANGE +; + +625 +’d + = +±r + + +–’ + + 1; + +626  +±r +++;…Œ < +’d +;…tr++) + +627 +expv® + = (expv® * 256è+ * +±r +; + +629 +m + = 0.0; + +632 +’d + = +¡ +-> +buf + + st-> +size +; + +633 ; +±r + < +’d +;…tr++) + +634 +m + = + `ldexp +(m, 8è+ * +±r +; + +637 + `ASN_DEBUG +("m=%.10f, scF=%d, bF=%d,ƒxpval=%d,†dexp()=%f,†dexp()=%f\n", + +638 +m +, +sÿËF +, +ba£F +, +expv® +, + +639 + `ldexp +( +m +, +expv® + * +ba£F + + +sÿËF +), + +640 + `ldexp +( +m +, +sÿËF +è* + `pow +Õow(2, +ba£F +), +expv® +) + +648 +m + = + `ldexp +(m, +expv® + * +ba£F + + +sÿËF +); + +649 if( + `a¢_isfš™e +( +m +)) { + +650 * +dbl_v®ue + = +sign + ? - +m + : m; + +652 +”ºo + = +ERANGE +; + +659 + } +} + +666 + $a¢_doubË2REAL +( +REAL_t + * +¡ +,  +dbl_v®ue +) { + +667  +‹¡ + = -0.0; + +668  +æßt_big_’dŸn + = *(cÚ¡ *)& +‹¡ + != 0; + +669 +ušt8_t + +buf +[16]; + +670 +ušt8_t + +dsü +[( +dbl_v®ue +)]; + +672  +as£¹iÚ_bufãr1 +[9 - ( +dbl_v®ue +)] +CC_NOTUSED +; + +673  +as£¹iÚ_bufãr2 +[( +dbl_v®ue +è- 7] +CC_NOTUSED +; + +674 +ušt8_t + * +±r + = +buf +; + +675 +ušt8_t + * +m¡Ý +; + +676  +mv® +; + +677  +bmsign +; + +678  +buæ’ +; + +679  +accum +; + +680  +expv® +; + +682 if(! +¡ +) { + +683 +”ºo + = +EINVAL +; + +692 +expv® + = + `žogb +( +dbl_v®ue +); + +693 if( +expv® + <ð- +INT_MAX + + +694 || +expv® + =ð +INT_MAX + + +696 if(! +¡ +-> +buf + || st-> +size + < 2) { + +697 +±r + = ( +ušt8_t + *) + `MALLOC +(2); + +698 if(! +±r +)  -1; + +699 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +700 +¡ +-> +buf + = +±r +; + +703 if( + `a¢_i¢ª +( +dbl_v®ue +)) { + +704 +¡ +-> +buf +[0] = 0x42; + +705 +¡ +-> +buf +[1] = 0; + +706 +¡ +-> +size + = 1; + +707 } if(! + `a¢_isfš™e +( +dbl_v®ue +)) { + +708 if( + `cÝysign +(1.0, +dbl_v®ue +) < 0.0) { + +709 +¡ +-> +buf +[0] = 0x41; + +711 +¡ +-> +buf +[0] = 0x40; + +713 +¡ +-> +buf +[1] = 0; + +714 +¡ +-> +size + = 1; + +716 if( + `cÝysign +(1.0, +dbl_v®ue +) >= 0.0) { + +718 +¡ +-> +buf +[0] = 0; + +719 +¡ +-> +size + = 0; + +722 +¡ +-> +buf +[0] = 0x43; + +723 +¡ +-> +buf +[1] = 0; + +724 +¡ +-> +size + = 1; + +730 if( +æßt_big_’dŸn +) { + +731 +ušt8_t + * +s + = ((ušt8_ˆ*)& +dbl_v®ue +) + 1; + +732 +ušt8_t + * +’d + = ((ušt8_ˆ*)& +dbl_v®ue +) + (); + +733 +ušt8_t + * +d +; + +735 +bmsign + = 0x80 | (( +s +[-1] >> 1) & 0x40); + +736  +m¡Ý + = +d + = +dsü +; +s + < +’d +; d++, s++) { + +737 * +d + = * +s +; + +738 if(* +d +è +m¡Ý + = d; + +741 +ušt8_t + * +s + = ((ušt8_ˆ*)& +dbl_v®ue +) + (dbl_value) - 2; + +742 +ušt8_t + * +¡¬t + = ((ušt8_ˆ*)& +dbl_v®ue +); + +743 +ušt8_t + * +d +; + +745 +bmsign + = 0x80 | (( +s +[1] >> 1) & 0x40); + +746  +m¡Ý + = +d + = +dsü +; +s + >ð +¡¬t +; d++, s--) { + +747 * +d + = * +s +; + +748 if(* +d +è +m¡Ý + = d; + +753 +dsü +[0] = 0x10 | (dscr[0] & 0x0f); + +756 +expv® + -ð8 * (( +m¡Ý + - +dsü +) + 1) - 4; + +759 +mv® + = * +m¡Ý +; + +760 if( +mv® + && !(mval & 1)) { + +761  +shiá_couÁ + = 1; + +762  +ishiá +; + +763 +ušt8_t + * +m±r +; + +768 if(!( +mv® + & 0x0f)) + +769 +shiá_couÁ + = 4; + +770 (( +mv® + >> +shiá_couÁ +) & 1) == 0) + +771 +shiá_couÁ +++; + +773 +ishiá + = 8 - +shiá_couÁ +; + +774 +accum + = 0; + +777  +m±r + = +dsü +; m±¸<ð +m¡Ý +; mptr++) { + +778 +mv® + = * +m±r +; + +779 * +m±r + = +accum + | ( +mv® + >> +shiá_couÁ +); + +780 +accum + = +mv® + << +ishiá +; + +784 +expv® + +ð +shiá_couÁ +; + +787 if( +expv® + < 0) { + +788 if(( +expv® + >> 7) == -1) { + +789 * +±r +++ = +bmsign + | 0x00; + +790 * +±r +++ = +expv® +; + +791 } if(( +expv® + >> 15) == -1) { + +792 * +±r +++ = +bmsign + | 0x01; + +793 * +±r +++ = +expv® + >> 8; + +794 * +±r +++ = +expv® +; + +796 * +±r +++ = +bmsign + | 0x02; + +797 * +±r +++ = +expv® + >> 16; + +798 * +±r +++ = +expv® + >> 8; + +799 * +±r +++ = +expv® +; + +801 } if( +expv® + <= 0x7f) { + +802 * +±r +++ = +bmsign + | 0x00; + +803 * +±r +++ = +expv® +; + +804 } if( +expv® + <= 0x7fff) { + +805 * +±r +++ = +bmsign + | 0x01; + +806 * +±r +++ = +expv® + >> 8; + +807 * +±r +++ = +expv® +; + +809 + `as£¹ +( +expv® + <= 0x7fffff); + +810 * +±r +++ = +bmsign + | 0x02; + +811 * +±r +++ = +expv® + >> 16; + +812 * +±r +++ = +expv® + >> 8; + +813 * +±r +++ = +expv® +; + +816 +buæ’ + = ( +m¡Ý + - +dsü +) + 1; + +817 + `memýy +( +±r +, +dsü +, +buæ’ +); + +818 +±r + +ð +buæ’ +; + +819 +buæ’ + = +±r + - +buf +; + +821 +±r + = ( +ušt8_t + *) + `MALLOC +( +buæ’ + + 1); + +822 if(! +±r +)  -1; + +824 + `memýy +( +±r +, +buf +, +buæ’ +); + +825 +buf +[ +buæ’ +] = 0; + +827 if( +¡ +-> +buf +è + `FREEMEM +(st->buf); + +828 +¡ +-> +buf + = +±r +; + +829 +¡ +-> +size + = +buæ’ +; + +832 + } +} + +834  +CC_ATTR_NO_SANITIZE +("float-cast-overflow") + +835 + $a¢_doubË2æßt +( +d +, * +outcome +) { + +836  +f + = +d +; + +838 * +outcome + = +f +; + +840 if( + `a¢_isfš™e +( +d +è=ða¢_isfš™e( +f +)) { + +845 + } +} + +847 #iâdeà +ASN_DISABLE_OER_SUPPORT + + +852 +a¢_’c_rv®_t + + +853 + $REAL_’code_Ûr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +854 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +855 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +856 cÚ¡ +REAL_t + * +¡ + = +¥Œ +; + +857 +a¢_’c_rv®_t + +” + = {0,0,0}; + +858 +ssize_t + +Ën_Ën +; + +860 if(! +¡ + || !¡-> +buf + || ! +td +) + +861 +ASN__ENCODE_FAILED +; + +863 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +Ûr_cÚ¡¿šts +; + +864 if( +cÚ¡¿šts + && cÚ¡¿šts-> +v®ue +. +width + != 0) { + +867 +ASN__ENCODE_FAILED +; + +871 +Ën_Ën + = + `Ûr_£rŸlize_Ëngth +( +¡ +-> +size +, +cb +, +­p_key +); + +872 if( +Ën_Ën + < 0 || + `cb +( +¡ +-> +buf +, st-> +size +, +­p_key +) < 0) { + +873 +ASN__ENCODE_FAILED +; + +875 +” +. +’coded + = +Ën_Ën + + +¡ +-> +size +; + +876 + `ASN__ENCODED_OK +( +” +); + +878 + } +} + +880 +a¢_dec_rv®_t + + +881 + $REAL_decode_Ûr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +882 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +883 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +884 cÚ¡ * +±r +, +size_t + +size +) { + +885 +a¢_dec_rv®_t + +ok + = { +RC_OK +, 0}; + +886 +REAL_t + * +¡ +; + +887 +ušt8_t + * +buf +; + +888 +ssize_t + +Ën_Ën +; + +889 +size_t + +»®_body_Ën +; + +891 () +Ýt_codec_ùx +; + +893 if(! +cÚ¡¿šts +ècÚ¡¿št ð +td +-> +’codšg_cÚ¡¿šts +. +Ûr_cÚ¡¿šts +; + +894 if( +cÚ¡¿šts + && cÚ¡¿šts-> +v®ue +. +width + != 0) { + +897 +ASN__DECODE_FAILED +; + +900 +Ën_Ën + = + `Ûr_ãtch_Ëngth +( +±r +, +size +, & +»®_body_Ën +); + +901 if( +Ën_Ën + < 0è +ASN__DECODE_FAILED +; + +902 if( +Ën_Ën + =ð0è +ASN__DECODE_STARVED +; + +904 +±r + = (cÚ¡ *íŒ + +Ën_Ën +; + +905 +size + -ð +Ën_Ën +; + +907 if( +»®_body_Ën + > +size +è +ASN__DECODE_STARVED +; + +909 +buf + = + `CALLOC +(1, +»®_body_Ën + + 1); + +910 if(! +buf +è +ASN__DECODE_FAILED +; + +912 if(!( +¡ + = * +¥Œ +)) { + +913 +¡ + = (* +¥Œ + = + `CALLOC +(1, ( +REAL_t +))); + +914 if(! +¡ +) { + +915 + `FREEMEM +( +buf +); + +916 +ASN__DECODE_FAILED +; + +919 + `FREEMEM +( +¡ +-> +buf +); + +922 + `memýy +( +buf +, +±r +, +»®_body_Ën +); + +923 +buf +[ +»®_body_Ën +] = '\0'; + +925 +¡ +-> +buf + = buf; + +926 +¡ +-> +size + = +»®_body_Ën +; + +928 +ok +. +cÚsumed + = +Ën_Ën + + +»®_body_Ën +; + +929  +ok +; + +930 + } +} + +934 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +936 +a¢_dec_rv®_t + + +937 + $REAL_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +938 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +939 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +940 +a¢_³r_d©a_t + * +pd +) { + +941 () +cÚ¡¿šts +; + +942  + `OCTET_STRING_decode_u³r +( +Ýt_codec_ùx +, +td +, 0, +¥Œ +, +pd +); + +943 + } +} + +945 +a¢_’c_rv®_t + + +946 + $REAL_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +947 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +948 +a¢_³r_ou_t + * +po +) { + +949 () +cÚ¡¿šts +; + +950  + `OCTET_STRING_’code_u³r +( +td +, 0, +¥Œ +, +po +); + +951 + } +} + +953 +a¢_dec_rv®_t + + +954 + $REAL_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +955 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +956 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +957 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +958 () +cÚ¡¿šts +; + +959  + `OCTET_STRING_decode_­” +( +Ýt_codec_ùx +, +td +, 0, +¥Œ +, +pd +); + +960 + } +} + +962 +a¢_’c_rv®_t + + +963 + $REAL_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +964 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +965 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +966 () +cÚ¡¿šts +; + +967  + `OCTET_STRING_’code_­” +( +td +, 0, +¥Œ +, +po +); + +968 + } +} + +972 +a¢_¿ndom_fžl_»suÉ_t + + +973 + $REAL_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +974 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +975 +size_t + +max_Ëngth +) { + +976 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 1}; + +977 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +978 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +979 cÚ¡  +v®ues +[] = { + +980 0, -0.0, -1, 1, - +M_E +, M_E, -3.14, 3.14, - +M_PI +, M_PI, -255, 255, + +987 - +FLT_MIN +, FLT_MIN, + +988 - +FLT_MAX +, FLT_MAX, + +989 - +DBL_MIN +, DBL_MIN, + +990 - +DBL_MAX +, DBL_MAX, + +991 #ifdeà +FLT_TRUE_MIN + + +992 - +FLT_TRUE_MIN +, FLT_TRUE_MIN, + +994 #ifdeà +DBL_TRUE_MIN + + +995 - +DBL_TRUE_MIN +, DBL_TRUE_MIN, + +997 +INFINITY +, -INFINITY, +NAN +}; + +998 +REAL_t + * +¡ +; + +999  +d +; + +1001 () +cÚ¡¿šts +; + +1003 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +1005 +d + = +v®ues +[ + `a¢_¿ndom_b‘w“n +(0, (values) / (values[0]) - 1)]; + +1007 if(* +¥Œ +) { + +1008 +¡ + = * +¥Œ +; + +1010 +¡ + = ( +REAL_t +*)(* +¥Œ + = + `CALLOC +(1, (REAL_t))); + +1011 if(! +¡ +) { + +1012  +»suÉ_çžed +; + +1016 if( + `a¢_doubË2REAL +( +¡ +, +d +)) { + +1017 if( +¡ + =ð* +¥Œ +) { + +1018 + `ASN_STRUCT_RESET +(* +td +, +¡ +); + +1020 + `ASN_STRUCT_FREE +(* +td +, +¡ +); + +1022  +»suÉ_çžed +; + +1025 +»suÉ_ok +. +Ëngth + = +¡ +-> +size +; + +1026  +»suÉ_ok +; + +1027 + } +} + + @RIC-EventTriggerStyle-Item.c + +8  + ~"RIC-Ev’tTrigg”StyË-I‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_RIC_Ev’tTrigg”StyË_I‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_Ev’tTrigg”StyË_I‹m +, +ric_Ev’tTrigg”StyË_Ty³ +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_RIC_StyË_Ty³ +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_Ev’tTrigg”StyË_I‹m +, +ric_Ev’tTrigg”StyË_Name +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_RIC_StyË_Name +, + +29 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_Ev’tTrigg”StyË_I‹m +, +ric_Ev’tTrigg”FÜm©_Ty³ +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_RIC_FÜm©_Ty³ +, + +39 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +[] = { + +40 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +42 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_RIC_Ev’tTrigg”StyË_I‹m_g2–_1 +[] = { + +43 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +44 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +47 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_RIC_Ev’tTrigg”StyË_I‹m_¥ecs_1 + = { + +48 ( +RIC_Ev’tTrigg”StyË_I‹m +), + +49 +off£tof +( +RIC_Ev’tTrigg”StyË_I‹m +, +_a¢_ùx +), + +50 +a¢_MAP_RIC_Ev’tTrigg”StyË_I‹m_g2–_1 +, + +55 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RIC_Ev’tTrigg”StyË_I‹m + = { + +58 & +a¢_OP_SEQUENCE +, + +59 +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +, + +60 ( +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +) + +61 /( +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +[0]), + +62 +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +, + +63 ( +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +) + +64 /( +a¢_DEF_RIC_Ev’tTrigg”StyË_I‹m_gs_1 +[0]), + +65 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +66 +a¢_MBR_RIC_Ev’tTrigg”StyË_I‹m_1 +, + +68 & +a¢_SPC_RIC_Ev’tTrigg”StyË_I‹m_¥ecs_1 + + + @RIC-Format-Type.c + +8  + ~"RIC-FÜm©-Ty³.h +" + +14 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RIC_FÜm©_Ty³_gs_1 +[] = { + +15 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +17 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RIC_FÜm©_Ty³ + = { + +20 & +a¢_OP_N©iveIÁeg” +, + +21 +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +, + +22 ( +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +) + +23 /( +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +[0]), + +24 +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +, + +25 ( +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +) + +26 /( +a¢_DEF_RIC_FÜm©_Ty³_gs_1 +[0]), + +27 { 0, 0, +N©iveIÁeg”_cÚ¡¿št + }, + + @RIC-ReportStyle-Item.c + +8  + ~"RIC-R•ÜtStyË-I‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_RIC_R•ÜtStyË_I‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +ric_R•ÜtStyË_Ty³ +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_RIC_StyË_Ty³ +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +ric_R•ÜtStyË_Name +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_RIC_StyË_Name +, + +29 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +ric_AùiÚFÜm©_Ty³ +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_RIC_FÜm©_Ty³ +, + +38 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +m—sInfo_AùiÚ_Li¡ +), + +39 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +41 & +a¢_DEF_M—su»m’tInfo_AùiÚ_Li¡ +, + +47 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +ric_IndiÿtiÚH—d”FÜm©_Ty³ +), + +48 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +50 & +a¢_DEF_RIC_FÜm©_Ty³ +, + +56 { +ATF_NOFLAGS +, 0, +off£tof +( +RIC_R•ÜtStyË_I‹m +, +ric_IndiÿtiÚMes§geFÜm©_Ty³ +), + +57 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +59 & +a¢_DEF_RIC_FÜm©_Ty³ +, + +66 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +[] = { + +67 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +69 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_RIC_R•ÜtStyË_I‹m_g2–_1 +[] = { + +70 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +71 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +72 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +73 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +74 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +75 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 } + +77 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_RIC_R•ÜtStyË_I‹m_¥ecs_1 + = { + +78 ( +RIC_R•ÜtStyË_I‹m +), + +79 +off£tof +( +RIC_R•ÜtStyË_I‹m +, +_a¢_ùx +), + +80 +a¢_MAP_RIC_R•ÜtStyË_I‹m_g2–_1 +, + +85 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RIC_R•ÜtStyË_I‹m + = { + +88 & +a¢_OP_SEQUENCE +, + +89 +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +, + +90 ( +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +) + +91 /( +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +[0]), + +92 +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +, + +93 ( +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +) + +94 /( +a¢_DEF_RIC_R•ÜtStyË_I‹m_gs_1 +[0]), + +95 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +96 +a¢_MBR_RIC_R•ÜtStyË_I‹m_1 +, + +98 & +a¢_SPC_RIC_R•ÜtStyË_I‹m_¥ecs_1 + + + @RIC-Style-Name.c + +8  + ~"RIC-StyË-Name.h +" + +10 cÚ¡  + g³rm™‹d_®phab‘_bË_1 +[256] = { + +20 cÚ¡  + g³rm™‹d_®phab‘_code2v®ue_1 +[74] = { + +28  + $check_³rm™‹d_®phab‘_1 +(cÚ¡ * +¥Œ +) { + +29 cÚ¡ * +bË + = +³rm™‹d_®phab‘_bË_1 +; + +31 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +32 cÚ¡ +ušt8_t + * +ch + = +¡ +-> +buf +; + +33 cÚ¡ +ušt8_t + * +’d + = +ch + + +¡ +-> +size +; + +35 ; +ch + < +’d +; ch++) { + +36 +ušt8_t + +cv + = * +ch +; + +37 if(! +bË +[ +cv +])  -1; + +40 + } +} + +43 + $RIC_StyË_Name_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +44 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +45 cÚ¡ +PršbËSŒšg_t + * +¡ + = (cÚ¡ PršbËSŒšg_ˆ*) +¥Œ +; + +46 +size_t + +size +; + +48 if(! +¥Œ +) { + +49 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +51 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +55 +size + = +¡ +->size; + +57 if(( +size + >= 1 && size <= 150) + +58 && ! + `check_³rm™‹d_®phab‘_1 +( +¡ +)) { + +62 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +64 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +67 + } +} + +69  + $a¢_PER_MAP_RIC_StyË_Name_1_v2c +( +v®ue +) { + +70 if( +v®ue + >ð( +³rm™‹d_®phab‘_bË_1 +)/(permitted_alphabet_table_1[0])) + +72  +³rm™‹d_®phab‘_bË_1 +[ +v®ue +] - 1; + +73 + } +} + +74  + $a¢_PER_MAP_RIC_StyË_Name_1_c2v +( +code +) { + +75 if( +code + >ð( +³rm™‹d_®phab‘_code2v®ue_1 +)/(permitted_alphabet_code2value_1[0])) + +77  +³rm™‹d_®phab‘_code2v®ue_1 +[ +code +]; + +78 + } +} + +83 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_RIC_StyË_Name_cÚ¡r_1 + + gCC_NOTUSED + = { + +84 { +APC_CONSTRAINED +, 7, 7, 32, 122 } , + +85 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 8, 8, 1, 150 } , + +86 +a¢_PER_MAP_RIC_StyË_Name_1_v2c +, + +87 +a¢_PER_MAP_RIC_StyË_Name_1_c2v + + +89 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RIC_StyË_Name_gs_1 +[] = { + +90 ( +ASN_TAG_CLASS_UNIVERSAL + | (19 << 2)) + +92 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RIC_StyË_Name + = { + +95 & +a¢_OP_PršbËSŒšg +, + +96 +a¢_DEF_RIC_StyË_Name_gs_1 +, + +97 ( +a¢_DEF_RIC_StyË_Name_gs_1 +) + +98 /( +a¢_DEF_RIC_StyË_Name_gs_1 +[0]), + +99 +a¢_DEF_RIC_StyË_Name_gs_1 +, + +100 ( +a¢_DEF_RIC_StyË_Name_gs_1 +) + +101 /( +a¢_DEF_RIC_StyË_Name_gs_1 +[0]), + +102 { 0, & +a¢_PER_ty³_RIC_StyË_Name_cÚ¡r_1 +, +RIC_StyË_Name_cÚ¡¿št + }, + + @RIC-Style-Type.c + +8  + ~"RIC-StyË-Ty³.h +" + +14 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RIC_StyË_Ty³_gs_1 +[] = { + +15 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +17 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RIC_StyË_Ty³ + = { + +20 & +a¢_OP_N©iveIÁeg” +, + +21 +a¢_DEF_RIC_StyË_Ty³_gs_1 +, + +22 ( +a¢_DEF_RIC_StyË_Ty³_gs_1 +) + +23 /( +a¢_DEF_RIC_StyË_Ty³_gs_1 +[0]), + +24 +a¢_DEF_RIC_StyË_Ty³_gs_1 +, + +25 ( +a¢_DEF_RIC_StyË_Ty³_gs_1 +) + +26 /( +a¢_DEF_RIC_StyË_Ty³_gs_1 +[0]), + +27 { 0, 0, +N©iveIÁeg”_cÚ¡¿št + }, + + @RRC-MessageID.c + +8  + ~"RRC-Mes§geID.h +" + +10  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_¼cTy³_cÚ¡r_2 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15  +a¢_TYPE_memb”_t + + ga¢_MBR_¼cTy³_2 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +RRC_Mes§geID__¼cTy³ +, +choiû +. +lTE +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_RRCþass_LTE +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +RRC_Mes§geID__¼cTy³ +, +choiû +. +nR +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_RRCþass_NR +, + +35 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_¼cTy³_g2–_2 +[] = { + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +39  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_¼cTy³_¥ecs_2 + = { + +40 ( +RRC_Mes§geID__¼cTy³ +), + +41 +off£tof +( +RRC_Mes§geID__¼cTy³ +, +_a¢_ùx +), + +42 +off£tof +( +RRC_Mes§geID__¼cTy³ +, +´e£Á +), + +43 ((( +RRC_Mes§geID__¼cTy³ + *)0)-> +´e£Á +), + +44 +a¢_MAP_¼cTy³_g2–_2 +, + +50 +a¢_TYPE_desütÜ_t + + ga¢_DEF_¼cTy³_2 + = { + +53 & +a¢_OP_CHOICE +, + +58 { 0, & +a¢_PER_ty³_¼cTy³_cÚ¡r_2 +, +CHOICE_cÚ¡¿št + }, + +59 +a¢_MBR_¼cTy³_2 +, + +61 & +a¢_SPC_¼cTy³_¥ecs_2 + + +64  +a¢_TYPE_memb”_t + + ga¢_MBR_RRC_Mes§geID_1 +[] = { + +65 { +ATF_NOFLAGS +, 0, +off£tof +( +RRC_Mes§geID +, +¼cTy³ +), + +66 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +68 & +a¢_DEF_¼cTy³_2 +, + +74 { +ATF_NOFLAGS +, 0, +off£tof +( +RRC_Mes§geID +, +mes§geID +), + +75 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +77 & +a¢_DEF_N©iveIÁeg” +, + +84 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RRC_Mes§geID_gs_1 +[] = { + +85 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +87 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_RRC_Mes§geID_g2–_1 +[] = { + +88 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +89 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +91  +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_RRC_Mes§geID_¥ecs_1 + = { + +92 ( +RRC_Mes§geID +), + +93 +off£tof +( +RRC_Mes§geID +, +_a¢_ùx +), + +94 +a¢_MAP_RRC_Mes§geID_g2–_1 +, + +99 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RRC_Mes§geID + = { + +102 & +a¢_OP_SEQUENCE +, + +103 +a¢_DEF_RRC_Mes§geID_gs_1 +, + +104 ( +a¢_DEF_RRC_Mes§geID_gs_1 +) + +105 /( +a¢_DEF_RRC_Mes§geID_gs_1 +[0]), + +106 +a¢_DEF_RRC_Mes§geID_gs_1 +, + +107 ( +a¢_DEF_RRC_Mes§geID_gs_1 +) + +108 /( +a¢_DEF_RRC_Mes§geID_gs_1 +[0]), + +109 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +110 +a¢_MBR_RRC_Mes§geID_1 +, + +112 & +a¢_SPC_RRC_Mes§geID_¥ecs_1 + + + @RRCclass-LTE.c + +8  + ~"RRCþass-LTE.h +" + +14 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_RRCþass_LTE_cÚ¡r_1 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 4, 4, 0, 11 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_RRCþass_LTE_v®ue2’um_1 +[] = { + +34 cÚ¡  + ga¢_MAP_RRCþass_LTE_’um2v®ue_1 +[] = { + +49 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_RRCþass_LTE_¥ecs_1 + = { + +50 +a¢_MAP_RRCþass_LTE_v®ue2’um_1 +, + +51 +a¢_MAP_RRCþass_LTE_’um2v®ue_1 +, + +58 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RRCþass_LTE_gs_1 +[] = { + +59 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +61 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RRCþass_LTE + = { + +64 & +a¢_OP_N©iveEnum”©ed +, + +65 +a¢_DEF_RRCþass_LTE_gs_1 +, + +66 ( +a¢_DEF_RRCþass_LTE_gs_1 +) + +67 /( +a¢_DEF_RRCþass_LTE_gs_1 +[0]), + +68 +a¢_DEF_RRCþass_LTE_gs_1 +, + +69 ( +a¢_DEF_RRCþass_LTE_gs_1 +) + +70 /( +a¢_DEF_RRCþass_LTE_gs_1 +[0]), + +71 { 0, & +a¢_PER_ty³_RRCþass_LTE_cÚ¡r_1 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +73 & +a¢_SPC_RRCþass_LTE_¥ecs_1 + + + @RRCclass-NR.c + +8  + ~"RRCþass-NR.h +" + +14 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_RRCþass_NR_cÚ¡r_1 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 7 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_RRCþass_NR_v®ue2’um_1 +[] = { + +30 cÚ¡  + ga¢_MAP_RRCþass_NR_’um2v®ue_1 +[] = { + +41 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_RRCþass_NR_¥ecs_1 + = { + +42 +a¢_MAP_RRCþass_NR_v®ue2’um_1 +, + +43 +a¢_MAP_RRCþass_NR_’um2v®ue_1 +, + +50 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_RRCþass_NR_gs_1 +[] = { + +51 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +53 +a¢_TYPE_desütÜ_t + + ga¢_DEF_RRCþass_NR + = { + +56 & +a¢_OP_N©iveEnum”©ed +, + +57 +a¢_DEF_RRCþass_NR_gs_1 +, + +58 ( +a¢_DEF_RRCþass_NR_gs_1 +) + +59 /( +a¢_DEF_RRCþass_NR_gs_1 +[0]), + +60 +a¢_DEF_RRCþass_NR_gs_1 +, + +61 ( +a¢_DEF_RRCþass_NR_gs_1 +) + +62 /( +a¢_DEF_RRCþass_NR_gs_1 +[0]), + +63 { 0, & +a¢_PER_ty³_RRCþass_NR_cÚ¡r_1 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +65 & +a¢_SPC_RRCþass_NR_¥ecs_1 + + + @S-NSSAI.c + +8  + ~"S-NSSAI.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_S_NSSAI_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +S_NSSAI +, +sST +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_SST +, + +20 { +ATF_POINTER +, 1, +off£tof +( +S_NSSAI +, +sD +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_SD +, + +30 cÚ¡  + ga¢_MAP_S_NSSAI_oms_1 +[] = { 1 }; + +31 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_S_NSSAI_gs_1 +[] = { + +32 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +34 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_S_NSSAI_g2–_1 +[] = { + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +38 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_S_NSSAI_¥ecs_1 + = { + +39 ( +S_NSSAI +), + +40 +off£tof +( +S_NSSAI +, +_a¢_ùx +), + +41 +a¢_MAP_S_NSSAI_g2–_1 +, + +43 +a¢_MAP_S_NSSAI_oms_1 +, + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_S_NSSAI + = { + +50 & +a¢_OP_SEQUENCE +, + +51 +a¢_DEF_S_NSSAI_gs_1 +, + +52 ( +a¢_DEF_S_NSSAI_gs_1 +) + +53 /( +a¢_DEF_S_NSSAI_gs_1 +[0]), + +54 +a¢_DEF_S_NSSAI_gs_1 +, + +55 ( +a¢_DEF_S_NSSAI_gs_1 +) + +56 /( +a¢_DEF_S_NSSAI_gs_1 +[0]), + +57 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +58 +a¢_MBR_S_NSSAI_1 +, + +60 & +a¢_SPC_S_NSSAI_¥ecs_1 + + + @SD.c + +8  + ~"SD.h +" + +11 + $SD_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 3)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_SD_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 3, 3 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_SD_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_SD + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_SD_gs_1 +, + +53 ( +a¢_DEF_SD_gs_1 +) + +54 /( +a¢_DEF_SD_gs_1 +[0]), + +55 +a¢_DEF_SD_gs_1 +, + +56 ( +a¢_DEF_SD_gs_1 +) + +57 /( +a¢_DEF_SD_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_SD_cÚ¡r_1 +, +SD_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @SST.c + +8  + ~"SST.h +" + +11 + $SST_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 1)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_SST_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 1, 1 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_SST_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_SST + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_SST_gs_1 +, + +53 ( +a¢_DEF_SST_gs_1 +) + +54 /( +a¢_DEF_SST_gs_1 +[0]), + +55 +a¢_DEF_SST_gs_1 +, + +56 ( +a¢_DEF_SST_gs_1 +) + +57 /( +a¢_DEF_SST_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_SST_cÚ¡r_1 +, +SST_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @ServingCell-ARFCN.c + +8  + ~"S”všgC–l-ARFCN.h +" + +10  + ~"NR-ARFCN.h +" + +11  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_S”všgC–l_ARFCN_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +13 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +16  +a¢_TYPE_memb”_t + + ga¢_MBR_S”všgC–l_ARFCN_1 +[] = { + +17 { +ATF_POINTER +, 0, +off£tof +( +S”všgC–l_ARFCN +, +choiû +. +nR +), + +18 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +20 & +a¢_DEF_NR_ARFCN +, + +26 { +ATF_NOFLAGS +, 0, +off£tof +( +S”všgC–l_ARFCN +, +choiû +. +eUTRA +), + +27 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +29 & +a¢_DEF_E_UTRA_ARFCN +, + +36 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_S”všgC–l_ARFCN_g2–_1 +[] = { + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +38 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +40  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_S”všgC–l_ARFCN_¥ecs_1 + = { + +41 ( +S”všgC–l_ARFCN +), + +42 +off£tof +( +S”všgC–l_ARFCN +, +_a¢_ùx +), + +43 +off£tof +( +S”všgC–l_ARFCN +, +´e£Á +), + +44 ((( +S”všgC–l_ARFCN + *)0)-> +´e£Á +), + +45 +a¢_MAP_S”všgC–l_ARFCN_g2–_1 +, + +50 +a¢_TYPE_desütÜ_t + + ga¢_DEF_S”všgC–l_ARFCN + = { + +53 & +a¢_OP_CHOICE +, + +58 { 0, & +a¢_PER_ty³_S”všgC–l_ARFCN_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +59 +a¢_MBR_S”všgC–l_ARFCN_1 +, + +61 & +a¢_SPC_S”všgC–l_ARFCN_¥ecs_1 + + + @ServingCell-PCI.c + +8  + ~"S”všgC–l-PCI.h +" + +10  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_S”všgC–l_PCI_cÚ¡r_1 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 1, 1, 0, 1 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15  +a¢_TYPE_memb”_t + + ga¢_MBR_S”všgC–l_PCI_1 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +S”všgC–l_PCI +, +choiû +. +nR +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_NR_PCI +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +S”všgC–l_PCI +, +choiû +. +eUTRA +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_E_UTRA_PCI +, + +35 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_S”všgC–l_PCI_g2–_1 +[] = { + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +37 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +39  +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_S”všgC–l_PCI_¥ecs_1 + = { + +40 ( +S”všgC–l_PCI +), + +41 +off£tof +( +S”všgC–l_PCI +, +_a¢_ùx +), + +42 +off£tof +( +S”všgC–l_PCI +, +´e£Á +), + +43 ((( +S”všgC–l_PCI + *)0)-> +´e£Á +), + +44 +a¢_MAP_S”všgC–l_PCI_g2–_1 +, + +49 +a¢_TYPE_desütÜ_t + + ga¢_DEF_S”všgC–l_PCI + = { + +52 & +a¢_OP_CHOICE +, + +57 { 0, & +a¢_PER_ty³_S”všgC–l_PCI_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +58 +a¢_MBR_S”všgC–l_PCI_1 +, + +60 & +a¢_SPC_S”všgC–l_PCI_¥ecs_1 + + + @SubscriberProfileIDforRFP.c + +8  + ~"Subsüib”ProfžeIDfÜRFP.h +" + +11 + $Subsüib”ProfžeIDfÜRFP_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 256)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +39  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Subsüib”ProfžeIDfÜRFP_cÚ¡r_1 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED +, 8, 8, 1, 256 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (2 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Subsüib”ProfžeIDfÜRFP + = { + +50 & +a¢_OP_N©iveIÁeg” +, + +51 +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +, + +52 ( +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +) + +53 /( +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +[0]), + +54 +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +, + +55 ( +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +) + +56 /( +a¢_DEF_Subsüib”ProfžeIDfÜRFP_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_Subsüib”ProfžeIDfÜRFP_cÚ¡r_1 +, +Subsüib”ProfžeIDfÜRFP_cÚ¡¿št + }, + + @SupportedSULBandList.c + +8  + ~"SuµÜ‹dSULBªdLi¡.h +" + +10  + ~"SuµÜ‹dSULF»qBªdI‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_SuµÜ‹dSULBªdLi¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 6, 6, 0, 32 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_SuµÜ‹dSULBªdLi¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_SuµÜ‹dSULBªdLi¡_¥ecs_1 + = { + +31 ( +SuµÜ‹dSULBªdLi¡ +), + +32 +off£tof +( +SuµÜ‹dSULBªdLi¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_SuµÜ‹dSULBªdLi¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +, + +40 ( +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +) + +41 /( +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +[0]), + +42 +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +, + +43 ( +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +) + +44 /( +a¢_DEF_SuµÜ‹dSULBªdLi¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_SuµÜ‹dSULBªdLi¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_SuµÜ‹dSULBªdLi¡_1 +, + +48 & +a¢_SPC_SuµÜ‹dSULBªdLi¡_¥ecs_1 + + + @SupportedSULFreqBandItem.c + +8  + ~"SuµÜ‹dSULF»qBªdI‹m.h +" + +11 + $memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13  +v®ue +; + +15 if(! +¥Œ +) { + +16 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +18 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +22 +v®ue + = *(cÚ¡ *) +¥Œ +; + +24 if(( +v®ue + >= 1 && value <= 1024)) { + +28 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +30 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +33 + } +} + +35  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 + + gCC_NOTUSED + = { + +36 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 10, 10, 1, 1024 } , + +37 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +40 +a¢_TYPE_memb”_t + + ga¢_MBR_SuµÜ‹dSULF»qBªdI‹m_1 +[] = { + +41 { +ATF_NOFLAGS +, 0, +off£tof +( +SuµÜ‹dSULF»qBªdI‹m +, +äeqBªdIndiÿtÜNr +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +44 & +a¢_DEF_N©iveIÁeg” +, + +46 { 0, & +a¢_PER_memb_äeqBªdIndiÿtÜNr_cÚ¡r_2 +, +memb_äeqBªdIndiÿtÜNr_cÚ¡¿št_1 + }, + +51 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +[] = { + +52 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +54 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_SuµÜ‹dSULF»qBªdI‹m_g2–_1 +[] = { + +55 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +57 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_SuµÜ‹dSULF»qBªdI‹m_¥ecs_1 + = { + +58 ( +SuµÜ‹dSULF»qBªdI‹m +), + +59 +off£tof +( +SuµÜ‹dSULF»qBªdI‹m +, +_a¢_ùx +), + +60 +a¢_MAP_SuµÜ‹dSULF»qBªdI‹m_g2–_1 +, + +65 +a¢_TYPE_desütÜ_t + + ga¢_DEF_SuµÜ‹dSULF»qBªdI‹m + = { + +68 & +a¢_OP_SEQUENCE +, + +69 +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +, + +70 ( +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +) + +71 /( +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +[0]), + +72 +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +, + +73 ( +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +) + +74 /( +a¢_DEF_SuµÜ‹dSULF»qBªdI‹m_gs_1 +[0]), + +75 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +76 +a¢_MBR_SuµÜ‹dSULF»qBªdI‹m_1 +, + +78 & +a¢_SPC_SuµÜ‹dSULF»qBªdI‹m_¥ecs_1 + + + @TestCond-Expression.c + +8  + ~"Te¡CÚd-Ex´essiÚ.h +" + +14 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Te¡CÚd_Ex´essiÚ_cÚ¡r_1 + + gCC_NOTUSED + = { + +15 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 4 } , + +16 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +19 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_Te¡CÚd_Ex´essiÚ_v®ue2’um_1 +[] = { + +27 cÚ¡  + ga¢_MAP_Te¡CÚd_Ex´essiÚ_’um2v®ue_1 +[] = { + +35 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_Te¡CÚd_Ex´essiÚ_¥ecs_1 + = { + +36 +a¢_MAP_Te¡CÚd_Ex´essiÚ_v®ue2’um_1 +, + +37 +a¢_MAP_Te¡CÚd_Ex´essiÚ_’um2v®ue_1 +, + +44 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +[] = { + +45 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Te¡CÚd_Ex´essiÚ + = { + +50 & +a¢_OP_N©iveEnum”©ed +, + +51 +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +, + +52 ( +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +) + +53 /( +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +[0]), + +54 +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +, + +55 ( +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +) + +56 /( +a¢_DEF_Te¡CÚd_Ex´essiÚ_gs_1 +[0]), + +57 { 0, & +a¢_PER_ty³_Te¡CÚd_Ex´essiÚ_cÚ¡r_1 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +59 & +a¢_SPC_Te¡CÚd_Ex´essiÚ_¥ecs_1 + + + @TestCond-Type.c + +8  + ~"Te¡CÚd-Ty³.h +" + +34  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_gBR_cÚ¡r_2 + + gCC_NOTUSED + = { + +35 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +36 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +39  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_aMBR_cÚ¡r_5 + + gCC_NOTUSED + = { + +40 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +44  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_isSt_cÚ¡r_8 + + gCC_NOTUSED + = { + +45 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +46 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +49  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_isC©M_cÚ¡r_11 + + gCC_NOTUSED + = { + +50 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +51 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +54  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_rSRP_cÚ¡r_14 + + gCC_NOTUSED + = { + +55 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +56 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +59  +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_rSRQ_cÚ¡r_17 + + gCC_NOTUSED + = { + +60 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 0, 0, 0, 0 } , + +61 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +64 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Te¡CÚd_Ty³_cÚ¡r_1 + + gCC_NOTUSED + = { + +65 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 5 } , + +66 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +69 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_gBR_v®ue2’um_2 +[] = { + +73 cÚ¡  + ga¢_MAP_gBR_’um2v®ue_2 +[] = { + +77 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_gBR_¥ecs_2 + = { + +78 +a¢_MAP_gBR_v®ue2’um_2 +, + +79 +a¢_MAP_gBR_’um2v®ue_2 +, + +86 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_gBR_gs_2 +[] = { + +87 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +88 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +91 +a¢_TYPE_desütÜ_t + + ga¢_DEF_gBR_2 + = { + +94 & +a¢_OP_N©iveEnum”©ed +, + +95 +a¢_DEF_gBR_gs_2 +, + +96 ( +a¢_DEF_gBR_gs_2 +) + +97 /( +a¢_DEF_gBR_gs_2 +[0]) - 1, + +98 +a¢_DEF_gBR_gs_2 +, + +99 ( +a¢_DEF_gBR_gs_2 +) + +100 /( +a¢_DEF_gBR_gs_2 +[0]), + +101 { 0, & +a¢_PER_ty³_gBR_cÚ¡r_2 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +103 & +a¢_SPC_gBR_¥ecs_2 + + +106 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_aMBR_v®ue2’um_5 +[] = { + +110 cÚ¡  + ga¢_MAP_aMBR_’um2v®ue_5 +[] = { + +114 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_aMBR_¥ecs_5 + = { + +115 +a¢_MAP_aMBR_v®ue2’um_5 +, + +116 +a¢_MAP_aMBR_’um2v®ue_5 +, + +123 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_aMBR_gs_5 +[] = { + +124 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +125 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +128 +a¢_TYPE_desütÜ_t + + ga¢_DEF_aMBR_5 + = { + +131 & +a¢_OP_N©iveEnum”©ed +, + +132 +a¢_DEF_aMBR_gs_5 +, + +133 ( +a¢_DEF_aMBR_gs_5 +) + +134 /( +a¢_DEF_aMBR_gs_5 +[0]) - 1, + +135 +a¢_DEF_aMBR_gs_5 +, + +136 ( +a¢_DEF_aMBR_gs_5 +) + +137 /( +a¢_DEF_aMBR_gs_5 +[0]), + +138 { 0, & +a¢_PER_ty³_aMBR_cÚ¡r_5 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +140 & +a¢_SPC_aMBR_¥ecs_5 + + +143 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_isSt_v®ue2’um_8 +[] = { + +147 cÚ¡  + ga¢_MAP_isSt_’um2v®ue_8 +[] = { + +151 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_isSt_¥ecs_8 + = { + +152 +a¢_MAP_isSt_v®ue2’um_8 +, + +153 +a¢_MAP_isSt_’um2v®ue_8 +, + +160 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_isSt_gs_8 +[] = { + +161 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +162 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +165 +a¢_TYPE_desütÜ_t + + ga¢_DEF_isSt_8 + = { + +168 & +a¢_OP_N©iveEnum”©ed +, + +169 +a¢_DEF_isSt_gs_8 +, + +170 ( +a¢_DEF_isSt_gs_8 +) + +171 /( +a¢_DEF_isSt_gs_8 +[0]) - 1, + +172 +a¢_DEF_isSt_gs_8 +, + +173 ( +a¢_DEF_isSt_gs_8 +) + +174 /( +a¢_DEF_isSt_gs_8 +[0]), + +175 { 0, & +a¢_PER_ty³_isSt_cÚ¡r_8 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +177 & +a¢_SPC_isSt_¥ecs_8 + + +180 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_isC©M_v®ue2’um_11 +[] = { + +184 cÚ¡  + ga¢_MAP_isC©M_’um2v®ue_11 +[] = { + +188 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_isC©M_¥ecs_11 + = { + +189 +a¢_MAP_isC©M_v®ue2’um_11 +, + +190 +a¢_MAP_isC©M_’um2v®ue_11 +, + +197 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_isC©M_gs_11 +[] = { + +198 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +199 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +202 +a¢_TYPE_desütÜ_t + + ga¢_DEF_isC©M_11 + = { + +205 & +a¢_OP_N©iveEnum”©ed +, + +206 +a¢_DEF_isC©M_gs_11 +, + +207 ( +a¢_DEF_isC©M_gs_11 +) + +208 /( +a¢_DEF_isC©M_gs_11 +[0]) - 1, + +209 +a¢_DEF_isC©M_gs_11 +, + +210 ( +a¢_DEF_isC©M_gs_11 +) + +211 /( +a¢_DEF_isC©M_gs_11 +[0]), + +212 { 0, & +a¢_PER_ty³_isC©M_cÚ¡r_11 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +214 & +a¢_SPC_isC©M_¥ecs_11 + + +217 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_rSRP_v®ue2’um_14 +[] = { + +221 cÚ¡  + ga¢_MAP_rSRP_’um2v®ue_14 +[] = { + +225 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_rSRP_¥ecs_14 + = { + +226 +a¢_MAP_rSRP_v®ue2’um_14 +, + +227 +a¢_MAP_rSRP_’um2v®ue_14 +, + +234 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_rSRP_gs_14 +[] = { + +235 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +236 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +239 +a¢_TYPE_desütÜ_t + + ga¢_DEF_rSRP_14 + = { + +242 & +a¢_OP_N©iveEnum”©ed +, + +243 +a¢_DEF_rSRP_gs_14 +, + +244 ( +a¢_DEF_rSRP_gs_14 +) + +245 /( +a¢_DEF_rSRP_gs_14 +[0]) - 1, + +246 +a¢_DEF_rSRP_gs_14 +, + +247 ( +a¢_DEF_rSRP_gs_14 +) + +248 /( +a¢_DEF_rSRP_gs_14 +[0]), + +249 { 0, & +a¢_PER_ty³_rSRP_cÚ¡r_14 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +251 & +a¢_SPC_rSRP_¥ecs_14 + + +254 cÚ¡ +a¢_INTEGER_’um_m­_t + + ga¢_MAP_rSRQ_v®ue2’um_17 +[] = { + +258 cÚ¡  + ga¢_MAP_rSRQ_’um2v®ue_17 +[] = { + +262 cÚ¡ +a¢_INTEGER_¥ecifics_t + + ga¢_SPC_rSRQ_¥ecs_17 + = { + +263 +a¢_MAP_rSRQ_v®ue2’um_17 +, + +264 +a¢_MAP_rSRQ_’um2v®ue_17 +, + +271 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_rSRQ_gs_17 +[] = { + +272 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +273 ( +ASN_TAG_CLASS_UNIVERSAL + | (10 << 2)) + +276 +a¢_TYPE_desütÜ_t + + ga¢_DEF_rSRQ_17 + = { + +279 & +a¢_OP_N©iveEnum”©ed +, + +280 +a¢_DEF_rSRQ_gs_17 +, + +281 ( +a¢_DEF_rSRQ_gs_17 +) + +282 /( +a¢_DEF_rSRQ_gs_17 +[0]) - 1, + +283 +a¢_DEF_rSRQ_gs_17 +, + +284 ( +a¢_DEF_rSRQ_gs_17 +) + +285 /( +a¢_DEF_rSRQ_gs_17 +[0]), + +286 { 0, & +a¢_PER_ty³_rSRQ_cÚ¡r_17 +, +N©iveEnum”©ed_cÚ¡¿št + }, + +288 & +a¢_SPC_rSRQ_¥ecs_17 + + +291 +a¢_TYPE_memb”_t + + ga¢_MBR_Te¡CÚd_Ty³_1 +[] = { + +292 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +gBR +), + +293 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +295 & +a¢_DEF_gBR_2 +, + +301 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +aMBR +), + +302 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +304 & +a¢_DEF_aMBR_5 +, + +310 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +isSt +), + +311 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +313 & +a¢_DEF_isSt_8 +, + +319 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +isC©M +), + +320 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +322 & +a¢_DEF_isC©M_11 +, + +328 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +rSRP +), + +329 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +331 & +a¢_DEF_rSRP_14 +, + +337 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_Ty³ +, +choiû +. +rSRQ +), + +338 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +340 & +a¢_DEF_rSRQ_17 +, + +347 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Te¡CÚd_Ty³_g2–_1 +[] = { + +348 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +349 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +350 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +351 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +352 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +353 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 } + +355 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_Te¡CÚd_Ty³_¥ecs_1 + = { + +356 ( +Te¡CÚd_Ty³ +), + +357 +off£tof +( +Te¡CÚd_Ty³ +, +_a¢_ùx +), + +358 +off£tof +( +Te¡CÚd_Ty³ +, +´e£Á +), + +359 ((( +Te¡CÚd_Ty³ + *)0)-> +´e£Á +), + +360 +a¢_MAP_Te¡CÚd_Ty³_g2–_1 +, + +365 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Te¡CÚd_Ty³ + = { + +368 & +a¢_OP_CHOICE +, + +373 { 0, & +a¢_PER_ty³_Te¡CÚd_Ty³_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +374 +a¢_MBR_Te¡CÚd_Ty³_1 +, + +376 & +a¢_SPC_Te¡CÚd_Ty³_¥ecs_1 + + + @TestCond-Value.c + +8  + ~"Te¡CÚd-V®ue.h +" + +10 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_Te¡CÚd_V®ue_cÚ¡r_1 + + gCC_NOTUSED + = { + +11 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 5 } , + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +15 +a¢_TYPE_memb”_t + + ga¢_MBR_Te¡CÚd_V®ue_1 +[] = { + +16 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueIÁ +), + +17 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +19 & +a¢_DEF_N©iveIÁeg” +, + +25 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueEnum +), + +26 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +28 & +a¢_DEF_N©iveIÁeg” +, + +34 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueBoÞ +), + +35 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +37 & +a¢_DEF_BOOLEAN +, + +43 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueB™S +), + +44 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +46 & +a¢_DEF_BIT_STRING +, + +52 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueOùS +), + +53 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +55 & +a¢_DEF_OCTET_STRING +, + +61 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚd_V®ue +, +choiû +. +v®ueP¹S +), + +62 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +64 & +a¢_DEF_PršbËSŒšg +, + +71 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Te¡CÚd_V®ue_g2–_1 +[] = { + +72 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +73 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +74 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +75 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +76 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +77 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 } + +79 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_Te¡CÚd_V®ue_¥ecs_1 + = { + +80 ( +Te¡CÚd_V®ue +), + +81 +off£tof +( +Te¡CÚd_V®ue +, +_a¢_ùx +), + +82 +off£tof +( +Te¡CÚd_V®ue +, +´e£Á +), + +83 ((( +Te¡CÚd_V®ue + *)0)-> +´e£Á +), + +84 +a¢_MAP_Te¡CÚd_V®ue_g2–_1 +, + +89 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Te¡CÚd_V®ue + = { + +92 & +a¢_OP_CHOICE +, + +97 { 0, & +a¢_PER_ty³_Te¡CÚd_V®ue_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +98 +a¢_MBR_Te¡CÚd_V®ue_1 +, + +100 & +a¢_SPC_Te¡CÚd_V®ue_¥ecs_1 + + + @TestCondInfo.c + +8  + ~"Te¡CÚdInfo.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_Te¡CÚdInfo_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚdInfo +, +‹¡Ty³ +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_Te¡CÚd_Ty³ +, + +20 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚdInfo +, +‹¡Ex´ +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_Te¡CÚd_Ex´essiÚ +, + +29 { +ATF_NOFLAGS +, 0, +off£tof +( +Te¡CÚdInfo +, +‹¡V®ue +), + +30 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +32 & +a¢_DEF_Te¡CÚd_V®ue +, + +39 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_Te¡CÚdInfo_gs_1 +[] = { + +40 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +42 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_Te¡CÚdInfo_g2–_1 +[] = { + +43 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +44 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +45 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 } + +47 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_Te¡CÚdInfo_¥ecs_1 + = { + +48 ( +Te¡CÚdInfo +), + +49 +off£tof +( +Te¡CÚdInfo +, +_a¢_ùx +), + +50 +a¢_MAP_Te¡CÚdInfo_g2–_1 +, + +55 +a¢_TYPE_desütÜ_t + + ga¢_DEF_Te¡CÚdInfo + = { + +58 & +a¢_OP_SEQUENCE +, + +59 +a¢_DEF_Te¡CÚdInfo_gs_1 +, + +60 ( +a¢_DEF_Te¡CÚdInfo_gs_1 +) + +61 /( +a¢_DEF_Te¡CÚdInfo_gs_1 +[0]), + +62 +a¢_DEF_Te¡CÚdInfo_gs_1 +, + +63 ( +a¢_DEF_Te¡CÚdInfo_gs_1 +) + +64 /( +a¢_DEF_Te¡CÚdInfo_gs_1 +[0]), + +65 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +66 +a¢_MBR_Te¡CÚdInfo_1 +, + +68 & +a¢_SPC_Te¡CÚdInfo_¥ecs_1 + + + @TimeStamp.c + +8  + ~"TimeSmp.h +" + +11 + $TimeSmp_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +12 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +13 cÚ¡ +OCTET_STRING_t + * +¡ + = (cÚ¡ OCTET_STRING_ˆ*) +¥Œ +; + +14 +size_t + +size +; + +16 if(! +¥Œ +) { + +17 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +19 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +23 +size + = +¡ +->size; + +25 if(( +size + == 4)) { + +29 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +31 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +34 + } +} + +40 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_TimeSmp_cÚ¡r_1 + + gCC_NOTUSED + = { + +41 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +42 { +APC_CONSTRAINED +, 0, 0, 4, 4 } , + +45 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_TimeSmp_gs_1 +[] = { + +46 ( +ASN_TAG_CLASS_UNIVERSAL + | (4 << 2)) + +48 +a¢_TYPE_desütÜ_t + + ga¢_DEF_TimeSmp + = { + +51 & +a¢_OP_OCTET_STRING +, + +52 +a¢_DEF_TimeSmp_gs_1 +, + +53 ( +a¢_DEF_TimeSmp_gs_1 +) + +54 /( +a¢_DEF_TimeSmp_gs_1 +[0]), + +55 +a¢_DEF_TimeSmp_gs_1 +, + +56 ( +a¢_DEF_TimeSmp_gs_1 +) + +57 /( +a¢_DEF_TimeSmp_gs_1 +[0]), + +58 { 0, & +a¢_PER_ty³_TimeSmp_cÚ¡r_1 +, +TimeSmp_cÚ¡¿št + }, + +60 & +a¢_SPC_OCTET_STRING_¥ecs + + + @UEID-EN-GNB.c + +8  + ~"UEID-EN-GNB.h +" + +10  + ~"UEID-GNB-CU-CP-E1AP-ID-Li¡.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_EN_GNB_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_EN_GNB +, +m_eNB_UE_X2AP_ID +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_ENB_UE_X2AP_ID +, + +21 { +ATF_POINTER +, 1, +off£tof +( +UEID_EN_GNB +, +m_eNB_UE_X2AP_ID_Ex‹nsiÚ +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ +, + +30 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_EN_GNB +, +glob®ENB_ID +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_Glob®ENB_ID +, + +39 { +ATF_POINTER +, 3, +off£tof +( +UEID_EN_GNB +, +gNB_CU_UE_F1AP_ID +), + +40 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +42 & +a¢_DEF_GNB_CU_UE_F1AP_ID +, + +48 { +ATF_POINTER +, 2, +off£tof +( +UEID_EN_GNB +, +gNB_CU_CP_UE_E1AP_ID_Li¡ +), + +49 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +51 & +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡ +, + +57 { +ATF_POINTER +, 1, +off£tof +( +UEID_EN_GNB +, +¿n_UEID +), + +58 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +60 & +a¢_DEF_RANUEID +, + +67 cÚ¡  + ga¢_MAP_UEID_EN_GNB_oms_1 +[] = { 1, 3, 4, 5 }; + +68 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_EN_GNB_gs_1 +[] = { + +69 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +71 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_EN_GNB_g2–_1 +[] = { + +72 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +73 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +74 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +75 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +76 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +77 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 } + +79 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_EN_GNB_¥ecs_1 + = { + +80 ( +UEID_EN_GNB +), + +81 +off£tof +( +UEID_EN_GNB +, +_a¢_ùx +), + +82 +a¢_MAP_UEID_EN_GNB_g2–_1 +, + +84 +a¢_MAP_UEID_EN_GNB_oms_1 +, + +88 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_EN_GNB + = { + +91 & +a¢_OP_SEQUENCE +, + +92 +a¢_DEF_UEID_EN_GNB_gs_1 +, + +93 ( +a¢_DEF_UEID_EN_GNB_gs_1 +) + +94 /( +a¢_DEF_UEID_EN_GNB_gs_1 +[0]), + +95 +a¢_DEF_UEID_EN_GNB_gs_1 +, + +96 ( +a¢_DEF_UEID_EN_GNB_gs_1 +) + +97 /( +a¢_DEF_UEID_EN_GNB_gs_1 +[0]), + +98 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +99 +a¢_MBR_UEID_EN_GNB_1 +, + +101 & +a¢_SPC_UEID_EN_GNB_¥ecs_1 + + + @UEID-ENB.c + +8  + ~"UEID-ENB.h +" + +10  + ~"Glob®ENB-ID.h +" + +11 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_ENB_1 +[] = { + +12 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_ENB +, +mME_UE_S1AP_ID +), + +13 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +15 & +a¢_DEF_MME_UE_S1AP_ID +, + +21 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_ENB +, +gUMMEI +), + +22 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +24 & +a¢_DEF_GUMMEI +, + +30 { +ATF_POINTER +, 3, +off£tof +( +UEID_ENB +, +m_eNB_UE_X2AP_ID +), + +31 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +33 & +a¢_DEF_ENB_UE_X2AP_ID +, + +39 { +ATF_POINTER +, 2, +off£tof +( +UEID_ENB +, +m_eNB_UE_X2AP_ID_Ex‹nsiÚ +), + +40 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +42 & +a¢_DEF_ENB_UE_X2AP_ID_Ex‹nsiÚ +, + +48 { +ATF_POINTER +, 1, +off£tof +( +UEID_ENB +, +glob®ENB_ID +), + +49 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +51 & +a¢_DEF_Glob®ENB_ID +, + +58 cÚ¡  + ga¢_MAP_UEID_ENB_oms_1 +[] = { 2, 3, 4 }; + +59 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_ENB_gs_1 +[] = { + +60 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +62 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_ENB_g2–_1 +[] = { + +63 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +64 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +65 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +66 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +67 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 } + +69 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_ENB_¥ecs_1 + = { + +70 ( +UEID_ENB +), + +71 +off£tof +( +UEID_ENB +, +_a¢_ùx +), + +72 +a¢_MAP_UEID_ENB_g2–_1 +, + +74 +a¢_MAP_UEID_ENB_oms_1 +, + +78 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_ENB + = { + +81 & +a¢_OP_SEQUENCE +, + +82 +a¢_DEF_UEID_ENB_gs_1 +, + +83 ( +a¢_DEF_UEID_ENB_gs_1 +) + +84 /( +a¢_DEF_UEID_ENB_gs_1 +[0]), + +85 +a¢_DEF_UEID_ENB_gs_1 +, + +86 ( +a¢_DEF_UEID_ENB_gs_1 +) + +87 /( +a¢_DEF_UEID_ENB_gs_1 +[0]), + +88 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +89 +a¢_MBR_UEID_ENB_1 +, + +91 & +a¢_SPC_UEID_ENB_¥ecs_1 + + + @UEID-GNB-CU-CP-E1AP-ID-Item.c + +8  + ~"UEID-GNB-CU-CP-E1AP-ID-I‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_CU_CP_E1AP_ID_I‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB_CU_CP_E1AP_ID_I‹m +, +gNB_CU_CP_UE_E1AP_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GNB_CU_CP_UE_E1AP_ID +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_GNB_CU_CP_E1AP_ID_I‹m_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_GNB_CU_CP_E1AP_ID_I‹m_¥ecs_1 + = { + +28 ( +UEID_GNB_CU_CP_E1AP_ID_I‹m +), + +29 +off£tof +( +UEID_GNB_CU_CP_E1AP_ID_I‹m +, +_a¢_ùx +), + +30 +a¢_MAP_UEID_GNB_CU_CP_E1AP_ID_I‹m_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +, + +40 ( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +) + +41 /( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +[0]), + +42 +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +, + +43 ( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +) + +44 /( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_UEID_GNB_CU_CP_E1AP_ID_I‹m_1 +, + +48 & +a¢_SPC_UEID_GNB_CU_CP_E1AP_ID_I‹m_¥ecs_1 + + + @UEID-GNB-CU-CP-E1AP-ID-List.c + +8  + ~"UEID-GNB-CU-CP-E1AP-ID-Li¡.h +" + +10  + ~"UEID-GNB-CU-CP-E1AP-ID-I‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_UEID_GNB_CU_CP_E1AP_ID_Li¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 16, 16, 1, 65535 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_CU_CP_E1AP_ID_Li¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_I‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_UEID_GNB_CU_CP_E1AP_ID_Li¡_¥ecs_1 + = { + +31 ( +UEID_GNB_CU_CP_E1AP_ID_Li¡ +), + +32 +off£tof +( +UEID_GNB_CU_CP_E1AP_ID_Li¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +, + +40 ( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +) + +41 /( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +[0]), + +42 +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +, + +43 ( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +) + +44 /( +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_UEID_GNB_CU_CP_E1AP_ID_Li¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_UEID_GNB_CU_CP_E1AP_ID_Li¡_1 +, + +48 & +a¢_SPC_UEID_GNB_CU_CP_E1AP_ID_Li¡_¥ecs_1 + + + @UEID-GNB-CU-CP-F1AP-ID-Item.c + +8  + ~"UEID-GNB-CU-CP-F1AP-ID-I‹m.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_CU_CP_F1AP_ID_I‹m_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB_CU_CP_F1AP_ID_I‹m +, +gNB_CU_UE_F1AP_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GNB_CU_UE_F1AP_ID +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_GNB_CU_CP_F1AP_ID_I‹m_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_GNB_CU_CP_F1AP_ID_I‹m_¥ecs_1 + = { + +28 ( +UEID_GNB_CU_CP_F1AP_ID_I‹m +), + +29 +off£tof +( +UEID_GNB_CU_CP_F1AP_ID_I‹m +, +_a¢_ùx +), + +30 +a¢_MAP_UEID_GNB_CU_CP_F1AP_ID_I‹m_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +, + +40 ( +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +) + +41 /( +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +[0]), + +42 +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +, + +43 ( +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +) + +44 /( +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_UEID_GNB_CU_CP_F1AP_ID_I‹m_1 +, + +48 & +a¢_SPC_UEID_GNB_CU_CP_F1AP_ID_I‹m_¥ecs_1 + + + @UEID-GNB-CU-F1AP-ID-List.c + +8  + ~"UEID-GNB-CU-F1AP-ID-Li¡.h +" + +10  + ~"UEID-GNB-CU-CP-F1AP-ID-I‹m.h +" + +11 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_UEID_GNB_CU_F1AP_ID_Li¡_cÚ¡r_1 + + gCC_NOTUSED + = { + +12 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +13 { +APC_CONSTRAINED +, 2, 2, 1, 4 } , + +16 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_CU_F1AP_ID_Li¡_1 +[] = { + +17 { +ATF_POINTER +, 0, 0, + +18 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)), + +20 & +a¢_DEF_UEID_GNB_CU_CP_F1AP_ID_I‹m +, + +27 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +[] = { + +28 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +30 +a¢_SET_OF_¥ecifics_t + + ga¢_SPC_UEID_GNB_CU_F1AP_ID_Li¡_¥ecs_1 + = { + +31 ( +UEID_GNB_CU_F1AP_ID_Li¡ +), + +32 +off£tof +( +UEID_GNB_CU_F1AP_ID_Li¡ +, +_a¢_ùx +), + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡ + = { + +38 & +a¢_OP_SEQUENCE_OF +, + +39 +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +, + +40 ( +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +) + +41 /( +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +[0]), + +42 +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +, + +43 ( +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +) + +44 /( +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡_gs_1 +[0]), + +45 { 0, & +a¢_PER_ty³_UEID_GNB_CU_F1AP_ID_Li¡_cÚ¡r_1 +, +SEQUENCE_OF_cÚ¡¿št + }, + +46 +a¢_MBR_UEID_GNB_CU_F1AP_ID_Li¡_1 +, + +48 & +a¢_SPC_UEID_GNB_CU_F1AP_ID_Li¡_¥ecs_1 + + + @UEID-GNB-CU-UP.c + +8  + ~"UEID-GNB-CU-UP.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_CU_UP_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB_CU_UP +, +gNB_CU_CP_UE_E1AP_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GNB_CU_CP_UE_E1AP_ID +, + +20 { +ATF_POINTER +, 1, +off£tof +( +UEID_GNB_CU_UP +, +¿n_UEID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_RANUEID +, + +30 cÚ¡  + ga¢_MAP_UEID_GNB_CU_UP_oms_1 +[] = { 1 }; + +31 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_CU_UP_gs_1 +[] = { + +32 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +34 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_GNB_CU_UP_g2–_1 +[] = { + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +38 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_GNB_CU_UP_¥ecs_1 + = { + +39 ( +UEID_GNB_CU_UP +), + +40 +off£tof +( +UEID_GNB_CU_UP +, +_a¢_ùx +), + +41 +a¢_MAP_UEID_GNB_CU_UP_g2–_1 +, + +43 +a¢_MAP_UEID_GNB_CU_UP_oms_1 +, + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_CU_UP + = { + +50 & +a¢_OP_SEQUENCE +, + +51 +a¢_DEF_UEID_GNB_CU_UP_gs_1 +, + +52 ( +a¢_DEF_UEID_GNB_CU_UP_gs_1 +) + +53 /( +a¢_DEF_UEID_GNB_CU_UP_gs_1 +[0]), + +54 +a¢_DEF_UEID_GNB_CU_UP_gs_1 +, + +55 ( +a¢_DEF_UEID_GNB_CU_UP_gs_1 +) + +56 /( +a¢_DEF_UEID_GNB_CU_UP_gs_1 +[0]), + +57 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +58 +a¢_MBR_UEID_GNB_CU_UP_1 +, + +60 & +a¢_SPC_UEID_GNB_CU_UP_¥ecs_1 + + + @UEID-GNB-DU.c + +8  + ~"UEID-GNB-DU.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_DU_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB_DU +, +gNB_CU_UE_F1AP_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_GNB_CU_UE_F1AP_ID +, + +20 { +ATF_POINTER +, 1, +off£tof +( +UEID_GNB_DU +, +¿n_UEID +), + +21 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +23 & +a¢_DEF_RANUEID +, + +30 cÚ¡  + ga¢_MAP_UEID_GNB_DU_oms_1 +[] = { 1 }; + +31 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_DU_gs_1 +[] = { + +32 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +34 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_GNB_DU_g2–_1 +[] = { + +35 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +36 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 } + +38 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_GNB_DU_¥ecs_1 + = { + +39 ( +UEID_GNB_DU +), + +40 +off£tof +( +UEID_GNB_DU +, +_a¢_ùx +), + +41 +a¢_MAP_UEID_GNB_DU_g2–_1 +, + +43 +a¢_MAP_UEID_GNB_DU_oms_1 +, + +47 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB_DU + = { + +50 & +a¢_OP_SEQUENCE +, + +51 +a¢_DEF_UEID_GNB_DU_gs_1 +, + +52 ( +a¢_DEF_UEID_GNB_DU_gs_1 +) + +53 /( +a¢_DEF_UEID_GNB_DU_gs_1 +[0]), + +54 +a¢_DEF_UEID_GNB_DU_gs_1 +, + +55 ( +a¢_DEF_UEID_GNB_DU_gs_1 +) + +56 /( +a¢_DEF_UEID_GNB_DU_gs_1 +[0]), + +57 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +58 +a¢_MBR_UEID_GNB_DU_1 +, + +60 & +a¢_SPC_UEID_GNB_DU_¥ecs_1 + + + @UEID-GNB.c + +8  + ~"UEID-GNB.h +" + +10  + ~"UEID-GNB-CU-F1AP-ID-Li¡.h +" + +11  + ~"UEID-GNB-CU-CP-E1AP-ID-Li¡.h +" + +12  + ~"Glob®GNB-ID.h +" + +13  + ~"Glob®NGRANNodeID.h +" + +14 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_GNB_1 +[] = { + +15 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB +, +amf_UE_NGAP_ID +), + +16 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +18 & +a¢_DEF_AMF_UE_NGAP_ID +, + +24 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_GNB +, +guami +), + +25 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +27 & +a¢_DEF_GUAMI +, + +33 { +ATF_POINTER +, 6, +off£tof +( +UEID_GNB +, +gNB_CU_UE_F1AP_ID_Li¡ +), + +34 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +36 & +a¢_DEF_UEID_GNB_CU_F1AP_ID_Li¡ +, + +42 { +ATF_POINTER +, 5, +off£tof +( +UEID_GNB +, +gNB_CU_CP_UE_E1AP_ID_Li¡ +), + +43 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +45 & +a¢_DEF_UEID_GNB_CU_CP_E1AP_ID_Li¡ +, + +51 { +ATF_POINTER +, 4, +off£tof +( +UEID_GNB +, +¿n_UEID +), + +52 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +54 & +a¢_DEF_RANUEID +, + +60 { +ATF_POINTER +, 3, +off£tof +( +UEID_GNB +, +m_NG_RAN_UE_XnAP_ID +), + +61 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +63 & +a¢_DEF_NG_RANnodeUEXnAPID +, + +69 { +ATF_POINTER +, 2, +off£tof +( +UEID_GNB +, +glob®GNB_ID +), + +70 ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), + +72 & +a¢_DEF_Glob®GNB_ID +, + +78 { +ATF_POINTER +, 1, +off£tof +( +UEID_GNB +, +glob®NG_RANNode_ID +), + +79 ( +ASN_TAG_CLASS_CONTEXT + | (7 << 2)), + +81 & +a¢_DEF_Glob®NGRANNodeID +, + +88 cÚ¡  + ga¢_MAP_UEID_GNB_oms_1 +[] = { 2, 3, 4, 5, 6, 7 }; + +89 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_GNB_gs_1 +[] = { + +90 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +92 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_GNB_g2–_1 +[] = { + +93 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +94 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +95 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +96 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +97 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +98 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 }, + +99 { ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), 6, 0, 0 }, + +100 { ( +ASN_TAG_CLASS_CONTEXT + | (7 << 2)), 7, 0, 0 } + +102 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_GNB_¥ecs_1 + = { + +103 ( +UEID_GNB +), + +104 +off£tof +( +UEID_GNB +, +_a¢_ùx +), + +105 +a¢_MAP_UEID_GNB_g2–_1 +, + +107 +a¢_MAP_UEID_GNB_oms_1 +, + +111 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_GNB + = { + +114 & +a¢_OP_SEQUENCE +, + +115 +a¢_DEF_UEID_GNB_gs_1 +, + +116 ( +a¢_DEF_UEID_GNB_gs_1 +) + +117 /( +a¢_DEF_UEID_GNB_gs_1 +[0]), + +118 +a¢_DEF_UEID_GNB_gs_1 +, + +119 ( +a¢_DEF_UEID_GNB_gs_1 +) + +120 /( +a¢_DEF_UEID_GNB_gs_1 +[0]), + +121 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +122 +a¢_MBR_UEID_GNB_1 +, + +124 & +a¢_SPC_UEID_GNB_¥ecs_1 + + + @UEID-NG-ENB-DU.c + +8  + ~"UEID-NG-ENB-DU.h +" + +10 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_NG_ENB_DU_1 +[] = { + +11 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_NG_ENB_DU +, +ng_eNB_CU_UE_W1AP_ID +), + +12 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +14 & +a¢_DEF_NGENB_CU_UE_W1AP_ID +, + +21 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_NG_ENB_DU_gs_1 +[] = { + +22 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +24 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_NG_ENB_DU_g2–_1 +[] = { + +25 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 } + +27 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_NG_ENB_DU_¥ecs_1 + = { + +28 ( +UEID_NG_ENB_DU +), + +29 +off£tof +( +UEID_NG_ENB_DU +, +_a¢_ùx +), + +30 +a¢_MAP_UEID_NG_ENB_DU_g2–_1 +, + +35 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_NG_ENB_DU + = { + +38 & +a¢_OP_SEQUENCE +, + +39 +a¢_DEF_UEID_NG_ENB_DU_gs_1 +, + +40 ( +a¢_DEF_UEID_NG_ENB_DU_gs_1 +) + +41 /( +a¢_DEF_UEID_NG_ENB_DU_gs_1 +[0]), + +42 +a¢_DEF_UEID_NG_ENB_DU_gs_1 +, + +43 ( +a¢_DEF_UEID_NG_ENB_DU_gs_1 +) + +44 /( +a¢_DEF_UEID_NG_ENB_DU_gs_1 +[0]), + +45 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +46 +a¢_MBR_UEID_NG_ENB_DU_1 +, + +48 & +a¢_SPC_UEID_NG_ENB_DU_¥ecs_1 + + + @UEID-NG-ENB.c + +8  + ~"UEID-NG-ENB.h +" + +10  + ~"Glob®NgENB-ID.h +" + +11  + ~"Glob®NGRANNodeID.h +" + +12 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_NG_ENB_1 +[] = { + +13 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_NG_ENB +, +amf_UE_NGAP_ID +), + +14 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +16 & +a¢_DEF_AMF_UE_NGAP_ID +, + +22 { +ATF_NOFLAGS +, 0, +off£tof +( +UEID_NG_ENB +, +guami +), + +23 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +25 & +a¢_DEF_GUAMI +, + +31 { +ATF_POINTER +, 4, +off£tof +( +UEID_NG_ENB +, +ng_eNB_CU_UE_W1AP_ID +), + +32 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +34 & +a¢_DEF_NGENB_CU_UE_W1AP_ID +, + +40 { +ATF_POINTER +, 3, +off£tof +( +UEID_NG_ENB +, +m_NG_RAN_UE_XnAP_ID +), + +41 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +43 & +a¢_DEF_NG_RANnodeUEXnAPID +, + +49 { +ATF_POINTER +, 2, +off£tof +( +UEID_NG_ENB +, +glob®NgENB_ID +), + +50 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +52 & +a¢_DEF_Glob®NgENB_ID +, + +58 { +ATF_POINTER +, 1, +off£tof +( +UEID_NG_ENB +, +glob®NG_RANNode_ID +), + +59 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +61 & +a¢_DEF_Glob®NGRANNodeID +, + +68 cÚ¡  + ga¢_MAP_UEID_NG_ENB_oms_1 +[] = { 2, 3, 4, 5 }; + +69 cÚ¡ +b”_Žv_g_t + + ga¢_DEF_UEID_NG_ENB_gs_1 +[] = { + +70 ( +ASN_TAG_CLASS_UNIVERSAL + | (16 << 2)) + +72 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_NG_ENB_g2–_1 +[] = { + +73 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +74 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +75 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +76 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +77 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +78 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 } + +80 +a¢_SEQUENCE_¥ecifics_t + + ga¢_SPC_UEID_NG_ENB_¥ecs_1 + = { + +81 ( +UEID_NG_ENB +), + +82 +off£tof +( +UEID_NG_ENB +, +_a¢_ùx +), + +83 +a¢_MAP_UEID_NG_ENB_g2–_1 +, + +85 +a¢_MAP_UEID_NG_ENB_oms_1 +, + +89 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID_NG_ENB + = { + +92 & +a¢_OP_SEQUENCE +, + +93 +a¢_DEF_UEID_NG_ENB_gs_1 +, + +94 ( +a¢_DEF_UEID_NG_ENB_gs_1 +) + +95 /( +a¢_DEF_UEID_NG_ENB_gs_1 +[0]), + +96 +a¢_DEF_UEID_NG_ENB_gs_1 +, + +97 ( +a¢_DEF_UEID_NG_ENB_gs_1 +) + +98 /( +a¢_DEF_UEID_NG_ENB_gs_1 +[0]), + +99 { 0, 0, +SEQUENCE_cÚ¡¿št + }, + +100 +a¢_MBR_UEID_NG_ENB_1 +, + +102 & +a¢_SPC_UEID_NG_ENB_¥ecs_1 + + + @UEID.c + +8  + ~"UEID.h +" + +10  + ~"UEID-GNB.h +" + +11  + ~"UEID-GNB-DU.h +" + +12  + ~"UEID-GNB-CU-UP.h +" + +13  + ~"UEID-NG-ENB.h +" + +14  + ~"UEID-NG-ENB-DU.h +" + +15  + ~"UEID-EN-GNB.h +" + +16  + ~"UEID-ENB.h +" + +17 +a¢_³r_cÚ¡¿šts_t + +a¢_PER_ty³_UEID_cÚ¡r_1 + + gCC_NOTUSED + = { + +18 { +APC_CONSTRAINED + | +APC_EXTENSIBLE +, 3, 3, 0, 6 } , + +19 { +APC_UNCONSTRAINED +, -1, -1, 0, 0 }, + +22 +a¢_TYPE_memb”_t + + ga¢_MBR_UEID_1 +[] = { + +23 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +gNB_UEID +), + +24 ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), + +26 & +a¢_DEF_UEID_GNB +, + +32 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +gNB_DU_UEID +), + +33 ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), + +35 & +a¢_DEF_UEID_GNB_DU +, + +41 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +gNB_CU_UP_UEID +), + +42 ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), + +44 & +a¢_DEF_UEID_GNB_CU_UP +, + +50 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +ng_eNB_UEID +), + +51 ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), + +53 & +a¢_DEF_UEID_NG_ENB +, + +59 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +ng_eNB_DU_UEID +), + +60 ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), + +62 & +a¢_DEF_UEID_NG_ENB_DU +, + +68 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +’_gNB_UEID +), + +69 ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), + +71 & +a¢_DEF_UEID_EN_GNB +, + +77 { +ATF_POINTER +, 0, +off£tof +( +UEID +, +choiû +. +eNB_UEID +), + +78 ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), + +80 & +a¢_DEF_UEID_ENB +, + +87 cÚ¡ +a¢_TYPE_g2memb”_t + + ga¢_MAP_UEID_g2–_1 +[] = { + +88 { ( +ASN_TAG_CLASS_CONTEXT + | (0 << 2)), 0, 0, 0 }, + +89 { ( +ASN_TAG_CLASS_CONTEXT + | (1 << 2)), 1, 0, 0 }, + +90 { ( +ASN_TAG_CLASS_CONTEXT + | (2 << 2)), 2, 0, 0 }, + +91 { ( +ASN_TAG_CLASS_CONTEXT + | (3 << 2)), 3, 0, 0 }, + +92 { ( +ASN_TAG_CLASS_CONTEXT + | (4 << 2)), 4, 0, 0 }, + +93 { ( +ASN_TAG_CLASS_CONTEXT + | (5 << 2)), 5, 0, 0 }, + +94 { ( +ASN_TAG_CLASS_CONTEXT + | (6 << 2)), 6, 0, 0 } + +96 +a¢_CHOICE_¥ecifics_t + + ga¢_SPC_UEID_¥ecs_1 + = { + +97 ( +UEID +), + +98 +off£tof +( +UEID +, +_a¢_ùx +), + +99 +off£tof +( +UEID +, +´e£Á +), + +100 ((( +UEID + *)0)-> +´e£Á +), + +101 +a¢_MAP_UEID_g2–_1 +, + +106 +a¢_TYPE_desütÜ_t + + ga¢_DEF_UEID + = { + +109 & +a¢_OP_CHOICE +, + +114 { 0, & +a¢_PER_ty³_UEID_cÚ¡r_1 +, +CHOICE_cÚ¡¿št + }, + +115 +a¢_MBR_UEID_1 +, + +117 & +a¢_SPC_UEID_¥ecs_1 + + + @asn_SEQUENCE_OF.c + +5  + ~ + +6  + ~ + +8  + $A_SEQUENCE_OF +(è + ta¢_£qu’û +; + +11 + $a¢_£qu’û_d– +(* +a¢_£qu’û_of_x +,  +numb” +,  +_do_ä“ +) { + +12 +a¢_£qu’û + * +as + = (a¢_£qu’û *) +a¢_£qu’û_of_x +; + +14 if( +as +) { + +15 * +±r +; + +16  +n +; + +18 if( +numb” + < 0 ||‚umb” >ð +as +-> +couÁ +) + +21 if( +_do_ä“ + && +as +-> +ä“ +) { + +22 +±r + = +as +-> +¬¿y +[ +numb” +]; + +24 +±r + = 0; + +30 -- +as +-> +couÁ +; + +31  +n + = +numb” +;‚ < +as +-> +couÁ +;‚++) + +32 +as +-> +¬¿y +[ +n +] =‡s->array[n+1]; + +38 if( +±r +è +as +-> + `ä“ +(ptr); + +40 + } +} + + @asn_SET_OF.c + +5  + ~ + +6  + ~ + +7  + ~<”ºo.h +> + +13 + $a¢_£t_add +(* +a¢_£t_of_x +, * +±r +) { + +14 +a¢_ªÚymous_£t_ + * +as + = + `_A_SET_FROM_VOID +( +a¢_£t_of_x +); + +16 if( +as + =ð0 || +±r + == 0) { + +17 +”ºo + = +EINVAL +; + +24 if( +as +-> +couÁ + =ðas-> +size +) { + +25  +_Ãwsize + = +as +-> +size + ? (as->size << 1) : 4; + +26 * +_Ãw_¬r +; + +27 +_Ãw_¬r + = + `REALLOC +( +as +-> +¬¿y +, +_Ãwsize + * (as->array[0])); + +28 if( +_Ãw_¬r +) { + +29 +as +-> +¬¿y + = (**) +_Ãw_¬r +; + +30 +as +-> +size + = +_Ãwsize +; + +37 +as +-> +¬¿y +[as-> +couÁ +++] = +±r +; + +40 + } +} + +43 + $a¢_£t_d– +(* +a¢_£t_of_x +,  +numb” +,  +_do_ä“ +) { + +44 +a¢_ªÚymous_£t_ + * +as + = + `_A_SET_FROM_VOID +( +a¢_£t_of_x +); + +46 if( +as +) { + +47 * +±r +; + +48 if( +numb” + < 0 ||‚umb” >ð +as +-> +couÁ +) + +51 if( +_do_ä“ + && +as +-> +ä“ +) { + +52 +±r + = +as +-> +¬¿y +[ +numb” +]; + +54 +±r + = 0; + +57 +as +-> +¬¿y +[ +numb” +] =‡s->¬¿y[--as-> +couÁ +]; + +63 if( +±r +è +as +-> + `ä“ +(ptr); + +65 + } +} + +71 + $a¢_£t_em±y +(* +a¢_£t_of_x +) { + +72 +a¢_ªÚymous_£t_ + * +as + = + `_A_SET_FROM_VOID +( +a¢_£t_of_x +); + +74 if( +as +) { + +75 if( +as +-> +¬¿y +) { + +76 if( +as +-> +ä“ +) { + +77  +as +-> +couÁ +--) + +78 +as +-> + `ä“ +×s-> +¬¿y +[as-> +couÁ +]); + +80 + `FREEMEM +( +as +-> +¬¿y +); + +81 +as +-> +¬¿y + = 0; + +83 +as +-> +couÁ + = 0; + +84 +as +-> +size + = 0; + +87 + } +} + + @asn_application.c + +5  + ~ + +6  + ~ + +7  + ~<”ºo.h +> + +9  +a¢_’c_rv®_t + +a¢_’code_š‹º® +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +10 +a¢_Œªsãr_syÁax + +syÁax +, + +11 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +12 cÚ¡ * +¥Œ +, + +13 +a¢_­p_cÚsume_by‹s_f + * +ÿÎback +, + +14 * +ÿÎback_key +); + +17  + sÿÎback_couÁ_by‹s_key + { + +18 +a¢_­p_cÚsume_by‹s_f + * + mÿÎback +; + +19 * + mÿÎback_key +; + +20 +size_t + + mcompu‹d_size +; + +27 + $ÿÎback_couÁ_by‹s_cb +(cÚ¡ * +d©a +, +size_t + +size +, * +keyp +) { + +28  +ÿÎback_couÁ_by‹s_key + * +key + = +keyp +; + +29  +»t +; + +31 +»t + = +key +-> + `ÿÎback +( +d©a +, +size +, key-> +ÿÎback_key +); + +32 if( +»t + >= 0) { + +33 +key +-> +compu‹d_size + +ð +size +; + +36  +»t +; + +37 + } +} + +39  + sov”run_’cod”_key + { + +40 * + mbufãr +; + +41 +size_t + + mbufãr_size +; + +42 +size_t + + mcompu‹d_size +; + +45  + sdyÇmic_’cod”_key + { + +46 * + mbufãr +; + +47 +size_t + + mbufãr_size +; + +48 +size_t + + mcompu‹d_size +; + +51  + sÿÎback_çžu»_ÿtch_key + { + +52 +a¢_­p_cÚsume_by‹s_f + * + mÿÎback +; + +53 * + mÿÎback_key +; + +54  + mÿÎback_çžed +; + +62 + $ov”run_’cod”_cb +(cÚ¡ * +d©a +, +size_t + +size +, * +keyp +) { + +63  +ov”run_’cod”_key + * +key + = +keyp +; + +65 if( +key +-> +compu‹d_size + + +size + > key-> +bufãr_size +) { + +70 +key +-> +bufãr_size + = 0; + +72 + `memýy +((*) +key +-> +bufãr + + key-> +compu‹d_size +, +d©a +, +size +); + +74 +key +-> +compu‹d_size + +ð +size +; + +77 + } +} + +84 + $dyÇmic_’cod”_cb +(cÚ¡ * +d©a +, +size_t + +size +, * +keyp +) { + +85  +dyÇmic_’cod”_key + * +key + = +keyp +; + +87 if( +key +-> +bufãr +) { + +88 if( +key +-> +compu‹d_size + + +size + >ðkey-> +bufãr_size +) { + +89 * +p +; + +90 +size_t + +Ãw_size + = +key +-> +bufãr_size +; + +93 +Ãw_size + *= 2; + +94 }  +Ãw_size + <ð +key +-> +compu‹d_size + + +size +); + +96 +p + = + `REALLOC +( +key +-> +bufãr +, +Ãw_size +); + +97 if( +p +) { + +98 +key +-> +bufãr + = +p +; + +99 +key +-> +bufãr_size + = +Ãw_size +; + +101 + `FREEMEM +( +key +-> +bufãr +); + +102 +key +-> +bufãr + = 0; + +103 +key +-> +bufãr_size + = 0; + +104 +key +-> +compu‹d_size + +ð +size +; + +108 + `memýy +((*) +key +-> +bufãr + + key-> +compu‹d_size +, +d©a +, +size +); + +111 +key +-> +compu‹d_size + +ð +size +; + +114 + } +} + +120 + $ÿÎback_çžu»_ÿtch_cb +(cÚ¡ * +d©a +, +size_t + +size +, * +keyp +) { + +121  +ÿÎback_çžu»_ÿtch_key + * +key + = +keyp +; + +122  +»t +; + +124 +»t + = +key +-> + `ÿÎback +( +d©a +, +size +, key-> +ÿÎback_key +); + +125 if( +»t + < 0) { + +126 +key +-> +ÿÎback_çžed + = 1; + +129  +»t +; + +130 + } +} + +132 +a¢_’c_rv®_t + + +133 + $a¢_’code +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +134 +a¢_Œªsãr_syÁax + +syÁax +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +135 cÚ¡ * +¥Œ +, +a¢_­p_cÚsume_by‹s_f + * +ÿÎback +, * +ÿÎback_key +) { + +136  +ÿÎback_çžu»_ÿtch_key + +cb_key +; + +137 +a¢_’c_rv®_t + +” + = {0,0,0}; + +139 if(! +ÿÎback +) { + +140 +”ºo + = +EINVAL +; + +141 +ASN__ENCODE_FAILED +; + +144 +cb_key +. +ÿÎback + = callback; + +145 +cb_key +. +ÿÎback_key + = callback_key; + +146 +cb_key +. +ÿÎback_çžed + = 0; + +148 +” + = + `a¢_’code_š‹º® +( +Ýt_codec_ùx +, +syÁax +, +td +, +¥Œ +, + +149 +ÿÎback_çžu»_ÿtch_cb +, & +cb_key +); + +150 if( +cb_key +. +ÿÎback_çžed +) { + +151 + `as£¹ +( +” +. +’coded + == -1); + +152 + `as£¹ +( +”ºo + =ð +EBADF +); + +153 +”ºo + = +EIO +; + +156  +” +; + +157 + } +} + +159 +a¢_’c_rv®_t + + +160 + $a¢_’code_to_bufãr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +161 +a¢_Œªsãr_syÁax + +syÁax +, + +162 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +163 * +bufãr +, +size_t + +bufãr_size +) { + +164  +ov”run_’cod”_key + +buf_key +; + +165 +a¢_’c_rv®_t + +” + = {0,0,0}; + +167 if( +bufãr_size + > 0 && ! +bufãr +) { + +168 +”ºo + = +EINVAL +; + +169 +ASN__ENCODE_FAILED +; + +172 +buf_key +. +bufãr + = buffer; + +173 +buf_key +. +bufãr_size + = buffer_size; + +174 +buf_key +. +compu‹d_size + = 0; + +176 +” + = + `a¢_’code_š‹º® +( +Ýt_codec_ùx +, +syÁax +, +td +, +¥Œ +, + +177 +ov”run_’cod”_cb +, & +buf_key +); + +179 if( +” +. +’coded + >ð0 && ( +size_t +ër.’coded !ð +buf_key +. +compu‹d_size +) { + +180 + `ASN_DEBUG +("a¢_’code(è»tuºed %" +ASN_PRI_SSIZE + + +181 " y‘…roduûd %" +ASN_PRI_SIZE + " bytes", + +182 +” +. +’coded +, +buf_key +. +compu‹d_size +); + +183 + `as£¹ +( +” +. +’coded + < 0 || ( +size_t +ër.’coded =ð +buf_key +. +compu‹d_size +); + +186  +” +; + +187 + } +} + +189 +a¢_’code_to_Ãw_bufãr_»suÉ_t + + +190 + $a¢_’code_to_Ãw_bufãr +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +191 +a¢_Œªsãr_syÁax + +syÁax +, + +192 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +) { + +193  +dyÇmic_’cod”_key + +buf_key +; + +194 +a¢_’code_to_Ãw_bufãr_»suÉ_t + +»s +; + +196 +buf_key +. +bufãr_size + = 16; + +197 +buf_key +. +bufãr + = + `MALLOC +(buf_key. +bufãr_size +); + +198 +buf_key +. +compu‹d_size + = 0; + +200 +»s +. +»suÉ + = + `a¢_’code_š‹º® +( +Ýt_codec_ùx +, +syÁax +, +td +, +¥Œ +, + +201 +dyÇmic_’cod”_cb +, & +buf_key +); + +203 if( +»s +. +»suÉ +. +’coded + >= 0 + +204 && ( +size_t +) +»s +. +»suÉ +. +’coded + !ð +buf_key +. +compu‹d_size +) { + +205 + `ASN_DEBUG +("a¢_’code(è»tuºed %" +ASN_PRI_SSIZE + + +206 " y‘…roduûd %" +ASN_PRI_SIZE + " bytes", + +207 +»s +. +»suÉ +. +’coded +, +buf_key +. +compu‹d_size +); + +208 + `as£¹ +( +»s +. +»suÉ +. +’coded + < 0 + +209 || ( +size_t +) +»s +. +»suÉ +. +’coded + =ð +buf_key +. +compu‹d_size +); + +212 +»s +. +bufãr + = +buf_key +.buffer; + +215 if( +»s +. +bufãr +) { + +216 + `as£¹ +( +buf_key +. +compu‹d_size + < buf_key. +bufãr_size +); + +217 ((*) +»s +. +bufãr +)[ +buf_key +. +compu‹d_size +] = '\0'; + +220  +»s +; + +221 + } +} + +223  +a¢_’c_rv®_t + + +224 + $a¢_’code_š‹º® +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +225 +a¢_Œªsãr_syÁax + +syÁax +, + +226 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +227 +a¢_­p_cÚsume_by‹s_f + * +ÿÎback +, * +ÿÎback_key +) { + +228 +a¢_’c_rv®_t + +” + = {0,0,0}; + +229 +x”_’cod”_æags_e + +x”_æags + = +XER_F_CANONICAL +; + +231 () +Ýt_codec_ùx +; + +233 if(! +td + || ! +¥Œ +) { + +234 +”ºo + = +EINVAL +; + +235 +ASN__ENCODE_FAILED +; + +238  +syÁax +) { + +239  +ATS_NONSTANDARD_PLAINTEXT +: + +240 if( +td +-> +Ý +-> +´št_¡ruù +) { + +241  +ÿÎback_couÁ_by‹s_key + +cb_key +; + +242 +cb_key +. +ÿÎback + = callback; + +243 +cb_key +. +ÿÎback_key + = callback_key; + +244 +cb_key +. +compu‹d_size + = 0; + +245 if( +td +-> +Ý +-> + `´št_¡ruù +Ñd, +¥Œ +, 1, +ÿÎback_couÁ_by‹s_cb +, + +246 & +cb_key +) + +248 || + `ÿÎback_couÁ_by‹s_cb +("\n", 1, & +cb_key +) < 0) { + +249 +”ºo + = +EBADF +; + +250 +” +. +’coded + = -1; + +251 +” +. +çžed_ty³ + = +td +; + +252 +” +. +¡ruùu»_±r + = +¥Œ +; + +254 +” +. +’coded + = +cb_key +. +compu‹d_size +; + +255 +” +. +çžed_ty³ + = 0; + +256 +” +. +¡ruùu»_±r + = 0; + +259 +”ºo + = +ENOENT +; + +260 +ASN__ENCODE_FAILED +; + +264  +ATS_RANDOM +: + +265 +”ºo + = +ENOENT +; + +266 +ASN__ENCODE_FAILED +; + +268  +ATS_BER +: + +271  +ATS_DER +: + +272 if( +td +-> +Ý +-> +d”_’cod” +) { + +273 +” + = + `d”_’code +( +td +, +¥Œ +, +ÿÎback +, +ÿÎback_key +); + +274 if( +” +. +’coded + == -1) { + +275 if( +” +. +çžed_ty³ + &&ƒr.çžed_ty³-> +Ý +-> +d”_’cod” +) { + +276 +”ºo + = +EBADF +; + +278 +”ºo + = +ENOENT +; + +282 +”ºo + = +ENOENT +; + +283 +ASN__ENCODE_FAILED +; + +286  +ATS_CER +: + +287 +”ºo + = +ENOENT +; + +288 +ASN__ENCODE_FAILED +; + +290 #ifdeà +ASN_DISABLE_OER_SUPPORT + + +291  +ATS_BASIC_OER +: + +292  +ATS_CANONICAL_OER +: + +293 +”ºo + = +ENOENT +; + +294 +ASN__ENCODE_FAILED +; + +297  +ATS_BASIC_OER +: + +300  +ATS_CANONICAL_OER +: + +301 if( +td +-> +Ý +-> +Ûr_’cod” +) { + +302 +” + = + `Ûr_’code +( +td +, +¥Œ +, +ÿÎback +, +ÿÎback_key +); + +303 if( +” +. +’coded + == -1) { + +304 if( +” +. +çžed_ty³ + &&ƒr.çžed_ty³-> +Ý +-> +Ûr_’cod” +) { + +305 +”ºo + = +EBADF +; + +307 +”ºo + = +ENOENT +; + +311 +”ºo + = +ENOENT +; + +312 +ASN__ENCODE_FAILED +; + +317 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +318  +ATS_UNALIGNED_BASIC_PER +: + +319  +ATS_UNALIGNED_CANONICAL_PER +: + +320  +ATS_ALIGNED_BASIC_PER +: + +321  +ATS_ALIGNED_CANONICAL_PER +: + +322 +”ºo + = +ENOENT +; + +323 +ASN__ENCODE_FAILED +; + +326  +ATS_UNALIGNED_BASIC_PER +: + +329  +ATS_UNALIGNED_CANONICAL_PER +: + +330 if( +td +-> +Ý +-> +u³r_’cod” +) { + +331 +” + = + `u³r_’code +( +td +, 0, +¥Œ +, +ÿÎback +, +ÿÎback_key +); + +332 if( +” +. +’coded + == -1) { + +333 if( +” +. +çžed_ty³ + &&ƒr.çžed_ty³-> +Ý +-> +u³r_’cod” +) { + +334 +”ºo + = +EBADF +; + +336 +”ºo + = +ENOENT +; + +339 + `ASN_DEBUG +("Com¶‘’coded iÀ%ld b™s", () +” +. +’coded +); + +340 if( +” +. +’coded + == 0) { + +342 if( + `ÿÎback +("\0", 1, +ÿÎback_key +) < 0) { + +343 +”ºo + = +EBADF +; + +344 +ASN__ENCODE_FAILED +; + +346 +” +. +’coded + = 8; + +349 +” +. +’coded + = (er.encoded + 7) >> 3; + +352 +”ºo + = +ENOENT +; + +353 +ASN__ENCODE_FAILED +; + +356  +ATS_ALIGNED_BASIC_PER +: + +359  +ATS_ALIGNED_CANONICAL_PER +: + +360 if( +td +-> +Ý +-> +­”_’cod” +) { + +361 +” + = + `­”_’code +( +td +, 0, +¥Œ +, +ÿÎback +, +ÿÎback_key +); + +362 if( +” +. +’coded + == -1) { + +363 if( +” +. +çžed_ty³ + &&ƒr.çžed_ty³-> +Ý +-> +­”_’cod” +) { + +364 +”ºo + = +EBADF +; + +366 +”ºo + = +ENOENT +; + +369 + `ASN_DEBUG +("Com¶‘’coded iÀ%ld b™s", () +” +. +’coded +); + +370 if( +” +. +’coded + == 0) { + +372 if( + `ÿÎback +("\0", 1, +ÿÎback_key +) < 0) { + +373 +”ºo + = +EBADF +; + +374 +ASN__ENCODE_FAILED +; + +376 +” +. +’coded + = 8; + +379 +” +. +’coded + = (er.encoded + 7) >> 3; + +382 +”ºo + = +ENOENT +; + +383 +ASN__ENCODE_FAILED +; + +388  +ATS_BASIC_XER +: + +390 +x”_æags + &ð~ +XER_F_CANONICAL +; + +391 +x”_æags + |ð +XER_F_BASIC +; + +393  +ATS_CANONICAL_XER +: + +394 if( +td +-> +Ý +-> +x”_’cod” +) { + +395 +” + = + `x”_’code +( +td +, +¥Œ +, +x”_æags +, +ÿÎback +, +ÿÎback_key +); + +396 if( +” +. +’coded + == -1) { + +397 if( +” +. +çžed_ty³ + &&ƒr.çžed_ty³-> +Ý +-> +x”_’cod” +) { + +398 +”ºo + = +EBADF +; + +400 +”ºo + = +ENOENT +; + +404 +”ºo + = +ENOENT +; + +405 +ASN__ENCODE_FAILED +; + +410 +”ºo + = +ENOENT +; + +411 +ASN__ENCODE_FAILED +; + +414  +” +; + +415 + } +} + +417 +a¢_dec_rv®_t + + +418 + $a¢_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +419 +a¢_Œªsãr_syÁax + +syÁax +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +420 ** +¥Œ +, cÚ¡ * +bufãr +, +size_t + +size +) { + +421 if(! +td + || !td-> +Ý + || ! +¥Œ + || ( +size + && ! +bufãr +)) { + +422 +ASN__DECODE_FAILED +; + +425  +syÁax +) { + +426  +ATS_CER +: + +427  +ATS_NONSTANDARD_PLAINTEXT +: + +429 +”ºo + = +ENOENT +; + +430 +ASN__DECODE_FAILED +; + +432  +ATS_RANDOM +: + +433 if(! +td +-> +Ý +-> +¿ndom_fžl +) { + +434 +ASN__DECODE_FAILED +; + +436 if( + `a¢_¿ndom_fžl +( +td +, +¥Œ +, 16000) == 0) { + +437 +a¢_dec_rv®_t + +»t + = { +RC_OK +, 0}; + +438  +»t +; + +440 +ASN__DECODE_FAILED +; + +445  +ATS_DER +: + +446  +ATS_BER +: + +447  + `b”_decode +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +); + +449  +ATS_BASIC_OER +: + +450  +ATS_CANONICAL_OER +: + +451 #ifdeà +ASN_DISABLE_OER_SUPPORT + + +452 +”ºo + = +ENOENT +; + +453 +ASN__DECODE_FAILED +; + +455  + `Ûr_decode +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +); + +458  +ATS_UNALIGNED_BASIC_PER +: + +459  +ATS_UNALIGNED_CANONICAL_PER +: + +460 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +461 +”ºo + = +ENOENT +; + +462 +ASN__DECODE_FAILED +; + +464  + `u³r_decode_com¶‘e +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +); + +467  +ATS_ALIGNED_BASIC_PER +: + +468  +ATS_ALIGNED_CANONICAL_PER +: + +469 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +470 +”ºo + = +ENOENT +; + +471 +ASN__DECODE_FAILED +; + +473  + `­”_decode_com¶‘e +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +); + +476  +ATS_BASIC_XER +: + +477  +ATS_CANONICAL_XER +: + +478  + `x”_decode +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +); + +480 + } +} + + @asn_bit_data.c + +6  + ~ + +7  + ~ + +8  + ~ + +14 +a¢_b™_d©a_t + * + +15 + $a¢_b™_d©a_Ãw_cÚtiguous +(cÚ¡ * +d©a +, +size_t + +size_b™s +) { + +16 +size_t + +size_by‹s + = ( +size_b™s + + 7) / 8; + +17 +a¢_b™_d©a_t + * +pd +; + +18 +ušt8_t + * +by‹s +; + +21 +pd + = + `CALLOC +(1, (*pdè+ +size_by‹s + + 1); + +22 if(! +pd +) { + +23  +NULL +; + +25 +by‹s + = (*)(((*) +pd +) + (*pd)); + +26 + `memýy +( +by‹s +, +d©a +, +size_by‹s +); + +27 +by‹s +[ +size_by‹s +] = 0; + +28 +pd +-> +bufãr + = +by‹s +; + +29 +pd +-> +nboff + = 0; + +30 +pd +-> +nb™s + = +size_b™s +; + +32  +pd +; + +33 + } +} + +37 + $a¢_b™_d©a_¡ršg +( +a¢_b™_d©a_t + * +pd +) { + +38  +buf +[2][32]; + +39  +n +; + +40 +n + = (n+1) % 2; + +41 + `¢´štf +( +buf +[ +n +], (buf[n]), + +42 "{m=%" +ASN_PRI_SIZE + " span %" ASN_PRI_SIZE "[%" ASN_PRI_SIZE + +43 "..%" +ASN_PRI_SIZE + "] (%" ASN_PRI_SIZE ")}", + +44 +pd +-> +moved +, (( +ušŒ_t +)Õd-> +bufãr +è& 0xf),…d-> +nboff +,…d-> +nb™s +, + +45 +pd +-> +nb™s + -…d-> +nboff +); + +46  +buf +[ +n +]; + +47 + } +} + +50 + $a¢_g‘_undo +( +a¢_b™_d©a_t + * +pd +,  +nb™s +) { + +51 if(( +ssize_t +) +pd +-> +nboff + < +nb™s +) { + +52 + `as£¹ +(( +ssize_t +) +pd +-> +nboff + < +nb™s +); + +54 +pd +-> +nboff + -ð +nb™s +; + +55 +pd +-> +moved + -ð +nb™s +; + +57 + } +} + +62 +št32_t + + +63 + $a¢_g‘_ãw_b™s +( +a¢_b™_d©a_t + * +pd +,  +nb™s +) { + +64 +size_t + +off +; + +65 +ssize_t + +Æeá +; + +66 +ušt32_t + +accum +; + +67 cÚ¡ +ušt8_t + * +buf +; + +69 if( +nb™s + < 0) + +72 +Æeá + = +pd +-> +nb™s + -…d-> +nboff +; + +73 if( +nb™s + > +Æeá +) { + +74 +št32_t + +žv +, +vh—d +; + +75 if(! +pd +-> +»fžl + || +nb™s + > 31)  -1; + +77 + `ASN_DEBUG +("Obtainhe„est %d bits (want %d)", + +78 () +Æeá +, () +nb™s +); + +79 +žv + = + `a¢_g‘_ãw_b™s +( +pd +, +Æeá +); + +80 if( +žv + < 0)  -1; + +82 if( +pd +-> + `»fžl +(pd)) + +84 +nb™s + -ð +Æeá +; + +85 +vh—d + = + `a¢_g‘_ãw_b™s +( +pd +, +nb™s +); + +87 +žv + = (žv << +nb™s +è| +vh—d +; + +88  +žv +; + +94 if( +pd +-> +nboff + >= 8) { + +95 +pd +-> +bufãr + +ðÕd-> +nboff + >> 3); + +96 +pd +-> +nb™s + -ðÕd-> +nboff + & ~0x07); + +97 +pd +-> +nboff + &= 0x07; + +99 +pd +-> +moved + +ð +nb™s +; + +100 +pd +-> +nboff + +ð +nb™s +; + +101 +off + = +pd +-> +nboff +; + +102 +buf + = +pd +-> +bufãr +; + +107 if( +off + <= 8) + +108 +accum + = +nb™s + ? ( +buf +[0]è>> (8 - +off +) : 0; + +109 if( +off + <= 16) + +110 +accum + = (( +buf +[0] << 8è+ buf[1]è>> (16 - +off +); + +111 if( +off + <= 24) + +112 +accum + = (( +buf +[0] << 16è+ (buf[1] << 8è+ buf[2]è>> (24 - +off +); + +113 if( +off + <= 31) + +114 +accum + = ((( +ušt32_t +) +buf +[0] << 24) + (buf[1] << 16) + +115 + ( +buf +[2] << 8è+ (buf[3])è>> (32 - +off +); + +116 if( +nb™s + <= 31) { + +117 +a¢_b™_d©a_t + +d + = * +pd +; + +119 + `a¢_g‘_undo +(& +d +, +nb™s +); + +123 +accum + = + `a¢_g‘_ãw_b™s +(& +d +, +nb™s + - 24) << 24; + +124 +accum + |ð + `a¢_g‘_ãw_b™s +(& +d +, 24); + +126 + `a¢_g‘_undo +( +pd +, +nb™s +); + +130 +accum + &ð((( +ušt32_t +)1 << +nb™s +) - 1); + +132 + `ASN_DEBUG +(" [PER got %2d<=%2d bits => span %d %+ld[%d..%d]:%02x (%d) => 0x%x]", + +133 () +nb™s +, () +Æeá +, + +134 () +pd +-> +moved +, + +135 ((() +pd +-> +bufãr +) & 0xf), + +136 () +pd +-> +nboff +, (íd-> +nb™s +, + +137 (( +pd +-> +bufãr + !ð +NULL +)?pd->buffer[0]:0), + +138 ()( +pd +-> +nb™s + -…d-> +nboff +), + +139 () +accum +); + +141  +accum +; + +142 + } +} + +148 + $a¢_g‘_mªy_b™s +( +a¢_b™_d©a_t + * +pd +, +ušt8_t + * +d¡ +,  +®right +,  +nb™s +) { + +149 +št32_t + +v®ue +; + +151 if( +®right + && ( +nb™s + & 7)) { + +153 +v®ue + = + `a¢_g‘_ãw_b™s +( +pd +, +nb™s + & 0x07); + +154 if( +v®ue + < 0)  -1; + +155 * +d¡ +++ = +v®ue +; + +156 +nb™s + &= ~7; + +159  +nb™s +) { + +160 if( +nb™s + >= 24) { + +161 +v®ue + = + `a¢_g‘_ãw_b™s +( +pd +, 24); + +162 if( +v®ue + < 0)  -1; + +163 *( +d¡ +++èð +v®ue + >> 16; + +164 *( +d¡ +++èð +v®ue + >> 8; + +165 *( +d¡ +++èð +v®ue +; + +166 +nb™s + -= 24; + +168 +v®ue + = + `a¢_g‘_ãw_b™s +( +pd +, +nb™s +); + +169 if( +v®ue + < 0)  -1; + +170 if( +nb™s + & 7) { + +171 +v®ue + <<ð8 - ( +nb™s + & 7), + +172 +nb™s + += 8 - (nbits & 7); + +173 if( +nb™s + > 24) + +174 * +d¡ +++ = +v®ue + >> 24; + +176 if( +nb™s + > 16) + +177 * +d¡ +++ = +v®ue + >> 16; + +178 if( +nb™s + > 8) + +179 * +d¡ +++ = +v®ue + >> 8; + +180 * +d¡ +++ = +v®ue +; + +186 + } +} + +192 + $a¢_put_ãw_b™s +( +a¢_b™_ou_t + * +po +, +ušt32_t + +b™s +,  +ob™s +) { + +193 +size_t + +off +; + +194 +size_t + +omsk +; + +195 +ušt8_t + * +buf +; + +197 if( +ob™s + <= 0 || obits >= 32)  obits ? -1 : 0; + +199 + `ASN_DEBUG +("[PER…ut %d bits %xo %p+%d bits]", + +200 +ob™s +, () +b™s +, (*) +po +-> +bufãr +, (ío-> +nboff +); + +205 if( +po +-> +nboff + >= 8) { + +206 +po +-> +bufãr + +ðÕo-> +nboff + >> 3); + +207 +po +-> +nb™s + -ðÕo-> +nboff + & ~0x07); + +208 +po +-> +nboff + &= 0x07; + +214 if( +po +-> +nboff + + +ob™s + >…o-> +nb™s +) { + +215 +size_t + +com¶‘e_by‹s +; + +216 if(! +po +-> +bufãr +èpo->bufã¸ðpo-> +tmp¥aû +; + +217 +com¶‘e_by‹s + = ( +po +-> +bufãr + -…o-> +tmp¥aû +); + +218 + `ASN_DEBUG +("[PER output %ld complete + %ld]", + +219 () +com¶‘e_by‹s +, () +po +-> +æushed_by‹s +); + +220 if( +po +-> + `ouut +Õo-> +tmp¥aû +, +com¶‘e_by‹s +,…o-> +Ý_key +) < 0) + +222 if( +po +-> +nboff +) + +223 +po +-> +tmp¥aû +[0] =…o-> +bufãr +[0]; + +224 +po +-> +bufãr + =…o-> +tmp¥aû +; + +225 +po +-> +nb™s + = 8 * Õo-> +tmp¥aû +); + +226 +po +-> +æushed_by‹s + +ð +com¶‘e_by‹s +; + +232 +buf + = +po +-> +bufãr +; + +233 +omsk + = ~((1 << (8 - +po +-> +nboff +)) - 1); + +234 +off + = ( +po +-> +nboff + + +ob™s +); + +237 +b™s + &ð((( +ušt32_t +)1 << +ob™s +) - 1); + +239 + `ASN_DEBUG +("[PER ouˆ%d %u/%x (t=%d,o=%dè%x&%x=%x]", +ob™s +, + +240 () +b™s +, ()bits, + +241 () +po +-> +nboff +, () +off +, + +242 +buf +[0], ()( +omsk +&0xff), + +243 ()( +buf +[0] & +omsk +)); + +245 if( +off + <= 8) + +246 +po +-> +nboff + = +off +, + +247 +b™s + <<ð(8 - +off +), + +248 +buf +[0] = (buf[0] & +omsk +è| +b™s +; + +249 if( +off + <= 16) + +250 +po +-> +nboff + = +off +, + +251 +b™s + <<ð(16 - +off +), + +252 +buf +[0] = (buf[0] & +omsk +è| ( +b™s + >> 8), + +253 +buf +[1] = +b™s +; + +254 if( +off + <= 24) + +255 +po +-> +nboff + = +off +, + +256 +b™s + <<ð(24 - +off +), + +257 +buf +[0] = (buf[0] & +omsk +è| ( +b™s + >> 16), + +258 +buf +[1] = +b™s + >> 8, + +259 +buf +[2] = +b™s +; + +260 if( +off + <= 31) + +261 +po +-> +nboff + = +off +, + +262 +b™s + <<ð(32 - +off +), + +263 +buf +[0] = (buf[0] & +omsk +è| ( +b™s + >> 24), + +264 +buf +[1] = +b™s + >> 16, + +265 +buf +[2] = +b™s + >> 8, + +266 +buf +[3] = +b™s +; + +268 if( + `a¢_put_ãw_b™s +( +po +, +b™s + >> ( +ob™s + - 24), 24))  -1; + +269 if( + `a¢_put_ãw_b™s +( +po +, +b™s +, +ob™s + - 24))  -1; + +272 + `ASN_DEBUG +("[PER out %u/%x => %02x buf+%ld]", + +273 () +b™s +, ()b™s, +buf +[0], + +274 ()( +po +-> +bufãr + -…o-> +tmp¥aû +)); + +277 + } +} + +284 + $a¢_put_mªy_b™s +( +a¢_b™_ou_t + * +po +, cÚ¡ +ušt8_t + * +¤c +,  +nb™s +) { + +286  +nb™s +) { + +287 +ušt32_t + +v®ue +; + +289 if( +nb™s + >= 24) { + +290 +v®ue + = ( +¤c +[0] << 16) | (src[1] << 8) | src[2]; + +291 +¤c + += 3; + +292 +nb™s + -= 24; + +293 if( + `a¢_put_ãw_b™s +( +po +, +v®ue +, 24)) + +296 +v®ue + = +¤c +[0]; + +297 if( +nb™s + > 8) + +298 +v®ue + = (v®u<< 8è| +¤c +[1]; + +299 if( +nb™s + > 16) + +300 +v®ue + = (v®u<< 8è| +¤c +[2]; + +301 if( +nb™s + & 0x07) + +302 +v®ue + >>ð(8 - ( +nb™s + & 0x07)); + +303 if( + `a¢_put_ãw_b™s +( +po +, +v®ue +, +nb™s +)) + +310 + } +} + +314 + $a¢_put_®igÃd_æush +( +a¢_b™_ou_t + * +po +) { + +315 +ušt32_t + +unu£d_b™s + = (0x7 & (8 - ( +po +-> +nboff + & 0x07))); + +316 +size_t + +com¶‘e_by‹s + = + +317 ( +po +-> +bufãr + ?…o->bufã¸-…o-> +tmp¥aû + : 0è+ (Õo-> +nboff + + 7) >> 3); + +319 if( +unu£d_b™s +) { + +320 +po +-> +bufãr +[po-> +nboff + >> 3] &ð~0u << +unu£d_b™s +; + +323 if( +po +-> + `ouut +Õo-> +tmp¥aû +, +com¶‘e_by‹s +,…o-> +Ý_key +) < 0) { + +326 +po +-> +bufãr + =…o-> +tmp¥aû +; + +327 +po +-> +nboff + = 0; + +328 +po +-> +nb™s + = 8 * Õo-> +tmp¥aû +); + +329 +po +-> +æushed_by‹s + +ð +com¶‘e_by‹s +; + +332 + } +} + + @asn_codecs_prim.c + +5  + ~ + +6  + ~ + +7  + ~<”ºo.h +> + +12 +a¢_dec_rv®_t + + +13 + $b”_decode_´im™ive +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +14 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +15 cÚ¡ * +buf_±r +, +size_t + +size +,  +g_mode +) { + +16 +ASN__PRIMITIVE_TYPE_t + * +¡ + = (ASN__PRIMITIVE_TYPE_ˆ*)* +¥Œ +; + +17 +a¢_dec_rv®_t + +rv® +; + +18 +b”_Žv_Ën_t + +Ëngth + = 0; + +23 if( +¡ + =ð +NULL +) { + +24 +¡ + = ( +ASN__PRIMITIVE_TYPE_t + *) + `CALLOC +(1, (*st)); + +25 if( +¡ + =ð +NULL +è +ASN__DECODE_FAILED +; + +26 * +¥Œ + = (*) +¡ +; + +29 + `ASN_DEBUG +("Decoding %s‡s…lain…rimitive (tm=%d)", + +30 +td +-> +Çme +, +g_mode +); + +35 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, 0, +buf_±r +, +size +, + +36 +g_mode +, 0, & +Ëngth +, 0); + +37 if( +rv® +. +code + !ð +RC_OK +) + +38  +rv® +; + +40 + `ASN_DEBUG +("% Ëngth i %d by‹s", +td +-> +Çme +, () +Ëngth +); + +45 +buf_±r + = ((cÚ¡ *)buf_±rè+ +rv® +. +cÚsumed +; + +46 +size + -ð +rv® +. +cÚsumed +; + +47 if( +Ëngth + > ( +b”_Žv_Ën_t +) +size +) { + +48 +rv® +. +code + = +RC_WMORE +; + +49 +rv® +. +cÚsumed + = 0; + +50  +rv® +; + +53 +¡ +-> +size + = () +Ëngth +; + +55 if(( +¡ +-> +size +è!ð( +Ëngth +) + +56 && ( +b”_Žv_Ën_t +) +¡ +-> +size + !ð +Ëngth +) { + +57 +¡ +-> +size + = 0; + +58 +ASN__DECODE_FAILED +; + +61 +¡ +-> +buf + = ( +ušt8_t + *) + `MALLOC +( +Ëngth + + 1); + +62 if(! +¡ +-> +buf +) { + +63 +¡ +-> +size + = 0; + +64 +ASN__DECODE_FAILED +; + +67 + `memýy +( +¡ +-> +buf +, +buf_±r +, +Ëngth +); + +68 +¡ +-> +buf +[ +Ëngth +] = '\0'; + +70 +rv® +. +code + = +RC_OK +; + +71 +rv® +. +cÚsumed + +ð +Ëngth +; + +73 + `ASN_DEBUG +("Took %ld/%ld bytesoƒncode %s", + +74 () +rv® +. +cÚsumed +, + +75 () +Ëngth +, +td +-> +Çme +); + +77  +rv® +; + +78 + } +} + +83 +a¢_’c_rv®_t + + +84 + $d”_’code_´im™ive +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +85  +g_mode +, +b”_Žv_g_t + +g +, + +86 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +87 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +88 cÚ¡ +ASN__PRIMITIVE_TYPE_t + * +¡ + = (cÚ¡ ASN__PRIMITIVE_TYPE_ˆ*) +¥Œ +; + +90 + `ASN_DEBUG +("%s %s‡s‡…rimitiveype (tm=%d)", + +91 +cb +?"Encodšg":"E¡im©šg", +td +-> +Çme +, +g_mode +); + +93 +”v® +. +’coded + = + `d”_wr™e_gs +( +td +, +¡ +-> +size +, +g_mode +, 0, +g +, + +94 +cb +, +­p_key +); + +95 + `ASN_DEBUG +("% wrِg %d", +td +-> +Çme +, () +”v® +. +’coded +); + +96 if( +”v® +. +’coded + == -1) { + +97 +”v® +. +çžed_ty³ + = +td +; + +98 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +99  +”v® +; + +102 if( +cb + && +¡ +-> +buf +) { + +103 if( + `cb +( +¡ +-> +buf +, st-> +size +, +­p_key +) < 0) { + +104 +”v® +. +’coded + = -1; + +105 +”v® +. +çžed_ty³ + = +td +; + +106 +”v® +. +¡ruùu»_±r + = +¥Œ +; + +107  +”v® +; + +110 + `as£¹ +( +¡ +-> +buf + || st-> +size + == 0); + +113 +”v® +. +’coded + +ð +¡ +-> +size +; + +114 + `ASN__ENCODED_OK +( +”v® +); + +115 + } +} + +118 + $ASN__PRIMITIVE_TYPE_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +119 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +120 +ASN__PRIMITIVE_TYPE_t + * +¡ + = (ASN__PRIMITIVE_TYPE_ˆ*) +¥Œ +; + +122 if(! +td + || ! +¥Œ +) + +125 + `ASN_DEBUG +("F»ešg % a ¨´im™ivty³", +td +-> +Çme +); + +127 if( +¡ +-> +buf +) + +128 + `FREEMEM +( +¡ +-> +buf +); + +130  +m‘hod +) { + +131  +ASFM_FREE_EVERYTHING +: + +132 + `FREEMEM +( +¥Œ +); + +134  +ASFM_FREE_UNDERLYING +: + +136  +ASFM_FREE_UNDERLYING_AND_RESET +: + +137 + `mem£t +( +¥Œ +, 0, ( +ASN__PRIMITIVE_TYPE_t +)); + +140 + } +} + +146  + sxdp_¬g_s + { + +147 cÚ¡ +a¢_TYPE_desütÜ_t + * + mty³_desütÜ +; + +148 * + m¡ruù_key +; + +149 +x”_´im™ive_body_decod”_f + * + m´im_body_decod” +; + +150  + mdecoded_som‘hšg +; + +151  + mwªt_mÜe +; + +160 + $x”_decode__uÃx³ùed_g +(* +key +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +161  +xdp_¬g_s + * +¬g + = (xdp_¬g_ *) +key +; + +162 +x”_pbd_rv® + +b»t +; + +167 + `as£¹ +( +chunk_size + && ((cÚ¡ *) +chunk_buf +)[0] == 0x3c); + +172 if( +¬g +-> +decoded_som‘hšg +) + +175 +b»t + = +¬g +-> + `´im_body_decod” +×rg-> +ty³_desütÜ +, + +176 +¬g +-> +¡ruù_key +, +chunk_buf +, +chunk_size +); + +177  +b»t +) { + +178  +XPBD_SYSTEM_FAILURE +: + +179  +XPBD_DECODER_LIMIT +: + +180  +XPBD_BROKEN_ENCODING +: + +182  +XPBD_BODY_CONSUMED +: + +184 +¬g +-> +decoded_som‘hšg + = 1; + +186  +XPBD_NOT_BODY_IGNORE +: + +191 + } +} + +193  +ssize_t + + +194 + $x”_decode__´im™ive_body +(* +key +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +,  +have_mÜe +) { + +195  +xdp_¬g_s + * +¬g + = (xdp_¬g_ *) +key +; + +196 +x”_pbd_rv® + +b»t +; + +197 +size_t + +Ëad_w¥_size +; + +199 if( +¬g +-> +decoded_som‘hšg +) { + +200 if( + `x”_wh™e¥aû_¥ª +( +chunk_buf +, +chunk_size +) == chunk_size) { + +206  +chunk_size +; + +214 if(! +have_mÜe +) { + +223 +¬g +-> +wªt_mÜe + = 1; + +227 +Ëad_w¥_size + = + `x”_wh™e¥aû_¥ª +( +chunk_buf +, +chunk_size +); + +228 +chunk_buf + = (cÚ¡ *)chunk_buà+ +Ëad_w¥_size +; + +229 +chunk_size + -ð +Ëad_w¥_size +; + +231 +b»t + = +¬g +-> + `´im_body_decod” +×rg-> +ty³_desütÜ +, + +232 +¬g +-> +¡ruù_key +, +chunk_buf +, +chunk_size +); + +233  +b»t +) { + +234  +XPBD_SYSTEM_FAILURE +: + +235  +XPBD_DECODER_LIMIT +: + +236  +XPBD_BROKEN_ENCODING +: + +238  +XPBD_BODY_CONSUMED +: + +240 +¬g +-> +decoded_som‘hšg + = 1; + +242  +XPBD_NOT_BODY_IGNORE +: + +243  +Ëad_w¥_size + + +chunk_size +; + +247 + } +} + +250 +a¢_dec_rv®_t + + +251 + $x”_decode_´im™ive +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +252 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +253 +size_t + +¡ruù_size +, cÚ¡ * +Ýt_mÇme +, + +254 cÚ¡ * +buf_±r +, +size_t + +size +, + +255 +x”_´im™ive_body_decod”_f + * +´im_body_decod” +) { + +256 cÚ¡ * +xml_g + = +Ýt_mÇme + ? o±_mÇm: +td +->xml_tag; + +257 +a¢_¡ruù_ùx_t + +s_ùx +; + +258  +xdp_¬g_s + +s_¬g +; + +259 +a¢_dec_rv®_t + +rc +; + +264 if(!* +¥Œ +) { + +265 * +¥Œ + = + `CALLOC +(1, +¡ruù_size +); + +266 if(!* +¥Œ +è +ASN__DECODE_FAILED +; + +269 + `mem£t +(& +s_ùx +, 0, (s_ctx)); + +270 +s_¬g +. +ty³_desütÜ + = +td +; + +271 +s_¬g +. +¡ruù_key + = * +¥Œ +; + +272 +s_¬g +. +´im_body_decod” + =…rim_body_decoder; + +273 +s_¬g +. +decoded_som‘hšg + = 0; + +274 +s_¬g +. +wªt_mÜe + = 0; + +276 +rc + = + `x”_decode_g’”® +( +Ýt_codec_ùx +, & +s_ùx +, & +s_¬g +, + +277 +xml_g +, +buf_±r +, +size +, + +278 +x”_decode__uÃx³ùed_g +, +x”_decode__´im™ive_body +); + +279  +rc +. +code +) { + +280  +RC_OK +: + +281 if(! +s_¬g +. +decoded_som‘hšg +) { + +282  +ch +; + +283 + `ASN_DEBUG +("Primitive body is‚ot„ecognized, " + +290 if( + `´im_body_decod” +( +s_¬g +. +ty³_desütÜ +, + +291 +s_¬g +. +¡ruù_key +, & +ch +, 0) + +292 !ð +XPBD_BODY_CONSUMED +) { + +296 +ASN__DECODE_FAILED +; + +300  +RC_WMORE +: + +305 +rc +. +cÚsumed + = 0; + +307  +RC_FAIL +: + +308 +rc +. +cÚsumed + = 0; + +309 if( +s_¬g +. +wªt_mÜe +) + +310 +rc +. +code + = +RC_WMORE +; + +312 +ASN__DECODE_FAILED +; + +315  +rc +; + +316 + } +} + + @asn_internal.c + +1  + ~ + +3 +ssize_t + + +4 + $a¢__fÜm©_to_ÿÎback +((* +cb +)(cÚ¡ *, +size_t +, * +key +), *key, + +5 cÚ¡ * +fmt +, ...) { + +6  +sü©ch +[64]; + +7 * +buf + = +sü©ch +; + +8 +size_t + +buf_size + = ( +sü©ch +); + +9  +wrÙe +; + +10  +cb_»t +; + +13 +va_li¡ + +¬gs +; + +14 + `va_¡¬t +( +¬gs +, +fmt +); + +16 +wrÙe + = + `v¢´štf +( +buf +, +buf_size +, +fmt +, +¬gs +); + +17 if( +wrÙe + < ( +ssize_t +) +buf_size +) { + +18 if( +wrÙe + < 0) { + +19 if( +buf + !ð +sü©ch +è + `FREEMEM +(buf); + +20 + `va_’d +( +¬gs +); + +26 +buf_size + <<= 1; + +27 if( +buf + =ð +sü©ch +) { + +28 +buf + = + `MALLOC +( +buf_size +); + +29 if(! +buf +è{ + `va_’d +( +¬gs +);  -1; } + +31 * +p + = + `REALLOC +( +buf +, +buf_size +); + +32 if(! +p +) { + +33 + `FREEMEM +( +buf +); + +34 + `va_’d +( +¬gs +); + +37 +buf + = +p +; + +41 +cb_»t + = + `cb +( +buf +, +wrÙe +, +key +); + +42 if( +buf + !ð +sü©ch +è + `FREEMEM +(buf); + +43 if( +cb_»t + < 0) { + +47  +wrÙe +; + +48 + } +} + + @asn_random_fill.c + +6  + ~ + +7  + ~ + +8  + ~ + +11 + $a¢_¿ndom_fžl +(cÚ¡  +a¢_TYPE_desütÜ_s + * +td +, ** +¡ruù_±r +, + +12 +size_t + +Ëngth +) { + +14 if( +td + &&d-> +Ý +-> +¿ndom_fžl +) { + +15 +a¢_¿ndom_fžl_»suÉ_t + +»s + = + +16 +td +-> +Ý +-> + `¿ndom_fžl +Ñd, +¡ruù_±r +, 0, +Ëngth +); + +17  ( +»s +. +code + =ð +ARFILL_OK +) ? 0 : -1; + +21 + } +} + +23  +uštmax_t + + +24 + $a¢__štmax_¿nge +( +štmax_t + +lb +, iÁmax_ˆ +ub +) { + +25 + `as£¹ +( +lb + <ð +ub +); + +26 if(( +ub + < 0è=ð( +lb + < 0)) { + +27  +ub + - +lb +; + +28 } if( +lb + < 0) { + +29  1 + (( +uštmax_t +) +ub + + (uštmax_t)-( +lb + + 1)); + +31 + `as£¹ +(!"Unreachable"); + +34 + } +} + +36 +štmax_t + + +37 + $a¢_¿ndom_b‘w“n +( +štmax_t + +lb +, iÁmax_ˆ +rb +) { + +38 if( +lb + =ð +rb +) { + +39  +lb +; + +41 cÚ¡ +uštmax_t + +štmax_max + = ((~(uintmax_t)0) >> 1); + +42 +uštmax_t + +¿nge + = + `a¢__štmax_¿nge +( +lb +, +rb +); + +43 +uštmax_t + +v®ue + = 0; + +44 +uštmax_t + +gÙ_’ŒÝy + = 0; + +46 + `as£¹ +( +RAND_MAX + > 0xffffff); + +47 + `as£¹ +( +¿nge + < +štmax_max +); + +49 ; +gÙ_’ŒÝy + < +¿nge +;) { + +50 +gÙ_’ŒÝy + = (got_entropy << 24) | 0xffffff; + +51 +v®ue + = (v®u<< 24è| ( + `¿ndom +() % 0xffffff); + +54  +lb + + ( +štmax_t +)( +v®ue + % ( +¿nge + + 1)); + +56 + } +} + + @ber_decoder.c + +5  + ~ + +7 #undeà +ADVANCE + + +8  + #ADVANCE +( +num_by‹s +) do { \ + +9 +size_t + +num + = +num_by‹s +; \ + +10 +±r + = ((cÚ¡ *íŒè+ +num +; \ + +11 +size + -ð +num +; \ + +12 +cÚsumed_my£lf + +ð +num +; \ + +13 } 0) + + ) + +14 #undeà +RETURN + + +15  + #RETURN +( +_code +) do { \ + +16 +a¢_dec_rv®_t + +rv® +; \ + +17 +rv® +. +code + = +_code +; \ + +18 if( +Ýt_ùx +èÝt_ùx-> +¡• + = step; \ + +19 if( +_code + =ð +RC_OK + || +Ýt_ùx +) \ + +20 +rv® +. +cÚsumed + = +cÚsumed_my£lf +; \ + +22 +rv® +. +cÚsumed + = 0; \ + +23  +rv® +; \ + +24 } 0) + + ) + +29 +a¢_dec_rv®_t + + +30 + $b”_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +31 cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, ** +¡ruù_±r +, + +32 cÚ¡ * +±r +, +size_t + +size +) { + +33 +a¢_codec_ùx_t + +s_codec_ùx +; + +39 if( +Ýt_codec_ùx +) { + +40 if( +Ýt_codec_ùx +-> +max_¡ack_size +) { + +41 +s_codec_ùx + = * +Ýt_codec_ùx +; + +42 +Ýt_codec_ùx + = & +s_codec_ùx +; + +46 + `mem£t +(& +s_codec_ùx +, 0, (s_codec_ctx)); + +47 +s_codec_ùx +. +max_¡ack_size + = +ASN__DEFAULT_STACK_MAX +; + +48 +Ýt_codec_ùx + = & +s_codec_ùx +; + +54  +ty³_desütÜ +-> +Ý +-> + `b”_decod” +( +Ýt_codec_ùx +,ype_descriptor, + +55 +¡ruù_±r +, + +56 +±r +, +size +, + +59 + } +} + +64 +a¢_dec_rv®_t + + +65 + $b”_check_gs +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +66 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, +a¢_¡ruù_ùx_t + * +Ýt_ùx +, + +67 cÚ¡ * +±r +, +size_t + +size +,  +g_mode +,  +Ï¡_g_fÜm +, + +68 +b”_Žv_Ën_t + * +Ï¡_Ëngth +, * +Ýt_Žv_fÜm +) { + +69 +ssize_t + +cÚsumed_my£lf + = 0; + +70 +ssize_t + +g_Ën +; + +71 +ssize_t + +Ën_Ën +; + +72 +b”_Žv_g_t + +Žv_g +; + +73 +b”_Žv_Ën_t + +Žv_Ën +; + +74 +b”_Žv_Ën_t + +lim™_Ën + = -1; + +75  +ex³ù_00_‹rmš©Üs + = 0; + +76  +Žv_cÚ¡r + = -1; + +77  +¡• + = +Ýt_ùx + ? opt_ctx->step : 0; + +78  +gno +; + +83 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +84 + `RETURN +( +RC_FAIL +); + +108 +gno + = +¡• + + +109 + ( +g_mode +==1?-1:0) + +111 + `ASN_DEBUG +("ber_check_tags(%s, size=%ld,m=%d, step=%d,agno=%d)", + +112 +td +-> +Çme +, () +size +, +g_mode +, +¡• +, +gno +); + +115 if( +g_mode + =ð0 && +gno + =ð() +td +-> +gs_couÁ +) { + +121 +g_Ën + = + `b”_ãtch_g +( +±r +, +size +, & +Žv_g +); + +122  +g_Ën +) { + +123 -1: + `RETURN +( +RC_FAIL +); + +124 0: + `RETURN +( +RC_WMORE +); + +126 +Žv_cÚ¡r + = + `BER_TLV_CONSTRUCTED +( +±r +); + +127 +Ën_Ën + = + `b”_ãtch_Ëngth +( +Žv_cÚ¡r +, + +128 (cÚ¡ *) +±r + + +g_Ën +, +size + -ag_Ën, & +Žv_Ën +); + +129  +Ën_Ën +) { + +130 -1: + `RETURN +( +RC_FAIL +); + +131 0: + `RETURN +( +RC_WMORE +); + +133 + `ASN_DEBUG +("Advancing %ld in ANY case", + +134 ()( +g_Ën + + +Ën_Ën +)); + +135 + `ADVANCE +( +g_Ën + + +Ën_Ën +); + +137 + `as£¹ +( +gno + < () +td +-> +gs_couÁ +); + +139 () +gno +;agnØ< () +td +-> +gs_couÁ +;agno++, +¡• +++) { + +144 +g_Ën + = + `b”_ãtch_g +( +±r +, +size +, & +Žv_g +); + +145 + `ASN_DEBUG +("Fetchingag from {%p,%ld}: " + +147 +±r +, () +size +, + +148 () +g_Ën +, +¡• +, +gno +, + +149 + `b”_Žv_g_¡ršg +( +Žv_g +)); + +150  +g_Ën +) { + +151 -1: + `RETURN +( +RC_FAIL +); + +152 0: + `RETURN +( +RC_WMORE +); + +155 +Žv_cÚ¡r + = + `BER_TLV_CONSTRUCTED +( +±r +); + +161 if( +g_mode + !ð0 && +¡• + == 0) { + +168 + `as£¹ +( +gno + >= 0); + +169 if( +Žv_g + !ð +td +-> +gs +[ +gno +]) { + +173 + `ASN_DEBUG +("Expected: %s, " + +175 + `b”_Žv_g_¡ršg +( +td +-> +gs +[ +gno +]), + +176 +gno +, +g_mode + + +178 + `RETURN +( +RC_FAIL +); + +189 if( +gno + < (() +td +-> +gs_couÁ + - 1)) { + +190 if( +Žv_cÚ¡r + == 0) { + +191 + `ASN_DEBUG +("tlv_constr = %d,ƒxpfail", + +192 +Žv_cÚ¡r +); + +193 + `RETURN +( +RC_FAIL +); + +196 if( +Ï¡_g_fÜm + !ð +Žv_cÚ¡r + + +197 && +Ï¡_g_fÜm + != -1) { + +198 + `ASN_DEBUG +("last_tag_form %d != %d", + +199 +Ï¡_g_fÜm +, +Žv_cÚ¡r +); + +200 + `RETURN +( +RC_FAIL +); + +207 +Ën_Ën + = + `b”_ãtch_Ëngth +( +Žv_cÚ¡r +, + +208 (cÚ¡ *) +±r + + +g_Ën +, +size + -ag_Ën, & +Žv_Ën +); + +209 + `ASN_DEBUG +("F‘chšg†’ = %ld", () +Ën_Ën +); + +210  +Ën_Ën +) { + +211 -1: + `RETURN +( +RC_FAIL +); + +212 0: + `RETURN +( +RC_WMORE +); + +222 if( +Žv_Ën + == -1) { + +226 if( +lim™_Ën + == -1) { + +227 +ex³ù_00_‹rmš©Üs +++; + +229 + `ASN_DEBUG +("Unexpected indefinite†ength " + +231 + `RETURN +( +RC_FAIL +); + +233 + `ADVANCE +( +g_Ën + + +Ën_Ën +); + +236 if( +ex³ù_00_‹rmš©Üs +) { + +237 + `ASN_DEBUG +("Unexpected definite†ength " + +239 + `RETURN +( +RC_FAIL +); + +247 if( +lim™_Ën + == -1) { + +248 +lim™_Ën + = +Žv_Ën + + +g_Ën + + +Ën_Ën +; + +249 if( +lim™_Ën + < 0) { + +251 + `RETURN +( +RC_FAIL +); + +253 } if( +lim™_Ën + !ð +Žv_Ën + + +g_Ën + + +Ën_Ën +) { + +258 + `ASN_DEBUG +("Outer TLV is %ld‡nd inner is %ld", + +259 () +lim™_Ën +, () +Žv_Ën +); + +260 + `RETURN +( +RC_FAIL +); + +263 + `ADVANCE +( +g_Ën + + +Ën_Ën +); + +265 +lim™_Ën + -ð( +g_Ën + + +Ën_Ën +); + +266 if(( +ssize_t +) +size + > +lim™_Ën +) { + +271 +size + = +lim™_Ën +; + +275 if( +Ýt_Žv_fÜm +) + +276 * +Ýt_Žv_fÜm + = +Žv_cÚ¡r +; + +277 if( +ex³ù_00_‹rmš©Üs +) + +278 * +Ï¡_Ëngth + = - +ex³ù_00_‹rmš©Üs +; + +280 * +Ï¡_Ëngth + = +Žv_Ën +; + +282 + `RETURN +( +RC_OK +); + +283 + } +} + + @ber_tlv_length.c + +5  + ~ + +6  + ~ + +7  + ~ + +9 +ssize_t + + +10 + $b”_ãtch_Ëngth +( +_is_cÚ¡ruùed +, cÚ¡ * +buåŒ +, +size_t + +size +, + +11 +b”_Žv_Ën_t + * +Ën_r +) { + +12 cÚ¡ +ušt8_t + * +buf + = (cÚ¡ ušt8_ˆ*) +buåŒ +; + +13  +où +; + +15 if( +size + == 0) + +18 +où + = *(cÚ¡ +ušt8_t + *) +buf +; + +19 if(( +où + & 0x80) == 0) { + +23 * +Ën_r + = +où +; + +26 +b”_Žv_Ën_t + +Ën +; + +27 +size_t + +sk³d +; + +29 if( +_is_cÚ¡ruùed + && +où + == 0x80) { + +30 * +Ën_r + = -1; + +34 if( +où + == 0xff) { + +39 +où + &= 0x7F; + +40  +Ën + = 0, +buf +++, +sk³d + = 1; + +41 +où + && (++ +sk³d + <ð +size +); +buf +++, oct--) { + +44 if(!( +Ën + >> ((8 * (len)) - (8+1)))) { + +45 +Ën + = (ËÀ<< 8è| * +buf +; + +52 if( +où + == 0) { + +53 if( +Ën + < 0 ||†’ > +RSSIZE_MAX +) { + +58 * +Ën_r + = +Ën +; + +59  +sk³d +; + +65 + } +} + +67 +ssize_t + + +68 + $b”_sk_Ëngth +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +69  +_is_cÚ¡ruùed +, cÚ¡ * +±r +, +size_t + +size +) { + +70 +b”_Žv_Ën_t + +vËn +; + +71 +ssize_t + +Ž +; + +72 +ssize_t + +Î +; + +73 +size_t + +sk +; + +78 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +84 +Î + = + `b”_ãtch_Ëngth +( +_is_cÚ¡ruùed +, +±r +, +size +, & +vËn +); + +85 if( +Î + <= 0) †l; + +90 if( +vËn + >= 0) { + +91 +sk + = +Î + + +vËn +; + +92 if( +sk + > +size +) + +94  +sk +; + +100 + `ASN_DEBUG +("Skipping indefinite†ength"); + +101  +sk + = +Î +, +±r + = ((cÚ¡ *íŒè+†l, +size + -=†l;;) { + +102 +b”_Žv_g_t + +g +; + +105 +Ž + = + `b”_ãtch_g +( +±r +, +size +, & +g +); + +106 if( +Ž + <= 0) l; + +108 +Î + = + `b”_sk_Ëngth +( +Ýt_codec_ùx +, + +109 + `BER_TLV_CONSTRUCTED +( +±r +), + +110 ((cÚ¡ *) +±r +è+ +Ž +, +size + -l); + +111 if( +Î + <= 0) †l; + +113 +sk + +ð +Ž + + +Î +; + +120 if(((cÚ¡ +ušt8_t + *) +±r +)[0] == 0 + +121 && ((cÚ¡ +ušt8_t + *) +±r +)[1] == 0) + +122  +sk +; + +124 +±r + = ((cÚ¡ *íŒè+ +Ž + + +Î +; + +125 +size + -ð +Ž + + +Î +; + +129 + } +} + +131 +size_t + + +132 + $d”_Žv_Ëngth_£rŸlize +( +b”_Žv_Ën_t + +Ën +, * +buå +, +size_t + +size +) { + +133 +size_t + +»quœed_size +; + +134 +ušt8_t + * +buf + = (ušt8_ˆ*) +buå +; + +135 +ušt8_t + * +’d +; + +136  +i +; + +138 if( +Ën + <= 127) { + +140 if( +size +è* +buf + = ( +ušt8_t +) +Ën +; + +147  +»quœed_size + = 1, +i + = 8; i < 8 * ()( +Ën +); i += 8) { + +148 if( +Ën + >> +i +) + +149 +»quœed_size +++; + +154 if( +size + <ð +»quœed_size +) + +155  +»quœed_size + + 1; + +157 * +buf +++ = ( +ušt8_t +)(0x80 | +»quœed_size +); + +162 +’d + = +buf + + +»quœed_size +; + +163  +i + -ð8; +buf + < +’d +; i -= 8, buf++) + +164 * +buf + = ( +ušt8_t +)( +Ën + >> +i +); + +166  +»quœed_size + + 1; + +167 + } +} + + @ber_tlv_tag.c + +5  + ~ + +6  + ~ + +7  + ~<”ºo.h +> + +9 +ssize_t + + +10 + $b”_ãtch_g +(cÚ¡ * +±r +, +size_t + +size +, +b”_Žv_g_t + * +g_r +) { + +11 +b”_Žv_g_t + +v® +; + +12 +b”_Žv_g_t + +tþass +; + +13 +size_t + +sk³d +; + +15 if( +size + == 0) + +18 +v® + = *(cÚ¡ +ušt8_t + *) +±r +; + +19 +tþass + = ( +v® + >> 6); + +20 if(( +v® + &= 0x1F) != 0x1F) { + +25 * +g_r + = ( +v® + << 2è| +tþass +; + +33  +v® + = 0, +±r + = ((cÚ¡ *íŒè+ 1, +sk³d + = 2; + +34 +sk³d + <ð +size +; + +35 +±r + = ((cÚ¡ *íŒè+ 1, +sk³d +++) { + +36  +où + = *(cÚ¡ +ušt8_t + *) +±r +; + +37 if( +où + & 0x80) { + +38 +v® + = (v® << 7è| ( +où + & 0x7F); + +43 if( +v® + >> ((8 * (val)) - 9)) { + +51 +v® + = (v® << 7è| +où +; + +52 * +g_r + = ( +v® + << 2è| +tþass +; + +53  +sk³d +; + +58 + } +} + +61 +ssize_t + + +62 + $b”_Žv_g_fwr™e +( +b”_Žv_g_t + +g +, +FILE + * +f +) { + +63  +buf +[("[APPLICATION ]") + 32]; + +64 +ssize_t + +»t +; + +66 +»t + = + `b”_Žv_g_¢´št +( +g +, +buf +, (buf)); + +67 if( +»t + >ð( +ssize_t +)( +buf +) ||„et < 2) { + +68 +”ºo + = +EPERM +; + +72  + `fwr™e +( +buf +, 1, +»t +, +f +); + +73 + } +} + +75 +ssize_t + + +76 + $b”_Žv_g_¢´št +( +b”_Žv_g_t + +g +, * +buf +, +size_t + +size +) { + +77 cÚ¡ * +ty³ + = 0; + +78  +»t +; + +80  +g + & 0x3) { + +81  +ASN_TAG_CLASS_UNIVERSAL +: +ty³ + = "UNIVERSAL "; ; + +82  +ASN_TAG_CLASS_APPLICATION +: +ty³ + = "APPLICATION "; ; + +83  +ASN_TAG_CLASS_CONTEXT +: +ty³ + = ""; ; + +84  +ASN_TAG_CLASS_PRIVATE +: +ty³ + = "PRIVATE "; ; + +87 +»t + = + `¢´štf +( +buf +, +size +, "[%s%u]", +ty³ +, (() +g +) >> 2); + +88 if( +»t + <ð0 && +size +è +buf +[0] = '\0'; + +90  +»t +; + +91 + } +} + +94 + $b”_Žv_g_¡ršg +( +b”_Žv_g_t + +g +) { + +95  +buf +[("[APPLICATION ]") + 32]; + +97 () + `b”_Žv_g_¢´št +( +g +, +buf +, (buf)); + +99  +buf +; + +100 + } +} + +103 +size_t + + +104 + $b”_Žv_g_£rŸlize +( +b”_Žv_g_t + +g +, * +buå +, +size_t + +size +) { + +105  +tþass + = + `BER_TAG_CLASS +( +g +); + +106 +b”_Žv_g_t + +tv® + = + `BER_TAG_VALUE +( +g +); + +107 +ušt8_t + * +buf + = (ušt8_ˆ*) +buå +; + +108 +ušt8_t + * +’d +; + +109 +size_t + +»quœed_size +; + +110 +size_t + +i +; + +112 if( +tv® + <= 30) { + +114 if( +size +è +buf +[0] = ( +tþass + << 6è| +tv® +; + +116 } if( +size +) { + +117 * +buf +++ = ( +tþass + << 6) | 0x1F; + +118 +size +--; + +124  +»quœed_size + = 1, +i + = 7; i < 8 * ( +tv® +); i += 7) { + +125 if( +tv® + >> +i +) + +126 +»quœed_size +++; + +131 if( +size + < +»quœed_size +) + +132  +»quœed_size + + 1; + +137 +’d + = +buf + + +»quœed_size + - 1; + +138  +i + -ð7; +buf + < +’d +; i -= 7, buf++) + +139 * +buf + = 0x80 | (( +tv® + >> +i +) & 0x7F); + +140 * +buf + = ( +tv® + & 0x7F); + +142  +»quœed_size + + 1; + +143 + } +} + + @constr_CHOICE.c + +5  + ~ + +6  + ~ + +7  + ~<³r_ݒty³.h +> + +14  + #LEFT + (( +size +<( +size_t +) +ùx +-> +Ëá +)?size:(size_t)ùx->Ëá) + + ) + +27  + #SIZE_VIOLATION + ( +ùx +-> +Ëá + >ð0 && ( +size_t +)ùx->Ëá <ð +size +) + + ) + +33 #undeà +ADVANCE + + +34  + #ADVANCE +( +num_by‹s +) do { \ + +35 +size_t + +num + = +num_by‹s +; \ + +36 +±r + = ((cÚ¡ *íŒè+ +num +;\ + +37 +size + -ð +num +; \ + +38 if( +ùx +-> +Ëá + >= 0) \ + +39 +ùx +-> +Ëá + -ð +num +; \ + +40 +cÚsumed_my£lf + +ð +num +; \ + +41 } 0) + + ) + +46 #undeà +NEXT_PHASE + + +47  + #NEXT_PHASE +( +ùx +) do { \ + +48 +ùx +-> +pha£ +++; \ + +49 +ùx +-> +¡• + = 0; \ + +50 } 0) + + ) + +55 #undeà +RETURN + + +56  + #RETURN +( +_code +) do { \ + +57 +rv® +. +code + = +_code +; \ + +58 +rv® +. +cÚsumed + = +cÚsumed_my£lf +;\ + +59  +rv® +; \ + +60 } 0) + + ) + +65  +_ãtch_´e£Á_idx +(cÚ¡ * +¡ruù_±r +,  +off +, + +66  +size +); + +67  +_£t_´e£Á_idx +(* +¥Œ +,  +off£t +,  +size +, + +68  +´es +); + +69 cÚ¡ * +_g‘_memb”_±r +(cÚ¡ +a¢_TYPE_desütÜ_t + *, + +70 cÚ¡ * +¥Œ +, +a¢_TYPE_memb”_t + ** +–m +, + +71 * +´e£Á +); + +77 + $_£¬ch4g +(cÚ¡ * +­ +, cÚ¡ * +bp +) { + +78 cÚ¡ +a¢_TYPE_g2memb”_t + * +a + = (cÚ¡‡¢_TYPE_g2memb”_ˆ*) +­ +; + +79 cÚ¡ +a¢_TYPE_g2memb”_t + * +b + = (cÚ¡‡¢_TYPE_g2memb”_ˆ*) +bp +; + +81  +a_þass + = + `BER_TAG_CLASS +( +a +-> +–_g +); + +82  +b_þass + = + `BER_TAG_CLASS +( +b +-> +–_g +); + +84 if( +a_þass + =ð +b_þass +) { + +85 +b”_Žv_g_t + +a_v®ue + = + `BER_TAG_VALUE +( +a +-> +–_g +); + +86 +b”_Žv_g_t + +b_v®ue + = + `BER_TAG_VALUE +( +b +-> +–_g +); + +88 if( +a_v®ue + =ð +b_v®ue +) + +90 if( +a_v®ue + < +b_v®ue +) + +94 } if( +a_þass + < +b_þass +) { + +99 + } +} + +104 +a¢_dec_rv®_t + + +105 + $CHOICE_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +106 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +107 cÚ¡ * +±r +, +size_t + +size +,  +g_mode +) { + +111 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +112 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +113 +a¢_TYPE_memb”_t + * +–em’ts + = +td +->elements; + +118 * +¡ + = * +¡ruù_±r +; + +119 +a¢_¡ruù_ùx_t + * +ùx +; + +121 +b”_Žv_g_t + +Žv_g +; + +122 +ssize_t + +g_Ën +; + +123 +a¢_dec_rv®_t + +rv® +; + +125 +ssize_t + +cÚsumed_my£lf + = 0; + +127 + `ASN_DEBUG +("Decodšg % a CHOICE", +td +-> +Çme +); + +132 if( +¡ + == 0) { + +133 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +134 if( +¡ + == 0) { + +135 + `RETURN +( +RC_FAIL +); + +142 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +147  +ùx +-> +pha£ +) { + +155 if( +g_mode + || +td +-> +gs_couÁ +) { + +156 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, +ùx +, +±r +, +size +, + +157 +g_mode +, -1, & +ùx +-> +Ëá +, 0); + +158 if( +rv® +. +code + !ð +RC_OK +) { + +159 + `ASN_DEBUG +("%sagging check failed: %d", + +160 +td +-> +Çme +, +rv® +. +code +); + +161  +rv® +; + +164 if( +ùx +-> +Ëá + >= 0) { + +166 +ùx +-> +Ëá + +ð +rv® +. +cÚsumed +; + +168 + `ADVANCE +( +rv® +. +cÚsumed +); + +170 +ùx +-> +Ëá + = -1; + +173 + `NEXT_PHASE +( +ùx +); + +175 + `ASN_DEBUG +("Structure consumes %ld bytes, buffer %ld", + +176 () +ùx +-> +Ëá +, () +size +); + +183 +g_Ën + = + `b”_ãtch_g +( +±r +, +LEFT +, & +Žv_g +); + +184 + `ASN_DEBUG +("IÀ% CHOICEag†’gth %d", +td +-> +Çme +, () +g_Ën +); + +185  +g_Ën +) { + +186 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +188 -1: + `RETURN +( +RC_FAIL +); + +192 cÚ¡ +a¢_TYPE_g2memb”_t + * +t2m +; + +193 +a¢_TYPE_g2memb”_t + +key +; + +195 +key +. +–_g + = +Žv_g +; + +196 +t2m + = (cÚ¡ +a¢_TYPE_g2memb”_t + *) + `b£¬ch +(& +key +, + +197 +¥ecs +-> +g2– +, s³cs-> +g2–_couÁ +, + +198 ( +¥ecs +-> +g2– +[0]), +_£¬ch4g +); + +199 if( +t2m +) { + +203 + `NEXT_PHASE +( +ùx +); + +204 +ùx +-> +¡• + = +t2m +-> +–_no +; + +206 } if( +¥ecs +-> +ext_¡¬t + == -1) { + +207 + `ASN_DEBUG +("Unexpectedag %s " + +209 + `b”_Žv_g_¡ršg +( +Žv_g +), +td +-> +Çme +); + +210 + `RETURN +( +RC_FAIL +); + +213 +ssize_t + +sk +; + +215 + `ASN_DEBUG +("Skipping unknownag %s", + +216 + `b”_Žv_g_¡ršg +( +Žv_g +)); + +218 +sk + = + `b”_sk_Ëngth +( +Ýt_codec_ùx +, + +219 + `BER_TLV_CONSTRUCTED +( +±r +), + +220 (cÚ¡ *) +±r + + +g_Ën +, + +221 +LEFT + - +g_Ën +); + +223  +sk +) { + +224 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +226 -1: + `RETURN +( +RC_FAIL +); + +229 + `ADVANCE +( +sk + + +g_Ën +); + +230 + `RETURN +( +RC_OK +); + +240 +a¢_TYPE_memb”_t + * +–m +; + +241 * +memb_±r +; + +242 ** +memb_±r2 +; + +244 +–m + = & +–em’ts +[ +ùx +-> +¡• +]; + +251 if( +–m +-> +æags + & +ATF_POINTER +) { + +253 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +259 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +260 +memb_±r2 + = & +memb_±r +; + +263 + `_£t_´e£Á_idx +( +¡ +, +¥ecs +-> +´es_off£t +, + +264 +¥ecs +-> +´es_size +, +ùx +-> +¡• + + 1); + +268 +rv® + = +–m +-> +ty³ +-> +Ý +-> + `b”_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +269 +memb_±r2 +, +±r +, +LEFT +, +–m +-> +g_mode +); + +270  +rv® +. +code +) { + +271  +RC_OK +: + +273  +RC_WMORE +: + +274 if(! +SIZE_VIOLATION +) { + +275 + `ADVANCE +( +rv® +. +cÚsumed +); + +276 + `RETURN +( +RC_WMORE +); + +278 + `RETURN +( +RC_FAIL +); + +279  +RC_FAIL +: + +280 + `RETURN +( +rv® +. +code +); + +283 + `ADVANCE +( +rv® +. +cÚsumed +); + +286 + `NEXT_PHASE +( +ùx +); + +290 + `ASN_DEBUG +("CHOICE %s Leftover: %ld, size = %ld,m=%d,c=%d", + +291 +td +-> +Çme +, () +ùx +-> +Ëá +, () +size +, + +292 +g_mode +, +td +-> +gs_couÁ +); + +294 if( +ùx +-> +Ëá + > 0) { + +299 + `RETURN +( +RC_FAIL +); + +302 if( +ùx +-> +Ëá + == -1 + +303 && !( +g_mode + || +td +-> +gs_couÁ +)) { + +310 + `NEXT_PHASE +( +ùx +); + +317  +ùx +-> +Ëá + < 0) { + +318 +ssize_t + +Ž +; + +320 +Ž + = + `b”_ãtch_g +( +±r +, +LEFT +, & +Žv_g +); + +321  +Ž +) { + +322 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +324 -1: + `RETURN +( +RC_FAIL +); + +330 if(((cÚ¡ +ušt8_t + *) +±r +)[0] == 0) { + +331 if( +LEFT + < 2) { + +332 if( +SIZE_VIOLATION +) + +333 + `RETURN +( +RC_FAIL +); + +335 + `RETURN +( +RC_WMORE +); + +336 } if(((cÚ¡ +ušt8_t + *) +±r +)[1] == 0) { + +340 + `ADVANCE +(2); + +341 +ùx +-> +Ëá +++; + +345 + `ASN_DEBUG +("Unexpected continuation in %s", + +346 +td +-> +Çme +); + +347 + `RETURN +( +RC_FAIL +); + +353 + `NEXT_PHASE +( +ùx +); + +359 + `RETURN +( +RC_OK +); + +360 + } +} + +362 +a¢_’c_rv®_t + + +363 + $CHOICE_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +364  +g_mode +, +b”_Žv_g_t + +g +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +365 * +­p_key +) { + +366 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +367 +a¢_TYPE_memb”_t + * +–m +; + +368 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +369 cÚ¡ * +memb_±r +; + +370 +size_t + +compu‹d_size + = 0; + +371  +´e£Á +; + +373 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +375 + `ASN_DEBUG +("%s %s‡s CHOICE", + +376 +cb +?"Encodšg":"E¡im©šg", +td +-> +Çme +); + +378 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, + +379 +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +385 if( +´e£Á + =ð0 ||…»£Á > +td +-> +–em’ts_couÁ +) { + +386 if( +´e£Á + =ð0 && +td +-> +–em’ts_couÁ + == 0) { + +388 +”v® +. +’coded + = 0; + +389 + `ASN__ENCODED_OK +( +”v® +); + +391 +ASN__ENCODE_FAILED +; + +397 +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +398 if( +–m +-> +æags + & +ATF_POINTER +) { + +399 +memb_±r + = + +400 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +401 if( +memb_±r + == 0) { + +402 if( +–m +-> +ÝtiÚ® +) { + +403 +”v® +. +’coded + = 0; + +404 + `ASN__ENCODED_OK +( +”v® +); + +407 +ASN__ENCODE_FAILED +; + +410 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +418 if( +g_mode + =ð1 || +td +-> +gs_couÁ +) { + +422 +ssize_t + +»t +; + +425 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, + +426 +–m +-> +g_mode +,ƒlm-> +g +, 0, 0); + +427 if( +”v® +. +’coded + == -1) + +428  +”v® +; + +431 +»t + = + `d”_wr™e_gs +( +td +, +”v® +. +’coded +, +g_mode +, 1, +g +, + +432 +cb +, +­p_key +); + +433 if( +»t + == -1) + +434 +ASN__ENCODE_FAILED +; + +435 +compu‹d_size + +ð +»t +; + +441 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, + +442 +–m +-> +g_mode +,ƒlm-> +g +, +cb +, +­p_key +); + +443 if( +”v® +. +’coded + == -1) + +444  +”v® +; + +446 + `ASN_DEBUG +("Encoded CHOICE member in %ld bytes (+%ld)", + +447 () +”v® +. +’coded +, () +compu‹d_size +); + +449 +”v® +. +’coded + +ð +compu‹d_size +; + +451  +”v® +; + +452 + } +} + +454 +b”_Žv_g_t + + +455 + $CHOICE_outmo¡_g +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +±r +,  +g_mode +, +b”_Žv_g_t + +g +) { + +456 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +457  +´e£Á +; + +459 + `as£¹ +( +g_mode + == 0); ()tag_mode; + +460 + `as£¹ +( +g + == 0); ()tag; + +465 +´e£Á + = + `_ãtch_´e£Á_idx +( +±r +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +467 if( +´e£Á + > 0 &&…»£Á <ð +td +-> +–em’ts_couÁ +) { + +468 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +469 cÚ¡ * +memb_±r +; + +471 if( +–m +-> +æags + & +ATF_POINTER +) { + +472 +memb_±r + = *(const * const *) + +473 ((cÚ¡ *) +±r + + +–m +-> +memb_off£t +); + +475 +memb_±r + = (const *) + +476 ((cÚ¡ *) +±r + + +–m +-> +memb_off£t +); + +479  + `a¢_TYPE_outmo¡_g +( +–m +-> +ty³ +, +memb_±r +, + +480 +–m +-> +g_mode +,ƒlm-> +g +); + +482  ( +b”_Žv_g_t +)-1; + +484 + } +} + +487 + $CHOICE_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +488 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +489 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +490 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +491  +´e£Á +; + +493 if(! +¥Œ +) { + +494 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +496 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +503 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +,¥ecs-> +´es_size +); + +504 if( +´e£Á + > 0 &&…»£Á <ð +td +-> +–em’ts_couÁ +) { + +505 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +506 cÚ¡ * +memb_±r +; + +508 if( +–m +-> +æags + & +ATF_POINTER +) { + +509 +memb_±r + = *(cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +510 if(! +memb_±r +) { + +511 if( +–m +-> +ÝtiÚ® +) + +513 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +515 +td +-> +Çme +, +–m +->Çme, +__FILE__ +, +__LINE__ +); + +519 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +522 if( +–m +-> +’codšg_cÚ¡¿šts +. +g’”®_cÚ¡¿šts +) { + +523  +–m +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +Ólm-> +ty³ +, +memb_±r +, + +524 +ùçžcb +, +­p_key +); + +526  +–m +-> +ty³ +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +(elm->type, + +527 +memb_±r +, +ùçžcb +, +­p_key +); + +530 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +532 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +535 + } +} + +537 #undeà +XER_ADVANCE + + +538  + #XER_ADVANCE +( +num_by‹s +) do { \ + +539 +size_t + +num + = +num_by‹s +; \ + +540 +buf_±r + = (cÚ¡ *)(((cÚ¡ *)buf_±rè+ +num +); \ + +541 +size + -ð +num +; \ + +542 +cÚsumed_my£lf + +ð +num +; \ + +543 } 0) + + ) + +548 +a¢_dec_rv®_t + + +549 + $CHOICE_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +550 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +551 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +555 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +556 cÚ¡ * +xml_g + = +Ýt_mÇme + ? o±_mÇm: +td +->xml_tag; + +561 * +¡ + = * +¡ruù_±r +; + +562 +a¢_¡ruù_ùx_t + * +ùx +; + +564 +a¢_dec_rv®_t + +rv® +; + +565 +ssize_t + +cÚsumed_my£lf + = 0; + +566 +size_t + +edx +; + +571 if( +¡ + == 0) { + +572 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +573 if( +¡ + =ð0è + `RETURN +( +RC_FAIL +); + +579 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +580 if( +ùx +-> +pha£ + =ð0 && !* +xml_g +) + +581 +ùx +-> +pha£ + = 1; + +592  +edx + = +ùx +-> +¡• +; ctx-> +pha£ + <= 4;) { + +593 +px”_chunk_ty³_e + +ch_ty³ +; + +594 +ssize_t + +ch_size +; + +595 +x”_check_g_e + +tcv +; + +596 +a¢_TYPE_memb”_t + * +–m +; + +601 if( +ùx +-> +pha£ + == 2) { + +602 +a¢_dec_rv®_t + +tm´v® +; + +603 * +memb_±r +; + +604 ** +memb_±r2 +; + +605  +Þd_´e£Á +; + +607 +–m + = & +td +-> +–em’ts +[ +edx +]; + +609 if( +–m +-> +æags + & +ATF_POINTER +) { + +611 +memb_±r2 + = (**)((*) +¡ + + +612 + +–m +-> +memb_off£t +); + +614 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +615 +memb_±r2 + = & +memb_±r +; + +619 +tm´v® + = +–m +-> +ty³ +-> +Ý +-> + `x”_decod” +( +Ýt_codec_ùx +, + +620 +–m +-> +ty³ +, +memb_±r2 +,ƒlm-> +Çme +, + +621 +buf_±r +, +size +); + +622 + `XER_ADVANCE +( +tm´v® +. +cÚsumed +); + +623 + `ASN_DEBUG +("XER/CHOICE: itdf: [%s] code=%d", + +624 +–m +-> +ty³ +-> +Çme +, +tm´v® +. +code +); + +625 +Þd_´e£Á + = + `_ãtch_´e£Á_idx +( +¡ +, + +626 +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +627 + `as£¹ +( +Þd_´e£Á + =ð0 || old_´e£Á =ð +edx + + 1); + +629 + `_£t_´e£Á_idx +( +¡ +, + +630 +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +, +edx + + 1); + +631 if( +tm´v® +. +code + !ð +RC_OK +) + +632 + `RETURN +( +tm´v® +. +code +); + +633 +ùx +-> +pha£ + = 3; + +638 if( +ùx +-> +pha£ + =ð3 && !* +xml_g +) { + +639 +ùx +-> +pha£ + = 5; + +640 + `RETURN +( +RC_OK +); + +646 +ch_size + = + `x”_Ãxt_tok’ +(& +ùx +-> +cڋxt +, +buf_±r +, +size +, & +ch_ty³ +); + +647 if( +ch_size + == -1) { + +648 + `RETURN +( +RC_FAIL +); + +650  +ch_ty³ +) { + +651  +PXER_WMORE +: + +652 + `RETURN +( +RC_WMORE +); + +653  +PXER_COMMENT +: + +654  +PXER_TEXT +: + +655 + `XER_ADVANCE +( +ch_size +); + +657  +PXER_TAG +: + +662 +tcv + = + `x”_check_g +( +buf_±r +, +ch_size +, +xml_g +); + +663 + `ASN_DEBUG +("XER/CHOICE checked [%c%c%c%c] vs [%s],cv=%d", + +664 +ch_size +>0?((cÚ¡ +ušt8_t + *) +buf_±r +)[0]:'?', + +665 +ch_size +>1?((cÚ¡ +ušt8_t + *) +buf_±r +)[1]:'?', + +666 +ch_size +>2?((cÚ¡ +ušt8_t + *) +buf_±r +)[2]:'?', + +667 +ch_size +>3?((cÚ¡ +ušt8_t + *) +buf_±r +)[3]:'?', + +668 +xml_g +, +tcv +); + +671 if( +ùx +-> +pha£ + == 4) { + +672 + `ASN_DEBUG +("skip_unknown(%d, %ld)", + +673 +tcv +, () +ùx +-> +Ëá +); + +674  + `x”_sk_unknown +( +tcv +, & +ùx +-> +Ëá +)) { + +676 +ùx +-> +pha£ + = 5; + +677 + `RETURN +( +RC_FAIL +); + +679 +ùx +-> +pha£ + = 3; + +682 + `XER_ADVANCE +( +ch_size +); + +685 +ùx +-> +pha£ + = 3; + +690  +tcv +) { + +691  +XCT_BOTH +: + +693  +XCT_CLOSING +: + +694 if( +ùx +-> +pha£ + != 3) + +696 + `XER_ADVANCE +( +ch_size +); + +697 +ùx +-> +pha£ + = 5; + +698 + `RETURN +( +RC_OK +); + +699  +XCT_OPENING +: + +700 if( +ùx +-> +pha£ + == 0) { + +701 + `XER_ADVANCE +( +ch_size +); + +702 +ùx +-> +pha£ + = 1; + +706  +XCT_UNKNOWN_OP +: + +707  +XCT_UNKNOWN_BO +: + +709 if( +ùx +-> +pha£ + != 1) + +715  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +716 +–m + = & +td +-> +–em’ts +[ +edx +]; + +717 +tcv + = + `x”_check_g +( +buf_±r +, +ch_size +, +–m +-> +Çme +); + +718  +tcv +) { + +719  +XCT_BOTH +: + +720  +XCT_OPENING +: + +724 +ùx +-> +¡• + = +edx +; + +725 +ùx +-> +pha£ + = 2; + +727  +XCT_UNKNOWN_OP +: + +728  +XCT_UNKNOWN_BO +: + +731 +edx + = +td +-> +–em’ts_couÁ +; + +736 if( +edx + !ð +td +-> +–em’ts_couÁ +) + +740 if( +¥ecs +-> +ext_¡¬t + != -1) { + +741 + `ASN_DEBUG +("Got‡nticipatedƒxtension"); + +747 if( +tcv + & +XCT_CLOSING +) { + +749 +ùx +-> +pha£ + = 3; + +751 +ùx +-> +Ëá + = 1; + +752 +ùx +-> +pha£ + = 4; + +754 + `XER_ADVANCE +( +ch_size +); + +763 + `ASN_DEBUG +("Unexpected XMLag [%c%c%c%c] in CHOICE [%s]" + +765 +ch_size +>0?((cÚ¡ +ušt8_t + *) +buf_±r +)[0]:'?', + +766 +ch_size +>1?((cÚ¡ +ušt8_t + *) +buf_±r +)[1]:'?', + +767 +ch_size +>2?((cÚ¡ +ušt8_t + *) +buf_±r +)[2]:'?', + +768 +ch_size +>3?((cÚ¡ +ušt8_t + *) +buf_±r +)[3]:'?', + +769 +td +-> +Çme +, +ùx +-> +pha£ +, +xml_g +); + +773 +ùx +-> +pha£ + = 5; + +774 + `RETURN +( +RC_FAIL +); + +775 + } +} + +778 +a¢_’c_rv®_t + + +779 + $CHOICE_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +780 +x”_’cod”_æags_e + +æags +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +781 * +­p_key +) { + +782 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +783 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +784 +a¢_’c_rv®_t + +” + = {0,0,0}; + +785  +´e£Á + = 0; + +787 if(! +¥Œ +) + +788 +ASN__ENCODE_FAILED +; + +793 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +,¥ecs-> +´es_size +); + +795 if( +´e£Á + =ð0 ||…»£Á > +td +-> +–em’ts_couÁ +) { + +796 +ASN__ENCODE_FAILED +; + +798 +a¢_’c_rv®_t + +tm³r + = {0,0,0}; + +799 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +800 cÚ¡ * +memb_±r + = +NULL +; + +801 cÚ¡ * +mÇme + = +–m +-> +Çme +; + +802  +mËn + = + `¡¾’ +( +mÇme +); + +804 if( +–m +-> +æags + & +ATF_POINTER +) { + +805 +memb_±r + = + +806 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +807 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +809 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +812 +” +. +’coded + = 0; + +814 if(!( +æags + & +XER_F_CANONICAL +)è + `ASN__TEXT_INDENT +(1, +žev– +); + +815 + `ASN__CALLBACK3 +("<", 1, +mÇme +, +mËn +, ">", 1); + +817 +tm³r + = +–m +-> +ty³ +-> +Ý +-> + `x”_’cod” +Ólm->ty³, +memb_±r +, + +818 +žev– + + 1, +æags +, +cb +, +­p_key +); + +819 if( +tm³r +. +’coded + == -1) mper; + +820 +” +. +’coded + +ð +tm³r +.encoded; + +822 + `ASN__CALLBACK3 +("", 1); + +825 if(!( +æags + & +XER_F_CANONICAL +)è + `ASN__TEXT_INDENT +(1, +žev– + - 1); + +827 + `ASN__ENCODED_OK +( +” +); + +828 +cb_çžed +: + +829 +ASN__ENCODE_FAILED +; + +830 + } +} + +832 +a¢_dec_rv®_t + + +833 + $CHOICE_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +834 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +835 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +836 +a¢_³r_d©a_t + * +pd +) { + +837 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +838 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +839 +a¢_dec_rv®_t + +rv +; + +840 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +841 +a¢_TYPE_memb”_t + * +–m +; + +842 * +memb_±r +; + +843 ** +memb_±r2 +; + +844 * +¡ + = * +¥Œ +; + +845  +v®ue +; + +847 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +848 +ASN__DECODE_FAILED +; + +853 if(! +¡ +) { + +854 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +855 if(! +¡ +è +ASN__DECODE_FAILED +; + +858 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +859 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +è +ù + = &td->’codšg_cÚ¡¿šts.³r_cÚ¡¿šts-> +v®ue +; + +860 +ù + = 0; + +862 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +863 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +864 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +865 if( +v®ue +è +ù + = 0; + +868 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +869 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +870 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +871 + `ASN_DEBUG +("CHOICE %s got index %d in„ange %d", + +872 +td +-> +Çme +, +v®ue +, +ù +-> +¿nge_b™s +); + +873 if( +v®ue + > +ù +-> +uµ”_bound +) + +874 +ASN__DECODE_FAILED +; + +876 if( +¥ecs +-> +ext_¡¬t + == -1) + +877 +ASN__DECODE_FAILED +; + +878 +v®ue + = + `u³r_g‘_n¢nwn +( +pd +); + +879 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +880 +v®ue + +ð +¥ecs +-> +ext_¡¬t +; + +881 if(() +v®ue + >ð +td +-> +–em’ts_couÁ +) + +882 +ASN__DECODE_FAILED +; + +886 if( +¥ecs +-> +äom_ÿnÚiÿl_Üd” +) { + +887 + `ASN_DEBUG +("CHOICE…»£nû from wœ%d", +v®ue +); + +888 +v®ue + = +¥ecs +-> +äom_ÿnÚiÿl_Üd” +[value]; + +889 + `ASN_DEBUG +("CHOICE…»£nû indexƒfãùiv%d", +v®ue +); + +893 + `_£t_´e£Á_idx +( +¡ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +, +v®ue + + 1); + +895 +–m + = & +td +-> +–em’ts +[ +v®ue +]; + +896 if( +–m +-> +æags + & +ATF_POINTER +) { + +898 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +900 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +901 +memb_±r2 + = & +memb_±r +; + +903 + `ASN_DEBUG +("Discov”ed CHOICE % ’code %s", +td +-> +Çme +, +–m +->name); + +905 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +906 +rv + = +–m +-> +ty³ +-> +Ý +-> + `u³r_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +907 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +909 +rv + = + `u³r_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +–m +-> +ty³ +, + +910 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +913 if( +rv +. +code + !ð +RC_OK +) + +914 + `ASN_DEBUG +("Failedo decode %s in %s (CHOICE) %d", + +915 +–m +-> +Çme +, +td +->Çme, +rv +. +code +); + +916  +rv +; + +917 + } +} + +919 +a¢_’c_rv®_t + + +920 + $CHOICE_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +921 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +922 +a¢_³r_ou_t + * +po +) { + +923 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +924 +a¢_TYPE_memb”_t + * +–m +; + +925 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +926 cÚ¡ * +memb_±r +; + +927  +´e£Á +; + +928  +´e£Á_’c +; + +930 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +932 + `ASN_DEBUG +("Encodšg % a CHOICE", +td +-> +Çme +); + +934 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +935 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +936 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +937 +ù + = 0; + +939 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +945 if( +´e£Á + =ð0 ||…»£Á > +td +-> +–em’ts_couÁ +) + +946 +ASN__ENCODE_FAILED +; + +948 +´e£Á +--; + +950 + `ASN_DEBUG +("Encodšg % CHOICEƒËm’ˆ%d", +td +-> +Çme +, +´e£Á +); + +953 if( +¥ecs +-> +to_ÿnÚiÿl_Üd” +) + +954 +´e£Á_’c + = +¥ecs +-> +to_ÿnÚiÿl_Üd” +[ +´e£Á +]; + +956 +´e£Á_’c + = +´e£Á +; + +958 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +959 if( +´e£Á_’c + < +ù +-> +low”_bound + + +960 || +´e£Á_’c + > +ù +-> +uµ”_bound +) { + +961 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +962 + `ASN_DEBUG +( + +964 +´e£Á +, +´e£Á_’c +, +ù +-> +low”_bound +, ct-> +uµ”_bound +); + +965 if( + `³r_put_ãw_b™s +( +po +, 1, 1)) + +966 +ASN__ENCODE_FAILED +; + +968 +ASN__ENCODE_FAILED +; + +970 +ù + = 0; + +973 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +974 + `ASN_DEBUG +("CHOICE member %d (enc %d) is‚ot‡nƒxtension (%ld..%ld)", + +975 +´e£Á +, +´e£Á_’c +, +ù +-> +low”_bound +, ct-> +uµ”_bound +); + +976 if( + `³r_put_ãw_b™s +( +po +, 0, 1)) + +977 +ASN__ENCODE_FAILED +; + +981 +–m + = & +td +-> +–em’ts +[ +´e£Á +]; + +982 + `ASN_DEBUG +("CHOICE memb” \"%s\" %d (a %d)", +–m +-> +Çme +, +´e£Á +, + +983 +´e£Á_’c +); + +984 if( +–m +-> +æags + & +ATF_POINTER +) { + +986 +memb_±r + = + +987 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +988 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +990 +memb_±r + = (cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +; + +993 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +994 if( + `³r_put_ãw_b™s +( +po +, +´e£Á_’c +, +ù +-> +¿nge_b™s +)) + +995 +ASN__ENCODE_FAILED +; + +997  +–m +-> +ty³ +-> +Ý +-> + `u³r_’cod” +( + +998 +–m +-> +ty³ +,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r +, +po +); + +1000 +a¢_’c_rv®_t + +rv® + = {0,0,0}; + +1001 if( +¥ecs +-> +ext_¡¬t + =ð-1è +ASN__ENCODE_FAILED +; + +1002 if( + `u³r_put_n¢nwn +( +po +, +´e£Á_’c + - +¥ecs +-> +ext_¡¬t +)) + +1003 +ASN__ENCODE_FAILED +; + +1004 if( + `u³r_ݒ_ty³_put +( +–m +-> +ty³ +, + +1005 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1006 +memb_±r +, +po +)) + +1007 +ASN__ENCODE_FAILED +; + +1008 +rv® +. +’coded + = 0; + +1009 + `ASN__ENCODED_OK +( +rv® +); + +1011 + } +} + +1013 +a¢_dec_rv®_t + + +1014 + $CHOICE_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1015 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1016 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +1017 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1018 +a¢_dec_rv®_t + +rv +; + +1019 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +1020 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ext_ù + = +NULL +; + +1021 +a¢_TYPE_memb”_t + * +–m +; + +1022 * +memb_±r +; + +1023 ** +memb_±r2 +; + +1024 * +¡ + = * +¥Œ +; + +1025  +v®ue +; + +1027 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +1028 +ASN__DECODE_FAILED +; + +1033 if(! +¡ +) { + +1034 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1035 if(! +¡ +è +ASN__DECODE_FAILED +; + +1038 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +1039 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +1040 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +1041 +ù + = 0; + +1043 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +1044 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1045 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +1046 if( +v®ue +) { + +1047 +ext_ù + = +ù +; + +1048 +ù + = 0; + +1053 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +1054 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +¿nge_b™s +); + +1055 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +1056 + `ASN_DEBUG +("CHOICE %s got index %d in„ange %d", + +1057 +td +-> +Çme +, +v®ue +, +ù +-> +¿nge_b™s +); + +1058 if( +v®ue + > +ù +-> +uµ”_bound +) + +1059 +ASN__DECODE_FAILED +; + +1061 if( +¥ecs +-> +ext_¡¬t + == -1) + +1062 +ASN__DECODE_FAILED +; + +1063 +v®ue + = + `­”_g‘_n¢nwn +( +pd +, +ext_ù +-> +¿nge_b™s +); + +1064 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +1065 +v®ue + +ð +¥ecs +-> +ext_¡¬t +; + +1066 if(() +v®ue + >ð +td +-> +–em’ts_couÁ +) + +1067 +ASN__DECODE_FAILED +; + +1071 if( +¥ecs +-> +äom_ÿnÚiÿl_Üd” +) + +1072 +v®ue + = +¥ecs +-> +äom_ÿnÚiÿl_Üd” +[value]; + +1075 + `_£t_´e£Á_idx +( +¡ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +, +v®ue + + 1); + +1077 +–m + = & +td +-> +–em’ts +[ +v®ue +]; + +1078 if( +–m +-> +æags + & +ATF_POINTER +) { + +1080 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1082 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +1083 +memb_±r2 + = & +memb_±r +; + +1085 + `ASN_DEBUG +("Discov”ed CHOICE % ’code %s", +td +-> +Çme +, +–m +->name); + +1087 if( +ù + && ct-> +¿nge_b™s + >= 0) { + +1088 +rv + = +–m +-> +ty³ +-> +Ý +-> + `­”_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +1089 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +1091 +rv + = + `­”_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +–m +-> +ty³ +, + +1092 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +1095 if( +rv +. +code + !ð +RC_OK +) + +1096 + `ASN_DEBUG +("Failedo decode %s in %s (CHOICE) %d", + +1097 +–m +-> +Çme +, +td +->Çme, +rv +. +code +); + +1098  +rv +; + +1099 + } +} + +1101 +a¢_’c_rv®_t + + +1102 + $CHOICE_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1103 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1104 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +1105 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1106 cÚ¡ +a¢_TYPE_memb”_t + * +–m +; + +1107 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù + = +NULL +; + +1108 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ext_ù + = +NULL +; + +1109 cÚ¡ * +memb_±r +; + +1110  +´e£Á +; + +1111  +´e£Á_’c +; + +1113 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +1115 + `ASN_DEBUG +("Encodšg % a CHOICE usšg ALIGNED PER", +td +-> +Çme +); + +1117 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +v®ue +; + +1118 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +1119 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +v®ue +; + +1120 +ù + = +NULL +; + +1122 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, + +1123 +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +1129 if( +´e£Á + <ð0 || (í»£Á > +td +-> +–em’ts_couÁ +) + +1130 +ASN__ENCODE_FAILED +; + +1132 +´e£Á +--; + +1135 if( +¥ecs +-> +to_ÿnÚiÿl_Üd” +) + +1136 +´e£Á_’c + = +¥ecs +-> +to_ÿnÚiÿl_Üd” +[ +´e£Á +]; + +1138 +´e£Á_’c + = +´e£Á +; + +1140 + `ASN_DEBUG +("Encodšg % CHOICEƒËm’ˆ%d", +td +-> +Çme +, +´e£Á +); + +1142 if( +ù + && (ù-> +¿nge_b™s + >= 0)) { + +1144 if( +´e£Á + < +ù +-> +low”_bound + ||…»£Á > ct-> +uµ”_bound +) { + +1145 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +1146 + `ASN_DEBUG +("CHOICE member %d (enc %d) is‡nƒxtension (%ld..%ld)", + +1147 +´e£Á +, +´e£Á_’c +, +ù +-> +low”_bound +, ct-> +uµ”_bound +); + +1149 if( + `³r_put_ãw_b™s +( +po +, 1, 1)) { + +1150 +ASN__ENCODE_FAILED +; + +1153 +ASN__ENCODE_FAILED +; + +1156 +ext_ù + = +ù +; + +1157 +ù + = +NULL +; + +1161 if( +ù + && (ù-> +æags + & +APC_EXTENSIBLE +)) { + +1162 + `ASN_DEBUG +("CHOICE member %d (enc %d) is‚ot‡nƒxtension (%ld..%ld)", + +1163 +´e£Á +,…»£Á, +ù +-> +low”_bound +, ct-> +uµ”_bound +); + +1165 if( + `³r_put_ãw_b™s +( +po +, 0, 1)) { + +1166 +ASN__ENCODE_FAILED +; + +1170 +–m + = & +td +-> +–em’ts +[ +´e£Á +]; + +1171 if( +–m +-> +æags + & +ATF_POINTER +) { + +1173 +memb_±r + = *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1174 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +1176 +memb_±r + = (cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +; + +1179 if( +ù + && (ù-> +¿nge_b™s + >= 0)) { + +1182 if( + `³r_put_ãw_b™s +( +po +, +´e£Á_’c +, +ù +-> +¿nge_b™s +)) + +1183 +ASN__ENCODE_FAILED +; + +1185  +–m +-> +ty³ +-> +Ý +-> + `­”_’cod” +Ólm->ty³,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1186 +memb_±r +, +po +); + +1188 +a¢_’c_rv®_t + +rv® + = {0,0,0}; + +1189 if( +¥ecs +-> +ext_¡¬t + == -1) + +1190 +ASN__ENCODE_FAILED +; + +1193 if( +ext_ù + && + `­”_put_n¢nwn +( +po +,ƒxt_ù-> +¿nge_b™s +, +´e£Á_’c + - +¥ecs +-> +ext_¡¬t +)) + +1194 +ASN__ENCODE_FAILED +; + +1195 if( + `­”_ݒ_ty³_put +( +–m +-> +ty³ +,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1196 +memb_±r +, +po +)) + +1197 +ASN__ENCODE_FAILED +; + +1198 +rv® +. +’coded + = 0; + +1199 + `ASN__ENCODED_OK +( +rv® +); + +1201 + } +} + +1204 + $CHOICE_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +1205 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +1206 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_CHOICE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1207  +´e£Á +; + +1209 if(! +¥Œ +è ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +1214 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +,¥ecs-> +´es_size +); + +1219 if( +´e£Á + > 0 &&…»£Á <ð +td +-> +–em’ts_couÁ +) { + +1220 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +1221 cÚ¡ * +memb_±r +; + +1223 if( +–m +-> +æags + & +ATF_POINTER +) { + +1224 +memb_±r + = *(cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1225 if(! +memb_±r +è ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +1227 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1232 if( + `cb +( +–m +-> +Çme +, + `¡¾’ +Ólm->Çme), +­p_key +) < 0 + +1233 || + `cb +(": ", 2, +­p_key +) < 0) + +1237  +–m +-> +ty³ +-> +Ý +-> + `´št_¡ruù +Ólm->ty³, +memb_±r +, +žev– +, + +1238 +cb +, +­p_key +); + +1240  ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +1242 + } +} + +1245 + $CHOICE_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +±r +, + +1246 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +1247 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +1248 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1249  +´e£Á +; + +1251 if(! +td + || ! +±r +) + +1254 + `ASN_DEBUG +("F»ešg % a CHOICE", +td +-> +Çme +); + +1259 +´e£Á + = + `_ãtch_´e£Á_idx +( +±r +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +1264 if( +´e£Á + > 0 &&…»£Á <ð +td +-> +–em’ts_couÁ +) { + +1265 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +´e£Á +-1]; + +1266 * +memb_±r +; + +1268 if( +–m +-> +æags + & +ATF_POINTER +) { + +1269 +memb_±r + = *(**)((*) +±r + + +–m +-> +memb_off£t +); + +1270 if( +memb_±r +) + +1271 + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +, +memb_±r +); + +1273 +memb_±r + = (*)((*) +±r + + +–m +-> +memb_off£t +); + +1274 + `ASN_STRUCT_FREE_CONTENTS_ONLY +(* +–m +-> +ty³ +, +memb_±r +); + +1278  +m‘hod +) { + +1279  +ASFM_FREE_EVERYTHING +: + +1280 + `FREEMEM +( +±r +); + +1282  +ASFM_FREE_UNDERLYING +: + +1284  +ASFM_FREE_UNDERLYING_AND_RESET +: + +1285 + `mem£t +( +±r +, 0, +¥ecs +-> +¡ruù_size +); + +1288 + } +} + +1301 + $_ãtch_´e£Á_idx +(cÚ¡ * +¡ruù_±r +,  +´es_off£t +, + +1302  +´es_size +) { + +1303 cÚ¡ * +´e£Á_±r +; + +1304  +´e£Á +; + +1306 +´e£Á_±r + = ((cÚ¡ *) +¡ruù_±r +è+ +´es_off£t +; + +1308  +´es_size +) { + +1309 (): +´e£Á + = *(cÚ¡ *) +´e£Á_±r +; ; + +1310 (): +´e£Á + = *(cÚ¡ *) +´e£Á_±r +; ; + +1311 (): +´e£Á + = *(cÚ¡ *) +´e£Á_±r +; ; + +1314 + `as£¹ +( +´es_size + != ()); + +1318  +´e£Á +; + +1319 + } +} + +1322 + $_£t_´e£Á_idx +(* +¡ruù_±r +,  +´es_off£t +,  +´es_size +, + +1323  +´e£Á +) { + +1324 * +´e£Á_±r +; + +1325 +´e£Á_±r + = ((*) +¡ruù_±r +è+ +´es_off£t +; + +1327  +´es_size +) { + +1328 (): *(*) +´e£Á_±r + = +´e£Á +; ; + +1329 (): *(*) +´e£Á_±r + = +´e£Á +; ; + +1330 (): *(*) +´e£Á_±r + = +´e£Á +; ; + +1333 + `as£¹ +( +´es_size + != ()); + +1335 + } +} + +1338 + $_g‘_memb”_±r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +1339 +a¢_TYPE_memb”_t + ** +–m_±r +, * +´e£Á_out +) { + +1340 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +1341 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1342  +´e£Á +; + +1344 if(! +¥Œ +) { + +1345 * +–m_±r + = +NULL +; + +1346 * +´e£Á_out + = 0; + +1347  +NULL +; + +1353 +´e£Á + = + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +1354 * +´e£Á_out + = +´e£Á +; + +1360 if( +´e£Á + > 0 &&…»£Á <ð +td +-> +–em’ts_couÁ +) { + +1361 +a¢_TYPE_memb”_t + *cÚ¡ +–m + = & +td +-> +–em’ts +[ +´e£Á + - 1]; + +1362 cÚ¡ * +memb_±r +; + +1364 if( +–m +-> +æags + & +ATF_POINTER +) { + +1365 +memb_±r + = + +1366 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1368 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1370 * +–m_±r + = +–m +; + +1371  +memb_±r +; + +1373 * +–m_±r + = +NULL +; + +1374  +NULL +; + +1377 + } +} + +1380 + $CHOICE_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, cÚ¡ * +b±r +) { + +1381 +a¢_TYPE_memb”_t + * +«lm +; + +1382 +a¢_TYPE_memb”_t + * +b–m +; + +1383  +­»£Á + = 0; + +1384  +b´e£Á + = 0; + +1385 cÚ¡ * +amemb” + = + `_g‘_memb”_±r +( +td +, +­Œ +, & +«lm +, & +­»£Á +); + +1386 cÚ¡ * +bmemb” + = + `_g‘_memb”_±r +( +td +, +b±r +, & +b–m +, & +b´e£Á +); + +1388 if( +amemb” + && +bmemb” +) { + +1389 if( +­»£Á + =ð +b´e£Á +) { + +1390 + `as£¹ +( +«lm + =ð +b–m +); + +1391  +«lm +-> +ty³ +-> +Ý +-> + `com·»_¡ruù +זm->ty³, +amemb” +, +bmemb” +); + +1392 } if( +­»£Á + < +b´e£Á +) { + +1397 } if(! +amemb” +) { + +1402 + } +} + +1409 + $CHOICE_v¬ŸÁ_g‘_´e£nû +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +) { + +1410 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +1411 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1412  + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +1413 + } +} + +1422 + $CHOICE_v¬ŸÁ_£t_´e£nû +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +1423  +´e£Á +) { + +1424 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +1425 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1426  +Þd_´e£Á +; + +1428 if(! +¥Œ +) { + +1432 if( +´e£Á + > +td +-> +–em’ts_couÁ +) + +1435 +Þd_´e£Á + = + +1436 + `_ãtch_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +); + +1437 if( +´e£Á + =ð +Þd_´e£Á +) + +1440 if( +Þd_´e£Á + != 0) { + +1441 + `as£¹ +( +Þd_´e£Á + <ð +td +-> +–em’ts_couÁ +); + +1442 + `ASN_STRUCT_RESET +(* +td +, +¥Œ +); + +1445 + `_£t_´e£Á_idx +( +¥Œ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +, +´e£Á +); + +1448 + } +} + +1451 +a¢_¿ndom_fžl_»suÉ_t + + +1452 + $CHOICE_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1453 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡r +, + +1454 +size_t + +max_Ëngth +) { + +1455 cÚ¡ +a¢_CHOICE_¥ecifics_t + * +¥ecs + = + +1456 (cÚ¡ +a¢_CHOICE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1457 +a¢_¿ndom_fžl_»suÉ_t + +»s +; + +1458 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +1459 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +1460 cÚ¡ +a¢_TYPE_memb”_t + * +–m +; + +1461  +´e£Á +; + +1462 * +memb_±r +; + +1463 ** +memb_±r2 +; + +1464 * +¡ + = * +¥Œ +; + +1466 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +1468 () +cÚ¡r +; + +1470 if( +¡ + =ð +NULL +) { + +1471 +¡ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1472 if( +¡ + =ð +NULL +) { + +1473  +»suÉ_çžed +; + +1477 +´e£Á + = + `a¢_¿ndom_b‘w“n +(1, +td +-> +–em’ts_couÁ +); + +1478 +–m + = & +td +-> +–em’ts +[ +´e£Á + - 1]; + +1480 if( +–m +-> +æags + & +ATF_POINTER +) { + +1482 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1484 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +1485 +memb_±r2 + = & +memb_±r +; + +1488 +»s + = +–m +-> +ty³ +-> +Ý +-> + `¿ndom_fžl +Ólm->ty³, +memb_±r2 +, + +1489 & +–m +-> +’codšg_cÚ¡¿šts +, +max_Ëngth +); + +1490 + `_£t_´e£Á_idx +( +¡ +, +¥ecs +-> +´es_off£t +, s³cs-> +´es_size +, +´e£Á +); + +1491 if( +»s +. +code + =ð +ARFILL_OK +) { + +1492 * +¥Œ + = +¡ +; + +1494 if( +¡ + =ð* +¥Œ +) { + +1495 + `ASN_STRUCT_RESET +(* +td +, +¡ +); + +1497 + `ASN_STRUCT_FREE +(* +td +, +¡ +); + +1501  +»s +; + +1502 + } +} + +1505 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_CHOICE + = { + +1506 +CHOICE_ä“ +, + +1507 +CHOICE_´št +, + +1508 +CHOICE_com·» +, + +1509 +CHOICE_decode_b” +, + +1510 +CHOICE_’code_d” +, + +1511 +CHOICE_decode_x” +, + +1512 +CHOICE_’code_x” +, + +1513 #ifdef +ASN_DISABLE_OER_SUPPORT + + +1517 +CHOICE_decode_Ûr +, + +1518 +CHOICE_’code_Ûr +, + +1520 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +1526 +CHOICE_decode_u³r +, + +1527 +CHOICE_’code_u³r +, + +1528 +CHOICE_decode_­” +, + +1529 +CHOICE_’code_­” +, + +1531 +CHOICE_¿ndom_fžl +, + +1532 +CHOICE_outmo¡_g + + + @constr_SEQUENCE.c + +6  + ~ + +7  + ~ + +8  + ~ + +9  + ~<³r_ݒty³.h +> + +16  + #LEFT + (( +size +<( +size_t +) +ùx +-> +Ëá +)?size:(size_t)ùx->Ëá) + + ) + +29  + #SIZE_VIOLATION + ( +ùx +-> +Ëá + >ð0 && ( +size_t +)ùx->Ëá <ð +size +) + + ) + +35 #undeà +ADVANCE + + +36  + #ADVANCE +( +num_by‹s +) do { \ + +37 +size_t + +num + = +num_by‹s +; \ + +38 +±r + = ((cÚ¡ *íŒè+ +num +; \ + +39 +size + -ð +num +; \ + +40 if( +ùx +-> +Ëá + >= 0) \ + +41 +ùx +-> +Ëá + -ð +num +; \ + +42 +cÚsumed_my£lf + +ð +num +; \ + +43 } 0) + + ) + +48 #undeà +NEXT_PHASE + + +49 #undeà +PHASE_OUT + + +50  + #NEXT_PHASE +( +ùx +) do { \ + +51 +ùx +-> +pha£ +++; \ + +52 +ùx +-> +¡• + = 0; \ + +53 } 0) + + ) + +54  + #PHASE_OUT +( +ùx +èdØ{ ctx-> +pha£ + = 10; } 0) + + ) + +59 #undeà +RETURN + + +60  + #RETURN +( +_code +) do { \ + +61 +rv® +. +code + = +_code +; \ + +62 +rv® +. +cÚsumed + = +cÚsumed_my£lf +;\ + +63  +rv® +; \ + +64 } 0) + + ) + +69  + #IN_EXTENSION_GROUP +( +¥ecs +, +memb_idx +) \ + +70 (( +¥ecs +)-> +fœ¡_ex‹nsiÚ + >= 0 \ + +71 && ()( +¥ecs +)-> +fœ¡_ex‹nsiÚ + <ð( +memb_idx +)) + + ) + +77 + $_t2e_cmp +(cÚ¡ * +­ +, cÚ¡ * +bp +) { + +78 cÚ¡ +a¢_TYPE_g2memb”_t + * +a + = (cÚ¡‡¢_TYPE_g2memb”_ˆ*) +­ +; + +79 cÚ¡ +a¢_TYPE_g2memb”_t + * +b + = (cÚ¡‡¢_TYPE_g2memb”_ˆ*) +bp +; + +81  +a_þass + = + `BER_TAG_CLASS +( +a +-> +–_g +); + +82  +b_þass + = + `BER_TAG_CLASS +( +b +-> +–_g +); + +84 if( +a_þass + =ð +b_þass +) { + +85 +b”_Žv_g_t + +a_v®ue + = + `BER_TAG_VALUE +( +a +-> +–_g +); + +86 +b”_Žv_g_t + +b_v®ue + = + `BER_TAG_VALUE +( +b +-> +–_g +); + +88 if( +a_v®ue + =ð +b_v®ue +) { + +89 if( +a +-> +–_no + > +b +->el_no) + +96 } if( +a_v®ue + < +b_v®ue +) + +100 } if( +a_þass + < +b_þass +) { + +105 + } +} + +111 +a¢_dec_rv®_t + + +112 + $SEQUENCE_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +113 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +114 cÚ¡ * +±r +, +size_t + +size +,  +g_mode +) { + +118 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SEQUENCE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +119 cÚ¡ +a¢_TYPE_memb”_t + * +–em’ts + = +td +->elements; + +124 * +¡ + = * +¡ruù_±r +; + +125 +a¢_¡ruù_ùx_t + * +ùx +; + +127 +b”_Žv_g_t + +Žv_g +; + +128 +a¢_dec_rv®_t + +rv® +; + +130 +ssize_t + +cÚsumed_my£lf + = 0; + +131 +size_t + +edx +; + +133 + `ASN_DEBUG +("Decodšg % a SEQUENCE", +td +-> +Çme +); + +138 if( +¡ + == 0) { + +139 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +140 if( +¡ + == 0) { + +141 + `RETURN +( +RC_FAIL +); + +148 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +153  +ùx +-> +pha£ +) { + +161 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, +ùx +, +±r +, +size +, + +162 +g_mode +, 1, & +ùx +-> +Ëá +, 0); + +163 if( +rv® +. +code + !ð +RC_OK +) { + +164 + `ASN_DEBUG +("%sagging check failed: %d", + +165 +td +-> +Çme +, +rv® +. +code +); + +166  +rv® +; + +169 if( +ùx +-> +Ëá + >= 0) + +170 +ùx +-> +Ëá + +ð +rv® +. +cÚsumed +; + +171 + `ADVANCE +( +rv® +. +cÚsumed +); + +173 + `NEXT_PHASE +( +ùx +); + +175 + `ASN_DEBUG +("Structure consumes %ld bytes, buffer %ld", + +176 () +ùx +-> +Ëá +, () +size +); + +190  +edx + = (( +size_t +) +ùx +-> +¡• + >> 1);ƒdx < +td +-> +–em’ts_couÁ +; + +191 +edx +++, +ùx +-> +¡• + = (ctx->step & ~1) + 2) { + +192 * +memb_±r +; + +193 ** +memb_±r2 +; + +194 +ssize_t + +g_Ën +; + +195 +size_t + +Ýt_edx_’d +; + +196 +size_t + +n +; + +197  +u£_b£¬ch +; + +199 if( +ùx +-> +¡• + & 1) + +200  +miüÝha£2 +; + +205 + `ASN_DEBUG +("IÀ% SEQUENCE†eá %d,ƒdx=%" +ASN_PRI_SIZE + " flags=%d" + +207 +td +-> +Çme +, () +ùx +-> +Ëá +, +edx +, + +208 +–em’ts +[ +edx +]. +æags +,ƒËm’ts[edx]. +ÝtiÚ® +, + +209 +td +-> +–em’ts_couÁ +); + +211 if( +ùx +-> +Ëá + == 0 + +214 ( +edx + + +–em’ts +[edx]. +ÝtiÚ® + =ð +td +-> +–em’ts_couÁ +) || + +216 + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +))) { + +217 + `ASN_DEBUG +("End oàSEQUENCE %s", +td +-> +Çme +); + +221 + `PHASE_OUT +( +ùx +); + +222 + `RETURN +( +RC_OK +); + +228 +g_Ën + = + `b”_ãtch_g +( +±r +, +LEFT +, & +Žv_g +); + +229 + `ASN_DEBUG +("Cu¼’ˆg iÀ% SEQUENCE f܃Ëm’ˆ%" +ASN_PRI_SIZE + " " + +231 +td +-> +Çme +, +edx +, +–em’ts +[edx].name, + +232 + `b”_Žv_g_¡ršg +( +Žv_g +), () +g_Ën +, () +LEFT +); + +233  +g_Ën +) { + +234 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +236 -1: + `RETURN +( +RC_FAIL +); + +239 if( +ùx +-> +Ëá + < 0 && ((cÚ¡ +ušt8_t + *) +±r +)[0] == 0) { + +240 if( +LEFT + < 2) { + +241 if( +SIZE_VIOLATION +) { + +242 + `RETURN +( +RC_FAIL +); + +244 + `RETURN +( +RC_WMORE +); + +246 } if(((cÚ¡ +ušt8_t + *) +±r +)[1] == 0) { + +247 + `ASN_DEBUG +("edx = %" +ASN_PRI_SIZE + ", o± = %d,ƒc=%d", +edx +, + +248 +–em’ts +[ +edx +]. +ÝtiÚ® +, +td +-> +–em’ts_couÁ +); + +249 if(( +edx + + +–em’ts +[edx]. +ÝtiÚ® + =ð +td +-> +–em’ts_couÁ +) + +250 || + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) { + +260  +pha£3 +; + +268 +u£_b£¬ch + = 0; + +269 +Ýt_edx_’d + = +edx + + +–em’ts +[edx]. +ÝtiÚ® + + 1; + +270 if( +Ýt_edx_’d + > +td +-> +–em’ts_couÁ +) + +271 +Ýt_edx_’d + = +td +-> +–em’ts_couÁ +; + +272 if( +Ýt_edx_’d + - +edx + > 8) { + +274 +Ýt_edx_’d + = +edx + + 8; + +275 +u£_b£¬ch + = 1; + +278  +n + = +edx +;‚ < +Ýt_edx_’d +;‚++) { + +279 if( + `BER_TAGS_EQUAL +( +Žv_g +, +–em’ts +[ +n +]. +g +)) { + +285 +edx + = +n +; + +286 +ùx +-> +¡• + = 1 + 2 * +edx +; + +287  +miüÝha£2 +; + +288 } if( +–em’ts +[ +n +]. +æags + & +ATF_ANY_TYPE +) { + +293 +edx + = +n +; + +294 +ùx +-> +¡• + = 1 + 2 * +edx +; + +295  +miüÝha£2 +; + +296 } if( +–em’ts +[ +n +]. +g + =ð( +b”_Žv_g_t +)-1) { + +297 +u£_b£¬ch + = 1; + +301 if( +u£_b£¬ch +) { + +306 cÚ¡ +a¢_TYPE_g2memb”_t + * +t2m +; + +307 +a¢_TYPE_g2memb”_t + +key + = {0, 0, 0, 0}; + +308 +key +. +–_g + = +Žv_g +; + +309 +key +. +–_no + = +edx +; + +310 +t2m + = (cÚ¡ +a¢_TYPE_g2memb”_t + *) + `b£¬ch +(& +key +, + +311 +¥ecs +-> +g2– +, s³cs-> +g2–_couÁ +, + +312 ( +¥ecs +-> +g2– +[0]), +_t2e_cmp +); + +313 if( +t2m +) { + +314 cÚ¡ +a¢_TYPE_g2memb”_t + * +be¡ + = 0; + +315 cÚ¡ +a¢_TYPE_g2memb”_t + * +t2m_f +, * +t2m_l +; + +316 +size_t + +edx_max + = +edx + + +–em’ts +[edx]. +ÝtiÚ® +; + +321 +t2m_f + = +t2m + +2m-> +toff_fœ¡ +; + +322 +t2m_l + = +t2m + +2m-> +toff_Ï¡ +; + +323  +t2m + = +t2m_f +;2m <ð +t2m_l +;2m++) { + +324 if( +t2m +-> +–_no + > +edx_max +) ; + +325 if( +t2m +-> +–_no + < +edx +) ; + +326 +be¡ + = +t2m +; + +328 if( +be¡ +) { + +329 +edx + = +be¡ +-> +–_no +; + +330 +ùx +-> +¡• + = 1 + 2 * +edx +; + +331  +miüÝha£2 +; + +334 +n + = +Ýt_edx_’d +; + +336 if( +n + =ð +Ýt_edx_’d +) { + +343 if(! + `IN_EXTENSION_GROUP +( +¥ecs +, + +344 +edx + + +–em’ts +[edx]. +ÝtiÚ® +)) { + +345 + `ASN_DEBUG +("UÃx³ùedag % ×ˆ%" +ASN_PRI_SIZE + ")", + +346 + `b”_Žv_g_¡ršg +( +Žv_g +), +edx +); + +347 + `ASN_DEBUG +("Expectedag %s (%s)%s", + +348 + `b”_Žv_g_¡ršg +( +–em’ts +[ +edx +]. +g +), + +349 +–em’ts +[ +edx +]. +Çme +, + +350 +–em’ts +[ +edx +]. +ÝtiÚ® + + +352 + `RETURN +( +RC_FAIL +); + +355 +ssize_t + +sk +; + +356 +edx + +ð +–em’ts +[edx]. +ÝtiÚ® +; + +358 + `ASN_DEBUG +("Skpšg uÃx³ùed % ×ˆ%" +ASN_PRI_SIZE + ")", + +359 + `b”_Žv_g_¡ršg +( +Žv_g +), +edx +); + +360 +sk + = + `b”_sk_Ëngth +( +Ýt_codec_ùx +, + +361 + `BER_TLV_CONSTRUCTED +( +±r +), + +362 (cÚ¡ *) +±r + + +g_Ën +, + +363 +LEFT + - +g_Ën +); + +364 + `ASN_DEBUG +("Skip†ength %d in %s", + +365 () +sk +, +td +-> +Çme +); + +366  +sk +) { + +367 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +369 -1: + `RETURN +( +RC_FAIL +); + +372 + `ADVANCE +( +sk + + +g_Ën +); + +373 +ùx +-> +¡• + -= 2; + +374 +edx +--; + +382 +ùx +-> +¡• + |= 1; + +383 +miüÝha£2 +: + +384 + `ASN_DEBUG +("InsidSEQUENCE % MF2", +td +-> +Çme +); + +391 if( +–em’ts +[ +edx +]. +æags + & +ATF_POINTER +) { + +393 +memb_±r2 + = (**)((*) +¡ + + +–em’ts +[ +edx +]. +memb_off£t +); + +399 +memb_±r + = (*) +¡ + + +–em’ts +[ +edx +]. +memb_off£t +; + +400 +memb_±r2 + = & +memb_±r +; + +405 if( +–em’ts +[ +edx +]. +æags + & +ATF_OPEN_TYPE +) { + +406 +rv® + = + `OPEN_TYPE_b”_g‘ +( +Ýt_codec_ùx +, +td +, +¡ +, & +–em’ts +[ +edx +], +±r +, +LEFT +); + +408 +rv® + = +–em’ts +[ +edx +]. +ty³ +-> +Ý +-> + `b”_decod” +( +Ýt_codec_ùx +, + +409 +–em’ts +[ +edx +]. +ty³ +, + +410 +memb_±r2 +, +±r +, +LEFT +, + +411 +–em’ts +[ +edx +]. +g_mode +); + +413 + `ASN_DEBUG +("IÀ% SEQUENCE decoded %" +ASN_PRI_SIZE + " %s of %d " + +415 +td +-> +Çme +, +edx +, +–em’ts +[edx]. +ty³ +->name, + +416 () +LEFT +, () +rv® +. +cÚsumed +,„v®. +code +, () +size +); + +417  +rv® +. +code +) { + +418  +RC_OK +: + +420  +RC_WMORE +: + +421 if(! +SIZE_VIOLATION +) { + +422 + `ADVANCE +( +rv® +. +cÚsumed +); + +423 + `RETURN +( +RC_WMORE +); + +425 + `ASN_DEBUG +("Size violation (c->l=%ld <= s=%ld)", + +426 () +ùx +-> +Ëá +, () +size +); + +428  +RC_FAIL +: + +429 + `RETURN +( +RC_FAIL +); + +432 + `ADVANCE +( +rv® +. +cÚsumed +); + +435 +pha£3 +: + +436 +ùx +-> +pha£ + = 3; + +441 + `ASN_DEBUG +("SEQUENCE %s Leftover: %ld, size = %ld", + +442 +td +-> +Çme +, () +ùx +-> +Ëá +, () +size +); + +447  +ùx +-> +Ëá +) { + +448 +ssize_t + +Ž +, +Î +; + +450 +Ž + = + `b”_ãtch_g +( +±r +, +LEFT +, & +Žv_g +); + +451  +Ž +) { + +452 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +454 -1: + `RETURN +( +RC_FAIL +); + +460 if( +ùx +-> +Ëá + < 0 + +461 && ((cÚ¡ +ušt8_t + *) +±r +)[0] == 0) { + +462 if( +LEFT + < 2) { + +463 if( +SIZE_VIOLATION +) + +464 + `RETURN +( +RC_FAIL +); + +466 + `RETURN +( +RC_WMORE +); + +467 } if(((cÚ¡ +ušt8_t + *) +±r +)[1] == 0) { + +471 + `ADVANCE +(2); + +472 +ùx +-> +Ëá +++; + +473 +ùx +-> +pha£ + = 4; + +478 if(! + `IN_EXTENSION_GROUP +( +¥ecs +, +td +-> +–em’ts_couÁ +) + +479 || +ùx +-> +pha£ + == 4) { + +480 + `ASN_DEBUG +("Unexpected continuation " + +483 +td +-> +Çme +, + +484 + `b”_Žv_g_¡ršg +( +Žv_g +)); + +485 + `RETURN +( +RC_FAIL +); + +488 +Î + = + `b”_sk_Ëngth +( +Ýt_codec_ùx +, + +489 + `BER_TLV_CONSTRUCTED +( +±r +), + +490 (cÚ¡ *) +±r + + +Ž +, +LEFT + -l); + +491  +Î +) { + +492 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +494 -1: + `RETURN +( +RC_FAIL +); + +497 + `ADVANCE +( +Ž + + +Î +); + +500 + `PHASE_OUT +( +ùx +); + +503 + `RETURN +( +RC_OK +); + +504 + } +} + +510 +a¢_’c_rv®_t + + +511 + $SEQUENCE_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +512  +g_mode +, +b”_Žv_g_t + +g +, + +513 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +514 +size_t + +compu‹d_size + = 0; + +515 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +516 +ssize_t + +»t +; + +517 +size_t + +edx +; + +519 + `ASN_DEBUG +("%s %s‡s SEQUENCE", + +520 +cb +?"Encodšg":"E¡im©šg", +td +-> +Çme +); + +525  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +526 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +528 cÚ¡ * +memb_±r +; + +529 cÚ¡ *cÚ¡ * +memb_±r2 +; + +531 if( +–m +-> +æags + & +ATF_POINTER +) { + +532 +memb_±r2 + = + +533 (cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +534 if(!* +memb_±r2 +) { + +535 + `ASN_DEBUG +("EËm’ˆ% %" +ASN_PRI_SIZE + "‚ot…resent", + +536 +–m +-> +Çme +, +edx +); + +537 if( +–m +-> +ÝtiÚ® +) + +540 +ASN__ENCODE_FAILED +; + +543 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +544 +memb_±r2 + = & +memb_±r +; + +548 if( +–m +-> +deçuÉ_v®ue_cmp + &&ƒlm-> + `deçuÉ_v®ue_cmp +(* +memb_±r2 +) == 0) + +551 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, * +memb_±r2 +, + +552 +–m +-> +g_mode +,ƒlm-> +g +, + +554 if( +”v® +. +’coded + == -1) + +555  +”v® +; + +556 +compu‹d_size + +ð +”v® +. +’coded +; + +557 + `ASN_DEBUG +("Memb” %" +ASN_PRI_SIZE + " %sƒstimated %ld bytes", + +558 +edx +, +–m +-> +Çme +, () +”v® +. +’coded +); + +564 +»t + = + `d”_wr™e_gs +( +td +, +compu‹d_size +, +g_mode +, 1, +g +, +cb +, +­p_key +); + +565 + `ASN_DEBUG +("Wrِgs: %ld (+%ld)", () +»t +, () +compu‹d_size +); + +566 if( +»t + == -1) + +567 +ASN__ENCODE_FAILED +; + +568 +”v® +. +’coded + = +compu‹d_size + + +»t +; + +570 if(! +cb +è + `ASN__ENCODED_OK +( +”v® +); + +575  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +576 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +577 +a¢_’c_rv®_t + +tm³rv® + = {0,0,0}; + +578 cÚ¡ * +memb_±r +; + +579 cÚ¡ *cÚ¡ * +memb_±r2 +; + +581 if( +–m +-> +æags + & +ATF_POINTER +) { + +582 +memb_±r2 + = + +583 (cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +584 if(!* +memb_±r2 +) ; + +586 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +587 +memb_±r2 + = & +memb_±r +; + +591 if( +–m +-> +deçuÉ_v®ue_cmp + &&ƒlm-> + `deçuÉ_v®ue_cmp +(* +memb_±r2 +) == 0) + +594 +tm³rv® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, * +memb_±r2 +, + +595 +–m +-> +g_mode +,ƒlm-> +g +, +cb +, +­p_key +); + +596 if( +tm³rv® +. +’coded + == -1) + +597  +tm³rv® +; + +598 +compu‹d_size + -ð +tm³rv® +. +’coded +; + +599 + `ASN_DEBUG +("Memb” %" +ASN_PRI_SIZE + " %s of SEQUENCE %sƒncoded in %ld bytes", + +600 +edx +, +–m +-> +Çme +, +td +->Çme, () +tm³rv® +. +’coded +); + +603 if( +compu‹d_size + != 0) + +607 +ASN__ENCODE_FAILED +; + +609 + `ASN__ENCODED_OK +( +”v® +); + +610 + } +} + +613 #undeà +XER_ADVANCE + + +614  + #XER_ADVANCE +( +num_by‹s +) \ + +616 +size_t + +num + = ( +num_by‹s +); \ + +617 +±r + = ((cÚ¡ *íŒè+ +num +; \ + +618 +size + -ð +num +; \ + +619 +cÚsumed_my£lf + +ð +num +; \ + +620 } 0) + + ) + +625 +a¢_dec_rv®_t + + +626 + $SEQUENCE_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +627 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +628 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +±r +, +size_t + +size +) { + +632 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + + +633 ð(cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +634 +a¢_TYPE_memb”_t + * +–em’ts + = +td +->elements; + +635 cÚ¡ * +xml_g + = +Ýt_mÇme + ? o±_mÇm: +td +->xml_tag; + +640 * +¡ + = * +¡ruù_±r +; + +641 +a¢_¡ruù_ùx_t + * +ùx +; + +643 +a¢_dec_rv®_t + +rv® +; + +644 +ssize_t + +cÚsumed_my£lf + = 0; + +645 +size_t + +edx +; + +650 if( +¡ + == 0) { + +651 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +652 if( +¡ + =ð0è + `RETURN +( +RC_FAIL +); + +658 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +669  +edx + = +ùx +-> +¡• +; ctx-> +pha£ + <= 3;) { + +670 +px”_chunk_ty³_e + +ch_ty³ +; + +671 +ssize_t + +ch_size +; + +672 +x”_check_g_e + +tcv +; + +673 +a¢_TYPE_memb”_t + * +–m +; + +678 if( +ùx +-> +pha£ + == 2) { + +679 +a¢_dec_rv®_t + +tm´v® +; + +680 * +memb_±r_dÚtu£ +; + +681 ** +memb_±r2 +; + +683 +–m + = & +td +-> +–em’ts +[ +edx +]; + +685 if( +–m +-> +æags + & +ATF_POINTER +) { + +687 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +689 +memb_±r_dÚtu£ + = (*) +¡ + + +–m +-> +memb_off£t +; + +690 +memb_±r2 + = & +memb_±r_dÚtu£ +; + +693 if( +–m +-> +æags + & +ATF_OPEN_TYPE +) { + +694 +tm´v® + = + `OPEN_TYPE_x”_g‘ +( +Ýt_codec_ùx +, +td +, +¡ +, +–m +, +±r +, +size +); + +697 +tm´v® + = +–m +-> +ty³ +-> +Ý +-> + `x”_decod” +( +Ýt_codec_ùx +, + +698 +–m +-> +ty³ +, +memb_±r2 +,ƒlm-> +Çme +, + +699 +±r +, +size +); + +701 + `XER_ADVANCE +( +tm´v® +. +cÚsumed +); + +702 if( +tm´v® +. +code + !ð +RC_OK +) + +703 + `RETURN +( +tm´v® +. +code +); + +704 +ùx +-> +pha£ + = 1; + +705 +ùx +-> +¡• + = ++ +edx +; + +706 + `ASN_DEBUG +("XER/SEQUENCE…hase => %d, step => %d", + +707 +ùx +-> +pha£ +, ctx-> +¡• +); + +714 +ch_size + = + `x”_Ãxt_tok’ +(& +ùx +-> +cڋxt +, +±r +, +size +, + +715 & +ch_ty³ +); + +716 if( +ch_size + == -1) { + +717 + `RETURN +( +RC_FAIL +); + +719  +ch_ty³ +) { + +720  +PXER_WMORE +: + +721 + `RETURN +( +RC_WMORE +); + +722  +PXER_COMMENT +: + +723  +PXER_TEXT +: + +724 + `XER_ADVANCE +( +ch_size +); + +726  +PXER_TAG +: + +731 +tcv + = + `x”_check_g +( +±r +, +ch_size +, +xml_g +); + +732 + `ASN_DEBUG +("XER/SEQUENCE:cv = %d,…h=%d [%s]", + +733 +tcv +, +ùx +-> +pha£ +, +xml_g +); + +736 if( +ùx +-> +pha£ + == 3) { + +737  + `x”_sk_unknown +( +tcv +, & +ùx +-> +Ëá +)) { + +739 +ùx +-> +pha£ + = 4; + +740 + `RETURN +( +RC_FAIL +); + +742 + `XER_ADVANCE +( +ch_size +); + +745 + `XER_ADVANCE +( +ch_size +); + +746 +ùx +-> +pha£ + = 1; + +749 +ùx +-> +pha£ + = 1; + +754  +tcv +) { + +755  +XCT_CLOSING +: + +756 if( +ùx +-> +pha£ + == 0) ; + +757 +ùx +-> +pha£ + = 0; + +759  +XCT_BOTH +: + +760 if( +ùx +-> +pha£ + == 0) { + +761 if( +edx + >ð +td +-> +–em’ts_couÁ + || + +763 ( +edx + + +–em’ts +[edx]. +ÝtiÚ® + =ð +td +-> +–em’ts_couÁ +) || + +765 + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) { + +766 + `XER_ADVANCE +( +ch_size +); + +767 +ùx +-> +pha£ + = 4; + +768 + `RETURN +( +RC_OK +); + +770 + `ASN_DEBUG +("Prematureƒnd of XER SEQUENCE"); + +771 + `RETURN +( +RC_FAIL +); + +775  +XCT_OPENING +: + +776 if( +ùx +-> +pha£ + == 0) { + +777 + `XER_ADVANCE +( +ch_size +); + +778 +ùx +-> +pha£ + = 1; + +782  +XCT_UNKNOWN_OP +: + +783  +XCT_UNKNOWN_BO +: + +785 + `ASN_DEBUG +("XER/SEQUENCE:cv=%d,…h=%d,ƒdx=%" +ASN_PRI_SIZE + "", + +786 +tcv +, +ùx +-> +pha£ +, +edx +); + +787 if( +ùx +-> +pha£ + != 1) { + +791 if( +edx + < +td +-> +–em’ts_couÁ +) { + +795 +size_t + +n +; + +796 +size_t + +edx_’d + = +edx + + +–em’ts +[edx]. +ÝtiÚ® + + 1; + +797 if( +edx_’d + > +td +-> +–em’ts_couÁ +) + +798 +edx_’d + = +td +-> +–em’ts_couÁ +; + +799  +n + = +edx +;‚ < +edx_’d +;‚++) { + +800 +–m + = & +td +-> +–em’ts +[ +n +]; + +801 +tcv + = + `x”_check_g +( +±r +, +ch_size +, +–m +-> +Çme +); + +802  +tcv +) { + +803  +XCT_BOTH +: + +804  +XCT_OPENING +: + +808 +ùx +-> +¡• + = +edx + = +n +; + +809 +ùx +-> +pha£ + = 2; + +811  +XCT_UNKNOWN_OP +: + +812  +XCT_UNKNOWN_BO +: + +815 +n + = +edx_’d +; + +820 if( +n + !ð +edx_’d +) + +823 + `ASN_DEBUG +("Ouˆoàdefšed memb”s: %" +ASN_PRI_SIZE + "/%u", + +824 +edx +, +td +-> +–em’ts_couÁ +); + +828 if( + `IN_EXTENSION_GROUP +( +¥ecs +, + +829 +edx + + (edx < +td +-> +–em’ts_couÁ + + +830 ? +–em’ts +[ +edx +]. +ÝtiÚ® + : 0))) { + +831 + `ASN_DEBUG +("GهÁic©edƒx‹nsiڇˆ%" +ASN_PRI_SIZE + "", + +832 +edx +); + +838 if( +tcv + & +XCT_CLOSING +) { + +841 +ùx +-> +Ëá + = 1; + +842 +ùx +-> +pha£ + = 3; + +844 + `XER_ADVANCE +( +ch_size +); + +853 + `ASN_DEBUG +("Unexpected XMLag in SEQUENCE [%c%c%c%c%c%c]", + +854 +size +>0?((cÚ¡ *) +±r +)[0]:'.', + +855 +size +>1?((cÚ¡ *) +±r +)[1]:'.', + +856 +size +>2?((cÚ¡ *) +±r +)[2]:'.', + +857 +size +>3?((cÚ¡ *) +±r +)[3]:'.', + +858 +size +>4?((cÚ¡ *) +±r +)[4]:'.', + +859 +size +>5?((cÚ¡ *) +±r +)[5]:'.'); + +863 +ùx +-> +pha£ + = 4; + +864 + `RETURN +( +RC_FAIL +); + +865 + } +} + +867 +a¢_’c_rv®_t + + +868 + $SEQUENCE_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +869  +žev– +, +x”_’cod”_æags_e + +æags +, + +870 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +871 +a¢_’c_rv®_t + +” + = {0,0,0}; + +872  +xÿn + = ( +æags + & +XER_F_CANONICAL +); + +873 +a¢_TYPE_desütÜ_t + * +tmp_def_v®_td + = 0; + +874 * +tmp_def_v® + = 0; + +875 +size_t + +edx +; + +877 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +879 +” +. +’coded + = 0; + +881  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +882 +a¢_’c_rv®_t + +tm³r + = {0,0,0}; + +883 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +884 cÚ¡ * +memb_±r +; + +885 cÚ¡ * +mÇme + = +–m +-> +Çme +; + +886  +mËn + = + `¡¾’ +( +mÇme +); + +888 if( +–m +-> +æags + & +ATF_POINTER +) { + +889 +memb_±r + = + +890 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +891 if(! +memb_±r +) { + +892 + `as£¹ +( +tmp_def_v® + == 0); + +893 if( +–m +-> +deçuÉ_v®ue_£t +) { + +894 if( +–m +-> + `deçuÉ_v®ue_£t +(& +tmp_def_v® +)) { + +895 +ASN__ENCODE_FAILED +; + +897 +memb_±r + = +tmp_def_v® +; + +898 +tmp_def_v®_td + = +–m +-> +ty³ +; + +900 } if( +–m +-> +ÝtiÚ® +) { + +904 +ASN__ENCODE_FAILED +; + +908 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +911 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– +); + +912 + `ASN__CALLBACK3 +("<", 1, +mÇme +, +mËn +, ">", 1); + +915 +tm³r + = +–m +-> +ty³ +-> +Ý +-> + `x”_’cod” +Ólm->ty³, +memb_±r +, +žev– + + 1, + +916 +æags +, +cb +, +­p_key +); + +917 if( +tmp_def_v® +) { + +918 + `ASN_STRUCT_FREE +(* +tmp_def_v®_td +, +tmp_def_v® +); + +919 +tmp_def_v® + = 0; + +921 if( +tm³r +. +’coded + == -1) mper; + +922 +” +. +’coded + +ð +tm³r +.encoded; + +924 + `ASN__CALLBACK3 +("", 1); + +927 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– + - 1); + +929 + `ASN__ENCODED_OK +( +” +); + +930 +cb_çžed +: + +931 if( +tmp_def_v® +è + `ASN_STRUCT_FREE +(* +tmp_def_v®_td +,mp_def_val); + +932 +ASN__ENCODE_FAILED +; + +933 + } +} + +936 + $SEQUENCE_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +937 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +938 +size_t + +edx +; + +939  +»t +; + +941 if(! +¥Œ +è ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +944 if( + `cb +( +td +-> +Çme +, + `¡¾’ +Ñd->Çme), +­p_key +) < 0 + +945 || + `cb +(" ::ð{", 6, +­p_key +) < 0) + +948  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +949 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +950 cÚ¡ * +memb_±r +; + +952 if( +–m +-> +æags + & +ATF_POINTER +) { + +953 +memb_±r + = *(cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +954 if(! +memb_±r +) { + +955 if( +–m +-> +ÝtiÚ® +) ; + +960 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +964 + `_i_INDENT +(1); + +967 if( + `cb +( +–m +-> +Çme +, + `¡¾’ +Ólm->Çme), +­p_key +) < 0 + +968 || + `cb +(": ", 2, +­p_key +) < 0) + +972 +»t + = +–m +-> +ty³ +-> +Ý +-> + `´št_¡ruù +Ólm->ty³, +memb_±r +, +žev– + + 1, + +973 +cb +, +­p_key +); + +974 if( +»t +) „et; + +977 +žev– +--; + +978 + `_i_INDENT +(1); + +980  ( + `cb +("}", 1, +­p_key +) < 0) ? -1 : 0; + +981 + } +} + +984 + $SEQUENCE_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +¥Œ +, + +985 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +986 +size_t + +edx +; + +987 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = + +988 (cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +989 +a¢_¡ruù_ùx_t + * +ùx +; + +991 if(! +td + || ! +¥Œ +) + +994 + `ASN_DEBUG +("F»ešg % a SEQUENCE", +td +-> +Çme +); + +996  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +997 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +998 * +memb_±r +; + +999 if( +–m +-> +æags + & +ATF_POINTER +) { + +1000 +memb_±r + = *(**)((*) +¥Œ + + +–m +-> +memb_off£t +); + +1001 if( +memb_±r +) + +1002 + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +, +memb_±r +); + +1004 +memb_±r + = (*)((*) +¥Œ + + +–m +-> +memb_off£t +); + +1005 + `ASN_STRUCT_FREE_CONTENTS_ONLY +(* +–m +-> +ty³ +, +memb_±r +); + +1010 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¥Œ + + +¥ecs +-> +ùx_off£t +); + +1011 + `FREEMEM +( +ùx +-> +±r +); + +1013  +m‘hod +) { + +1014  +ASFM_FREE_EVERYTHING +: + +1015 + `FREEMEM +( +¥Œ +); + +1017  +ASFM_FREE_UNDERLYING +: + +1019  +ASFM_FREE_UNDERLYING_AND_RESET +: + +1020 + `mem£t +( + +1021 +¥Œ +, 0, + +1022 ((cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *)( +td +-> +¥ecifics +))-> +¡ruù_size +); + +1025 + } +} + +1028 + $SEQUENCE_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +1029 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +1030 +size_t + +edx +; + +1032 if(! +¥Œ +) { + +1033 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +1035 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +1042  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1043 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1044 cÚ¡ * +memb_±r +; + +1046 if( +–m +-> +æags + & +ATF_POINTER +) { + +1047 +memb_±r + = *(cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1048 if(! +memb_±r +) { + +1049 if( +–m +-> +ÝtiÚ® +) + +1051 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +1053 +td +-> +Çme +, +–m +->Çme, +__FILE__ +, +__LINE__ +); + +1057 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1060 if( +–m +-> +’codšg_cÚ¡¿šts +. +g’”®_cÚ¡¿šts +) { + +1061  +»t + = +–m +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +Ólm-> +ty³ +, +memb_±r +, + +1062 +ùçžcb +, +­p_key +); + +1063 if( +»t +) „et; + +1065  +–m +-> +ty³ +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +(elm->type, + +1066 +memb_±r +, +ùçžcb +, +­p_key +); + +1071 + } +} + +1073 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +1075 +a¢_dec_rv®_t + + +1076 + $SEQUENCE_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1077 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1078 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +1079 +a¢_³r_d©a_t + * +pd +) { + +1080 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SEQUENCE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1081 * +¡ + = * +¥Œ +; + +1082  +ex»£Á +; + +1083 +ušt8_t + * +Ý»s +; + +1084 +a¢_³r_d©a_t + +Ýmd +; + +1085 +a¢_dec_rv®_t + +rv +; + +1086 +size_t + +edx +; + +1088 () +cÚ¡¿šts +; + +1090 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +1091 +ASN__DECODE_FAILED +; + +1093 if(! +¡ +) { + +1094 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1095 if(! +¡ +è +ASN__DECODE_FAILED +; + +1098 + `ASN_DEBUG +("Decodšg % a SEQUENCE (UPER)", +td +-> +Çme +); + +1101 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1102 +ex»£Á + = 0; + +1104 +ex»£Á + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1105 if( +ex»£Á + < 0è +ASN__DECODE_STARVED +; + +1109 + `mem£t +(& +Ýmd +, 0, (opmd)); + +1110 if( +¥ecs +-> +roms_couÁ +) { + +1111 +Ý»s + = ( +ušt8_t + *) + `MALLOC +((( +¥ecs +-> +roms_couÁ + + 7) >> 3) + 1); + +1112 if(! +Ý»s +è +ASN__DECODE_FAILED +; + +1114 if( + `³r_g‘_mªy_b™s +( +pd +, +Ý»s +, 0, +¥ecs +-> +roms_couÁ +)) { + +1115 + `FREEMEM +( +Ý»s +); + +1116 +ASN__DECODE_STARVED +; + +1118 +Ýmd +. +bufãr + = +Ý»s +; + +1119 +Ýmd +. +nb™s + = +¥ecs +-> +roms_couÁ +; + +1120 + `ASN_DEBUG +("Read in…resence bitmap for %s of %d bits (%x..)", + +1121 +td +-> +Çme +, +¥ecs +-> +roms_couÁ +, * +Ý»s +); + +1123 +Ý»s + = 0; + +1129  +edx + = 0; + +1130 +edx + < ( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0 ? +td +-> +–em’ts_couÁ + + +1131 : ( +size_t +) +¥ecs +-> +fœ¡_ex‹nsiÚ +); + +1132 +edx +++) { + +1133 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1134 * +memb_±r +; + +1135 ** +memb_±r2 +; + +1137 + `as£¹ +(! + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)); + +1140 if( +–m +-> +æags + & +ATF_POINTER +) { + +1141 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1143 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +1144 +memb_±r2 + = & +memb_±r +; + +1148 if( +–m +-> +ÝtiÚ® +) { + +1149  +´e£Á + = + `³r_g‘_ãw_b™s +(& +Ýmd +, 1); + +1150 + `ASN_DEBUG +("Member %s->%s is optional,…=%d (%d->%d)", + +1151 +td +-> +Çme +, +–m +->Çme, +´e£Á +, + +1152 () +Ýmd +. +nboff +, ()Ýmd. +nb™s +); + +1153 if( +´e£Á + == 0) { + +1155 if( +–m +-> +deçuÉ_v®ue_£t +) { + +1157 if( +–m +-> + `deçuÉ_v®ue_£t +( +memb_±r2 +)) { + +1158 + `FREEMEM +( +Ý»s +); + +1159 +ASN__DECODE_FAILED +; + +1161 + `ASN_DEBUG +("Filled-in default"); + +1170 + `ASN_DEBUG +("Decodšg memb” \"%s\" iÀ%s", +–m +-> +Çme +, +td +->name); + +1172 if( +–m +-> +æags + & +ATF_OPEN_TYPE +) { + +1173 +rv + = + `OPEN_TYPE_u³r_g‘ +( +Ýt_codec_ùx +, +td +, +¡ +, +–m +, +pd +); + +1175 +rv + = +–m +-> +ty³ +-> +Ý +-> + `u³r_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +1176 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +1178 if( +rv +. +code + !ð +RC_OK +) { + +1179 + `ASN_DEBUG +("Failed decode %s in %s", + +1180 +–m +-> +Çme +, +td +->name); + +1181 + `FREEMEM +( +Ý»s +); + +1182  +rv +; + +1187 + `FREEMEM +( +Ý»s +); + +1192 if( +ex»£Á +) { + +1193 +ssize_t + +bmËngth +; + +1194 +ušt8_t + * +•»s +; + +1195 +a¢_³r_d©a_t + +•md +; + +1197 +bmËngth + = + `u³r_g‘_n¦’gth +( +pd +); + +1198 if( +bmËngth + < 0è +ASN__DECODE_STARVED +; + +1200 + `ASN_DEBUG +("Ex‹nsiÚ %" +ASN_PRI_SSIZE + "…»£Á iÀ%s", +bmËngth +, +td +-> +Çme +); + +1202 +•»s + = ( +ušt8_t + *) + `MALLOC +(( +bmËngth + + 15) >> 3); + +1203 if(! +•»s +è +ASN__DECODE_STARVED +; + +1206 if( + `³r_g‘_mªy_b™s +( +pd +, +•»s +, 0, +bmËngth +)) { + +1207 + `FREEMEM +( +•»s +); + +1208 +ASN__DECODE_STARVED +; + +1211 + `mem£t +(& +•md +, 0, (epmd)); + +1212 +•md +. +bufãr + = +•»s +; + +1213 +•md +. +nb™s + = +bmËngth +; + +1214 + `ASN_DEBUG +("Read inƒxtensions bitmap for %s of %ld bits (%x..)", + +1215 +td +-> +Çme +, () +bmËngth +, * +•»s +); + +1218  +edx + = +¥ecs +-> +fœ¡_ex‹nsiÚ +;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1219 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1220 * +memb_±r +; + +1221 ** +memb_±r2 +; + +1222  +´e£Á +; + +1225 if( +–m +-> +æags + & +ATF_POINTER +) { + +1226 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1228 +memb_±r + = (*)((*) +¡ + + +–m +-> +memb_off£t +); + +1229 +memb_±r2 + = & +memb_±r +; + +1232 +´e£Á + = + `³r_g‘_ãw_b™s +(& +•md +, 1); + +1233 if( +´e£Á + <= 0) { + +1234 if( +´e£Á + < 0) ; + +1238 + `ASN_DEBUG +("Decodšg memb” % š % %p", +–m +-> +Çme +, +td +->name, + +1239 * +memb_±r2 +); + +1240 +rv + = + `u³r_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +–m +-> +ty³ +, + +1241 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1242 +memb_±r2 +, +pd +); + +1243 if( +rv +. +code + !ð +RC_OK +) { + +1244 + `FREEMEM +( +•»s +); + +1245  +rv +; + +1252 + `ASN_DEBUG +("Getting overflowƒxtensions"); + +1253  + `³r_g‘_ãw_b™s +(& +•md +, 1)) { + +1257 if( + `u³r_ݒ_ty³_sk +( +Ýt_codec_ùx +, +pd +)) { + +1258 + `FREEMEM +( +•»s +); + +1259 +ASN__DECODE_STARVED +; + +1261 + `ASN_DEBUG +("Skipped overflowƒxtension"); + +1267 + `FREEMEM +( +•»s +); + +1270 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + >= 0) { + +1271  +i +; + +1273  +i + = +¥ecs +-> +roms_couÁ +; i < s³cs->roms_couÁ + s³cs-> +aoms_couÁ +; + +1274 +i +++) { + +1275 +a¢_TYPE_memb”_t + * +–m +; + +1276 ** +memb_±r2 +; + +1278 +edx + = +¥ecs +-> +oms +[ +i +]; + +1279 +–m + = & +td +-> +–em’ts +[ +edx +]; + +1281 if(! +–m +-> +deçuÉ_v®ue_£t +) ; + +1284 if( +–m +-> +æags + & +ATF_POINTER +) { + +1285 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1286 if(* +memb_±r2 +) ; + +1292 if( +–m +-> + `deçuÉ_v®ue_£t +( +memb_±r2 +)) { + +1293 +ASN__DECODE_FAILED +; + +1298 +rv +. +cÚsumed + = 0; + +1299 +rv +. +code + = +RC_OK +; + +1300  +rv +; + +1301 + } +} + +1304 + $SEQUENCE__hªdË_ex‹nsiÚs +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +1305 +a¢_³r_ou_t + * +po1 +,‡¢_³r_ou_ˆ* +po2 +) { + +1306 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = + +1307 (cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1308  +exts_´e£Á + = 0; + +1309  +exts_couÁ + = 0; + +1310 +size_t + +edx +; + +1312 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1317  +edx + = +¥ecs +-> +fœ¡_ex‹nsiÚ +;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1318 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1319 cÚ¡ * +memb_±r +; + +1320 cÚ¡ *cÚ¡ * +memb_±r2 +; + +1321  +´e£Á +; + +1324 if( +–m +-> +æags + & +ATF_POINTER +) { + +1325 +memb_±r2 + = + +1326 (cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1327 +´e£Á + = (* +memb_±r2 + != 0); + +1329 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1330 +memb_±r2 + = & +memb_±r +; + +1331 +´e£Á + = 1; + +1334 + `ASN_DEBUG +("checkšg %s:% (@%" +ASN_PRI_SIZE + "è´e£Á => %d", +–m +-> +Çme +, + +1335 +–m +-> +ty³ +-> +Çme +, +edx +, +´e£Á +); + +1336 +exts_couÁ +++; + +1337 +exts_´e£Á + +ð +´e£Á +; + +1340 if( +po1 + && + `³r_put_ãw_b™s +Õo1, +´e£Á +, 1)) { + +1344 if( +po2 + && +´e£Á + + +1345 && + `u³r_ݒ_ty³_put +( +–m +-> +ty³ +, + +1346 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1347 * +memb_±r2 +, +po2 +)) + +1351  +exts_´e£Á + ? +exts_couÁ + : 0; + +1352 + } +} + +1354 +a¢_’c_rv®_t + + +1355 + $SEQUENCE_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1356 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +1357 +a¢_³r_ou_t + * +po +) { + +1358 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + + +1359 ð(cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1360 +a¢_’c_rv®_t + +” + = {0,0,0}; + +1361  +n_ex‹nsiÚs +; + +1362 +size_t + +edx +; + +1363 +size_t + +i +; + +1365 () +cÚ¡¿šts +; + +1367 if(! +¥Œ +) + +1368 +ASN__ENCODE_FAILED +; + +1370 +” +. +’coded + = 0; + +1372 + `ASN_DEBUG +("Encodšg % a SEQUENCE (UPER)", +td +-> +Çme +); + +1378 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1379 +n_ex‹nsiÚs + = 0; + +1381 +n_ex‹nsiÚs + = + `SEQUENCE__hªdË_ex‹nsiÚs +( +td +, +¥Œ +, 0, 0); + +1382 if( +n_ex‹nsiÚs + < 0è +ASN__ENCODE_FAILED +; + +1383 if( + `³r_put_ãw_b™s +( +po +, +n_ex‹nsiÚs + ? 1 : 0, 1)) { + +1384 +ASN__ENCODE_FAILED +; + +1389  +i + = 0; i < +¥ecs +-> +roms_couÁ +; i++) { + +1390 +a¢_TYPE_memb”_t + * +–m +; + +1391 cÚ¡ * +memb_±r +; + +1392 cÚ¡ *cÚ¡ * +memb_±r2 +; + +1393  +´e£Á +; + +1395 +edx + = +¥ecs +-> +oms +[ +i +]; + +1396 +–m + = & +td +-> +–em’ts +[ +edx +]; + +1399 if( +–m +-> +æags + & +ATF_POINTER +) { + +1400 +memb_±r2 + = + +1401 (cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1402 +´e£Á + = (* +memb_±r2 + != 0); + +1404 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1405 +memb_±r2 + = & +memb_±r +; + +1406 +´e£Á + = 1; + +1410 if( +´e£Á + && +–m +-> +deçuÉ_v®ue_cmp + + +1411 && +–m +-> + `deçuÉ_v®ue_cmp +(* +memb_±r2 +) == 0) + +1412 +´e£Á + = 0; + +1414 + `ASN_DEBUG +("Element %s %s %s->%s is %s", + +1415 +–m +-> +æags + & +ATF_POINTER + ? "ptr" : "inline", + +1416 +–m +-> +deçuÉ_v®ue_cmp + ? "def" : "wtv", + +1417 +td +-> +Çme +, +–m +->Çme, +´e£Á + ? "present" : "absent"); + +1418 if( + `³r_put_ãw_b™s +( +po +, +´e£Á +, 1)) + +1419 +ASN__ENCODE_FAILED +; + +1425 + `ASN_DEBUG +("fœ¡_ex‹nsiÚ = %d,ƒËm’t ð%d", +¥ecs +-> +fœ¡_ex‹nsiÚ +, + +1426 +td +-> +–em’ts_couÁ +); + +1427  +edx + = 0; + +1428 +edx + < (( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0è? +td +-> +–em’ts_couÁ + + +1429 : ( +size_t +) +¥ecs +-> +fœ¡_ex‹nsiÚ +); + +1430 +edx +++) { + +1431 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1432 cÚ¡ * +memb_±r +; + +1433 cÚ¡ *cÚ¡ * +memb_±r2 +; + +1435 + `ASN_DEBUG +("Abouˆtؒcod%s", +–m +-> +ty³ +-> +Çme +); + +1438 if( +–m +-> +æags + & +ATF_POINTER +) { + +1439 +memb_±r2 + = + +1440 (cÚ¡ *cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1441 if(!* +memb_±r2 +) { + +1442 + `ASN_DEBUG +("EËm’ˆ% %" +ASN_PRI_SIZE + "‚ot…resent", + +1443 +–m +-> +Çme +, +edx +); + +1444 if( +–m +-> +ÝtiÚ® +) + +1447 +ASN__ENCODE_FAILED +; + +1450 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1451 +memb_±r2 + = & +memb_±r +; + +1455 if( +–m +-> +deçuÉ_v®ue_cmp + &&ƒlm-> + `deçuÉ_v®ue_cmp +(* +memb_±r2 +) == 0) + +1458 + `ASN_DEBUG +("Encodšg %s->%s:%s", +td +-> +Çme +, +–m +->Çme,ƒlm-> +ty³ +->name); + +1459 +” + = +–m +-> +ty³ +-> +Ý +-> + `u³r_’cod” +( + +1460 +–m +-> +ty³ +,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, * +memb_±r2 +, + +1461 +po +); + +1462 if( +” +. +’coded + == -1) ƒr; + +1466 if(! +n_ex‹nsiÚs +è + `ASN__ENCODED_OK +( +” +); + +1468 + `ASN_DEBUG +("L’gth oàex‹nsiÚ %d b™-m­", +n_ex‹nsiÚs +); + +1470 if( + `u³r_put_n¦’gth +( +po +, +n_ex‹nsiÚs +)) + +1471 +ASN__ENCODE_FAILED +; + +1473 + `ASN_DEBUG +("B™-m­ oà%dƒËm’ts", +n_ex‹nsiÚs +); + +1476 if( + `SEQUENCE__hªdË_ex‹nsiÚs +( +td +, +¥Œ +, +po +, 0è!ð +n_ex‹nsiÚs +) + +1477 +ASN__ENCODE_FAILED +; + +1479 + `ASN_DEBUG +("Wr™šg %dƒx‹nsiÚs", +n_ex‹nsiÚs +); + +1481 if( + `SEQUENCE__hªdË_ex‹nsiÚs +( +td +, +¥Œ +, 0, +po +è!ð +n_ex‹nsiÚs +) + +1482 +ASN__ENCODE_FAILED +; + +1484 + `ASN__ENCODED_OK +( +” +); + +1485 + } +} + +1487 +a¢_dec_rv®_t + + +1488 + $SEQUENCE_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1489 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1490 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +1491 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SEQUENCE_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1492 * +¡ + = * +¥Œ +; + +1493  +ex»£Á +; + +1494 +ušt8_t + * +Ý»s +; + +1495 +a¢_³r_d©a_t + +Ýmd +; + +1496 +a¢_dec_rv®_t + +rv +; + +1497 +size_t + +edx +; + +1499 () +cÚ¡¿šts +; + +1501 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +1502 +ASN__DECODE_FAILED +; + +1504 if(! +¡ +) { + +1505 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1506 if(! +¡ +è +ASN__DECODE_FAILED +; + +1509 + `ASN_DEBUG +("Decodšg % a SEQUENCE (APER)", +td +-> +Çme +); + +1512 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1513 +ex»£Á + = 0; + +1515 +ex»£Á + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1516 if( +ex»£Á + < 0è +ASN__DECODE_STARVED +; + +1520 + `mem£t +(& +Ýmd +, 0, (opmd)); + +1521 if( +¥ecs +-> +roms_couÁ +) { + +1522 +Ý»s + = ( +ušt8_t + *) + `MALLOC +((( +¥ecs +-> +roms_couÁ + + 7) >> 3) + 1); + +1523 if(! +Ý»s +è +ASN__DECODE_FAILED +; + +1525 if( + `³r_g‘_mªy_b™s +( +pd +, +Ý»s +, 0, +¥ecs +-> +roms_couÁ +)) { + +1526 + `FREEMEM +( +Ý»s +); + +1527 +ASN__DECODE_STARVED +; + +1529 +Ýmd +. +bufãr + = +Ý»s +; + +1530 +Ýmd +. +nb™s + = +¥ecs +-> +roms_couÁ +; + +1531 + `ASN_DEBUG +("Read in…resence bitmap for %s of %d bits (%x..)", + +1532 +td +-> +Çme +, +¥ecs +-> +roms_couÁ +, * +Ý»s +); + +1534 +Ý»s + = 0; + +1540  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1541 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1542 * +memb_±r +; + +1543 ** +memb_±r2 +; + +1545  +·ddšg +; + +1548 if( + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) + +1552 if( +–m +-> +æags + & +ATF_POINTER +) { + +1553 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1555 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +1556 +memb_±r2 + = & +memb_±r +; + +1560 +·ddšg + = (8 - ( +pd +-> +moved + % 8)) % 8; + +1561 if( +·ddšg + > 0) + +1562 + `ASN_DEBUG +("F܃Ëm’ˆ%s,off£tð%ld Paddšg b™ ð%d", +td +-> +Çme +, +pd +-> +moved +, +·ddšg +); + +1564 + `³r_g‘_ãw_b™s +( +pd +, +·ddšg +); + +1566 if( +edx + !ð( +td +-> +–em’ts_couÁ +-1)) + +1567 + `³r_g‘_ãw_b™s +( +pd +, +·ddšg +); + +1569 if( +¥ecs +-> +roms_couÁ + && ( +·ddšg + > 0)) + +1570 + `ASN_DEBUG +(">>>>>‚Ù skpšg…addšg oà%d b™ f܃Ëm’t:%ld ouˆoà%d", +·ddšg +, +edx +, +td +-> +–em’ts_couÁ +); + +1572 + `³r_g‘_ãw_b™s +( +pd +, +·ddšg +); + +1577 if( +–m +-> +ÝtiÚ® +) { + +1578  +´e£Á + = + `³r_g‘_ãw_b™s +(& +Ýmd +, 1); + +1579 + `ASN_DEBUG +("Member %s->%s is optional,…=%d (%d->%d)", + +1580 +td +-> +Çme +, +–m +->Çme, +´e£Á +, + +1581 () +Ýmd +. +nboff +, ()Ýmd. +nb™s +); + +1582 if( +´e£Á + == 0) { + +1584 if( +–m +-> +deçuÉ_v®ue_£t +) { + +1586 if( +–m +-> + `deçuÉ_v®ue_£t +( +memb_±r2 +)) { + +1587 + `FREEMEM +( +Ý»s +); + +1588 +ASN__DECODE_FAILED +; + +1590 + `ASN_DEBUG +("Filled-in default"); + +1599 + `ASN_DEBUG +("Decodšg memb” \"%s\" iÀ%s", +–m +-> +Çme +, +td +->name); + +1601 if( +–m +-> +æags + & +ATF_OPEN_TYPE +) { + +1602 +rv + = + `OPEN_TYPE_­”_g‘ +( +Ýt_codec_ùx +, +td +, +¡ +, +–m +, +pd +); + +1604 +rv + = +–m +-> +ty³ +-> +Ý +-> + `­”_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +1605 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +1607 if( +rv +. +code + !ð +RC_OK +) { + +1608 + `ASN_DEBUG +("Failed decode %s in %s", + +1609 +–m +-> +Çme +, +td +->name); + +1610 + `FREEMEM +( +Ý»s +); + +1611  +rv +; + +1616 + `FREEMEM +( +Ý»s +); + +1621 if( +ex»£Á +) { + +1622 +ssize_t + +bmËngth +; + +1623 +ušt8_t + * +•»s +; + +1624 +a¢_³r_d©a_t + +•md +; + +1626 +bmËngth + = + `­”_g‘_n¦’gth +( +pd +); + +1627 if( +bmËngth + < 0è +ASN__DECODE_STARVED +; + +1629 + `ASN_DEBUG +("Ex‹nsiÚ %" +ASN_PRI_SSIZE + "…»£Á iÀ%s", +bmËngth +, +td +-> +Çme +); + +1631 +•»s + = ( +ušt8_t + *) + `MALLOC +(( +bmËngth + + 15) >> 3); + +1632 if(! +•»s +è +ASN__DECODE_STARVED +; + +1635 if( + `³r_g‘_mªy_b™s +( +pd +, +•»s +, 0, +bmËngth +)) + +1636 +ASN__DECODE_STARVED +; + +1638 + `mem£t +(& +•md +, 0, (epmd)); + +1639 +•md +. +bufãr + = +•»s +; + +1640 +•md +. +nb™s + = +bmËngth +; + +1641 + `ASN_DEBUG +("Read inƒxtensions bitmap for %s of %ld bits (%x..)", + +1642 +td +-> +Çme +, +bmËngth +, * +•»s +); + +1645  +edx + = +¥ecs +-> +fœ¡_ex‹nsiÚ +;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1646 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1647 * +memb_±r +; + +1648 ** +memb_±r2 +; + +1649  +´e£Á +; + +1651 if(! + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) { + +1652 + `ASN_DEBUG +("%ld i nكx‹nsiÚ", +edx +); + +1657 if( +–m +-> +æags + & +ATF_POINTER +) { + +1658 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +1660 +memb_±r + = (*)((*) +¡ + + +–m +-> +memb_off£t +); + +1661 +memb_±r2 + = & +memb_±r +; + +1664 +´e£Á + = + `³r_g‘_ãw_b™s +(& +•md +, 1); + +1665 if( +´e£Á + <= 0) { + +1666 if( +´e£Á + < 0) ; + +1670 + `ASN_DEBUG +("Decodšg memb” % š % %p", +–m +-> +Çme +, +td +->Çme, * +memb_±r2 +); + +1671 +rv + = + `­”_ݒ_ty³_g‘ +( +Ýt_codec_ùx +, +–m +-> +ty³ +, + +1672 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r2 +, +pd +); + +1673 if( +rv +. +code + !ð +RC_OK +) { + +1674 + `FREEMEM +( +•»s +); + +1675  +rv +; + +1682 + `ASN_DEBUG +("Getting overflowƒxtensions"); + +1683  + `³r_g‘_ãw_b™s +(& +•md +, 1)) { + +1689 if( + `­”_ݒ_ty³_sk +( +Ýt_codec_ùx +, +pd +)) { + +1690 + `FREEMEM +( +•»s +); + +1691 +ASN__DECODE_STARVED +; + +1697 + `FREEMEM +( +•»s +); + +1701  +edx + = +¥ecs +-> +roms_couÁ +;ƒdx < specs->roms_count + +1702 + +¥ecs +-> +aoms_couÁ +; +edx +++) { + +1703 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1704 ** +memb_±r2 +; + +1706 if(! +–m +-> +deçuÉ_v®ue_£t +) ; + +1709 if( +–m +-> +æags + & +ATF_POINTER +) { + +1710 +memb_±r2 + = (**)((*) +¡ + + +1711 + +–m +-> +memb_off£t +); + +1712 if(* +memb_±r2 +) ; + +1718 if( +–m +-> + `deçuÉ_v®ue_£t +( +memb_±r2 +)) { + +1719 +ASN__DECODE_FAILED +; + +1723 +rv +. +cÚsumed + = 0; + +1724 +rv +. +code + = +RC_OK +; + +1725  +rv +; + +1726 + } +} + +1729 + $SEQUENCE_hªdË_ex‹nsiÚs_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1730 cÚ¡ * +¥Œ +, + +1731 +a¢_³r_ou_t + * +po1 +,‡¢_³r_ou_ˆ* +po2 +) { + +1732 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + + +1733 ð(cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1734  +exts_´e£Á + = 0; + +1735  +exts_couÁ + = 0; + +1736 +size_t + +edx +; + +1738 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1743  +edx + = +¥ecs +-> +fœ¡_ex‹nsiÚ +;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1744 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1745 cÚ¡ * +memb_±r +; + +1746 cÚ¡ * cÚ¡ * +memb_±r2 +; + +1747  +´e£Á +; + +1749 if(! + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) { + +1750 + `ASN_DEBUG +("% (@%ldèi nكx‹nsiÚ", +–m +-> +ty³ +-> +Çme +, +edx +); + +1755 if( +–m +-> +æags + & +ATF_POINTER +) { + +1756 +memb_±r2 + = (cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1757 +´e£Á + = (* +memb_±r2 + != 0); + +1759 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1760 +memb_±r2 + = & +memb_±r +; + +1761 +´e£Á + = 1; + +1764 + `ASN_DEBUG +("checking %s (@%ld)…resent => %d", + +1765 +–m +-> +ty³ +-> +Çme +, +edx +, +´e£Á +); + +1766 +exts_couÁ +++; + +1767 +exts_´e£Á + +ð +´e£Á +; + +1770 if( +po1 + && + `³r_put_ãw_b™s +Õo1, +´e£Á +, 1)) + +1773 if( +po2 + && +´e£Á + && + `­”_ݒ_ty³_put +( +–m +-> +ty³ +, + +1774 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, * +memb_±r2 +, +po2 +)) + +1779  +exts_´e£Á + ? +exts_couÁ + : 0; + +1780 + } +} + +1782 +a¢_’c_rv®_t + + +1783 + $SEQUENCE_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1784 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1785 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +1786 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + + +1787 ð(cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1788 +a¢_’c_rv®_t + +” + = {0,0,0}; + +1789  +n_ex‹nsiÚs +; + +1790 +size_t + +edx +; + +1791 +size_t + +i +; + +1793 () +cÚ¡¿šts +; + +1795 if(! +¥Œ +) + +1796 +ASN__ENCODE_FAILED +; + +1798 +” +. +’coded + = 0; + +1800 + `ASN_DEBUG +("Encodšg % a SEQUENCE (APER)", +td +-> +Çme +); + +1806 if( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0) { + +1807 +n_ex‹nsiÚs + = 0; + +1809 +n_ex‹nsiÚs + = + `SEQUENCE_hªdË_ex‹nsiÚs_­” +( +td +, +¥Œ +, 0, 0); + +1810 if( +n_ex‹nsiÚs + < 0è +ASN__ENCODE_FAILED +; + +1811 if( + `³r_put_ãw_b™s +( +po +, +n_ex‹nsiÚs + ? 1 : 0, 1)) { + +1812 +ASN__ENCODE_FAILED +; + +1817  +i + = 0; i < +¥ecs +-> +roms_couÁ +; i++) { + +1818 +a¢_TYPE_memb”_t + * +–m +; + +1819 cÚ¡ * +memb_±r +; + +1820 cÚ¡ * cÚ¡ * +memb_±r2 +; + +1821  +´e£Á +; + +1823 +edx + = +¥ecs +-> +oms +[ +i +]; + +1824 +–m + = & +td +-> +–em’ts +[ +edx +]; + +1827 if( +–m +-> +æags + & +ATF_POINTER +) { + +1828 +memb_±r2 + = (cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1829 +´e£Á + = (* +memb_±r2 + != 0); + +1831 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1832 +memb_±r2 + = & +memb_±r +; + +1833 +´e£Á + = 1; + +1837 if( +´e£Á + && +–m +-> +deçuÉ_v®ue_cmp + + +1838 && +–m +-> + `deçuÉ_v®ue_cmp +( +memb_±r2 +) == 1) + +1839 +´e£Á + = 0; + +1841 + `ASN_DEBUG +("Element %s %s %s->%s is %s", + +1842 +–m +-> +æags + & +ATF_POINTER + ? "ptr" : "inline", + +1843 +–m +-> +deçuÉ_v®ue_cmp + ? "def" : "wtv", + +1844 +td +-> +Çme +, +–m +->Çme, +´e£Á + ? "present" : "absent"); + +1845 if( + `³r_put_ãw_b™s +( +po +, +´e£Á +, 1)) + +1846 +ASN__ENCODE_FAILED +; + +1852 + `ASN_DEBUG +("fœ¡_ex‹nsiÚ = %d,ƒËm’t ð%d", +¥ecs +-> +fœ¡_ex‹nsiÚ +, + +1853 +td +-> +–em’ts_couÁ +); + +1854  +edx + = 0; + +1855 +edx + < (( +¥ecs +-> +fœ¡_ex‹nsiÚ + < 0è? +td +-> +–em’ts_couÁ + + +1856 : ( +size_t +) +¥ecs +-> +fœ¡_ex‹nsiÚ +); + +1857 +edx +++) { + +1858 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1859 cÚ¡ * +memb_±r +; + +1860 cÚ¡ * cÚ¡ * +memb_±r2 +; + +1862 if( + `IN_EXTENSION_GROUP +( +¥ecs +, +edx +)) + +1865 + `ASN_DEBUG +("Abouˆtؒcod%s", +–m +-> +ty³ +-> +Çme +); + +1868 if( +–m +-> +æags + & +ATF_POINTER +) { + +1869 +memb_±r2 + = (cÚ¡ * cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1870 if(!* +memb_±r2 +) { + +1871 + `ASN_DEBUG +("Element %s %ld‚ot…resent", + +1872 +–m +-> +Çme +, +edx +); + +1873 if( +–m +-> +ÝtiÚ® +) + +1876 +ASN__ENCODE_FAILED +; + +1879 +memb_±r + = (cÚ¡ *)((cÚ¡ *) +¥Œ + + +–m +-> +memb_off£t +); + +1880 +memb_±r2 + = & +memb_±r +; + +1884 if( +–m +-> +deçuÉ_v®ue_cmp + &&ƒlm-> + `deçuÉ_v®ue_cmp +( +memb_±r2 +) == 1) + +1887 + `ASN_DEBUG +("Encodšg %s->%s", +td +-> +Çme +, +–m +->name); + +1888 +” + = +–m +-> +ty³ +-> +Ý +-> + `­”_’cod” +Ólm->ty³,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +1889 * +memb_±r2 +, +po +); + +1890 if( +” +. +’coded + == -1) + +1891  +” +; + +1895 if(! +n_ex‹nsiÚs +è + `ASN__ENCODED_OK +( +” +); + +1897 + `ASN_DEBUG +("L’gth oà%d b™-m­", +n_ex‹nsiÚs +); + +1899 if( + `­”_put_n¦’gth +( +po +, +n_ex‹nsiÚs +)) + +1900 +ASN__ENCODE_FAILED +; + +1902 + `ASN_DEBUG +("B™-m­ oà%dƒËm’ts", +n_ex‹nsiÚs +); + +1905 if( + `SEQUENCE_hªdË_ex‹nsiÚs_­” +( +td +, +¥Œ +, +po +, 0è!ð +n_ex‹nsiÚs +) + +1906 +ASN__ENCODE_FAILED +; + +1908 + `ASN_DEBUG +("Wr™šg %dƒx‹nsiÚs", +n_ex‹nsiÚs +); + +1910 if( + `SEQUENCE_hªdË_ex‹nsiÚs_­” +( +td +, +¥Œ +, 0, +po +è!ð +n_ex‹nsiÚs +) + +1911 +ASN__ENCODE_FAILED +; + +1913 + `ASN__ENCODED_OK +( +” +); + +1914 + } +} + +1919 + $SEQUENCE_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +1920 cÚ¡ * +b±r +) { + +1921 +size_t + +edx +; + +1923  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +1924 +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +1925 cÚ¡ * +amemb +; + +1926 cÚ¡ * +bmemb +; + +1927  +»t +; + +1929 if( +–m +-> +æags + & +ATF_POINTER +) { + +1930 +amemb + = + +1931 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +­Œ + + +–m +-> +memb_off£t +); + +1932 +bmemb + = + +1933 *(cÚ¡ *cÚ¡ *)((cÚ¡ *) +b±r + + +–m +-> +memb_off£t +); + +1934 if(! +amemb +) { + +1935 if(! +bmemb +) ; + +1936 if( +–m +-> +deçuÉ_v®ue_cmp + + +1937 && +–m +-> + `deçuÉ_v®ue_cmp +( +bmemb +) == 0) { + +1942 } if(! +bmemb +) { + +1943 if( +–m +-> +deçuÉ_v®ue_cmp + + +1944 && +–m +-> + `deçuÉ_v®ue_cmp +( +amemb +) == 0) { + +1951 +amemb + = (cÚ¡ *)((cÚ¡ *) +­Œ + + +–m +-> +memb_off£t +); + +1952 +bmemb + = (cÚ¡ *)((cÚ¡ *) +b±r + + +–m +-> +memb_off£t +); + +1955 +»t + = +–m +-> +ty³ +-> +Ý +-> + `com·»_¡ruù +Ólm->ty³, +amemb +, +bmemb +); + +1956 if( +»t + != 0) „et; + +1960 + } +} + +1962 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_SEQUENCE + = { + +1963 +SEQUENCE_ä“ +, + +1964 +SEQUENCE_´št +, + +1965 +SEQUENCE_com·» +, + +1966 +SEQUENCE_decode_b” +, + +1967 +SEQUENCE_’code_d” +, + +1968 +SEQUENCE_decode_x” +, + +1969 +SEQUENCE_’code_x” +, + +1970 #ifdef +ASN_DISABLE_OER_SUPPORT + + +1974 +SEQUENCE_decode_Ûr +, + +1975 +SEQUENCE_’code_Ûr +, + +1977 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +1983 +SEQUENCE_decode_u³r +, + +1984 +SEQUENCE_’code_u³r +, + +1985 +SEQUENCE_decode_­” +, + +1986 +SEQUENCE_’code_­” +, + +1988 +SEQUENCE_¿ndom_fžl +, + +1993 +a¢_¿ndom_fžl_»suÉ_t + + +1994 + $SEQUENCE_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1995 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡r +, + +1996 +size_t + +max_Ëngth +) { + +1997 cÚ¡ +a¢_SEQUENCE_¥ecifics_t + * +¥ecs + = + +1998 (cÚ¡ +a¢_SEQUENCE_¥ecifics_t + *) +td +-> +¥ecifics +; + +1999 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_ok + = { +ARFILL_OK +, 0}; + +2000 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +2001 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +2002 * +¡ + = * +¥Œ +; + +2003 +size_t + +edx +; + +2005 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +2007 () +cÚ¡r +; + +2009 if( +¡ + =ð +NULL +) { + +2010 +¡ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +2011 if( +¡ + =ð +NULL +) { + +2012  +»suÉ_çžed +; + +2016  +edx + = 0;ƒdx < +td +-> +–em’ts_couÁ +;ƒdx++) { + +2017 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = & +td +-> +–em’ts +[ +edx +]; + +2018 * +memb_±r +; + +2019 ** +memb_±r2 +; + +2020 +a¢_¿ndom_fžl_»suÉ_t + +tm´es +; + +2022 if( +–m +-> +ÝtiÚ® + && + `a¢_¿ndom_b‘w“n +(0, 4) == 2) { + +2027 if( +–m +-> +æags + & +ATF_POINTER +) { + +2029 +memb_±r2 + = (**)((*) +¡ + + +–m +-> +memb_off£t +); + +2031 +memb_±r + = (*) +¡ + + +–m +-> +memb_off£t +; + +2032 +memb_±r2 + = & +memb_±r +; + +2035 +tm´es + = +–m +-> +ty³ +-> +Ý +-> + `¿ndom_fžl +( + +2036 +–m +-> +ty³ +, +memb_±r2 +, &–m-> +’codšg_cÚ¡¿šts +, + +2037 +max_Ëngth + > +»suÉ_ok +. +Ëngth + ? max_length -„esult_ok.length : 0); + +2038  +tm´es +. +code +) { + +2039  +ARFILL_OK +: + +2040 +»suÉ_ok +. +Ëngth + +ð +tm´es +.length; + +2042  +ARFILL_SKIPPED +: + +2043 + `as£¹ +(!( +–m +-> +æags + & +ATF_POINTER +è|| * +memb_±r2 + =ð +NULL +); + +2045  +ARFILL_FAILED +: + +2046 if( +¡ + =ð* +¥Œ +) { + +2047 + `ASN_STRUCT_RESET +(* +td +, +¡ +); + +2049 + `ASN_STRUCT_FREE +(* +td +, +¡ +); + +2051  +tm´es +; + +2055 * +¥Œ + = +¡ +; + +2057  +»suÉ_ok +; + +2058 + } +} + + @constr_SEQUENCE_OF.c + +6  + ~ + +7  + ~ + +8  + ~ + +13 +a¢_’c_rv®_t + + +14 + $SEQUENCE_OF_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +±r +, + +15  +g_mode +, +b”_Žv_g_t + +g +, + +16 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +17 +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +18 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +li¡ + = + `_A_CSEQUENCE_FROM_VOID +( +±r +); + +19 +size_t + +compu‹d_size + = 0; + +20 +ssize_t + +’codšg_size + = 0; + +21 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +22  +edx +; + +24 + `ASN_DEBUG +("E¡im©šg sizoàSEQUENCE OF %s", +td +-> +Çme +); + +29  +edx + = 0;ƒdx < +li¡ +-> +couÁ +;ƒdx++) { + +30 * +memb_±r + = +li¡ +-> +¬¿y +[ +edx +]; + +31 if(! +memb_±r +) ; + +32 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, + +33 0, +–m +-> +g +, + +35 if( +”v® +. +’coded + == -1) + +36  +”v® +; + +37 +compu‹d_size + +ð +”v® +. +’coded +; + +43 +’codšg_size + = + `d”_wr™e_gs +( +td +, +compu‹d_size +, +g_mode +, 1, +g +, + +44 +cb +, +­p_key +); + +45 if( +’codšg_size + == -1) { + +46 +”v® +. +’coded + = -1; + +47 +”v® +. +çžed_ty³ + = +td +; + +48 +”v® +. +¡ruùu»_±r + = +±r +; + +49  +”v® +; + +52 +compu‹d_size + +ð +’codšg_size +; + +53 if(! +cb +) { + +54 +”v® +. +’coded + = +compu‹d_size +; + +55 + `ASN__ENCODED_OK +( +”v® +); + +58 + `ASN_DEBUG +("Encodšg memb” oàSEQUENCE OF %s", +td +-> +Çme +); + +63  +edx + = 0;ƒdx < +li¡ +-> +couÁ +;ƒdx++) { + +64 * +memb_±r + = +li¡ +-> +¬¿y +[ +edx +]; + +65 if(! +memb_±r +) ; + +66 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, + +67 0, +–m +-> +g +, + +68 +cb +, +­p_key +); + +69 if( +”v® +. +’coded + == -1) + +70  +”v® +; + +71 +’codšg_size + +ð +”v® +. +’coded +; + +74 if( +compu‹d_size + !ð( +size_t +) +’codšg_size +) { + +78 +”v® +. +’coded + = -1; + +79 +”v® +. +çžed_ty³ + = +td +; + +80 +”v® +. +¡ruùu»_±r + = +±r +; + +82 +”v® +. +’coded + = +compu‹d_size +; + +83 +”v® +. +¡ruùu»_±r + = 0; + +84 +”v® +. +çžed_ty³ + = 0; + +87  +”v® +; + +88 + } +} + +90 +a¢_’c_rv®_t + + +91 + $SEQUENCE_OF_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +92  +žev– +, +x”_’cod”_æags_e + +æags +, + +93 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +94 +a¢_’c_rv®_t + +” + = {0,0,0}; + +95 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +96 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +97 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +li¡ + = + `_A_CSEQUENCE_FROM_VOID +( +¥Œ +); + +98 cÚ¡ * +mÇme + = +¥ecs +-> +as_XMLV®ueLi¡ + + +100 : ((* +–m +-> +Çme +è?ƒlm->Çm:ƒlm-> +ty³ +-> +xml_g +); + +101 +size_t + +mËn + = +mÇme + ? + `¡¾’ +(mname) : 0; + +102  +xÿn + = ( +æags + & +XER_F_CANONICAL +); + +103  +i +; + +105 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +107 +” +. +’coded + = 0; + +109  +i + = 0; i < +li¡ +-> +couÁ +; i++) { + +110 +a¢_’c_rv®_t + +tm³r + = {0,0,0}; + +111 * +memb_±r + = +li¡ +-> +¬¿y +[ +i +]; + +112 if(! +memb_±r +) ; + +114 if( +mÇme +) { + +115 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– +); + +116 + `ASN__CALLBACK3 +("<", 1, +mÇme +, +mËn +, ">", 1); + +119 +tm³r + = +–m +-> +ty³ +-> +Ý +-> + `x”_’cod” +Ólm->ty³, +memb_±r +, +žev– + + 1, + +120 +æags +, +cb +, +­p_key +); + +121 if( +tm³r +. +’coded + == -1) mper; + +122 +” +. +’coded + +ð +tm³r +.encoded; + +123 if( +tm³r +. +’coded + =ð0 && +¥ecs +-> +as_XMLV®ueLi¡ +) { + +124 cÚ¡ * +Çme + = +–m +-> +ty³ +-> +xml_g +; + +125 +size_t + +Ën + = + `¡¾’ +( +Çme +); + +126 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– + + 1); + +127 + `ASN__CALLBACK3 +("<", 1, +Çme +, +Ën +, "/>", 2); + +130 if( +mÇme +) { + +131 + `ASN__CALLBACK3 +("", 1); + +135 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– + - 1); + +137 + `ASN__ENCODED_OK +( +” +); + +138 +cb_çžed +: + +139 +ASN__ENCODE_FAILED +; + +140 + } +} + +142 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +144 +a¢_’c_rv®_t + + +145 + $SEQUENCE_OF_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +146 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +147 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +148 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +li¡ +; + +149 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +150 +a¢_’c_rv®_t + +” + = {0,0,0}; + +151 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +152 +size_t + +’coded_edx +; + +154 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +155 +li¡ + = + `_A_CSEQUENCE_FROM_VOID +( +¥Œ +); + +157 +” +. +’coded + = 0; + +159 + `ASN_DEBUG +("Encodšg % a SEQUENCE OF (%d)", +td +-> +Çme +, +li¡ +-> +couÁ +); + +161 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +size +; + +162 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +163 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +size +; + +164 +ù + = 0; + +167 if( +ù +) { + +168  +nÙ_š_roÙ + = + +169 ( +li¡ +-> +couÁ + < +ù +-> +low”_bound + ||†i¡->couÁ > ct-> +uµ”_bound +); + +170 + `ASN_DEBUG +("lb %ld ub %ld %s", +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +171 +ù +-> +æags + & +APC_EXTENSIBLE + ? "ext" : "fix"); + +172 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +174 if( + `³r_put_ãw_b™s +( +po +, +nÙ_š_roÙ +, 1)è +ASN__ENCODE_FAILED +; + +175 if( +nÙ_š_roÙ +è +ù + = 0; + +176 } if( +nÙ_š_roÙ + && +ù +-> +efãùive_b™s + >= 0) { + +177 +ASN__ENCODE_FAILED +; + +182 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +184 if( + `³r_put_ãw_b™s +( +po +, +li¡ +-> +couÁ + - +ù +-> +low”_bound +, + +185 +ù +-> +efãùive_b™s +)) + +186 +ASN__ENCODE_FAILED +; + +187 } if( +li¡ +-> +couÁ + == 0) { + +191 ià( + `u³r_put_Ëngth +( +po +, 0, 0)) { + +192 +ASN__ENCODE_FAILED +; + +194 + `ASN__ENCODED_OK +( +” +); + +197  +’coded_edx + = 0; ( +ssize_t +ëncoded_edx < +li¡ +-> +couÁ +;) { + +198 +ssize_t + +may_’code +; + +199 +size_t + +edx +; + +200  +Ãed_eom + = 0; + +202 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +203 +may_’code + = +li¡ +-> +couÁ +; + +205 +may_’code + = + +206 + `u³r_put_Ëngth +( +po +, +li¡ +-> +couÁ + - +’coded_edx +, & +Ãed_eom +); + +207 if( +may_’code + < 0è +ASN__ENCODE_FAILED +; + +210  +edx + = +’coded_edx +;ƒdx <ƒncoded_edx + +may_’code +;ƒdx++) { + +211 * +memb_±r + = +li¡ +-> +¬¿y +[ +edx +]; + +212 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +213 +” + = +–m +-> +ty³ +-> +Ý +-> + `u³r_’cod” +( + +214 +–m +-> +ty³ +,ƒlm-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r +, + +215 +po +); + +216 if( +” +. +’coded + =ð-1è +ASN__ENCODE_FAILED +; + +219 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)) + +220 +ASN__ENCODE_FAILED +; + +222 +’coded_edx + +ð +may_’code +; + +225 + `ASN__ENCODED_OK +( +” +); + +226 + } +} + +228 +a¢_’c_rv®_t + + +229 + $SEQUENCE_OF_’code_­” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +230 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +231 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +232 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +li¡ +; + +233 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +234 +a¢_’c_rv®_t + +” + = {0,0,0}; + +235 +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +236  +£q +; + +238 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +239 +li¡ + = + `_A_CSEQUENCE_FROM_VOID +( +¥Œ +); + +241 +” +. +’coded + = 0; + +243 + `ASN_DEBUG +("Encodšg % a SEQUENCE OF siz(%dèusšg ALIGNED PER", +td +-> +Çme +, +li¡ +-> +couÁ +); + +245 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +size +; + +246 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +247 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +size +; + +248 +ù + = 0; + +251 if( +ù +) { + +252  +nÙ_š_roÙ + = ( +li¡ +-> +couÁ + < +ù +-> +low”_bound + + +253 || +li¡ +-> +couÁ + > +ù +-> +uµ”_bound +); + +254 + `ASN_DEBUG +("lb %ld ub %ld %s", + +255 +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +256 +ù +-> +æags + & +APC_EXTENSIBLE + ? "ext" : "fix"); + +257 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +259 if( + `³r_put_ãw_b™s +( +po +, +nÙ_š_roÙ +, 1)) + +260 +ASN__ENCODE_FAILED +; + +261 if( +nÙ_š_roÙ +è +ù + = 0; + +262 } if( +nÙ_š_roÙ + && +ù +-> +efãùive_b™s + >= 0) + +263 +ASN__ENCODE_FAILED +; + +266 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +272 ià( + `­”_put_Ëngth +( +po +, +ù +-> +uµ”_bound + - ct-> +low”_bound + + 1, +li¡ +-> +couÁ + - ct->lower_bound) < 0) + +273 +ASN__ENCODE_FAILED +; + +276  +£q + = -1; seq < +li¡ +-> +couÁ +;) { + +277 +ssize_t + +mayEncode +; + +278 if( +£q + < 0) seq = 0; + +279 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +280 +mayEncode + = +li¡ +-> +couÁ +; + +282 +mayEncode + = + `­”_put_Ëngth +( +po +, -1, +li¡ +-> +couÁ + - +£q +); + +283 if( +mayEncode + < 0è +ASN__ENCODE_FAILED +; + +286  +mayEncode +--) { + +287 * +memb_±r + = +li¡ +-> +¬¿y +[ +£q +++]; + +288 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +289 +” + = +–m +-> +ty³ +-> +Ý +-> + `­”_’cod” +(elm->type, + +290 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, +memb_±r +, +po +); + +291 if( +” +. +’coded + == -1) + +292 +ASN__ENCODE_FAILED +; + +296 + `ASN__ENCODED_OK +( +” +); + +297 + } +} + +301 + $SEQUENCE_OF_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +302 cÚ¡ * +b±r +) { + +303 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +a + = + `_A_CSEQUENCE_FROM_VOID +( +­Œ +); + +304 cÚ¡ +a¢_ªÚymous_£qu’û_ + * +b + = + `_A_CSEQUENCE_FROM_VOID +( +b±r +); + +305 +ssize_t + +idx +; + +307 if( +a + && +b +) { + +308 +ssize_t + +commÚ_Ëngth + = ( +a +-> +couÁ + < +b +->count ?‡->count : b->count); + +309  +idx + = 0; idx < +commÚ_Ëngth +; idx++) { + +310  +»t + = +td +-> +–em’ts +-> +ty³ +-> +Ý +-> + `com·»_¡ruù +( + +311 +td +-> +–em’ts +-> +ty³ +, +a +-> +¬¿y +[ +idx +], +b +->array[idx]); + +312 if( +»t +) „et; + +315 if( +idx + < +b +-> +couÁ +) + +317 if( +idx + < +a +-> +couÁ +)  1; + +319 } if(! +a +) { + +321 } if(! +b +) { + +326 + } +} + +329 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_SEQUENCE_OF + = { + +330 +SEQUENCE_OF_ä“ +, + +331 +SEQUENCE_OF_´št +, + +332 +SEQUENCE_OF_com·» +, + +333 +SEQUENCE_OF_decode_b” +, + +334 +SEQUENCE_OF_’code_d” +, + +335 +SEQUENCE_OF_decode_x” +, + +336 +SEQUENCE_OF_’code_x” +, + +337 #ifdef +ASN_DISABLE_OER_SUPPORT + + +341 +SEQUENCE_OF_decode_Ûr +, + +342 +SEQUENCE_OF_’code_Ûr +, + +344 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +350 +SEQUENCE_OF_decode_u³r +, + +351 +SEQUENCE_OF_’code_u³r +, + +352 +SEQUENCE_OF_decode_­” +, + +353 +SEQUENCE_OF_’code_­” +, + +355 +SEQUENCE_OF_¿ndom_fžl +, + + @constr_SET_OF.c + +6  + ~ + +7  + ~ + +8  + ~ + +15  + #LEFT + (( +size +<( +size_t +) +ùx +-> +Ëá +)?size:(size_t)ùx->Ëá) + + ) + +28  + #SIZE_VIOLATION + ( +ùx +-> +Ëá + >ð0 && ( +size_t +)ùx->Ëá <ð +size +) + + ) + +34 #undeà +ADVANCE + + +35  + #ADVANCE +( +num_by‹s +) do { \ + +36 +size_t + +num + = +num_by‹s +; \ + +37 +±r + = ((cÚ¡ *íŒè+ +num +;\ + +38 +size + -ð +num +; \ + +39 if( +ùx +-> +Ëá + >= 0) \ + +40 +ùx +-> +Ëá + -ð +num +; \ + +41 +cÚsumed_my£lf + +ð +num +; \ + +42 } 0) + + ) + +47 #undeà +NEXT_PHASE + + +48 #undeà +PHASE_OUT + + +49  + #NEXT_PHASE +( +ùx +) do { \ + +50 +ùx +-> +pha£ +++; \ + +51 +ùx +-> +¡• + = 0; \ + +52 } 0) + + ) + +53  + #PHASE_OUT +( +ùx +èdØ{ ctx-> +pha£ + = 10; } 0) + + ) + +58 #undeà +RETURN + + +59  + #RETURN +( +_code +) do { \ + +60 +rv® +. +code + = +_code +; \ + +61 +rv® +. +cÚsumed + = +cÚsumed_my£lf +;\ + +62  +rv® +; \ + +63 } 0) + + ) + +68 +a¢_dec_rv®_t + + +69 + $SET_OF_decode_b” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +70 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +71 cÚ¡ * +±r +, +size_t + +size +,  +g_mode +) { + +75 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +76 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +81 * +¡ + = * +¡ruù_±r +; + +82 +a¢_¡ruù_ùx_t + * +ùx +; + +84 +b”_Žv_g_t + +Žv_g +; + +85 +a¢_dec_rv®_t + +rv® +; + +87 +ssize_t + +cÚsumed_my£lf + = 0; + +89 + `ASN_DEBUG +("Decodšg % a SET OF", +td +-> +Çme +); + +94 if( +¡ + == 0) { + +95 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +96 if( +¡ + == 0) { + +97 + `RETURN +( +RC_FAIL +); + +104 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +109  +ùx +-> +pha£ +) { + +117 +rv® + = + `b”_check_gs +( +Ýt_codec_ùx +, +td +, +ùx +, +±r +, +size +, + +118 +g_mode +, 1, & +ùx +-> +Ëá +, 0); + +119 if( +rv® +. +code + !ð +RC_OK +) { + +120 + `ASN_DEBUG +("%sagging check failed: %d", + +121 +td +-> +Çme +, +rv® +. +code +); + +122  +rv® +; + +125 if( +ùx +-> +Ëá + >= 0) + +126 +ùx +-> +Ëá + +ð +rv® +. +cÚsumed +; + +127 + `ADVANCE +( +rv® +. +cÚsumed +); + +129 + `ASN_DEBUG +("Structure consumes %ld bytes, " + +130 "bufã¸%ld", () +ùx +-> +Ëá +, () +size +); + +132 + `NEXT_PHASE +( +ùx +); + +140 ;; +ùx +-> +¡• + = 0) { + +141 +ssize_t + +g_Ën +; + +143 if( +ùx +-> +¡• + & 1) + +144  +miüÝha£2 +; + +150 if( +ùx +-> +Ëá + == 0) { + +151 + `ASN_DEBUG +("End oàSET OF %s", +td +-> +Çme +); + +156 + `PHASE_OUT +( +ùx +); + +157 + `RETURN +( +RC_OK +); + +163 +g_Ën + = + `b”_ãtch_g +( +±r +, +LEFT +, & +Žv_g +); + +164  +g_Ën +) { + +165 0: if(! +SIZE_VIOLATION +è + `RETURN +( +RC_WMORE +); + +167 -1: + `RETURN +( +RC_FAIL +); + +170 if( +ùx +-> +Ëá + < 0 && ((cÚ¡ +ušt8_t + *) +±r +)[0] == 0) { + +171 if( +LEFT + < 2) { + +172 if( +SIZE_VIOLATION +) + +173 + `RETURN +( +RC_FAIL +); + +175 + `RETURN +( +RC_WMORE +); + +176 } if(((cÚ¡ +ušt8_t + *) +±r +)[1] == 0) { + +186 if( +–m +-> +g + !ð( +b”_Žv_g_t +)-1) { + +187 if( + `BER_TAGS_EQUAL +( +Žv_g +, +–m +-> +g +)) { + +192 + `ASN_DEBUG +("Unexpectedag %s fixed SET OF %s", + +193 + `b”_Žv_g_¡ršg +( +Žv_g +), +td +-> +Çme +); + +194 + `ASN_DEBUG +("%s SET OF hasag %s", + +195 +td +-> +Çme +, + `b”_Žv_g_¡ršg +( +–m +-> +g +)); + +196 + `RETURN +( +RC_FAIL +); + +203 +ùx +-> +¡• + |= 1; + +204 +miüÝha£2 +: + +209 +rv® + = +–m +-> +ty³ +-> +Ý +-> + `b”_decod” +( +Ýt_codec_ùx +, + +210 +–m +-> +ty³ +, & +ùx +-> +±r +,…Œ, +LEFT +, 0); + +211 + `ASN_DEBUG +("In %s SET OF %s code %d consumed %d", + +212 +td +-> +Çme +, +–m +-> +ty³ +->name, + +213 +rv® +. +code +, (ìv®. +cÚsumed +); + +214  +rv® +. +code +) { + +215  +RC_OK +: + +217 +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_SET_FROM_VOID +( +¡ +); + +218 if( + `ASN_SET_ADD +( +li¡ +, +ùx +-> +±r +) != 0) + +219 + `RETURN +( +RC_FAIL +); + +221 +ùx +-> +±r + = 0; + +224  +RC_WMORE +: + +225 if(! +SIZE_VIOLATION +) { + +226 + `ADVANCE +( +rv® +. +cÚsumed +); + +227 + `RETURN +( +RC_WMORE +); + +230  +RC_FAIL +: + +231 + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +, +ùx +-> +±r +); + +232 +ùx +-> +±r + = 0; + +233 + `RETURN +( +RC_FAIL +); + +236 + `ADVANCE +( +rv® +. +cÚsumed +); + +239 + `NEXT_PHASE +( +ùx +); + +244  +ùx +-> +Ëá + < 0) { + +245 if( +LEFT + < 2) { + +246 if( +LEFT + > 0 && ((cÚ¡ *) +±r +)[0] != 0) { + +248 + `RETURN +( +RC_FAIL +); + +250 + `RETURN +( +RC_WMORE +); + +253 if(((cÚ¡ *) +±r +)[0] == 0 + +254 && ((cÚ¡ *) +±r +)[1] == 0) { + +255 + `ADVANCE +(2); + +256 +ùx +-> +Ëá +++; + +258 + `RETURN +( +RC_FAIL +); + +262 + `PHASE_OUT +( +ùx +); + +265 + `RETURN +( +RC_OK +); + +266 + } +} + +271  + s_–_bufãr + { + +272 +ušt8_t + * + mbuf +; + +273 +size_t + + mËngth +; + +274 +size_t + + m®loÿ‹d_size +; + +275  + mb™s_unu£d +; + +278  + $_–_addby‹s +(cÚ¡ * +bufãr +, +size_t + +size +, * +–_buf_±r +) { + +279  +_–_bufãr + * +–_buf + = (_–_bufã¸*) +–_buf_±r +; + +281 if( +–_buf +-> +Ëngth + + +size + >ƒl_buf-> +®loÿ‹d_size +) { + +282 +size_t + +Ãw_size + = +–_buf +-> +®loÿ‹d_size + ?ƒl_buf->allocated_size : 8; + +283 * +p +; + +286 +Ãw_size + <<= 2; + +287 }  +–_buf +-> +Ëngth + + +size + > +Ãw_size +); + +289 +p + = + `REALLOC +( +–_buf +-> +buf +, +Ãw_size +); + +290 if( +p +) { + +291 +–_buf +-> +buf + = +p +; + +292 +–_buf +-> +®loÿ‹d_size + = +Ãw_size +; + +298 + `memýy +( +–_buf +-> +buf + +ƒl_buf-> +Ëngth +, +bufãr +, +size +); + +300 +–_buf +-> +Ëngth + +ð +size +; + +302 + } +} + +304  + $as£¹_unu£d_b™s +(cÚ¡  +_–_bufãr +* +p +) { + +305 if( +p +-> +Ëngth +) { + +306 + `as£¹ +(( +p +-> +buf +[p-> +Ëngth +-1] & ~(0xfà<<…-> +b™s_unu£d +)) == 0); + +308 + `as£¹ +( +p +-> +b™s_unu£d + == 0); + +310 + } +} + +312  + $_–_buf_cmp +(cÚ¡ * +­ +, cÚ¡ * +bp +) { + +313 cÚ¡  +_–_bufãr + * +a + = (cÚ¡ _–_bufã¸*) +­ +; + +314 cÚ¡  +_–_bufãr + * +b + = (cÚ¡ _–_bufã¸*) +bp +; + +315 +size_t + +commÚ_Ën +; + +316  +»t + = 0; + +318 if( +a +-> +Ëngth + < +b +->length) + +319 +commÚ_Ën + = +a +-> +Ëngth +; + +321 +commÚ_Ën + = +b +-> +Ëngth +; + +323 ià( +a +-> +buf + && +b +->buf) { + +324 +»t + = + `memcmp +( +a +-> +buf +, +b +->buf, +commÚ_Ën +); + +326 if( +»t + == 0) { + +327 if( +a +-> +Ëngth + < +b +->length) + +328 +»t + = -1; + +329 if( +a +-> +Ëngth + > +b +->length) + +330 +»t + = 1; + +332 + `as£¹_unu£d_b™s +( +a +); + +333 + `as£¹_unu£d_b™s +( +b +); + +336  +»t +; + +337 + } +} + +340 + $SET_OF__’code_s܋d_ä“ +( +_–_bufãr + * +–_buf +, +size_t + +couÁ +) { + +341 +size_t + +i +; + +343  +i + = 0; i < +couÁ +; i++) { + +344 + `FREEMEM +( +–_buf +[ +i +]. +buf +); + +347 + `FREEMEM +( +–_buf +); + +348 + } +} + +350 + eSET_OF__’code_m‘hod + { + +351 + mSOES_DER +, + +352 + mSOES_CUPER + + +355  +_–_bufãr + * + +356 + $SET_OF__’code_s܋d +(cÚ¡ +a¢_TYPE_memb”_t + * +–m +, + +357 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ +, + +358 +SET_OF__’code_m‘hod + +m‘hod +) { + +359  +_–_bufãr + * +’coded_–s +; + +360  +edx +; + +362 +’coded_–s + = + +363 ( +_–_bufãr + *) + `CALLOC +( +li¡ +-> +couÁ +, ( +’coded_–s +[0])); + +364 if( +’coded_–s + =ð +NULL +) { + +365  +NULL +; + +371  +edx + = 0;ƒdx < +li¡ +-> +couÁ +;ƒdx++) { + +372 cÚ¡ * +memb_±r + = +li¡ +-> +¬¿y +[ +edx +]; + +373  +_–_bufãr + * +’codšg_– + = & +’coded_–s +[ +edx +]; + +374 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +376 if(! +memb_±r +) ; + +381  +m‘hod +) { + +382  +SOES_DER +: + +383 +”v® + = +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, 0,ƒlm-> +g +, + +384 +_–_addby‹s +, +’codšg_– +); + +386  +SOES_CUPER +: + +387 +”v® + = + `u³r_’code +( +–m +-> +ty³ +, + +388 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, + +389 +memb_±r +, +_–_addby‹s +, +’codšg_– +); + +390 if( +”v® +. +’coded + != -1) { + +391 +size_t + +exŒa_b™s + = +”v® +. +’coded + % 8; + +392 + `as£¹ +( +’codšg_– +-> +Ëngth + =ð( +size_t +)( +”v® +. +’coded + + 7) / 8); + +393 +’codšg_– +-> +b™s_unu£d + = (8 - +exŒa_b™s +) & 0x7; + +397 + `as£¹ +(!"Unreachable"); + +400 if( +”v® +. +’coded + < 0) ; + +403 if( +edx + =ð +li¡ +-> +couÁ +) { + +407 + `qsÜt +( +’coded_–s +, +li¡ +-> +couÁ +, Óncoded_–s[0]), +_–_buf_cmp +); + +409  +’coded_–s +; + +411 + `SET_OF__’code_s܋d_ä“ +( +’coded_–s +, +edx +); + +412  +NULL +; + +414 + } +} + +420 +a¢_’c_rv®_t + + +421 + $SET_OF_’code_d” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +422  +g_mode +, +b”_Žv_g_t + +g +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +423 * +­p_key +) { + +424 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +425 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_CSET_FROM_VOID +( +¥Œ +); + +426 +size_t + +compu‹d_size + = 0; + +427 +ssize_t + +’codšg_size + = 0; + +428  +_–_bufãr + * +’coded_–s +; + +429  +edx +; + +431 + `ASN_DEBUG +("E¡im©šg sizfÜ SET OF %s", +td +-> +Çme +); + +436  +edx + = 0;ƒdx < +li¡ +-> +couÁ +;ƒdx++) { + +437 * +memb_±r + = +li¡ +-> +¬¿y +[ +edx +]; + +438 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +440 if(! +memb_±r +è +ASN__ENCODE_FAILED +; + +442 +”v® + = + +443 +–m +-> +ty³ +-> +Ý +-> + `d”_’cod” +Ólm->ty³, +memb_±r +, 0,ƒlm-> +g +, 0, 0); + +444 if( +”v® +. +’coded + == -1) ƒrval; + +445 +compu‹d_size + +ð +”v® +. +’coded +; + +452 +’codšg_size + = + +453 + `d”_wr™e_gs +( +td +, +compu‹d_size +, +g_mode +, 1, +g +, +cb +, +­p_key +); + +454 if( +’codšg_size + < 0) { + +455 +ASN__ENCODE_FAILED +; + +457 +compu‹d_size + +ð +’codšg_size +; + +459 if(! +cb + || +li¡ +-> +couÁ + == 0) { + +460 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +461 +”v® +. +’coded + = +compu‹d_size +; + +462 + `ASN__ENCODED_OK +( +”v® +); + +465 + `ASN_DEBUG +("Encodšg memb” oà% SET OF", +td +-> +Çme +); + +472 +’coded_–s + = + `SET_OF__’code_s܋d +( +–m +, +li¡ +, +SOES_DER +); + +478  +edx + = 0;ƒdx < +li¡ +-> +couÁ +;ƒdx++) { + +479  +_–_bufãr + * +’coded_– + = & +’coded_–s +[ +edx +]; + +481 if( + `cb +( +’coded_– +-> +buf +,ƒncoded_–-> +Ëngth +, +­p_key +) < 0) { + +484 +’codšg_size + +ð +’coded_– +-> +Ëngth +; + +488 + `SET_OF__’code_s܋d_ä“ +( +’coded_–s +, +li¡ +-> +couÁ +); + +490 if( +edx + =ð +li¡ +-> +couÁ +) { + +491 +a¢_’c_rv®_t + +”v® + = {0,0,0}; + +492 + `as£¹ +( +compu‹d_size + =ð( +size_t +) +’codšg_size +); + +493 +”v® +. +’coded + = +compu‹d_size +; + +494 + `ASN__ENCODED_OK +( +”v® +); + +496 +ASN__ENCODE_FAILED +; + +498 + } +} + +500 #undeà +XER_ADVANCE + + +501  + #XER_ADVANCE +( +num_by‹s +) do { \ + +502 +size_t + +num + = +num_by‹s +; \ + +503 +buf_±r + = ((cÚ¡ *)buf_±rè+ +num +;\ + +504 +size + -ð +num +; \ + +505 +cÚsumed_my£lf + +ð +num +; \ + +506 } 0) + + ) + +511 +a¢_dec_rv®_t + + +512 + $SET_OF_decode_x” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +513 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +514 cÚ¡ * +Ýt_mÇme +, cÚ¡ * +buf_±r +, +size_t + +size +) { + +518 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +519 cÚ¡ +a¢_TYPE_memb”_t + * +–em’t + = +td +-> +–em’ts +; + +520 cÚ¡ * +–m_g +; + +521 cÚ¡ * +xml_g + = +Ýt_mÇme + ? o±_mÇm: +td +->xml_tag; + +526 * +¡ + = * +¡ruù_±r +; + +527 +a¢_¡ruù_ùx_t + * +ùx +; + +529 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0}; + +530 +ssize_t + +cÚsumed_my£lf + = 0; + +535 if( +¡ + == 0) { + +536 +¡ + = * +¡ruù_±r + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +537 if( +¡ + =ð0è + `RETURN +( +RC_FAIL +); + +541 if( +¥ecs +-> +as_XMLV®ueLi¡ +) { + +542 +–m_g + = ( +¥ecs +-> +as_XMLV®ueLi¡ + == 1) ? 0 : ""; + +544 +–m_g + = (* +–em’t +-> +Çme +) + +545 ? +–em’t +-> +Çme + :ƒËm’t-> +ty³ +-> +xml_g +; + +551 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +¡ + + +¥ecs +-> +ùx_off£t +); + +559 ; +ùx +-> +pha£ + <= 2;) { + +560 +px”_chunk_ty³_e + +ch_ty³ +; + +561 +ssize_t + +ch_size +; + +562 +x”_check_g_e + +tcv +; + +567 if( +ùx +-> +pha£ + == 2) { + +568 +a¢_dec_rv®_t + +tm´v® + = { +RC_OK +, 0}; + +571 + `ASN_DEBUG +("XER/SET OFƒËm’ˆ[%s]", +–m_g +); + +572 +tm´v® + = +–em’t +-> +ty³ +-> +Ý +-> + `x”_decod” +( +Ýt_codec_ùx +, + +573 +–em’t +-> +ty³ +, & +ùx +-> +±r +, +–m_g +, + +574 +buf_±r +, +size +); + +575 if( +tm´v® +. +code + =ð +RC_OK +) { + +576 +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_SET_FROM_VOID +( +¡ +); + +577 if( + `ASN_SET_ADD +( +li¡ +, +ùx +-> +±r +) != 0) + +578 + `RETURN +( +RC_FAIL +); + +579 +ùx +-> +±r + = 0; + +580 + `XER_ADVANCE +( +tm´v® +. +cÚsumed +); + +582 + `XER_ADVANCE +( +tm´v® +. +cÚsumed +); + +583 + `RETURN +( +tm´v® +. +code +); + +585 +ùx +-> +pha£ + = 1; + +586 + `ASN_DEBUG +("XER/SET OF…ha£ => %d", +ùx +-> +pha£ +); + +593 +ch_size + = + `x”_Ãxt_tok’ +(& +ùx +-> +cڋxt +, + +594 +buf_±r +, +size +, & +ch_ty³ +); + +595 if( +ch_size + == -1) { + +596 + `RETURN +( +RC_FAIL +); + +598  +ch_ty³ +) { + +599  +PXER_WMORE +: + +600 + `RETURN +( +RC_WMORE +); + +601  +PXER_COMMENT +: + +602  +PXER_TEXT +: + +603 + `XER_ADVANCE +( +ch_size +); + +605  +PXER_TAG +: + +610 +tcv + = + `x”_check_g +( +buf_±r +, +ch_size +, +xml_g +); + +611 + `ASN_DEBUG +("XER/SET OF:cv = %d,…h=%d=%s", + +612 +tcv +, +ùx +-> +pha£ +, +xml_g +); + +613  +tcv +) { + +614  +XCT_CLOSING +: + +615 if( +ùx +-> +pha£ + == 0) ; + +616 +ùx +-> +pha£ + = 0; + +618  +XCT_BOTH +: + +619 if( +ùx +-> +pha£ + == 0) { + +621 + `XER_ADVANCE +( +ch_size +); + +622 +ùx +-> +pha£ + = 3; + +623 + `RETURN +( +RC_OK +); + +626  +XCT_OPENING +: + +627 if( +ùx +-> +pha£ + == 0) { + +628 + `XER_ADVANCE +( +ch_size +); + +629 +ùx +-> +pha£ + = 1; + +633  +XCT_UNKNOWN_OP +: + +634  +XCT_UNKNOWN_BO +: + +636 + `ASN_DEBUG +("XER/SET OF:cv=%d,…h=%d", +tcv +, +ùx +-> +pha£ +); + +637 if( +ùx +-> +pha£ + == 1) { + +641 +ùx +-> +pha£ + = 2; + +649 + `ASN_DEBUG +("Unexpected XMLag in SET OF"); + +653 +ùx +-> +pha£ + = 3; + +654 + `RETURN +( +RC_FAIL +); + +655 + } +} + +659  + sx”_tmp_’c_s + { + +660 * + mbufãr +; + +661 +size_t + + moff£t +; + +662 +size_t + + msize +; + +663 } + tx”_tmp_’c_t +; + +665 + $SET_OF_’code_x”_ÿÎback +(cÚ¡ * +bufãr +, +size_t + +size +, * +key +) { + +666 +x”_tmp_’c_t + * +t + = (x”_tmp_’c_ˆ*) +key +; + +667 if( +t +-> +off£t + + +size + >=->size) { + +668 +size_t + +Ãwsize + = ( +t +-> +size + << 2) + size; + +669 * +p + = + `REALLOC +( +t +-> +bufãr +, +Ãwsize +); + +670 if(! +p +)  -1; + +671 +t +-> +bufãr + = +p +; + +672 +t +-> +size + = +Ãwsize +; + +674 + `memýy +((*) +t +-> +bufãr + +-> +off£t +, bufãr, +size +); + +675 +t +-> +off£t + +ð +size +; + +677 + } +} + +679 + $SET_OF_x”_Üd” +(cÚ¡ * +­Œ +, cÚ¡ * +b±r +) { + +680 cÚ¡ +x”_tmp_’c_t + * +a + = (cÚ¡ x”_tmp_’c_ˆ*) +­Œ +; + +681 cÚ¡ +x”_tmp_’c_t + * +b + = (cÚ¡ x”_tmp_’c_ˆ*) +b±r +; + +682 +size_t + +mšËn + = +a +-> +off£t +; + +683  +»t +; + +684 if( +b +-> +off£t + < +mšËn +) minlen = b->offset; + +686 +»t + = + `memcmp +( +a +-> +bufãr +, +b +->bufãr, +mšËn +); + +687 if( +»t + != 0) „et; + +688 if( +a +-> +off£t + =ð +b +->offset) + +690 if( +a +-> +off£t + =ð +mšËn +) + +693 + } +} + +696 +a¢_’c_rv®_t + + +697 + $SET_OF_’code_x” +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +698 +x”_’cod”_æags_e + +æags +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +699 * +­p_key +) { + +700 +a¢_’c_rv®_t + +” + = {0,0,0}; + +701 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +702 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +703 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_CSET_FROM_VOID +( +¥Œ +); + +704 cÚ¡ * +mÇme + = +¥ecs +-> +as_XMLV®ueLi¡ + + +705 ? 0 : ((* +–m +-> +Çme +è?ƒlm->Çm:ƒlm-> +ty³ +-> +xml_g +); + +706 +size_t + +mËn + = +mÇme + ? + `¡¾’ +(mname) : 0; + +707  +xÿn + = ( +æags + & +XER_F_CANONICAL +); + +708 +x”_tmp_’c_t + * +’cs + = 0; + +709 +size_t + +’cs_couÁ + = 0; + +710 * +Üigš®_­p_key + = +­p_key +; + +711 +a¢_­p_cÚsume_by‹s_f + * +Üigš®_cb + = +cb +; + +712  +i +; + +714 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +716 if( +xÿn +) { + +717 +’cs + = ( +x”_tmp_’c_t + *) + `MALLOC +( +li¡ +-> +couÁ + * (encs[0])); + +718 if(! +’cs +è +ASN__ENCODE_FAILED +; + +719 +cb + = +SET_OF_’code_x”_ÿÎback +; + +722 +” +. +’coded + = 0; + +724  +i + = 0; i < +li¡ +-> +couÁ +; i++) { + +725 +a¢_’c_rv®_t + +tm³r + = {0,0,0}; + +727 * +memb_±r + = +li¡ +-> +¬¿y +[ +i +]; + +728 if(! +memb_±r +) ; + +730 if( +’cs +) { + +731 + `mem£t +(& +’cs +[ +’cs_couÁ +], 0, (encs[0])); + +732 +­p_key + = & +’cs +[ +’cs_couÁ +]; + +733 +’cs_couÁ +++; + +736 if( +mÇme +) { + +737 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– +); + +738 + `ASN__CALLBACK3 +("<", 1, +mÇme +, +mËn +, ">", 1); + +741 if(! +xÿn + && +¥ecs +-> +as_XMLV®ueLi¡ + == 1) + +742 + `ASN__TEXT_INDENT +(1, +žev– + + 1); + +743 +tm³r + = +–m +-> +ty³ +-> +Ý +-> + `x”_’cod” +Ólm->ty³, +memb_±r +, + +744 +žev– + + ( +¥ecs +-> +as_XMLV®ueLi¡ + != 2), + +745 +æags +, +cb +, +­p_key +); + +746 if( +tm³r +. +’coded + == -1) mper; + +747 +” +. +’coded + +ð +tm³r +.encoded; + +748 if( +tm³r +. +’coded + =ð0 && +¥ecs +-> +as_XMLV®ueLi¡ +) { + +749 cÚ¡ * +Çme + = +–m +-> +ty³ +-> +xml_g +; + +750 +size_t + +Ën + = + `¡¾’ +( +Çme +); + +751 + `ASN__CALLBACK3 +("<", 1, +Çme +, +Ën +, "/>", 2); + +754 if( +mÇme +) { + +755 + `ASN__CALLBACK3 +("", 1); + +760 if(! +xÿn +è + `ASN__TEXT_INDENT +(1, +žev– + - 1); + +762 if( +’cs +) { + +763 +x”_tmp_’c_t + * +’c + = +’cs +; + +764 +x”_tmp_’c_t + * +’d + = +’cs + + +’cs_couÁ +; + +765 +ssize_t + +cڌÞ_size + = 0; + +767 +” +. +’coded + = 0; + +768 +cb + = +Üigš®_cb +; + +769 +­p_key + = +Üigš®_­p_key +; + +770 + `qsÜt +( +’cs +, +’cs_couÁ +, Óncs[0]), +SET_OF_x”_Üd” +); + +772 ; +’c + < +’d +;ƒnc++) { + +773 + `ASN__CALLBACK +( +’c +-> +bufãr +,ƒnc-> +off£t +); + +774 + `FREEMEM +( +’c +-> +bufãr +); + +775 +’c +-> +bufãr + = 0; + +776 +cڌÞ_size + +ð +’c +-> +off£t +; + +778 + `as£¹ +( +cڌÞ_size + =ð +” +. +’coded +); + +781  +þ—nup +; + +782 +cb_çžed +: + +783 +ASN__ENCODE_FAILED +; + +784 +þ—nup +: + +785 if( +’cs +) { + +786 +size_t + +n +; + +787  +n + = 0;‚ < +’cs_couÁ +;‚++) { + +788 + `FREEMEM +( +’cs +[ +n +]. +bufãr +); + +790 + `FREEMEM +( +’cs +); + +792 + `ASN__ENCODED_OK +( +” +); + +793 + } +} + +796 + $SET_OF_´št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +,  +žev– +, + +797 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +798 +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +799 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_CSET_FROM_VOID +( +¥Œ +); + +800  +»t +; + +801  +i +; + +803 if(! +¥Œ +è ( + `cb +("", 8, +­p_key +) < 0) ? -1 : 0; + +806 if( + `cb +( +td +-> +Çme +, + `¡¾’ +Ñd->Çme), +­p_key +) < 0 + +807 || + `cb +(" ::ð{", 6, +­p_key +) < 0) + +810  +i + = 0; i < +li¡ +-> +couÁ +; i++) { + +811 cÚ¡ * +memb_±r + = +li¡ +-> +¬¿y +[ +i +]; + +812 if(! +memb_±r +) ; + +814 + `_i_INDENT +(1); + +816 +»t + = +–m +-> +ty³ +-> +Ý +-> + `´št_¡ruù +Ólm->ty³, +memb_±r +, + +817 +žev– + + 1, +cb +, +­p_key +); + +818 if( +»t +) „et; + +821 +žev– +--; + +822 + `_i_INDENT +(1); + +824  ( + `cb +("}", 1, +­p_key +) < 0) ? -1 : 0; + +825 + } +} + +828 + $SET_OF_ä“ +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, * +±r +, + +829 +a¢_¡ruù_ä“_m‘hod + +m‘hod +) { + +830 if( +td + && +±r +) { + +831 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs +; + +832 +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +833 +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_SET_FROM_VOID +( +±r +); + +834 +a¢_¡ruù_ùx_t + * +ùx +; + +835  +i +; + +841  +i + = 0; i < +li¡ +-> +couÁ +; i++) { + +842 * +memb_±r + = +li¡ +-> +¬¿y +[ +i +]; + +843 if( +memb_±r +) + +844 + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +, +memb_±r +); + +846 +li¡ +-> +couÁ + = 0; + +848 + `a¢_£t_em±y +( +li¡ +); + +850 +¥ecs + = (cÚ¡ +a¢_SET_OF_¥ecifics_t + *) +td +-> +¥ecifics +; + +851 +ùx + = ( +a¢_¡ruù_ùx_t + *)((*) +±r + + +¥ecs +-> +ùx_off£t +); + +852 if( +ùx +-> +±r +) { + +853 + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +, +ùx +-> +±r +); + +854 +ùx +-> +±r + = 0; + +857  +m‘hod +) { + +858  +ASFM_FREE_EVERYTHING +: + +859 + `FREEMEM +( +±r +); + +861  +ASFM_FREE_UNDERLYING +: + +863  +ASFM_FREE_UNDERLYING_AND_RESET +: + +864 + `mem£t +( +±r +, 0, +¥ecs +-> +¡ruù_size +); + +868 + } +} + +871 + $SET_OF_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +872 +a¢_­p_cÚ¡¿št_çžed_f + * +ùçžcb +, * +­p_key +) { + +873 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +874 +a¢_cÚ¡r_check_f + * +cÚ¡r +; + +875 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_CSET_FROM_VOID +( +¥Œ +); + +876  +i +; + +878 if(! +¥Œ +) { + +879 + `ASN__CTFAIL +( +­p_key +, +td +, +¥Œ +, + +881 +td +-> +Çme +, +__FILE__ +, +__LINE__ +); + +885 +cÚ¡r + = +–m +-> +’codšg_cÚ¡¿šts +. +g’”®_cÚ¡¿šts +; + +886 if(! +cÚ¡r +ècÚ¡¸ð +–m +-> +ty³ +-> +’codšg_cÚ¡¿šts +. +g’”®_cÚ¡¿šts +; + +892  +i + = 0; i < +li¡ +-> +couÁ +; i++) { + +893 cÚ¡ * +memb_±r + = +li¡ +-> +¬¿y +[ +i +]; + +894  +»t +; + +896 if(! +memb_±r +) ; + +898 +»t + = + `cÚ¡r +( +–m +-> +ty³ +, +memb_±r +, +ùçžcb +, +­p_key +); + +899 if( +»t +) „et; + +903 + } +} + +905 #iâdeà +ASN_DISABLE_PER_SUPPORT + + +907 +a¢_dec_rv®_t + + +908 + $SET_OF_decode_u³r +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +909 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +910 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +911 +a¢_³r_d©a_t + * +pd +) { + +912 +a¢_dec_rv®_t + +rv + = { +RC_OK +, 0}; + +913 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +914 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +915 * +¡ + = * +¥Œ +; + +916 +a¢_ªÚymous_£t_ + * +li¡ +; + +917 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +918  +»³© + = 0; + +919 +ssize_t + +ÃËms +; + +921 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +922 +ASN__DECODE_FAILED +; + +927 if(! +¡ +) { + +928 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +929 if(! +¡ +è +ASN__DECODE_FAILED +; + +931 +li¡ + = + `_A_SET_FROM_VOID +( +¡ +); + +934 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +size +; + +935 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +936 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +size +; + +937 +ù + = 0; + +939 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +940  +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +941 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +942 if( +v®ue +è +ù + = 0; + +945 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +947 +ÃËms + = + `³r_g‘_ãw_b™s +( +pd +, +ù +-> +efãùive_b™s +); + +948 + `ASN_DEBUG +("Preparingo fetch %ld+%ldƒlements from %s", + +949 () +ÃËms +, +ù +-> +low”_bound +, +td +-> +Çme +); + +950 if( +ÃËms + < 0è +ASN__DECODE_STARVED +; + +951 +ÃËms + +ð +ù +-> +low”_bound +; + +953 +ÃËms + = -1; + +957  +i +; + +958 if( +ÃËms + < 0) { + +959 +ÃËms + = + `u³r_g‘_Ëngth +( +pd +, -1, 0, & +»³© +); + +960 + `ASN_DEBUG +("GفØdecod%" +ASN_PRI_SSIZE + "ƒlements (eff %d)", + +961 +ÃËms +, ()( +ù + ? ct-> +efãùive_b™s + : -1)); + +962 if( +ÃËms + < 0è +ASN__DECODE_STARVED +; + +965  +i + = 0; i < +ÃËms +; i++) { + +966 * +±r + = 0; + +967 + `ASN_DEBUG +("SET OF % decodšg", +–m +-> +ty³ +-> +Çme +); + +968 +rv + = +–m +-> +ty³ +-> +Ý +-> + `u³r_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +969 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, & +±r +, +pd +); + +970 + `ASN_DEBUG +("%s SET OF %s decoded %d, %p", + +971 +td +-> +Çme +, +–m +-> +ty³ +->Çme, +rv +. +code +, +±r +); + +972 if( +rv +. +code + =ð +RC_OK +) { + +973 if( + `ASN_SET_ADD +( +li¡ +, +±r +) == 0) { + +974 if( +rv +. +cÚsumed + =ð0 && +ÃËms + > 200) { + +976 +ASN__DECODE_FAILED +; + +980 + `ASN_DEBUG +("Failedo‡ddƒlement into %s", + +981 +td +-> +Çme +); + +983 +rv +. +code + = +RC_FAIL +; + +985 + `ASN_DEBUG +("Failed decoding %s of %s (SET OF)", + +986 +–m +-> +ty³ +-> +Çme +, +td +->name); + +988 if( +±r +è + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +,…tr); + +989  +rv +; + +992 +ÃËms + = -1; + +993 }  +»³© +); + +995 + `ASN_DEBUG +("Decoded % a SET OF", +td +-> +Çme +); + +997 +rv +. +code + = +RC_OK +; + +998 +rv +. +cÚsumed + = 0; + +999  +rv +; + +1000 + } +} + +1002 +a¢_’c_rv®_t + + +1003 + $SET_OF_’code_u³r +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1004 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +1005 +a¢_³r_ou_t + * +po +) { + +1006 cÚ¡ +a¢_ªÚymous_£t_ + * +li¡ +; + +1007 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +1008 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +1009  +_–_bufãr + * +’coded_–s +; + +1010 +a¢_’c_rv®_t + +” + = {0,0,0}; + +1011 +size_t + +’coded_edx +; + +1013 if(! +¥Œ +è +ASN__ENCODE_FAILED +; + +1015 +li¡ + = + `_A_CSET_FROM_VOID +( +¥Œ +); + +1017 +” +. +’coded + = 0; + +1019 + `ASN_DEBUG +("Encodšg % a SEQUENCE OF (%d)", +td +-> +Çme +, +li¡ +-> +couÁ +); + +1021 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +size +; + +1022 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +1023 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +size +; + +1024 +ù + = 0; + +1027 if( +ù +) { + +1028  +nÙ_š_roÙ + = + +1029 ( +li¡ +-> +couÁ + < +ù +-> +low”_bound + ||†i¡->couÁ > ct-> +uµ”_bound +); + +1030 + `ASN_DEBUG +("lb %ld ub %ld %s", +ù +-> +low”_bound +, ct-> +uµ”_bound +, + +1031 +ù +-> +æags + & +APC_EXTENSIBLE + ? "ext" : "fix"); + +1032 if( +ù +-> +æags + & +APC_EXTENSIBLE +) { + +1034 if( + `³r_put_ãw_b™s +( +po +, +nÙ_š_roÙ +, 1)è +ASN__ENCODE_FAILED +; + +1035 if( +nÙ_š_roÙ +è +ù + = 0; + +1036 } if( +nÙ_š_roÙ + && +ù +-> +efãùive_b™s + >= 0) { + +1037 +ASN__ENCODE_FAILED +; + +1042 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +1044 if( + `³r_put_ãw_b™s +( +po +, +li¡ +-> +couÁ + - +ù +-> +low”_bound +, + +1045 +ù +-> +efãùive_b™s +)) + +1046 +ASN__ENCODE_FAILED +; + +1047 } if( +li¡ +-> +couÁ + == 0) { + +1051 ià( + `u³r_put_Ëngth +( +po +, 0, 0)) { + +1052 +ASN__ENCODE_FAILED +; + +1054 + `ASN__ENCODED_OK +( +” +); + +1062 +’coded_–s + = + `SET_OF__’code_s܋d +( +–m +, +li¡ +, +SOES_CUPER +); + +1064  +’coded_edx + = 0; ( +ssize_t +ëncoded_edx < +li¡ +-> +couÁ +;) { + +1065 +ssize_t + +may_’code +; + +1066 +size_t + +edx +; + +1067  +Ãed_eom + = 0; + +1069 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +1070 +may_’code + = +li¡ +-> +couÁ +; + +1072 +may_’code + = + +1073 + `u³r_put_Ëngth +( +po +, +li¡ +-> +couÁ + - +’coded_edx +, & +Ãed_eom +); + +1074 if( +may_’code + < 0è +ASN__ENCODE_FAILED +; + +1077  +edx + = +’coded_edx +;ƒdx <ƒncoded_edx + +may_’code +;ƒdx++) { + +1078 cÚ¡  +_–_bufãr + * +– + = & +’coded_–s +[ +edx +]; + +1079 if( + `a¢_put_mªy_b™s +( +po +, +– +-> +buf +, + +1080 (8 * +– +-> +Ëngth +è-ƒl-> +b™s_unu£d +) < 0) { + +1085 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)) + +1086 +ASN__ENCODE_FAILED +; + +1088 +’coded_edx + +ð +may_’code +; + +1091 + `SET_OF__’code_s܋d_ä“ +( +’coded_–s +, +li¡ +-> +couÁ +); + +1093 if(( +ssize_t +) +’coded_edx + =ð +li¡ +-> +couÁ +) { + +1094 + `ASN__ENCODED_OK +( +” +); + +1096 +ASN__ENCODE_FAILED +; + +1098 + } +} + +1100 +a¢_dec_rv®_t + + +1101 + $SET_OF_decode_­” +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +1102 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +1103 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +1104 +a¢_dec_rv®_t + +rv + = { +RC_OK +, 0}; + +1105 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = (cÚ¡‡¢_SET_OF_¥ecifics_ˆ*) +td +-> +¥ecifics +; + +1106 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +1107 * +¡ + = * +¥Œ +; + +1108 +a¢_ªÚymous_£t_ + * +li¡ +; + +1109 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +ù +; + +1110  +»³© + = 0; + +1111 +ssize_t + +ÃËms +; + +1113 if( + `ASN__STACK_OVERFLOW_CHECK +( +Ýt_codec_ùx +)) + +1114 +ASN__DECODE_FAILED +; + +1119 if(! +¡ +) { + +1120 +¡ + = * +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +); + +1121 if(! +¡ +è +ASN__DECODE_FAILED +; + +1123 +li¡ + = + `_A_SET_FROM_VOID +( +¡ +); + +1126 if( +cÚ¡¿šts +è +ù + = &cÚ¡¿šts-> +size +; + +1127 if( +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +) + +1128 +ù + = & +td +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +-> +size +; + +1129 +ù + = 0; + +1131 if( +ù + && ct-> +æags + & +APC_EXTENSIBLE +) { + +1132  +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 1); + +1133 if( +v®ue + < 0è +ASN__DECODE_STARVED +; + +1134 if( +v®ue +è +ù + = 0; + +1137 if( +ù + && ct-> +efãùive_b™s + >= 0) { + +1139 +ÃËms + = + `­”_g‘_n¢nwn +( +pd +, +ù +-> +uµ”_bound + - ct-> +low”_bound + + 1); + +1140 + `ASN_DEBUG +("Preparingo fetch %ld+%ldƒlements from %s", + +1141 () +ÃËms +, +ù +-> +low”_bound +, +td +-> +Çme +); + +1142 if( +ÃËms + < 0è +ASN__DECODE_STARVED +; + +1143 +ÃËms + +ð +ù +-> +low”_bound +; + +1145 +ÃËms + = -1; + +1149  +i +; + +1150 if( +ÃËms + < 0) { + +1151 +ÃËms + = + `­”_g‘_Ëngth +( +pd +, +ù + ? ct-> +uµ”_bound + - ct-> +low”_bound + + 1 : -1, + +1152 +ù + ? ct-> +efãùive_b™s + : -1, & +»³© +); + +1153 + `ASN_DEBUG +("Goto decode %dƒlements (eff %d)", + +1154 () +ÃËms +, ()( +ù + ? ct-> +efãùive_b™s + : -1)); + +1155 if( +ÃËms + < 0è +ASN__DECODE_STARVED +; + +1158  +i + = 0; i < +ÃËms +; i++) { + +1159 * +±r + = 0; + +1160 + `ASN_DEBUG +("SET OF % decodšg", +–m +-> +ty³ +-> +Çme +); + +1161 +rv + = +–m +-> +ty³ +-> +Ý +-> + `­”_decod” +( +Ýt_codec_ùx +,ƒlm->type, + +1162 +–m +-> +’codšg_cÚ¡¿šts +. +³r_cÚ¡¿šts +, & +±r +, +pd +); + +1163 + `ASN_DEBUG +("%s SET OF %s decoded %d, %p", + +1164 +td +-> +Çme +, +–m +-> +ty³ +->Çme, +rv +. +code +, +±r +); + +1165 if( +rv +. +code + =ð +RC_OK +) { + +1166 if( + `ASN_SET_ADD +( +li¡ +, +±r +) == 0) + +1168 + `ASN_DEBUG +("Failedo‡ddƒlement into %s", + +1169 +td +-> +Çme +); + +1171 +rv +. +code + = +RC_FAIL +; + +1173 + `ASN_DEBUG +("Failed decoding %s of %s (SET OF)", + +1174 +–m +-> +ty³ +-> +Çme +, +td +->name); + +1176 if( +±r +è + `ASN_STRUCT_FREE +(* +–m +-> +ty³ +,…tr); + +1177  +rv +; + +1180 +ÃËms + = -1; + +1181 }  +»³© +); + +1183 + `ASN_DEBUG +("Decoded % a SET OF", +td +-> +Çme +); + +1185 +rv +. +code + = +RC_OK +; + +1186 +rv +. +cÚsumed + = 0; + +1187  +rv +; + +1188 + } +} + +1192  + scom·¿bË_±r + { + +1193 cÚ¡ +a¢_TYPE_desütÜ_t + * + mtd +; + +1194 cÚ¡ * + m¥Œ +; + +1198 + $SET_OF__com·»_cb +(cÚ¡ * +­Œ +, cÚ¡ * +b±r +) { + +1199 cÚ¡  +com·¿bË_±r + * +a + = +­Œ +; + +1200 cÚ¡  +com·¿bË_±r + * +b + = +b±r +; + +1201 + `as£¹ +( +a +-> +td + =ð +b +->td); + +1202  +a +-> +td +-> +Ý +-> + `com·»_¡ruù +×->td,‡-> +¥Œ +, +b +->sptr); + +1203 + } +} + +1206 + $SET_OF_com·» +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +­Œ +, + +1207 cÚ¡ * +b±r +) { + +1208 cÚ¡ +a¢_ªÚymous_£t_ + * +a + = + `_A_CSET_FROM_VOID +( +­Œ +); + +1209 cÚ¡ +a¢_ªÚymous_£t_ + * +b + = + `_A_CSET_FROM_VOID +( +b±r +); + +1211 if( +a + && +b +) { + +1212  +com·¿bË_±r + * +as܋d +; + +1213  +com·¿bË_±r + * +bs܋d +; + +1214 +ssize_t + +commÚ_Ëngth +; + +1215 +ssize_t + +idx +; + +1217 if( +a +-> +couÁ + == 0) { + +1218 if( +b +-> +couÁ +)  -1; + +1220 } if( +b +-> +couÁ + == 0) { + +1224 +as܋d + = + `MALLOC +( +a +-> +couÁ + * (asorted[0])); + +1225 +bs܋d + = + `MALLOC +( +b +-> +couÁ + * (bsorted[0])); + +1226 if(! +as܋d + || ! +bs܋d +) { + +1227 + `FREEMEM +( +as܋d +); + +1228 + `FREEMEM +( +bs܋d +); + +1232  +idx + = 0; idx < +a +-> +couÁ +; idx++) { + +1233 +as܋d +[ +idx +]. +td + =d-> +–em’ts +-> +ty³ +; + +1234 +as܋d +[ +idx +]. +¥Œ + = +a +-> +¬¿y +[idx]; + +1237  +idx + = 0; idx < +b +-> +couÁ +; idx++) { + +1238 +bs܋d +[ +idx +]. +td + =d-> +–em’ts +-> +ty³ +; + +1239 +bs܋d +[ +idx +]. +¥Œ + = +b +-> +¬¿y +[idx]; + +1242 + `qsÜt +( +as܋d +, +a +-> +couÁ +, ×s܋d[0]), +SET_OF__com·»_cb +); + +1243 + `qsÜt +( +bs܋d +, +b +-> +couÁ +, (bs܋d[0]), +SET_OF__com·»_cb +); + +1245 +commÚ_Ëngth + = ( +a +-> +couÁ + < +b +->count ?‡->count : b->count); + +1246  +idx + = 0; idx < +commÚ_Ëngth +; idx++) { + +1247  +»t + = +td +-> +–em’ts +-> +ty³ +-> +Ý +-> + `com·»_¡ruù +( + +1248 +td +-> +–em’ts +-> +ty³ +, +as܋d +[ +idx +]. +¥Œ +, +bs܋d +[idx].sptr); + +1249 if( +»t +) { + +1250 + `FREEMEM +( +as܋d +); + +1251 + `FREEMEM +( +bs܋d +); + +1252  +»t +; + +1256 + `FREEMEM +( +as܋d +); + +1257 + `FREEMEM +( +bs܋d +); + +1259 if( +idx + < +b +-> +couÁ +) + +1261 if( +idx + < +a +-> +couÁ +)  1; + +1262 } if(! +a +) { + +1264 } if(! +b +) { + +1269 + } +} + +1272 +a¢_TYPE_ݔ©iÚ_t + + ga¢_OP_SET_OF + = { + +1273 +SET_OF_ä“ +, + +1274 +SET_OF_´št +, + +1275 +SET_OF_com·» +, + +1276 +SET_OF_decode_b” +, + +1277 +SET_OF_’code_d” +, + +1278 +SET_OF_decode_x” +, + +1279 +SET_OF_’code_x” +, + +1280 #ifdeà +ASN_DISABLE_OER_SUPPORT + + +1284 +SET_OF_decode_Ûr +, + +1285 +SET_OF_’code_Ûr +, + +1287 #ifdeà +ASN_DISABLE_PER_SUPPORT + + +1293 +SET_OF_decode_u³r +, + +1294 +SET_OF_’code_u³r +, + +1295 +SET_OF_decode_­” +, + +1298 +SET_OF_¿ndom_fžl +, + +1303 +a¢_¿ndom_fžl_»suÉ_t + + +1304 + $SET_OF_¿ndom_fžl +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +1305 cÚ¡ +a¢_’codšg_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +1306 +size_t + +max_Ëngth +) { + +1307 cÚ¡ +a¢_SET_OF_¥ecifics_t + * +¥ecs + = + +1308 (cÚ¡ +a¢_SET_OF_¥ecifics_t + *) +td +-> +¥ecifics +; + +1309 +a¢_¿ndom_fžl_»suÉ_t + +»s_ok + = { +ARFILL_OK +, 0}; + +1310 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_çžed + = { +ARFILL_FAILED +, 0}; + +1311 +a¢_¿ndom_fžl_»suÉ_t + +»suÉ_sk³d + = { +ARFILL_SKIPPED +, 0}; + +1312 cÚ¡ +a¢_TYPE_memb”_t + * +–m + = +td +-> +–em’ts +; + +1313 * +¡ + = * +¥Œ +; + +1314  +max_–em’ts + = 5; + +1315  +¦b + = 0; + +1316  +sub + = 0; + +1317 +size_t + +ºd_Ën +; + +1319 if( +max_Ëngth + =ð0è +»suÉ_sk³d +; + +1321 if( +¡ + =ð +NULL +) { + +1322 +¡ + = (* +¥Œ + = + `CALLOC +(1, +¥ecs +-> +¡ruù_size +)); + +1323 if( +¡ + =ð +NULL +) { + +1324  +»suÉ_çžed +; + +1328  + `a¢_¿ndom_b‘w“n +(0, 6)) { + +1329 0: +max_–em’ts + = 0; ; + +1330 1: +max_–em’ts + = 1; ; + +1331 2: +max_–em’ts + = 5; ; + +1332 3: +max_–em’ts + = +max_Ëngth +; ; + +1333 4: +max_–em’ts + = +max_Ëngth + / 2; ; + +1334 5: +max_–em’ts + = +max_Ëngth + / 4; ; + +1337 +sub + = +¦b + + +max_–em’ts +; + +1339 if(! +cÚ¡¿šts + || !cÚ¡¿šts-> +³r_cÚ¡¿šts +) + +1340 +cÚ¡¿šts + = & +td +-> +’codšg_cÚ¡¿šts +; + +1341 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +) { + +1342 cÚ¡ +a¢_³r_cÚ¡¿št_t + * +pc + = & +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +size +; + +1343 if( +pc +-> +æags + & +APC_SEMI_CONSTRAINED +) { + +1344 +¦b + = +pc +-> +low”_bound +; + +1345 +sub + = +pc +-> +low”_bound + + +max_–em’ts +; + +1346 } if( +pc +-> +æags + & +APC_CONSTRAINED +) { + +1347 +¦b + = +pc +-> +low”_bound +; + +1348 +sub + = +pc +-> +uµ”_bound +; + +1349 if( +sub + - +¦b + > +max_–em’ts +) sub = slb + max_elements; + +1354  + `a¢_¿ndom_b‘w“n +(-1, 4)) { + +1358 if( +cÚ¡¿šts +-> +³r_cÚ¡¿šts + + +1359 && ( +cÚ¡¿šts +-> +³r_cÚ¡¿šts +-> +size +. +æags + & +APC_EXTENSIBLE +)) { + +1360  + `a¢_¿ndom_b‘w“n +(0, 5)) { + +1363 +ºd_Ën + = 0; + +1366 if( +¦b + > 0) { + +1367 +ºd_Ën + = +¦b + - 1; + +1369 +ºd_Ën + = 0; + +1373 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +(0, +¦b +); + +1376 if( +sub + < ( +ssize_t +) +max_Ëngth +) { + +1377 +ºd_Ën + = +sub + + 1; + +1379 +ºd_Ën + = +max_Ëngth +; + +1383 if( +sub + < ( +ssize_t +) +max_Ëngth +) { + +1384 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +sub + + 1, +max_Ëngth +); + +1386 +ºd_Ën + = +max_Ëngth +; + +1390 +ºd_Ën + = +max_Ëngth +; + +1397 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +¦b +, +sub +); + +1400 if( +¦b + < +sub +) { + +1401 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +¦b + + 1, +sub +); + +1406 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +¦b +, slb); + +1409 if( +¦b + < +sub +) { + +1410 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +¦b +, +sub + - 1); + +1415 +ºd_Ën + = + `a¢_¿ndom_b‘w“n +( +sub +, sub); + +1419 ; +ºd_Ën + > 0;„nd_len--) { + +1420 +a¢_ªÚymous_£t_ + * +li¡ + = + `_A_SET_FROM_VOID +( +¡ +); + +1421 * +±r + = 0; + +1422 +a¢_¿ndom_fžl_»suÉ_t + +tm´es + = +–m +-> +ty³ +-> +Ý +-> + `¿ndom_fžl +( + +1423 +–m +-> +ty³ +, & +±r +, &–m-> +’codšg_cÚ¡¿šts +, + +1424 ( +max_Ëngth + > +»s_ok +. +Ëngth + ? max_length -„es_ok.length : 0) + +1425 / +ºd_Ën +); + +1426  +tm´es +. +code +) { + +1427  +ARFILL_OK +: + +1428 + `ASN_SET_ADD +( +li¡ +, +±r +); + +1429 +»s_ok +. +Ëngth + +ð +tm´es +.length; + +1431  +ARFILL_SKIPPED +: + +1433  +ARFILL_FAILED +: + +1434 + `as£¹ +( +±r + == 0); + +1435  +tm´es +; + +1439  +»s_ok +; + +1440 + } +} + + @constr_TYPE.c + +5  + ~ + +6  + ~ + +7  + ~<”ºo.h +> + +12  + $g‘_a¢1c_’vœÚm’t_v”siÚ +(è{  +ASN1C_ENVIRONMENT_VERSION +; + } +} + +14  +a¢_­p_cÚsume_by‹s_f + + g_´št2å +; + +19 +b”_Žv_g_t + + +20 + $a¢_TYPE_outmo¡_g +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +21 cÚ¡ * +¡ruù_±r +,  +g_mode +, +b”_Žv_g_t + +g +) { + +23 if( +g_mode +) + +24  +g +; + +26 if( +ty³_desütÜ +-> +gs_couÁ +) + +27  +ty³_desütÜ +-> +gs +[0]; + +29  +ty³_desütÜ +-> +Ý +-> + `outmo¡_g +Ñy³_desütÜ, +¡ruù_±r +, 0, 0); + +30 + } +} + +36 + $a¢_åršt +( +FILE + * +¡»am +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +37 cÚ¡ * +¡ruù_±r +) { + +38 if(! +¡»am +è¡»am = +¡dout +; + +39 if(! +td + || ! +¡ruù_±r +) { + +40 +”ºo + = +EINVAL +; + +45 if( +td +-> +Ý +-> + `´št_¡ruù +Ñd, +¡ruù_±r +, 1, +_´št2å +, +¡»am +)) { + +50 if( + `_´št2å +("\n", 1, +¡»am +)) { + +54  + `fæush +( +¡»am +); + +55 + } +} + +59 + $_´št2å +(cÚ¡ * +bufãr +, +size_t + +size +, * +­p_key +) { + +60 +FILE + * +¡»am + = (FILE *) +­p_key +; + +62 if( + `fwr™e +( +bufãr +, 1, +size +, +¡»am +) != size) + +66 + } +} + +73  +ASN_DEBUG_f +(cÚ¡ * +fmt +, ...); + +74  + $ASN_DEBUG_f +(cÚ¡ * +fmt +, ...) { + +75 +va_li¡ + +­ +; + +76 + `va_¡¬t +( +­ +, +fmt +); + +77 + `vårštf +( +¡d”r +, +fmt +, +­ +); + +78 + `årštf +( +¡d”r +, "\n"); + +79 + `va_’d +( +­ +); + +80 + } +} + + @constraints.c + +1  + ~ + +2  + ~ + +5 + $a¢_g’”ic_no_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +6 cÚ¡ * +¡ruù_±r +, + +7 +a¢_­p_cÚ¡¿št_çžed_f + * +cb +, * +key +) { + +8 () +ty³_desütÜ +; + +9 () +¡ruù_±r +; + +10 () +cb +; + +11 () +key +; + +15 + } +} + +18 + $a¢_g’”ic_unknown_cÚ¡¿št +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +19 cÚ¡ * +¡ruù_±r +, + +20 +a¢_­p_cÚ¡¿št_çžed_f + * +cb +, * +key +) { + +21 () +ty³_desütÜ +; + +22 () +¡ruù_±r +; + +23 () +cb +; + +24 () +key +; + +28 + } +} + +30  + s”rbufDesc + { + +31 cÚ¡ +a¢_TYPE_desütÜ_t + * + mçžed_ty³ +; + +32 cÚ¡ * + mçžed_¡ruù_±r +; + +33 * + m”rbuf +; + +34 +size_t + + m”¾’ +; + +38 + $_a¢_i_ùçžcb +(* +key +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +39 cÚ¡ * +fmt +, ...) { + +40  +”rbufDesc + * +¬g + = +key +; + +41 +va_li¡ + +­ +; + +42 +ssize_t + +vËn +; + +43 +ssize_t + +maxËn +; + +45 +¬g +-> +çžed_ty³ + = +td +; + +46 +¬g +-> +çžed_¡ruù_±r + = +¥Œ +; + +48 +maxËn + = +¬g +-> +”¾’ +; + +49 if( +maxËn + <= 0) + +52 + `va_¡¬t +( +­ +, +fmt +); + +53 +vËn + = + `v¢´štf +( +¬g +-> +”rbuf +, +maxËn +, +fmt +, +­ +); + +54 + `va_’d +( +­ +); + +55 if( +vËn + >ð +maxËn +) { + +56 +¬g +-> +”rbuf +[ +maxËn +-1] = '\0'; + +57 +¬g +-> +”¾’ + = +maxËn + - 1; + +59 } if( +vËn + >= 0) { + +60 +¬g +-> +”rbuf +[ +vËn +] = '\0'; + +61 +¬g +-> +”¾’ + = +vËn +; + +66 +vËn + = ("") - 1; + +67 +maxËn +--; + +68 +¬g +-> +”¾’ + = +vËn + < +maxËn + ? vlen : maxlen; + +69 + `memýy +( +¬g +-> +”rbuf +, "",‡rg-> +”¾’ +); + +70 +¬g +-> +”rbuf +[¬g-> +”¾’ +] = 0; + +74 + } +} + +77 + $a¢_check_cÚ¡¿šts +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +78 cÚ¡ * +¡ruù_±r +, * +”rbuf +, +size_t + * +”¾’ +) { + +79  +”rbufDesc + +¬g +; + +80  +»t +; + +82 +¬g +. +çžed_ty³ + = 0; + +83 +¬g +. +çžed_¡ruù_±r + = 0; + +84 +¬g +. +”rbuf + =ƒrrbuf; + +85 +¬g +. +”¾’ + =ƒrrlen ? *errlen : 0; + +87 +»t + = +ty³_desütÜ +-> +’codšg_cÚ¡¿šts +. + `g’”®_cÚ¡¿šts +( + +88 +ty³_desütÜ +, +¡ruù_±r +, +_a¢_i_ùçžcb +, & +¬g +); + +89 if( +»t + =ð-1 && +”¾’ +è*”¾’ = +¬g +.errlen; + +91  +»t +; + +92 + } +} + + @der_encoder.c + +5  + ~ + +6  + ~<”ºo.h +> + +8  +ssize_t + +d”_wr™e_TL +( +b”_Žv_g_t + +g +, +b”_Žv_Ën_t + +Ën +, + +9 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +,  +cÚ¡ruùed +); + +14 +a¢_’c_rv®_t + + +15 + $d”_’code +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, cÚ¡ * +¡ruù_±r +, + +16 +a¢_­p_cÚsume_by‹s_f + * +cÚsume_by‹s +, * +­p_key +) { + +17 + `ASN_DEBUG +("DERƒncoder invoked for %s", + +18 +ty³_desütÜ +-> +Çme +); + +23  +ty³_desütÜ +-> +Ý +-> + `d”_’cod” +( + +24 +ty³_desütÜ +, +¡ruù_±r +, + +25 0, 0, +cÚsume_by‹s +, +­p_key +); + +26 + } +} + +31  + s’c_to_buf_¬g + { + +32 * + mbufãr +; + +33 +size_t + + mËá +; + +34 } + t’c_to_buf_¬g +; + +35  + $’code_to_bufãr_cb +(cÚ¡ * +bufãr +, +size_t + +size +, * +key +) { + +36 +’c_to_buf_¬g + * +¬g + = (’c_to_buf_¬g *) +key +; + +38 if( +¬g +-> +Ëá + < +size +) + +41 + `memýy +( +¬g +-> +bufãr +, bufãr, +size +); + +42 +¬g +-> +bufãr + = ((*ïrg->bufãrè+ +size +; + +43 +¬g +-> +Ëá + -ð +size +; + +46 + } +} + +51 +a¢_’c_rv®_t + + +52 + $d”_’code_to_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +53 cÚ¡ * +¡ruù_±r +, * +bufãr +, +size_t + +bufãr_size +) { + +54 +’c_to_buf_¬g + +¬g +; + +55 +a¢_’c_rv®_t + +ec +; + +57 +¬g +. +bufãr + = buffer; + +58 +¬g +. +Ëá + = +bufãr_size +; + +60 +ec + = +ty³_desütÜ +-> +Ý +-> + `d”_’cod” +(type_descriptor, + +61 +¡ruù_±r +, + +62 0, 0, +’code_to_bufãr_cb +, & +¬g +); + +63 if( +ec +. +’coded + != -1) { + +64 + `as£¹ +( +ec +. +’coded + =ð( +ssize_t +)( +bufãr_size + - +¬g +. +Ëá +)); + +67  +ec +; + +68 + } +} + +74 +ssize_t + + +75 + $d”_wr™e_gs +(cÚ¡ +a¢_TYPE_desütÜ_t + * +sd +, +size_t + +¡ruù_Ëngth +, + +76  +g_mode +,  +Ï¡_g_fÜm +, + +77 +b”_Žv_g_t + +g +, + +78 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +79  + #ASN1_DER_MAX_TAGS_COUNT + 4 + + ) + +80 +b”_Žv_g_t + + +81 +gs_buf_sü©ch +[ +ASN1_DER_MAX_TAGS_COUNT + * ( +b”_Žv_g_t +)]; + +82 +ssize_t + +Ëns +[ +ASN1_DER_MAX_TAGS_COUNT + * (ssize_t)]; + +83 cÚ¡ +b”_Žv_g_t + * +gs +; + +84  +gs_couÁ +; + +85 +size_t + +ov”®l_Ëngth +; + +86  +i +; + +88 + `ASN_DEBUG +("Writingags (%s,m=%d,c=%d,ag=%s, mtc=%d)", + +89 +sd +-> +Çme +, +g_mode +, sd-> +gs_couÁ +, + +90 + `b”_Žv_g_¡ršg +( +g +), + +91 +g_mode + + +92 ?( +sd +-> +gs_couÁ ++1 + +93 -(( +g_mode + =ð-1è&& +sd +-> +gs_couÁ +)) + +94 : +sd +-> +gs_couÁ + + +97 if( +sd +-> +gs_couÁ + + 1 > +ASN1_DER_MAX_TAGS_COUNT +) { + +98 + `ASN_DEBUG +("Sy¡em†im™ %d oÀg couÁ", +ASN1_DER_MAX_TAGS_COUNT +); + +102 if( +g_mode +) { + +108  +¡ag_off£t +; + +109 +b”_Žv_g_t + * +gs_buf + = +gs_buf_sü©ch +; + +110 +gs_couÁ + = +sd +->tags_count + +112 - (( +g_mode + =ð-1è&& +sd +-> +gs_couÁ +); + +114 +gs_buf +[0] = +g +; + +115 +¡ag_off£t + = -1 + (( +g_mode + =ð-1è&& +sd +-> +gs_couÁ +); + +116  +i + = 1; i < +gs_couÁ +; i++) + +117 +gs_buf +[ +i +] = +sd +-> +gs +[˜+ +¡ag_off£t +]; + +118 +gs + = +gs_buf +; + +120 +gs + = +sd +->tags; + +121 +gs_couÁ + = +sd +->tags_count; + +125 if( +gs_couÁ + == 0) + +132 +ov”®l_Ëngth + = +¡ruù_Ëngth +; + +133  +i + = +gs_couÁ + - 1; i >= 0; --i) { + +134 +Ëns +[ +i +] = + `d”_wr™e_TL +( +gs +[i], +ov”®l_Ëngth +, 0, 0, 0); + +135 if( +Ëns +[ +i +] == -1)  -1; + +136 +ov”®l_Ëngth + +ð +Ëns +[ +i +]; + +137 +Ëns +[ +i +] = +ov”®l_Ëngth + -†ens[i]; + +140 if(! +cb +è +ov”®l_Ëngth + - +¡ruù_Ëngth +; + +142 + `ASN_DEBUG +("Encodšg % TL sequ’û (%dƒËm’ts)", +sd +-> +Çme +, + +143 +gs_couÁ +); + +148  +i + = 0; i < +gs_couÁ +; i++) { + +149 +ssize_t + +Ën +; + +150  +_cÚ¡r +; + +153 +_cÚ¡r + = ( +Ï¡_g_fÜm + || +i + < ( +gs_couÁ + - 1)); + +155 +Ën + = + `d”_wr™e_TL +( +gs +[ +i +], +Ëns +[i], +cb +, +­p_key +, +_cÚ¡r +); + +156 if( +Ën + == -1)  -1; + +159  +ov”®l_Ëngth + - +¡ruù_Ëngth +; + +160 + } +} + +162  +ssize_t + + +163 + $d”_wr™e_TL +( +b”_Žv_g_t + +g +, +b”_Žv_Ën_t + +Ën +, + +164 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +, + +165  +cÚ¡ruùed +) { + +166 +ušt8_t + +buf +[32]; + +167 +size_t + +size + = 0; + +168  +buf_size + = +cb +?( +buf +):0; + +169 +ssize_t + +tmp +; + +172 +tmp + = + `b”_Žv_g_£rŸlize +( +g +, +buf +, +buf_size +); + +173 if( +tmp + =ð-1 ||m°> ( +ssize_t +)( +buf +))  -1; + +174 +size + +ð +tmp +; + +177 +tmp + = + `d”_Žv_Ëngth_£rŸlize +( +Ën +, +buf ++ +size +, +buf_size +?buf_size-size:0); + +178 if( +tmp + == -1)  -1; + +179 +size + +ð +tmp +; + +181 if( +size + > ( +buf +)) + +187 if( +cb +) { + +188 if( +cÚ¡ruùed +è* +buf + |= 0x20; + +189 if( + `cb +( +buf +, +size +, +­p_key +) < 0) + +193  +size +; + +194 + } +} + + @oer_decoder.c + +5  + ~ + +6  + ~ + +11 +a¢_dec_rv®_t + + +12 + $Ûr_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +13 cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, ** +¡ruù_±r +, + +14 cÚ¡ * +±r +, +size_t + +size +) { + +15 +a¢_codec_ùx_t + +s_codec_ùx +; + +21 if( +Ýt_codec_ùx +) { + +22 if( +Ýt_codec_ùx +-> +max_¡ack_size +) { + +23 +s_codec_ùx + = * +Ýt_codec_ùx +; + +24 +Ýt_codec_ùx + = & +s_codec_ùx +; + +28 + `mem£t +(& +s_codec_ùx +, 0, (s_codec_ctx)); + +29 +s_codec_ùx +. +max_¡ack_size + = +ASN__DEFAULT_STACK_MAX +; + +30 +Ýt_codec_ùx + = & +s_codec_ùx +; + +36  +ty³_desütÜ +-> +Ý +-> + `Ûr_decod” +( +Ýt_codec_ùx +,ype_descriptor, 0, + +37 +¡ruù_±r +, + +38 +±r +, +size + + +40 + } +} + +46 +ssize_t + + +47 + $Ûr_ݒ_ty³_sk +(cÚ¡ * +buåŒ +, +size_t + +size +) { + +48 +size_t + +Ën + = 0; + +49  + `Ûr_ãtch_Ëngth +( +buåŒ +, +size +, & +Ën +); + +50 + } +} + +59 +ssize_t + + +60 + $Ûr_ݒ_ty³_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +61 cÚ¡  +a¢_TYPE_desütÜ_s + * +td +, + +62 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¡ruù_±r +, + +63 cÚ¡ * +buåŒ +, +size_t + +size +) { + +64 +a¢_dec_rv®_t + +dr +; + +65 +size_t + +cڏš”_Ën + = 0; + +66 +ssize_t + +Ën_Ën +; + +67 +a¢_¡ruù_ä“_m‘hod + +di¥o£_m‘hod + = + +68 (* +¡ruù_±r +è? +ASFM_FREE_UNDERLYING_AND_RESET + : +ASFM_FREE_EVERYTHING +; + +71 +Ën_Ën + = + `Ûr_ãtch_Ëngth +( +buåŒ +, +size +, & +cڏš”_Ën +); + +72 if( +Ën_Ën + <= 0) { + +73  +Ën_Ën +; + +80 if( +size + - +Ën_Ën + < +cڏš”_Ën +) { + +85 +dr + = +td +-> +Ý +-> + `Ûr_decod” +( +Ýt_codec_ùx +,d, +cÚ¡¿šts +, +¡ruù_±r +, + +86 (cÚ¡ +ušt8_t + *) +buåŒ + + +Ën_Ën +, +cڏš”_Ën +); + +87 if( +dr +. +code + =ð +RC_OK +) { + +88  +Ën_Ën + + +cڏš”_Ën +; + +91 +td +-> +Ý +-> + `ä“_¡ruù +Ñd, * +¡ruù_±r +, +di¥o£_m‘hod +); + +92 * +¡ruù_±r + = +NULL +; + +95 + } +} + +98 +a¢_dec_rv®_t + + +99 + $Ûr_decode_´im™ive +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +100 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +101 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +102 cÚ¡ * +±r +, +size_t + +size +) { + +103 +ASN__PRIMITIVE_TYPE_t + * +¡ + = (ASN__PRIMITIVE_TYPE_ˆ*)* +¥Œ +; + +104 +a¢_dec_rv®_t + +rv® + = { +RC_OK +, 0}; + +105 +size_t + +ex³ùed_Ëngth + = 0; + +106 +ssize_t + +Ën_Ën +; + +108 () +td +; + +109 () +Ýt_codec_ùx +; + +110 () +cÚ¡¿šts +; + +112 if(! +¡ +) { + +113 +¡ + = ( +ASN__PRIMITIVE_TYPE_t + *)(* +¥Œ + = + `CALLOC +( + +114 1, ( +ASN__PRIMITIVE_TYPE_t +))); + +115 if(! +¡ +è +ASN__DECODE_FAILED +; + +124 +Ën_Ën + = + `Ûr_ãtch_Ëngth +( +±r +, +size +, & +ex³ùed_Ëngth +); + +125 if( +Ën_Ën + > 0) { + +126 +rv® +. +cÚsumed + = +Ën_Ën +; + +127 +±r + = (cÚ¡ *íŒ + +Ën_Ën +; + +128 +size + -ð +Ën_Ën +; + +129 } if( +Ën_Ën + == 0) { + +130 +ASN__DECODE_STARVED +; + +131 } if( +Ën_Ën + < 0) { + +132 +ASN__DECODE_FAILED +; + +135 if( +size + < +ex³ùed_Ëngth +) { + +136 +ASN__DECODE_STARVED +; + +138 +ušt8_t + * +buf + = + `MALLOC +( +ex³ùed_Ëngth + + 1); + +139 if( +buf + =ð +NULL +) { + +140 +ASN__DECODE_FAILED +; + +142 + `memýy +( +buf +, +±r +, +ex³ùed_Ëngth +); + +143 +buf +[ +ex³ùed_Ëngth +] = '\0'; + +145 + `FREEMEM +( +¡ +-> +buf +); + +146 +¡ +-> +buf + = buf; + +147 +¡ +-> +size + = +ex³ùed_Ëngth +; + +149 +rv® +. +cÚsumed + +ð +ex³ùed_Ëngth +; + +150  +rv® +; + +152 + } +} + + @oer_encoder.c + +5  + ~ + +6  + ~ + +11 +a¢_’c_rv®_t + + +12 + $Ûr_’code +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, cÚ¡ * +¡ruù_±r +, + +13 +a¢_­p_cÚsume_by‹s_f + * +cÚsume_by‹s +, * +­p_key +) { + +14 + `ASN_DEBUG +("OERƒncod” invoked fÜ %s", +ty³_desütÜ +-> +Çme +); + +19  +ty³_desütÜ +-> +Ý +-> + `Ûr_’cod” +( + +20 +ty³_desütÜ +, 0, + +21 +¡ruù_±r +, + +22 +cÚsume_by‹s +, +­p_key +); + +23 + } +} + +28  + s’c_to_buf_¬g + { + +29 * + mbufãr +; + +30 +size_t + + mËá +; + +31 } + t’c_to_buf_¬g +; + +33 + $’code_to_bufãr_cb +(cÚ¡ * +bufãr +, +size_t + +size +, * +key +) { + +34 +’c_to_buf_¬g + * +¬g + = (’c_to_buf_¬g *) +key +; + +36 if( +¬g +-> +Ëá + < +size +)  -1; + +38 + `memýy +( +¬g +-> +bufãr +, bufãr, +size +); + +39 +¬g +-> +bufãr + = ((*ïrg->bufãrè+ +size +; + +40 +¬g +-> +Ëá + -ð +size +; + +43 + } +} + +48 +a¢_’c_rv®_t + + +49 + $Ûr_’code_to_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +ty³_desütÜ +, + +50 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +51 cÚ¡ * +¡ruù_±r +, + +52 * +bufãr +, + +53 +size_t + +bufãr_size + + +55 +’c_to_buf_¬g + +¬g +; + +56 +a¢_’c_rv®_t + +ec +; + +58 +¬g +. +bufãr + = buffer; + +59 +¬g +. +Ëá + = +bufãr_size +; + +61 if( +ty³_desütÜ +-> +Ý +-> +Ûr_’cod” + =ð +NULL +) { + +62 +ec +. +’coded + = -1; + +63 +ec +. +çžed_ty³ + = +ty³_desütÜ +; + +64 +ec +. +¡ruùu»_±r + = +¡ruù_±r +; + +65 + `ASN_DEBUG +("OERƒncoder is‚ot defined for %s", + +66 +ty³_desütÜ +-> +Çme +); + +68 +ec + = +ty³_desütÜ +-> +Ý +-> + `Ûr_’cod” +( + +69 +ty³_desütÜ +, +cÚ¡¿šts +, + +70 +¡ruù_±r +, + +71 +’code_to_bufãr_cb +, & +¬g +); + +72 if( +ec +. +’coded + != -1) { + +73 + `as£¹ +( +ec +. +’coded + =ð( +ssize_t +)( +bufãr_size + - +¬g +. +Ëá +)); + +77  +ec +; + +78 + } +} + +80 +a¢_’c_rv®_t + + +81 + $Ûr_’code_´im™ive +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +82 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +83 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +84 cÚ¡ +ASN__PRIMITIVE_TYPE_t + * +¡ + = (cÚ¡ ASN__PRIMITIVE_TYPE_ˆ*) +¥Œ +; + +85 +a¢_’c_rv®_t + +” + = {0, 0, 0}; + +86 +ssize_t + +»t +; + +88 () +cÚ¡¿šts +; + +90 if(! +¡ +è +ASN__ENCODE_FAILED +; + +92 + `ASN_DEBUG +("Encodšg % (%" +ASN_PRI_SIZE + " by‹s)", +td + ?d-> +Çme + : "", +¡ +-> +size +); + +97 +»t + = + `Ûr_£rŸlize_Ëngth +( +¡ +-> +size +, +cb +, +­p_key +); + +98 if( +»t + < 0) { + +99 +ASN__ENCODE_FAILED +; + +101 +” +. +’coded + +ð +»t +; + +103 +” +. +’coded + +ð +¡ +-> +size +; + +104 if( + `cb +( +¡ +-> +buf +, st-> +size +, +­p_key +) < 0) { + +105 +ASN__ENCODE_FAILED +; + +107 + `ASN__ENCODED_OK +( +” +); + +109 + } +} + +112 + $Ûr__couÁ_by‹s +(cÚ¡ * +bufãr +, +size_t + +size +, * +by‹s_±r +) { + +113 +size_t + * +by‹s + = +by‹s_±r +; + +114 () +bufãr +; + +115 * +by‹s + +ð +size +; + +117 + } +} + +119 +ssize_t + + +120 + $Ûr_ݒ_ty³_put +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +121 cÚ¡ +a¢_Ûr_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +122 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +123 +size_t + +£rŸlized_by‹_couÁ + = 0; + +124 +a¢_’c_rv®_t + +” + = {0,0,0}; + +125 +ssize_t + +Ën_Ën +; + +127 +” + = +td +-> +Ý +-> + `Ûr_’cod” +Ñd, +cÚ¡¿šts +, +¥Œ +, +Ûr__couÁ_by‹s +, + +128 & +£rŸlized_by‹_couÁ +); + +129 if( +” +. +’coded + < 0)  -1; + +130 + `as£¹ +( +£rŸlized_by‹_couÁ + =ð( +size_t +) +” +. +’coded +); + +132 +Ën_Ën + = + `Ûr_£rŸlize_Ëngth +( +£rŸlized_by‹_couÁ +, +cb +, +­p_key +); + +133 if( +Ën_Ën + == -1)  -1; + +135 +” + = +td +-> +Ý +-> + `Ûr_’cod” +Ñd, +cÚ¡¿šts +, +¥Œ +, +cb +, +­p_key +); + +136 if( +” +. +’coded + < 0)  -1; + +137 + `as£¹ +( +£rŸlized_by‹_couÁ + =ð( +size_t +) +” +. +’coded +); + +139  +Ën_Ën + + +” +. +’coded +; + +140 + } +} + + @oer_support.c + +6  + ~ + +7  + ~ + +9  + ~<Ûr_suµÜt.h +> + +18 +ssize_t + + +19 + $Ûr_ãtch_Ëngth +(cÚ¡ * +buåŒ +, +size_t + +size +, size_ˆ* +Ën_r +) { + +20 +ušt8_t + +fœ¡_by‹ +; + +21 +size_t + +Ën_Ën +; + +22 cÚ¡ +ušt8_t + * +b +; + +23 cÚ¡ +ušt8_t + * +b’d +; + +24 +size_t + +Ën +; + +26 if( +size + == 0) { + +27 * +Ën_r + = 0; + +31 +fœ¡_by‹ + = *(cÚ¡ +ušt8_t + *) +buåŒ +; + +32 if(( +fœ¡_by‹ + & 0x80) == 0) { + +33 * +Ën_r + = +fœ¡_by‹ +; + +37 +Ën_Ën + = ( +fœ¡_by‹ + & 0x7f); + +38 if((1 + +Ën_Ën +è> +size +) { + +39 * +Ën_r + = 0; + +43 +b + = (cÚ¡ +ušt8_t + *) +buåŒ + + 1; + +44 +b’d + = +b + + +Ën_Ën +; + +46 ; +b + < +b’d + && *b == 0; b++) { + +50 if(( +b’d + - +b +è> ( +ssize_t +)( +size_t +)) { + +52 * +Ën_r + = 0; + +56  +Ën + = 0; +b + < +b’d +; b++) { + +57 +Ën + = (ËÀ<< 8è+ * +b +; + +60 if( +Ën + > +RSIZE_MAX +) { + +61 * +Ën_r + = 0; + +65 * +Ën_r + = +Ën +; + +66 + `as£¹ +( +Ën_Ën + + 1 =ð( +size_t +)( +b’d + - (cÚ¡ +ušt8_t + *) +buåŒ +)); + +67  +Ën_Ën + + 1; + +68 + } +} + +75 +ssize_t + + +76 + $Ûr_£rŸlize_Ëngth +( +size_t + +Ëngth +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +77 * +­p_key +) { + +78 +ušt8_t + +sü©ch +[1 + ( +Ëngth +)]; + +79 +ušt8_t + * +¥ + = +sü©ch +; + +80  +l™ŽeEndŸn + = 1; + +81 cÚ¡ +ušt8_t + * +p¡¬t +; + +82 cÚ¡ +ušt8_t + * +³nd +; + +83 cÚ¡ +ušt8_t + * +p +; + +84  +add +; + +86 if( +Ëngth + <= 127) { + +87 +ušt8_t + +b + = +Ëngth +; + +88 if( + `cb +(& +b +, 1, +­p_key +) < 0) { + +94 if(*(*)& +l™ŽeEndŸn +) { + +95 +p¡¬t + = (cÚ¡ +ušt8_t + *)& +Ëngth + + (length) - 1; + +96 +³nd + = (cÚ¡ +ušt8_t + *)& +Ëngth +; + +97 +add + = -1; + +99 +p¡¬t + = (cÚ¡ +ušt8_t + *)& +Ëngth +; + +100 +³nd + = +p¡¬t + + ( +Ëngth +); + +101 +add + = 1; + +104  +p + = +p¡¬t +;… !ð +³nd +;… +ð +add +) { + +106 if(* +p +) ; + +109  +¥ + = +sü©ch + + 1; ; +p + +ð +add +) { + +110 * +¥ +++ = * +p +; + +111 if( +p + =ð +³nd +) ; + +113 + `as£¹ +(( +¥ + - +sü©ch +) - 1 <= 0x7f); + +114 +sü©ch +[0] = 0x80 + (( +¥ + - scratch) - 1); + +116 if( + `cb +( +sü©ch +, +¥ + - sü©ch, +­p_key +) < 0) { + +120  +¥ + - +sü©ch +; + +121 + } +} + + @per_decoder.c + +1  + ~ + +2  + ~ + +3  + ~<³r_decod”.h +> + +10 +a¢_dec_rv®_t + + +11 + $u³r_decode_com¶‘e +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +12 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +13 cÚ¡ * +bufãr +, +size_t + +size +) { + +14 +a¢_dec_rv®_t + +rv® +; + +16 +rv® + = + `u³r_decode +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +, 0, 0); + +17 if( +rv® +. +cÚsumed +) { + +22 +rv® +. +cÚsumed + += 7; + +23 +rv® +. +cÚsumed + >>= 3; + +24 } if( +rv® +. +code + =ð +RC_OK +) { + +25 if( +size +) { + +26 if(((cÚ¡ +ušt8_t + *) +bufãr +)[0] == 0) { + +27 +rv® +. +cÚsumed + = 1; + +29 + `ASN_DEBUG +("Expecting single zeroed byte"); + +30 +rv® +. +code + = +RC_FAIL +; + +34 +rv® +. +code + = +RC_WMORE +; + +38  +rv® +; + +39 + } +} + +41 +a¢_dec_rv®_t + + +42 + $u³r_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +43 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, cÚ¡ * +bufãr +, + +44 +size_t + +size +,  +sk_b™s +,  +unu£d_b™s +) { + +45 +a¢_codec_ùx_t + +s_codec_ùx +; + +46 +a¢_dec_rv®_t + +rv® +; + +47 +a¢_³r_d©a_t + +pd +; + +49 if( +sk_b™s + < 0 || skip_bits > 7 + +50 || +unu£d_b™s + < 0 || unused_bits > 7 + +51 || ( +unu£d_b™s + > 0 && ! +size +)) + +52 +ASN__DECODE_FAILED +; + +58 if( +Ýt_codec_ùx +) { + +59 if( +Ýt_codec_ùx +-> +max_¡ack_size +) { + +60 +s_codec_ùx + = * +Ýt_codec_ùx +; + +61 +Ýt_codec_ùx + = & +s_codec_ùx +; + +65 + `mem£t +(& +s_codec_ùx +, 0, (s_codec_ctx)); + +66 +s_codec_ùx +. +max_¡ack_size + = +ASN__DEFAULT_STACK_MAX +; + +67 +Ýt_codec_ùx + = & +s_codec_ùx +; + +71 + `mem£t +(& +pd +, 0, (pd)); + +72 +pd +. +bufãr + = (cÚ¡ +ušt8_t + *)buffer; + +73 +pd +. +nboff + = +sk_b™s +; + +74 +pd +. +nb™s + = 8 * +size + - +unu£d_b™s +; + +75 if( +pd +. +nboff + >…d. +nb™s +) + +76 +ASN__DECODE_FAILED +; + +81 if(! +td +-> +Ý +-> +u³r_decod” +) + +82 +ASN__DECODE_FAILED +; + +83 +rv® + = +td +-> +Ý +-> + `u³r_decod” +( +Ýt_codec_ùx +,d, 0, +¥Œ +, & +pd +); + +84 if( +rv® +. +code + =ð +RC_OK +) { + +86 +rv® +. +cÚsumed + = (( +pd +. +bufãr + - (cÚ¡ +ušt8_t + *)buffer) << 3) + +87 + +pd +. +nboff + - +sk_b™s +; + +88 + `ASN_DEBUG +("PER decoding consumed %ld, counted %ld", + +89 () +rv® +. +cÚsumed +, () +pd +. +moved +); + +90 + `as£¹ +( +rv® +. +cÚsumed + =ð +pd +. +moved +); + +93 +rv® +. +cÚsumed + = 0; + +95  +rv® +; + +96 + } +} + +98 +a¢_dec_rv®_t + + +99 + $­”_decode_com¶‘e +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +100 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, + +101 cÚ¡ * +bufãr +, +size_t + +size +) { + +102 +a¢_dec_rv®_t + +rv® +; + +104 +rv® + = + `­”_decode +( +Ýt_codec_ùx +, +td +, +¥Œ +, +bufãr +, +size +, 0, 0); + +105 if( +rv® +. +cÚsumed +) { + +110 +rv® +. +cÚsumed + += 7; + +111 +rv® +. +cÚsumed + >>= 3; + +112 } if( +rv® +. +code + =ð +RC_OK +) { + +113 if( +size +) { + +114 if(((cÚ¡ +ušt8_t + *) +bufãr +)[0] == 0) { + +115 +rv® +. +cÚsumed + = 1; + +117 + `ASN_DEBUG +("Expecting single zeroed byte"); + +118 +rv® +. +code + = +RC_FAIL +; + +122 +rv® +. +code + = +RC_WMORE +; + +126  +rv® +; + +127 + } +} + +129 +a¢_dec_rv®_t + + +130 + $­”_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +131 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¥Œ +, cÚ¡ * +bufãr +, + +132 +size_t + +size +,  +sk_b™s +,  +unu£d_b™s +) { + +133 +a¢_codec_ùx_t + +s_codec_ùx +; + +134 +a¢_dec_rv®_t + +rv® +; + +135 +a¢_³r_d©a_t + +pd +; + +137 if( +sk_b™s + < 0 || skip_bits > 7 + +138 || +unu£d_b™s + < 0 || unused_bits > 7 + +139 || ( +unu£d_b™s + > 0 && ! +size +)) + +140 +ASN__DECODE_FAILED +; + +146 if( +Ýt_codec_ùx +) { + +147 if( +Ýt_codec_ùx +-> +max_¡ack_size +) { + +148 +s_codec_ùx + = * +Ýt_codec_ùx +; + +149 +Ýt_codec_ùx + = & +s_codec_ùx +; + +153 + `mem£t +(& +s_codec_ùx +, 0, (s_codec_ctx)); + +154 +s_codec_ùx +. +max_¡ack_size + = +ASN__DEFAULT_STACK_MAX +; + +155 +Ýt_codec_ùx + = & +s_codec_ùx +; + +159 + `mem£t +(& +pd +, 0, (pd)); + +160 +pd +. +bufãr + = (cÚ¡ +ušt8_t + *)buffer; + +161 +pd +. +nboff + = +sk_b™s +; + +162 +pd +. +nb™s + = 8 * +size + - +unu£d_b™s +; + +163 if( +pd +. +nboff + >…d. +nb™s +) + +164 +ASN__DECODE_FAILED +; + +169 if(! +td +-> +Ý +-> +­”_decod” +) + +170 +ASN__DECODE_FAILED +; + +171 +rv® + = +td +-> +Ý +-> + `­”_decod” +( +Ýt_codec_ùx +,d, 0, +¥Œ +, & +pd +); + +172 if( +rv® +. +code + =ð +RC_OK +) { + +174 +rv® +. +cÚsumed + = (( +pd +. +bufãr + - (cÚ¡ +ušt8_t + *)buffer) << 3) + +175 + +pd +. +nboff + - +sk_b™s +; + +176 + `ASN_DEBUG +("PER decoding consumed %zu, counted %zu", + +177 +rv® +. +cÚsumed +, +pd +. +moved +); + +178 + `as£¹ +( +rv® +. +cÚsumed + =ð +pd +. +moved +); + +181 +rv® +. +cÚsumed + = 0; + +183  +rv® +; + +184 + } +} + + @per_encoder.c + +1  + ~ + +2  + ~ + +3  + ~<³r_’cod”.h +> + +5  +_u³r_’code_æush_ou +( +a¢_³r_ou_t + * +po +); + +8 + $ignÜe_ouut +(cÚ¡ * +d©a +, +size_t + +size +, * +­p_key +) { + +9 () +d©a +; + +10 () +size +; + +11 () +­p_key +; + +13 + } +} + +15 +a¢_’c_rv®_t + + +16 + $u³r_’code +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +17 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +18 +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +19 +a¢_³r_ou_t + +po +; + +20 +a¢_’c_rv®_t + +” + = {0,0,0}; + +25 if(! +td + || !td-> +Ý +-> +u³r_’cod” +) + +26 +ASN__ENCODE_FAILED +; + +28 +po +. +bufãr + =…o. +tmp¥aû +; + +29 +po +. +nboff + = 0; + +30 +po +. +nb™s + = 8 * Õo. +tmp¥aû +); + +31 +po +. +ouut + = +cb + ? cb : +ignÜe_ouut +; + +32 +po +. +Ý_key + = +­p_key +; + +33 +po +. +æushed_by‹s + = 0; + +35 +” + = +td +-> +Ý +-> + `u³r_’cod” +Ñd, +cÚ¡¿šts +, +¥Œ +, & +po +); + +36 if( +” +. +’coded + != -1) { + +37 +size_t + +b™s_to_æush +; + +39 +b™s_to_æush + = (( +po +. +bufãr + -…o. +tmp¥aû +è<< 3è+…o. +nboff +; + +42 +” +. +’coded + = ( +po +. +æushed_by‹s + << 3è+ +b™s_to_æush +; + +44 if( + `_u³r_’code_æush_ou +(& +po +)è +ASN__ENCODE_FAILED +; + +47  +” +; + +48 + } +} + +53  + s’c_to_buf_¬g + { + +54 * + mbufãr +; + +55 +size_t + + mËá +; + +56 } + t’c_to_buf_¬g +; + +57  + $’code_to_bufãr_cb +(cÚ¡ * +bufãr +, +size_t + +size +, * +key +) { + +58 +’c_to_buf_¬g + * +¬g + = (’c_to_buf_¬g *) +key +; + +60 if( +¬g +-> +Ëá + < +size +) + +63 + `memýy +( +¬g +-> +bufãr +, bufãr, +size +); + +64 +¬g +-> +bufãr + = ((*ïrg->bufãrè+ +size +; + +65 +¬g +-> +Ëá + -ð +size +; + +68 + } +} + +70 +a¢_’c_rv®_t + + +71 + $u³r_’code_to_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +72 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +73 cÚ¡ * +¥Œ +, * +bufãr +, +size_t + +bufãr_size +) { + +74 +’c_to_buf_¬g + +key +; + +76 +key +. +bufãr + = buffer; + +77 +key +. +Ëá + = +bufãr_size +; + +79 if( +td +è + `ASN_DEBUG +("Encodšg \"%s\" usšg UNALIGNED PER",d-> +Çme +); + +81  + `u³r_’code +( +td +, +cÚ¡¿šts +, +¥Œ +, +’code_to_bufãr_cb +, & +key +); + +82 + } +} + +84  + s’c_dyn_¬g + { + +85 * + mbufãr +; + +86 +size_t + + mËngth +; + +87 +size_t + + m®loÿ‹d +; + +88 } + t’c_dyn_¬g +; + +90 + $’code_dyn_cb +(cÚ¡ * +bufãr +, +size_t + +size +, * +key +) { + +91 +’c_dyn_¬g + * +¬g + = +key +; + +92 if( +¬g +-> +Ëngth + + +size + >ð¬g-> +®loÿ‹d +) { + +93 +size_t + +Ãw_size + = +¬g +-> +®loÿ‹d + ?‡rg->allocated : 8; + +94 * +p +; + +97 +Ãw_size + <<= 2; + +98 }  +¬g +-> +Ëngth + + +size + >ð +Ãw_size +); + +100 +p + = + `REALLOC +( +¬g +-> +bufãr +, +Ãw_size +); + +101 if(! +p +) { + +102 + `FREEMEM +( +¬g +-> +bufãr +); + +103 + `mem£t +( +¬g +, 0, (*arg)); + +106 +¬g +-> +bufãr + = +p +; + +107 +¬g +-> +®loÿ‹d + = +Ãw_size +; + +109 + `memýy +(((*) +¬g +-> +bufãr +è+‡rg-> +Ëngth +, bufãr, +size +); + +110 +¬g +-> +Ëngth + +ð +size +; + +112 + } +} + +113 +ssize_t + + +114 + $u³r_’code_to_Ãw_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +115 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +116 cÚ¡ * +¥Œ +, ** +bufãr_r +) { + +117 +a¢_’c_rv®_t + +” + = {0,0,0}; + +118 +’c_dyn_¬g + +key +; + +120 + `mem£t +(& +key +, 0, (key)); + +122 +” + = + `u³r_’code +( +td +, +cÚ¡¿šts +, +¥Œ +, +’code_dyn_cb +, & +key +); + +123  +” +. +’coded +) { + +125 + `FREEMEM +( +key +. +bufãr +); + +128 + `FREEMEM +( +key +. +bufãr +); + +129 +key +. +bufãr + = + `MALLOC +(1); + +130 if( +key +. +bufãr +) { + +131 *(*) +key +. +bufãr + = '\0'; + +132 * +bufãr_r + = +key +. +bufãr +; + +138 * +bufãr_r + = +key +. +bufãr +; + +139 + `ASN_DEBUG +("Com¶‘’coded iÀ%ld b™s", () +” +. +’coded +); + +140  (( +” +. +’coded + + 7) >> 3); + +142 + } +} + +150 + $_u³r_’code_æush_ou +( +a¢_³r_ou_t + * +po +) { + +151 +ušt8_t + * +buf +; + +153 if( +po +-> +nboff + =ð0 &&…o-> +bufãr + =ðpo-> +tmp¥aû +) + +156 +buf + = +po +-> +bufãr + + (po-> +nboff + >> 3); + +158 if( +po +-> +nboff + & 0x07) { + +159 +buf +[0] &ð0xfà<< (8 - ( +po +-> +nboff + & 0x07)); + +160 +buf +++; + +163  +po +-> + `ouut +Õo-> +tmp¥aû +, +buf + -…o->tmp¥aû,…o-> +Ý_key +); + +164 + } +} + +166 +a¢_’c_rv®_t + + +167 + $­”_’code_to_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +168 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +169 cÚ¡ * +¥Œ +, * +bufãr +, +size_t + +bufãr_size +) { + +170 +’c_to_buf_¬g + +key +; + +172 +key +. +bufãr + = buffer; + +173 +key +. +Ëá + = +bufãr_size +; + +175 if( +td +è + `ASN_DEBUG +("Encodšg \"%s\" usšg ALIGNED PER",d-> +Çme +); + +177  + `­”_’code +( +td +, +cÚ¡¿šts +, +¥Œ +, +’code_to_bufãr_cb +, & +key +); + +178 + } +} + +180 +ssize_t + + +181 + $­”_’code_to_Ãw_bufãr +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +182 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +183 cÚ¡ * +¥Œ +, ** +bufãr_r +) { + +184 +a¢_’c_rv®_t + +” + = {0,0,0}; + +185 +’c_dyn_¬g + +key +; + +187 + `mem£t +(& +key +, 0, (key)); + +189 +” + = + `­”_’code +( +td +, +cÚ¡¿šts +, +¥Œ +, +’code_dyn_cb +, & +key +); + +190  +” +. +’coded +) { + +192 + `FREEMEM +( +key +. +bufãr +); + +195 + `FREEMEM +( +key +. +bufãr +); + +196 +key +. +bufãr + = + `MALLOC +(1); + +197 if( +key +. +bufãr +) { + +198 *(*) +key +. +bufãr + = '\0'; + +199 * +bufãr_r + = +key +. +bufãr +; + +205 * +bufãr_r + = +key +. +bufãr +; + +206 + `ASN_DEBUG +("Com¶‘’coded iÀ%ld b™s", () +” +. +’coded +); + +207  (( +” +. +’coded + + 7) >> 3); + +209 + } +} + +212 + $_­”_’code_æush_ou +( +a¢_³r_ou_t + * +po +) { + +213 +ušt8_t + * +buf +; + +215 if( +po +-> +nboff + =ð0 &&…o-> +bufãr + =ðpo-> +tmp¥aû +) + +218 +buf + = +po +-> +bufãr + + (po-> +nboff + >> 3); + +220 if( +po +-> +nboff + & 0x07) { + +221 +buf +[0] &ð0xfà<< (8 - ( +po +-> +nboff + & 0x07)); + +222 +buf +++; + +225 ià( +po +-> +ouut +) { + +226  +po +-> + `ouut +Õo-> +tmp¥aû +, +buf + -…o->tmp¥aû,…o-> +Ý_key +); + +229 + } +} + +231 +a¢_’c_rv®_t + + +232 + $­”_’code +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +233 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +234 cÚ¡ * +¥Œ +, +a¢_­p_cÚsume_by‹s_f + * +cb +, * +­p_key +) { + +235 +a¢_³r_ou_t + +po +; + +236 +a¢_’c_rv®_t + +” + = {0,0,0}; + +241 if(! +td + || !td-> +Ý +-> +­”_’cod” +) + +242 +ASN__ENCODE_FAILED +; + +244 +po +. +bufãr + =…o. +tmp¥aû +; + +245 +po +. +nboff + = 0; + +246 +po +. +nb™s + = 8 * Õo. +tmp¥aû +); + +247 +po +. +ouut + = +cb +; + +248 +po +. +Ý_key + = +­p_key +; + +249 +po +. +æushed_by‹s + = 0; + +251 +” + = +td +-> +Ý +-> + `­”_’cod” +Ñd, +cÚ¡¿šts +, +¥Œ +, & +po +); + +252 if( +” +. +’coded + != -1) { + +253 +size_t + +b™s_to_æush +; + +255 +b™s_to_æush + = (( +po +. +bufãr + -…o. +tmp¥aû +è<< 3è+…o. +nboff +; + +258 +” +. +’coded + = ( +po +. +æushed_by‹s + << 3è+ +b™s_to_æush +; + +260 if( + `_­”_’code_æush_ou +(& +po +)) + +261 +ASN__ENCODE_FAILED +; + +264  +” +; + +265 + } +} + + @per_opentype.c + +5  + ~ + +6  + ~<³r_suµÜt.h +> + +7  + ~ + +8  + ~<³r_ݒty³.h +> + +10  + su³r_ugÙ_key + { + +11 +a¢_³r_d©a_t + + mÞdpd +; + +12 +size_t + + munþaimed +; + +13 +size_t + + mÙ_moved +; + +14  + m»³© +; + +15 } + tu³r_ugÙ_key +; + +17  +u³r_ugÙ_»fžl +( +a¢_³r_d©a_t + * +pd +); + +18  +³r_sk_b™s +( +a¢_³r_d©a_t + * +pd +,  +sk_nb™s +); + +19  +a¢_dec_rv®_t + +u³r_sÙ_suck +(cÚ¡ +a¢_codec_ùx_t + *, + +20 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +21 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +22 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +); + +29 + $u³r_ݒ_ty³_put +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +30 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, cÚ¡ * +¥Œ +, + +31 +a¢_³r_ou_t + * +po +) { + +32 * +buf +; + +33 * +b±r +; + +34 +ssize_t + +size +; + +36 + `ASN_DEBUG +("O³Àty³…uˆ% ...", +td +-> +Çme +); + +38 +size + = + `u³r_’code_to_Ãw_bufãr +( +td +, +cÚ¡¿šts +, +¥Œ +, & +buf +); + +39 if( +size + <= 0)  -1; + +41 + `ASN_DEBUG +("O³Àty³…uˆ% oàËngth %" +ASN_PRI_SSIZE + " + ov”h—d (1by‹?)", +td +-> +Çme +, + +42 +size +); + +44 +b±r + = +buf +; + +46  +Ãed_eom + = 0; + +47 +ssize_t + +may_§ve + = + `u³r_put_Ëngth +( +po +, +size +, & +Ãed_eom +); + +48 + `ASN_DEBUG +("P»³ndšg†’gth %" +ASN_PRI_SSIZE + + +49 "Ø% ªd‡ÎowšgØ§v%" +ASN_PRI_SSIZE +, + +50 +size +, +td +-> +Çme +, +may_§ve +); + +51 if( +may_§ve + < 0) ; + +52 if( + `³r_put_mªy_b™s +( +po +, +b±r +, +may_§ve + * 8)) ; + +53 +b±r + = (*)b±¸+ +may_§ve +; + +54 +size + -ð +may_§ve +; + +55 if( +Ãed_eom + && + `u³r_put_Ëngth +( +po +, 0, 0)) { + +56 + `FREEMEM +( +buf +); + +59 }  +size +); + +61 + `FREEMEM +( +buf +); + +62 if( +size +)  -1; + +65 + } +} + +67  +a¢_dec_rv®_t + + +68 + $u³r_ݒ_ty³_g‘_sim¶e +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, + +69 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +70 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +71 +a¢_³r_d©a_t + * +pd +) { + +72 +a¢_dec_rv®_t + +rv +; + +73 +ssize_t + +chunk_by‹s +; + +74  +»³© +; + +75 +ušt8_t + * +buf + = 0; + +76 +size_t + +bufL’ + = 0; + +77 +size_t + +bufSize + = 0; + +78 +a¢_³r_d©a_t + +¥d +; + +79 +size_t + +·ddšg +; + +81 + `ASN__STACK_OVERFLOW_CHECK +( +ùx +); + +83 + `ASN_DEBUG +("G‘tšg o³Àty³ %s...", +td +-> +Çme +); + +86 +chunk_by‹s + = + `u³r_g‘_Ëngth +( +pd +, -1, 0, & +»³© +); + +87 if( +chunk_by‹s + < 0) { + +88 + `FREEMEM +( +buf +); + +89 +ASN__DECODE_STARVED +; + +91 if( +bufL’ + + +chunk_by‹s + > +bufSize +) { + +92 * +±r +; + +93 +bufSize + = +chunk_by‹s + + (bufSize << 2); + +94 +±r + = + `REALLOC +( +buf +, +bufSize +); + +95 if(! +±r +) { + +96 + `FREEMEM +( +buf +); + +97 +ASN__DECODE_FAILED +; + +99 +buf + = +±r +; + +101 if( + `³r_g‘_mªy_b™s +( +pd +, +buf + + +bufL’ +, 0, +chunk_by‹s + << 3)) { + +102 + `FREEMEM +( +buf +); + +103 +ASN__DECODE_STARVED +; + +105 +bufL’ + +ð +chunk_by‹s +; + +106 }  +»³© +); + +108 + `ASN_DEBUG +("G‘tšg o³Àty³ % ’coded iÀ%ld by‹s", +td +-> +Çme +, + +109 () +bufL’ +); + +111 + `mem£t +(& +¥d +, 0, (spd)); + +112 +¥d +. +bufãr + = +buf +; + +113 +¥d +. +nb™s + = +bufL’ + << 3; + +115 + `ASN_DEBUG_INDENT_ADD +(+4); + +116 +rv + = +td +-> +Ý +-> + `u³r_decod” +( +ùx +,d, +cÚ¡¿šts +, +¥Œ +, & +¥d +); + +117 + `ASN_DEBUG_INDENT_ADD +(-4); + +119 if( +rv +. +code + =ð +RC_OK +) { + +121 +·ddšg + = +¥d +. +nb™s + - spd. +nboff +; + +122 ià((( +·ddšg + > 0 &&…adding < 8) || + +124 ( +¥d +. +nboff + =ð0 && spd. +nb™s + =ð8 && spd. +bufãr + =ð +buf +)) && + +125 + `³r_g‘_ãw_b™s +(& +¥d +, +·ddšg +) == 0) { + +127 + `FREEMEM +( +buf +); + +128  +rv +; + +130 + `FREEMEM +( +buf +); + +131 if( +·ddšg + >= 8) { + +132 + `ASN_DEBUG +("ToØÏrg·ddšg %d iÀݒy³", () +·ddšg +); + +133 +ASN__DECODE_FAILED +; + +135 + `ASN_DEBUG +("No…adding"); + +138 + `FREEMEM +( +buf +); + +140 +rv +. +code + = +RC_FAIL +; + +143  +rv +; + +144 + } +} + +146  +a¢_dec_rv®_t + +CC_NOTUSED + + +147 + $u³r_ݒ_ty³_g‘_com¶ex +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, + +148 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +149 +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +150 +a¢_³r_d©a_t + * +pd +) { + +151 +u³r_ugÙ_key + +¬g +; + +152 +a¢_dec_rv®_t + +rv +; + +153 +ssize_t + +·ddšg +; + +155 + `ASN__STACK_OVERFLOW_CHECK +( +ùx +); + +157 + `ASN_DEBUG +("G‘tšg o³Àty³ % äom %s", +td +-> +Çme +, + +158 + `a¢_b™_d©a_¡ršg +( +pd +)); + +159 +¬g +. +Þdpd + = * +pd +; + +160 +¬g +. +unþaimed + = 0; + +161 +¬g +. +Ù_moved + = 0; + +162 +¬g +. +»³© + = 1; + +163 +pd +-> +»fžl + = +u³r_ugÙ_»fžl +; + +164 +pd +-> +»fžl_key + = & +¬g +; + +165 +pd +-> +nb™s + =…d-> +nboff +; + +166 +pd +-> +moved + = 0; + +168 + `ASN_DEBUG_INDENT_ADD +(+4); + +169 +rv + = +td +-> +Ý +-> + `u³r_decod” +( +ùx +,d, +cÚ¡¿šts +, +¥Œ +, +pd +); + +170 + `ASN_DEBUG_INDENT_ADD +(-4); + +172  + #UPDRESTOREPD + do { \ + +174 +pd +-> +nb™s + = +¬g +. +Þdpd +.nb™ - (pd-> +moved + -‡rg. +Ù_moved +); \ + +175 +pd +-> +moved + = +¬g +. +Þdpd +.moved + (pd->moved -‡rg. +Ù_moved +); \ + +176 +pd +-> +»fžl + = +¬g +. +Þdpd +.refill; \ + +177 +pd +-> +»fžl_key + = +¬g +. +Þdpd +.refill_key; \ + +178 } 0) + + ) + +180 if( +rv +. +code + !ð +RC_OK +) { + +181 +UPDRESTOREPD +; + +182  +rv +; + +185 + `ASN_DEBUG +("O³nTy³ % pd% Þd% unþaimed=%d,„•—t=%d", +td +-> +Çme +, + +186 + `a¢_b™_d©a_¡ršg +( +pd +), + +187 + `a¢_b™_d©a_¡ršg +(& +¬g +. +Þdpd +), + +188 () +¬g +. +unþaimed +, (ïrg. +»³© +); + +190 +·ddšg + = +pd +-> +moved + % 8; + +191 if( +·ddšg +) { + +192 +št32_t + +pv®ue +; + +193 if( +·ddšg + > 7) { + +194 + `ASN_DEBUG +("Too†arge…adding %d in openype", + +195 () +·ddšg +); + +196 +rv +. +code + = +RC_FAIL +; + +197 +UPDRESTOREPD +; + +198  +rv +; + +200 +·ddšg + = 8 -…adding; + +201 + `ASN_DEBUG +("G‘tšg…addšg oà%d b™s", () +·ddšg +); + +202 +pv®ue + = + `³r_g‘_ãw_b™s +( +pd +, +·ddšg +); + +203  +pv®ue +) { + +205 + `ASN_DEBUG +("Padding skip failed"); + +206 +UPDRESTOREPD +; + +207 +ASN__DECODE_STARVED +; + +210 + `ASN_DEBUG +("Non-blank…adding (%d bits 0x%02x)", + +211 () +·ddšg +, () +pv®ue +); + +212 +UPDRESTOREPD +; + +213 +ASN__DECODE_FAILED +; + +216 if( +pd +-> +nboff + !ðpd-> +nb™s +) { + +217 + `ASN_DEBUG +("O³Àty³ % ov”h—d…d% Þd%s", +td +-> +Çme +, + +218 + `a¢_b™_d©a_¡ršg +( +pd +),‡¢_b™_d©a_¡ršg(& +¬g +. +Þdpd +)); + +220 +UPDRESTOREPD +; + +221 +ASN__DECODE_FAILED +; + +223 +¬g +. +unþaimed + +ð +pd +-> +nb™s + -…d-> +nboff +; + +228 +UPDRESTOREPD +; + +231 if( +¬g +. +unþaimed +) { + +232 + `ASN_DEBUG +("G‘tšg unþaimed %d", () +¬g +. +unþaimed +); + +233  + `³r_sk_b™s +( +pd +, +¬g +. +unþaimed +)) { + +235 + `ASN_DEBUG +("CÏim oà%d fažed", () +¬g +. +unþaimed +); + +236 +ASN__DECODE_STARVED +; + +238 + `ASN_DEBUG +("GÙ cÏim oà%d", () +¬g +. +unþaimed +); + +242 + `ASN_DEBUG +("Non-blank unconsumed…adding"); + +243 +ASN__DECODE_FAILED +; + +245 +¬g +. +unþaimed + = 0; + +248 if( +¬g +. +»³© +) { + +249 + `ASN_DEBUG +("Not consumedhe wholehing"); + +250 +rv +. +code + = +RC_FAIL +; + +251  +rv +; + +254  +rv +; + +255 + } +} + +258 +a¢_dec_rv®_t + + +259 + $u³r_ݒ_ty³_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +260 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +261 +a¢_³r_d©a_t + * +pd +) { + +262  + `u³r_ݒ_ty³_g‘_sim¶e +( +ùx +, +td +, +cÚ¡¿šts +, +¥Œ +, +pd +); + +263 + } +} + +266 + $u³r_ݒ_ty³_sk +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, +a¢_³r_d©a_t + * +pd +) { + +267 +a¢_TYPE_desütÜ_t + +s_td +; + +268 +a¢_TYPE_ݔ©iÚ_t + +s_Ý +; + +269 +a¢_dec_rv®_t + +rv +; + +271 +s_td +. +Çme + = ""; + +272 +s_td +. +Ý + = & +s_Ý +; + +273 +s_Ý +. +u³r_decod” + = +u³r_sÙ_suck +; + +275 +rv + = + `u³r_ݒ_ty³_g‘ +( +ùx +, & +s_td +, 0, 0, +pd +); + +276 if( +rv +. +code + !ð +RC_OK +) + +280 + } +} + +286  +a¢_dec_rv®_t + + +287 + $u³r_sÙ_suck +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +288 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, + +289 +a¢_³r_d©a_t + * +pd +) { + +290 +a¢_dec_rv®_t + +rv +; + +292 () +ùx +; + +293 () +td +; + +294 () +cÚ¡¿šts +; + +295 () +¥Œ +; + +297  + `³r_g‘_ãw_b™s +( +pd +, 1) >= 0); + +299 +rv +. +code + = +RC_OK +; + +300 +rv +. +cÚsumed + = +pd +-> +moved +; + +302  +rv +; + +303 + } +} + +306 + $u³r_ugÙ_»fžl +( +a¢_³r_d©a_t + * +pd +) { + +307 +u³r_ugÙ_key + * +¬g + = +pd +-> +»fžl_key +; + +308 +ssize_t + +Ãxt_chunk_by‹s +, +Ãxt_chunk_b™s +; + +309 +ssize_t + +avaž +; + +311 +a¢_³r_d©a_t + * +Þdpd + = & +¬g +->oldpd; + +313 + `ASN_DEBUG +("REFILLING…d->moved=%ld, oldpd->moved=%ld", + +314 () +pd +-> +moved +, () +Þdpd +->moved); + +317 +Þdpd +-> +bufãr + = +pd +->buffer; + +318 +Þdpd +-> +nboff + = +pd +->nboff; + +319 +Þdpd +-> +nb™s + -ð +pd +-> +moved + - +¬g +-> +Ù_moved +; + +320 +Þdpd +-> +moved + +ð +pd +->moved - +¬g +-> +Ù_moved +; + +321 +¬g +-> +Ù_moved + = +pd +-> +moved +; + +323 if( +¬g +-> +unþaimed +) { + +325 if( + `³r_g‘_ãw_b™s +( +Þdpd +, 1)) + +327 if( +Þdpd +-> +nboff + == 0) { + +328 + `as£¹ +(0); + +331 +pd +-> +bufãr + = +Þdpd +->buffer; + +332 +pd +-> +nboff + = +Þdpd +->nboff - 1; + +333 +pd +-> +nb™s + = +Þdpd +->nbits; + +334 + `ASN_DEBUG +("UNCLAIMED <-„eturn from (pd->moved=%ld)", + +335 () +pd +-> +moved +); + +339 if(! +¬g +-> +»³© +) { + +340 + `ASN_DEBUG +("Want more but„efill doesn't have it"); + +344 +Ãxt_chunk_by‹s + = + `u³r_g‘_Ëngth +( +Þdpd +, -1, 0, & +¬g +-> +»³© +); + +345 + `ASN_DEBUG +("Openype LENGTH %ld bytes‡t off %ld,„epeat %ld", + +346 () +Ãxt_chunk_by‹s +, () +Þdpd +-> +moved +, () +¬g +-> +»³© +); + +347 if( +Ãxt_chunk_by‹s + < 0)  -1; + +348 if( +Ãxt_chunk_by‹s + == 0) { + +349 +pd +-> +»fžl + = 0; + +350 + `as£¹ +(! +¬g +-> +»³© +); + +352 +Ãxt_chunk_b™s + = +Ãxt_chunk_by‹s + << 3; + +353 +avaž + = +Þdpd +-> +nb™s + - oldpd-> +nboff +; + +354 if( +avaž + >ð +Ãxt_chunk_b™s +) { + +355 +pd +-> +nb™s + = +Þdpd +-> +nboff + + +Ãxt_chunk_b™s +; + +356 +¬g +-> +unþaimed + = 0; + +357 + `ASN_DEBUG +("!+Parent frame %ld bits,‡lloting %ld [%ld..%ld] (%ld)", + +358 () +Ãxt_chunk_b™s +, () +Þdpd +-> +moved +, + +359 () +Þdpd +-> +nboff +, ()Þdpd-> +nb™s +, + +360 ()( +Þdpd +-> +nb™s + - oldpd-> +nboff +)); + +362 +pd +-> +nb™s + = +Þdpd +->nbits; + +363 +¬g +-> +unþaimed + = +Ãxt_chunk_b™s + - +avaž +; + +364 + `ASN_DEBUG +("!-Parent frame %ld,„equire %ld, will claim %ld", + +365 () +avaž +, () +Ãxt_chunk_b™s +, + +366 () +¬g +-> +unþaimed +); + +368 +pd +-> +bufãr + = +Þdpd +->buffer; + +369 +pd +-> +nboff + = +Þdpd +->nboff; + +370 + `ASN_DEBUG +("Refilled…d%s old%s", + +371 + `a¢_b™_d©a_¡ršg +( +pd +),‡¢_b™_d©a_¡ršg( +Þdpd +)); + +373 + } +} + +376 + $³r_sk_b™s +( +a¢_³r_d©a_t + * +pd +,  +sk_nb™s +) { + +377  +hasNÚZ”oB™s + = 0; + +378  +sk_nb™s + > 0) { + +379  +sk +; + +382 if( +sk_nb™s + < 24) + +383 +sk + = +sk_nb™s +; + +385 +sk + = 24; + +386 +sk_nb™s + -ð +sk +; + +388  + `³r_g‘_ãw_b™s +( +pd +, +sk +)) { + +391 : +hasNÚZ”oB™s + = 1; ; + +394  +hasNÚZ”oB™s +; + +395 + } +} + +397  +a¢_dec_rv®_t + + +398 + $­”_ݒ_ty³_g‘_sim¶e +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, + +399 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +400 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +401 +a¢_dec_rv®_t + +rv +; + +402 +ssize_t + +chunk_by‹s +; + +403  +»³© +; + +404 +ušt8_t + * +buf + = 0; + +405 +size_t + +bufL’ + = 0; + +406 +size_t + +bufSize + = 0; + +407 +a¢_³r_d©a_t + +¥d +; + +408 +size_t + +·ddšg +; + +410 + `ASN__STACK_OVERFLOW_CHECK +( +ùx +); + +412 + `ASN_DEBUG +("G‘tšg o³Àty³ %s...", +td +-> +Çme +); + +415 +chunk_by‹s + = + `­”_g‘_Ëngth +( +pd +, -1, -1, & +»³© +); + +416 if( +chunk_by‹s + < 0) { + +417 + `FREEMEM +( +buf +); + +418 +ASN__DECODE_STARVED +; + +420 if( +bufL’ + + +chunk_by‹s + > +bufSize +) { + +421 * +±r +; + +422 +bufSize + = +chunk_by‹s + + (bufSize << 2); + +423 +±r + = + `REALLOC +( +buf +, +bufSize +); + +424 if(! +±r +) { + +425 + `FREEMEM +( +buf +); + +426 +ASN__DECODE_FAILED +; + +428 +buf + = +±r +; + +430 if( + `³r_g‘_mªy_b™s +( +pd +, +buf + + +bufL’ +, 0, +chunk_by‹s + << 3)) { + +431 + `FREEMEM +( +buf +); + +432 +ASN__DECODE_STARVED +; + +434 +bufL’ + +ð +chunk_by‹s +; + +435 }  +»³© +); + +437 + `ASN_DEBUG +("G‘tšg o³Àty³ % ’coded iÀ%ld by‹s", +td +-> +Çme +, + +438 () +bufL’ +); + +440 + `mem£t +(& +¥d +, 0, (spd)); + +441 +¥d +. +bufãr + = +buf +; + +442 +¥d +. +nb™s + = +bufL’ + << 3; + +444 + `ASN_DEBUG_INDENT_ADD +(+4); + +445 +rv + = +td +-> +Ý +-> + `­”_decod” +( +ùx +,d, +cÚ¡¿šts +, +¥Œ +, & +¥d +); + +446 + `ASN_DEBUG_INDENT_ADD +(-4); + +448 if( +rv +. +code + =ð +RC_OK +) { + +450 +·ddšg + = +¥d +. +nb™s + - spd. +nboff +; + +451 ià((( +·ddšg + > 0 &&…adding < 8) || + +453 ( +¥d +. +nboff + =ð0 && spd. +nb™s + =ð8 && spd. +bufãr + =ð +buf +)) && + +454 + `³r_g‘_ãw_b™s +(& +¥d +, +·ddšg +) == 0) { + +456 + `FREEMEM +( +buf +); + +457  +rv +; + +459 + `FREEMEM +( +buf +); + +460 if( +·ddšg + >= 8) { + +461 + `ASN_DEBUG +("ToØÏrg·ddšg %d iÀݒy³", () +·ddšg +); + +462 +ASN__DECODE_FAILED +; + +464 + `ASN_DEBUG +("No…adding"); + +467 + `FREEMEM +( +buf +); + +469 +rv +. +code + = +RC_FAIL +; + +472  +rv +; + +473 + } +} + +476 + $­”_ݒ_ty³_put +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +477 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +478 cÚ¡ * +¥Œ +, +a¢_³r_ou_t + * +po +) { + +479 * +buf +; + +480 * +b±r +; + +481 +ssize_t + +size +; + +482 +size_t + +toGo +; + +484 + `ASN_DEBUG +("O³Àty³…uˆ% ...", +td +-> +Çme +); + +486 +size + = + `­”_’code_to_Ãw_bufãr +( +td +, +cÚ¡¿šts +, +¥Œ +, & +buf +); + +487 if( +size + <= 0)  -1; + +489  +b±r + = +buf +, +toGo + = +size +;oGo;) { + +490 +ssize_t + +maySave + = + `­”_put_Ëngth +( +po +, -1, +toGo +); + +491 if( +maySave + < 0) ; + +492 if( + `³r_put_mªy_b™s +( +po +, +b±r +, +maySave + * 8)) ; + +493 +b±r + = (*)b±¸+ +maySave +; + +494 +toGo + -ð +maySave +; + +497 + `FREEMEM +( +buf +); + +498 if( +toGo +)  -1; + +500 + `ASN_DEBUG +("Openype…ut %s of†ength %ld + overhead (1byte?)", + +501 +td +-> +Çme +, +size +); + +504 + } +} + +506 +a¢_dec_rv®_t + + +507 + $­”_ݒ_ty³_g‘ +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, + +508 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, + +509 cÚ¡ +a¢_³r_cÚ¡¿šts_t + * +cÚ¡¿šts +, + +510 ** +¥Œ +, +a¢_³r_d©a_t + * +pd +) { + +512  + `­”_ݒ_ty³_g‘_sim¶e +( +ùx +, +td +, +cÚ¡¿šts +, +¥Œ +, +pd +); + +513 + } +} + +516 + $­”_ݒ_ty³_sk +(cÚ¡ +a¢_codec_ùx_t + * +ùx +, +a¢_³r_d©a_t + * +pd +) { + +517 +a¢_TYPE_desütÜ_t + +s_td +; + +518 +a¢_dec_rv®_t + +rv +; + +519 +a¢_TYPE_ݔ©iÚ_t + +Ý_t +; + +521 + `mem£t +(& +Ý_t +, 0, (op_t)); + +522 +s_td +. +Çme + = ""; + +523 +s_td +. +Ý + = & +Ý_t +; + +524 +s_td +. +Ý +-> +­”_decod” + = +u³r_sÙ_suck +; + +526 +rv + = + `­”_ݒ_ty³_g‘ +( +ùx +, & +s_td +, 0, 0, +pd +); + +527 if( +rv +. +code + !ð +RC_OK +) + +531 + } +} + + @per_support.c + +5  + ~ + +6  + ~ + +7  + ~<³r_suµÜt.h +> + +13 +ssize_t + + +14 + $u³r_g‘_Ëngth +( +a¢_³r_d©a_t + * +pd +,  +eb™s +, +size_t + +low”_bound +, + +15 * +»³© +) { + +16 +ssize_t + +v®ue +; + +18 * +»³© + = 0; + +21 if( +eb™s + >= 0 &&ƒbits <= 16) { + +22 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +eb™s +); + +23 if( +v®ue + >ð0èv®u+ð +low”_bound +; + +24  +v®ue +; + +27 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 8); + +28 if(( +v®ue + & 0x80) == 0) { + +29  ( +v®ue + & 0x7F); + +30 } if(( +v®ue + & 0x40) == 0) { + +32 +v®ue + = ((v®u& 0x3fè<< 8è| + `³r_g‘_ãw_b™s +( +pd +, 8); + +33  +v®ue +; + +34 } if( +v®ue + < 0) { + +35 + `ASN_DEBUG +("END of stream„eached for PER"); + +38 +v®ue + &= 0x3f; + +39 if( +v®ue + < 1 || value > 4) { + +42 * +»³© + = 1; + +43  (16384 * +v®ue +); + +44 + } +} + +51 +ssize_t + + +52 + $u³r_g‘_n¦’gth +( +a¢_³r_d©a_t + * +pd +) { + +53 +ssize_t + +Ëngth +; + +55 + `ASN_DEBUG +("Getting‚ormally small†ength"); + +57 if( + `³r_g‘_ãw_b™s +( +pd +, 1) == 0) { + +58 +Ëngth + = + `³r_g‘_ãw_b™s +( +pd +, 6) + 1; + +59 if( +Ëngth + <= 0)  -1; + +60 + `ASN_DEBUG +("l=%d", () +Ëngth +); + +61  +Ëngth +; + +63  +»³© +; + +64 +Ëngth + = + `u³r_g‘_Ëngth +( +pd +, -1, 0, & +»³© +); + +65 if( +Ëngth + >ð0 && ! +»³© +) †ength; + +68 + } +} + +74 +ssize_t + + +75 + $u³r_g‘_n¢nwn +( +a¢_³r_d©a_t + * +pd +) { + +76 +ssize_t + +v®ue +; + +78 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 7); + +79 if( +v®ue + & 64) { + +80 +v®ue + &= 63; + +81 +v®ue + <<= 2; + +82 +v®ue + |ð + `³r_g‘_ãw_b™s +( +pd +, 2); + +83 if( +v®ue + & 128) + +85 if( +v®ue + == 0) + +87 if( +v®ue + >= 3) + +89 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 8 * value); + +90  +v®ue +; + +93  +v®ue +; + +94 + } +} + +101 + $u³r_put_n¢nwn +( +a¢_³r_ou_t + * +po +,  +n +) { + +102  +by‹s +; + +104 if( +n + <= 63) { + +105 if( +n + < 0)  -1; + +106  + `³r_put_ãw_b™s +( +po +, +n +, 7); + +108 if( +n + < 256) + +109 +by‹s + = 1; + +110 if( +n + < 65536) + +111 +by‹s + = 2; + +112 if( +n + < 256 * 65536) + +113 +by‹s + = 3; + +116 if( + `³r_put_ãw_b™s +( +po +, +by‹s +, 8)) + +119  + `³r_put_ãw_b™s +( +po +, +n +, 8 * +by‹s +); + +120 + } +} + +124  + $u³r_g‘_cÚ¡¿šed_whÞe_numb” +( +a¢_³r_d©a_t + * +pd +, * +out_v®ue +,  +nb™s +) { + +125  +lh®f +; + +126  +h®f +; + +128 if( +nb™s + <= 31) { + +129 +h®f + = + `³r_g‘_ãw_b™s +( +pd +, +nb™s +); + +130 if( +h®f + < 0)  -1; + +131 * +out_v®ue + = +h®f +; + +135 if(( +size_t +) +nb™s + > 8 * (* +out_v®ue +)) + +138 +h®f + = + `³r_g‘_ãw_b™s +( +pd +, 31); + +139 if( +h®f + < 0)  -1; + +141 if( + `u³r_g‘_cÚ¡¿šed_whÞe_numb” +( +pd +, & +lh®f +, +nb™s + - 31)) + +144 * +out_v®ue + = (() +h®f + << ( +nb™s + - 31)è| +lh®f +; + +146 + } +} + +151 + $u³r_put_cÚ¡¿šed_whÞe_numb”_u +( +a¢_³r_ou_t + * +po +,  +v +, + +152  +nb™s +) { + +153 if( +nb™s + <= 31) { + +154  + `³r_put_ãw_b™s +( +po +, +v +, +nb™s +); + +157 if( + `u³r_put_cÚ¡¿šed_whÞe_numb”_u +( +po +, +v + >> 31, +nb™s + - 31)) + +159  + `³r_put_ãw_b™s +( +po +, +v +, 31); + +161 + } +} + +167 +ssize_t + + +168 + $u³r_put_Ëngth +( +a¢_³r_ou_t + * +po +, +size_t + +Ëngth +, * +Ãed_eom +) { + +169  +dummy + = 0; + +170 if(! +Ãed_eom +èÃed_eom = & +dummy +; + +172 if( +Ëngth + <= 127) { + +173 * +Ãed_eom + = 0; + +174  + `³r_put_ãw_b™s +( +po +, +Ëngth +, 8) + +175 ? -1 : ( +ssize_t +) +Ëngth +; + +176 } if( +Ëngth + < 16384) { + +177 * +Ãed_eom + = 0; + +178  + `³r_put_ãw_b™s +( +po +, +Ëngth +|0x8000, 16) + +179 ? -1 : ( +ssize_t +) +Ëngth +; + +182 * +Ãed_eom + = 0 =ð( +Ëngth + & 16383); + +183 +Ëngth + >>= 14; + +184 if( +Ëngth + > 4) { + +185 * +Ãed_eom + = 0; + +186 +Ëngth + = 4; + +189  + `³r_put_ãw_b™s +( +po +, 0xC0 | +Ëngth +, 8) + +190 ? -1 : ( +ssize_t +)( +Ëngth + << 14); + +192 + } +} + +201 + $u³r_put_n¦’gth +( +a¢_³r_ou_t + * +po +, +size_t + +Ëngth +) { + +202 if( +Ëngth + <= 64) { + +204 if( +Ëngth + == 0)  -1; + +205  + `³r_put_ãw_b™s +( +po +, +Ëngth + - 1, 7) ? -1 : 0; + +207  +Ãed_eom + = 0; + +208 if( + `u³r_put_Ëngth +( +po +, +Ëngth +, & +Ãed_eom +è!ð( +ssize_t +)length + +209 || +Ãed_eom +) { + +216 + } +} + +219 + $³r__lÚg_¿nge +( +lb +,  +ub +, * +¿nge_r +) { + +220  +bounds_¿nge +; + +221 if(( +ub + < 0è=ð( +lb + < 0)) { + +222 +bounds_¿nge + = +ub + - +lb +; + +223 } if( +lb + < 0) { + +224 + `as£¹ +( +ub + >= 0); + +225 +bounds_¿nge + = 1 + (() +ub + + ()-( +lb + + 1)); + +227 + `as£¹ +(!"Unreachable"); + +230 * +¿nge_r + = +bounds_¿nge +; + +232 + } +} + +235 + $³r_lÚg_¿nge_»ba£ +( +v +,  +lb +,  +ub +, * +ouut +) { + +236  +¿nge +; + +238 + `as£¹ +( +lb + <ð +ub +); + +240 if( +v + < +lb + || v > +ub + || + `³r__lÚg_¿nge +Öb, ub, & +¿nge +) < 0) { + +252 if(( +v + < 0è=ð( +lb + < 0)) { + +253 * +ouut + = +v +- +lb +; + +255 } if( +v + < 0) { + +256  +»ba£d + = 1 + ()-( +v ++1è+ () +lb +; + +257 + `as£¹ +( +»ba£d + <ð +¿nge +); + +258 * +ouut + = +»ba£d +; + +260 } if( +lb + < 0) { + +261  +»ba£d + = 1 + ()-( +lb ++1è+ () +v +; + +262 + `as£¹ +( +»ba£d + <ð +¿nge +); + +263 * +ouut + = +»ba£d +; + +266 + `as£¹ +(!"Unreachable"); + +269 + } +} + +272 + $³r_lÚg_¿nge_uÄeba£ +( +šp +,  +lb +,  +ub +, * +ou +) { + +273  +¿nge +; + +275 if( + `³r__lÚg_¿nge +( +lb +, +ub +, & +¿nge +) != 0) { + +279 if( +šp + > +¿nge +) { + +288 if( +šp + <ð +LONG_MAX +) { + +289 * +ou + = () +šp + + +lb +; + +291 * +ou + = ( +lb + + +LONG_MAX + + 1è+ ()(( +šp + - LONG_MAX) - 1); + +295 + } +} + +297 +št32_t + + +298 + $­”_g‘_®ign +( +a¢_³r_d©a_t + * +pd +) { + +300 if( +pd +-> +nboff + & 0x7) { + +301 + `ASN_DEBUG +("Alignšg %ld b™s", 8 - (() +pd +-> +nboff + & 0x7)); + +302  + `³r_g‘_ãw_b™s +( +pd +, 8 - (pd-> +nboff + & 0x7)); + +305 + } +} + +307 +ssize_t + + +308 + $­”_g‘_Ëngth +( +a¢_³r_d©a_t + * +pd +,  +¿nge +,  +eb™s +, * +»³© +) { + +309 +ssize_t + +v®ue +; + +311 * +»³© + = 0; + +314 ià( +eb™s + >= 0) { + +315 ià( +¿nge + <= 65536 &&„ange >= 0) + +316  + `­”_g‘_n¢nwn +( +pd +, +¿nge +); + +319 ià( + `­”_g‘_®ign +( +pd +) < 0) + +322 if( +eb™s + >ð0è + `³r_g‘_ãw_b™s +( +pd +,ƒbits); + +324 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 8); + +325 if( +v®ue + < 0)  -1; + +326 if(( +v®ue + & 128) == 0) + +327  ( +v®ue + & 0x7F); + +328 if(( +v®ue + & 64) == 0) { + +329 +v®ue + = ((v®u& 63è<< 8è| + `³r_g‘_ãw_b™s +( +pd +, 8); + +330 if( +v®ue + < 0)  -1; + +331  +v®ue +; + +333 +v®ue + &= 63; + +334 if( +v®ue + < 1 || value > 4) + +336 * +»³© + = 1; + +337  (16384 * +v®ue +); + +338 + } +} + +340 +ssize_t + + +341 + $­”_g‘_n¦’gth +( +a¢_³r_d©a_t + * +pd +) { + +342 +ssize_t + +Ëngth +; + +344 + `ASN_DEBUG +("Getting‚ormally small†ength"); + +346 if( + `³r_g‘_ãw_b™s +( +pd +, 1) == 0) { + +347 +Ëngth + = + `³r_g‘_ãw_b™s +( +pd +, 6) + 1; + +348 if( +Ëngth + <= 0)  -1; + +349 + `ASN_DEBUG +("l=%ld", +Ëngth +); + +350  +Ëngth +; + +352  +»³© +; + +353 +Ëngth + = + `­”_g‘_Ëngth +( +pd +, -1, -1, & +»³© +); + +354 if( +Ëngth + >ð0 && ! +»³© +) †ength; + +357 + } +} + +359 +ssize_t + + +360 + $­”_g‘_n¢nwn +( +a¢_³r_d©a_t + * +pd +,  +¿nge +) { + +361 +ssize_t + +v®ue +; + +362  +by‹s + = 0; + +364 + `ASN_DEBUG +("g‘tšg‚¢nwÀw™h„ªg%d", +¿nge +); + +366 if( +¿nge + <= 255) { + +367  +i +; + +369 ià( +¿nge + < 0)  -1; + +371  +i + = 1; i <= 8; i++) { + +372  +uµ” + = 1 << +i +; + +373 ià( +uµ” + >ð +¿nge +) + +376 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, +i +); + +377  +v®ue +; + +378 } ià( +¿nge + == 256){ + +380 +by‹s + = 1; + +381 } ià( +¿nge + <= 65536) { + +383 +by‹s + = 2; + +387 ià( + `­”_g‘_®ign +( +pd +) < 0) + +389 +v®ue + = + `³r_g‘_ãw_b™s +( +pd +, 8 * +by‹s +); + +390  +v®ue +; + +391 + } +} + +393  + $­”_put_®ign +( +a¢_³r_ou_t + * +po +) { + +395 if( +po +-> +nboff + & 0x7) { + +396 + `ASN_DEBUG +("Alignšg %ld b™s", 8 - (() +po +-> +nboff + & 0x7)); + +397 if( + `³r_put_ãw_b™s +( +po +, 0x00, (8 - (po-> +nboff + & 0x7)))) + +401 + } +} + +403 +ssize_t + + +404 + $­”_put_Ëngth +( +a¢_³r_ou_t + * +po +,  +¿nge +, +size_t + +Ëngth +) { + +406 + `ASN_DEBUG +("APER…uˆËngth %zu w™h„ªg%d", +Ëngth +, +¿nge +); + +409 ià( +¿nge + <= 65536 &&„ange >= 0) + +410  + `­”_put_n¢nwn +( +po +, +¿nge +, +Ëngth +); + +412 ià( + `­”_put_®ign +( +po +) < 0) + +415 if( +Ëngth + <= 127) { + +416  + `³r_put_ãw_b™s +( +po +, +Ëngth +, 8) + +417 ? -1 : ( +ssize_t +) +Ëngth +; + +419 if( +Ëngth + < 16384) + +420  + `³r_put_ãw_b™s +( +po +, +Ëngth +|0x8000, 16) + +421 ? -1 : ( +ssize_t +) +Ëngth +; + +423 +Ëngth + >>= 14; + +424 if( +Ëngth + > 4)†ength = 4; + +426  + `³r_put_ãw_b™s +( +po +, 0xC0 | +Ëngth +, 8) + +427 ? -1 : ( +ssize_t +)( +Ëngth + << 14); + +428 + } +} + +432 + $­”_put_n¦’gth +( +a¢_³r_ou_t + * +po +, +size_t + +Ëngth +) { + +434 if( +Ëngth + <= 64) { + +436 if( +Ëngth + == 0)  -1; + +437  + `³r_put_ãw_b™s +( +po +, +Ëngth +-1, 7) ? -1 : 0; + +439 if( + `­”_put_Ëngth +( +po +, -1, +Ëngth +è!ð( +ssize_t +)length) { + +446 + } +} + +449 + $­”_put_n¢nwn +( +a¢_³r_ou_t + * +po +,  +¿nge +,  +numb” +) { + +450  +by‹s +; + +452 + `ASN_DEBUG +("­”…uˆn¢nwÀ%d w™h„ªg%d", +numb” +, +¿nge +); + +454 if( +¿nge + < 0) { + +455  +i +; + +456  +i + = 1; ; i++) { + +457  +b™s + = 1 << (8 * +i +); + +458 ià( +numb” + <ð +b™s +) + +461 +by‹s + = +i +; + +462 + `as£¹ +( +i + <= 4); + +464 if( +¿nge + <= 255) { + +465  +i +; + +466  +i + = 1; i <= 8; i++) { + +467  +b™s + = 1 << +i +; + +468 ià( +¿nge + <ð +b™s +) + +471  + `³r_put_ãw_b™s +( +po +, +numb” +, +i +); + +472 } if( +¿nge + == 256) { + +473 +by‹s + = 1; + +474 } if( +¿nge + <= 65536) { + +475 +by‹s + = 2; + +477  +i +; + +478  +i + = 1; ; i++) { + +479  +b™s + = 1 << (8 * +i +); + +480 ià( +¿nge + <ð +b™s +) + +483 + `as£¹ +( +i + <= 4); + +484 +by‹s + = +i +; + +486 if( + `­”_put_®ign +( +po +) < 0) + +491  + `³r_put_ãw_b™s +( +po +, +numb” +, 8 * +by‹s +); + +492 + } +} + + @xer_decoder.c + +5  + ~ + +6  + ~ + +7  + ~ + +13 +a¢_dec_rv®_t + + +14 + $x”_decode +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +15 cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, ** +¡ruù_±r +, + +16 cÚ¡ * +bufãr +, +size_t + +size +) { + +17 +a¢_codec_ùx_t + +s_codec_ùx +; + +23 if( +Ýt_codec_ùx +) { + +24 if( +Ýt_codec_ùx +-> +max_¡ack_size +) { + +25 +s_codec_ùx + = * +Ýt_codec_ùx +; + +26 +Ýt_codec_ùx + = & +s_codec_ùx +; + +30 + `mem£t +(& +s_codec_ùx +, 0, (s_codec_ctx)); + +31 +s_codec_ùx +. +max_¡ack_size + = +ASN__DEFAULT_STACK_MAX +; + +32 +Ýt_codec_ùx + = & +s_codec_ùx +; + +38  +td +-> +Ý +-> + `x”_decod” +( +Ýt_codec_ùx +,d, +¡ruù_±r +, 0, +bufãr +, +size +); + +39 + } +} + +43  + sx”__cb_¬g + { + +44 +pxml_chunk_ty³_e + + mchunk_ty³ +; + +45 +size_t + + mchunk_size +; + +46 cÚ¡ * + mchunk_buf +; + +47  + mÿÎback_nÙ_švoked +; + +51 + $x”__tok’_cb +( +pxml_chunk_ty³_e + +ty³ +, cÚ¡ * +_chunk_d©a +, +size_t + +_chunk_size +, * +key +) { + +52  +x”__cb_¬g + * +¬g + = (x”__cb_¬g *) +key +; + +53 +¬g +-> +chunk_ty³ + = +ty³ +; + +54 +¬g +-> +chunk_size + = +_chunk_size +; + +55 +¬g +-> +chunk_buf + = +_chunk_d©a +; + +56 +¬g +-> +ÿÎback_nÙ_švoked + = 0; + +58 + } +} + +63 +ssize_t + + +64 + $x”_Ãxt_tok’ +(* +¡©eCڋxt +, cÚ¡ * +bufãr +, +size_t + +size +, +px”_chunk_ty³_e + * +ch_ty³ +) { + +65  +x”__cb_¬g + +¬g +; + +66  +Ãw_¡©eCڋxt + = * +¡©eCڋxt +; + +67 +ssize_t + +»t +; + +69 +¬g +. +ÿÎback_nÙ_švoked + = 1; + +70 +»t + = + `pxml_·r£ +(& +Ãw_¡©eCڋxt +, +bufãr +, +size +, +x”__tok’_cb +, & +¬g +); + +71 if( +»t + < 0)  -1; + +72 if( +¬g +. +ÿÎback_nÙ_švoked +) { + +73 + `as£¹ +( +»t + == 0); + +74 * +ch_ty³ + = +PXER_WMORE +; + +77 + `as£¹ +( +¬g +. +chunk_size +); + +78 + `as£¹ +( +¬g +. +chunk_buf + =ð +bufãr +); + +84  +¬g +. +chunk_ty³ +) { + +85  +PXML_TEXT +: + +86 * +ch_ty³ + = +PXER_TEXT +; + +88  +PXML_TAG +: + +89 * +ch_ty³ + = +PXER_WMORE +; + +91  +PXML_TAG_END +: + +92 * +ch_ty³ + = +PXER_TAG +; + +94  +PXML_COMMENT +: + +95  +PXML_COMMENT_END +: + +96 * +ch_ty³ + = +PXER_COMMENT +; + +100 * +¡©eCڋxt + = +Ãw_¡©eCڋxt +; + +101  +¬g +. +chunk_size +; + +102 + } +} + +104  + #CSLASH + 0x2à + + ) + +105  + #LANGLE + 0x3ø + + ) + +106  + #RANGLE + 0x3 + + ) + +108 +x”_check_g_e + + +109 + $x”_check_g +(cÚ¡ * +buf_±r +,  +size +, cÚ¡ * +Ãed_g +) { + +110 cÚ¡ * +buf + = (cÚ¡ *) +buf_±r +; + +111 cÚ¡ * +’d +; + +112 +x”_check_g_e + +ù + = +XCT_OPENING +; + +114 if( +size + < 2 || +buf +[0] !ð +LANGLE + || buf[size-1] !ð +RANGLE +) { + +115 if( +size + >= 2) + +116 + `ASN_DEBUG +("Broken XMLag: \"%c...%c\"", + +117 +buf +[0], buf[ +size + - 1]); + +118  +XCT_BROKEN +; + +124 if( +buf +[1] =ð +CSLASH +) { + +125 +buf + += 2; + +126 +size + -= 3; + +127 +ù + = +XCT_CLOSING +; + +128 if( +size + > 0 && +buf +[size-1] =ð +CSLASH +) + +129  +XCT_BROKEN +; + +131 +buf +++; + +132 +size + -= 2; + +133 if( +size + > 0 && +buf +[size-1] =ð +CSLASH +) { + +134 +ù + = +XCT_BOTH +; + +135 +size +--; + +140 if(! +Ãed_g + || !*need_tag) + +141  ( +x”_check_g_e +)( +XCT__UNK__MASK + | +ù +); + +146  +’d + = +buf + + +size +; buà<ƒnd; buf++, +Ãed_g +++) { + +147  +b + = * +buf +, +n + = * +Ãed_g +; + +148 if( +b + !ð +n +) { + +149 if( +n + == 0) { + +150  +b +) { + +154  +ù +; + +157  ( +x”_check_g_e +)( +XCT__UNK__MASK + | +ù +); + +159 if( +b + == 0) + +160  +XCT_BROKEN +; + +162 if(* +Ãed_g +) + +163  ( +x”_check_g_e +)( +XCT__UNK__MASK + | +ù +); + +165  +ù +; + +166 + } +} + +169 #undeà +ADVANCE + + +170  + #ADVANCE +( +num_by‹s +) do { \ + +171 +size_t + +num + = ( +num_by‹s +); \ + +172 +buf_±r + = ((cÚ¡ *)buf_±rè+ +num +; \ + +173 +size + -ð +num +; \ + +174 +cÚsumed_my£lf + +ð +num +; \ + +175 } 0) + + ) + +177 #undeà +RETURN + + +178  + #RETURN +( +_code +) do { \ + +179 +rv® +. +code + = +_code +; \ + +180 +rv® +. +cÚsumed + = +cÚsumed_my£lf +; \ + +181 if( +rv® +. +code + !ð +RC_OK +) \ + +182 + `ASN_DEBUG +("Fažed w™h %d", +rv® +. +code +); \ + +183  +rv® +; \ + +184 } 0) + + ) + +186  + #XER_GOT_BODY +( +chunk_buf +, +chunk_size +, +size +) do { \ + +187 +ssize_t + +cÚv”‹d_size + = +body_»ûiv” + \ + +188 ( +¡ruù_key +, +chunk_buf +, +chunk_size +, \ + +189 ( +size_t +) +chunk_size + < +size +); \ + +190 if( +cÚv”‹d_size + =ð-1è + `RETURN +( +RC_FAIL +); \ + +191 if( +cÚv”‹d_size + == 0 \ + +192 && +size + =ð( +size_t +) +chunk_size +) \ + +193 + `RETURN +( +RC_WMORE +); \ + +194 +chunk_size + = +cÚv”‹d_size +; \ + +195 } 0) + + ) + +196  + #XER_GOT_EMPTY +() do { \ + +197 if( + `body_»ûiv” +( +¡ruù_key +, 0, 0, +size + > 0) == -1) \ + +198 + `RETURN +( +RC_FAIL +); \ + +199 } 0) + + ) + +204 +a¢_dec_rv®_t + + +205 +x”_decode_g’”® +(cÚ¡ +a¢_codec_ùx_t + * +Ýt_codec_ùx +, + +206 +a¢_¡ruù_ùx_t + * +ùx +, + +207 * +¡ruù_key +, + +208 cÚ¡ * +xml_g +, + +209 cÚ¡ * +buf_±r +, +size_t + +size +, + +210 (* +Ýt_uÃx³ùed_g_decod” +) + +211 (* +¡ruù_key +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +), + +212 + $ssize_t + (* +body_»ûiv” +) + +213 (* +¡ruù_key +, cÚ¡ * +chunk_buf +, +size_t + +chunk_size +, + +214  +have_mÜe +) + +217 +a¢_dec_rv®_t + +rv® +; + +218 +ssize_t + +cÚsumed_my£lf + = 0; + +220 () +Ýt_codec_ùx +; + +227 if( +ùx +-> +pha£ + > 1è + `RETURN +( +RC_FAIL +); + +229 +px”_chunk_ty³_e + +ch_ty³ +; + +230 +ssize_t + +ch_size +; + +231 +x”_check_g_e + +tcv +; + +236 +ch_size + = + `x”_Ãxt_tok’ +(& +ùx +-> +cڋxt +, +buf_±r +, +size +, + +237 & +ch_ty³ +); + +238 if( +ch_size + == -1) { + +239 + `RETURN +( +RC_FAIL +); + +241  +ch_ty³ +) { + +242  +PXER_WMORE +: + +243 + `RETURN +( +RC_WMORE +); + +244  +PXER_COMMENT +: + +245 + `ADVANCE +( +ch_size +); + +247  +PXER_TEXT +: + +248 if( +ùx +-> +pha£ + == 0) { + +256 + `XER_GOT_BODY +( +buf_±r +, +ch_size +, +size +); + +258 + `ADVANCE +( +ch_size +); + +260  +PXER_TAG +: + +265 + `as£¹ +( +ch_ty³ + =ð +PXER_TAG + && +size +); + +267 +tcv + = + `x”_check_g +( +buf_±r +, +ch_size +, +xml_g +); + +275  +tcv +) { + +276  +XCT_BOTH +: + +277 if( +ùx +-> +pha£ +) ; + +279 + `XER_GOT_EMPTY +(); + +280 + `ADVANCE +( +ch_size +); + +281 +ùx +-> +pha£ + = 2; + +282 + `RETURN +( +RC_OK +); + +283  +XCT_OPENING +: + +284 if( +ùx +-> +pha£ +) ; + +285 + `ADVANCE +( +ch_size +); + +286 +ùx +-> +pha£ + = 1; + +288  +XCT_CLOSING +: + +289 if(! +ùx +-> +pha£ +) ; + +290 + `ADVANCE +( +ch_size +); + +291 +ùx +-> +pha£ + = 2; + +292 + `RETURN +( +RC_OK +); + +293  +XCT_UNKNOWN_BO +: + +297 if( +Ýt_uÃx³ùed_g_decod” + + +298 && + `Ýt_uÃx³ùed_g_decod” +( +¡ruù_key +, + +299 +buf_±r +, +ch_size +) >= 0) { + +301 + `ADVANCE +( +ch_size +); + +302 if(! +ùx +-> +pha£ +) { + +305 +ùx +-> +pha£ + = 2; + +306 + `RETURN +( +RC_OK +); + +315 + `ASN_DEBUG +("UÃx³ùed XMLag (ex³ùed \"%s\")", +xml_g +); + +319 + `RETURN +( +RC_FAIL +); + +320 + } +} + +323 +size_t + + +324 + $x”_wh™e¥aû_¥ª +(cÚ¡ * +chunk_buf +, +size_t + +chunk_size +) { + +325 cÚ¡ * +p + = (cÚ¡ *) +chunk_buf +; + +326 cÚ¡ * +³nd + = +p + + +chunk_size +; + +328 ; +p + < +³nd +;…++) { + +329 * +p +) { + +343  ( +p + - (cÚ¡ *) +chunk_buf +); + +344 + } +} + +350 + $x”_sk_unknown +( +x”_check_g_e + +tcv +, +b”_Žv_Ën_t + * +d•th +) { + +351 + `as£¹ +(* +d•th + > 0); + +352  +tcv +) { + +353  +XCT_BOTH +: + +354  +XCT_UNKNOWN_BO +: + +357  +XCT_OPENING +: + +358  +XCT_UNKNOWN_OP +: + +359 ++(* +d•th +); + +361  +XCT_CLOSING +: + +362  +XCT_UNKNOWN_CL +: + +363 if(--(* +d•th +) == 0) + +364  ( +tcv + =ð +XCT_CLOSING +) ? 2 : 1; + +369 + } +} + + @xer_encoder.c + +5  + ~ + +6  + ~<¡dio.h +> + +7  + ~<”ºo.h +> + +12 +a¢_’c_rv®_t + + +13 + $x”_’code +(cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +, + +14 +x”_’cod”_æags_e + +x”_æags +, +a¢_­p_cÚsume_by‹s_f + * +cb +, + +15 * +­p_key +) { + +16 +a¢_’c_rv®_t + +” + = {0, 0, 0}; + +17 +a¢_’c_rv®_t + +tm³r +; + +18 cÚ¡ * +mÇme +; + +19 +size_t + +mËn +; + +20  +xÿn + = ( +x”_æags + & +XER_F_CANONICAL +) ? 1 : 2; + +22 if(! +td + || ! +¥Œ +è +cb_çžed +; + +24 +mÇme + = +td +-> +xml_g +; + +25 +mËn + = + `¡¾’ +( +mÇme +); + +27 + `ASN__CALLBACK3 +("<", 1, +mÇme +, +mËn +, ">", 1); + +29 +tm³r + = +td +-> +Ý +-> + `x”_’cod” +Ñd, +¥Œ +, 1, +x”_æags +, +cb +, +­p_key +); + +30 if( +tm³r +. +’coded + == -1) mper; + +31 +” +. +’coded + +ð +tm³r +.encoded; + +33 + `ASN__CALLBACK3 +("\n", +xÿn +); + +35 + `ASN__ENCODED_OK +( +” +); + +36 +cb_çžed +: + +37 +ASN__ENCODE_FAILED +; + +38 + } +} + +45 + $x”__´št2å +(cÚ¡ * +bufãr +, +size_t + +size +, * +­p_key +) { + +46 +FILE + * +¡»am + = (FILE *) +­p_key +; + +48 if( + `fwr™e +( +bufãr +, 1, +size +, +¡»am +) != size) + +52 + } +} + +55 + $x”_åršt +( +FILE + * +¡»am +, cÚ¡ +a¢_TYPE_desütÜ_t + * +td +, cÚ¡ * +¥Œ +) { + +56 +a¢_’c_rv®_t + +” + = {0,0,0}; + +58 if(! +¡»am +è¡»am = +¡dout +; + +59 if(! +td + || ! +¥Œ +) + +62 +” + = + `x”_’code +( +td +, +¥Œ +, +XER_F_BASIC +, +x”__´št2å +, +¡»am +); + +63 if( +” +. +’coded + == -1) + +66  + `fæush +( +¡»am +); + +67 + } +} + +69  + sx”_bufãr + { + +70 * + mbufãr +; + +71 +size_t + + mbufãr_size +; + +72 +size_t + + m®loÿ‹d_size +; + +76 + $x”__bufãr_­³nd +(cÚ¡ * +bufãr +, +size_t + +size +, * +­p_key +) { + +77  +x”_bufãr + * +xb + = +­p_key +; + +79  +xb +-> +bufãr_size + + +size + + 1 > xb-> +®loÿ‹d_size +) { + +80 +size_t + +Ãw_size + = 2 * ( +xb +-> +®loÿ‹d_size + ? xb->allocated_size : 64); + +81 * +Ãw_buf + = + `MALLOC +( +Ãw_size +); + +82 if(! +Ãw_buf +)  -1; + +83 ià( +xb +-> +bufãr +) { + +84 + `memýy +( +Ãw_buf +, +xb +-> +bufãr +, xb-> +bufãr_size +); + +86 + `FREEMEM +( +xb +-> +bufãr +); + +87 +xb +-> +bufãr + = +Ãw_buf +; + +88 +xb +-> +®loÿ‹d_size + = +Ãw_size +; + +91 + `memýy +( +xb +-> +bufãr + + xb-> +bufãr_size +, bufãr, +size +); + +92 +xb +-> +bufãr_size + +ð +size +; + +93 +xb +-> +bufãr +[xb-> +bufãr_size +] = '\0'; + +95 + } +} + +97 +x”_equiv®’û_e + + +98 + $x”_equiv®’t +(cÚ¡  +a¢_TYPE_desütÜ_s + * +td +, cÚ¡ * +¡ruù1 +, + +99 cÚ¡ * +¡ruù2 +, +FILE + * +Ýt_debug_¡»am +) { + +100  +x”_bufãr + +xb1 + = {0, 0, 0}; + +101  +x”_bufãr + +xb2 + = {0, 0, 0}; + +102 +a¢_’c_rv®_t + +e1 +, +e2 +; + +103 +a¢_dec_rv®_t + +rv® +; + +104 * +¥Œ + = +NULL +; + +106 if(! +td + || ! +¡ruù1 + || ! +¡ruù2 +) { + +107 if( +Ýt_debug_¡»am +) { + +108 if(! +td +è + `årštf +( +Ýt_debug_¡»am +, "Type descriptor missing\n"); + +109 if(! +¡ruù1 +è + `årštf +( +Ýt_debug_¡»am +, "Structure 1 missing\n"); + +110 if(! +¡ruù2 +è + `årštf +( +Ýt_debug_¡»am +, "Structure 2 missing\n"); + +112  +XEQ_FAILURE +; + +115 +e1 + = + `x”_’code +( +td +, +¡ruù1 +, +XER_F_BASIC +, +x”__bufãr_­³nd +, & +xb1 +); + +116 if( +e1 +. +’coded + == -1) { + +117 if( +Ýt_debug_¡»am +) { + +118 + `årštf +( +¡d”r +, "XER Encodšg oà% çžed\n", +td +-> +Çme +); + +120 + `FREEMEM +( +xb1 +. +bufãr +); + +121  +XEQ_ENCODE1_FAILED +; + +124 +e2 + = + `x”_’code +( +td +, +¡ruù2 +, +XER_F_BASIC +, +x”__bufãr_­³nd +, & +xb2 +); + +125 if( +e2 +. +’coded + == -1) { + +126 if( +Ýt_debug_¡»am +) { + +127 + `årštf +( +¡d”r +, "XER Encodšg oà% çžed\n", +td +-> +Çme +); + +129 + `FREEMEM +( +xb1 +. +bufãr +); + +130 + `FREEMEM +( +xb2 +. +bufãr +); + +131  +XEQ_ENCODE1_FAILED +; + +134 if( +xb1 +. +bufãr_size + !ð +xb2 +.buffer_size + +135 || + `memcmp +( +xb1 +. +bufãr +, +xb2 +.bufãr, xb1. +bufãr_size +) != 0) { + +136 if( +Ýt_debug_¡»am +) { + +137 + `årštf +( +Ýt_debug_¡»am +, + +140 +xb1 +. +bufãr +, +xb2 +.buffer); + +142 + `FREEMEM +( +xb1 +. +bufãr +); + +143 + `FREEMEM +( +xb2 +. +bufãr +); + +144  +XEQ_DIFFERENT +; + +146 if( +Ýt_debug_¡»am +) { + +147 + `årštf +( +Ýt_debug_¡»am +, + +149 "oàsiz%" +ASN_PRI_SIZE + ":\n%s", + +150 +xb1 +. +bufãr_size +, xb1. +bufãr +); + +154 +rv® + = + `x”_decode +( +NULL +, +td +, (**)& +¥Œ +, +xb1 +. +bufãr +, + +155 +xb1 +. +bufãr_size +); + +156  +rv® +. +code +) { + +157  +RC_OK +: + +159  +RC_WMORE +: + +160 if( +Ýt_debug_¡»am +) { + +161 + `årštf +( +Ýt_debug_¡»am +, + +164 +td +-> +Çme +, +xb1 +. +bufãr +); + +167  +RC_FAIL +: + +169 if( +Ýt_debug_¡»am +) { + +170 + `årštf +( +Ýt_debug_¡»am +, + +172 +td +-> +Çme +); + +174 + `ASN_STRUCT_FREE +(* +td +, +¥Œ +); + +175 + `FREEMEM +( +xb1 +. +bufãr +); + +176 + `FREEMEM +( +xb2 +. +bufãr +); + +177  +XEQ_DECODE_FAILED +; + +180 if( +rv® +. +cÚsumed + !ð +xb1 +. +bufãr_size + + +181 && (( +rv® +. +cÚsumed + > +xb1 +. +bufãr_size +) + +182 || + `x”_wh™e¥aû_¥ª +( +xb1 +. +bufãr + + +rv® +. +cÚsumed +, + +183 +xb1 +. +bufãr_size + - +rv® +. +cÚsumed +) + +184 !ð( +xb1 +. +bufãr_size + - +rv® +. +cÚsumed +))) { + +185 if( +Ýt_debug_¡»am +) { + +186 + `årštf +( +Ýt_debug_¡»am +, + +187 "Round-Œ decodoà% »quœed†es by‹ (%" +ASN_PRI_SIZE + ")han " + +188 "’coded (%" +ASN_PRI_SIZE + ")\n", + +189 +td +-> +Çme +, +rv® +. +cÚsumed +, +xb1 +. +bufãr_size +); + +191 + `ASN_STRUCT_FREE +(* +td +, +¥Œ +); + +192 + `FREEMEM +( +xb1 +. +bufãr +); + +193 + `FREEMEM +( +xb2 +. +bufãr +); + +194  +XEQ_ROUND_TRIP_FAILED +; + +200 + `FREEMEM +( +xb2 +. +bufãr +); + +201 + `mem£t +(& +xb2 +, 0, (xb2)); + +203 +e2 + = + `x”_’code +( +td +, +¥Œ +, +XER_F_BASIC +, +x”__bufãr_­³nd +, & +xb2 +); + +204 if( +e2 +. +’coded + == -1) { + +205 if( +Ýt_debug_¡»am +) { + +206 + `årštf +( +¡d”r +, "XER Encoding of„ound-trip decode of %s failed\n", + +207 +td +-> +Çme +); + +209 + `ASN_STRUCT_FREE +(* +td +, +¥Œ +); + +210 + `FREEMEM +( +xb1 +. +bufãr +); + +211 + `FREEMEM +( +xb2 +. +bufãr +); + +212  +XEQ_ROUND_TRIP_FAILED +; + +215 + `ASN_STRUCT_FREE +(* +td +, +¥Œ +); + +216 +¥Œ + = 0; + +218 if( +xb1 +. +bufãr_size + !ð +xb2 +.buffer_size + +219 || + `memcmp +( +xb1 +. +bufãr +, +xb2 +.bufãr, xb1. +bufãr_size +) != 0) { + +220 if( +Ýt_debug_¡»am +) { + +221 + `årštf +( +Ýt_debug_¡»am +, + +226 +xb1 +. +bufãr +, +xb2 +.bufãr, +td +-> +Çme +); + +228 + `FREEMEM +( +xb1 +. +bufãr +); + +229 + `FREEMEM +( +xb2 +. +bufãr +); + +230  +XEQ_ROUND_TRIP_FAILED +; + +233 + `FREEMEM +( +xb1 +. +bufãr +); + +234 + `FREEMEM +( +xb2 +. +bufãr +); + +235  +XEQ_SUCCESS +; + +236 + } +} + + @xer_support.c + +7  + ~ + +8  + ~ + +12 + mST_TEXT +, + +13 + mST_TAG_START +, + +14 + mST_TAG_BODY +, + +15 + mST_TAG_QUOTE_WAIT +, + +16 + mST_TAG_QUOTED_STRING +, + +17 + mST_TAG_UNQUOTED_STRING +, + +18 + mST_COMMENT_WAIT_DASH1 +, + +19 + mST_COMMENT_WAIT_DASH2 +, + +20 + mST_COMMENT +, + +21 + mST_COMMENT_CLO_DASH2 +, + +22 + mST_COMMENT_CLO_RT + + +23 } + tp¡©e_e +; + +26 + g_ch¬þass +[256] = { + +36  + #WHITESPACE +( +c +è( +_ch¬þass +[()(c)] =ð1) + + ) + +37  + #ALNUM +( +c +è( +_ch¬þass +[()(c)] >ð2) + + ) + +38  + #ALPHA +( +c +è( +_ch¬þass +[()(c)] =ð3) + + ) + +41  + #EXCLAM + 0x21 + + ) + +42  + #CQUOTE + 0x22 + + ) + +43  + #CDASH + 0x2d + + ) + +44  + #CSLASH + 0x2à + + ) + +45  + #LANGLE + 0x3ø + + ) + +46  + #CEQUAL + 0x3d + + ) + +47  + #RANGLE + 0x3 + + ) + +48  + #CQUEST + 0x3à + + ) + +51  + #TOKEN_CB_CALL +( +ty³ +, +_ns +, +_cu¼’t_too +, +_fš® +) do { \ + +52  +_»t +; \ + +53 +p¡©e_e + +ns + = +_ns +; \ + +54 +ssize_t + +_sz + = ( +p + - +chunk_¡¬t +è+ +_cu¼’t_too +; \ + +55 ià(! +_sz +) { \ + +57 +¡©e + = +_ns +; \ + +60 +_»t + = + `cb +( +ty³ +, +chunk_¡¬t +, +_sz +, +key +); \ + +61 if( +_»t + < +_sz +) { \ + +62 if( +_cu¼’t_too + && +_»t + == -1) \ + +63 +¡©e + = +ns +; \ + +64  +fšish +; \ + +66 +chunk_¡¬t + = +p + + +_cu¼’t_too +; \ + +67 +¡©e + = +ns +; \ + +68 } 0) + + ) + +70  + #TOKEN_CB +( +_ty³ +, +_ns +, +_cu¼’t_too +) \ + +71 + `TOKEN_CB_CALL +( +_ty³ +, +_ns +, +_cu¼’t_too +, 0) + + ) + +73  + #PXML_TAG_FINAL_CHUNK_TYPE + +PXML_TAG_END + + + ) + +74  + #PXML_COMMENT_FINAL_CHUNK_TYPE + +PXML_COMMENT_END + + + ) + +76  + #TOKEN_CB_FINAL +( +_ty³ +, +_ns +, +_cu¼’t_too +) \ + +77 + `TOKEN_CB_CALL +Ð +_ty³ + ## +_FINAL_CHUNK_TYPE + , +_ns +, +_cu¼’t_too +, 1) + + ) + +82 +ssize_t + + $pxml_·r£ +(* +¡©eCڋxt +, cÚ¡ * +xmlbuf +, +size_t + +size +, +pxml_ÿÎback_f + * +cb +, * +key +) { + +83 +p¡©e_e + +¡©e + = (p¡©e_e)* +¡©eCڋxt +; + +84 cÚ¡ * +chunk_¡¬t + = (cÚ¡ *) +xmlbuf +; + +85 cÚ¡ * +p + = +chunk_¡¬t +; + +86 cÚ¡ * +’d + = +p + + +size +; + +88 ; +p + < +’d +;…++) { + +89  +C + = *(cÚ¡ *) +p +; + +90  +¡©e +) { + +91  +ST_TEXT +: + +96 ià( +C + =ð +LANGLE +) + +98 + `TOKEN_CB +( +PXML_TEXT +, +ST_TAG_START +, 0); + +100  +ST_TAG_START +: + +101 ià( + `ALPHA +( +C +è|| (C =ð +CSLASH +)) + +102 +¡©e + = +ST_TAG_BODY +; + +103 ià( +C + =ð +EXCLAM +) + +104 +¡©e + = +ST_COMMENT_WAIT_DASH1 +; + +110 + `TOKEN_CB +( +PXML_TEXT +, +ST_TEXT +, 1); + +112  +ST_TAG_BODY +: + +113  +C +) { + +114  +RANGLE +: + +116 + `TOKEN_CB_FINAL +( +PXML_TAG +, +ST_TEXT +, 1); + +118  +LANGLE +: + +123 + `TOKEN_CB_FINAL +( +PXML_TAG +, +ST_TAG_START +, 0); + +125  +CEQUAL +: + +126 +¡©e + = +ST_TAG_QUOTE_WAIT +; + +130  +ST_TAG_QUOTE_WAIT +: + +134  +C +) { + +135  +CQUOTE +: + +136 +¡©e + = +ST_TAG_QUOTED_STRING +; + +138  +RANGLE +: + +140 + `TOKEN_CB_FINAL +( +PXML_TAG +, +ST_TEXT +, 1); + +143 if(! + `WHITESPACE +( +C +)) + +145 +¡©e + = +ST_TAG_UNQUOTED_STRING +; + +148  +ST_TAG_QUOTED_STRING +: + +152 if( +C + =ð +CQUOTE +) { + +154 +¡©e + = +ST_TAG_BODY +; + +157  +ST_TAG_UNQUOTED_STRING +: + +158 if( +C + =ð +RANGLE +) { + +160 + `TOKEN_CB_FINAL +( +PXML_TAG +, +ST_TEXT +, 1); + +161 } if( + `WHITESPACE +( +C +)) { + +163 +¡©e + = +ST_TAG_BODY +; + +166  +ST_COMMENT_WAIT_DASH1 +: + +167 if( +C + =ð +CDASH +) { + +168 +¡©e + = +ST_COMMENT_WAIT_DASH2 +; + +171 +¡©e + = +ST_TAG_BODY +; + +174  +ST_COMMENT_WAIT_DASH2 +: + +175 if( +C + =ð +CDASH +) { + +177 +¡©e + = +ST_COMMENT +; + +180 +¡©e + = +ST_TAG_BODY +; + +183  +ST_COMMENT +: + +184 if( +C + =ð +CDASH +) { + +185 +¡©e + = +ST_COMMENT_CLO_DASH2 +; + +188  +ST_COMMENT_CLO_DASH2 +: + +189 if( +C + =ð +CDASH +) { + +190 +¡©e + = +ST_COMMENT_CLO_RT +; + +193 +¡©e + = +ST_COMMENT +; + +196  +ST_COMMENT_CLO_RT +: + +197 if( +C + =ð +RANGLE +) { + +198 + `TOKEN_CB_FINAL +( +PXML_COMMENT +, +ST_TEXT +, 1); + +199 } if( +C + =ð +CDASH +) { + +202 +¡©e + = +ST_COMMENT +; + +211 if( +p + - +chunk_¡¬t +) { + +212  +¡©e +) { + +213  +ST_COMMENT +: + +214 + `TOKEN_CB +( +PXML_COMMENT +, +¡©e +, 0); + +216  +ST_TEXT +: + +217 + `TOKEN_CB +( +PXML_TEXT +, +¡©e +, 0); + +223 +fšish +: + +224 * +¡©eCڋxt + = () +¡©e +; + +225  +chunk_¡¬t + - (cÚ¡ *) +xmlbuf +; + +226 + } +} + + @/usr/include/errno.h + +22 #iâdef +_ERRNO_H + + +23  + #_ERRNO_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +28  + ~ + +32 #iâdeà +__ASSEMBLER__ + + +34 +__BEGIN_DECLS + + +37 * + $__”ºo_loÿtiÚ + (è +__THROW + +__©Œibu‹_cÚ¡__ +; + +38  + #”ºo + (* + `__”ºo_loÿtiÚ + ()) + + ) + +40 #ifdeà +__USE_GNU + + +45 * +´og¿m_švoÿtiÚ_Çme +; + +46 * +´og¿m_švoÿtiÚ_shÜt_Çme +; + +50 #iâdeà +__”rÜ_t_defšed + + +51  + #__”rÜ_t_defšed + 1 + + ) + +52  + t”rÜ_t +; + +57 +__END_DECLS + + + @/usr/include/math.h + +23 #iâdef +_MATH_H + + +24  + #_MATH_H + 1 + + ) + +26  + #__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION + + + ) + +27  + ~ + +29 #ià +defšed + +log + && defšed +__GNUC__ + + +30 #w¬nšg +A + +maüo + +ÿÎed + +log + +was + +®»ady + +defšed + +wh’ + < +m©h +. +h +> wa  +šþuded +. + +31 #w¬nšg +This + +wžl + +ÿu£ + +compž©iÚ + +´obËms +. + +34 + g__BEGIN_DECLS + + +37  + ~ + +40  + ~ + +43  + ~ + +47 #ià +__GNUC_PREREQ + (3, 3) + +48  + #HUGE_VAL + ( + `__bužtš_huge_v® + ()) + + ) + +55  + #HUGE_VAL + 1e10000 + + ) + +57 #ifdeà +__USE_ISOC99 + + +58 #ià +__GNUC_PREREQ + (3, 3) + +59  + #HUGE_VALF + ( + `__bužtš_huge_v®f + ()) + + ) + +60  + #HUGE_VALL + ( + `__bužtš_huge_v®l + ()) + + ) + +62  + #HUGE_VALF + 1e10000f + + ) + +63  + #HUGE_VALL + 1e10000L + + ) + +66 #ià +__HAVE_FLOAT16 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +67  + #HUGE_VAL_F16 + ( + `__bužtš_huge_v®f16 + ()) + + ) + +69 #ià +__HAVE_FLOAT32 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +70  + #HUGE_VAL_F32 + ( + `__bužtš_huge_v®f32 + ()) + + ) + +72 #ià +__HAVE_FLOAT64 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +73  + #HUGE_VAL_F64 + ( + `__bužtš_huge_v®f64 + ()) + + ) + +75 #ià +__HAVE_FLOAT128 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +76  + #HUGE_VAL_F128 + ( + `__bužtš_huge_v®f128 + ()) + + ) + +78 #ià +__HAVE_FLOAT32X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +79  + #HUGE_VAL_F32X + ( + `__bužtš_huge_v®f32x + ()) + + ) + +81 #ià +__HAVE_FLOAT64X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +82  + #HUGE_VAL_F64X + ( + `__bužtš_huge_v®f64x + ()) + + ) + +84 #ià +__HAVE_FLOAT128X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +85  + #HUGE_VAL_F128X + ( + `__bužtš_huge_v®f128x + ()) + + ) + +88 #ifdeà +__USE_ISOC99 + + +90 #ià +__GNUC_PREREQ + (3, 3) + +91  + #INFINITY + ( + `__bužtš_šff + ()) + + ) + +93  + #INFINITY + +HUGE_VALF + + + ) + +97 #ià +__GNUC_PREREQ + (3, 3) + +98  + #NAN + ( + `__bužtš_Çnf + ("")) + + ) + +103  + #NAN + (0.0à/ 0.0f) + + ) + +107 #ià +__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +109 #ià +__GNUC_PREREQ + (3, 3) + +110  + #SNANF + ( + `__bužtš_Çnsf + ("")) + + ) + +111  + #SNAN + ( + `__bužtš_Çns + ("")) + + ) + +112  + #SNANL + ( + `__bužtš_Çn¦ + ("")) + + ) + +115 #ià +__HAVE_FLOAT16 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +116  + #SNANF16 + ( + `__bužtš_Çnsf16 + ("")) + + ) + +118 #ià +__HAVE_FLOAT32 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +119  + #SNANF32 + ( + `__bužtš_Çnsf32 + ("")) + + ) + +121 #ià +__HAVE_FLOAT64 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +122  + #SNANF64 + ( + `__bužtš_Çnsf64 + ("")) + + ) + +124 #ià +__HAVE_FLOAT128 + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +125  + #SNANF128 + ( + `__bužtš_Çnsf128 + ("")) + + ) + +127 #ià +__HAVE_FLOAT32X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +128  + #SNANF32X + ( + `__bužtš_Çnsf32x + ("")) + + ) + +130 #ià +__HAVE_FLOAT64X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +131  + #SNANF64X + ( + `__bužtš_Çnsf64x + ("")) + + ) + +133 #ià +__HAVE_FLOAT128X + && +__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +134  + #SNANF128X + ( + `__bužtš_Çnsf128x + ("")) + + ) + +138  + ~ + +140 #ifdeà +__USE_ISOC99 + + +148 #ià +__GLIBC_FLT_EVAL_METHOD + == 0 || __GLIBC_FLT_EVAL_METHOD == 16 + +149  + tæßt_t +; + +150  + tdoubË_t +; + +151 #–ià +__GLIBC_FLT_EVAL_METHOD + == 1 + +152  + tæßt_t +; + +153  + tdoubË_t +; + +154 #–ià +__GLIBC_FLT_EVAL_METHOD + == 2 + +155  + tæßt_t +; + +156  + tdoubË_t +; + +157 #–ià +__GLIBC_FLT_EVAL_METHOD + == 32 + +158  +_Flßt32 + + tæßt_t +; + +159  + tdoubË_t +; + +160 #–ià +__GLIBC_FLT_EVAL_METHOD + == 33 + +161  +_Flßt32x + + tæßt_t +; + +162  +_Flßt32x + + tdoubË_t +; + +163 #–ià +__GLIBC_FLT_EVAL_METHOD + == 64 + +164  +_Flßt64 + + tæßt_t +; + +165  +_Flßt64 + + tdoubË_t +; + +166 #–ià +__GLIBC_FLT_EVAL_METHOD + == 65 + +167  +_Flßt64x + + tæßt_t +; + +168  +_Flßt64x + + tdoubË_t +; + +169 #–ià +__GLIBC_FLT_EVAL_METHOD + == 128 + +170  +_Flßt128 + + tæßt_t +; + +171  +_Flßt128 + + tdoubË_t +; + +172 #–ià +__GLIBC_FLT_EVAL_METHOD + == 129 + +173  +_Flßt128x + + tæßt_t +; + +174  +_Flßt128x + + tdoubË_t +; + +190  + ~ + +191 #ifdeà +__USE_ISOC99 + + +192 #ià +__FP_LOGB0_IS_MIN + + +193  + #FP_ILOGB0 + (-2147483647 - 1) + + ) + +195  + #FP_ILOGB0 + (-2147483647) + + ) + +197 #ià +__FP_LOGBNAN_IS_MIN + + +198  + #FP_ILOGBNAN + (-2147483647 - 1) + + ) + +200  + #FP_ILOGBNAN + 2147483647 + + ) + +203 #ià +__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +204 #ià +__WORDSIZE + == 32 + +205  + #__FP_LONG_MAX + 0x7fffffffL + + ) + +207  + #__FP_LONG_MAX + 0x7fffffffffffffffL + + ) + +209 #ià +__FP_LOGB0_IS_MIN + + +210  + #FP_LLOGB0 + (- +__FP_LONG_MAX + - 1) + + ) + +212  + #FP_LLOGB0 + (- +__FP_LONG_MAX +) + + ) + +214 #ià +__FP_LOGBNAN_IS_MIN + + +215  + #FP_LLOGBNAN + (- +__FP_LONG_MAX + - 1) + + ) + +217  + #FP_LLOGBNAN + +__FP_LONG_MAX + + + ) + +233  + ~ + +235 #ià +__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +239 + mFP_INT_UPWARD + = + +240  + #FP_INT_UPWARD + 0 + + ) + +241 +FP_INT_UPWARD +, + +242 + mFP_INT_DOWNWARD + = + +243  + #FP_INT_DOWNWARD + 1 + + ) + +244 +FP_INT_DOWNWARD +, + +245 + mFP_INT_TOWARDZERO + = + +246  + #FP_INT_TOWARDZERO + 2 + + ) + +247 +FP_INT_TOWARDZERO +, + +248 + mFP_INT_TONEARESTFROMZERO + = + +249  + #FP_INT_TONEARESTFROMZERO + 3 + + ) + +250 +FP_INT_TONEARESTFROMZERO +, + +251 + mFP_INT_TONEAREST + = + +252  + #FP_INT_TONEAREST + 4 + + ) + +253 +FP_INT_TONEAREST +, + +262  + #__SIMD_DECL +( +funùiÚ +è + `__CONCAT + ( +__DECL_SIMD_ +, funùiÚ) + + ) + +264  + #__MATHCALL_VEC +( +funùiÚ +, +suffix +, +¬gs +) \ + +265 + `__SIMD_DECL + ( + `__MATH_PRECNAME + ( +funùiÚ +, +suffix +)) \ + +266 + `__MATHCALL + ( +funùiÚ +, +suffix +, +¬gs +) + + ) + +268  + #__MATHDECL_VEC +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +269 + `__SIMD_DECL + ( + `__MATH_PRECNAME + ( +funùiÚ +, +suffix +)) \ + +270 + `__MATHDECL +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) + + ) + +272  + #__MATHCALL +( +funùiÚ +, +suffix +, +¬gs +) \ + +273 + `__MATHDECL + ( +_MdoubË_ +, +funùiÚ +, +suffix +, +¬gs +) + + ) + +274  + #__MATHDECL +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +275 + `__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +); \ + +276 + `__MATHDECL_1 +( +ty³ +, + `__CONCAT +( +__ +, +funùiÚ +), +suffix +, +¬gs +) + + ) + +277  + #__MATHCALLX +( +funùiÚ +, +suffix +, +¬gs +, +©Œib +) \ + +278 + `__MATHDECLX + ( +_MdoubË_ +, +funùiÚ +, +suffix +, +¬gs +, +©Œib +) + + ) + +279  + #__MATHDECLX +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, +©Œib +) \ + +280 + `__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +è + `__©Œibu‹__ + ( +©Œib +); \ + +281 + `__MATHDECL_1 +( +ty³ +, + `__CONCAT +( +__ +, +funùiÚ +), +suffix +, +¬gs +è + `__©Œibu‹__ + ( +©Œib +) + + ) + +282  + #__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +283 +ty³ + + `__MATH_PRECNAME +( +funùiÚ +, +suffix +è +¬gs + +__THROW + + + ) + +285  + #_MdoubË_ +  + + ) + +286  + #__MATH_PRECNAME +( +Çme +, +r +è + `__CONCAT +Òame,r) + + ) + +287  + #__MATH_DECLARING_DOUBLE + 1 + + ) + +288  + #__MATH_DECLARING_FLOATN + 0 + + ) + +289  + ~ + +290  + ~ + +291 #undeà +_MdoubË_ + + +292 #undeà +__MATH_PRECNAME + + +293 #undeà +__MATH_DECLARING_DOUBLE + + +294 #undeà +__MATH_DECLARING_FLOATN + + +296 #ifdeà +__USE_ISOC99 + + +302  + #_MdoubË_ +  + + ) + +303  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f +## + ) +r + +304  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +305  + #__MATH_DECLARING_FLOATN + 0 + + ) + +306  + ~ + +307  + ~ + +308 #undeà +_MdoubË_ + + +309 #undeà +__MATH_PRECNAME + + +310 #undeà +__MATH_DECLARING_DOUBLE + + +311 #undeà +__MATH_DECLARING_FLOATN + + +313 #ià!( +defšed + +__NO_LONG_DOUBLE_MATH + && defšed +_LIBC +) \ + +314 || +defšed + +__LDBL_COMPAT + \ + +315 || +defšed + +_LIBC_TEST + + +316 #ifdeà +__LDBL_COMPAT + + +318 #ifdeà +__USE_ISOC99 + + +319  + $__Ædbl_Ãx‰ow¬df + ( +__x +,  +__y +) + +320 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +321 #ifdeà +__REDIRECT_NTH + + +322  + `__REDIRECT_NTH + ( +Ãx‰ow¬df +, ( +__x +,  +__y +), + +323 +__Ædbl_Ãx‰ow¬df +) + +324 + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +325  + `__REDIRECT_NTH + ( +Ãx‰ow¬d +, ( +__x +,  +__y +), + +326 +Ãxá” +è + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +327  + `__REDIRECT_NTH + ( +Ãx‰ow¬dl +, + +328 ( +__x +,  +__y +), + +329 +Ãxá” +è + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +333 #undeà +__MATHDECL_1 + + +334  + #__MATHDECL_2 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, +®Ÿs +) \ + +335 +ty³ + + `__REDIRECT_NTH +( + `__MATH_PRECNAME +( +funùiÚ +, +suffix +), \ + +336 +¬gs +, +®Ÿs +) + + ) + +337  + #__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +338 + `__MATHDECL_2 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, + `__CONCAT +(funùiÚ,suffix)) + + ) + +344  + #_MdoubË_ +  + + ) + +345  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +l +## + ) +r + +346  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +347  + #__MATH_DECLARING_FLOATN + 0 + + ) + +348  + #__MATH_DECLARE_LDOUBLE + 1 + + ) + +349  + ~ + +350  + ~ + +351 #undeà +_MdoubË_ + + +352 #undeà +__MATH_PRECNAME + + +353 #undeà +__MATH_DECLARING_DOUBLE + + +354 #undeà +__MATH_DECLARING_FLOATN + + +363 #ià +__HAVE_DISTINCT_FLOAT16 + || ( +__HAVE_FLOAT16 + && ! +defšed + +_LIBC +) + +364  + #_MdoubË_ + +_Flßt16 + + + ) + +365  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f16 +## + ) +r + +366  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +367  + #__MATH_DECLARING_FLOATN + 1 + + ) + +368 #ià +__HAVE_DISTINCT_FLOAT16 + + +369  + ~ + +371 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +372  + ~ + +374 #undeà +_MdoubË_ + + +375 #undeà +__MATH_PRECNAME + + +376 #undeà +__MATH_DECLARING_DOUBLE + + +377 #undeà +__MATH_DECLARING_FLOATN + + +380 #ià +__HAVE_DISTINCT_FLOAT32 + || ( +__HAVE_FLOAT32 + && ! +defšed + +_LIBC +) + +381  + #_MdoubË_ + +_Flßt32 + + + ) + +382  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f32 +## + ) +r + +383  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +384  + #__MATH_DECLARING_FLOATN + 1 + + ) + +385 #ià +__HAVE_DISTINCT_FLOAT32 + + +386  + ~ + +388 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +389  + ~ + +391 #undeà +_MdoubË_ + + +392 #undeà +__MATH_PRECNAME + + +393 #undeà +__MATH_DECLARING_DOUBLE + + +394 #undeà +__MATH_DECLARING_FLOATN + + +397 #ià +__HAVE_DISTINCT_FLOAT64 + || ( +__HAVE_FLOAT64 + && ! +defšed + +_LIBC +) + +398  + #_MdoubË_ + +_Flßt64 + + + ) + +399  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f64 +## + ) +r + +400  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +401  + #__MATH_DECLARING_FLOATN + 1 + + ) + +402 #ià +__HAVE_DISTINCT_FLOAT64 + + +403  + ~ + +405 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +406  + ~ + +408 #undeà +_MdoubË_ + + +409 #undeà +__MATH_PRECNAME + + +410 #undeà +__MATH_DECLARING_DOUBLE + + +411 #undeà +__MATH_DECLARING_FLOATN + + +414 #ià +__HAVE_DISTINCT_FLOAT128 + || ( +__HAVE_FLOAT128 + && ! +defšed + +_LIBC +) + +415  + #_MdoubË_ + +_Flßt128 + + + ) + +416  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f128 +## + ) +r + +417  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +418  + #__MATH_DECLARING_FLOATN + 1 + + ) + +419 #ià +__HAVE_DISTINCT_FLOAT128 + + +420  + ~ + +422 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +423  + ~ + +425 #undeà +_MdoubË_ + + +426 #undeà +__MATH_PRECNAME + + +427 #undeà +__MATH_DECLARING_DOUBLE + + +428 #undeà +__MATH_DECLARING_FLOATN + + +431 #ià +__HAVE_DISTINCT_FLOAT32X + || ( +__HAVE_FLOAT32X + && ! +defšed + +_LIBC +) + +432  + #_MdoubË_ + +_Flßt32x + + + ) + +433  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f32x +## + ) +r + +434  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +435  + #__MATH_DECLARING_FLOATN + 1 + + ) + +436 #ià +__HAVE_DISTINCT_FLOAT32X + + +437  + ~ + +439 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +440  + ~ + +442 #undeà +_MdoubË_ + + +443 #undeà +__MATH_PRECNAME + + +444 #undeà +__MATH_DECLARING_DOUBLE + + +445 #undeà +__MATH_DECLARING_FLOATN + + +448 #ià +__HAVE_DISTINCT_FLOAT64X + || ( +__HAVE_FLOAT64X + && ! +defšed + +_LIBC +) + +449  + #_MdoubË_ + +_Flßt64x + + + ) + +450  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f64x +## + ) +r + +451  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +452  + #__MATH_DECLARING_FLOATN + 1 + + ) + +453 #ià +__HAVE_DISTINCT_FLOAT64X + + +454  + ~ + +456 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +457  + ~ + +459 #undeà +_MdoubË_ + + +460 #undeà +__MATH_PRECNAME + + +461 #undeà +__MATH_DECLARING_DOUBLE + + +462 #undeà +__MATH_DECLARING_FLOATN + + +465 #ià +__HAVE_DISTINCT_FLOAT128X + || ( +__HAVE_FLOAT128X + && ! +defšed + +_LIBC +) + +466  + #_MdoubË_ + +_Flßt128x + + + ) + +467  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f128x +## + ) +r + +468  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +469  + #__MATH_DECLARING_FLOATN + 1 + + ) + +470 #ià +__HAVE_DISTINCT_FLOAT128X + + +471  + ~ + +473 #ià + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +474  + ~ + +476 #undeà +_MdoubË_ + + +477 #undeà +__MATH_PRECNAME + + +478 #undeà +__MATH_DECLARING_DOUBLE + + +479 #undeà +__MATH_DECLARING_FLOATN + + +482 #undeà +__MATHDECL_1 + + +483 #undeà +__MATHDECL + + +484 #undeà +__MATHCALL + + +487 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +489  +signgam +; + +492 #ià( +__HAVE_DISTINCT_FLOAT16 + \ + +493 || +__HAVE_DISTINCT_FLOAT32 + \ + +494 || +__HAVE_DISTINCT_FLOAT64 + \ + +495 || +__HAVE_DISTINCT_FLOAT32X + \ + +496 || +__HAVE_DISTINCT_FLOAT64X + \ + +497 || +__HAVE_DISTINCT_FLOAT128X +) + +510 #ifdeà +__NO_LONG_DOUBLE_MATH + + +511 #ià +__HAVE_DISTINCT_FLOAT128 + + +514  + #__MATH_TG +( +TG_ARG +, +FUNC +, +ARGS +) \ + +515 ( ( +TG_ARG +è=ð (è? +FUNC + ## +f + +ARGS + : FUNC ARGS) + + ) + +516 #–ià +__HAVE_DISTINCT_FLOAT128 + + +517 #ià +__HAVE_GENERIC_SELECTION + + +518 #ià +__HAVE_FLOATN_NOT_TYPEDEF + && +__HAVE_FLOAT32 + + +519  + #__MATH_TG_F32 +( +FUNC +, +ARGS +è +_Flßt32 +: FUNC ## +f + ARGS, + + ) + +521  + #__MATH_TG_F32 +( +FUNC +, +ARGS +) + + ) + +523 #ià +__HAVE_FLOATN_NOT_TYPEDEF + && +__HAVE_FLOAT64X + + +524 #ià +__HAVE_FLOAT64X_LONG_DOUBLE + + +525  + #__MATH_TG_F64X +( +FUNC +, +ARGS +è +_Flßt64x +: FUNC ## +l + ARGS, + + ) + +527  + #__MATH_TG_F64X +( +FUNC +, +ARGS +è +_Flßt64x +: FUNC ## +f128 + ARGS, + + ) + +530  + #__MATH_TG_F64X +( +FUNC +, +ARGS +) + + ) + +532  + #__MATH_TG +( +TG_ARG +, +FUNC +, +ARGS +) \ + +533 + `_G’”ic + (( +TG_ARG +), \ + +534 : +FUNC + ## +f + +ARGS +, \ + +535 + `__MATH_TG_F32 + ( +FUNC +, +ARGS +) \ + +536 : +FUNC + +ARGS +, \ + +537 : +FUNC + ## +l + +ARGS +, \ + +538 + `__MATH_TG_F64X + ( +FUNC +, +ARGS +) \ + +539 +_Flßt128 +: +FUNC + ## +f128 + +ARGS +) + + ) + +541 #ià +__HAVE_FLOATN_NOT_TYPEDEF + + +544  + #__MATH_TG +( +TG_ARG +, +FUNC +, +ARGS +) \ + +545 +__bužtš_choo£_ex´ + \ + +546 ( + `__bužtš_ty³s_com·tibË_p + ( + `__ty³of + ( +TG_ARG +), ), \ + +547 +FUNC + ## +f + +ARGS +, \ + +548 +__bužtš_choo£_ex´ + \ + +549 ( + `__bužtš_ty³s_com·tibË_p + ( + `__ty³of + ( +TG_ARG +), ), \ + +550 +FUNC + +ARGS +, \ + +551 +__bužtš_choo£_ex´ + \ + +552 ( + `__bužtš_ty³s_com·tibË_p + ( + `__ty³of + ( +TG_ARG +), ), \ + +553 +FUNC + ## +l + +ARGS +, \ + +554 +FUNC + ## +f128 + +ARGS +))) + + ) + +557  + #__MATH_TG +( +TG_ARG +, +FUNC +, +ARGS +) \ + +558 ( ( +TG_ARG +) ==  () \ + +559 ? +FUNC + ## +f + +ARGS + \ + +560 :  ( +TG_ARG +) ==  () \ + +561 ? +FUNC + +ARGS + \ + +562 : +FUNC + ## +l + +ARGS +) + + ) + +566 #ifdeà +__USE_ISOC99 + + +571 +FP_NAN + = + +572  + #FP_NAN + 0 + + ) + +573 +FP_NAN +, + +574 +FP_INFINITE + = + +575  + #FP_INFINITE + 1 + + ) + +576 +FP_INFINITE +, + +577 +FP_ZERO + = + +578  + #FP_ZERO + 2 + + ) + +579 +FP_ZERO +, + +580 +FP_SUBNORMAL + = + +581  + #FP_SUBNORMAL + 3 + + ) + +582 +FP_SUBNORMAL +, + +583 +FP_NORMAL + = + +584  + #FP_NORMAL + 4 + + ) + +585 +FP_NORMAL + + +593 #ià + `__GNUC_PREREQ + (4,4è&& ! +defšed + +__SUPPORT_SNAN__ + \ + +594 && (! +defšed + +__OPTIMIZE_SIZE__ + || defšed +__ýlu¥lus +) + +601  + #åþassify +( +x +è + `__bužtš_åþassify + ( +FP_NAN +, +FP_INFINITE +, \ + +602 +FP_NORMAL +, +FP_SUBNORMAL +, +FP_ZERO +, +x +) + + ) + +604  + #åþassify +( +x +è + `__MATH_TG + ((x), +__åþassify +, (x)) + + ) + +608 #ià + `__GNUC_PREREQ + (6,0) + +609  + #signb™ +( +x +è + `__bužtš_signb™ + (x) + + ) + +610 #–ià +defšed + +__ýlu¥lus + + +618  + #signb™ +( +x +è + `__bužtš_signb™l + (x) + + ) + +619 #–ià + `__GNUC_PREREQ + (4,0) + +620  + #signb™ +( +x +è + `__MATH_TG + ((x), +__bužtš_signb™ +, (x)) + + ) + +622  + #signb™ +( +x +è + `__MATH_TG + ((x), +__signb™ +, (x)) + + ) + +626 #ià + `__GNUC_PREREQ + (4,4è&& ! +defšed + +__SUPPORT_SNAN__ + + +627  + #isfš™e +( +x +è + `__bužtš_isfš™e + (x) + + ) + +629  + #isfš™e +( +x +è + `__MATH_TG + ((x), +__fš™e +, (x)) + + ) + +633 #ià + `__GNUC_PREREQ + (4,4è&& ! +defšed + +__SUPPORT_SNAN__ + + +634  + #i¢Üm® +( +x +è + `__bužtš_i¢Üm® + (x) + + ) + +636  + #i¢Üm® +( +x +è( + `åþassify + (xè=ð +FP_NORMAL +) + + ) + +641 #ià + `__GNUC_PREREQ + (4,4è&& ! +defšed + +__SUPPORT_SNAN__ + + +642  + #i¢ª +( +x +è + `__bužtš_i¢ª + (x) + + ) + +644  + #i¢ª +( +x +è + `__MATH_TG + ((x), +__i¢ª +, (x)) + + ) + +648 #ià +__HAVE_DISTINCT_FLOAT128 + && ! + `__GNUC_PREREQ + (7,0) \ + +649 && ! +defšed + +__SUPPORT_SNAN__ + && !defšed +__ýlu¥lus + + +655  + #isšf +( +x +) \ + +656 ( + `__bužtš_ty³s_com·tibË_p + ( + `__ty³of + ( +x +), +_Flßt128 +) \ + +657 ? + `__isšff128 + ( +x +è: + `__bužtš_isšf_sign + (x)) + + ) + +658 #–ià + `__GNUC_PREREQ + (4,4è&& ! +defšed + +__SUPPORT_SNAN__ + + +659  + #isšf +( +x +è + `__bužtš_isšf_sign + (x) + + ) + +661  + #isšf +( +x +è + `__MATH_TG + ((x), +__isšf +, (x)) + + ) + +665  + #MATH_ERRNO + 1 + + ) + +666  + #MATH_ERREXCEPT + 2 + + ) + +673 #ifdeà +__FAST_MATH__ + + +674  + #m©h_”rhªdlšg + 0 + + ) + +675 #–ià +defšed + +__NO_MATH_ERRNO__ + + +676  + #m©h_”rhªdlšg + ( +MATH_ERREXCEPT +) + + ) + +678  + #m©h_”rhªdlšg + ( +MATH_ERRNO + | +MATH_ERREXCEPT +) + + ) + +683 #ià + `__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +684  + ~ + +687 #iâdeà +__ýlu¥lus + + +688  + #issigÇlšg +( +x +è + `__MATH_TG + ((x), +__issigÇlšg +, (x)) + + ) + +697 +šlše +  + `issigÇlšg + ( +__v® +è{  + `__issigÇlšgf + (__val); } + +698 +šlše +  + `issigÇlšg + ( +__v® +è{  + `__issigÇlšg + (__val); } + +699 +šlše +  + +700 + `issigÇlšg + ( +__v® +) + +702 #ifdeà +__NO_LONG_DOUBLE_MATH + + +703  + `__issigÇlšg + ( +__v® +); + +705  + `__issigÇlšgl + ( +__v® +); + +708 #ià +__HAVE_DISTINCT_FLOAT128 + + +709 +šlše +  + `issigÇlšg + ( +_Flßt128 + +__v® +è{  + `__issigÇlšgf128 + (__val); } + +711 + } +} + +715  + #issubnÜm® +( +x +è( + `åþassify + (xè=ð +FP_SUBNORMAL +) + + ) + +718 #iâdeà +__ýlu¥lus + + +719 #ifdeà +__SUPPORT_SNAN__ + + +720  + #isz”o +( +x +è( + `åþassify + (xè=ð +FP_ZERO +) + + ) + +722  + #isz”o +( +x +è((( + `__ty³of + (x)è(x)è=ð0) + + ) + +726 #ifdeà +__SUPPORT_SNAN__ + + +727 +šlše +  + +728 +isz”o + ( +__v® +) + +730  +__åþassifyf + ( +__v® +è=ð +FP_ZERO +; + +732 +šlše +  + +733 +isz”o + ( +__v® +) + +735  +__åþassify + ( +__v® +è=ð +FP_ZERO +; + +737 +šlše +  + +738 +isz”o + ( +__v® +) + +740 #ifdeà +__NO_LONG_DOUBLE_MATH + + +741  +__åþassify + ( +__v® +è=ð +FP_ZERO +; + +743  +__åþassifyl + ( +__v® +è=ð +FP_ZERO +; + +746 #ià +__HAVE_DISTINCT_FLOAT128 + + +747 +šlše +  + +748 +isz”o + ( +_Flßt128 + +__v® +) + +750  +__åþassifyf128 + ( +__v® +è=ð +FP_ZERO +; + +754 +‹m¶©e + < +þass + +__T +> +šlše + +boÞ + + +755 +isz”o + ( +__T + +__v® +) + +757  +__v® + == 0; + +764 #ifdeà +__USE_XOPEN + + +766  + #MAXFLOAT + 3.40282347e+38F + + ) + +771 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +772  + #M_E + 2.7182818284590452354 + + ) + +773  + #M_LOG2E + 1.4426950408889634074 + + ) + +774  + #M_LOG10E + 0.43429448190325182765 + + ) + +775  + #M_LN2 + 0.69314718055994530942 + + ) + +776  + #M_LN10 + 2.30258509299404568402 + + ) + +777  + #M_PI + 3.14159265358979323846 + + ) + +778  + #M_PI_2 + 1.57079632679489661923 + + ) + +779  + #M_PI_4 + 0.78539816339744830962 + + ) + +780  + #M_1_PI + 0.31830988618379067154 + + ) + +781  + #M_2_PI + 0.63661977236758134308 + + ) + +782  + #M_2_SQRTPI + 1.12837916709551257390 + + ) + +783  + #M_SQRT2 + 1.41421356237309504880 + + ) + +784  + #M_SQRT1_2 + 0.70710678118654752440 + + ) + +790 #ifdeà +__USE_GNU + + +791  + #M_El + 2.718281828459045235360287471352662498L + + ) + +792  + #M_LOG2El + 1.442695040888963407359924681001892137L + + ) + +793  + #M_LOG10El + 0.434294481903251827651128918916605082L + + ) + +794  + #M_LN2l + 0.693147180559945309417232121458176568L + + ) + +795  + #M_LN10l + 2.302585092994045684017991454684364208L + + ) + +796  + #M_PIl + 3.141592653589793238462643383279502884L + + ) + +797  + #M_PI_2l + 1.570796326794896619231321691639751442L + + ) + +798  + #M_PI_4l + 0.785398163397448309615660845819875721L + + ) + +799  + #M_1_PIl + 0.318309886183790671537767526745028724L + + ) + +800  + #M_2_PIl + 0.636619772367581343075535053490057448L + + ) + +801  + #M_2_SQRTPIl + 1.128379167095512573896158903121545172L + + ) + +802  + #M_SQRT2l + 1.414213562373095048801688724209698079L + + ) + +803  + #M_SQRT1_2l + 0.707106781186547524400844362104849039L + + ) + +806 #ià +__HAVE_FLOAT16 + && +defšed + +__USE_GNU + + +807  + #M_Ef16 + + `__f16 + (2.718281828459045235360287471352662498è + + ) + +808  + #M_LOG2Ef16 + + `__f16 + (1.442695040888963407359924681001892137è + + ) + +809  + #M_LOG10Ef16 + + `__f16 + (0.434294481903251827651128918916605082è + + ) + +810  + #M_LN2f16 + + `__f16 + (0.693147180559945309417232121458176568è + + ) + +811  + #M_LN10f16 + + `__f16 + (2.302585092994045684017991454684364208è + + ) + +812  + #M_PIf16 + + `__f16 + (3.141592653589793238462643383279502884è + + ) + +813  + #M_PI_2f16 + + `__f16 + (1.570796326794896619231321691639751442è + + ) + +814  + #M_PI_4f16 + + `__f16 + (0.785398163397448309615660845819875721è + + ) + +815  + #M_1_PIf16 + + `__f16 + (0.318309886183790671537767526745028724è + + ) + +816  + #M_2_PIf16 + + `__f16 + (0.636619772367581343075535053490057448è + + ) + +817  + #M_2_SQRTPIf16 + + `__f16 + (1.128379167095512573896158903121545172è + + ) + +818  + #M_SQRT2f16 + + `__f16 + (1.414213562373095048801688724209698079è + + ) + +819  + #M_SQRT1_2f16 + + `__f16 + (0.707106781186547524400844362104849039è + + ) + +822 #ià +__HAVE_FLOAT32 + && +defšed + +__USE_GNU + + +823  + #M_Ef32 + + `__f32 + (2.718281828459045235360287471352662498è + + ) + +824  + #M_LOG2Ef32 + + `__f32 + (1.442695040888963407359924681001892137è + + ) + +825  + #M_LOG10Ef32 + + `__f32 + (0.434294481903251827651128918916605082è + + ) + +826  + #M_LN2f32 + + `__f32 + (0.693147180559945309417232121458176568è + + ) + +827  + #M_LN10f32 + + `__f32 + (2.302585092994045684017991454684364208è + + ) + +828  + #M_PIf32 + + `__f32 + (3.141592653589793238462643383279502884è + + ) + +829  + #M_PI_2f32 + + `__f32 + (1.570796326794896619231321691639751442è + + ) + +830  + #M_PI_4f32 + + `__f32 + (0.785398163397448309615660845819875721è + + ) + +831  + #M_1_PIf32 + + `__f32 + (0.318309886183790671537767526745028724è + + ) + +832  + #M_2_PIf32 + + `__f32 + (0.636619772367581343075535053490057448è + + ) + +833  + #M_2_SQRTPIf32 + + `__f32 + (1.128379167095512573896158903121545172è + + ) + +834  + #M_SQRT2f32 + + `__f32 + (1.414213562373095048801688724209698079è + + ) + +835  + #M_SQRT1_2f32 + + `__f32 + (0.707106781186547524400844362104849039è + + ) + +838 #ià +__HAVE_FLOAT64 + && +defšed + +__USE_GNU + + +839  + #M_Ef64 + + `__f64 + (2.718281828459045235360287471352662498è + + ) + +840  + #M_LOG2Ef64 + + `__f64 + (1.442695040888963407359924681001892137è + + ) + +841  + #M_LOG10Ef64 + + `__f64 + (0.434294481903251827651128918916605082è + + ) + +842  + #M_LN2f64 + + `__f64 + (0.693147180559945309417232121458176568è + + ) + +843  + #M_LN10f64 + + `__f64 + (2.302585092994045684017991454684364208è + + ) + +844  + #M_PIf64 + + `__f64 + (3.141592653589793238462643383279502884è + + ) + +845  + #M_PI_2f64 + + `__f64 + (1.570796326794896619231321691639751442è + + ) + +846  + #M_PI_4f64 + + `__f64 + (0.785398163397448309615660845819875721è + + ) + +847  + #M_1_PIf64 + + `__f64 + (0.318309886183790671537767526745028724è + + ) + +848  + #M_2_PIf64 + + `__f64 + (0.636619772367581343075535053490057448è + + ) + +849  + #M_2_SQRTPIf64 + + `__f64 + (1.128379167095512573896158903121545172è + + ) + +850  + #M_SQRT2f64 + + `__f64 + (1.414213562373095048801688724209698079è + + ) + +851  + #M_SQRT1_2f64 + + `__f64 + (0.707106781186547524400844362104849039è + + ) + +854 #ià +__HAVE_FLOAT128 + && +defšed + +__USE_GNU + + +855  + #M_Ef128 + + `__f128 + (2.718281828459045235360287471352662498è + + ) + +856  + #M_LOG2Ef128 + + `__f128 + (1.442695040888963407359924681001892137è + + ) + +857  + #M_LOG10Ef128 + + `__f128 + (0.434294481903251827651128918916605082è + + ) + +858  + #M_LN2f128 + + `__f128 + (0.693147180559945309417232121458176568è + + ) + +859  + #M_LN10f128 + + `__f128 + (2.302585092994045684017991454684364208è + + ) + +860  + #M_PIf128 + + `__f128 + (3.141592653589793238462643383279502884è + + ) + +861  + #M_PI_2f128 + + `__f128 + (1.570796326794896619231321691639751442è + + ) + +862  + #M_PI_4f128 + + `__f128 + (0.785398163397448309615660845819875721è + + ) + +863  + #M_1_PIf128 + + `__f128 + (0.318309886183790671537767526745028724è + + ) + +864  + #M_2_PIf128 + + `__f128 + (0.636619772367581343075535053490057448è + + ) + +865  + #M_2_SQRTPIf128 + + `__f128 + (1.128379167095512573896158903121545172è + + ) + +866  + #M_SQRT2f128 + + `__f128 + (1.414213562373095048801688724209698079è + + ) + +867  + #M_SQRT1_2f128 + + `__f128 + (0.707106781186547524400844362104849039è + + ) + +870 #ià +__HAVE_FLOAT32X + && +defšed + +__USE_GNU + + +871  + #M_Ef32x + + `__f32x + (2.718281828459045235360287471352662498è + + ) + +872  + #M_LOG2Ef32x + + `__f32x + (1.442695040888963407359924681001892137è + + ) + +873  + #M_LOG10Ef32x + + `__f32x + (0.434294481903251827651128918916605082è + + ) + +874  + #M_LN2f32x + + `__f32x + (0.693147180559945309417232121458176568è + + ) + +875  + #M_LN10f32x + + `__f32x + (2.302585092994045684017991454684364208è + + ) + +876  + #M_PIf32x + + `__f32x + (3.141592653589793238462643383279502884è + + ) + +877  + #M_PI_2f32x + + `__f32x + (1.570796326794896619231321691639751442è + + ) + +878  + #M_PI_4f32x + + `__f32x + (0.785398163397448309615660845819875721è + + ) + +879  + #M_1_PIf32x + + `__f32x + (0.318309886183790671537767526745028724è + + ) + +880  + #M_2_PIf32x + + `__f32x + (0.636619772367581343075535053490057448è + + ) + +881  + #M_2_SQRTPIf32x + + `__f32x + (1.128379167095512573896158903121545172è + + ) + +882  + #M_SQRT2f32x + + `__f32x + (1.414213562373095048801688724209698079è + + ) + +883  + #M_SQRT1_2f32x + + `__f32x + (0.707106781186547524400844362104849039è + + ) + +886 #ià +__HAVE_FLOAT64X + && +defšed + +__USE_GNU + + +887  + #M_Ef64x + + `__f64x + (2.718281828459045235360287471352662498è + + ) + +888  + #M_LOG2Ef64x + + `__f64x + (1.442695040888963407359924681001892137è + + ) + +889  + #M_LOG10Ef64x + + `__f64x + (0.434294481903251827651128918916605082è + + ) + +890  + #M_LN2f64x + + `__f64x + (0.693147180559945309417232121458176568è + + ) + +891  + #M_LN10f64x + + `__f64x + (2.302585092994045684017991454684364208è + + ) + +892  + #M_PIf64x + + `__f64x + (3.141592653589793238462643383279502884è + + ) + +893  + #M_PI_2f64x + + `__f64x + (1.570796326794896619231321691639751442è + + ) + +894  + #M_PI_4f64x + + `__f64x + (0.785398163397448309615660845819875721è + + ) + +895  + #M_1_PIf64x + + `__f64x + (0.318309886183790671537767526745028724è + + ) + +896  + #M_2_PIf64x + + `__f64x + (0.636619772367581343075535053490057448è + + ) + +897  + #M_2_SQRTPIf64x + + `__f64x + (1.128379167095512573896158903121545172è + + ) + +898  + #M_SQRT2f64x + + `__f64x + (1.414213562373095048801688724209698079è + + ) + +899  + #M_SQRT1_2f64x + + `__f64x + (0.707106781186547524400844362104849039è + + ) + +902 #ià +__HAVE_FLOAT128X + && +defšed + +__USE_GNU + + +909 #ià +defšed + +__STRICT_ANSI__ + && !defšed +__NO_MATH_INLINES + + +910  + #__NO_MATH_INLINES + 1 + + ) + +913 #ifdeà +__USE_ISOC99 + + +914 #ià +__GNUC_PREREQ + (3, 1) + +921  + #isg»©” +( +x +, +y +è + `__bužtš_isg»©” +(x, y) + + ) + +922  + #isg»©”equ® +( +x +, +y +è + `__bužtš_isg»©”equ® +(x, y) + + ) + +923  + #i¦ess +( +x +, +y +è + `__bužtš_i¦ess +(x, y) + + ) + +924  + #i¦es£qu® +( +x +, +y +è + `__bužtš_i¦es£qu® +(x, y) + + ) + +925  + #i¦essg»©” +( +x +, +y +è + `__bužtš_i¦essg»©” +(x, y) + + ) + +926  + #isunÜd”ed +( +x +, +y +è + `__bužtš_isunÜd”ed +(x, y) + + ) + +928  + #isg»©” +( +x +, +y +) \ + +929 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__x + = (x); __ty³of__ ( +y +è +__y + = (y); \ + +930 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x > __y; })) + + ) + +931  + #isg»©”equ® +( +x +, +y +) \ + +932 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__x + = (x); __ty³of__ ( +y +è +__y + = (y); \ + +933 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x >ð__y; })) + + ) + +934  + #i¦ess +( +x +, +y +) \ + +935 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__x + = (x); __ty³of__ ( +y +è +__y + = (y); \ + +936 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x < __y; })) + + ) + +937  + #i¦es£qu® +( +x +, +y +) \ + +938 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__x + = (x); __ty³of__ ( +y +è +__y + = (y); \ + +939 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x <ð__y; })) + + ) + +940  + #i¦essg»©” +( +x +, +y +) \ + +941 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__x + = (x); __ty³of__ ( +y +è +__y + = (y); \ + +942 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x !ð__y; })) + + ) + +944  + #isunÜd”ed +( +x +, +y +) \ + +945 ( + `__ex‹nsiÚ__ + ({ + `__ty³of__ + ( +x +è +__u + = (x); __ty³of__ ( +y +è +__v + = (y); \ + +946 +__u + !ð +__v + && (__u !ð__u || __v !ð__v); })) + + ) + +951 #ifdeà +__USE_EXTERN_INLINES + + +952  + ~ + +957 #ià +defšed + +__FINITE_MATH_ONLY__ + && __FINITE_MATH_ONLY__ > 0 + +960  + #_MdoubË_ +  + + ) + +961  + #__MATH_DECLARING_DOUBLE + 1 + + ) + +962  + #__MATH_DECLARING_FLOATN + 0 + + ) + +963  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +964 +funùiÚ + ## +»’Œªt + + + ) + +965  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +966 +__ + ## +funùiÚ + ## +»’Œªt + ## +_fš™e + + + ) + +967  + ~ + +968 #undeà +_MdoubË_ + + +969 #undeà +__MATH_DECLARING_DOUBLE + + +970 #undeà +__MATH_DECLARING_FLOATN + + +971 #undeà +__REDIRFROM_X + + +972 #undeà +__REDIRTO_X + + +976 #ifdeà +__USE_ISOC99 + + +979  + #_MdoubË_ +  + + ) + +980  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +981  + #__MATH_DECLARING_FLOATN + 0 + + ) + +982  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +983 +funùiÚ + ## +f + ## +»’Œªt + + + ) + +984  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +985 +__ + ## +funùiÚ + ## +f + ## +»’Œªt + ## +_fš™e + + + ) + +986  + ~ + +987 #undeà +_MdoubË_ + + +988 #undeà +__MATH_DECLARING_DOUBLE + + +989 #undeà +__MATH_DECLARING_FLOATN + + +990 #undeà +__REDIRFROM_X + + +991 #undeà +__REDIRTO_X + + +994 #ifdeà +__MATH_DECLARE_LDOUBLE + + +995  + #_MdoubË_ +  + + ) + +996  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +997  + #__MATH_DECLARING_FLOATN + 0 + + ) + +998  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +999 +funùiÚ + ## +l + ## +»’Œªt + + + ) + +1000 #ifdeà +__NO_LONG_DOUBLE_MATH + + +1001  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1002 +__ + ## +funùiÚ + ## +»’Œªt + ## +_fš™e + + + ) + +1004  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1005 +__ + ## +funùiÚ + ## +l + ## +»’Œªt + ## +_fš™e + + + ) + +1007  + ~ + +1008 #undeà +_MdoubË_ + + +1009 #undeà +__MATH_DECLARING_DOUBLE + + +1010 #undeà +__MATH_DECLARING_FLOATN + + +1011 #undeà +__REDIRFROM_X + + +1012 #undeà +__REDIRTO_X + + +1019 #ià( +__HAVE_DISTINCT_FLOAT16 + || ( +__HAVE_FLOAT16 + && ! +defšed + +_LIBC +)) \ + +1020 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1021  + #_MdoubË_ + +_Flßt16 + + + ) + +1022  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1023  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1024  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1025 +funùiÚ + ## +f16 + ## +»’Œªt + + + ) + +1026 #ià +__HAVE_DISTINCT_FLOAT16 + + +1027  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1028 +__ + ## +funùiÚ + ## +f16 + ## +»’Œªt + ## +_fš™e + + + ) + +1032  + ~ + +1033 #undeà +_MdoubË_ + + +1034 #undeà +__MATH_DECLARING_DOUBLE + + +1035 #undeà +__MATH_DECLARING_FLOATN + + +1036 #undeà +__REDIRFROM_X + + +1037 #undeà +__REDIRTO_X + + +1040 #ià( +__HAVE_DISTINCT_FLOAT32 + || ( +__HAVE_FLOAT32 + && ! +defšed + +_LIBC +)) \ + +1041 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1042  + #_MdoubË_ + +_Flßt32 + + + ) + +1043  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1044  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1045  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1046 +funùiÚ + ## +f32 + ## +»’Œªt + + + ) + +1047 #ià +__HAVE_DISTINCT_FLOAT32 + + +1048  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1049 +__ + ## +funùiÚ + ## +f32 + ## +»’Œªt + ## +_fš™e + + + ) + +1051  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1052 +__ + ## +funùiÚ + ## +f + ## +»’Œªt + ## +_fš™e + + + ) + +1054  + ~ + +1055 #undeà +_MdoubË_ + + +1056 #undeà +__MATH_DECLARING_DOUBLE + + +1057 #undeà +__MATH_DECLARING_FLOATN + + +1058 #undeà +__REDIRFROM_X + + +1059 #undeà +__REDIRTO_X + + +1062 #ià( +__HAVE_DISTINCT_FLOAT64 + || ( +__HAVE_FLOAT64 + && ! +defšed + +_LIBC +)) \ + +1063 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1064  + #_MdoubË_ + +_Flßt64 + + + ) + +1065  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1066  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1067  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1068 +funùiÚ + ## +f64 + ## +»’Œªt + + + ) + +1069 #ià +__HAVE_DISTINCT_FLOAT64 + + +1070  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1071 +__ + ## +funùiÚ + ## +f64 + ## +»’Œªt + ## +_fš™e + + + ) + +1073  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1074 +__ + ## +funùiÚ + ## +»’Œªt + ## +_fš™e + + + ) + +1076  + ~ + +1077 #undeà +_MdoubË_ + + +1078 #undeà +__MATH_DECLARING_DOUBLE + + +1079 #undeà +__MATH_DECLARING_FLOATN + + +1080 #undeà +__REDIRFROM_X + + +1081 #undeà +__REDIRTO_X + + +1084 #ià( +__HAVE_DISTINCT_FLOAT128 + || ( +__HAVE_FLOAT128 + && ! +defšed + +_LIBC +)) \ + +1085 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1086  + #_MdoubË_ + +_Flßt128 + + + ) + +1087  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1088  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1089  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1090 +funùiÚ + ## +f128 + ## +»’Œªt + + + ) + +1091 #ià +__HAVE_DISTINCT_FLOAT128 + + +1092  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1093 +__ + ## +funùiÚ + ## +f128 + ## +»’Œªt + ## +_fš™e + + + ) + +1095  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1096 +__ + ## +funùiÚ + ## +l + ## +»’Œªt + ## +_fš™e + + + ) + +1098  + ~ + +1099 #undeà +_MdoubË_ + + +1100 #undeà +__MATH_DECLARING_DOUBLE + + +1101 #undeà +__MATH_DECLARING_FLOATN + + +1102 #undeà +__REDIRFROM_X + + +1103 #undeà +__REDIRTO_X + + +1106 #ià( +__HAVE_DISTINCT_FLOAT32X + || ( +__HAVE_FLOAT32X + && ! +defšed + +_LIBC +)) \ + +1107 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1108  + #_MdoubË_ + +_Flßt32x + + + ) + +1109  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1110  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1111  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1112 +funùiÚ + ## +f32x + ## +»’Œªt + + + ) + +1113 #ià +__HAVE_DISTINCT_FLOAT32X + + +1114  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1115 +__ + ## +funùiÚ + ## +f32x + ## +»’Œªt + ## +_fš™e + + + ) + +1117  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1118 +__ + ## +funùiÚ + ## +»’Œªt + ## +_fš™e + + + ) + +1120  + ~ + +1121 #undeà +_MdoubË_ + + +1122 #undeà +__MATH_DECLARING_DOUBLE + + +1123 #undeà +__MATH_DECLARING_FLOATN + + +1124 #undeà +__REDIRFROM_X + + +1125 #undeà +__REDIRTO_X + + +1128 #ià( +__HAVE_DISTINCT_FLOAT64X + || ( +__HAVE_FLOAT64X + && ! +defšed + +_LIBC +)) \ + +1129 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1130  + #_MdoubË_ + +_Flßt64x + + + ) + +1131  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1132  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1133  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1134 +funùiÚ + ## +f64x + ## +»’Œªt + + + ) + +1135 #ià +__HAVE_DISTINCT_FLOAT64X + + +1136  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1137 +__ + ## +funùiÚ + ## +f64x + ## +»’Œªt + ## +_fš™e + + + ) + +1138 #–ià +__HAVE_FLOAT64X_LONG_DOUBLE + + +1139  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1140 +__ + ## +funùiÚ + ## +l + ## +»’Œªt + ## +_fš™e + + + ) + +1142  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1143 +__ + ## +funùiÚ + ## +f128 + ## +»’Œªt + ## +_fš™e + + + ) + +1145  + ~ + +1146 #undeà +_MdoubË_ + + +1147 #undeà +__MATH_DECLARING_DOUBLE + + +1148 #undeà +__MATH_DECLARING_FLOATN + + +1149 #undeà +__REDIRFROM_X + + +1150 #undeà +__REDIRTO_X + + +1153 #ià( +__HAVE_DISTINCT_FLOAT128X + || ( +__HAVE_FLOAT128X + && ! +defšed + +_LIBC +)) \ + +1154 && + $__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +1155  + #_MdoubË_ + +_Flßt128x + + + ) + +1156  + #__MATH_DECLARING_DOUBLE + 0 + + ) + +1157  + #__MATH_DECLARING_FLOATN + 1 + + ) + +1158  + #__REDIRFROM_X +( +funùiÚ +, +»’Œªt +) \ + +1159 +funùiÚ + ## +f128x + ## +»’Œªt + + + ) + +1160 #ià +__HAVE_DISTINCT_FLOAT128X + + +1161  + #__REDIRTO_X +( +funùiÚ +, +»’Œªt +) \ + +1162 +__ + ## +funùiÚ + ## +f128x + ## +»’Œªt + ## +_fš™e + + + ) + +1166  + ~ + +1167 #undeà +_MdoubË_ + + +1168 #undeà +__MATH_DECLARING_DOUBLE + + +1169 #undeà +__MATH_DECLARING_FLOATN + + +1170 #undeà +__REDIRFROM_X + + +1171 #undeà +__REDIRTO_X + + +1176 #ià + `__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +1179 #ià +__FLT_EVAL_METHOD__ + == 2 || __FLT_EVAL_METHOD__ > 64 + +1180  + #__MATH_EVAL_FMT2 +( +x +, +y +è((xè+ (yè+ 0.0L) + + ) + +1181 #–ià +__FLT_EVAL_METHOD__ + == 1 || __FLT_EVAL_METHOD__ > 32 + +1182  + #__MATH_EVAL_FMT2 +( +x +, +y +è((xè+ (yè+ 0.0) + + ) + +1183 #–ià +__FLT_EVAL_METHOD__ + == 0 || __FLT_EVAL_METHOD__ == 32 + +1184  + #__MATH_EVAL_FMT2 +( +x +, +y +è((xè+ (yè+ 0.0f) + + ) + +1186  + #__MATH_EVAL_FMT2 +( +x +, +y +è((xè+ (y)) + + ) + +1191 #ià! +defšed + +__ýlu¥lus + || (__ýlu¥lu < 201103L && !defšed +__GNUC__ +) + +1192  + #i£qsig +( +x +, +y +) \ + +1193 + `__MATH_TG + ( + `__MATH_EVAL_FMT2 + ( +x +, +y +), +__i£qsig +, ((x), (y))) + + ) + +1206 +‹m¶©e +< +ty³Çme +>  +__i£qsig_ty³ +; + +1208 +‹m¶©e +<>  +__i£qsig_ty³ +<> + +1210  + `__ÿÎ + ( +__x +,  +__y +è + `throw + () + +1212  + `__i£qsigf + ( +__x +, +__y +); + +1216 +‹m¶©e +<>  +__i£qsig_ty³ +<> + +1218  + `__ÿÎ + ( +__x +,  +__y +è + `throw + () + +1220  + `__i£qsig + ( +__x +, +__y +); + +1224 +‹m¶©e +<>  +__i£qsig_ty³ +<> + +1226  + `__ÿÎ + ( +__x +,  +__y +è + `throw + () + +1228 #iâdeà +__NO_LONG_DOUBLE_MATH + + +1229  + `__i£qsigl + ( +__x +, +__y +); + +1231  + `__i£qsig + ( +__x +, +__y +); + +1236 #ià +__HAVE_DISTINCT_FLOAT128 + + +1237 +‹m¶©e +<>  +__i£qsig_ty³ +< +_Flßt128 +> + +1239  + `__ÿÎ + ( +_Flßt128 + +__x +, _Flßt128 +__y +è + `throw + () + +1241  + `__i£qsigf128 + ( +__x +, +__y +); + +1246 +‹m¶©e +< +ty³Çme + +_T1 +,y³Çm +_T2 +> + +1247 +šlše +  + +1248 + `i£qsig + ( +_T1 + +__x +, +_T2 + +__y +è + `throw + () + +1250 #ià +__ýlu¥lus + >= 201103L + +1251  + `deþty³ + ( + t__MATH_EVAL_FMT2 + ( + t__x +, + t__y +)è + t_T3 +; + +1253  + `__ty³of + ( + t__MATH_EVAL_FMT2 + ( + t__x +, + t__y +)è + t_T3 +; + +1255  +__i£qsig_ty³ +< +_T3 +>:: + `__ÿÎ + ( +__x +, +__y +); + +1258 + } +} + +1263 +__END_DECLS + + + @/usr/include/stdio.h + +23 #iâdeà +_STDIO_H + + +24  + #_STDIO_H + 1 + + ) + +26  + #__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION + + + ) + +27  + ~ + +29 + g__BEGIN_DECLS + + +31  + #__Ãed_size_t + + + ) + +32  + #__Ãed_NULL + + + ) + +33  + ~<¡ddef.h +> + +35  + ~ + +36  + ~ + +37  + ~ + +39  + #_STDIO_USES_IOSTREAM + + + ) + +41  + ~ + +43 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +44 #ifdeà +__GNUC__ + + +45 #iâdeà +_VA_LIST_DEFINED + + +46  +_G_va_li¡ + + tva_li¡ +; + +47  + #_VA_LIST_DEFINED + + + ) + +50  + ~<¡d¬g.h +> + +54 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +55 #iâdeà +__off_t_defšed + + +56 #iâdeà +__USE_FILE_OFFSET64 + + +57  +__off_t + + toff_t +; + +59  +__off64_t + + toff_t +; + +61  + #__off_t_defšed + + + ) + +63 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +64  +__off64_t + + toff64_t +; + +65  + #__off64_t_defšed + + + ) + +69 #ifdeà +__USE_XOPEN2K8 + + +70 #iâdeà +__ssize_t_defšed + + +71  +__ssize_t + + tssize_t +; + +72  + #__ssize_t_defšed + + + ) + +77 #iâdeà +__USE_FILE_OFFSET64 + + +78  +_G_åos_t + + tåos_t +; + +80  +_G_åos64_t + + tåos_t +; + +82 #ifdeà +__USE_LARGEFILE64 + + +83  +_G_åos64_t + + tåos64_t +; + +87  + #_IOFBF + 0 + + ) + +88  + #_IOLBF + 1 + + ) + +89  + #_IONBF + 2 + + ) + +93 #iâdeà +BUFSIZ + + +94  + #BUFSIZ + +_IO_BUFSIZ + + + ) + +100 #iâdeà +EOF + + +101  + #EOF + (-1) + + ) + +107  + #SEEK_SET + 0 + + ) + +108  + #SEEK_CUR + 1 + + ) + +109  + #SEEK_END + 2 + + ) + +110 #ifdeà +__USE_GNU + + +111  + #SEEK_DATA + 3 + + ) + +112  + #SEEK_HOLE + 4 + + ) + +116 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +118  + #P_tmpdœ + "/tmp" + + ) + +131  + ~ + +135  +_IO_FILE + * +¡dš +; + +136  +_IO_FILE + * +¡dout +; + +137  +_IO_FILE + * +¡d”r +; + +139  + #¡dš + +¡dš + + + ) + +140  + #¡dout + +¡dout + + + ) + +141  + #¡d”r + +¡d”r + + + ) + +144  + $»move + (cÚ¡ * +__fž’ame +è +__THROW +; + +146  + $»Çme + (cÚ¡ * +__Þd +, cÚ¡ * +__Ãw +è +__THROW +; + +148 #ifdeà +__USE_ATFILE + + +150  + $»Çm—t + ( +__Þdfd +, cÚ¡ * +__Þd +,  +__Ãwfd +, + +151 cÚ¡ * +__Ãw +è +__THROW +; + +158 #iâdeà +__USE_FILE_OFFSET64 + + +159 +FILE + * + $tmpfže + (è +__wur +; + +161 #ifdeà +__REDIRECT + + +162 +FILE + * + `__REDIRECT + ( +tmpfže +, (), +tmpfže64 +è +__wur +; + +164  + #tmpfže + +tmpfže64 + + + ) + +168 #ifdeà +__USE_LARGEFILE64 + + +169 +FILE + * + $tmpfže64 + (è +__wur +; + +173 * + $tm²am + (* +__s +è +__THROW + +__wur +; + +175 #ifdeà +__USE_MISC + + +178 * + $tm²am_r + (* +__s +è +__THROW + +__wur +; + +182 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +190 * + $‹m²am + (cÚ¡ * +__dœ +, cÚ¡ * +__pfx +) + +191 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +199  + `fþo£ + ( +FILE + * +__¡»am +); + +204  + `fæush + ( +FILE + * +__¡»am +); + +206 #ifdeà +__USE_MISC + + +213  + `fæush_uÆocked + ( +FILE + * +__¡»am +); + +216 #ifdeà +__USE_GNU + + +223  + `fþo£®l + (); + +227 #iâdeà +__USE_FILE_OFFSET64 + + +232 +FILE + * + $fݒ + (cÚ¡ * +__»¡riù + +__fž’ame +, + +233 cÚ¡ * +__»¡riù + +__modes +è +__wur +; + +238 +FILE + * + $äeݒ + (cÚ¡ * +__»¡riù + +__fž’ame +, + +239 cÚ¡ * +__»¡riù + +__modes +, + +240 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +242 #ifdeà +__REDIRECT + + +243 +FILE + * + `__REDIRECT + ( +fݒ +, (cÚ¡ * +__»¡riù + +__fž’ame +, + +244 cÚ¡ * +__»¡riù + +__modes +), +fݒ64 +) + +245 +__wur +; + +246 +FILE + * + `__REDIRECT + ( +äeݒ +, (cÚ¡ * +__»¡riù + +__fž’ame +, + +247 cÚ¡ * +__»¡riù + +__modes +, + +248 +FILE + * +__»¡riù + +__¡»am +), +äeݒ64 +) + +249 +__wur +; + +251  + #fݒ + +fݒ64 + + + ) + +252  + #äeݒ + +äeݒ64 + + + ) + +255 #ifdeà +__USE_LARGEFILE64 + + +256 +FILE + * + $fݒ64 + (cÚ¡ * +__»¡riù + +__fž’ame +, + +257 cÚ¡ * +__»¡riù + +__modes +è +__wur +; + +258 +FILE + * + $äeݒ64 + (cÚ¡ * +__»¡riù + +__fž’ame +, + +259 cÚ¡ * +__»¡riù + +__modes +, + +260 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +263 #ifdef +__USE_POSIX + + +265 +FILE + * + $fdݒ + ( +__fd +, cÚ¡ * +__modes +è +__THROW + +__wur +; + +268 #ifdef +__USE_GNU + + +271 +FILE + * + $fݒcook› + (* +__»¡riù + +__magic_cook› +, + +272 cÚ¡ * +__»¡riù + +__modes +, + +273 +_IO_cook›_io_funùiÚs_t + +__io_funcs +è +__THROW + +__wur +; + +276 #ià +defšed + +__USE_XOPEN2K8 + || + `__GLIBC_USE + ( +LIB_EXT2 +) + +278 +FILE + * + $fmemݒ + (* +__s +, +size_t + +__Ën +, cÚ¡ * +__modes +) + +279 +__THROW + +__wur +; + +284 +FILE + * + $ݒ_mem¡»am + (** +__buæoc +, +size_t + * +__siz–oc +è +__THROW + +__wur +; + +290  + $£tbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +è +__THROW +; + +294  + $£tvbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +295  +__modes +, +size_t + +__n +è +__THROW +; + +297 #ifdef +__USE_MISC + + +300  + $£tbufãr + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +301 +size_t + +__size +è +__THROW +; + +304  + $£Žšebuf + ( +FILE + * +__¡»am +è +__THROW +; + +312  + `årštf + ( +FILE + * +__»¡riù + +__¡»am +, + +313 cÚ¡ * +__»¡riù + +__fÜm© +, ...); + +318  + `´štf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...); + +320  + $¥rštf + (* +__»¡riù + +__s +, + +321 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROWNL +; + +327  + `vårštf + ( +FILE + * +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +328 +_G_va_li¡ + +__¬g +); + +333  + `v´štf + (cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +); + +335  + $v¥rštf + (* +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +336 +_G_va_li¡ + +__¬g +è +__THROWNL +; + +338 #ià +defšed + +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +340  + $¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +341 cÚ¡ * +__»¡riù + +__fÜm© +, ...) + +342 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 4))); + +344  + $v¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +345 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +346 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 0))); + +349 #ià + `__GLIBC_USE + ( +LIB_EXT2 +) + +352  + $va¥rštf + (** +__»¡riù + +__±r +, cÚ¡ *__»¡riù +__f +, + +353 +_G_va_li¡ + +__¬g +) + +354 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 0))è +__wur +; + +355  + $__a¥rštf + (** +__»¡riù + +__±r +, + +356 cÚ¡ * +__»¡riù + +__fmt +, ...) + +357 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +358  + $a¥rštf + (** +__»¡riù + +__±r +, + +359 cÚ¡ * +__»¡riù + +__fmt +, ...) + +360 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +363 #ifdeà +__USE_XOPEN2K8 + + +365  + $vd´štf + ( +__fd +, cÚ¡ * +__»¡riù + +__fmt +, + +366 +_G_va_li¡ + +__¬g +) + +367 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +368  + $d´štf + ( +__fd +, cÚ¡ * +__»¡riù + +__fmt +, ...) + +369 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +377  + $fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +378 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +383  + $sÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +385  + $ssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +386 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +388 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +389 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +390 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +391 #ifdeà +__REDIRECT + + +395  + `__REDIRECT + ( +fsÿnf +, ( +FILE + * +__»¡riù + +__¡»am +, + +396 cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +397 +__isoc99_fsÿnf +è +__wur +; + +398  + `__REDIRECT + ( +sÿnf +, (cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +399 +__isoc99_sÿnf +è +__wur +; + +400  + `__REDIRECT_NTH + ( +ssÿnf +, (cÚ¡ * +__»¡riù + +__s +, + +401 cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +402 +__isoc99_ssÿnf +); + +404  + $__isoc99_fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +405 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +406  + $__isoc99_sÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +407  + $__isoc99_ssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +408 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +409  + #fsÿnf + +__isoc99_fsÿnf + + + ) + +410  + #sÿnf + +__isoc99_sÿnf + + + ) + +411  + #ssÿnf + +__isoc99_ssÿnf + + + ) + +415 #ifdef +__USE_ISOC99 + + +420  + $vfsÿnf + ( +FILE + * +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +421 +_G_va_li¡ + +__¬g +) + +422 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +428  + $vsÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +429 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +432  + $vssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +433 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +434 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +436 #ià! +defšed + +__USE_GNU + \ + +437 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +438 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +439 #ifdeà +__REDIRECT + + +443  + `__REDIRECT + ( +vfsÿnf +, + +444 ( +FILE + * +__»¡riù + +__s +, + +445 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +), + +446 +__isoc99_vfsÿnf +) + +447 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +448  + `__REDIRECT + ( +vsÿnf +, (cÚ¡ * +__»¡riù + +__fÜm© +, + +449 +_G_va_li¡ + +__¬g +), +__isoc99_vsÿnf +) + +450 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +451  + `__REDIRECT_NTH + ( +vssÿnf +, + +452 (cÚ¡ * +__»¡riù + +__s +, + +453 cÚ¡ * +__»¡riù + +__fÜm© +, + +454 +_G_va_li¡ + +__¬g +), +__isoc99_vssÿnf +) + +455 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +457  + $__isoc99_vfsÿnf + ( +FILE + * +__»¡riù + +__s +, + +458 cÚ¡ * +__»¡riù + +__fÜm© +, + +459 +_G_va_li¡ + +__¬g +è +__wur +; + +460  + $__isoc99_vsÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, + +461 +_G_va_li¡ + +__¬g +è +__wur +; + +462  + $__isoc99_vssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +463 cÚ¡ * +__»¡riù + +__fÜm© +, + +464 +_G_va_li¡ + +__¬g +è +__THROW +; + +465  + #vfsÿnf + +__isoc99_vfsÿnf + + + ) + +466  + #vsÿnf + +__isoc99_vsÿnf + + + ) + +467  + #vssÿnf + +__isoc99_vssÿnf + + + ) + +477  + `fg‘c + ( +FILE + * +__¡»am +); + +478  + `g‘c + ( +FILE + * +__¡»am +); + +484  + `g‘ch¬ + (); + +488  + #g‘c +( +_å +è + `_IO_g‘c + (_å) + + ) + +490 #ifdeà +__USE_POSIX199506 + + +495  + `g‘c_uÆocked + ( +FILE + * +__¡»am +); + +496  + `g‘ch¬_uÆocked + (); + +499 #ifdeà +__USE_MISC + + +506  + `fg‘c_uÆocked + ( +FILE + * +__¡»am +); + +517  + `åutc + ( +__c +, +FILE + * +__¡»am +); + +518  + `putc + ( +__c +, +FILE + * +__¡»am +); + +524  + `putch¬ + ( +__c +); + +528  + #putc +( +_ch +, +_å +è + `_IO_putc + (_ch, _å) + + ) + +530 #ifdeà +__USE_MISC + + +537  + `åutc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +540 #ifdeà +__USE_POSIX199506 + + +545  + `putc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +546  + `putch¬_uÆocked + ( +__c +); + +550 #ià +defšed + +__USE_MISC + \ + +551 || ( +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K +) + +553  + `g‘w + ( +FILE + * +__¡»am +); + +556  + `putw + ( +__w +, +FILE + * +__¡»am +); + +564 * + $fg‘s + (* +__»¡riù + +__s +,  +__n +, +FILE + *__»¡riù +__¡»am +) + +565 +__wur +; + +567 #ià + `__GLIBC_USE + ( +DEPRECATED_GETS +) + +577 * + $g‘s + (* +__s +è +__wur + +__©Œibu‹_d•»ÿ‹d__ +; + +580 #ifdeà +__USE_GNU + + +587 * + $fg‘s_uÆocked + (* +__»¡riù + +__s +,  +__n +, + +588 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +592 #ià +defšed + +__USE_XOPEN2K8 + || + `__GLIBC_USE + ( +LIB_EXT2 +) + +603 +_IO_ssize_t + + $__g‘d–im + (** +__»¡riù + +__lš•Œ +, + +604 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +605 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +606 +_IO_ssize_t + + $g‘d–im + (** +__»¡riù + +__lš•Œ +, + +607 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +608 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +616 +_IO_ssize_t + + $g‘lše + (** +__»¡riù + +__lš•Œ +, + +617 +size_t + * +__»¡riù + +__n +, + +618 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +626  + `åuts + (cÚ¡ * +__»¡riù + +__s +, +FILE + *__»¡riù +__¡»am +); + +632  + `puts + (cÚ¡ * +__s +); + +639  + `ung‘c + ( +__c +, +FILE + * +__¡»am +); + +646 +size_t + + $ä—d + (* +__»¡riù + +__±r +, +size_t + +__size +, + +647 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +652 +size_t + + `fwr™e + (cÚ¡ * +__»¡riù + +__±r +, size_ˆ +__size +, + +653 +size_t + +__n +, +FILE + * +__»¡riù + +__s +); + +655 #ifdeà +__USE_GNU + + +662  + `åuts_uÆocked + (cÚ¡ * +__»¡riù + +__s +, + +663 +FILE + * +__»¡riù + +__¡»am +); + +666 #ifdeà +__USE_MISC + + +673 +size_t + + $ä—d_uÆocked + (* +__»¡riù + +__±r +, +size_t + +__size +, + +674 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +675 +size_t + + `fwr™e_uÆocked + (cÚ¡ * +__»¡riù + +__±r +, size_ˆ +__size +, + +676 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +); + +684  + `f£ek + ( +FILE + * +__¡»am +,  +__off +,  +__wh’û +); + +689  + $á–l + ( +FILE + * +__¡»am +è +__wur +; + +694  + `»wšd + ( +FILE + * +__¡»am +); + +701 #ià +defšed + +__USE_LARGEFILE + || defšed +__USE_XOPEN2K + + +702 #iâdeà +__USE_FILE_OFFSET64 + + +707  + `f£eko + ( +FILE + * +__¡»am +, +__off_t + +__off +,  +__wh’û +); + +712 +__off_t + + $á–lo + ( +FILE + * +__¡»am +è +__wur +; + +714 #ifdeà +__REDIRECT + + +715  + `__REDIRECT + ( +f£eko +, + +716 ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +), + +717 +f£eko64 +); + +718 +__off64_t + + `__REDIRECT + ( +á–lo +, ( +FILE + * +__¡»am +), +á–lo64 +); + +720  + #f£eko + +f£eko64 + + + ) + +721  + #á–lo + +á–lo64 + + + ) + +726 #iâdeà +__USE_FILE_OFFSET64 + + +731  + `fg‘pos + ( +FILE + * +__»¡riù + +__¡»am +, +åos_t + *__»¡riù +__pos +); + +736  + `f£os + ( +FILE + * +__¡»am +, cÚ¡ +åos_t + * +__pos +); + +738 #ifdeà +__REDIRECT + + +739  + `__REDIRECT + ( +fg‘pos +, ( +FILE + * +__»¡riù + +__¡»am +, + +740 +åos_t + * +__»¡riù + +__pos +), +fg‘pos64 +); + +741  + `__REDIRECT + ( +f£os +, + +742 ( +FILE + * +__¡»am +, cÚ¡ +åos_t + * +__pos +), +f£os64 +); + +744  + #fg‘pos + +fg‘pos64 + + + ) + +745  + #f£os + +f£os64 + + + ) + +749 #ifdeà +__USE_LARGEFILE64 + + +750  + `f£eko64 + ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +); + +751 +__off64_t + + $á–lo64 + ( +FILE + * +__¡»am +è +__wur +; + +752  + `fg‘pos64 + ( +FILE + * +__»¡riù + +__¡»am +, +åos64_t + *__»¡riù +__pos +); + +753  + `f£os64 + ( +FILE + * +__¡»am +, cÚ¡ +åos64_t + * +__pos +); + +757  + $þ—»¼ + ( +FILE + * +__¡»am +è +__THROW +; + +759  + $ãof + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +761  + $ã¼Ü + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +763 #ifdeà +__USE_MISC + + +765  + $þ—»¼_uÆocked + ( +FILE + * +__¡»am +è +__THROW +; + +766  + $ãof_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +767  + $ã¼Ü_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +775  + `³¼Ü + (cÚ¡ * +__s +); + +781  + ~ + +784 #ifdef +__USE_POSIX + + +786  + $fž’o + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +789 #ifdeà +__USE_MISC + + +791  + $fž’o_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +795 #ifdeà +__USE_POSIX2 + + +800 +FILE + * + $pݒ + (cÚ¡ * +__commªd +, cÚ¡ * +__modes +è +__wur +; + +806  + `pþo£ + ( +FILE + * +__¡»am +); + +810 #ifdef +__USE_POSIX + + +812 * + $ù”mid + (* +__s +è +__THROW +; + +816 #ià( +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K +è|| defšed +__USE_GNU + + +818 * + `cu£rid + (* +__s +); + +822 #ifdef +__USE_GNU + + +823  +ob¡ack +; + +826  + $ob¡ack_´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +827 cÚ¡ * +__»¡riù + +__fÜm© +, ...) + +828 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +829  + $ob¡ack_v´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +830 cÚ¡ * +__»¡riù + +__fÜm© +, + +831 +_G_va_li¡ + +__¬gs +) + +832 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +836 #ifdeà +__USE_POSIX199506 + + +840  + $æockfže + ( +FILE + * +__¡»am +è +__THROW +; + +844  + $árylockfže + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +847  + $fuÆockfže + ( +FILE + * +__¡»am +è +__THROW +; + +850 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K + && !defšed +__USE_GNU + + +853  + ~ + +858 #ifdeà +__USE_EXTERN_INLINES + + +859  + ~ + +861 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +862  + ~ + +864 #ifdeà +__LDBL_COMPAT + + +865  + ~ + +868 +__END_DECLS + + + @/usr/include/stdlib.h + +22 #iâdef +_STDLIB_H + + +24  + #__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION + + + ) + +25  + ~ + +28  + #__Ãed_size_t + + + ) + +29  + #__Ãed_wch¬_t + + + ) + +30  + #__Ãed_NULL + + + ) + +31  + ~<¡ddef.h +> + +33 + g__BEGIN_DECLS + + +35  + #_STDLIB_H + 1 + + ) + +37 #ià( +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 +è&& !defšed +_SYS_WAIT_H + + +39  + ~ + +40  + ~ + +43  + #WEXITSTATUS +( +¡©us +è + `__WEXITSTATUS + (¡©us) + + ) + +44  + #WTERMSIG +( +¡©us +è + `__WTERMSIG + (¡©us) + + ) + +45  + #WSTOPSIG +( +¡©us +è + `__WSTOPSIG + (¡©us) + + ) + +46  + #WIFEXITED +( +¡©us +è + `__WIFEXITED + (¡©us) + + ) + +47  + #WIFSIGNALED +( +¡©us +è + `__WIFSIGNALED + (¡©us) + + ) + +48  + #WIFSTOPPED +( +¡©us +è + `__WIFSTOPPED + (¡©us) + + ) + +49 #ifdeà +__WIFCONTINUED + + +50  + #WIFCONTINUED +( +¡©us +è + `__WIFCONTINUED + (¡©us) + + ) + +55  + ~ + +60  + mquÙ +; + +61  + m»m +; + +62 } + tdiv_t +; + +65 #iâdeà +__ldiv_t_defšed + + +68  + mquÙ +; + +69  + m»m +; + +70 } + tldiv_t +; + +71  + #__ldiv_t_defšed + 1 + + ) + +74 #ià +defšed + +__USE_ISOC99 + && !defšed +__Îdiv_t_defšed + + +76 +__ex‹nsiÚ__ + struct + +78  + mquÙ +; + +79  + m»m +; + +80 } + tÎdiv_t +; + +81  + #__Îdiv_t_defšed + 1 + + ) + +86  + #RAND_MAX + 2147483647 + + ) + +91  + #EXIT_FAILURE + 1 + + ) + +92  + #EXIT_SUCCESS + 0 + + ) + +96  + #MB_CUR_MAX + ( + `__ùy³_g‘_mb_cur_max + ()) + + ) + +97 +size_t + + $__ùy³_g‘_mb_cur_max + (è +__THROW + +__wur +; + +101  + $©of + (cÚ¡ * +__Ō +) + +102 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +104  + $©oi + (cÚ¡ * +__Ō +) + +105 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +107  + $©Þ + (cÚ¡ * +__Ō +) + +108 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +110 #ifdeà +__USE_ISOC99 + + +112 +__ex‹nsiÚ__ +  + $©Þl + (cÚ¡ * +__Ō +) + +113 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +117  + $¡¹od + (cÚ¡ * +__»¡riù + +__Ō +, + +118 ** +__»¡riù + +__’d±r +) + +119 +__THROW + + `__nÚnuÎ + ((1)); + +121 #ifdef +__USE_ISOC99 + + +123  + $¡¹of + (cÚ¡ * +__»¡riù + +__Ō +, + +124 ** +__»¡riù + +__’d±r +è +__THROW + + `__nÚnuÎ + ((1)); + +126  + $¡¹Þd + (cÚ¡ * +__»¡riù + +__Ō +, + +127 ** +__»¡riù + +__’d±r +) + +128 +__THROW + + `__nÚnuÎ + ((1)); + +133 #ià +__HAVE_FLOAT16 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +134 +_Flßt16 + + $¡¹of16 + (cÚ¡ * +__»¡riù + +__Ō +, + +135 ** +__»¡riù + +__’d±r +) + +136 +__THROW + + `__nÚnuÎ + ((1)); + +139 #ià +__HAVE_FLOAT32 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +140 +_Flßt32 + + $¡¹of32 + (cÚ¡ * +__»¡riù + +__Ō +, + +141 ** +__»¡riù + +__’d±r +) + +142 +__THROW + + `__nÚnuÎ + ((1)); + +145 #ià +__HAVE_FLOAT64 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +146 +_Flßt64 + + $¡¹of64 + (cÚ¡ * +__»¡riù + +__Ō +, + +147 ** +__»¡riù + +__’d±r +) + +148 +__THROW + + `__nÚnuÎ + ((1)); + +151 #ià +__HAVE_FLOAT128 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +152 +_Flßt128 + + $¡¹of128 + (cÚ¡ * +__»¡riù + +__Ō +, + +153 ** +__»¡riù + +__’d±r +) + +154 +__THROW + + `__nÚnuÎ + ((1)); + +157 #ià +__HAVE_FLOAT32X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +158 +_Flßt32x + + $¡¹of32x + (cÚ¡ * +__»¡riù + +__Ō +, + +159 ** +__»¡riù + +__’d±r +) + +160 +__THROW + + `__nÚnuÎ + ((1)); + +163 #ià +__HAVE_FLOAT64X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +164 +_Flßt64x + + $¡¹of64x + (cÚ¡ * +__»¡riù + +__Ō +, + +165 ** +__»¡riù + +__’d±r +) + +166 +__THROW + + `__nÚnuÎ + ((1)); + +169 #ià +__HAVE_FLOAT128X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +170 +_Flßt128x + + $¡¹of128x + (cÚ¡ * +__»¡riù + +__Ō +, + +171 ** +__»¡riù + +__’d±r +) + +172 +__THROW + + `__nÚnuÎ + ((1)); + +176  + $¡¹Þ + (cÚ¡ * +__»¡riù + +__Ō +, + +177 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +178 +__THROW + + `__nÚnuÎ + ((1)); + +180  + $¡¹oul + (cÚ¡ * +__»¡riù + +__Ō +, + +181 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +182 +__THROW + + `__nÚnuÎ + ((1)); + +184 #ifdeà +__USE_MISC + + +186 +__ex‹nsiÚ__ + + +187  + $¡¹oq + (cÚ¡ * +__»¡riù + +__Ō +, + +188 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +189 +__THROW + + `__nÚnuÎ + ((1)); + +191 +__ex‹nsiÚ__ + + +192  + $¡¹ouq + (cÚ¡ * +__»¡riù + +__Ō +, + +193 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +194 +__THROW + + `__nÚnuÎ + ((1)); + +197 #ifdeà +__USE_ISOC99 + + +199 +__ex‹nsiÚ__ + + +200  + $¡¹Þl + (cÚ¡ * +__»¡riù + +__Ō +, + +201 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +202 +__THROW + + `__nÚnuÎ + ((1)); + +204 +__ex‹nsiÚ__ + + +205  + $¡¹ouÎ + (cÚ¡ * +__»¡riù + +__Ō +, + +206 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +207 +__THROW + + `__nÚnuÎ + ((1)); + +211 #ià + `__GLIBC_USE + ( +IEC_60559_BFP_EXT +) + +212  + $¡räomd + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +213  +__f +) + +214 +__THROW + + `__nÚnuÎ + ((3)); + +216  + $¡räomf + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +217  +__f +) + +218 +__THROW + + `__nÚnuÎ + ((3)); + +220  + $¡räoml + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +221  +__f +) + +222 +__THROW + + `__nÚnuÎ + ((3)); + +225 #ià +__HAVE_FLOAT16 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +226  + $¡räomf16 + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +227 +_Flßt16 + +__f +) + +228 +__THROW + + `__nÚnuÎ + ((3)); + +231 #ià +__HAVE_FLOAT32 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +232  + $¡räomf32 + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +233 +_Flßt32 + +__f +) + +234 +__THROW + + `__nÚnuÎ + ((3)); + +237 #ià +__HAVE_FLOAT64 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +238  + $¡räomf64 + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +239 +_Flßt64 + +__f +) + +240 +__THROW + + `__nÚnuÎ + ((3)); + +243 #ià +__HAVE_FLOAT128 + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +244  + $¡räomf128 + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +245 +_Flßt128 + +__f +) + +246 +__THROW + + `__nÚnuÎ + ((3)); + +249 #ià +__HAVE_FLOAT32X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +250  + $¡räomf32x + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +251 +_Flßt32x + +__f +) + +252 +__THROW + + `__nÚnuÎ + ((3)); + +255 #ià +__HAVE_FLOAT64X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +256  + $¡räomf64x + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +257 +_Flßt64x + +__f +) + +258 +__THROW + + `__nÚnuÎ + ((3)); + +261 #ià +__HAVE_FLOAT128X + && + `__GLIBC_USE + ( +IEC_60559_TYPES_EXT +) + +262  + $¡räomf128x + (* +__de¡ +, +size_t + +__size +, cÚ¡ * +__fÜm© +, + +263 +_Flßt128x + +__f +) + +264 +__THROW + + `__nÚnuÎ + ((3)); + +268 #ifdeà +__USE_GNU + + +272  + ~ + +274  + $¡¹Þ_l + (cÚ¡ * +__»¡riù + +__Ō +, + +275 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +276 +loÿË_t + +__loc +è +__THROW + + `__nÚnuÎ + ((1, 4)); + +278  + $¡¹oul_l + (cÚ¡ * +__»¡riù + +__Ō +, + +279 ** +__»¡riù + +__’d±r +, + +280  +__ba£ +, +loÿË_t + +__loc +) + +281 +__THROW + + `__nÚnuÎ + ((1, 4)); + +283 +__ex‹nsiÚ__ + + +284  + $¡¹Þl_l + (cÚ¡ * +__»¡riù + +__Ō +, + +285 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +286 +loÿË_t + +__loc +) + +287 +__THROW + + `__nÚnuÎ + ((1, 4)); + +289 +__ex‹nsiÚ__ + + +290  + $¡¹ouÎ_l + (cÚ¡ * +__»¡riù + +__Ō +, + +291 ** +__»¡riù + +__’d±r +, + +292  +__ba£ +, +loÿË_t + +__loc +) + +293 +__THROW + + `__nÚnuÎ + ((1, 4)); + +295  + $¡¹od_l + (cÚ¡ * +__»¡riù + +__Ō +, + +296 ** +__»¡riù + +__’d±r +, +loÿË_t + +__loc +) + +297 +__THROW + + `__nÚnuÎ + ((1, 3)); + +299  + $¡¹of_l + (cÚ¡ * +__»¡riù + +__Ō +, + +300 ** +__»¡riù + +__’d±r +, +loÿË_t + +__loc +) + +301 +__THROW + + `__nÚnuÎ + ((1, 3)); + +303  + $¡¹Þd_l + (cÚ¡ * +__»¡riù + +__Ō +, + +304 ** +__»¡riù + +__’d±r +, + +305 +loÿË_t + +__loc +) + +306 +__THROW + + `__nÚnuÎ + ((1, 3)); + +308 #ià +__HAVE_FLOAT16 + + +309 +_Flßt16 + + $¡¹of16_l + (cÚ¡ * +__»¡riù + +__Ō +, + +310 ** +__»¡riù + +__’d±r +, + +311 +loÿË_t + +__loc +) + +312 +__THROW + + `__nÚnuÎ + ((1, 3)); + +315 #ià +__HAVE_FLOAT32 + + +316 +_Flßt32 + + $¡¹of32_l + (cÚ¡ * +__»¡riù + +__Ō +, + +317 ** +__»¡riù + +__’d±r +, + +318 +loÿË_t + +__loc +) + +319 +__THROW + + `__nÚnuÎ + ((1, 3)); + +322 #ià +__HAVE_FLOAT64 + + +323 +_Flßt64 + + $¡¹of64_l + (cÚ¡ * +__»¡riù + +__Ō +, + +324 ** +__»¡riù + +__’d±r +, + +325 +loÿË_t + +__loc +) + +326 +__THROW + + `__nÚnuÎ + ((1, 3)); + +329 #ià +__HAVE_FLOAT128 + + +330 +_Flßt128 + + $¡¹of128_l + (cÚ¡ * +__»¡riù + +__Ō +, + +331 ** +__»¡riù + +__’d±r +, + +332 +loÿË_t + +__loc +) + +333 +__THROW + + `__nÚnuÎ + ((1, 3)); + +336 #ià +__HAVE_FLOAT32X + + +337 +_Flßt32x + + $¡¹of32x_l + (cÚ¡ * +__»¡riù + +__Ō +, + +338 ** +__»¡riù + +__’d±r +, + +339 +loÿË_t + +__loc +) + +340 +__THROW + + `__nÚnuÎ + ((1, 3)); + +343 #ià +__HAVE_FLOAT64X + + +344 +_Flßt64x + + $¡¹of64x_l + (cÚ¡ * +__»¡riù + +__Ō +, + +345 ** +__»¡riù + +__’d±r +, + +346 +loÿË_t + +__loc +) + +347 +__THROW + + `__nÚnuÎ + ((1, 3)); + +350 #ià +__HAVE_FLOAT128X + + +351 +_Flßt128x + + $¡¹of128x_l + (cÚ¡ * +__»¡riù + +__Ō +, + +352 ** +__»¡riù + +__’d±r +, + +353 +loÿË_t + +__loc +) + +354 +__THROW + + `__nÚnuÎ + ((1, 3)); + +359 #ifdeà +__USE_EXTERN_INLINES + + +360 +__ex‹º_šlše +  + +361 + `__NTH + ( + $©oi + (cÚ¡ * +__Ō +)) + +363  (è + `¡¹Þ + ( +__Ō +, (**è +NULL +, 10); + +364 + } +} + +365 +__ex‹º_šlše +  + +366 +__NTH + ( + $©Þ + (cÚ¡ * +__Ō +)) + +368  + `¡¹Þ + ( +__Ō +, (**è +NULL +, 10); + +369 + } +} + +371 #ifdeà +__USE_ISOC99 + + +372 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +373 +__NTH + ( + $©Þl + (cÚ¡ * +__Ō +)) + +375  + `¡¹Þl + ( +__Ō +, (**è +NULL +, 10); + +376 + } +} + +381 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + + +385 * + $l64a + ( +__n +è +__THROW + +__wur +; + +388  + $a64l + (cÚ¡ * +__s +) + +389 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +393 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + + +394  + ~ + +401  + $¿ndom + (è +__THROW +; + +404  + $¤ªdom + ( +__£ed +è +__THROW +; + +410 * + $š™¡©e + ( +__£ed +, * +__¡©ebuf +, + +411 +size_t + +__¡©–’ +è +__THROW + + `__nÚnuÎ + ((2)); + +415 * + $£t¡©e + (* +__¡©ebuf +è +__THROW + + `__nÚnuÎ + ((1)); + +418 #ifdeà +__USE_MISC + + +423  + s¿ndom_d©a + + +425 +št32_t + * +åŒ +; + +426 +št32_t + * +½Œ +; + +427 +št32_t + * +¡©e +; + +428  +¿nd_ty³ +; + +429  +¿nd_deg +; + +430  +¿nd_£p +; + +431 +št32_t + * +’d_±r +; + +434  + $¿ndom_r + ( +¿ndom_d©a + * +__»¡riù + +__buf +, + +435 +št32_t + * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +437  + $¤ªdom_r + ( +__£ed +,  +¿ndom_d©a + * +__buf +) + +438 +__THROW + + `__nÚnuÎ + ((2)); + +440  + $š™¡©e_r + ( +__£ed +, * +__»¡riù + +__¡©ebuf +, + +441 +size_t + +__¡©–’ +, + +442  +¿ndom_d©a + * +__»¡riù + +__buf +) + +443 +__THROW + + `__nÚnuÎ + ((2, 4)); + +445  + $£t¡©e_r + (* +__»¡riù + +__¡©ebuf +, + +446  +¿ndom_d©a + * +__»¡riù + +__buf +) + +447 +__THROW + + `__nÚnuÎ + ((1, 2)); + +453  + $¿nd + (è +__THROW +; + +455  + $¤ªd + ( +__£ed +è +__THROW +; + +457 #ifdeà +__USE_POSIX199506 + + +459  + $¿nd_r + (* +__£ed +è +__THROW +; + +463 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +467  + $d¿nd48 + (è +__THROW +; + +468  + $”ªd48 + ( +__xsubi +[3]è +__THROW + + `__nÚnuÎ + ((1)); + +471  + $̪d48 + (è +__THROW +; + +472  + $Īd48 + ( +__xsubi +[3]) + +473 +__THROW + + `__nÚnuÎ + ((1)); + +476  + $m¿nd48 + (è +__THROW +; + +477  + $j¿nd48 + ( +__xsubi +[3]) + +478 +__THROW + + `__nÚnuÎ + ((1)); + +481  + $¤ªd48 + ( +__£edv® +è +__THROW +; + +482 * + $£ed48 + ( +__£ed16v +[3]) + +483 +__THROW + + `__nÚnuÎ + ((1)); + +484  + $lcÚg48 + ( +__·¿m +[7]è +__THROW + + `__nÚnuÎ + ((1)); + +486 #ifdeà +__USE_MISC + + +490  + sd¿nd48_d©a + + +492  +__x +[3]; + +493  +__Þd_x +[3]; + +494  +__c +; + +495  +__š™ +; + +496 +__ex‹nsiÚ__ +  +__a +; + +501  + $d¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +502 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +503  + $”ªd48_r + ( +__xsubi +[3], + +504  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +505 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +508  + $̪d48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +509 * +__»¡riù + +__»suÉ +) + +510 +__THROW + + `__nÚnuÎ + ((1, 2)); + +511  + $Īd48_r + ( +__xsubi +[3], + +512  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +513 * +__»¡riù + +__»suÉ +) + +514 +__THROW + + `__nÚnuÎ + ((1, 2)); + +517  + $m¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +518 * +__»¡riù + +__»suÉ +) + +519 +__THROW + + `__nÚnuÎ + ((1, 2)); + +520  + $j¿nd48_r + ( +__xsubi +[3], + +521  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +522 * +__»¡riù + +__»suÉ +) + +523 +__THROW + + `__nÚnuÎ + ((1, 2)); + +526  + $¤ªd48_r + ( +__£edv® +,  +d¿nd48_d©a + * +__bufãr +) + +527 +__THROW + + `__nÚnuÎ + ((2)); + +529  + $£ed48_r + ( +__£ed16v +[3], + +530  +d¿nd48_d©a + * +__bufãr +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +532  + $lcÚg48_r + ( +__·¿m +[7], + +533  +d¿nd48_d©a + * +__bufãr +) + +534 +__THROW + + `__nÚnuÎ + ((1, 2)); + +539 * + $m®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +541 * + $ÿÎoc + ( +size_t + +__nmemb +, size_ˆ +__size +) + +542 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +549 * + $»®loc + (* +__±r +, +size_t + +__size +) + +550 +__THROW + +__©Œibu‹_w¬n_unu£d_»suÉ__ +; + +552 #ifdeà +__USE_GNU + + +558 * + $»®loÿ¼ay + (* +__±r +, +size_t + +__nmemb +, size_ˆ +__size +) + +559 +__THROW + +__©Œibu‹_w¬n_unu£d_»suÉ__ +; + +563  + $ä“ + (* +__±r +è +__THROW +; + +565 #ifdeà +__USE_MISC + + +566  + ~<®loÿ.h +> + +569 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +570 || +defšed + +__USE_MISC + + +572 * + $v®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +575 #ifdeà +__USE_XOPEN2K + + +577  + $posix_mem®ign + (** +__mem±r +, +size_t + +__®ignm’t +, size_ˆ +__size +) + +578 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +581 #ifdeà +__USE_ISOC11 + + +583 * + $®igÃd_®loc + ( +size_t + +__®ignm’t +, size_ˆ +__size +) + +584 +__THROW + +__©Œibu‹_m®loc__ + + `__©Œibu‹_®loc_size__ + ((2)è +__wur +; + +588  + $abÜt + (è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +592  + $©ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +594 #ià +defšed + +__USE_ISOC11 + || defšed +__USE_ISOCXX11 + + +596 #ifdeà +__ýlu¥lus + + +597 "C++"  + $©_quick_ex™ + ((* +__func +) ()) + +598 +__THROW + + `__asm + ("©_quick_ex™"è + `__nÚnuÎ + ((1)); + +600  + $©_quick_ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +604 #ifdef +__USE_MISC + + +607  + $Ú_ex™ + ((* +__func +è( +__¡©us +, * +__¬g +), *__arg) + +608 +__THROW + + `__nÚnuÎ + ((1)); + +614  + $ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +616 #ià +defšed + +__USE_ISOC11 + || defšed +__USE_ISOCXX11 + + +620  + $quick_ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +623 #ifdeà +__USE_ISOC99 + + +626  + $_Ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +631 * + $g‘’v + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +633 #ifdeà +__USE_GNU + + +636 * + $£cu»_g‘’v + (cÚ¡ * +__Çme +) + +637 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +640 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +644  + $pu‹nv + (* +__¡ršg +è +__THROW + + `__nÚnuÎ + ((1)); + +647 #ifdeà +__USE_XOPEN2K + + +650  + $£‹nv + (cÚ¡ * +__Çme +, cÚ¡ * +__v®ue +,  +__»¶aû +) + +651 +__THROW + + `__nÚnuÎ + ((2)); + +654  + $un£‹nv + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +657 #ifdef +__USE_MISC + + +661  + $þ—»nv + (è +__THROW +; + +665 #ià +defšed + +__USE_MISC + \ + +666 || ( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) + +672 * + $mk‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)); + +675 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +684 #iâdeà +__USE_FILE_OFFSET64 + + +685  + $mk¡emp + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +687 #ifdeà +__REDIRECT + + +688  + `__REDIRECT + ( +mk¡emp +, (* +__‹m¶©e +), +mk¡emp64 +) + +689 + `__nÚnuÎ + ((1)è +__wur +; + +691  + #mk¡emp + +mk¡emp64 + + + ) + +694 #ifdeà +__USE_LARGEFILE64 + + +695  + $mk¡emp64 + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +699 #ifdeà +__USE_MISC + + +706 #iâdeà +__USE_FILE_OFFSET64 + + +707  + $mk¡emps + (* +__‹m¶©e +,  +__suffixËn +è + `__nÚnuÎ + ((1)è +__wur +; + +709 #ifdeà +__REDIRECT + + +710  + `__REDIRECT + ( +mk¡emps +, (* +__‹m¶©e +,  +__suffixËn +), + +711 +mk¡emps64 +è + `__nÚnuÎ + ((1)è +__wur +; + +713  + #mk¡emps + +mk¡emps64 + + + ) + +716 #ifdeà +__USE_LARGEFILE64 + + +717  + $mk¡emps64 + (* +__‹m¶©e +,  +__suffixËn +) + +718 + `__nÚnuÎ + ((1)è +__wur +; + +722 #ifdeà +__USE_XOPEN2K8 + + +728 * + $mkd‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +731 #ifdeà +__USE_GNU + + +738 #iâdeà +__USE_FILE_OFFSET64 + + +739  + $mko¡emp + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +741 #ifdeà +__REDIRECT + + +742  + `__REDIRECT + ( +mko¡emp +, (* +__‹m¶©e +,  +__æags +), +mko¡emp64 +) + +743 + `__nÚnuÎ + ((1)è +__wur +; + +745  + #mko¡emp + +mko¡emp64 + + + ) + +748 #ifdeà +__USE_LARGEFILE64 + + +749  + $mko¡emp64 + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +758 #iâdeà +__USE_FILE_OFFSET64 + + +759  + $mko¡emps + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +760 + `__nÚnuÎ + ((1)è +__wur +; + +762 #ifdeà +__REDIRECT + + +763  + `__REDIRECT + ( +mko¡emps +, (* +__‹m¶©e +,  +__suffixËn +, + +764  +__æags +), +mko¡emps64 +) + +765 + `__nÚnuÎ + ((1)è +__wur +; + +767  + #mko¡emps + +mko¡emps64 + + + ) + +770 #ifdeà +__USE_LARGEFILE64 + + +771  + $mko¡emps64 + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +772 + `__nÚnuÎ + ((1)è +__wur +; + +781  + $sy¡em + (cÚ¡ * +__commªd +è +__wur +; + +784 #ifdef +__USE_GNU + + +787 * + $ÿnÚiÿlize_fže_Çme + (cÚ¡ * +__Çme +) + +788 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +791 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + + +797 * + $»®·th + (cÚ¡ * +__»¡riù + +__Çme +, + +798 * +__»¡riù + +__»sÞved +è +__THROW + +__wur +; + +803 #iâdeà +__COMPAR_FN_T + + +804  + #__COMPAR_FN_T + + + ) + +805 (* + t__com·r_â_t +) (const *, const *); + +807 #ifdef +__USE_GNU + + +808  +__com·r_â_t + + tcom·risÚ_â_t +; + +811 #ifdeà +__USE_GNU + + +812 (* + t__com·r_d_â_t +) (const *, const *, *); + +817 * + $b£¬ch + (cÚ¡ * +__key +, cÚ¡ * +__ba£ +, + +818 +size_t + +__nmemb +, size_ˆ +__size +, +__com·r_â_t + +__com·r +) + +819 + `__nÚnuÎ + ((1, 2, 5)è +__wur +; + +821 #ifdeà +__USE_EXTERN_INLINES + + +822  + ~ + +827  + $qsÜt + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +828 +__com·r_â_t + +__com·r +è + `__nÚnuÎ + ((1, 4)); + +829 #ifdeà +__USE_GNU + + +830  + $qsÜt_r + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +831 +__com·r_d_â_t + +__com·r +, * +__¬g +) + +832 + `__nÚnuÎ + ((1, 4)); + +837  + $abs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +838  + $Ïbs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +840 #ifdeà +__USE_ISOC99 + + +841 +__ex‹nsiÚ__ +  + $Îabs + ( +__x +) + +842 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +849 +div_t + + $div + ( +__num” +,  +__d’om +) + +850 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +851 +ldiv_t + + $ldiv + ( +__num” +,  +__d’om +) + +852 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +854 #ifdeà +__USE_ISOC99 + + +855 +__ex‹nsiÚ__ + +Îdiv_t + + $Îdiv + ( +__num” +, + +856  +__d’om +) + +857 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +861 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +862 || +defšed + +__USE_MISC + + +869 * + $ecvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +870 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +875 * + $fcvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +876 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +881 * + $gcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +882 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +885 #ifdeà +__USE_MISC + + +887 * + $qecvt + ( +__v®ue +,  +__ndig™ +, + +888 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +889 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +890 * + $qfcvt + ( +__v®ue +,  +__ndig™ +, + +891 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +892 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +893 * + $qgcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +894 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +899  + $ecvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +900 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +901 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +902  + $fcvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +903 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +904 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +906  + $qecvt_r + ( +__v®ue +,  +__ndig™ +, + +907 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +908 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +909 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +910  + $qfcvt_r + ( +__v®ue +,  +__ndig™ +, + +911 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +912 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +913 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +919  + $mbËn + (cÚ¡ * +__s +, +size_t + +__n +è +__THROW +; + +922  + $mbtowc + ( +wch¬_t + * +__»¡riù + +__pwc +, + +923 cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +è +__THROW +; + +926  + $wùomb + (* +__s +, +wch¬_t + +__wch¬ +è +__THROW +; + +930 +size_t + + $mb¡owcs + ( +wch¬_t + * +__»¡riù + +__pwcs +, + +931 cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +è +__THROW +; + +933 +size_t + + $wc¡ombs + (* +__»¡riù + +__s +, + +934 cÚ¡ +wch¬_t + * +__»¡riù + +__pwcs +, +size_t + +__n +) + +935 +__THROW +; + +938 #ifdeà +__USE_MISC + + +943  + $½m©ch + (cÚ¡ * +__»¥Ú£ +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +947 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +954  + $g‘subÝt + (** +__»¡riù + +__ÝtiÚp +, + +955 *cÚ¡ * +__»¡riù + +__tok’s +, + +956 ** +__»¡riù + +__v®u• +) + +957 +__THROW + + `__nÚnuÎ + ((1, 2, 3)è +__wur +; + +961 #ifdeà +__USE_XOPEN + + +963  + $£tkey + (cÚ¡ * +__key +è +__THROW + + `__nÚnuÎ + ((1)); + +969 #ifdeà +__USE_XOPEN2KXSI + + +971  + $posix_ݒ± + ( +__oæag +è +__wur +; + +974 #ifdeà +__USE_XOPEN_EXTENDED + + +979  + $g¿Á± + ( +__fd +è +__THROW +; + +983  + $uÆock± + ( +__fd +è +__THROW +; + +988 * + $±¢ame + ( +__fd +è +__THROW + +__wur +; + +991 #ifdeà +__USE_GNU + + +995  + $±¢ame_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +) + +996 +__THROW + + `__nÚnuÎ + ((2)); + +999  + `g‘± + (); + +1002 #ifdeà +__USE_MISC + + +1006  + $g‘lßdavg + ( +__lßdavg +[],  +__ÃËm +) + +1007 +__THROW + + `__nÚnuÎ + ((1)); + +1010 #ià +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K + + +1013  + $‰y¦Ù + (è +__THROW +; + +1016  + ~ + +1019 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +1020  + ~ + +1022 #ifdeà +__LDBL_COMPAT + + +1023  + ~ + +1026 +__END_DECLS + + + @/usr/include/alloca.h + +18 #iâdef +_ALLOCA_H + + +19  + #_ALLOCA_H + 1 + + ) + +21  + ~<ã©u»s.h +> + +23  + #__Ãed_size_t + + + ) + +24  + ~<¡ddef.h +> + +26 + g__BEGIN_DECLS + + +29 #undeà +®loÿ + + +32 * + $®loÿ + ( +size_t + +__size +è +__THROW +; + +34 #ifdef +__GNUC__ + + +35  + #®loÿ +( +size +è + `__bužtš_®loÿ + (size) + + ) + +38 +__END_DECLS + + + @/usr/include/features.h + +18 #iâdef +_FEATURES_H + + +19  + #_FEATURES_H + 1 + + ) + +119 #undeà +__USE_ISOC11 + + +120 #undeà +__USE_ISOC99 + + +121 #undeà +__USE_ISOC95 + + +122 #undeà +__USE_ISOCXX11 + + +123 #undeà +__USE_POSIX + + +124 #undeà +__USE_POSIX2 + + +125 #undeà +__USE_POSIX199309 + + +126 #undeà +__USE_POSIX199506 + + +127 #undeà +__USE_XOPEN + + +128 #undeà +__USE_XOPEN_EXTENDED + + +129 #undeà +__USE_UNIX98 + + +130 #undeà +__USE_XOPEN2K + + +131 #undeà +__USE_XOPEN2KXSI + + +132 #undeà +__USE_XOPEN2K8 + + +133 #undeà +__USE_XOPEN2K8XSI + + +134 #undeà +__USE_LARGEFILE + + +135 #undeà +__USE_LARGEFILE64 + + +136 #undeà +__USE_FILE_OFFSET64 + + +137 #undeà +__USE_MISC + + +138 #undeà +__USE_ATFILE + + +139 #undeà +__USE_GNU + + +140 #undeà +__USE_FORTIFY_LEVEL + + +141 #undeà +__KERNEL_STRICT_NAMES + + +142 #undeà +__GLIBC_USE_DEPRECATED_GETS + + +146 #iâdeà +_LOOSE_KERNEL_NAMES + + +147  + #__KERNEL_STRICT_NAMES + + + ) + +157 #ià +defšed + +__GNUC__ + && defšed +__GNUC_MINOR__ + + +158  + #__GNUC_PREREQ +( +maj +, +mš +) \ + +159 (( +__GNUC__ + << 16è+ +__GNUC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +161  + #__GNUC_PREREQ +( +maj +, +mš +è0 + + ) + +168 #ià +defšed + +__þªg_majÜ__ + && defšed +__þªg_mšÜ__ + + +169  + #__glibc_þªg_´”eq +( +maj +, +mš +) \ + +170 (( +__þªg_majÜ__ + << 16è+ +__þªg_mšÜ__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +172  + #__glibc_þªg_´”eq +( +maj +, +mš +è0 + + ) + +176  + #__GLIBC_USE +( +F +è +__GLIBC_USE_ + ## + ) +F + +182 #ià( +defšed + +_BSD_SOURCE + || defšed +_SVID_SOURCE +) \ + +183 && ! +defšed + + g_DEFAULT_SOURCE + + +185 #undeà +_DEFAULT_SOURCE + + +186  + #_DEFAULT_SOURCE + 1 + + ) + +190 #ifdeà +_GNU_SOURCE + + +191 #undeà +_ISOC95_SOURCE + + +192  + #_ISOC95_SOURCE + 1 + + ) + +193 #undeà +_ISOC99_SOURCE + + +194  + #_ISOC99_SOURCE + 1 + + ) + +195 #undeà +_ISOC11_SOURCE + + +196  + #_ISOC11_SOURCE + 1 + + ) + +197 #undeà +_POSIX_SOURCE + + +198  + #_POSIX_SOURCE + 1 + + ) + +199 #undeà +_POSIX_C_SOURCE + + +200  + #_POSIX_C_SOURCE + 200809L + + ) + +201 #undeà +_XOPEN_SOURCE + + +202  + #_XOPEN_SOURCE + 700 + + ) + +203 #undeà +_XOPEN_SOURCE_EXTENDED + + +204  + #_XOPEN_SOURCE_EXTENDED + 1 + + ) + +205 #undeà +_LARGEFILE64_SOURCE + + +206  + #_LARGEFILE64_SOURCE + 1 + + ) + +207 #undeà +_DEFAULT_SOURCE + + +208  + #_DEFAULT_SOURCE + 1 + + ) + +209 #undeà +_ATFILE_SOURCE + + +210  + #_ATFILE_SOURCE + 1 + + ) + +215 #ià( +defšed + +_DEFAULT_SOURCE + \ + +216 || (! +defšed + + g__STRICT_ANSI__ + \ + +217 && ! +defšed + + g_ISOC99_SOURCE + \ + +218 && ! +defšed + + g_POSIX_SOURCE + && !defšed + g_POSIX_C_SOURCE + \ + +219 && ! +defšed + + g_XOPEN_SOURCE +)) + +220 #undeà +_DEFAULT_SOURCE + + +221  + #_DEFAULT_SOURCE + 1 + + ) + +225 #ià( +defšed + +_ISOC11_SOURCE + \ + +226 || ( +defšed + + g__STDC_VERSION__ + && __STDC_VERSION__ >= 201112L)) + +227  + #__USE_ISOC11 + 1 + + ) + +231 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC11_SOURCE + \ + +232 || ( +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L)) + +233  + #__USE_ISOC99 + 1 + + ) + +237 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC11_SOURCE + \ + +238 || ( +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199409L)) + +239  + #__USE_ISOC95 + 1 + + ) + +242 #ifdeà +__ýlu¥lus + + +244 #ià +__ýlu¥lus + >= 201703L + +245  + #__USE_ISOC11 + 1 + + ) + +249 #ià +__ýlu¥lus + >ð201103L || +defšed + +__GXX_EXPERIMENTAL_CXX0X__ + + +250  + #__USE_ISOCXX11 + 1 + + ) + +251  + #__USE_ISOC99 + 1 + + ) + +258 #ifdeà +_DEFAULT_SOURCE + + +259 #ià! +defšed + +_POSIX_SOURCE + && !defšed +_POSIX_C_SOURCE + + +260  + #__USE_POSIX_IMPLICITLY + 1 + + ) + +262 #undeà +_POSIX_SOURCE + + +263  + #_POSIX_SOURCE + 1 + + ) + +264 #undeà +_POSIX_C_SOURCE + + +265  + #_POSIX_C_SOURCE + 200809L + + ) + +268 #ià((! +defšed + +__STRICT_ANSI__ + \ + +269 || ( +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) >= 500)) \ + +270 && ! +defšed + +_POSIX_SOURCE + && !defšed +_POSIX_C_SOURCE +) + +271  + #_POSIX_SOURCE + 1 + + ) + +272 #ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 500 + +273  + #_POSIX_C_SOURCE + 2 + + ) + +274 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 600 + +275  + #_POSIX_C_SOURCE + 199506L + + ) + +276 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 700 + +277  + #_POSIX_C_SOURCE + 200112L + + ) + +279  + #_POSIX_C_SOURCE + 200809L + + ) + +281  + #__USE_POSIX_IMPLICITLY + 1 + + ) + +290 #ià((! +defšed + +_POSIX_C_SOURCE + || (_POSIX_C_SOURCE - 0) < 199506L) \ + +291 && ( +defšed + +_REENTRANT + || defšed +_THREAD_SAFE +)) + +292  + #_POSIX_SOURCE + 1 + + ) + +293 #undeà +_POSIX_C_SOURCE + + +294  + #_POSIX_C_SOURCE + 199506L + + ) + +297 #ià( +defšed + +_POSIX_SOURCE + \ + +298 || ( +defšed + +_POSIX_C_SOURCE + && _POSIX_C_SOURCE >= 1) \ + +299 || +defšed + +_XOPEN_SOURCE +) + +300  + #__USE_POSIX + 1 + + ) + +303 #ià +defšed + +_POSIX_C_SOURCE + && _POSIX_C_SOURCE >ð2 || defšed +_XOPEN_SOURCE + + +304  + #__USE_POSIX2 + 1 + + ) + +307 #ià +defšed + +_POSIX_C_SOURCE + && (_POSIX_C_SOURCE - 0) >= 199309L + +308  + #__USE_POSIX199309 + 1 + + ) + +311 #ià +defšed + +_POSIX_C_SOURCE + && (_POSIX_C_SOURCE - 0) >= 199506L + +312  + #__USE_POSIX199506 + 1 + + ) + +315 #ià +defšed + +_POSIX_C_SOURCE + && (_POSIX_C_SOURCE - 0) >= 200112L + +316  + #__USE_XOPEN2K + 1 + + ) + +317 #undeà +__USE_ISOC95 + + +318  + #__USE_ISOC95 + 1 + + ) + +319 #undeà +__USE_ISOC99 + + +320  + #__USE_ISOC99 + 1 + + ) + +323 #ià +defšed + +_POSIX_C_SOURCE + && (_POSIX_C_SOURCE - 0) >= 200809L + +324  + #__USE_XOPEN2K8 + 1 + + ) + +325 #undeà +_ATFILE_SOURCE + + +326  + #_ATFILE_SOURCE + 1 + + ) + +329 #ifdef +_XOPEN_SOURCE + + +330  + #__USE_XOPEN + 1 + + ) + +331 #ià( +_XOPEN_SOURCE + - 0) >= 500 + +332  + #__USE_XOPEN_EXTENDED + 1 + + ) + +333  + #__USE_UNIX98 + 1 + + ) + +334 #undeà +_LARGEFILE_SOURCE + + +335  + #_LARGEFILE_SOURCE + 1 + + ) + +336 #ià( +_XOPEN_SOURCE + - 0) >= 600 + +337 #ià( +_XOPEN_SOURCE + - 0) >= 700 + +338  + #__USE_XOPEN2K8 + 1 + + ) + +339  + #__USE_XOPEN2K8XSI + 1 + + ) + +341  + #__USE_XOPEN2K + 1 + + ) + +342  + #__USE_XOPEN2KXSI + 1 + + ) + +343 #undeà +__USE_ISOC95 + + +344  + #__USE_ISOC95 + 1 + + ) + +345 #undeà +__USE_ISOC99 + + +346  + #__USE_ISOC99 + 1 + + ) + +349 #ifdeà +_XOPEN_SOURCE_EXTENDED + + +350  + #__USE_XOPEN_EXTENDED + 1 + + ) + +355 #ifdeà +_LARGEFILE_SOURCE + + +356  + #__USE_LARGEFILE + 1 + + ) + +359 #ifdeà +_LARGEFILE64_SOURCE + + +360  + #__USE_LARGEFILE64 + 1 + + ) + +363 #ià +defšed + +_FILE_OFFSET_BITS + && _FILE_OFFSET_BITS == 64 + +364  + #__USE_FILE_OFFSET64 + 1 + + ) + +367 #ià +defšed + +_DEFAULT_SOURCE + + +368  + #__USE_MISC + 1 + + ) + +371 #ifdef +_ATFILE_SOURCE + + +372  + #__USE_ATFILE + 1 + + ) + +375 #ifdef +_GNU_SOURCE + + +376  + #__USE_GNU + 1 + + ) + +379 #ià +defšed + +_FORTIFY_SOURCE + && _FORTIFY_SOURCE > 0 \ + +380 && +__GNUC_PREREQ + (4, 1è&& +defšed + + g__OPTIMIZE__ + && __OPTIMIZE__ > 0 + +381 #ià +_FORTIFY_SOURCE + > 1 + +382  + #__USE_FORTIFY_LEVEL + 2 + + ) + +384  + #__USE_FORTIFY_LEVEL + 1 + + ) + +387  + #__USE_FORTIFY_LEVEL + 0 + + ) + +394 #ià +defšed + +__ýlu¥lus + ? __ýlu¥lu >ð201402L : defšed +__USE_ISOC11 + + +395  + #__GLIBC_USE_DEPRECATED_GETS + 0 + + ) + +397  + #__GLIBC_USE_DEPRECATED_GETS + 1 + + ) + +402  + ~<¡dc-´edef.h +> + +410 #undeà +__GNU_LIBRARY__ + + +411  + #__GNU_LIBRARY__ + 6 + + ) + +415  + #__GLIBC__ + 2 + + ) + +416  + #__GLIBC_MINOR__ + 27 + + ) + +418  + #__GLIBC_PREREQ +( +maj +, +mš +) \ + +419 (( +__GLIBC__ + << 16è+ +__GLIBC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +422 #iâdeà +__ASSEMBLER__ + + +423 #iâdeà +_SYS_CDEFS_H + + +424  + ~ + +429 #ià +defšed + +__USE_FILE_OFFSET64 + && !defšed +__REDIRECT + + +430  + #__USE_LARGEFILE + 1 + + ) + +431  + #__USE_LARGEFILE64 + 1 + + ) + +437 #ià +__GNUC_PREREQ + (2, 7è&& +defšed + +__OPTIMIZE__ + \ + +438 && ! +defšed + + g__OPTIMIZE_SIZE__ + && !defšed + g__NO_INLINE__ + \ + +439 && +defšed + + g__ex‹º_šlše + + +440  + #__USE_EXTERN_INLINES + 1 + + ) + +448  + ~ + + @/usr/include/stdc-predef.h + +18 #iâdef +_STDC_PREDEF_H + + +19  + #_STDC_PREDEF_H + 1 + + ) + +36 #ifdeà +__GCC_IEC_559 + + +37 #ià +__GCC_IEC_559 + > 0 + +38  + #__STDC_IEC_559__ + 1 + + ) + +41  + #__STDC_IEC_559__ + 1 + + ) + +44 #ifdeà +__GCC_IEC_559_COMPLEX + + +45 #ià +__GCC_IEC_559_COMPLEX + > 0 + +46  + #__STDC_IEC_559_COMPLEX__ + 1 + + ) + +49  + #__STDC_IEC_559_COMPLEX__ + 1 + + ) + +58  + #__STDC_ISO_10646__ + 201706L + + ) + +61  + #__STDC_NO_THREADS__ + 1 + + ) + + @ +1 +. +1 +/usr/include +176 +3161 +AMF-UE-NGAP-ID.c +AMFPointer.c +AMFRegionID.c +AMFSetID.c +BIT_STRING.c +BOOLEAN.c +CGI.c +CoreCPID.c +E-UTRA-ARFCN.c +E-UTRA-PCI.c +E-UTRA-TAC.c +E2SM-KPM-ActionDefinition-Format1.c +E2SM-KPM-ActionDefinition-Format2.c +E2SM-KPM-ActionDefinition-Format3.c +E2SM-KPM-ActionDefinition.c +E2SM-KPM-EventTriggerDefinition-Format1.c +E2SM-KPM-EventTriggerDefinition.c +E2SM-KPM-IndicationHeader-Format1.c +E2SM-KPM-IndicationHeader.c +E2SM-KPM-IndicationMessage-Format1.c +E2SM-KPM-IndicationMessage-Format2.c +E2SM-KPM-IndicationMessage.c +E2SM-KPM-RANfunction-Description.c +EN-GNB-ID.c +ENB-ID.c +ENB-UE-X2AP-ID-Extension.c +ENB-UE-X2AP-ID.c +EUTRA-CGI.c +EUTRACellIdentity.c +FiveGS-TAC.c +FiveQI.c +FreqBandNrItem.c +GNB-CU-CP-UE-E1AP-ID.c +GNB-CU-UE-F1AP-ID.c +GNB-CU-UP-ID.c +GNB-DU-ID.c +GNB-ID.c +GUAMI.c +GUMMEI.c +GlobalENB-ID.c +GlobalGNB-ID.c +GlobalNGRANNodeID.c +GlobalNgENB-ID.c +GlobalenGNB-ID.c +GranularityPeriod.c +GroupID.c +INTEGER.c +IndexToRFSP.c +Interface-MessageID.c +InterfaceID-E1.c +InterfaceID-F1.c +InterfaceID-NG.c +InterfaceID-S1.c +InterfaceID-W1.c +InterfaceID-X2.c +InterfaceID-Xn.c +InterfaceIdentifier.c +InterfaceType.c +LabelInfoItem.c +LabelInfoList.c +MME-Code.c +MME-Group-ID.c +MME-UE-S1AP-ID.c +MatchingCondItem.c +MatchingCondList.c +MatchingUEidItem.c +MatchingUEidList.c +MeasurementCondItem.c +MeasurementCondList.c +MeasurementCondUEidItem.c +MeasurementCondUEidList.c +MeasurementData.c +MeasurementDataItem.c +MeasurementInfo-Action-Item.c +MeasurementInfo-Action-List.c +MeasurementInfoItem.c +MeasurementInfoList.c +MeasurementLabel.c +MeasurementRecord.c +MeasurementRecordItem.c +MeasurementType.c +MeasurementTypeID.c +MeasurementTypeName.c +NG-RANnodeUEXnAPID.c +NGENB-CU-UE-W1AP-ID.c +NGENB-DU-ID.c +NR-ARFCN.c +NR-CGI.c +NR-PCI.c +NRCellIdentity.c +NRFrequencyBand-List.c +NRFrequencyBandItem.c +NRFrequencyInfo.c +NRFrequencyShift7p5khz.c +NULL.c +NativeEnumerated.c +NativeInteger.c +NativeReal.c +NgENB-ID.c +OCTET_STRING.c +OPEN_TYPE.c +PLMNIdentity.c +PrintableString.c +QCI.c +QoSID.c +QosFlowIdentifier.c +RANUEID.c +RANfunction-Name.c +REAL.c +RIC-EventTriggerStyle-Item.c +RIC-Format-Type.c +RIC-ReportStyle-Item.c +RIC-Style-Name.c +RIC-Style-Type.c +RRC-MessageID.c +RRCclass-LTE.c +RRCclass-NR.c +S-NSSAI.c +SD.c +SST.c +ServingCell-ARFCN.c +ServingCell-PCI.c +SubscriberProfileIDforRFP.c +SupportedSULBandList.c +SupportedSULFreqBandItem.c +TestCond-Expression.c +TestCond-Type.c +TestCond-Value.c +TestCondInfo.c +TimeStamp.c +UEID-EN-GNB.c +UEID-ENB.c +UEID-GNB-CU-CP-E1AP-ID-Item.c +UEID-GNB-CU-CP-E1AP-ID-List.c +UEID-GNB-CU-CP-F1AP-ID-Item.c +UEID-GNB-CU-F1AP-ID-List.c +UEID-GNB-CU-UP.c +UEID-GNB-DU.c +UEID-GNB.c +UEID-NG-ENB-DU.c +UEID-NG-ENB.c +UEID.c +asn_SEQUENCE_OF.c +asn_SET_OF.c +asn_application.c +asn_bit_data.c +asn_codecs_prim.c +asn_internal.c +asn_random_fill.c +ber_decoder.c +ber_tlv_length.c +ber_tlv_tag.c +constr_CHOICE.c +constr_SEQUENCE.c +constr_SEQUENCE_OF.c +constr_SET_OF.c +constr_TYPE.c +constraints.c +der_encoder.c +oer_decoder.c +oer_encoder.c +oer_support.c +per_decoder.c +per_encoder.c +per_opentype.c +per_support.c +xer_decoder.c +xer_encoder.c +xer_support.c +/usr/include/errno.h +/usr/include/math.h +/usr/include/stdio.h +/usr/include/stdlib.h +/usr/include/alloca.h +/usr/include/features.h +/usr/include/stdc-predef.h