eSIM RSP 测试用例对比站

人工切片(-man) ↔ Cas 盲生成(-cas)· 真机真卡执行证据对照

源码对照:4.2.22.2.1

ES10c 停用 Profile(Case 3) / TC_eUICC_ES10c.DisableProfile_Case3

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
891 行 / 34823 字符 / gb18030
-cas 入口
TC_eUICC_ES10c_DisableProfile_Case3/Import/TC_eUICC_ES10c_DisableProfile_Case3.js
699 行 / 55487 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js891 行 / 34823 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DisableProfile_Case3_01_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_UICC_Reset + TC_eUICC_ES10c_DisableProfile_Case3_02_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_UICC_Reset + TC_eUICC_ES10c_DisableProfile_Case3_03_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change + TC_eUICC_ES10c_DisableProfile_Case3_04_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change + TC_eUICC_ES10c_DisableProfile_Case3_05_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_not_set + TC_eUICC_ES10c_DisableProfile_Case3_06_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_not_set + TC_eUICC_ES10c_DisableProfile_Case3_07_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_08_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_09_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_10_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported (extracted verbatim)
2
3function TC_eUICC_ES10c_DisableProfile_Case3_01_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_UICC_Reset()
4{
5	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
6	var ISD_P_Test01 = curProfile_ISD_P_AID;
7	
8	tracenamestr = "测试目的:设备支持 “UICC Reset”,通过ISD-P AID去失效profile,并设置refreshFlag";
9	curDis.TraceStart(sno++,tracenamestr);
10	
11	curLogicChannel = 0;
12	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
13	Ini_powerOn_eUICC_LPAe_not_activate();
14	
15	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
16	TS_MANAGE_CHANNEL_OPEN();
17	
18	curLogicChannel = 1;
19	
20	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
21	TS_SELECT("Select ISD",ISD_R_AID,"9000");
22	
23	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
24	var disableProRequest = new DisableProfileRequest();
25	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
26	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
27	disableProRequest.GenHexData();
28	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
29	
30	curStrHandle.CheckData("", respData, "DisableProfileResponse");
31	
32	curLogicChannel = 0;
33	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
34	
35	FetchStr = Fetch("","9000","");
36		
37	var CmdDetails = GetValueByTag("01",1);
38	var CmdQualifier = CmdDetails.substr(4,2);
39	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
40	
41	curLogicChannel = 0;
42	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
43	Ini_powerOn_eUICC_LPAe_not_activate();
44	
45	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
46	TS_MANAGE_CHANNEL_OPEN();
47	
48	curLogicChannel = 1;
49	
50	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
51	TS_SELECT("Select ISD",ISD_R_AID,"9000");
52	
53	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
54	var proInfoListRequest = new ProfileInfoListRequest();
55	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
56	proInfoListRequest.tagList = "5A4F9F70";
57	proInfoListRequest.GenHexData();
58	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
59	
60
61	var proInfoListResponse = new  ProfileInfoListResponse();
62	proInfoListResponse.checkCardResDataFormat(respData);
63	
64	try
65	{
66		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
67		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
68		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
69	}catch(e){
70		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
71	}
72	
73	curLogicChannel = 0;
74	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
75	var para1 = new SelectFileEFPara_3G("2FE2");
76	para1.apdu.ressw = "6A82";
77	SendAPDU(para1.apdu);
78	
79	RecoverCard();
80	
81}
82
83function TC_eUICC_ES10c_DisableProfile_Case3_02_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_UICC_Reset()
84{
85	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
86	var ISD_P_Test01 = curProfile_ISD_P_AID;
87	
88	tracenamestr = "测试目的:设备支持 “UICC Reset”,通过ICCID去失效profile,并设置refreshFlag";
89	curDis.TraceStart(sno++,tracenamestr);
90	
91	curLogicChannel = 0;
92	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
93	Ini_powerOn_eUICC_LPAe_not_activate();
94	
95	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
96	TS_MANAGE_CHANNEL_OPEN();
97	
98	curLogicChannel = 1;
99	
100	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
101	TS_SELECT("Select ISD",ISD_R_AID,"9000");
102	
103	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
104	var disableProRequest = new DisableProfileRequest();
105	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
106	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
107	disableProRequest.GenHexData();
108	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
109	
110	curStrHandle.CheckData("", respData, "DisableProfileResponse");
111	
112	curLogicChannel = 0;
113	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
114	
115	FetchStr = Fetch("","9000","");
116		
117	var CmdDetails = GetValueByTag("01",1);
118	var CmdQualifier = CmdDetails.substr(4,2);
119	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
120	
121	curLogicChannel = 0;
122	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
123	Ini_powerOn_eUICC_LPAe_not_activate();
124	
125	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
126	TS_MANAGE_CHANNEL_OPEN();
127	
128	curLogicChannel = 1;
129	
130	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
131	TS_SELECT("Select ISD",ISD_R_AID,"9000");
132	
133	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
134	var proInfoListRequest = new ProfileInfoListRequest();
135	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
136	proInfoListRequest.tagList = "5A4F9F70";
137	proInfoListRequest.GenHexData();
138	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
139	
140
141	var proInfoListResponse = new  ProfileInfoListResponse();
142	proInfoListResponse.checkCardResDataFormat(respData);
143	
144	try
145	{
146		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
147		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
148		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
149	}catch(e){
150		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
151	}
152	
153	curLogicChannel = 0;
154	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
155	var para1 = new SelectFileEFPara_3G("2FE2");
156	para1.apdu.ressw = "6A82";
157	SendAPDU(para1.apdu);
158	
159	RecoverCard();
160}
161
162function TC_eUICC_ES10c_DisableProfile_Case3_03_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change()
163{
164	if(!Card_Have_ECC_Cert)
165		return;
166
167	TestOfMEPMode = 0;	
168
169	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
170	var ISD_P_Test01 = curProfile_ISD_P_AID;
171	
172	tracenamestr = "测试目的:设备支持 “eUICC Profile State Change”,通过ISD-P AID去失效profile,并设置refreshFlag";
173	curDis.TraceStart(sno++,tracenamestr);
174	
175	curLogicChannel = 0;
176	
177	TERMINAL_PROFILE_Default = TERMINAL_PROFILE_eUICCProfileStateChanged;//add 20260423
178	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
179	Ini_powerOn_eUICC_LPAe_not_activate();
180	
181	
182	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
183	TS_MANAGE_CHANNEL_OPEN();
184	
185	curLogicChannel = 1;
186	
187	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
188	TS_SELECT("Select ISD",ISD_R_AID,"9000");
189	
190	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
191	var disableProRequest = new DisableProfileRequest();
192	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
193	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
194	disableProRequest.GenHexData();
195	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
196	
197	curStrHandle.CheckData("", respData, "DisableProfileResponse");
198	
199		
200	curLogicChannel = 0;
201	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
202	
203	FetchStr = Fetch("","9000","");
204		
205	var CmdDetails = GetValueByTag("01",1);
206	var CmdQualifier = CmdDetails.substr(4,2);
207	CheckData("09",CmdQualifier,"the command qualifier is equal to ’09’ (eUICC Profile State Change)");//'09' = eUICC Profile State Change;   102.223-8.6
208	
209	TerminalResponse("00","9000");
210	
211	
212	curLogicChannel = 0;
213	curDis.TestStepStart2(stno++,"eUICC卡片初始化:从第 2 步到第 4 步,[SELECT_MF]、[TERMINAL_CAPABILITY_LPAd] 、[TERMINAL_PROFILE_eUICCProfileStateChanged] ");
214	
215	curLogicChannel = 0;
216	
217	if (check_eUICC_support_TERMINAL_CAPABILITY_cmd())
218		TS_TERMINAL_CAPABILITY_cmd();
219	else
220		obj.SubLevel("eUICC不支持”TERMINAL_CAPABILITY“命令", level_of_SubLevel.warning);
221	
222	IniCard_SetUpMenu("",1);
223	
224	
225	
226	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
227	TS_MANAGE_CHANNEL_OPEN();
228	
229	curLogicChannel = 1;
230	
231	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
232	TS_SELECT("Select ISD",ISD_R_AID,"9000");
233	
234	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
235	
236	var proInfoListRequest = new ProfileInfoListRequest();
237	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
238	proInfoListRequest.tagList = "5A4F9F70";
239	proInfoListRequest.GenHexData();
240	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
241	
242
243	var proInfoListResponse = new  ProfileInfoListResponse();
244	proInfoListResponse.checkCardResDataFormat(respData);
245	
246	try
247	{
248		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
249		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
250		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
251	}catch(e){
252		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
253	}
254	
255	curLogicChannel = 0;
256	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
257	var para1 = new SelectFileEFPara_3G("2FE2");
258	para1.apdu.ressw = "6A82";
259	SendAPDU(para1.apdu);
260	
261	RecoverCard();
262}
263
264function TC_eUICC_ES10c_DisableProfile_Case3_04_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change()
265{
266	if(!Card_Have_ECC_Cert)
267	return;
268	
269	TestOfMEPMode = 0;	
270
271	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
272	var ISD_P_Test01 = curProfile_ISD_P_AID;
273	
274	tracenamestr = "测试目的:设备支持 “eUICC Profile State Change”,通过ICCID去失效profile,并设置refreshFlag";
275	curDis.TraceStart(sno++,tracenamestr);
276	
277	curLogicChannel = 0;
278	
279	TERMINAL_PROFILE_Default = TERMINAL_PROFILE_eUICCProfileStateChanged;//add 20260423
280	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
281	Ini_powerOn_eUICC_LPAe_not_activate();
282	
283	
284	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
285	TS_MANAGE_CHANNEL_OPEN();
286	
287	curLogicChannel = 1;
288	
289	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
290	TS_SELECT("Select ISD",ISD_R_AID,"9000");
291	
292	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
293	var disableProRequest = new DisableProfileRequest();
294	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
295	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
296	disableProRequest.GenHexData();
297	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
298	
299	curStrHandle.CheckData("", respData, "DisableProfileResponse");
300	
301		
302	curLogicChannel = 0;
303	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
304	
305	FetchStr = Fetch("","9000","");
306		
307	var CmdDetails = GetValueByTag("01",1);
308	var CmdQualifier = CmdDetails.substr(4,2);
309	CheckData("09",CmdQualifier,"the command qualifier is equal to ’09’ (eUICC Profile State Change)");//'09' = eUICC Profile State Change;   102.223-8.6
310	
311	TerminalResponse("00","9000");
312	
313	
314	curLogicChannel = 0;
315	curDis.TestStepStart2(stno++,"eUICC卡片初始化:从第 2 步到第 4 步,[SELECT_MF]、[TERMINAL_CAPABILITY_LPAd] 、[TERMINAL_PROFILE_eUICCProfileStateChanged] ");
316	
317	curLogicChannel = 0;
318	
319	if (check_eUICC_support_TERMINAL_CAPABILITY_cmd())
320		TS_TERMINAL_CAPABILITY_cmd();
321	else
322		obj.SubLevel("eUICC不支持”TERMINAL_CAPABILITY“命令", level_of_SubLevel.warning);
323	
324	IniCard_SetUpMenu("",1);
325	
326	
327	
328	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
329	TS_MANAGE_CHANNEL_OPEN();
330	
331	curLogicChannel = 1;
332	
333	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
334	TS_SELECT("Select ISD",ISD_R_AID,"9000");
335	
336	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
337
338	var proInfoListRequest = new ProfileInfoListRequest();
339	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
340	proInfoListRequest.tagList = "5A4F9F70";
341	proInfoListRequest.GenHexData();
342	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
343	
344
345	var proInfoListResponse = new  ProfileInfoListResponse();
346	proInfoListResponse.checkCardResDataFormat(respData);
347	
348	try
349	{
350		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
351		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
352		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
353	}catch(e){
354		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
355	}
356	
357	curLogicChannel = 0;
358	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
359	var para1 = new SelectFileEFPara_3G("2FE2");
360	para1.apdu.ressw = "6A82";
361	SendAPDU(para1.apdu);
362	
363	RecoverCard();
364}
365
366function TC_eUICC_ES10c_DisableProfile_Case3_05_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_not_set()
367{
368	if(!Card_Have_ECC_Cert)
369		return;
370	
371	TestOfMEPMode = 0;	
372
373	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
374	var ISD_P_Test01 = curProfile_ISD_P_AID;
375	
376	tracenamestr = "测试目的:通过ISD-P AID去失效profile,不设置refreshFlag";
377	curDis.TraceStart(sno++,tracenamestr);
378	
379	curLogicChannel = 0;
380	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
381	Ini_powerOn_eUICC_LPAe_not_activate();
382	
383	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
384	TS_MANAGE_CHANNEL_OPEN();
385	
386	curLogicChannel = 1;
387	
388	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
389	TS_SELECT("Select ISD",ISD_R_AID,"9000");
390	
391
392	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;"); 
393	var disableProRequest = new DisableProfileRequest();
394	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
395	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
396	disableProRequest.GenHexData();
397	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
398	
399	curStrHandle.CheckData("", respData, "DisableProfileResponse");
400	
401	
402	curDis.TestStepStart2(stno++,"读卡器向卡片发送 TERMINAL_PROFILE命令;");
403	IniCard_SetUpMenu("",1);
404	
405
406	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
407	TS_MANAGE_CHANNEL_OPEN();
408	curLogicChannel = 1;
409	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
410	TS_SELECT("Select ISD",ISD_R_AID,"9000");
411	
412	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
413	
414	var proInfoListRequest = new ProfileInfoListRequest();
415	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
416	proInfoListRequest.tagList = "5A4F9F70";
417	proInfoListRequest.GenHexData();
418	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
419	
420
421	var proInfoListResponse = new  ProfileInfoListResponse();
422	proInfoListResponse.checkCardResDataFormat(respData);
423	
424	try
425	{
426		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
427		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
428		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
429	}catch(e){
430		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
431	}
432	
433	curLogicChannel = 0;
434	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
435	var para1 = new SelectFileEFPara_3G("2FE2");
436	para1.apdu.ressw = "6A82";
437	SendAPDU(para1.apdu);
438	
439	RecoverCard();
440	
441}
442
443function TC_eUICC_ES10c_DisableProfile_Case3_06_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_not_set()
444{
445	if(!Card_Have_ECC_Cert)
446		return;
447	
448	TestOfMEPMode = 0;	
449
450	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
451	var ISD_P_Test01 = curProfile_ISD_P_AID;
452	
453	tracenamestr = "测试目的:通过ICCID去失效profile,不设置refreshFlag";
454	curDis.TraceStart(sno++,tracenamestr);
455	
456	curLogicChannel = 0;
457	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
458	Ini_powerOn_eUICC_LPAe_not_activate();
459	
460	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
461	TS_MANAGE_CHANNEL_OPEN();
462	
463	curLogicChannel = 1;
464	
465	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
466	TS_SELECT("Select ISD",ISD_R_AID,"9000");
467	
468	
469	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;");
470
471	var disableProRequest = new DisableProfileRequest();
472	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
473	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
474	disableProRequest.GenHexData();
475	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
476	
477	curStrHandle.CheckData("", respData, "DisableProfileResponse");
478	
479	curDis.TestStepStart2(stno++,"读卡器向卡片发送 TERMINAL_PROFILE命令;");
480	IniCard_SetUpMenu("",1);
481	
482
483	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
484	TS_MANAGE_CHANNEL_OPEN();
485	curLogicChannel = 1;
486	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
487	TS_SELECT("Select ISD",ISD_R_AID,"9000");
488	
489	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
490	var proInfoListRequest = new ProfileInfoListRequest();
491	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
492	proInfoListRequest.tagList = "5A4F9F70";
493	proInfoListRequest.GenHexData();
494	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
495	
496
497	var proInfoListResponse = new  ProfileInfoListResponse();
498	proInfoListResponse.checkCardResDataFormat(respData);
499	
500	try
501	{
502		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
503		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
504		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
505	}catch(e){
506		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
507	}
508	
509	curLogicChannel = 0;
510	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
511	var para1 = new SelectFileEFPara_3G("2FE2");
512	para1.apdu.ressw = "6A82";
513	SendAPDU(para1.apdu);
514	
515	RecoverCard();
516	
517}
518
519function TC_eUICC_ES10c_DisableProfile_Case3_07_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_catBusynotsupported()
520{
521
522	//测试入口条件
523	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
524		return;
525	
526	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
527	var ISD_P_Test01 = curProfile_ISD_P_AID;
528	
529
530	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中时,通过ICCID去失效profile,并设置refreshFlag";
531	curDis.TraceStart(sno++,tracenamestr);
532	
533	curLogicChannel = 0;
534	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
535	Ini_powerOn_eUICC_LPAe_not_activate();
536	
537	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
538	TS_MANAGE_CHANNEL_OPEN();
539	curLogicChannel = 1;
540	
541	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
542	TS_SELECT("Select ISD",ISD_R_AID,"9000");
543	
544	curLogicChannel = 0;
545	var sSendType = SendTypeByOTA.SMS;
546	KIC = MNO_SCP80_ENC_KEY;
547	KID = MNO_SCP80_AUTH_KEY;
548	KIK = MNO_SCP80_DATA_ENC_KEY;
549	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
550	sAPDU = "80F28002024F00";
551	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
552	HaveReEntry91XX = true;
553	var ss = obj.GetState();
554	ReEntry91XXLength = ss.substr(2,2);
555	
556	curLogicChannel = 1;
557	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
558	var disableProRequest = new DisableProfileRequest();
559	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
560	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
561	disableProRequest.GenHexData();
562	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
563	curStrHandle.CheckData("", respData, "DisableProfileResponse");
564	
565	curLogicChannel = 0;
566	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
567	FetchStr = Fetch("","9000","");
568		
569	var CmdDetails = GetValueByTag("01",1);
570	var CmdQualifier = CmdDetails.substr(4,2);
571	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
572	
573	
574	curLogicChannel = 0;
575	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
576	Ini_powerOn_eUICC_LPAe_not_activate();
577	
578	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
579	TS_MANAGE_CHANNEL_OPEN();
580
581	curLogicChannel = 1;
582	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
583	TS_SELECT("Select ISD",ISD_R_AID,"9000");
584
585	
586	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
587	var proInfoListRequest = new ProfileInfoListRequest();
588	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
589	proInfoListRequest.tagList = "5A4F9F70";
590	proInfoListRequest.GenHexData();
591	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
592	
593	var proInfoListResponse = new  ProfileInfoListResponse();
594	proInfoListResponse.checkCardResDataFormat(respData);
595	
596	try
597	{
598		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
599		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
600		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
601	}catch(e){
602		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
603	}
604
605  curLogicChannel = 0;
606	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
607	var para1 = new SelectFileEFPara_3G("2FE2");
608	para1.apdu.ressw = "6A82";
609	SendAPDU(para1.apdu);
610	
611	RecoverCard();
612}
613
614function TC_eUICC_ES10c_DisableProfile_Case3_08_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_catBusynotsupported()
615{
616
617	//测试入口条件
618	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
619		return;
620	
621	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
622	var ISD_P_Test01 = curProfile_ISD_P_AID;
623	
624
625	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中时,通过ICCID去失效profile,不设置refreshFlag";
626	curDis.TraceStart(sno++,tracenamestr);
627	
628	curLogicChannel = 0;
629	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
630	Ini_powerOn_eUICC_LPAe_not_activate();
631	
632	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
633	TS_MANAGE_CHANNEL_OPEN();
634	curLogicChannel = 1;
635	
636	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
637	TS_SELECT("Select ISD",ISD_R_AID,"9000");
638	
639	curLogicChannel = 0;
640	var sSendType = SendTypeByOTA.SMS;
641	KIC = MNO_SCP80_ENC_KEY;
642	KID = MNO_SCP80_AUTH_KEY;
643	KIK = MNO_SCP80_DATA_ENC_KEY;
644	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
645	sAPDU = "80F28002024F00";
646	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
647	HaveReEntry91XX = true;
648	var ss = obj.GetState();
649	ReEntry91XXLength = ss.substr(2,2);
650	
651	curLogicChannel = 1;
652	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;");
653	var disableProRequest = new DisableProfileRequest();
654	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
655	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
656	disableProRequest.GenHexData();
657	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
658	curStrHandle.CheckData("", respData, "DisableProfileResponse");
659	
660	
661	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
662	var proInfoListRequest = new ProfileInfoListRequest();
663	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
664	proInfoListRequest.tagList = "5A4F9F70";
665	proInfoListRequest.GenHexData();
666	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
667	
668	var proInfoListResponse = new  ProfileInfoListResponse();
669	proInfoListResponse.checkCardResDataFormat(respData);
670	
671	try
672	{
673		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
674		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
675		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
676	}catch(e){
677		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
678	}
679
680  curLogicChannel = 0;
681	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
682	var para1 = new SelectFileEFPara_3G("2FE2");
683	para1.apdu.ressw = "6A82";
684	SendAPDU(para1.apdu);
685	
686	RecoverCard();
687}
688
689function TC_eUICC_ES10c_DisableProfile_Case3_09_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported()
690{
691	//测试入口条件
692	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
693		return;
694		
695	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
696	var ISD_P_Test01 = curProfile_ISD_P_AID;
697	
698
699	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中(未给终端响应)时,通过ICCID去失效profile,设置refreshFlag";
700	curDis.TraceStart(sno++,tracenamestr);
701	
702	curLogicChannel = 0;
703	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
704	Ini_powerOn_eUICC_LPAe_not_activate();
705	
706	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
707	TS_MANAGE_CHANNEL_OPEN();
708	curLogicChannel = 1;
709	
710	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
711	TS_SELECT("Select ISD",ISD_R_AID,"9000");
712	
713	curLogicChannel = 0;
714	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
715
716	var sSendType = SendTypeByOTA.SMS;
717	KIC = MNO_SCP80_ENC_KEY;
718	KID = MNO_SCP80_AUTH_KEY;
719	KIK = MNO_SCP80_DATA_ENC_KEY;
720	sAPDU = "80F28002024F00";
721	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
722	HaveReEntry91XX = true;
723	var ss = obj.GetState();
724	ReEntry91XXLength = ss.substr(2,2);
725	
726	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
727	curLogicChannel = 0;
728	CardSendMessageToServer(sSendType,1,"0161XX","00");
729
730	
731	
732	curLogicChannel = 1;
733	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
734	var disableProRequest = new DisableProfileRequest();
735	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
736	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
737	disableProRequest.GenHexData();
738	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
739	curStrHandle.CheckData("", respData, "DisableProfileResponse");
740	
741	curLogicChannel = 0;
742	curDis.TestStepStart2(stno++,"读卡器向卡片发送TerminalResponse命令;");
743	TerminalResponse("00","91XX");		
744	var ss = obj.GetState();
745	HaveReEntry91XX = false;
746	
747	
748	curDis.TestStepStart2(stno++,"Fetch;");
749	FetchStr = Fetch(ss.substr(2),"9000","");	
750	var CmdDetails = GetValueByTag("01",1);
751	var CmdQualifier = CmdDetails.substr(4,2);
752	curStrHandle.CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
753	
754
755	curLogicChannel = 0;
756	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
757	Ini_powerOn_eUICC_LPAe_not_activate();
758	
759	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
760	TS_MANAGE_CHANNEL_OPEN();
761	curLogicChannel = 1;
762	
763	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
764	TS_SELECT("Select ISD",ISD_R_AID,"9000");
765	
766	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile1状态;");
767	var proInfoListRequest = new ProfileInfoListRequest();
768	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
769	proInfoListRequest.tagList = "5A4F9F70";
770	proInfoListRequest.GenHexData();
771	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
772	
773	var proInfoListResponse = new  ProfileInfoListResponse();
774	proInfoListResponse.checkCardResDataFormat(respData);
775	
776	try
777	{
778		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
779		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
780		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
781	}catch(e){
782		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
783	}
784
785
786 	
787	curLogicChannel = 0;
788	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
789	var para1 = new SelectFileEFPara_3G("2FE2");
790	SendAPDU(para1.apdu);
791	
792	curDis.TestStepStart2(stno++,"读卡器向卡片发送read binary命令;");
793	var para1 = new ReadBinaryPara_3G("00","00","0A");
794	para1.apdu.ressw = "6A82";
795	SendAPDU(para1.apdu);
796	
797	RecoverCard();
798}
799
800function TC_eUICC_ES10c_DisableProfile_Case3_10_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported()
801{
802	//测试入口条件
803	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
804		return;
805		
806	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
807	var ISD_P_Test01 = curProfile_ISD_P_AID;
808	
809
810	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中(未给终端响应)时,通过ICCID去失效profile,不设置refreshFlag";
811	curDis.TraceStart(sno++,tracenamestr);
812	
813	curLogicChannel = 0;
814	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
815	Ini_powerOn_eUICC_LPAe_not_activate();
816	
817	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
818	TS_MANAGE_CHANNEL_OPEN();
819	curLogicChannel = 1;
820	
821	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
822	TS_SELECT("Select ISD",ISD_R_AID,"9000");
823	
824	curLogicChannel = 0;
825	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
826
827	var sSendType = SendTypeByOTA.SMS;
828	KIC = MNO_SCP80_ENC_KEY;
829	KID = MNO_SCP80_AUTH_KEY;
830	KIK = MNO_SCP80_DATA_ENC_KEY;
831	sAPDU = "80F28002024F00";
832	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
833	HaveReEntry91XX = true;
834	var ss = obj.GetState();
835	ReEntry91XXLength = ss.substr(2,2);
836	
837	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
838	curLogicChannel = 0;
839	CardSendMessageToServer(sSendType,1,"0161XX","00");
840
841	
842	
843	curLogicChannel = 1;
844	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为Flase;");
845	var disableProRequest = new DisableProfileRequest();
846	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
847	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
848	disableProRequest.GenHexData();
849	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
850	curStrHandle.CheckData("", respData, "DisableProfileResponse");
851	
852	curLogicChannel = 0;
853	curDis.TestStepStart2(stno++,"读卡器向卡片发送TerminalResponse命令;");
854	TerminalResponse("00","91XX");		
855	var ss = obj.GetState();
856	HaveReEntry91XX = false;
857	
858	
859	curLogicChannel = 1;
860	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile1状态;");
861	var proInfoListRequest = new ProfileInfoListRequest();
862	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
863	proInfoListRequest.tagList = "5A4F9F70";
864	proInfoListRequest.GenHexData();
865	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
866	
867	var proInfoListResponse = new  ProfileInfoListResponse();
868	proInfoListResponse.checkCardResDataFormat(respData);
869	
870	try
871	{
872		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
873		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
874		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
875	}catch(e){
876		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
877	}
878 	
879	curLogicChannel = 0;
880	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
881	var para1 = new SelectFileEFPara_3G("2FE2");
882	SendAPDU(para1.apdu);
883	
884	curDis.TestStepStart2(stno++,"读卡器向卡片发送read binary命令;");
885	var para1 = new ReadBinaryPara_3G("00","00","0A");
886	para1.apdu.ressw = "6A82";
887	SendAPDU(para1.apdu);
888	
889	RecoverCard();
890}
891
-cas 盲生成TC_eUICC_ES10c_DisableProfile_Case3/Import/TC_eUICC_ES10c_DisableProfile_Case3.js699 行 / 55487 字符 / gb18030
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DisableProfile_Case3,Test Sequence #01-#10 Nominal (all 10 sequences),适用性 M。
4// Test points: ICH-SEQ01-IC1-K1-C1 ATR_present;ICH-SEQ01-IC1-K2-C2 FCP_Template
5//   ICH-SEQ01-IC1-K2-C4 SW;ICH-SEQ01-IC1-K3-C4 SW;ICH-SEQ01-IC1-K4-C4 final SW
6//   ICH-SEQ01-IC2-K1-C4 SW;ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted;ICH-SEQ01-IC2-K2-C4 SW
7//   S1-C2 response data absent;S1-C1 SW1 91;S2-C1 proactive command envelope
8//   IC4-IC1-K1-C1 ATR_present;IC4-IC1-K2-C2 FCP_Template;IC4-IC1-K2-C4 SW;IC4-IC1-K3-C4 SW
9//   IC4-IC1-K4-C4 final SW;IC4-IC2-K1-C4 SW;IC4-IC2-K1-C3 CHANNEL_NUMBER extracted;IC4-IC2-K2-C4 SW
10//   S4-C1 SW;S4-C2 contains PROFILE_INFO1_DISABLED;S5-C1 SW;S6-C2 response data absent;S6-C1 SW1 91
11//   S7-C1 proactive command envelope;IC9-IC1-K1-C1 ATR_present;IC9-IC1-K2-C2 FCP_Template
12//   IC9-IC1-K2-C4 SW;IC9-IC1-K3-C4 SW;IC9-IC1-K4-C4 final SW;IC9-IC2-K1-C4 SW
13//   IC9-IC2-K1-C3 CHANNEL_NUMBER extracted;IC9-IC2-K2-C4 SW;S9-C1 SW
14//   S9-C2 contains PROFILE_INFO1_DISABLED;S10-C1 SW;S11-C2 response data absent;S11-C1 SW1 91
15//   S12-C1 proactive command envelope;S13-C1 SW;IC15-IC1-K2-C2 FCP_Template;IC15-IC1-K2-C4 SW
16//   IC15-IC1-K3-C4 SW;IC15-IC1-K4-C4 final SW;IC16-IC2-K1-C4 SW
17//   IC16-IC2-K1-C3 CHANNEL_NUMBER extracted;IC16-IC2-K2-C4 SW;S16-C1 SW
18//   S16-C2 contains PROFILE_INFO1_DISABLED;S17-C1 SW;S18-C2 response data absent;S18-C1 SW1 91
19//   S19-C1 proactive command envelope;S20-C1 SW;IC22-IC1-K2-C2 FCP_Template;IC22-IC1-K2-C4 SW
20//   IC22-IC1-K3-C4 SW;IC22-IC1-K4-C4 final SW;IC23-IC2-K1-C4 SW
21//   IC23-IC2-K1-C3 CHANNEL_NUMBER extracted;IC23-IC2-K2-C4 SW;S23-C1 SW
22//   S23-C2 contains PROFILE_INFO1_DISABLED;S24-C1 SW;S25-C1 SW;S25-C2 response data absent
23//   S26-C1 SW;S26-C2 contains PROFILE_INFO1_DISABLED;S27-C1 SW;S28-C1 SW
24//   S28-C2 response data absent;S29-C1 SW;S29-C2 contains PROFILE_INFO1_DISABLED;S30-C1 SW
25//   S31-C1 SW1 91;S32-C2 response data absent;S32-C1 SW1 91;S33-C1 proactive command envelope
26//   IC35-IC1-K1-C1 ATR_present;IC35-IC1-K2-C2 FCP_Template;IC35-IC1-K2-C4 SW;IC35-IC1-K3-C4 SW
27//   IC35-IC1-K4-C4 final SW;IC35-IC2-K1-C4 SW;IC35-IC2-K1-C3 CHANNEL_NUMBER extracted
28//   IC35-IC2-K2-C4 SW;S35-C1 SW;S35-C2 contains PROFILE_INFO1_DISABLED;S36-C1 SW;S37-C1 SW1 91
29//   S38-C1 SW;S38-C2 response data absent;S39-C1 SW;S39-C2 contains PROFILE_INFO1_DISABLED
30//   S40-C1 SW;S41-C1 SW1 91;S42-C1 proactive command envelope;S43-C1 SW;S43-C2 response data absent
31//   S44-C1 SW1 91;S45-C1 proactive command envelope;IC47-IC1-K1-C1 ATR_present
32//   IC47-IC1-K2-C2 FCP_Template;IC47-IC1-K2-C4 SW;IC47-IC1-K3-C4 SW;IC47-IC1-K4-C4 final SW
33//   IC47-IC2-K1-C4 SW;IC47-IC2-K1-C3 CHANNEL_NUMBER extracted;IC47-IC2-K2-C4 SW;S47-C1 SW
34//   S47-C2 contains PROFILE_INFO1_DISABLED;S48-C1 SW;S49-C1 SW1 91
35//   S50-C1 proactive command envelope;S51-C1 SW;S51-C2 response data absent;S52-C1 SW1 != 91
36//   S53-C1 SW;S53-C2 contains PROFILE_INFO1_DISABLED;S54-C1 SW
37// 本函数由 CaseIR 4.2.22.2.1 编译生成(fullwave-blindgen-live-70-W1-laneA2,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
38// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
39// 适用性 M:编译期门,运行时由 harness 环境前置承担。
40function TC_eUICC_ES10c_DisableProfile_Case3_01_10_Nominal_all_10_sequences() {
41    var bind = curBind;
42    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DisableProfile_Case3_01_10_Nominal_all_10_sequences");
43    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "4336cd72d19df228", "authority_reference": "E_tc_4222/38-38/G_annexB_dynamic:L51"}
44    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID1", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
45    // TC-GEN-1 eUICC: The PROFILE_OPERATIONAL1 has been installed on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
46    // SEQ01-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
47    // SEQ01-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
48    // SEQ02-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
49    // SEQ02-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
50    // SEQ02-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
51    // SEQ03-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
52    // SEQ03-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
53    // SEQ03-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
54    // SEQ03-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
55    // SEQ04-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
56    // SEQ04-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
57    // SEQ04-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
58    // SEQ05-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
59    // SEQ05-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
60    // SEQ05-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
61    // SEQ05-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
62    // SEQ06-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
63    // SEQ06-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
64    // SEQ06-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
65    // SEQ07-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
66    // SEQ07-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
67    // SEQ07-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
68    // SEQ07-IC4 Do not send FETCH command: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
69    // SEQ08-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
70    // SEQ08-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
71    // SEQ08-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
72    // SEQ08-IC4 Do not send FETCH command: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
73    // SEQ09-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
74    // SEQ09-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
75    // SEQ09-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
76    // SEQ10-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
77    // SEQ10-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
78    // SEQ10-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
79    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
80
81    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
82    var s56 = bind.resetAndAtr();
83    bind.checkData("ICH-SEQ01-IC1-K1-C1 ATR_present", "1", s56.atr_hex !== "" ? "1" : "0");
84
85    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
86    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
87    var s57 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
88    bind.checkData("ICH-SEQ01-IC1-K2-C2 FCP_Template", "1", s57.resp.length > 0 ? "1" : "0");
89    bind.checkData("ICH-SEQ01-IC1-K2-C4 SW", "9000", s57.sw);
90
91    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
92    var s58 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
93    bind.checkData("ICH-SEQ01-IC1-K3-C4 SW", "9000", s58.sw);
94
95    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
96    var steady59 = bind.runToSteadyState(function () {
97        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
98    });
99    bind.checkData("ICH-SEQ01-IC1-K4-C4 final SW", "9000", steady59.final.sw);
100
101    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
102    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
103    var s60 = bind.manageChannelOpen("9000");
104    bind.checkData("ICH-SEQ01-IC2-K1-C4 SW", "9000", s60.sw);
105    bind.checkData("ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s60.chan !== null ? "1" : "0");
106
107    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
108    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
109    var s61 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
110    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
111    bind.checkData("ICH-SEQ01-IC2-K2-C4 SW", "9000", s61.sw);
112
113    // 步骤 1:MTD_STORE_DATA(tc_step)
114    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
115    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
116
117    // 步骤 2:SEQ01-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
118    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
119    var sdCla2 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
120    // runtime-bound payload: ISD_P_AID1 stays in execution domain
121    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), null, null);
122    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s2.cmd, profileAidSession);
123    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
124    bind.checkData("S1-C1 SW1 91", "91", s2.sw.substring(0, 2));
125
126    // 步骤 3:SEQ01-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
127    // FETCH header literals follow the golden wire evidence 8012 (same
128    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
129    // gives mechanism only). Le = pending length from the last 91XX
130    // (chain rule, binding-internal state).
131    var s3 = bind.fetchPending("80", "12", "00", "00", null);
132    bind.checkData("S2-C1 proactive command envelope", "1", (s3.resp.length >= 4 && s3.resp.substring(0, 2) === "D0") ? "1" : "0");
133    // S2-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
134    // S3:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
135    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
136    var s3tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
137
138    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
139    var s62 = bind.resetAndAtr();
140    bind.checkData("IC4-IC1-K1-C1 ATR_present", "1", s62.atr_hex !== "" ? "1" : "0");
141
142    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
143    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
144    var s63 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
145    bind.checkData("IC4-IC1-K2-C2 FCP_Template", "1", s63.resp.length > 0 ? "1" : "0");
146    bind.checkData("IC4-IC1-K2-C4 SW", "9000", s63.sw);
147
148    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
149    var s64 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
150    bind.checkData("IC4-IC1-K3-C4 SW", "9000", s64.sw);
151
152    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
153    var steady65 = bind.runToSteadyState(function () {
154        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
155    });
156    bind.checkData("IC4-IC1-K4-C4 final SW", "9000", steady65.final.sw);
157
158    // IC ref inline @E 步骤 4(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
159    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
160    var s66 = bind.manageChannelOpen("9000");
161    bind.checkData("IC4-IC2-K1-C4 SW", "9000", s66.sw);
162    bind.checkData("IC4-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s66.chan !== null ? "1" : "0");
163
164    // IC ref inline @E 步骤 4(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
165    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
166    var s67 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
167    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
168    bind.checkData("IC4-IC2-K2-C4 SW", "9000", s67.sw);
169
170    // 步骤 5:SEQ01-4] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
171    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
172    var sdCla5 = s66.chan !== null ? (s66.chan <= 3 ? 128 + s66.chan : 188 + s66.chan).toString(16).toUpperCase() : null;
173    // runtime-bound payload: ISD_P_AID1 stays in execution domain
174    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
175    bind.checkData("S4-C1 SW", "9000", s5.sw);
176    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s5.cmd, profileAidSession);
177    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
178    var r2has5_0 = false;
179    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
180        var f = r2p5.elements[r2i5_0].fields;
181        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has5_0 = true; break; }
182    }
183    bind.checkData("S4-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
184
185    // 步骤 6:SEQ01-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
186    var s6 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
187    bind.checkData("S5-C1 SW", "6A82", s6.sw);
188
189    // 步骤 7:SEQ02-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
190    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
191    var sdCla7 = s66.chan !== null ? (s66.chan <= 3 ? 128 + s66.chan : 188 + s66.chan).toString(16).toUpperCase() : null;
192    var s7 = bind.sendApdu(sdCla7, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
193    bind.checkData("S6-C2 response data absent", "1", s7.resp === "" ? "1" : "0");
194    bind.checkData("S6-C1 SW1 91", "91", s7.sw.substring(0, 2));
195
196    // 步骤 8:SEQ02-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
197    // FETCH header literals follow the golden wire evidence 8012 (same
198    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
199    // gives mechanism only). Le = pending length from the last 91XX
200    // (chain rule, binding-internal state).
201    var s8 = bind.fetchPending("80", "12", "00", "00", null);
202    bind.checkData("S7-C1 proactive command envelope", "1", (s8.resp.length >= 4 && s8.resp.substring(0, 2) === "D0") ? "1" : "0");
203    // S7-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
204    // S8:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
205    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
206    var s8tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
207
208    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
209    var s68 = bind.resetAndAtr();
210    bind.checkData("IC9-IC1-K1-C1 ATR_present", "1", s68.atr_hex !== "" ? "1" : "0");
211
212    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
213    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
214    var s69 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
215    bind.checkData("IC9-IC1-K2-C2 FCP_Template", "1", s69.resp.length > 0 ? "1" : "0");
216    bind.checkData("IC9-IC1-K2-C4 SW", "9000", s69.sw);
217
218    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
219    var s70 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
220    bind.checkData("IC9-IC1-K3-C4 SW", "9000", s70.sw);
221
222    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
223    var steady71 = bind.runToSteadyState(function () {
224        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
225    });
226    bind.checkData("IC9-IC1-K4-C4 final SW", "9000", steady71.final.sw);
227
228    // IC ref inline @E 步骤 9(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
229    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
230    var s72 = bind.manageChannelOpen("9000");
231    bind.checkData("IC9-IC2-K1-C4 SW", "9000", s72.sw);
232    bind.checkData("IC9-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s72.chan !== null ? "1" : "0");
233
234    // IC ref inline @E 步骤 9(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
235    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
236    var s73 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
237    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
238    bind.checkData("IC9-IC2-K2-C4 SW", "9000", s73.sw);
239
240    // 步骤 10:SEQ02-4] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
241    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
242    var sdCla10 = s72.chan !== null ? (s72.chan <= 3 ? 128 + s72.chan : 188 + s72.chan).toString(16).toUpperCase() : null;
243    var s10 = bind.sendApdu(sdCla10, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
244    bind.checkData("S9-C1 SW", "9000", s10.sw);
245    var r2p10 = BindEs10xProcProfile.walkChoiceList(s10.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
246    var r2has10_0 = false;
247    for (var r2i10_0 = 0; r2i10_0 < r2p10.elements.length; r2i10_0++) {
248        var f = r2p10.elements[r2i10_0].fields;
249        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has10_0 = true; break; }
250    }
251    bind.checkData("S9-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p10.branch_tag === "A0" && r2has10_0) ? "1" : "0");
252
253    // 步骤 11:SEQ02-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
254    var s11 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
255    bind.checkData("S10-C1 SW", "6A82", s11.sw);
256
257    // 步骤 12:SEQ03-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
258    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
259    var sdCla12 = s72.chan !== null ? (s72.chan <= 3 ? 128 + s72.chan : 188 + s72.chan).toString(16).toUpperCase() : null;
260    // runtime-bound payload: ISD_P_AID1 stays in execution domain
261    var s12 = bind.sendApdu(sdCla12, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), null, null);
262    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s12.cmd, profileAidSession);
263    bind.checkData("S11-C2 response data absent", "1", s12.resp === "" ? "1" : "0");
264    bind.checkData("S11-C1 SW1 91", "91", s12.sw.substring(0, 2));
265
266    // 步骤 13:SEQ03-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
267    // FETCH header literals follow the golden wire evidence 8012 (same
268    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
269    // gives mechanism only). Le = pending length from the last 91XX
270    // (chain rule, binding-internal state).
271    var s13 = bind.fetchPending("80", "12", "00", "00", null);
272    bind.checkData("S12-C1 proactive command envelope", "1", (s13.resp.length >= 4 && s13.resp.substring(0, 2) === "D0") ? "1" : "0");
273    // S12-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
274
275    // 步骤 14:SEQ03-3] TERMINAL RESPONSE(tc_step)
276    // TERMINAL RESPONSE data is dynamically built by the binding from the
277    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
278    // Header literals follow the golden wire evidence 8014.
279    var s14 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
280    bind.checkData("S13-C1 SW", "9000", s14.sw);
281
282    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 2):SELECT_MF(K 语料机械展开)
283    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
284    var s74 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
285    bind.checkData("IC15-IC1-K2-C2 FCP_Template", "1", s74.resp.length > 0 ? "1" : "0");
286    bind.checkData("IC15-IC1-K2-C4 SW", "9000", s74.sw);
287
288    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
289    var s75 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
290    bind.checkData("IC15-IC1-K3-C4 SW", "9000", s75.sw);
291
292    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 4):TERMINAL_PROFILE_eUICCProfileStateChanged(K 语料机械展开)
293    var steady76 = bind.runToSteadyState(function () {
294        return bind.sendTerminalProfile("FFFFFFFFFFFF1FFFFF0302FFFF9FFFEFDFFF0FFF0FFFFF0FFF03003F7FFF03FFFF20", "9000");
295    });
296    bind.checkData("IC15-IC1-K4-C4 final SW", "9000", steady76.final.sw);
297
298    // IC ref inline @E 步骤 16(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
299    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
300    var s77 = bind.manageChannelOpen("9000");
301    bind.checkData("IC16-IC2-K1-C4 SW", "9000", s77.sw);
302    bind.checkData("IC16-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s77.chan !== null ? "1" : "0");
303
304    // IC ref inline @E 步骤 16(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
305    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
306    var s78 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
307    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
308    bind.checkData("IC16-IC2-K2-C4 SW", "9000", s78.sw);
309
310    // 步骤 17:SEQ03-6] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
311    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
312    var sdCla17 = s77.chan !== null ? (s77.chan <= 3 ? 128 + s77.chan : 188 + s77.chan).toString(16).toUpperCase() : null;
313    // runtime-bound payload: ISD_P_AID1 stays in execution domain
314    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
315    bind.checkData("S16-C1 SW", "9000", s17.sw);
316    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s17.cmd, profileAidSession);
317    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
318    var r2has17_0 = false;
319    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
320        var f = r2p17.elements[r2i17_0].fields;
321        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has17_0 = true; break; }
322    }
323    bind.checkData("S16-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
324
325    // 步骤 18:SEQ03-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
326    var s18 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
327    bind.checkData("S17-C1 SW", "6A82", s18.sw);
328
329    // 步骤 19:SEQ04-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
330    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
331    var sdCla19 = s77.chan !== null ? (s77.chan <= 3 ? 128 + s77.chan : 188 + s77.chan).toString(16).toUpperCase() : null;
332    var s19 = bind.sendApdu(sdCla19, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
333    bind.checkData("S18-C2 response data absent", "1", s19.resp === "" ? "1" : "0");
334    bind.checkData("S18-C1 SW1 91", "91", s19.sw.substring(0, 2));
335
336    // 步骤 20:SEQ04-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
337    // FETCH header literals follow the golden wire evidence 8012 (same
338    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
339    // gives mechanism only). Le = pending length from the last 91XX
340    // (chain rule, binding-internal state).
341    var s20 = bind.fetchPending("80", "12", "00", "00", null);
342    bind.checkData("S19-C1 proactive command envelope", "1", (s20.resp.length >= 4 && s20.resp.substring(0, 2) === "D0") ? "1" : "0");
343    // S19-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
344
345    // 步骤 21:SEQ04-3] TERMINAL RESPONSE(tc_step)
346    // TERMINAL RESPONSE data is dynamically built by the binding from the
347    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
348    // Header literals follow the golden wire evidence 8014.
349    var s21 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
350    bind.checkData("S20-C1 SW", "9000", s21.sw);
351
352    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 2):SELECT_MF(K 语料机械展开)
353    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
354    var s79 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
355    bind.checkData("IC22-IC1-K2-C2 FCP_Template", "1", s79.resp.length > 0 ? "1" : "0");
356    bind.checkData("IC22-IC1-K2-C4 SW", "9000", s79.sw);
357
358    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
359    var s80 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
360    bind.checkData("IC22-IC1-K3-C4 SW", "9000", s80.sw);
361
362    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 4):TERMINAL_PROFILE_eUICCProfileStateChanged(K 语料机械展开)
363    var steady81 = bind.runToSteadyState(function () {
364        return bind.sendTerminalProfile("FFFFFFFFFFFF1FFFFF0302FFFF9FFFEFDFFF0FFF0FFFFF0FFF03003F7FFF03FFFF20", "9000");
365    });
366    bind.checkData("IC22-IC1-K4-C4 final SW", "9000", steady81.final.sw);
367
368    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
369    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
370    var s82 = bind.manageChannelOpen("9000");
371    bind.checkData("IC23-IC2-K1-C4 SW", "9000", s82.sw);
372    bind.checkData("IC23-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s82.chan !== null ? "1" : "0");
373
374    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
375    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
376    var s83 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
377    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
378    bind.checkData("IC23-IC2-K2-C4 SW", "9000", s83.sw);
379
380    // 步骤 24:SEQ04-6] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
381    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
382    var sdCla24 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
383    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
384    bind.checkData("S23-C1 SW", "9000", s24.sw);
385    var r2p24 = BindEs10xProcProfile.walkChoiceList(s24.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
386    var r2has24_0 = false;
387    for (var r2i24_0 = 0; r2i24_0 < r2p24.elements.length; r2i24_0++) {
388        var f = r2p24.elements[r2i24_0].fields;
389        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has24_0 = true; break; }
390    }
391    bind.checkData("S23-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p24.branch_tag === "A0" && r2has24_0) ? "1" : "0");
392
393    // 步骤 25:SEQ04-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
394    var s25 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
395    bind.checkData("S24-C1 SW", "6A82", s25.sw);
396
397    // 步骤 26:SEQ05-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151, RQ29_002, RQ29_022)
398    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
399    var sdCla26 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
400    // runtime-bound payload: ISD_P_AID1 stays in execution domain
401    var s26 = bind.sendApdu(sdCla26, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "010100", profileAidSession), null, "9000");
402    bind.checkData("S25-C1 SW", "9000", s26.sw);
403    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s26.cmd, profileAidSession);
404    bind.checkData("S25-C2 response data absent", "1", s26.resp === "" ? "1" : "0");
405
406    // 步骤 27:SEQ05-2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151)
407    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
408    var sdCla27 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
409    // runtime-bound payload: ISD_P_AID1 stays in execution domain
410    var s27 = bind.sendApdu(sdCla27, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
411    bind.checkData("S26-C1 SW", "9000", s27.sw);
412    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s27.cmd, profileAidSession);
413    var r2p27 = BindEs10xProcProfile.walkChoiceList(s27.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
414    var r2has27_0 = false;
415    for (var r2i27_0 = 0; r2i27_0 < r2p27.elements.length; r2i27_0++) {
416        var f = r2p27.elements[r2i27_0].fields;
417        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has27_0 = true; break; }
418    }
419    bind.checkData("S26-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p27.branch_tag === "A0" && r2has27_0) ? "1" : "0");
420
421    // 步骤 28:SEQ05-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
422    var s28 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
423    bind.checkData("S27-C1 SW", "6A82", s28.sw);
424
425    // 步骤 29:SEQ06-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151, RQ29_002, RQ29_022)
426    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
427    var sdCla29 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
428    var s29 = bind.sendApdu(sdCla29, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
429    bind.checkData("S28-C1 SW", "9000", s29.sw);
430    bind.checkData("S28-C2 response data absent", "1", s29.resp === "" ? "1" : "0");
431
432    // 步骤 30:SEQ06-2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151)
433    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
434    var sdCla30 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
435    var s30 = bind.sendApdu(sdCla30, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
436    bind.checkData("S29-C1 SW", "9000", s30.sw);
437    var r2p30 = BindEs10xProcProfile.walkChoiceList(s30.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
438    var r2has30_0 = false;
439    for (var r2i30_0 = 0; r2i30_0 < r2p30.elements.length; r2i30_0++) {
440        var f = r2p30.elements[r2i30_0].fields;
441        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has30_0 = true; break; }
442    }
443    bind.checkData("S29-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p30.branch_tag === "A0" && r2has30_0) ? "1" : "0");
444
445    // 步骤 31:SEQ06-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
446    var s31 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
447    bind.checkData("S30-C1 SW", "6A82", s31.sw);
448
449    // 步骤 32:SEQ07-IC3] MTD_SEND_SMS_PP(tc_step)
450    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
451    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
452    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
453    var s32 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
454    bind.checkData("S31-C1 SW1 91", "91", s32.sw.substring(0, 2));
455
456    // 步骤 33:SEQ07-1] MTD_STORE_DATA_Case3(tc_step)
457    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
458    var sdCla33 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
459    var s33 = bind.sendApdu(sdCla33, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
460    bind.checkData("S32-C2 response data absent", "1", s33.resp === "" ? "1" : "0");
461    bind.checkData("S32-C1 SW1 91", "91", s33.sw.substring(0, 2));
462
463    // 步骤 34:SEQ07-2] FETCH 'YY'(tc_step;REQ: RQ32_016_3, RQ32_017, RQ57_134)
464    // FETCH header literals follow the golden wire evidence 8012 (same
465    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
466    // gives mechanism only). Le = pending length from the last 91XX
467    // (chain rule, binding-internal state).
468    var s34 = bind.fetchPending("80", "12", "00", "00", null);
469    bind.checkData("S33-C1 proactive command envelope", "1", (s34.resp.length >= 4 && s34.resp.substring(0, 2) === "D0") ? "1" : "0");
470    // S33-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
471    // S34:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
472    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
473    var s34tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
474
475    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
476    var s84 = bind.resetAndAtr();
477    bind.checkData("IC35-IC1-K1-C1 ATR_present", "1", s84.atr_hex !== "" ? "1" : "0");
478
479    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
480    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
481    var s85 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
482    bind.checkData("IC35-IC1-K2-C2 FCP_Template", "1", s85.resp.length > 0 ? "1" : "0");
483    bind.checkData("IC35-IC1-K2-C4 SW", "9000", s85.sw);
484
485    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
486    var s86 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
487    bind.checkData("IC35-IC1-K3-C4 SW", "9000", s86.sw);
488
489    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
490    var steady87 = bind.runToSteadyState(function () {
491        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
492    });
493    bind.checkData("IC35-IC1-K4-C4 final SW", "9000", steady87.final.sw);
494
495    // IC ref inline @E 步骤 35(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
496    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
497    var s88 = bind.manageChannelOpen("9000");
498    bind.checkData("IC35-IC2-K1-C4 SW", "9000", s88.sw);
499    bind.checkData("IC35-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s88.chan !== null ? "1" : "0");
500
501    // IC ref inline @E 步骤 35(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
502    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
503    var s89 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
504    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
505    bind.checkData("IC35-IC2-K2-C4 SW", "9000", s89.sw);
506
507    // 步骤 36:SEQ07-4] MTD_STORE_DATA(tc_step)
508    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
509    var sdCla36 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
510    var s36 = bind.sendApdu(sdCla36, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
511    bind.checkData("S35-C1 SW", "9000", s36.sw);
512    var r2p36 = BindEs10xProcProfile.walkChoiceList(s36.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
513    var r2has36_0 = false;
514    for (var r2i36_0 = 0; r2i36_0 < r2p36.elements.length; r2i36_0++) {
515        var f = r2p36.elements[r2i36_0].fields;
516        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has36_0 = true; break; }
517    }
518    bind.checkData("S35-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p36.branch_tag === "A0" && r2has36_0) ? "1" : "0");
519
520    // 步骤 37:SEQ07-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
521    var s37 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
522    bind.checkData("S36-C1 SW", "6A82", s37.sw);
523
524    // 步骤 38:SEQ08-IC3] MTD_SEND_SMS_PP(tc_step)
525    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
526    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
527    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
528    var s38 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
529    bind.checkData("S37-C1 SW1 91", "91", s38.sw.substring(0, 2));
530
531    // 步骤 39:SEQ08-1] MTD_STORE_DATA_Case3(tc_step)
532    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
533    var sdCla39 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
534    var s39 = bind.sendApdu(sdCla39, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
535    bind.checkData("S38-C1 SW", "9000", s39.sw);
536    bind.checkData("S38-C2 response data absent", "1", s39.resp === "" ? "1" : "0");
537
538    // 步骤 40:SEQ08-2] MTD_STORE_DATA(tc_step)
539    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
540    var sdCla40 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
541    var s40 = bind.sendApdu(sdCla40, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
542    bind.checkData("S39-C1 SW", "9000", s40.sw);
543    var r2p40 = BindEs10xProcProfile.walkChoiceList(s40.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
544    var r2has40_0 = false;
545    for (var r2i40_0 = 0; r2i40_0 < r2p40.elements.length; r2i40_0++) {
546        var f = r2p40.elements[r2i40_0].fields;
547        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has40_0 = true; break; }
548    }
549    bind.checkData("S39-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p40.branch_tag === "A0" && r2has40_0) ? "1" : "0");
550
551    // 步骤 41:SEQ08-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
552    var s41 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
553    bind.checkData("S40-C1 SW", "6A82", s41.sw);
554
555    // 步骤 42:SEQ09-IC3] MTD_SEND_SMS_PP(tc_step)
556    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
557    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
558    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
559    var s42 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
560    bind.checkData("S41-C1 SW1 91", "91", s42.sw.substring(0, 2));
561
562    // 步骤 43:SEQ09-1] FETCH ‘XX’(tc_step)
563    // FETCH header literals follow the golden wire evidence 8012 (same
564    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
565    // gives mechanism only). Le = pending length from the last 91XX
566    // (chain rule, binding-internal state).
567    var s43 = bind.fetchPending("80", "12", "00", "00", null);
568    bind.checkData("S42-C1 proactive command envelope", "1", (s43.resp.length >= 4 && s43.resp.substring(0, 2) === "D0") ? "1" : "0");
569    // S42-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
570    // S43:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
571    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
572    var s43tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
573
574    // 步骤 44:SEQ09-2] MTD_STORE_DATA_Case3(tc_step)
575    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
576    var sdCla44 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
577    var s44 = bind.sendApdu(sdCla44, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, "9000");
578    bind.checkData("S43-C1 SW", "9000", s44.sw);
579    bind.checkData("S43-C2 response data absent", "1", s44.resp === "" ? "1" : "0");
580
581    // 步骤 45:SEQ09-3] TERMINAL RESPONSE(tc_step)
582    // TERMINAL RESPONSE data is dynamically built by the binding from the
583    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
584    // Header literals follow the golden wire evidence 8014.
585    var s45 = bind.terminalResponseForPending("80", "14", "00", "00", null);
586    bind.checkData("S44-C1 SW1 91", "91", s45.sw.substring(0, 2));
587
588    // 步骤 46:SEQ09-4] FETCH 'YY'(tc_step;REQ: RQ32_016_3, RQ32_017, RQ57_134)
589    // FETCH header literals follow the golden wire evidence 8012 (same
590    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
591    // gives mechanism only). Le = pending length from the last 91XX
592    // (chain rule, binding-internal state).
593    var s46 = bind.fetchPending("80", "12", "00", "00", null);
594    bind.checkData("S45-C1 proactive command envelope", "1", (s46.resp.length >= 4 && s46.resp.substring(0, 2) === "D0") ? "1" : "0");
595    // S45-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
596    // S46:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
597    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
598    var s46tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
599
600    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
601    var s90 = bind.resetAndAtr();
602    bind.checkData("IC47-IC1-K1-C1 ATR_present", "1", s90.atr_hex !== "" ? "1" : "0");
603
604    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
605    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
606    var s91 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
607    bind.checkData("IC47-IC1-K2-C2 FCP_Template", "1", s91.resp.length > 0 ? "1" : "0");
608    bind.checkData("IC47-IC1-K2-C4 SW", "9000", s91.sw);
609
610    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
611    var s92 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
612    bind.checkData("IC47-IC1-K3-C4 SW", "9000", s92.sw);
613
614    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
615    var steady93 = bind.runToSteadyState(function () {
616        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
617    });
618    bind.checkData("IC47-IC1-K4-C4 final SW", "9000", steady93.final.sw);
619
620    // IC ref inline @E 步骤 47(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
621    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
622    var s94 = bind.manageChannelOpen("9000");
623    bind.checkData("IC47-IC2-K1-C4 SW", "9000", s94.sw);
624    bind.checkData("IC47-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s94.chan !== null ? "1" : "0");
625
626    // IC ref inline @E 步骤 47(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
627    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
628    var s95 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
629    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
630    bind.checkData("IC47-IC2-K2-C4 SW", "9000", s95.sw);
631
632    // 步骤 48:SEQ09-6] MTD_STORE_DATA(tc_step)
633    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
634    var sdCla48 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
635    var s48 = bind.sendApdu(sdCla48, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
636    bind.checkData("S47-C1 SW", "9000", s48.sw);
637    var r2p48 = BindEs10xProcProfile.walkChoiceList(s48.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
638    var r2has48_0 = false;
639    for (var r2i48_0 = 0; r2i48_0 < r2p48.elements.length; r2i48_0++) {
640        var f = r2p48.elements[r2i48_0].fields;
641        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has48_0 = true; break; }
642    }
643    bind.checkData("S47-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p48.branch_tag === "A0" && r2has48_0) ? "1" : "0");
644
645    // 步骤 49:SEQ09-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
646    var s49 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
647    bind.checkData("S48-C1 SW", "6A82", s49.sw);
648
649    // 步骤 50:SEQ10-IC3] MTD_SEND_SMS_PP(tc_step)
650    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
651    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
652    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
653    var s50 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
654    bind.checkData("S49-C1 SW1 91", "91", s50.sw.substring(0, 2));
655
656    // 步骤 51:SEQ10-1] FETCH ‘XX’(tc_step)
657    // FETCH header literals follow the golden wire evidence 8012 (same
658    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
659    // gives mechanism only). Le = pending length from the last 91XX
660    // (chain rule, binding-internal state).
661    var s51 = bind.fetchPending("80", "12", "00", "00", null);
662    bind.checkData("S50-C1 proactive command envelope", "1", (s51.resp.length >= 4 && s51.resp.substring(0, 2) === "D0") ? "1" : "0");
663    // S50-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
664    // S51:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
665    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
666    var s51tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
667
668    // 步骤 52:SEQ10-2] MTD_STORE_DATA_Case3(tc_step)
669    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
670    var sdCla52 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
671    var s52 = bind.sendApdu(sdCla52, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
672    bind.checkData("S51-C1 SW", "9000", s52.sw);
673    bind.checkData("S51-C2 response data absent", "1", s52.resp === "" ? "1" : "0");
674
675    // 步骤 53:SEQ10-3] TERMINAL RESPONSE(tc_step)
676    // TERMINAL RESPONSE data is dynamically built by the binding from the
677    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
678    // Header literals follow the golden wire evidence 8014.
679    var s53 = bind.terminalResponseForPending("80", "14", "00", "00", null);
680    bind.checkData("S52-C1 SW1 != 91", "1", s53.sw.substring(0, 2) !== "91" ? "1" : "0");
681
682    // 步骤 54:SEQ10-4] MTD_STORE_DATA(tc_step)
683    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
684    var sdCla54 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
685    var s54 = bind.sendApdu(sdCla54, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
686    bind.checkData("S53-C1 SW", "9000", s54.sw);
687    var r2p54 = BindEs10xProcProfile.walkChoiceList(s54.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
688    var r2has54_0 = false;
689    for (var r2i54_0 = 0; r2i54_0 < r2p54.elements.length; r2i54_0++) {
690        var f = r2p54.elements[r2i54_0].fields;
691        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has54_0 = true; break; }
692    }
693    bind.checkData("S53-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p54.branch_tag === "A0" && r2has54_0) ? "1" : "0");
694
695    // 步骤 55:SEQ10-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
696    var s55 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
697    bind.checkData("S54-C1 SW", "6A82", s55.sw);
698}
699

完整 unified diff

行级差异:新增 697 行 / 删除 889 行(以 -man 为基准,unified 上下文 3 行)。

展开 diff(1591 行)
--- -man
+++ -cas
@@ -1,891 +1,699 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DisableProfile_Case3_01_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_UICC_Reset + TC_eUICC_ES10c_DisableProfile_Case3_02_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_UICC_Reset + TC_eUICC_ES10c_DisableProfile_Case3_03_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change + TC_eUICC_ES10c_DisableProfile_Case3_04_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change + TC_eUICC_ES10c_DisableProfile_Case3_05_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_not_set + TC_eUICC_ES10c_DisableProfile_Case3_06_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_not_set + TC_eUICC_ES10c_DisableProfile_Case3_07_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_08_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_09_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported + TC_eUICC_ES10c_DisableProfile_Case3_10_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported (extracted verbatim)
-
-function TC_eUICC_ES10c_DisableProfile_Case3_01_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_UICC_Reset()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:设备支持 “UICC Reset”,通过ISD-P AID去失效profile,并设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
-	
-	FetchStr = Fetch("","9000","");
-		
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_02_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_UICC_Reset()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:设备支持 “UICC Reset”,通过ICCID去失效profile,并设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
-	
-	FetchStr = Fetch("","9000","");
-		
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_03_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:设备支持 “eUICC Profile State Change”,通过ISD-P AID去失效profile,并设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	
-	TERMINAL_PROFILE_Default = TERMINAL_PROFILE_eUICCProfileStateChanged;//add 20260423
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-		
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
-	
-	FetchStr = Fetch("","9000","");
-		
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	CheckData("09",CmdQualifier,"the command qualifier is equal to ’09’ (eUICC Profile State Change)");//'09' = eUICC Profile State Change;   102.223-8.6
-	
-	TerminalResponse("00","9000");
-	
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化:从第 2 步到第 4 步,[SELECT_MF]、[TERMINAL_CAPABILITY_LPAd] 、[TERMINAL_PROFILE_eUICCProfileStateChanged] ");
-	
-	curLogicChannel = 0;
-	
-	if (check_eUICC_support_TERMINAL_CAPABILITY_cmd())
-		TS_TERMINAL_CAPABILITY_cmd();
-	else
-		obj.SubLevel("eUICC不支持”TERMINAL_CAPABILITY“命令", level_of_SubLevel.warning);
-	
-	IniCard_SetUpMenu("",1);
-	
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_04_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_set_when_Device_supports_eUICC_Profile_State_Change()
-{
-	if(!Card_Have_ECC_Cert)
-	return;
-	
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:设备支持 “eUICC Profile State Change”,通过ICCID去失效profile,并设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	
-	TERMINAL_PROFILE_Default = TERMINAL_PROFILE_eUICCProfileStateChanged;//add 20260423
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-		
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
-	
-	FetchStr = Fetch("","9000","");
-		
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	CheckData("09",CmdQualifier,"the command qualifier is equal to ’09’ (eUICC Profile State Change)");//'09' = eUICC Profile State Change;   102.223-8.6
-	
-	TerminalResponse("00","9000");
-	
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化:从第 2 步到第 4 步,[SELECT_MF]、[TERMINAL_CAPABILITY_LPAd] 、[TERMINAL_PROFILE_eUICCProfileStateChanged] ");
-	
-	curLogicChannel = 0;
-	
-	if (check_eUICC_support_TERMINAL_CAPABILITY_cmd())
-		TS_TERMINAL_CAPABILITY_cmd();
-	else
-		obj.SubLevel("eUICC不支持”TERMINAL_CAPABILITY“命令", level_of_SubLevel.warning);
-	
-	IniCard_SetUpMenu("",1);
-	
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_05_Nominal_Disable_Profile_by_ISD_P_AID_and_refreshFlag_not_set()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ISD-P AID去失效profile,不设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;"); 
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 TERMINAL_PROFILE命令;");
-	IniCard_SetUpMenu("",1);
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_06_Nominal_Disable_Profile_by_ICCID_and_refreshFlag_not_set()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ICCID去失效profile,不设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;");
-
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
-	
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 TERMINAL_PROFILE命令;");
-	IniCard_SetUpMenu("",1);
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_07_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_catBusynotsupported()
-{
-
-	//测试入口条件
-	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中时,通过ICCID去失效profile,并设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curLogicChannel = 0;
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-	sAPDU = "80F28002024F00";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","91XX");
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Fetch命令,主动式命令refresh;");
-	FetchStr = Fetch("","9000","");
-		
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
-	
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-
-  curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_08_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_catBusynotsupported()
-{
-
-	//测试入口条件
-	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中时,通过ICCID去失效profile,不设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curLogicChannel = 0;
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-	sAPDU = "80F28002024F00";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为False;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-
-  curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_09_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported()
-{
-	//测试入口条件
-	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-		
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中(未给终端响应)时,通过ICCID去失效profile,设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	sAPDU = "80F28002024F00";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
-	curLogicChannel = 0;
-	CardSendMessageToServer(sSendType,1,"0161XX","00");
-
-	
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为FF;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送TerminalResponse命令;");
-	TerminalResponse("00","91XX");		
-	var ss = obj.GetState();
-	HaveReEntry91XX = false;
-	
-	
-	curDis.TestStepStart2(stno++,"Fetch;");
-	FetchStr = Fetch(ss.substr(2),"9000","");	
-	var CmdDetails = GetValueByTag("01",1);
-	var CmdQualifier = CmdDetails.substr(4,2);
-	curStrHandle.CheckData("04",CmdQualifier,"the command qualifier is equal to ’04’ (UICC Reset)");
-	
-
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile1状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-
-
- 	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	SendAPDU(para1.apdu);
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送read binary命令;");
-	var para1 = new ReadBinaryPara_3G("00","00","0A");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_Case3_10_Nominal_Disable_Profile_by_ICCID_with_refreshFLag_not_set_while_proactive_sessionisongoing_withTerminalResponseoutstanding_catBusynotsupported()
-{
-	//测试入口条件
-	if(!check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-		
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	tracenamestr = "测试目的:eUICC不支持catBusy,主动式会话进行中(未给终端响应)时,通过ICCID去失效profile,不设置refreshFlag";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	sAPDU = "80F28002024F00";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
-	curLogicChannel = 0;
-	CardSendMessageToServer(sSendType,1,"0161XX","00");
-
-	
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为Flase;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"90","00","9000");
-	curStrHandle.CheckData("", respData, "DisableProfileResponse");
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送TerminalResponse命令;");
-	TerminalResponse("00","91XX");		
-	var ss = obj.GetState();
-	HaveReEntry91XX = false;
-	
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile1状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
- 	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 Select命令,选择ICCID;");
-	var para1 = new SelectFileEFPara_3G("2FE2");
-	SendAPDU(para1.apdu);
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送read binary命令;");
-	var para1 = new ReadBinaryPara_3G("00","00","0A");
-	para1.apdu.ressw = "6A82";
-	SendAPDU(para1.apdu);
-	
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DisableProfile_Case3,Test Sequence #01-#10 Nominal (all 10 sequences),适用性 M。
+// Test points: ICH-SEQ01-IC1-K1-C1 ATR_present;ICH-SEQ01-IC1-K2-C2 FCP_Template
+//   ICH-SEQ01-IC1-K2-C4 SW;ICH-SEQ01-IC1-K3-C4 SW;ICH-SEQ01-IC1-K4-C4 final SW
+//   ICH-SEQ01-IC2-K1-C4 SW;ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted;ICH-SEQ01-IC2-K2-C4 SW
+//   S1-C2 response data absent;S1-C1 SW1 91;S2-C1 proactive command envelope
+//   IC4-IC1-K1-C1 ATR_present;IC4-IC1-K2-C2 FCP_Template;IC4-IC1-K2-C4 SW;IC4-IC1-K3-C4 SW
+//   IC4-IC1-K4-C4 final SW;IC4-IC2-K1-C4 SW;IC4-IC2-K1-C3 CHANNEL_NUMBER extracted;IC4-IC2-K2-C4 SW
+//   S4-C1 SW;S4-C2 contains PROFILE_INFO1_DISABLED;S5-C1 SW;S6-C2 response data absent;S6-C1 SW1 91
+//   S7-C1 proactive command envelope;IC9-IC1-K1-C1 ATR_present;IC9-IC1-K2-C2 FCP_Template
+//   IC9-IC1-K2-C4 SW;IC9-IC1-K3-C4 SW;IC9-IC1-K4-C4 final SW;IC9-IC2-K1-C4 SW
+//   IC9-IC2-K1-C3 CHANNEL_NUMBER extracted;IC9-IC2-K2-C4 SW;S9-C1 SW
+//   S9-C2 contains PROFILE_INFO1_DISABLED;S10-C1 SW;S11-C2 response data absent;S11-C1 SW1 91
+//   S12-C1 proactive command envelope;S13-C1 SW;IC15-IC1-K2-C2 FCP_Template;IC15-IC1-K2-C4 SW
+//   IC15-IC1-K3-C4 SW;IC15-IC1-K4-C4 final SW;IC16-IC2-K1-C4 SW
+//   IC16-IC2-K1-C3 CHANNEL_NUMBER extracted;IC16-IC2-K2-C4 SW;S16-C1 SW
+//   S16-C2 contains PROFILE_INFO1_DISABLED;S17-C1 SW;S18-C2 response data absent;S18-C1 SW1 91
+//   S19-C1 proactive command envelope;S20-C1 SW;IC22-IC1-K2-C2 FCP_Template;IC22-IC1-K2-C4 SW
+//   IC22-IC1-K3-C4 SW;IC22-IC1-K4-C4 final SW;IC23-IC2-K1-C4 SW
+//   IC23-IC2-K1-C3 CHANNEL_NUMBER extracted;IC23-IC2-K2-C4 SW;S23-C1 SW
+//   S23-C2 contains PROFILE_INFO1_DISABLED;S24-C1 SW;S25-C1 SW;S25-C2 response data absent
+//   S26-C1 SW;S26-C2 contains PROFILE_INFO1_DISABLED;S27-C1 SW;S28-C1 SW
+//   S28-C2 response data absent;S29-C1 SW;S29-C2 contains PROFILE_INFO1_DISABLED;S30-C1 SW
+//   S31-C1 SW1 91;S32-C2 response data absent;S32-C1 SW1 91;S33-C1 proactive command envelope
+//   IC35-IC1-K1-C1 ATR_present;IC35-IC1-K2-C2 FCP_Template;IC35-IC1-K2-C4 SW;IC35-IC1-K3-C4 SW
+//   IC35-IC1-K4-C4 final SW;IC35-IC2-K1-C4 SW;IC35-IC2-K1-C3 CHANNEL_NUMBER extracted
+//   IC35-IC2-K2-C4 SW;S35-C1 SW;S35-C2 contains PROFILE_INFO1_DISABLED;S36-C1 SW;S37-C1 SW1 91
+//   S38-C1 SW;S38-C2 response data absent;S39-C1 SW;S39-C2 contains PROFILE_INFO1_DISABLED
+//   S40-C1 SW;S41-C1 SW1 91;S42-C1 proactive command envelope;S43-C1 SW;S43-C2 response data absent
+//   S44-C1 SW1 91;S45-C1 proactive command envelope;IC47-IC1-K1-C1 ATR_present
+//   IC47-IC1-K2-C2 FCP_Template;IC47-IC1-K2-C4 SW;IC47-IC1-K3-C4 SW;IC47-IC1-K4-C4 final SW
+//   IC47-IC2-K1-C4 SW;IC47-IC2-K1-C3 CHANNEL_NUMBER extracted;IC47-IC2-K2-C4 SW;S47-C1 SW
+//   S47-C2 contains PROFILE_INFO1_DISABLED;S48-C1 SW;S49-C1 SW1 91
+//   S50-C1 proactive command envelope;S51-C1 SW;S51-C2 response data absent;S52-C1 SW1 != 91
+//   S53-C1 SW;S53-C2 contains PROFILE_INFO1_DISABLED;S54-C1 SW
+// 本函数由 CaseIR 4.2.22.2.1 编译生成(fullwave-blindgen-live-70-W1-laneA2,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_ES10c_DisableProfile_Case3_01_10_Nominal_all_10_sequences() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DisableProfile_Case3_01_10_Nominal_all_10_sequences");
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "4336cd72d19df228", "authority_reference": "E_tc_4222/38-38/G_annexB_dynamic:L51"}
+    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID1", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // TC-GEN-1 eUICC: The PROFILE_OPERATIONAL1 has been installed on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ01-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ01-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ02-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ02-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ02-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ03-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ03-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ03-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ03-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ04-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ04-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ04-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ05-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ05-IC-T2 eUICC: The PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ05-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ05-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ06-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ06-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ06-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ07-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ07-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ07-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ07-IC4 Do not send FETCH command: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ08-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ08-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ08-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ08-IC4 Do not send FETCH command: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ09-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ09-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ09-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ10-IC-T1 eUICC: The PROFILE_OPERATIONAL1 is Enabled on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ10-IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // SEQ10-IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s56 = bind.resetAndAtr();
+    bind.checkData("ICH-SEQ01-IC1-K1-C1 ATR_present", "1", s56.atr_hex !== "" ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s57 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-SEQ01-IC1-K2-C2 FCP_Template", "1", s57.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-SEQ01-IC1-K2-C4 SW", "9000", s57.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s58 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-SEQ01-IC1-K3-C4 SW", "9000", s58.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady59 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-SEQ01-IC1-K4-C4 final SW", "9000", steady59.final.sw);
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s60 = bind.manageChannelOpen("9000");
+    bind.checkData("ICH-SEQ01-IC2-K1-C4 SW", "9000", s60.sw);
+    bind.checkData("ICH-SEQ01-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s60.chan !== null ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s61 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("ICH-SEQ01-IC2-K2-C4 SW", "9000", s61.sw);
+
+    // 步骤 1:MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
+
+    // 步骤 2:SEQ01-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla2 = s60.chan !== null ? (s60.chan <= 3 ? 128 + s60.chan : 188 + s60.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), null, null);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s2.cmd, profileAidSession);
+    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
+    bind.checkData("S1-C1 SW1 91", "91", s2.sw.substring(0, 2));
+
+    // 步骤 3:SEQ01-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s3 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S2-C1 proactive command envelope", "1", (s3.resp.length >= 4 && s3.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S2-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S3:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s3tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s62 = bind.resetAndAtr();
+    bind.checkData("IC4-IC1-K1-C1 ATR_present", "1", s62.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s63 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC4-IC1-K2-C2 FCP_Template", "1", s63.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC4-IC1-K2-C4 SW", "9000", s63.sw);
+
+    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s64 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC4-IC1-K3-C4 SW", "9000", s64.sw);
+
+    // IC ref inline @E 步骤 4(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady65 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC4-IC1-K4-C4 final SW", "9000", steady65.final.sw);
+
+    // IC ref inline @E 步骤 4(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s66 = bind.manageChannelOpen("9000");
+    bind.checkData("IC4-IC2-K1-C4 SW", "9000", s66.sw);
+    bind.checkData("IC4-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s66.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 4(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s67 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC4-IC2-K2-C4 SW", "9000", s67.sw);
+
+    // 步骤 5:SEQ01-4] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla5 = s66.chan !== null ? (s66.chan <= 3 ? 128 + s66.chan : 188 + s66.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s5.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s5.cmd, profileAidSession);
+    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has5_0 = false;
+    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
+        var f = r2p5.elements[r2i5_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has5_0 = true; break; }
+    }
+    bind.checkData("S4-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
+
+    // 步骤 6:SEQ01-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s6 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S5-C1 SW", "6A82", s6.sw);
+
+    // 步骤 7:SEQ02-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla7 = s66.chan !== null ? (s66.chan <= 3 ? 128 + s66.chan : 188 + s66.chan).toString(16).toUpperCase() : null;
+    var s7 = bind.sendApdu(sdCla7, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
+    bind.checkData("S6-C2 response data absent", "1", s7.resp === "" ? "1" : "0");
+    bind.checkData("S6-C1 SW1 91", "91", s7.sw.substring(0, 2));
+
+    // 步骤 8:SEQ02-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s8 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S7-C1 proactive command envelope", "1", (s8.resp.length >= 4 && s8.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S7-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S8:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s8tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s68 = bind.resetAndAtr();
+    bind.checkData("IC9-IC1-K1-C1 ATR_present", "1", s68.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s69 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC9-IC1-K2-C2 FCP_Template", "1", s69.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC9-IC1-K2-C4 SW", "9000", s69.sw);
+
+    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s70 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC9-IC1-K3-C4 SW", "9000", s70.sw);
+
+    // IC ref inline @E 步骤 9(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady71 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC9-IC1-K4-C4 final SW", "9000", steady71.final.sw);
+
+    // IC ref inline @E 步骤 9(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s72 = bind.manageChannelOpen("9000");
+    bind.checkData("IC9-IC2-K1-C4 SW", "9000", s72.sw);
+    bind.checkData("IC9-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s72.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 9(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s73 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC9-IC2-K2-C4 SW", "9000", s73.sw);
+
+    // 步骤 10:SEQ02-4] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla10 = s72.chan !== null ? (s72.chan <= 3 ? 128 + s72.chan : 188 + s72.chan).toString(16).toUpperCase() : null;
+    var s10 = bind.sendApdu(sdCla10, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S9-C1 SW", "9000", s10.sw);
+    var r2p10 = BindEs10xProcProfile.walkChoiceList(s10.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has10_0 = false;
+    for (var r2i10_0 = 0; r2i10_0 < r2p10.elements.length; r2i10_0++) {
+        var f = r2p10.elements[r2i10_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has10_0 = true; break; }
+    }
+    bind.checkData("S9-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p10.branch_tag === "A0" && r2has10_0) ? "1" : "0");
+
+    // 步骤 11:SEQ02-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s11 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S10-C1 SW", "6A82", s11.sw);
+
+    // 步骤 12:SEQ03-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla12 = s72.chan !== null ? (s72.chan <= 3 ? 128 + s72.chan : 188 + s72.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s12 = bind.sendApdu(sdCla12, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), null, null);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s12.cmd, profileAidSession);
+    bind.checkData("S11-C2 response data absent", "1", s12.resp === "" ? "1" : "0");
+    bind.checkData("S11-C1 SW1 91", "91", s12.sw.substring(0, 2));
+
+    // 步骤 13:SEQ03-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s13 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S12-C1 proactive command envelope", "1", (s13.resp.length >= 4 && s13.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S12-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+
+    // 步骤 14:SEQ03-3] TERMINAL RESPONSE(tc_step)
+    // TERMINAL RESPONSE data is dynamically built by the binding from the
+    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+    // Header literals follow the golden wire evidence 8014.
+    var s14 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+    bind.checkData("S13-C1 SW", "9000", s14.sw);
+
+    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s74 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC15-IC1-K2-C2 FCP_Template", "1", s74.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC15-IC1-K2-C4 SW", "9000", s74.sw);
+
+    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s75 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC15-IC1-K3-C4 SW", "9000", s75.sw);
+
+    // IC ref inline @E 步骤 15(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 4):TERMINAL_PROFILE_eUICCProfileStateChanged(K 语料机械展开)
+    var steady76 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFFFFFF1FFFFF0302FFFF9FFFEFDFFF0FFF0FFFFF0FFF03003F7FFF03FFFF20", "9000");
+    });
+    bind.checkData("IC15-IC1-K4-C4 final SW", "9000", steady76.final.sw);
+
+    // IC ref inline @E 步骤 16(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s77 = bind.manageChannelOpen("9000");
+    bind.checkData("IC16-IC2-K1-C4 SW", "9000", s77.sw);
+    bind.checkData("IC16-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s77.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 16(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s78 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC16-IC2-K2-C4 SW", "9000", s78.sw);
+
+    // 步骤 17:SEQ03-6] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla17 = s77.chan !== null ? (s77.chan <= 3 ? 128 + s77.chan : 188 + s77.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s17 = bind.sendApdu(sdCla17, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s17.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s17.cmd, profileAidSession);
+    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has17_0 = false;
+    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
+        var f = r2p17.elements[r2i17_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has17_0 = true; break; }
+    }
+    bind.checkData("S16-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
+
+    // 步骤 18:SEQ03-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s18 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S17-C1 SW", "6A82", s18.sw);
+
+    // 步骤 19:SEQ04-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla19 = s77.chan !== null ? (s77.chan <= 3 ? 128 + s77.chan : 188 + s77.chan).toString(16).toUpperCase() : null;
+    var s19 = bind.sendApdu(sdCla19, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
+    bind.checkData("S18-C2 response data absent", "1", s19.resp === "" ? "1" : "0");
+    bind.checkData("S18-C1 SW1 91", "91", s19.sw.substring(0, 2));
+
+    // 步骤 20:SEQ04-2] FETCH 'XX'(tc_step;REQ: RQ32_038, RQ32_039, RQ32_039_1, RQ32_041_2, RQ57_142_13, RQ57_142_14)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s20 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S19-C1 proactive command envelope", "1", (s20.resp.length >= 4 && s20.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S19-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+
+    // 步骤 21:SEQ04-3] TERMINAL RESPONSE(tc_step)
+    // TERMINAL RESPONSE data is dynamically built by the binding from the
+    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+    // Header literals follow the golden wire evidence 8014.
+    var s21 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s21.sw);
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s79 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC22-IC1-K2-C2 FCP_Template", "1", s79.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC22-IC1-K2-C4 SW", "9000", s79.sw);
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s80 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC22-IC1-K3-C4 SW", "9000", s80.sw);
+
+    // IC ref inline @E 步骤 22(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE_eUICCProfileStateChanged, K row 4):TERMINAL_PROFILE_eUICCProfileStateChanged(K 语料机械展开)
+    var steady81 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFFFFFF1FFFFF0302FFFF9FFFEFDFFF0FFF0FFFFF0FFF03003F7FFF03FFFF20", "9000");
+    });
+    bind.checkData("IC22-IC1-K4-C4 final SW", "9000", steady81.final.sw);
+
+    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s82 = bind.manageChannelOpen("9000");
+    bind.checkData("IC23-IC2-K1-C4 SW", "9000", s82.sw);
+    bind.checkData("IC23-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s82.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 23(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s83 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC23-IC2-K2-C4 SW", "9000", s83.sw);
+
+    // 步骤 24:SEQ04-6] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_037_1, RQ57_142_2, RQ57_142_3, RQ57_142_12, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla24 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    var s24 = bind.sendApdu(sdCla24, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S23-C1 SW", "9000", s24.sw);
+    var r2p24 = BindEs10xProcProfile.walkChoiceList(s24.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has24_0 = false;
+    for (var r2i24_0 = 0; r2i24_0 < r2p24.elements.length; r2i24_0++) {
+        var f = r2p24.elements[r2i24_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has24_0 = true; break; }
+    }
+    bind.checkData("S23-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p24.branch_tag === "A0" && r2has24_0) ? "1" : "0");
+
+    // 步骤 25:SEQ04-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s25 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S24-C1 SW", "6A82", s25.sw);
+
+    // 步骤 26:SEQ05-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151, RQ29_002, RQ29_022)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla26 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s26 = bind.sendApdu(sdCla26, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "010100", profileAidSession), null, "9000");
+    bind.checkData("S25-C1 SW", "9000", s26.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s26.cmd, profileAidSession);
+    bind.checkData("S25-C2 response data absent", "1", s26.resp === "" ? "1" : "0");
+
+    // 步骤 27:SEQ05-2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla27 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s27 = bind.sendApdu(sdCla27, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D16A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S26-C1 SW", "9000", s27.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s27.cmd, profileAidSession);
+    var r2p27 = BindEs10xProcProfile.walkChoiceList(s27.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has27_0 = false;
+    for (var r2i27_0 = 0; r2i27_0 < r2p27.elements.length; r2i27_0++) {
+        var f = r2p27.elements[r2i27_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has27_0 = true; break; }
+    }
+    bind.checkData("S26-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p27.branch_tag === "A0" && r2has27_0) ? "1" : "0");
+
+    // 步骤 28:SEQ05-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s28 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S27-C1 SW", "6A82", s28.sw);
+
+    // 步骤 29:SEQ06-1] MTD_STORE_DATA_Case3(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151, RQ29_002, RQ29_022)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla29 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    var s29 = bind.sendApdu(sdCla29, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
+    bind.checkData("S28-C1 SW", "9000", s29.sw);
+    bind.checkData("S28-C2 response data absent", "1", s29.resp === "" ? "1" : "0");
+
+    // 步骤 30:SEQ06-2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_033, RQ32_038, RQ32_041_1, RQ57_142_1, RQ57_142_2, RQ57_142_3, RQ57_142_6, RQ57_142_9, RQ57_142_14, RQ57_151)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla30 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    var s30 = bind.sendApdu(sdCla30, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S29-C1 SW", "9000", s30.sw);
+    var r2p30 = BindEs10xProcProfile.walkChoiceList(s30.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has30_0 = false;
+    for (var r2i30_0 = 0; r2i30_0 < r2p30.elements.length; r2i30_0++) {
+        var f = r2p30.elements[r2i30_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has30_0 = true; break; }
+    }
+    bind.checkData("S29-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p30.branch_tag === "A0" && r2has30_0) ? "1" : "0");
+
+    // 步骤 31:SEQ06-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s31 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S30-C1 SW", "6A82", s31.sw);
+
+    // 步骤 32:SEQ07-IC3] MTD_SEND_SMS_PP(tc_step)
+    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
+    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
+    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
+    var s32 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
+    bind.checkData("S31-C1 SW1 91", "91", s32.sw.substring(0, 2));
+
+    // 步骤 33:SEQ07-1] MTD_STORE_DATA_Case3(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla33 = s82.chan !== null ? (s82.chan <= 3 ? 128 + s82.chan : 188 + s82.chan).toString(16).toUpperCase() : null;
+    var s33 = bind.sendApdu(sdCla33, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, null);
+    bind.checkData("S32-C2 response data absent", "1", s33.resp === "" ? "1" : "0");
+    bind.checkData("S32-C1 SW1 91", "91", s33.sw.substring(0, 2));
+
+    // 步骤 34:SEQ07-2] FETCH 'YY'(tc_step;REQ: RQ32_016_3, RQ32_017, RQ57_134)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s34 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S33-C1 proactive command envelope", "1", (s34.resp.length >= 4 && s34.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S33-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S34:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s34tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s84 = bind.resetAndAtr();
+    bind.checkData("IC35-IC1-K1-C1 ATR_present", "1", s84.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s85 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC35-IC1-K2-C2 FCP_Template", "1", s85.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC35-IC1-K2-C4 SW", "9000", s85.sw);
+
+    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s86 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC35-IC1-K3-C4 SW", "9000", s86.sw);
+
+    // IC ref inline @E 步骤 35(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady87 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC35-IC1-K4-C4 final SW", "9000", steady87.final.sw);
+
+    // IC ref inline @E 步骤 35(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s88 = bind.manageChannelOpen("9000");
+    bind.checkData("IC35-IC2-K1-C4 SW", "9000", s88.sw);
+    bind.checkData("IC35-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s88.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 35(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s89 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC35-IC2-K2-C4 SW", "9000", s89.sw);
+
+    // 步骤 36:SEQ07-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla36 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
+    var s36 = bind.sendApdu(sdCla36, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S35-C1 SW", "9000", s36.sw);
+    var r2p36 = BindEs10xProcProfile.walkChoiceList(s36.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has36_0 = false;
+    for (var r2i36_0 = 0; r2i36_0 < r2p36.elements.length; r2i36_0++) {
+        var f = r2p36.elements[r2i36_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has36_0 = true; break; }
+    }
+    bind.checkData("S35-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p36.branch_tag === "A0" && r2has36_0) ? "1" : "0");
+
+    // 步骤 37:SEQ07-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s37 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S36-C1 SW", "6A82", s37.sw);
+
+    // 步骤 38:SEQ08-IC3] MTD_SEND_SMS_PP(tc_step)
+    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
+    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
+    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
+    var s38 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
+    bind.checkData("S37-C1 SW1 91", "91", s38.sw.substring(0, 2));
+
+    // 步骤 39:SEQ08-1] MTD_STORE_DATA_Case3(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla39 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
+    var s39 = bind.sendApdu(sdCla39, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
+    bind.checkData("S38-C1 SW", "9000", s39.sw);
+    bind.checkData("S38-C2 response data absent", "1", s39.resp === "" ? "1" : "0");
+
+    // 步骤 40:SEQ08-2] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla40 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
+    var s40 = bind.sendApdu(sdCla40, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S39-C1 SW", "9000", s40.sw);
+    var r2p40 = BindEs10xProcProfile.walkChoiceList(s40.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has40_0 = false;
+    for (var r2i40_0 = 0; r2i40_0 < r2p40.elements.length; r2i40_0++) {
+        var f = r2p40.elements[r2i40_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has40_0 = true; break; }
+    }
+    bind.checkData("S39-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p40.branch_tag === "A0" && r2has40_0) ? "1" : "0");
+
+    // 步骤 41:SEQ08-3] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s41 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S40-C1 SW", "6A82", s41.sw);
+
+    // 步骤 42:SEQ09-IC3] MTD_SEND_SMS_PP(tc_step)
+    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
+    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
+    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
+    var s42 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
+    bind.checkData("S41-C1 SW1 91", "91", s42.sw.substring(0, 2));
+
+    // 步骤 43:SEQ09-1] FETCH ‘XX’(tc_step)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s43 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S42-C1 proactive command envelope", "1", (s43.resp.length >= 4 && s43.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S42-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S43:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s43tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // 步骤 44:SEQ09-2] MTD_STORE_DATA_Case3(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla44 = s88.chan !== null ? (s88.chan <= 3 ? 128 + s88.chan : 188 + s88.chan).toString(16).toUpperCase() : null;
+    var s44 = bind.sendApdu(sdCla44, "E2", "90", "00", "BF320F5A0A989209012143658709F50101FF", null, "9000");
+    bind.checkData("S43-C1 SW", "9000", s44.sw);
+    bind.checkData("S43-C2 response data absent", "1", s44.resp === "" ? "1" : "0");
+
+    // 步骤 45:SEQ09-3] TERMINAL RESPONSE(tc_step)
+    // TERMINAL RESPONSE data is dynamically built by the binding from the
+    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+    // Header literals follow the golden wire evidence 8014.
+    var s45 = bind.terminalResponseForPending("80", "14", "00", "00", null);
+    bind.checkData("S44-C1 SW1 91", "91", s45.sw.substring(0, 2));
+
+    // 步骤 46:SEQ09-4] FETCH 'YY'(tc_step;REQ: RQ32_016_3, RQ32_017, RQ57_134)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s46 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S45-C1 proactive command envelope", "1", (s46.resp.length >= 4 && s46.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S45-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S46:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s46tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s90 = bind.resetAndAtr();
+    bind.checkData("IC47-IC1-K1-C1 ATR_present", "1", s90.atr_hex !== "" ? "1" : "0");
+
+    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s91 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("IC47-IC1-K2-C2 FCP_Template", "1", s91.resp.length > 0 ? "1" : "0");
+    bind.checkData("IC47-IC1-K2-C4 SW", "9000", s91.sw);
+
+    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s92 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("IC47-IC1-K3-C4 SW", "9000", s92.sw);
+
+    // IC ref inline @E 步骤 47(IC1 → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady93 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("IC47-IC1-K4-C4 final SW", "9000", steady93.final.sw);
+
+    // IC ref inline @E 步骤 47(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s94 = bind.manageChannelOpen("9000");
+    bind.checkData("IC47-IC2-K1-C4 SW", "9000", s94.sw);
+    bind.checkData("IC47-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s94.chan !== null ? "1" : "0");
+
+    // IC ref inline @E 步骤 47(IC2 → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s95 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("IC47-IC2-K2-C4 SW", "9000", s95.sw);
+
+    // 步骤 48:SEQ09-6] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla48 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
+    var s48 = bind.sendApdu(sdCla48, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S47-C1 SW", "9000", s48.sw);
+    var r2p48 = BindEs10xProcProfile.walkChoiceList(s48.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has48_0 = false;
+    for (var r2i48_0 = 0; r2i48_0 < r2p48.elements.length; r2i48_0++) {
+        var f = r2p48.elements[r2i48_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has48_0 = true; break; }
+    }
+    bind.checkData("S47-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p48.branch_tag === "A0" && r2has48_0) ? "1" : "0");
+
+    // 步骤 49:SEQ09-7] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s49 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S48-C1 SW", "6A82", s49.sw);
+
+    // 步骤 50:SEQ10-IC3] MTD_SEND_SMS_PP(tc_step)
+    // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238 Details: 80 C2 00 00 <L>): SCP80-packed SMS-PP body is runtime-domain
+    // (<MNO_SCP80_COUNTER>/<CC>/<C_APDUS_SCRIPT>) — no bytes fabricated; the embedded STORE DATA
+    // script executes via the proactive FETCH / TERMINAL RESPONSE chain, not in this response.
+    var s50 = bind.sendApdu("80", "C2", "00", "00", null, null, null);
+    bind.checkData("S49-C1 SW1 91", "91", s50.sw.substring(0, 2));
+
+    // 步骤 51:SEQ10-1] FETCH ‘XX’(tc_step)
+    // FETCH header literals follow the golden wire evidence 8012 (same
+    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+    // gives mechanism only). Le = pending length from the last 91XX
+    // (chain rule, binding-internal state).
+    var s51 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S50-C1 proactive command envelope", "1", (s51.resp.length >= 4 && s51.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S50-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+    // S51:主动会话协议闭合(TS 102 223 §6.3:主动命令必须 TR 应答;
+    // UICC Reset 变体 E 表无 TR 行属编辑省略,golden U3 线证同构)。
+    var s51tr = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+
+    // 步骤 52:SEQ10-2] MTD_STORE_DATA_Case3(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla52 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
+    var s52 = bind.sendApdu(sdCla52, "E2", "90", "00", "BF320F5A0A989209012143658709F5010100", null, "9000");
+    bind.checkData("S51-C1 SW", "9000", s52.sw);
+    bind.checkData("S51-C2 response data absent", "1", s52.resp === "" ? "1" : "0");
+
+    // 步骤 53:SEQ10-3] TERMINAL RESPONSE(tc_step)
+    // TERMINAL RESPONSE data is dynamically built by the binding from the
+    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+    // Header literals follow the golden wire evidence 8014.
+    var s53 = bind.terminalResponseForPending("80", "14", "00", "00", null);
+    bind.checkData("S52-C1 SW1 != 91", "1", s53.sw.substring(0, 2) !== "91" ? "1" : "0");
+
+    // 步骤 54:SEQ10-4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla54 = s94.chan !== null ? (s94.chan <= 3 ? 128 + s94.chan : 188 + s94.chan).toString(16).toUpperCase() : null;
+    var s54 = bind.sendApdu(sdCla54, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S53-C1 SW", "9000", s54.sw);
+    var r2p54 = BindEs10xProcProfile.walkChoiceList(s54.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has54_0 = false;
+    for (var r2i54_0 = 0; r2i54_0 < r2p54.elements.length; r2i54_0++) {
+        var f = r2p54.elements[r2i54_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has54_0 = true; break; }
+    }
+    bind.checkData("S53-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p54.branch_tag === "A0" && r2has54_0) ? "1" : "0");
+
+    // 步骤 55:SEQ10-5] [SELECT_ICCID(tc_step;REQ: RQ24_025)
+    var s55 = bind.sendApdu("00", "A4", "00", "0C", "2FE2", null, "6A82");
+    bind.checkData("S54-C1 SW", "6A82", s55.sw);
 }