KR20100109227A - Asn.1 compiler - Google Patents
Asn.1 compiler Download PDFInfo
- Publication number
- KR20100109227A KR20100109227A KR1020090027727A KR20090027727A KR20100109227A KR 20100109227 A KR20100109227 A KR 20100109227A KR 1020090027727 A KR1020090027727 A KR 1020090027727A KR 20090027727 A KR20090027727 A KR 20090027727A KR 20100109227 A KR20100109227 A KR 20100109227A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- per
- ber
- inter
- sentence
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/146—Coding or compression of tree-structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/149—Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 ASN.1 컴파일러 장치에 관한 것으로, 특히 다양한 ASN.1 인코딩 룰 간의 자동 상호 변환을 지원하는 ASN.1 컴파일러 장치에 관한 것이다.The present invention relates to an ASN.1 compiler device, and more particularly, to an ASN.1 compiler device supporting automatic mutual conversion between various ASN.1 encoding rules.
일반적으로 ASN.1은 국제 전기 통신 연합(International Telecommunication Union; ITU)을 통해서 표준화된 데이터 교환을 정의한 프로토콜로, 네트워크 분야와 모바일 분야 등의 다양한 분야에서 이용되고 있다. In general, ASN.1 is a protocol that defines standardized data exchange through the International Telecommunication Union (ITU), and is used in various fields such as the network field and the mobile field.
이러한 ASN.1은 다양한 운영 체제, 예를 들면, MS Windows, Sun Solaris, IBM AIX, HP UX, Mac OSX, Linux, FreeBSD 등을 사용하는 개별 시스템들 상호 간의 데이터 연동이 요구되면서, 각 시스템들이 사용하는 데이터 저장 구조의 차이에 의해 발생하는 데이터 해석 오류에 관한 문제를 해결하기 위하여 제안되었다.This ASN.1 is used by each system as it requires data interworking between individual systems using various operating systems such as MS Windows, Sun Solaris, IBM AIX, HP UX, Mac OSX, Linux, FreeBSD, etc. It is proposed to solve the problem of data interpretation error caused by the difference of data storage structure.
시스템 개발 시, ASN.1 컴파일러에서 생성된 인코딩 및 디코딩 소스코드를 이용하여 개발을 수행하게 되는데, 이때 유선, 무선 등의 통신 방식에 따라 BER(Basic Encoding Rule), PER(Packed Encoding Rule), XER(XML Encoding Rule) 등 다양한 인코딩 방식이 사용될 수 있다. When developing the system, development is performed using encoding and decoding source codes generated by the ASN.1 compiler. In this case, BER (Basic Encoding Rule), PER (Packed Encoding Rule), XER, etc. Various encoding methods such as (XML Encoding Rule) may be used.
특히, 지능형 교통 시스템(Intelligent Transport System; ITS)의 경우에는 국내 및 국제 표준들이 모두 ASN.1 표시 방법을 이용하여 제정되었다.In particular, in the case of the Intelligent Transport System (ITS), both national and international standards have been established using the ASN.1 marking method.
지능형 교통 시스템의 경우 운용 및 설치 특성상 유무선이 혼재된 환경이 많다. 예를 들면, 강남구 버스교통센터의 경우 자신의 지역에 다니는 버스의 위치정보를 무선으로 받아 서초구, 송파구 등의 인근 버스교통센터로 정보를 유선으로 전송하게 된다.In the case of intelligent transportation systems, there are many environments where wired and wireless are mixed due to the characteristics of operation and installation. For example, the Gangnam-gu bus traffic center wirelessly receives location information of the buses in its area and transmits the information to wire buses to nearby bus traffic centers such as Seocho-gu and Songpa-gu.
이때 버스와 강남구 버스교통센터 간 통신은 PER 방식의 인코딩 룰을 사용하고 버스교통센터 간의 통신은 BER 방식의 인코딩 룰을 사용하게 된다. 따라서, 강남구 버스교통센터에서는 버스에서 무선으로 전송된 BER 정보를 받아 BER 방식으로 디코딩하고, 이를 다시 PER 방식으로 인코딩하여 인근 버스교통센터에 전송하게 되는데, 이 작업은 매우 반복적일 뿐만 아니라 유무선이 혼재된 환경에서 모든 기능 개발 시 프로그래밍이 반복되어야 한다. At this time, the communication between the bus and the Gangnam-gu bus traffic center uses the PER type encoding rule, and the communication between the bus traffic centers uses the BER type encoding rule. Therefore, the Gangnam-gu bus traffic center receives BER information transmitted wirelessly from the bus, decodes it by the BER method, encodes it back to the PER method, and transmits it to a nearby bus traffic center, which is very repetitive and mixed with wired and wireless. In all circumstances, programming must be repeated when developing all functions.
그러나, 반복되는 프로그래밍이지만 데이터 타입별, 메시지별 인코딩 및 디코딩 함수가 다르기 때문에 일괄적으로 하나의 함수로 묶을 수도 없다. 따라서, 이러한 어려움은 대부분의 지능형 교통 체계의 개발 과정에서 빈번히 등장하고 있으나 그 해결이 어려운 상태이다. However, although it is repeated programming, since the encoding and decoding functions of each data type and message are different, they cannot be bundled into one function. Therefore, these difficulties are frequently appeared in the development process of most intelligent transportation systems, but they are difficult to solve.
따라서, 본 발명의 목적은 인코딩 룰 간의 상호 변환을 자동 생성하는 ASN.1 컴파일러 장치를 제공하는 것이다.Accordingly, it is an object of the present invention to provide an ASN.1 compiler apparatus that automatically generates interconversion between encoding rules.
상기의 목적은, 입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악하는 어휘분석모듈; 토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사하는 구문분석모듈; 상기 문장의 의미를 분석하는 유효성 분석모듈; 파악된 의미에 따라 프로그램할 수 있는 언어로 변환하는 파일생성모듈; 및 상기 파일생성모듈에 의해 생성된 인코딩, 디코딩 함수를 이용하여 상호변환파일을 생성하는 상호변환파일 생성모듈을 포함하는 인코딩 룰 간의 자동 상호 변환을 지원하는 ASN.1 컴파일러 장치에 의해 달성된다.The above object is, lexical analysis module for grasping the meaning of each word by analyzing the input ASN.1 document; A parsing module for checking whether the words separated by the token form a sentence are grammatically correct; A validity analysis module for analyzing the meaning of the sentence; A file generation module for converting into a programmable language according to the sensed meaning; And an ASN.1 compiler apparatus for supporting automatic inter-conversion between encoding rules including an inter-conversion file generation module for generating an inter-conversion file using the encoding and decoding functions generated by the file generation module.
바람직하게, 상기 상호변환파일 생성모듈이 생성한 상호변환파일은 상호변환 구조와 상호변환 함수를 포함한다.Preferably, the inter-conversion file generated by the inter-conversion file generation module includes a cross-conversion structure and a cross-conversion function.
상기 상호변환 구조는 다음 문장의 구조를 포함한다.The interconversion structure includes the structure of the following sentence.
A_BER_Data=A_PER_to_BER_Encode(A_PER_Data)A_BER_Data = A_PER_to_BER_Encode (A_PER_Data)
여기서, 상기 문장의 구조는 표현 A가 PER 인코딩 룰을 사용하여 인코딩된 데이터(A_PER_Data)가 입력될 경우 이를 BER 인코딩 룰을 사용하여 인코딩한 데이터(A_BER_Data)를 생성하는 것을 의미한다.Here, the structure of the sentence means that the expression A generates data A_BER_Data encoded using the BER encoding rule when data A_PER_Data encoded using the PER encoding rule is input.
또한, 상기 상호변환 함수는 다음 문장의 함수를 포함한다.In addition, the inter-conversion function includes the function of the following sentence.
A_BER_Data = A__PER_to_BER_Encode(A_PER_Data)A_BER_Data = A__PER_to_BER_Encode (A_PER_Data)
{{
A_Common_Data=A_PER_Decode(A_PER_Data); A_Common_Data = A_PER_Decode (A_PER_Data);
A_BER_Data=A_BER_Encode(A_Common_Data); A_BER_Data = A_BER_Encode (A_Common_Data);
}}
여기서, 상기 문장의 함수는 PER 인코딩 룰로 인코딩된 데이터(A_PER_Data)가 입력되면 이를 PER 인코딩 룰로 디코딩(A_PER_Decode)하여 모든 인코딩 룰에서 공용으로 사용하는 공통데이터구조(A_Common_Data)로 변환하고, 변환된 공통데이터구조(A_Common_Data)는 BER 인코딩 룰로 인코딩된 데이터(A_BER_Data)로 변환되는 것을 의미한다. In this case, when the data encoded with the PER encoding rule (A_PER_Data) is input, the function of the sentence is decoded by the PER encoding rule (A_PER_Decode) and converted into a common data structure (A_Common_Data) commonly used in all encoding rules, and the converted common data The structure A_Common_Data means that data is converted into data A_BER_Data encoded by the BER encoding rule.
상기의 구성에 의하면, 인코딩룰 간의 자동 상호 변환 기능을 생성해주어, 복잡한 반복작업의 회피로 인한 개발 기간의 단축, 시스템 안정성 향상 등의 장점을 얻을 수 있다.According to the above configuration, it is possible to generate an automatic mutual conversion function between encoding rules, thereby achieving advantages such as shortening the development period and improving system stability due to avoiding complicated repetitive work.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예를 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail an embodiment of the present invention.
도 1은 본 발명에 따른 ASN.1 컴파일러의 기능 블록을 나타내는 구성도이다.1 is a block diagram showing a functional block of an ASN.1 compiler according to the present invention.
도 1을 참조하면, ASN.1 컴파일러는, 어휘분석모듈(10), 구문분석모듈(20), 유효성 분석모듈(30), 파일생성모듈(40), 및 상호변환파일 생성모듈(50)로 구성된다.Referring to FIG. 1, the ASN.1 compiler includes a
어휘분석모듈(10)은 입력된 ASN.1 문서를 분석하여 각 단어들의 의미를 파악한다. 즉, 키워드를 중심으로 모든 단어를 분리하여 각각의 토큰에 저장하게 된다. 여기서, ASN.1 문서는 국제 규격(ITU-T)에서 정의된 데이터 정의를 사용하거나 응용 프로그램 개발자가 자체 정의할 수 있다. The
구문분석모듈(20)은 토큰으로 분리된 단어들이 문장을 이룰 때 문법적으로 오류가 없는지 검사한다. 형식화된 이메일을 예로 들면, 시작할 때 인사말이 먼저 나오는지, 서론, 본론, 결론으로 이야기가 전개되는지, 또는 이메일을 종료할 때 보낸 사람의 인적사항이 형식에 맞게 기재되었는지 등 형식을 검사한다.The
유효성 분석모듈(30)은 문장의 의미를 분석한다. 구문분석모듈(20)의 결과에 따라 각각의 단어들이 위치를 갖게 되고 나름의 의미를 갖게 된다. 상기의 이메일을 예로 들면, 앞쪽에 기재된 이름은 받는 사람 이름이고, 마지막에 기재된 이름은 보낸 사람으로 인식하는 것이다.The
파일생성모듈(40)은 파악된 의미에 따라 프로그램할 수 있는 언어로 변환한다. 파일생성모듈(40)에 의해 구조 파일(*.h)과, 인코딩 및 디코딩 함수(*.c)가 생성된다. 각각의 표현마다 각자의 구조 파일과 함수 파일이 만들어지는데, 예를 들어 A라는 표현이 정의된 경우, A.h와 A.c가 생성되고, A.c에는 A_PER_Encode(), A_PER_Decode(), A_BER_Encode(), A_BER_Decode() 등이 생성된다. 여기서, PER(Packed Encoding Rule), BER(Basic Encoding Rule)은 인코딩 룰을 의미하는데 각각 무선과 유선에서 사용된다. The
상호변환파일 생성모듈(50)은 파일생성모듈(40)에 의해 생성된 인코딩, 디코 딩 함수를 이용하여 상호변환파일을 생성한다.The inter-conversion
도 2는 상호변환파일 생성모듈(50)에 의해 적용되는 알고리즘을 설명하는 플로차트이다.2 is a flowchart illustrating an algorithm applied by the inter-conversion
입력된 ASN.1 모듈을 읽어(단계 S21), ASN.1 모듈이 존재하는지 판정하여(단계 S22) 존재하지 않으면 모듈 구동을 완료하고 존재하면 각각에 맞는 구조 파일(*.h)과 함수 파일(*.c)를 생성한다(단계 S23).It reads the input ASN.1 module (step S21) and determines whether the ASN.1 module exists (step S22). If it does not exist, the module operation is completed. * .c) is generated (step S23).
이어, 삽입 구문(Import)을 순서대로 읽어(단계 S24) 각각의 #include 구문을 생성한다(단계 S25a). 삽입 구문이 존재하지 않는 것으로 판정하면(단계 S25), 표현(expression)을 순서대로 읽어(단계 S26) 상호변환 구조(*.h)와 상호변환 함수(*.c)를 생성하고(단계 S28, S29), 모든 표현들을 읽어 표현이 존재하지 않은 것으로 판정하면(단계 S27) 다음 ASN.1 모듈로 넘어가 ASN.1 모듈을 읽는 단계로 복귀한다. Subsequently, the insert statements (Import) are read in order (step S24), and each #include statement is generated (step S25a). If it is determined that the insertion syntax does not exist (step S25), the expressions are read in order (step S26) to generate the interconversion structure (* .h) and the interconversion function (* .c) (step S28, S29) If all representations are read and it is determined that no representation exists (step S27), the process proceeds to the next ASN.1 module and returns to the step of reading the ASN.1 module.
이와 같은 루틴으로 모든 ASN.1 모듈의 처리가 완료되면 상기와 같이 모듈 기동을 완료한다. With this routine, when all ASN.1 modules have been processed, the module startup is completed as above.
여기서, 상호변환 함수의 예를 구체적으로 설명한다. Here, an example of the interconversion function will be described in detail.
A 라는 표현이 있다고 가정하면 A.h 파일에는 다음과 같은 문장의 구조가 생성된다. Assuming the expression A, the structure of the following statement is generated in the A.h file.
A_BER_Data=A_PER_to_BER_Encode(A_PER_Data)A_BER_Data = A_PER_to_BER_Encode (A_PER_Data)
이 구조의 의미는 표현 A가 PER 인코딩 룰을 사용하여 인코딩된 데이터(A_PER_Data)가 입력될 경우 이를 BER 인코딩 룰을 사용하여 인코딩한 데이 터(A_BER_Data)를 생성하는 것이다.The meaning of this structure is to generate data A_BER_Data, which is encoded using the BER encoding rule when the expression A is input data encoded using the PER encoding rule (A_PER_Data).
A.c 파일에는 아래와 같은 문장의 함수가 생성된다.In the A.c file, the function
A_BER_Data = A__PER_to_BER_Encode(A_PER_Data)A_BER_Data = A__PER_to_BER_Encode (A_PER_Data)
{{
A_Common_Data=A_PER_Decode(A_PER_Data); A_Common_Data = A_PER_Decode (A_PER_Data);
A_BER_Data=A_BER_Encode(A_Common_Data); A_BER_Data = A_BER_Encode (A_Common_Data);
}}
이 함수의 의미는 PER 인코딩 룰로 인코딩된 데이터(A_PER_Data)가 입력되면 이를 PER 인코딩 룰로 디코딩(A_PER_Decode)하여 모든 인코딩 룰에서 공용으로 사용하는 공통데이터구조(A_Common_Data)로 변환한다. 변환된 공통데이터구조(A_Common_Data)는 BER 인코딩 룰로 인코딩된 데이터(A_BER_Data)로 변환되게 된다. The meaning of this function is that when data encoded with a PER encoding rule (A_PER_Data) is input, it is decoded into a PER encoding rule (A_PER_Decode) and converted into a common data structure (A_Common_Data) commonly used by all encoding rules. The converted common data structure A_Common_Data is converted into data A_BER_Data encoded by the BER encoding rule.
이상에서는 본 발명의 실시 예를 중심으로 설명하였지만, 당업자의 수준에서 다양한 변경을 가할 수 있음은 물론이다. 따라서, 본 발명의 권리범위는 상기한 실시 예에 한정되어 해석될 수 없으며, 이하에 기재되는 특허청구범위에 의해 해석되어야 한다.In the above description, the embodiment of the present invention has been described, but various changes can be made at the level of those skilled in the art. Therefore, the scope of the present invention should not be construed as being limited to the above embodiment, but should be interpreted by the claims described below.
도 1은 본 발명에 따른 ASN.1 컴파일러의 기능 블록을 나타내는 구성도이다.1 is a block diagram showing a functional block of an ASN.1 compiler according to the present invention.
도 2는 상호변환파일 생성모듈(50)에 의해 적용되는 알고리즘을 설명하는 플로차트이다.2 is a flowchart illustrating an algorithm applied by the inter-conversion
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090027727A KR101142322B1 (en) | 2009-03-31 | 2009-03-31 | ASN.1 Compiler |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090027727A KR101142322B1 (en) | 2009-03-31 | 2009-03-31 | ASN.1 Compiler |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100109227A true KR20100109227A (en) | 2010-10-08 |
KR101142322B1 KR101142322B1 (en) | 2012-05-17 |
Family
ID=43130372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090027727A KR101142322B1 (en) | 2009-03-31 | 2009-03-31 | ASN.1 Compiler |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101142322B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101449657B1 (en) * | 2013-03-05 | 2014-10-13 | 한국과학기술연구원 | Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072130B (en) * | 2015-08-26 | 2018-03-06 | 广州慧睿思通信息科技有限公司 | A kind of ASN.1 decoders code automatic generation method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04337945A (en) | 1991-05-15 | 1992-11-25 | Nec Corp | Protocol composition/decomposition supporting device |
JP2000066980A (en) | 1998-08-21 | 2000-03-03 | Nippon Telegr & Teleph Corp <Ntt> | Different kind protocol correspondence communication network management system |
KR20020090512A (en) * | 2001-05-28 | 2002-12-05 | 주식회사 하이닉스반도체 | Method for processing circular import definition error of asn.1 compiler |
KR100530154B1 (en) * | 2002-06-07 | 2005-11-21 | 인터내셔널 비지네스 머신즈 코포레이션 | Method and Apparatus for developing a transfer dictionary used in transfer-based machine translation system |
-
2009
- 2009-03-31 KR KR1020090027727A patent/KR101142322B1/en active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101449657B1 (en) * | 2013-03-05 | 2014-10-13 | 한국과학기술연구원 | Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor |
Also Published As
Publication number | Publication date |
---|---|
KR101142322B1 (en) | 2012-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7013425B2 (en) | Data processing method, and encoder, decoder and XML parser for encoding and decoding an XML document | |
US20060212859A1 (en) | System and method for generating XML-based language parser and writer | |
US20070136698A1 (en) | Method, system and apparatus for a parser for use in the processing of structured documents | |
KR101073847B1 (en) | Method, Apparatus and Recording Medium for Transforming Electronic Document Form | |
JP2001217720A (en) | Data compressing apparatus, data base system, data communication system, data compressing method, storage medium and program transmitter | |
US20110153531A1 (en) | Information processing apparatus and control method for the same | |
US20020147747A1 (en) | System for converting data to a markup language | |
US20100211867A1 (en) | Processing module, a device, and a method for processing of xml data | |
TWI713015B (en) | Language recognition method and device | |
JP6699200B2 (en) | Grammar generation for simple data types | |
CN113805881B (en) | Conversion method and device for front-end components among different frames | |
CN101499015A (en) | Method and converter for converting high level language to other high level languages | |
KR101142322B1 (en) | ASN.1 Compiler | |
CN100579120C (en) | Implementation method for automatic generation of PDU coding/decoding code based on ASN.1 definition | |
US20070050706A1 (en) | Method of xml transformation and presentation utilizing an application-specific parser | |
CN110543371B (en) | Method and device for remotely calling interface, electronic equipment and storage medium | |
US7243341B2 (en) | Scripting language for processing typed structured data | |
CN101000622A (en) | Method and device for checking validity of expandable mark language mode | |
US20170315970A1 (en) | Exi grammars to represent json schemas | |
CN113010471A (en) | File conversion method, file conversion device, storage medium and electronic equipment | |
CN115190184B (en) | Binary message cell editing method, system and storage medium | |
CN112579065A (en) | Method and system for generating cross-platform code for graphic configuration picture | |
US20060013322A1 (en) | Method for encoding an xml-based document | |
US20100013682A1 (en) | Method for generic encoding, decoding and processing of protocol data units (PDUS) | |
CN111736805B (en) | Method and device for processing Excel table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150427 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160426 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170405 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180416 Year of fee payment: 7 |