CN105786623B - 一种Java卡多通道临时对象管理方法 - Google Patents
一种Java卡多通道临时对象管理方法 Download PDFInfo
- Publication number
- CN105786623B CN105786623B CN201610122986.9A CN201610122986A CN105786623B CN 105786623 B CN105786623 B CN 105786623B CN 201610122986 A CN201610122986 A CN 201610122986A CN 105786623 B CN105786623 B CN 105786623B
- Authority
- CN
- China
- Prior art keywords
- dto
- rto
- memory
- size
- memory block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System (AREA)
Abstract
本发明涉及Java卡多通道临时对象管理方法,包括如下内容:Java卡管理两类多通道临时对象,即应用取消选择临时对象和卡片重置临时对象;对于应用取消选择临时对象,卡片预先分配多块大小相同的内存块用以分配给不同通道使用,而对于卡片重置临时对象,卡片预先分配一块共享的内存块来存储所有通道的此类对象;临时对象管理,主要包括分配内存和释放内存;本发明的方法实现了两类临时对象的差异性内存管理,在释放对象时具有较高的效率,该方法只要更新偏移位置大于所释放对象偏移位置的对象即可。
Description
技术领域
本发明涉及Java智能卡领域,具体涉及一种Java卡多通道临时对象管理方法。
背景技术
Java Card规范支持逻辑通道的概念,允许最多智能卡中的16个应用程序会话同时开启,每个逻辑通道一个会话。因为卡片中的APDU的处理不能中断,并且每个APDU包含一个到逻辑通道的引用,变动的APDU可以拟同步地访问卡片上的许多小应用程序。
逻辑通道的概念在Java Card规范中是可选的,但是很多智能卡由于也提出了多通道的要求,因此,在Java卡中提供多通道支持是有必要的。多通道对Java卡的设计与实现提出的最大挑战就在于临时对象的管理,由于Java卡的物理内存空间较小,而且多通道要求数据只能被通道内的对象访问。如何解决物理内存的有效利用、通道内数据的访问控制,成为支持多通道的Java卡必须解决的问题。
发明内容
为解决上述问题,本发明的目的是提供一种Java卡多通道临时对象管理方法。
本发明为实现上述目的,通过以下技术方案实现:
一种Java卡多通道临时对象管理方法,Java卡多通道临时对象包括应用取消选择临时对象和卡片重置临时对象,应用取消选择临时对象简称DTO,卡片重置临时对象简称RTO;
DTO管理是通过建立DTO信息表来表示每个通道已分配空间的DTO信息,分配多块固定大小内存区域用以存储不同通道的DTO,并且每次建立通道的时候重新为该通道分配DTO内存块,每个DTO内存块中存储当前相关联的包内DTO对象;
RTO管理是通过定义变量RTO_Size来表示所有包内RTO所分配的内存大小,分配一块指定大小的内存区域存储所有通道的RTO,RTO内存块中每个RTO所存储的位置是固定的,不跟随通道编号而变化。
优选的,DTO管理包括为DTO分配内存和释放已分配DTO内存;
所述的为DTO分配内存的操作包括如下步骤:
①通过DTO信息表获取当前上下文已分配DTO内存大小,计算DTO内存块剩余内存大小,计算公式为DTO内存块剩余内存大小=DTO内存块大小-已分配DTO内存大小;
②如果待分配DTO所需内存大小>DTO内存块剩余内存大小,返回操作,为DTO分配内存失败;如果待分配DTO所需内存大小≤DTO内存块剩余内存大小,则更新DTO信息表中当前上下文已分配DTO内存大小,计算公式为DTO信息表中当前上下文已分配DTO内存大小=DTO内存块原已分配内存大小+待分配内存大小;待分配DTO所在内存块的偏移地址为DTO内存块剩余内存大小;
所述的释放已分配DTO内存的操作包括如下步骤:
⑴获取待删除的DTO在DTO内存块的偏移地址;
⑵遍历包内每一个对象,如果当前对象是DTO,且偏移地址>待删除DTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除DTO所占内存大小;
⑶更新DTO信息表,将待释放DTO所属包的已分配内存大小更新为原分配内存大小-待删除DTO所占内存大小。
优选的,RTO管理包括为RTO分配内存和释放已分配RTO内存;
所述的为RTO分配内存的操作包括以下步骤:
A.计算RTO内存块剩余内存大小,计算公式为RTO内存块剩余内存大小=RTO内存块大小-RTO_Size;
B.如果待分配RTO所需内存大小>RTO内存块剩余内存大小,则返回操作,为RTO分配内存失败;如果待分配RTO所需内存大小≤RTO内存块剩余内存大小,待分配RTO所在内存块的偏移地址为RTO_Size,更新RTO_Size为原RTO_Size+待分配内存大小;
所述的释放已分配RTO内存的操作包括如下步骤:
⑴获取待删除的RTO在RTO内存块中的偏移地址;
⑵遍历包内每一个对象,如果当前对象是RTO,且偏移地址>待删除RTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除RTO所占内存大小;
⑶更新RTO_Size的值为:RTO_Size-待删除RTO所占内存大小。
本发明的优点在于:
本发明提供了一种Java卡多通道临时对象管理方法,该方法实现了两类临时对象的差异性内存管理,对于应用取消选择临时对象DTO,采用多块固定大小的DTO内存块,以满足多通道内对象独立访问的控制需要;对于卡片重置临时对象RTO,采用一块制定大小的RTO内存块,来适应卡片重置才能删除的特点。本发明的多通道临时对象的管理方法在分配内存和释放对象时均具有较高的效率,尤其表现在释放内存时,这是因为两者在释放内存时均需要调整已分配空间对象的偏移位置,以便有效的利用物理内存,因此,该方法只要更新偏移位置大于所释放对象偏移位置的对象即可。
附图说明
图1为应用取消选择临时对象管理的示意图。
具体实施方式
一种Java卡多通道临时对象管理方法,Java卡多通道临时对象包括应用取消选择临时对象和卡片重置临时对象,应用取消选择临时对象简称DTO,卡片重置临时对象简称RTO;
DTO管理是通过建立DTO信息表DTOTable来表示每个通道已分配空间的DTO信息,分配多块固定大小为DTR_SIZE内存区域用以存储不同通道的DTO,这些内存区域物理上相邻,最大的块数定义为MAX_D,具体如下表所示:
DTO内存块1:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
DTO内存块2:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
……………… |
DTO内存块MAX_D:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
DTO信息表DTOTable包括两部分内容:每个包内DTO对象所占用的内存大小和每个通道所使用的DTO内存块;卡片上电的时候,DTOTable的通道和DTO内存块信息重置,并且每次建立通道的时候重新为该通道分配DTO内存块,每个DTO内存块中存储当前相关联的包内DTO对象,;
其中建立通道的时候重新为该通道分配DTO内存块的步骤如下:第一,计算通道号,通道号通过APDU命令的CLA字节来确定,即CLA&0x0F;第二,分配一块未被使用的DTO内存块给当前的通道;第三,将通道编号和DTO内存块序号写入DTOTable。
RTO管理是通过定义变量RTO_Size来表示所有包内RTO所分配的内存大小,分配一块指定大小的内存区域存储所有通道的RTO,RTO内存块中每个RTO所存储的位置是固定的,不跟随通道编号而变化。
优选的,DTO管理包括为DTO分配内存和释放已分配DTO内存;
所述的为DTO分配内存的操作包括如下步骤:
①通过DTO信息表获取当前上下文已分配DTO内存大小,计算DTO内存块剩余内存大小,计算公式为DTO内存块剩余内存大小=DTO内存块大小-已分配DTO内存大小;
②如果待分配DTO所需内存大小>DTO内存块剩余内存大小,返回操作,为DTO分配内存失败;如果待分配DTO所需内存大小≤DTO内存块剩余内存大小,则更新DTO信息表中当前上下文已分配DTO内存大小,计算公式为DTO信息表中当前上下文已分配DTO内存大小=DTO内存块原已分配内存大小+待分配内存大小;待分配DTO所在内存块的偏移地址为DTO内存块剩余内存大小;
所述的释放已分配DTO内存的操作包括如下步骤:
⑴获取待删除的DTO在DTO内存块的偏移地址;
⑵遍历包内每一个对象,如果当前对象是DTO,且偏移地址>待删除DTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除DTO所占内存大小;
⑶更新DTO信息表,将待释放DTO所属包的已分配内存大小更新为原分配内存大小-待删除DTO所占内存大小。
优选的,RTO管理包括为RTO分配内存和释放已分配RTO内存;
所述的为RTO分配内存的操作包括以下步骤:
A.计算RTO内存块剩余内存大小,计算公式为RTO内存块剩余内存大小=RTO内存块大小-RTO_Size;
B.如果待分配RTO所需内存大小>RTO内存块剩余内存大小,则返回操作,为RTO分配内存失败;如果待分配RTO所需内存大小≤RTO内存块剩余内存大小,待分配RTO所在内存块的偏移地址为RTO_Size,更新RTO_Size为原RTO_Size+待分配内存大小;
所述的释放已分配RTO内存的操作包括如下步骤:
⑴获取待删除的RTO在RTO内存块中的偏移地址;
⑵遍历包内每一个对象,如果当前对象是RTO,且偏移地址>待删除RTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除RTO所占内存大小;
⑶更新RTO_Size的值为:RTO_Size-待删除RTO所占内存大小。
实施例1
Java卡多通道临时对象管理,其中所涉及的信息表和存储空间的定义如下:
①从外部随机存储器XRAM中分配多块大小为DTR_SIZE的内存区域用以存储不同通道的DTO,这些内存区域物理上相邻,开始的内存偏移位置为POS_DTO,最大块数定义为M_DTO,具体如下表所示:
DTO内存块1:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
DTO内存块2:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
……………… |
DTO内存块MAX_D:DTO对象1|DTO对象2|DTO对象3|……|DTO对象n |
②从外部随机存储器XRAM中分配一块大小为RTR_SIZE的内存区域存储所有通道的RTO,起始偏移位置为POS_RTO,定义RTO_Size为当前已分配的所有RTO所占用的内存空间;
③DTO信息表DTOTable分为两部分,一部分定义在EEPROM空间内,定义其开始偏移位置为POS_DTOTable,占据内存空间大小为2*Max_Package字节,其中Max_Package表示最多的包数量;另一部分定义在XRAM内存空间,定义为Byte DTOBlockNo[Max_D],其中,Max_D表示最多的DTO内存块数量。
实施例2
图1为应用取消选择临时对象管理的示意图,其中左侧图为DTO信息表,它给出了每个通道与其使用的DTO内存块的关系,每个通道建立的时候会分配一块空闲的DTO内存块,该信息将在DTO信息表中保存;右侧图给出了与具体通道关联的DTO内存块的存储示意,正在使用的通道所关联的内存块中将存储实际的DTO数据。
实施例3
为DTO分配内存的步骤如下:
①定义DTO所属的包ID为P_ID,所需内存大小为DSize;
②访问内存地址POS_DTOTable+P_ID*2,来得到所属包已分配的内存大小P_DSize;
③计算DTO内存块剩余内存大小CanUseSize=DTO内存块大小DTR_SIZE-已分配DTO内存大小P_DSize;
④如果CanUseSize≥DSize,则更新EEPROM中POS_DTOTable+P_ID*2的值为P_DSize+DSize、返回所分配DTO对象的偏移地址为POS_DTO+P_DSize;
⑤如果CanUseSize<DSize,返回失败。
释放已分配DTO内存的步骤如下:
①定义DTO所属的包ID为P_ID;
②获取其在对象表中存储的DTO偏移地址为OFFSET_D;
③遍历对象表内包P_ID的每一个对象,如果当前对象是DTO,且其偏移地址OFFSET_ND>待删除DTO偏移地址OFFSET_D,则更新其偏移地址OFFSET_ND为原偏移地址OFFSET_ND-待删除DTO所占内存大小DSize;
④更新EEPROM中待释放DTO所属包的已分配内存大小POS_DTOTable+P_ID*2的值为原分配内存大小P_DSize-待删除DTO所占内存大小DSize。
实施例4
为RTO分配内存的方法包括以下步骤:
①假定RTO所需内存大小为RSize;
②计算RTO内存块剩余内存大小CanUseSize=RTO内存块大小RTR_SIZE-已分配RTO内存大小RTO_Size;
③如果RTO内存块剩余内存大小CanUseSize>RSize,则回所分配RTO对象的偏移地址为RTO_Size、更新RTO_Size为RTO_Size+RSize;
④如果RTO内存块剩余内存大小CanUseSize<RSize,返回失败。
释放RTO内存的方法包括以下步骤:
①假定RTO所分配的内存大小为RSize;
②获取其在对象表中存储的RTO偏移地址为OFFSET_R;
③遍历对象表内的所有对象,如果是RTO,且其偏移地址OFFSET_NR>OFFSET_R,则更新其偏移地址OFFSET_NR为OFFSET_NR-RSize;
④更新RTO_Size的值为RTO_Size-待删除RTO所占内存大小RSize。
Claims (3)
1.一种Java卡多通道临时对象管理方法,其特征在于:Java卡多通道临时对象包括应用取消选择临时对象和卡片重置临时对象,应用取消选择临时对象简称DTO,卡片重置临时对象简称RTO;
DTO管理是通过建立DTO信息表来表示每个通道已分配空间的DTO信息,分配多块固定大小内存区域用以存储不同通道的DTO,并且每次建立通道的时候重新为该通道分配DTO内存块,每个DTO内存块中存储当前相关联的包内DTO对象;
RTO管理是通过定义变量RTO_Size来表示所有包内RTO所分配的内存大小,分配一块指定大小的内存区域存储所有通道的RTO,RTO内存块中每个RTO所存储的位置是固定的,不跟随通道编号而变化。
2.根据权利要求1所述的Java卡多通道临时对象管理方法,其特征在于:所述的DTO管理包括为DTO分配内存和释放已分配DTO内存;
所述的为DTO分配内存的操作包括如下步骤:
①通过DTO信息表获取当前上下文已分配DTO内存大小,计算DTO内存块剩余内存大小,计算公式为DTO内存块剩余内存大小=DTO内存块大小-已分配DTO内存大小;
②如果待分配DTO所需内存大小>DTO内存块剩余内存大小,返回操作,为DTO分配内存失败;如果待分配DTO所需内存大小≤DTO内存块剩余内存大小,则更新DTO信息表中当前上下文已分配DTO内存大小,计算公式为DTO信息表中当前上下文已分配DTO内存大小=DTO内存块原已分配内存大小+待分配内存大小;待分配DTO所在内存块的偏移地址为DTO内存块剩余内存大小;
所述的释放已分配DTO内存的操作包括如下步骤:
⑴获取待删除的DTO在DTO内存块的偏移地址;
⑵遍历包内每一个对象,如果当前对象是DTO,且偏移地址>待删除DTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除DTO所占内存大小;
⑶更新DTO信息表,将待释放DTO所属包的已分配内存大小更新为原分配内存大小-待删除DTO所占内存大小。
3.根据权利要求1所述的Java卡多通道临时对象管理方法,其特征在于:所述的RTO管理包括为RTO分配内存和释放已分配RTO内存;
所述的为RTO分配内存的操作包括以下步骤:
A.计算RTO内存块剩余内存大小,计算公式为RTO内存块剩余内存大小=RTO内存块大小-RTO_Size;
B.如果待分配RTO所需内存大小>RTO内存块剩余内存大小,则返回操作,为RTO分配内存失败;如果待分配RTO所需内存大小≤RTO内存块剩余内存大小,待分配RTO所在内存块的偏移地址为RTO_Size,更新RTO_Size为原RTO_Size+待分配内存大小;
所述的释放已分配RTO内存的操作包括如下步骤:
⑴获取待删除的RTO在RTO内存块中的偏移地址;
⑵遍历包内每一个对象,如果当前对象是RTO,且偏移地址>待删除RTO偏移地址,则修改该对象的偏移地址,其计算公式为原偏移地址-待删除RTO所占内存大小;
⑶更新RTO_Size的值为:RTO_Size -待删除RTO所占内存大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610122986.9A CN105786623B (zh) | 2016-03-04 | 2016-03-04 | 一种Java卡多通道临时对象管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610122986.9A CN105786623B (zh) | 2016-03-04 | 2016-03-04 | 一种Java卡多通道临时对象管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786623A CN105786623A (zh) | 2016-07-20 |
CN105786623B true CN105786623B (zh) | 2019-03-05 |
Family
ID=56387666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610122986.9A Active CN105786623B (zh) | 2016-03-04 | 2016-03-04 | 一种Java卡多通道临时对象管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786623B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287695B (zh) * | 2019-06-25 | 2020-12-25 | 恒宝股份有限公司 | 一种Java卡及其临时对象的管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289967A (zh) * | 1999-09-24 | 2001-04-04 | 国际商业机器公司 | Java卡小应用程序中数据目标的动态内存管理 |
DE19945862A1 (de) * | 1999-09-24 | 2001-04-05 | Ibm | Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets |
CN101777061A (zh) * | 2009-12-31 | 2010-07-14 | 北京握奇数据系统有限公司 | 一种java卡对象管理方法及java卡 |
CN105159615A (zh) * | 2015-09-10 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种动态内存控制方法及系统 |
-
2016
- 2016-03-04 CN CN201610122986.9A patent/CN105786623B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1289967A (zh) * | 1999-09-24 | 2001-04-04 | 国际商业机器公司 | Java卡小应用程序中数据目标的动态内存管理 |
DE19945862A1 (de) * | 1999-09-24 | 2001-04-05 | Ibm | Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets |
CN101777061A (zh) * | 2009-12-31 | 2010-07-14 | 北京握奇数据系统有限公司 | 一种java卡对象管理方法及java卡 |
CN105159615A (zh) * | 2015-09-10 | 2015-12-16 | 上海斐讯数据通信技术有限公司 | 一种动态内存控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105786623A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5841142B2 (ja) | 共有スタックの部分を割り当てるためのシステムおよび方法 | |
CN107888428A (zh) | 一种带宽调整方法、装置、设备及可读存储介质 | |
US20060036705A1 (en) | Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory | |
CN105786623B (zh) | 一种Java卡多通道临时对象管理方法 | |
CN106161256A (zh) | 一种边界网关协议bgp路由的处理方法及装置 | |
CN101226553A (zh) | 一种嵌入式数据库变长字段存储的实现方法及装置 | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
CN109067562B (zh) | 基于智能指针的动态配置更新方法及系统、服务器及介质 | |
CN105469173A (zh) | 一种静态内存进行优化管理的方法 | |
CN110493060A (zh) | 一种虚拟ip分配方法及相关装置 | |
CN113076063B (zh) | 一种目录配额预申请方法、系统、存储介质及设备 | |
CN113419672B (zh) | 一种存储容量管理方法、系统及存储介质 | |
US20160342390A1 (en) | Fifo memory having a memory region modifiable during operation | |
CN112291310B (zh) | 一种统计连接数的方法及装置 | |
CN100555245C (zh) | 资源存储方法及装置 | |
CN107861819A (zh) | 一种缓存组负载均衡的方法、装置和计算机可读存储介质 | |
EP3474147B1 (en) | Cache management method and device, and computer storage medium | |
US11388115B2 (en) | Circuit within switch and method for managing memory within switch | |
US10698878B2 (en) | Graph update flush to a shared memory | |
CN106021121B (zh) | 用以优化分组缓冲器空间的分组处理系统、方法和设备 | |
CN110673797A (zh) | 一种分布式块存储服务中的逻辑卷拷贝方法 | |
CN112751949A (zh) | 一种自适应分配管理网地址的方法 | |
JP2012243143A (ja) | フラッシュメモリ装置 | |
CN111562980A (zh) | 内存分配 | |
CN104657185A (zh) | 一种Java卡的Java代码补丁方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |