(*****************************************************************************)
(* X.226 PRESENTATION DEFINITIONS                                            *)
(*****************************************************************************)


CP-type (P-P)              LABEL     = Pcpty
                           STRUCTURE = SET
                           CHILDREN  = { <Pmodp, C  0 C,M,0>,
                                         <Pcpq4, C  1 C,O,0>,
                                         <Pcpn2, C  2 C,O,0> }

CP-type-normal             LABEL     = Pcptn
                           STRUCTURE = SET
                           CHILDREN  = { <Pmods, C  0 C,M,0>D,
                                         <Pcpnm, C  2 C,O,0> }

CP-type-1984               LABEL     = Pcpt4
                           STRUCTURE = SET
                           CHILDREN  = { <Pmods, C  0 C,M,0>D,
                                         <Pcp84, C  1 C,O,0>  }

CP normal sequence         LABEL     = Pcpnm
                           STRUCTURE = SEQUENCE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscg, C  1 S,O,0>,
                                         <Ppscd, C  2 S,O,0>,
                                         <Pclst, C  4 C,O,0>,
                                         <Pdcnm, C  6 C,O,0>,
                                         <Ppreq, C  8 P,O,0>,
                                         <Pusrq, C  9 P,O,0>,
                                         <Puser, U  0 P,O,0>  }

CP normal sequence (P-P)   LABEL     = Pcpn2
                           STRUCTURE = SEQUENCE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscg, C  1 S,O,0>,
                                         <Ppscd, C  2 S,O,0>,
                                         <Pclsp, C  4 C,O,0>,
                                         <Pdcnp, C  6 C,O,0>,
                                         <Ppreq, C  8 P,O,0>,
                                         <Pusrq, C  9 P,O,0>,
                                         <Puser, U  0 P,O,0>  }

CP 1984 sequence           LABEL     = Pcp84
                           STRUCTURE = SET
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pdmde, C  2 P,D,0>,
                                         <Pcnd4, C  3 C,M,0>,
                                         <Papcl, C  4 P,O,0>  }

CP 1984 sequence (P-P)     LABEL     = Pcpq4
                           STRUCTURE = SET
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pdmde, C  2 P,D,0>,
                                         <Pcdp4, C  3 C,M,0>,
                                         <Papcl, C  4 P,O,0> }

CPC-type                   LABEL     = Pcpct
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Puser, U  0 P,M,0> }

CPA PPDU (P-P)             LABEL     = Pcpac
                           STRUCTURE = SET
                           CHILDREN  = { <Pmodp, C  0 C,M,0>,
                                         <Pcpa4, C  1 C,O,0>,
                                         <Pppn2, C  2 C,O,0> }

CPA PPDU normal            LABEL     = Pcppn
                           STRUCTURE = SET
                           CHILDREN  = { <Pmods, C  0 C,M,0>D,
                                         <Pppnm, C  2 C,O,0> }

CPA PPDU 1984              LABEL     = Pcpp4
                           STRUCTURE = SET
                           CHILDREN  = { <Pmods, C  0 C,M,0>D,
                                         <Ppp84, C  1 C,O,0>  }

CPA PPDU norm. seq.        LABEL     = Pppnm
                           STRUCTURE = SEQUENCE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscd, C  3 P,O,0>,
                                         <Prlst, C  5 C,O,0>,
                                         <Ppreq, C  8 P,O,0>,
                                         <Pusrq, C  9 P,O,0>,
                                         <Puser, U  0 P,O,0> }

CPA PPDU norm. seq. (P-P)  LABEL     = Pppn2
                           STRUCTURE = SEQUENCE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscd, C  3 P,O,0>,
                                         <Prlsp, C  5 C,O,0>,
                                         <Ppreq, C  8 P,O,0>,
                                         <Pusrq, C  9 P,O,0>,
                                         <Puser, U  0 P,O,0>  }

CPA PPDU 1984 seq.         LABEL     = Ppp84
                           STRUCTURE = SET
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pcnd4, C  2 C,M,0>  }

CPA PPDU 1984 seq. (P-P)   LABEL     = Pcpa4
                           STRUCTURE = SET
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pcdp4, C  2 C,M,0> }

Connection Data - 1984     LABEL     = Pcnd4
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 3 C)
                           CHILDREN  = { <Psan0, C  0 C,O,0>,
                                         <Pssc4, C  1 C,O,0>,
                                         <Psnul, C  2 P,O,0>D  }

Connection Data, 1984 P-P  LABEL     = Pcdp4
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 3 C)
                           CHILDREN  = { <Psan0, C  0 C,O,0>,
                                         <Pscp4, C  1 C,O,0>,
                                         <Psnul, C  2 P,O,0>  }

Session Connection (1984)  LABEL     = Pssc4
                           STRUCTURE = SEQUENCE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Pst61, U 20 P,M,0>,
                                         <Pcref, U 23 P,M,0>,
                                         <Padri, C  0 P,O,0>  }

Session Conn ID, 1984, P-P LABEL     = Pscp4
                           STRUCTURE = SEQUENCE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Pst61, U 20 P,M,0>,
                                         <Pcref, U 23 P,M,0>,
                                         <Padri, C  0 P,O,0> }

CPR PPDU (P-P)             LABEL     = Pcprp
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Pcpr4, U 17 C,O,0>,
                                         <Pcpr2, U 16 C,O,0>  }

CPR PPDU normal            LABEL     = Pcprn
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscd, C  3 P,O,0>,
                                         <Prlst, C  5 C,O,0>D,
                                         <Prsl2, C  7 P,O,0>,
                                         <Pprea, C 10 P,O,0>D,
                                         <Puser, U  0 P,O,0>  }

CPR PPDU normal (P-P)      LABEL     = Pcpr2
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pprcl, C  0 S,D,0>,
                                         <Ppscd, C  3 P,O,0>,
                                         <Prlsp, C  5 C,O,0>D,
                                         <Prsl2, C  7 P,O,0>,
                                         <Pprea, C 10 P,O,0>D,
                                         <Puser, U  0 P,O,0>  }

CPR PPDU 1984              LABEL     = Pcpr4
                           STRUCTURE = SET
                           CHILDREN  = { <Prefr, C  0 P,O,0> }

Refuse Reason              LABEL     = Prefr
                           STRUCTURE = INTEGER

Abort type (P-P)           LABEL     = Pabty
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Parup, U  0 P,O,0>,
                                         <Prppp, U 16 C,O,0> }

Abort type normal          LABEL     = Pabnm
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Prupn, C  0 C,O,0>,
                                         <Prppp, U 16 C,O,0> }

Abort type 1984            LABEL     = Pabn4
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Prup4, U 17 C,O,0>,
                                         <Prppp, U 16 C,O,0> }

ARU PPDU (P-P)             LABEL     = Parup
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Prup4, U 17 C,O,0>,
                                         <Prupn, C  0 C,O,0> }

ARU PPDU normal            LABEL     = Prupn
                           STRUCTURE = SEQUENCE
                           TAG       = (C 0 C)
                           CHILDREN  = { <Ppcil, C  0 C,O,0>D,
                                         <Puser, U  0 P,O,0>  }

ARU PPDU 1984              LABEL     = Prup4
                           STRUCTURE = SET
                           CHILDREN  = { <Pabrs, C  0 P,O,0>D,
                                         <Psbit, C  1 P,O,2>D  }

ARU PPDU 1984 (P-P)        LABEL     = Pru84
                           STRUCTURE = SET
                           CHILDREN  = { <Pabrs, C  0 P,O,0>,
                                         <Psbit, C  1 P,O,2>D }

ARP PPDU                   LABEL     = Prppp
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pares, C  0 P,O,0>D,
                                         <Pevid, C  1 P,O,0>  }

Typed Data type            LABEL     = Ptdtp
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Pcppd, C  0 C,O,0>,
                                         <Pcapp, C  1 C,O,0>,
                                         <Puser, U  0 P,O,0>  }

AC PPDU                    LABEL     = Pcppd
                           STRUCTURE = SEQUENCE
                           TAG       = (C 0 C)
                           CHILDREN  = { <Pclst, C  0 C,O,0>,
                                         <Pdell, C  1 C,O,0>,
                                         <Puser, U  0 P,O,0>  }

ACA PPDU                   LABEL     = Pcapp
                           STRUCTURE = SEQUENCE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Prlst, C  0 C,O,0>D,
                                         <Pdlrl, C  1 C,O,0>,
                                         <Puser, U  0 P,O,0>  }

RS PPDU                    LABEL     = Prsdu
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ppcil, C  0 C,O,0>DE,
                                         <Puser, U  0 P,O,0>  }

RSA PPDU                   LABEL     = Pradu
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ppcil, C  0 C,O,0>DE,
                                         <Puser, U  0 P,O,0>  }

Abort Reason               LABEL     = Pares
                           STRUCTURE = INTEGER

Abstract Syntax Name       LABEL     = Pasnm
                           STRUCTURE = OBJECT IDENTIFIER

Abstract Syntax Name       LABEL     = Pasn2
                           STRUCTURE = OBJECT IDENTIFIER

Context List               LABEL     = Pclst
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Pcls2, U 16 C,O,0> }

Context List sequ.         LABEL     = Pcls2
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ppcid, U  2 P,M,0>,
                                         <Pasnm, U  6 P,M,0>,
                                         <Ptseq, U 16 C,M,0>E }

Seq. of Trans Name         LABEL     = Ptseq
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Ptsnm, U  6 P,O,0> }

Default Context Name       LABEL     = Pdcnm
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pasn2, C  0 P,M,0>D,
                                         <Ptsn2, C  1 P,M,0>D }

Context List (P-P)         LABEL     = Pclsp
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Pclss, U 16 C,O,0> }

Context List sequ. (P-P)   LABEL     = Pclss
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ppcid, U  2 P,M,0>,
                                         <Pasnm, U  6 P,M,0>,
                                         <Ptse2, U 16 C,M,0> }

Seq. of Trans Name (P-P)   LABEL     = Ptse2
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Ptsnm, U  6 P,O,0> }

Default Context Name (P-P) LABEL     = Pdcnp
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pasn2, C  0 P,M,0>,
                                         <Ptsn2, C  1 P,M,0> }

Event Identifier           LABEL     = Pevid
                           STRUCTURE = INTEGER

Mode Selector              LABEL     = Pmods
                           STRUCTURE = SET
                           TAG       = (C 0 C)
                           CHILDREN  = { <Pmode, C  0 P,M,0>D }

Mode Selector (P-P)        LABEL     = Pmodp
                           STRUCTURE = SET
                           TAG       = (C 0 C)
                           CHILDREN  = { <Pmode, C  0 P,M,0> }

Mode                       LABEL     = Pmode
                           STRUCTURE = INTEGER

Pres. Del. List            LABEL     = Pdell
                           STRUCTURE = SEQUENCE OF
                           TAG       = (C 1 C)
                           CHILDREN  = { <Ppcid, U  2 P,O,0>D }

Pres. Del. Res. List       LABEL     = Pdlrl
                           STRUCTURE = SEQUENCE OF
                           TAG       = (C 1 C)
                           CHILDREN  = { <Pacrj, U  2 P,O,0> }

Accept/Reject              LABEL     = Pacrj
                           STRUCTURE = INTEGER

Pres. Context ID           LABEL     = Ppcid
                           STRUCTURE = INTEGER

Pres. Context ID           LABEL     = Ppci3
                           STRUCTURE = INTEGER

Pres. Cxt. ID List         LABEL     = Ppcil
                           STRUCTURE = SEQUENCE OF
                           TAG       = (C 1 C)
                           CHILDREN  = { <Pidsq, U 16 C,O,0>D }

ID List Element            LABEL     = Pidsq
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ppcid, U  2 P,M,0>D,
                                         <Ptsnm, U  6 P,M,0>D }

Pres. Requirements         LABEL     = Ppreq
                           STRUCTURE = BIT STRING

Calling Pres. Selector     LABEL     = Ppscg
                           STRUCTURE = OCTETSTRING

Called Pres. Selector      LABEL     = Ppscd
                           STRUCTURE = OCTETSTRING

Protocol Version           LABEL     = Pprcl
                           STRUCTURE = BIT STRING

(* The next two nodes are NOT the same - its all in the pronunciation        *)

Provider Reason            LABEL     = Ppres
                           STRUCTURE = INTEGER

Provider Reason            LABEL     = Pprea
                           STRUCTURE = INTEGER

Result                     LABEL     = Prslt
                           STRUCTURE = INTEGER

Default Pres. Cxt. Result  LABEL     = Prsl2
                           STRUCTURE = INTEGER

Result List                LABEL     = Prlst
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Prlsq, U 16 C,O,0> }

Result List element        LABEL     = Prlsq
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Prslt, C  0 P,M,0>,
                                         <Ptsn4, C  1 P,O,0>D,
                                         <Ppres, C  2 P,O,0> }

Result List (P-P)          LABEL     = Prlsp
                           STRUCTURE = SEQUENCE OF
                           TAG       = (C 10 C)
                           CHILDREN  = { <Prls2, U 16 C,O,0> }

Result List element (P-P)  LABEL     = Prls2
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Prslt, C  0 P,M,0>,
                                         <Ptsn4, C  1 P,O,0>,
                                         <Ppres, C  2 P,O,0> }

Transfer Syntax Name       LABEL     = Ptsnm
                           STRUCTURE = OBJECT IDENTIFIER

Transfer Syntax Name       LABEL     = Ptsn2
                           STRUCTURE = OBJECT IDENTIFIER

Transfer Syntax Name       LABEL     = Ptsn3
                           STRUCTURE = OBJECT IDENTIFIER

Transfer Syntax Name       LABEL     = Ptsn4
                           STRUCTURE = OBJECT IDENTIFIER

User Data                  LABEL     = Puser
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Psimp, A  0 P,O,0>,
                                         <Pfull, A  1 C,O,0> }

User Data (P-P)            LABEL     = Pusep
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Psimp, A  0 P,O,0>,
                                         <Pfull, A  1 C,O,0> }

Simply Encoded Data        LABEL     = Psimp
                           STRUCTURE = OCTETSTRING


Fully Encoded Data         LABEL     = Pfull
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <Ppdvl, U 16 C,O,0> }


PDV list                   LABEL     = Ppdvl
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Ptsn3, U  6 P,O,0>D,
                                         <Ppci3, U  2 P,M,0>,
                                         <Ppval, U  0 P,M,0> }

Pres. Data Values          LABEL     = Ppval
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Pasn1, C  0 C,O,0>,
                                         <Pocta, C  1 P,O,0>D }
                                         <Parby, C  2 P,O,0> }

Octet Aligned              LABEL     = Pocta
                           STRUCTURE = OCTETSTRING

Arbitrary                  LABEL     = Parby
                           STRUCTURE = BIT STRING

Single ASN.1 type          LABEL     = Pasn1
                           STRUCTURE = ANY
                           TAG       = (C 0 C)
                           CHILDREN  = { }

User Session Requirements  LABEL     = Pusrq
                           STRUCTURE = BIT STRING

(*****************************************************************************)
(* X.228 ABSTRACT SYNTAX DEFINITION OF APDUs                                 *)
(*****************************************************************************)

RTSE APDU normal           LABEL     = Prtnm
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Ptqnm, C 16 C,O,0>,
                                         <Ptoac, C 17 C,O,0>,
                                         <Ptjnm, C 18 C,O,0>,
                                         <Prttp, U  2 P,O,0>,
                                         <Prttr, U  4 P,O,0>,
                                         <Ptbnm, C 22 C,O,0>  }

RTORQ APDU normal          LABEL     = Ptqnm
                           STRUCTURE = SET
                           TAG       = (C 16 C)
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pdmde, C  2 P,D,0>,
                                         <Pcndt, C  3 C,M,0>  }

RTOAC APDU normal          LABEL     = Ptoac
                           STRUCTURE = SET
                           TAG       = (C 17 C)
                           CHILDREN  = { <Pchkp, C  0 P,D,0>,
                                         <Pwsiz, C  1 P,D,0>,
                                         <Pcndt, C  2 C,M,0>  }

RTORJ APDU normal          LABEL     = Ptjnm
                           STRUCTURE = SET
                           TAG       = (C 18 C)
                           CHILDREN  = { <Psan1, C  1 C,O,0> }

RTTP APDU - normal/1984    LABEL     = Prttp
                           STRUCTURE = INTEGER

RTTR APDU normal           LABEL     = Prttr
                           STRUCTURE = OCTETSTRING

RTAB APDU normal           LABEL     = Ptbnm
                           STRUCTURE = SET
                           TAG       = (C 22 C)
                           CHILDREN  = { <Pabrs, C  0 P,O,0>,
                                         <Psbit, C  1 P,O,2>D,
                                         <Psan2, C  2 C,O,0>  }

Connection Data - normal   LABEL     = Pcndt
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 3 C)
                           CHILDREN  = { <Psan0, C  0 C,O,0>,
                                         <Pssci, C  1 C,O,0>,
                                         <Psnul, C  2 P,O,0>D  }

Session Connection (norm)  LABEL     = Pssci
                           STRUCTURE = SEQUENCE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Psoct, U  4 P,M,0>,
                                         <Pcref, U 23 P,M,0>,
                                         <Padri, C  0 P,O,0>  }

NULL                       LABEL     = Psnul
                           STRUCTURE = NULL

T61 STRING                 LABEL     = Pst61
                           STRUCTURE = TELETEX STRING

Add. Ref. Info.            LABEL     = Padri
                           STRUCTURE = TELETEX STRING

Octet String               LABEL     = Psoct
                           STRUCTURE = OCTETSTRING

Dummy                      LABEL     = Pdumm
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Pcstr, U 4 S,M,0> }

Constructed String         LABEL     = Pcstr
                           STRUCTURE = OCTETSTRING

Bit String                 LABEL     = Psbit
                           STRUCTURE = BITSTRING

Common Reference           LABEL     = Pcref
                           STRUCTURE = UTC TIME

Integer                    LABEL     = Pchkp
                           STRUCTURE = INTEGER

Integer                    LABEL     = Pwsiz
                           STRUCTURE = INTEGER

Integer                    LABEL     = Pdmde
                           STRUCTURE = INTEGER

Integer                    LABEL     = Papcl
                           STRUCTURE = INTEGER

AbortReason                LABEL     = Pabrs
                           STRUCTURE = INTEGER

Any                        LABEL     = Psany
                           STRUCTURE = ANY
                           TAG       = (C 0 C)
                           CHILDREN  = { }

Any                        LABEL     = Psan0
                           STRUCTURE = ANY
                           TAG       = (C 0 C)
                           CHILDREN  = { }

Any                        LABEL     = Psan1
                           STRUCTURE = ANY
                           TAG       = (C 1 C)
                           CHILDREN  = { }

Any                        LABEL     = Psan2
                           STRUCTURE = ANY
                           TAG       = (C 2 C)
                           CHILDREN  = { }

(*****************************************************************************)
(* X.227 ASSOCIATION CONTROL SERVICE ELEMENT DATA-TYPES                      *)
(*****************************************************************************)


ACSE-apdu                  LABEL     = Aapdu
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Aaarq, A  0 C,O,0>,
                                         <Aaare, A  1 C,O,0>,
                                         <Arlrq, A  2 C,O,0>,
                                         <Arlre, A  3 C,O,0>,
                                         <Aabrt, A  4 C,O,0>E }

ACSE-apdu (P-P)            LABEL     = Aapd2
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Aaar2, A  0 C,O,0>,
                                         <Aare2, A  1 C,O,0>,
                                         <Arlrq, A  2 C,O,0>,
                                         <Arlre, A  3 C,O,0>,
                                         <Aabrt, A  4 C,O,0>E }


AARQ-apdu                  LABEL     = Aaarq
                           STRUCTURE = SEQUENCE
                           TAG       = (A 0 C)
                           CHILDREN  = { <Apvv1, C 0 P,D,0>,
                                         <Aacnm, C 1 C,M,0>E,
                                         <Apttl, C 2 C,O,0>D,
                                         <Aequl, C 3 C,O,0>D,
                                         <Apiid, C 4 C,O,0>,
                                         <Aeiid, C 5 C,O,0>,
                                         <Acttl, C 6 C,O,0>D,
                                         <Acqul, C 7 C,O,0>D,
                                         <Apicd, C 8 C,O,0>,
                                         <Aeicd, C 9 C,O,0>,
                                         <Aimpd, C 29 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

AARQ-apdu (P-P)            LABEL     = Aaar2
                           STRUCTURE = SEQUENCE
                           TAG       = (A 0 C)
                           CHILDREN  = { <Apvv1, C 0 P,D,0>,
                                         <Aacn2, C 1 C,M,0>,
                                         <Apttl, C 2 C,O,0>,
                                         <Aequl, C 3 C,O,0>D,
                                         <Apiid, C 4 C,O,0>,
                                         <Aeiid, C 5 C,O,0>,
                                         <Acttl, C 6 C,O,0>,
                                         <Acqul, C 7 C,O,0>D,
                                         <Apicd, C 8 C,O,0>,
                                         <Aeicd, C 9 C,O,0>,
                                         <Aimpd, C 29 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

AARE-apdu                  LABEL     = Aaare
                           STRUCTURE = SEQUENCE
                           TAG       = (A 1 C)
                           CHILDREN  = { <Apvv1, C 0 P,D,0>,
                                         <Aacnm, C 1 C,M,0>,
                                         <Aascr, C 2 C,M,0>,
                                         <Aascs, C 3 C,M,0>,
                                         <Apttl, C 4 C,O,0>D,
                                         <Aequl, C 5 C,O,0>D,
                                         <Apiid, C 6 C,O,0>,
                                         <Aeiid, C 7 C,O,0>,
                                         <Aimpd, C 29 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

AARE-apdu (P-P)            LABEL     = Aare2
                           STRUCTURE = SEQUENCE
                           TAG       = (A 1 C)
                           CHILDREN  = { <Apvv1, C 0 P,D,0>,
                                         <Aacn2, C 1 C,M,0>E,
                                         <Aasr2, C 2 C,M,0>E,
                                         <Aascs, C 3 C,M,0>E,
                                         <Apttl, C 4 C,O,0>D,
                                         <Aequl, C 5 C,O,0>D,
                                         <Apiid, C 6 C,O,0>E,
                                         <Aeiid, C 7 C,O,0>E,
                                         <Aimpd, C 29 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

RLRQ-apdu                  LABEL     = Arlrq
                           STRUCTURE = SEQUENCE
                           TAG       = (A 2 C)
                           CHILDREN  = { <Arreq, C 0 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

RLRE-apdu                  LABEL     = Arlre
                           STRUCTURE = SEQUENCE
                           TAG       = (A 3 C)
                           CHILDREN  = { <Arres, C 0 P,O,0>,
                                         <Aasci, C 30 C,O,0> }

ABRT-apdu                  LABEL     = Aabrt
                           STRUCTURE = SEQUENCE
                           TAG       = (A 4 C)
                           CHILDREN  = { <Aasrc, C 0 P,M,0>,
                                         <Aasci, C 30 C,O,0> }

Protocol Version           LABEL     = Apvv1
                           STRUCTURE = BIT STRING

Abort Source               LABEL     = Aasrc
                           STRUCTURE = INTEGER

Implementation Data        LABEL     = Aimpd
                           STRUCTURE = GRAPHIC STRING

Release Request Reason     LABEL     = Arreq
                           STRUCTURE = INTEGER

Release Response Reason    LABEL     = Arres
                           STRUCTURE = INTEGER

Applic. Context Name       LABEL     = Aacnm
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Aname, U 6 P,O,0> }

Applic. Context (P-P)      LABEL     = Aacn2
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Aname, U 6 P,O,0> }

Context Name ID            LABEL     = Aname
                           STRUCTURE = OBJECT IDENTIFIER

AP - Title                 LABEL     = Apttl
                           STRUCTURE = ANY
                           TAG       = (C 2 C)
                           CHILDREN  = { }

AE - Qualifier             LABEL     = Aequl
                           STRUCTURE = ANY
                           TAG       = (C 3 C)
                           CHILDREN  = { }

AP Invocation ID           LABEL     = Apiid
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 4 C)
                           CHILDREN  = { <Apinv, U 2 P,O,0>D }

AP-Invocation-id           LABEL     = Apinv
                           STRUCTURE = INTEGER

AP-Invocation-id           LABEL     = Apin2
                           STRUCTURE = INTEGER

AE Invocation ID           LABEL     = Aeiid
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 5 C)
                           CHILDREN  = { <Aeinv, U 2 P,O,0>D }

AE-Invocation-id           LABEL     = Aeinv
                           STRUCTURE = INTEGER

AE-Invocation-id           LABEL     = Aein2
                           STRUCTURE = INTEGER


Calling AP title           LABEL     = Acttl
                           STRUCTURE = ANY
                           TAG       = (C 2 C)
                           CHILDREN  = { }

Calling AE Qual.           LABEL     = Acqul
                           STRUCTURE = ANY
                           TAG       = (C 3 C)
                           CHILDREN  = { }

Call AP Inv. ID            LABEL     = Apicd
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 4 C)
                           CHILDREN  = { <Apin2, U 2 P,O,0>D }

Call AE Inv. ID            LABEL     = Aeicd
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 5 C)
                           CHILDREN  = { <Aein2, U 2 P,O,0>D }

Associate Result           LABEL     = Aascr
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Aares, U 2 P,O,0> }

Associate Result (P-P)     LABEL     = Aasr2
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Aares, U 2 P,O,0> }

Associate-result           LABEL     = Aares
                           STRUCTURE = INTEGER

Source Diagnostic          LABEL     = Aascs
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 3 C)
                           CHILDREN  = { <Asuse, C 1 C,O,0>DE,
                                         <Aspro, C 2 C,O,0>DE  }

ACSE Service User          LABEL     = Asuse
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Auser, U 2 P,O,0> }

asce-service-user          LABEL     = Auser
                           STRUCTURE = INTEGER

ACSE Service Provider      LABEL     = Aspro
                           STRUCTURE = TAGGED CHOICE
                           TAG       = (C 2 C)
                           CHILDREN  = { <Aprov, U 2 P,O,0>D }

asce-service-provider      LABEL     = Aprov
                           STRUCTURE = INTEGER

Association Information    LABEL     = Aasci
                           STRUCTURE = SEQUENCE OF
                           TAG       = (C 30 C)
                           CHILDREN  = { <Aextn, U 8 C,O,0> }


External                   LABEL     = Aextn
                           STRUCTURE = SEQUENCE
                           TAG       = (U 8 C)
                           CHILDREN  = { <Adref, U 6 P,O,0>,
                                         <Airef, U 2 P,O,0>,
                                         <Advds, U 7 P,O,0>,
                                         <Aencd, U 0 P,O,0> }

Direct Reference           LABEL     = Adref
                           STRUCTURE = OBJECT IDENTIFIER

Indirect Reference         LABEL     = Airef
                           STRUCTURE = INTEGER

Data Value Descriptor      LABEL     = Advds
                           STRUCTURE = OBJECT DESCRIPTOR

Encoding                   LABEL     = Aencd
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Aasn1, C 0 C,O,0>,
                                         <Aocta, C 1 P,O,0>,
                                         <Aarbi, C 2 P,O,0>D  }

Single ASN.1 Type          LABEL     = Aasn1
                           STRUCTURE = ANY
                           TAG       = (C 0 C)
                           CHILDREN  = { }

Octet Aligned              LABEL     = Aocta
                           STRUCTURE = OCTETSTRING

Arbitrary                  LABEL     = Aarbi
                           STRUCTURE = BIT STRING


(*****************************************************************************)
(* ASN.1 ROSE DATA-TYPE TEMPLATE FOR POP-PLATFORM                            *)
(*                                                                           *)
(*    - ROSE APDU Definitions                                                *)
(*                                                                           *)
(* Known simplifications:                                                    *)
(*   - setting of 'E' for ENCODE calls to signify COLLECT calls to User      *)
(*   - setting of 'D' for DECODE calls to signify CONSULT calls to User      *)
(*   - setting of 'S' for potential constructor octet primitives             *)
(*****************************************************************************)

(*****************************************************************************)
(* REMOTE OPERATIONS APDU DEFINITIONS                                        *)
(*****************************************************************************)

ROSEapdu                   LABEL     = Sapdu
                           STRUCTURE = CHOICE
                           TAG       = (C 0 C)
                           CHILDREN  = { <Sroiv, C  1 C,O,0>,
                                         <Srors, C  2 C,O,0>,
                                         <Sroer, C  3 C,O,0>,
                                         <Srorj, C  4 C,O,0> }

ROIVapdu                   LABEL     = Sroiv
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Sinid, U  2 P,M,0>,
                                         <Slkid, C  0 P,O,0>,
                                         <Soper, U  0 P,M,0>*,
                                         <Sargs, U  0 P,O,0> }

InvokeID                   LABEL     = Sinid
                           STRUCTURE = INTEGER

LinkedID                   LABEL     = Slkid
                           STRUCTURE = INTEGER

Operation                  LABEL     = Soper
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Sintg, U  2 P,O,0>*,
                                         <Sobid, U  6 P,O,0>* }

Integer                    LABEL     = Sintg
                           STRUCTURE = INTEGER

ObjectIdentifier           LABEL     = Sobid
                           STRUCTURE = OBJECT IDENTIFIER

(* this is an untagged any defined by ! *)
Arguments                  LABEL     = Sargs
                           STRUCTURE = ANY
                           CHILDREN  = {}

RORSapdu                   LABEL     = Srors
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Sinid, U  2 P,M,0>,
                                         <Srslt, U 16 C,O,0> }

ResultPair                 LABEL     = Srslt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Soper, U  0 P,M,0>*,
                                         <Srlts, U  0 P,M,0> }

(* this is an untagged any defined by ! *)
Results                    LABEL     = Srlts
                           STRUCTURE = ANY
                           CHILDREN  = {}

ROERapdu                   LABEL     = Sroer
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Sinid, U  2 P,M,0>,
                                         <Serrv, U  0 P,M,0>*,
                                         <Serrp, U  0 P,O,0>  }

ErrorValue                 LABEL     = Serrv
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Serri, U  2 P,O,0>*,
                                         <Serro, U  6 P,O,0>* }

ErrorValueInteger          LABEL     = Serri
                           STRUCTURE = INTEGER

ErrorValueObjectIdentifier LABEL     = Serro
                           STRUCTURE = OBJECT IDENTIFIER

(* this is an untagged any defined by ! *)
ErrorParameters            LABEL     = Serrp
                           STRUCTURE = ANY
                           CHILDREN  = {}

RORJapdu                   LABEL     = Srorj
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Sinrj, U  0 P,M,0>,
                                         <Sprob, U  0 P,O,0> }

RORJInvokeidChoice         LABEL     = Sinrj
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Sinid, U  2 P,O,0>,
                                         <Sinul, U  5 P,O,0> }

RORJProblemChoice          LABEL     = Sprob
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Sgrlp, C  0 P,O,0>,
                                         <Sivkp, C  1 P,O,0>,
                                         <Srrsp, C  2 P,O,0>,
                                         <Srerp, C  3 P,O,0> }

NULLInvokeid               LABEL     = Sinul
                           STRUCTURE = NULL

GeneralProblem             LABEL     = Sgrlp
                           STRUCTURE = INTEGER

InvokeProblem              LABEL     = Sivkp
                           STRUCTURE = INTEGER

ReturnResultProblem        LABEL     = Srrsp
                           STRUCTURE = INTEGER

ReturnErrorProblem         LABEL     = Srerp
                           STRUCTURE = INTEGER

!
