[PATCH 14/19] test-stkutil: Add unit test for select item parser

Yang Gu yang.gu at intel.com
Mon May 10 03:38:57 PDT 2010


---
 unit/test-stkutil.c | 2035 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 2035 insertions(+), 0 deletions(-)

diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 941c443..70d87d3 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -86,6 +86,13 @@ static void check_item(const struct stk_item *command,
 	g_assert(g_str_equal(command->text, test->text));
 }
 
+/* Defined in TS 102.223 Section 8.10 */
+static inline void check_item_id(const unsigned char command,
+					const unsigned char test)
+{
+	check_common_byte(command, test);
+}
+
 static void check_items(GSList *command, const struct stk_item *test)
 {
 	struct stk_item *si;
@@ -5469,6 +5476,1937 @@ static void test_setup_menu(gconstpointer data)
 	stk_command_free(command);
 }
 
+struct select_item_test {
+	const unsigned char *pdu;
+	unsigned int pdu_len;
+	unsigned char qualifier;
+	char *alpha_id;
+	struct stk_item items[MAX_ITEM];
+	struct stk_items_next_action_indicator next_act;
+	unsigned char item_id;
+	struct stk_icon_id icon_id;
+	struct stk_item_icon_id_list item_icon_id_list;
+	struct stk_text_attribute text_attr;
+	struct stk_item_text_attribute_list item_text_attr_list;
+	struct stk_frame_id frame_id;
+};
+
+static unsigned char select_item_111[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33, 0x8F, 0x07,
+						0x04, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x34 };
+
+static unsigned char select_item_121[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
+						0x24, 0x00, 0x82, 0x02, 0x81,
+						0x82, 0x85, 0x0A, 0x4C, 0x61,
+						0x72, 0x67, 0x65, 0x4D, 0x65,
+						0x6E, 0x75, 0x31, 0x8F, 0x05,
+						0x50, 0x5A, 0x65, 0x72, 0x6F,
+						0x8F, 0x04, 0x4F, 0x4F, 0x6E,
+						0x65, 0x8F, 0x04, 0x4E, 0x54,
+						0x77, 0x6F, 0x8F, 0x06, 0x4D,
+						0x54, 0x68, 0x72, 0x65, 0x65,
+						0x8F, 0x05, 0x4C, 0x46, 0x6F,
+						0x75, 0x72, 0x8F, 0x05, 0x4B,
+						0x46, 0x69, 0x76, 0x65, 0x8F,
+						0x04, 0x4A, 0x53, 0x69, 0x78,
+						0x8F, 0x06, 0x49, 0x53, 0x65,
+						0x76, 0x65, 0x6E, 0x8F, 0x06,
+						0x48, 0x45, 0x69, 0x67, 0x68,
+						0x74, 0x8F, 0x05, 0x47, 0x4E,
+						0x69, 0x6E, 0x65, 0x8F, 0x06,
+						0x46, 0x41, 0x6C, 0x70, 0x68,
+						0x61, 0x8F, 0x06, 0x45, 0x42,
+						0x72, 0x61, 0x76, 0x6F, 0x8F,
+						0x08, 0x44, 0x43, 0x68, 0x61,
+						0x72, 0x6C, 0x69, 0x65, 0x8F,
+						0x06, 0x43, 0x44, 0x65, 0x6C,
+						0x74, 0x61, 0x8F, 0x05, 0x42,
+						0x45, 0x63, 0x68, 0x6F, 0x8F,
+						0x09, 0x41, 0x46, 0x6F, 0x78,
+						0x2D, 0x74, 0x72, 0x6F, 0x74,
+						0x8F, 0x06, 0x40, 0x42, 0x6C,
+						0x61, 0x63, 0x6B, 0x8F, 0x06,
+						0x3F, 0x42, 0x72, 0x6F, 0x77,
+						0x6E, 0x8F, 0x04, 0x3E, 0x52,
+						0x65, 0x64, 0x8F, 0x07, 0x3D,
+						0x4F, 0x72, 0x61, 0x6E, 0x67,
+						0x65, 0x8F, 0x07, 0x3C, 0x59,
+						0x65, 0x6C, 0x6C, 0x6F, 0x77,
+						0x8F, 0x06, 0x3B, 0x47, 0x72,
+						0x65, 0x65, 0x6E, 0x8F, 0x05,
+						0x3A, 0x42, 0x6C, 0x75, 0x65,
+						0x8F, 0x07, 0x39, 0x56, 0x69,
+						0x6F, 0x6C, 0x65, 0x74, 0x8F,
+						0x05, 0x38, 0x47, 0x72, 0x65,
+						0x79, 0x8F, 0x06, 0x37, 0x57,
+						0x68, 0x69, 0x74, 0x65, 0x8F,
+						0x06, 0x36, 0x6D, 0x69, 0x6C,
+						0x6C, 0x69, 0x8F, 0x06, 0x35,
+						0x6D, 0x69, 0x63, 0x72, 0x6F,
+						0x8F, 0x05, 0x34, 0x6E, 0x61,
+						0x6E, 0x6F, 0x8F, 0x05, 0x33,
+						0x70, 0x69, 0x63, 0x6F };
+
+static unsigned char select_item_131[] = { 0xD0, 0x81, 0xFB, 0x81, 0x03, 0x01,
+						0x24, 0x00, 0x82, 0x02, 0x81,
+						0x82, 0x85, 0x0A, 0x4C, 0x61,
+						0x72, 0x67, 0x65, 0x4D, 0x65,
+						0x6E, 0x75, 0x32, 0x8F, 0x1E,
+						0xFF, 0x43, 0x61, 0x6C, 0x6C,
+						0x20, 0x46, 0x6F, 0x72, 0x77,
+						0x61, 0x72, 0x64, 0x69, 0x6E,
+						0x67, 0x20, 0x55, 0x6E, 0x63,
+						0x6F, 0x6E, 0x64, 0x69, 0x74,
+						0x69, 0x6F, 0x6E, 0x61, 0x6C,
+						0x8F, 0x1D, 0xFE, 0x43, 0x61,
+						0x6C, 0x6C, 0x20, 0x46, 0x6F,
+						0x72, 0x77, 0x61, 0x72, 0x64,
+						0x69, 0x6E, 0x67, 0x20, 0x4F,
+						0x6E, 0x20, 0x55, 0x73, 0x65,
+						0x72, 0x20, 0x42, 0x75, 0x73,
+						0x79, 0x8F, 0x1C, 0xFD, 0x43,
+						0x61, 0x6C, 0x6C, 0x20, 0x46,
+						0x6F, 0x72, 0x77, 0x61, 0x72,
+						0x64, 0x69, 0x6E, 0x67, 0x20,
+						0x4F, 0x6E, 0x20, 0x4E, 0x6F,
+						0x20, 0x52, 0x65, 0x70, 0x6C,
+						0x79, 0x8F, 0x26, 0xFC, 0x43,
+						0x61, 0x6C, 0x6C, 0x20, 0x46,
+						0x6F, 0x72, 0x77, 0x61, 0x72,
+						0x64, 0x69, 0x6E, 0x67, 0x20,
+						0x4F, 0x6E, 0x20, 0x55, 0x73,
+						0x65, 0x72, 0x20, 0x4E, 0x6F,
+						0x74, 0x20, 0x52, 0x65, 0x61,
+						0x63, 0x68, 0x61, 0x62, 0x6C,
+						0x65, 0x8F, 0x1E, 0xFB, 0x42,
+						0x61, 0x72, 0x72, 0x69, 0x6E,
+						0x67, 0x20, 0x4F, 0x66, 0x20,
+						0x41, 0x6C, 0x6C, 0x20, 0x4F,
+						0x75, 0x74, 0x67, 0x6F, 0x69,
+						0x6E, 0x67, 0x20, 0x43, 0x61,
+						0x6C, 0x6C, 0x73, 0x8F, 0x2C,
+						0xFA, 0x42, 0x61, 0x72, 0x72,
+						0x69, 0x6E, 0x67, 0x20, 0x4F,
+						0x66, 0x20, 0x41, 0x6C, 0x6C,
+						0x20, 0x4F, 0x75, 0x74, 0x67,
+						0x6F, 0x69, 0x6E, 0x67, 0x20,
+						0x49, 0x6E, 0x74, 0x65, 0x72,
+						0x6E, 0x61, 0x74, 0x69, 0x6F,
+						0x6E, 0x61, 0x6C, 0x20, 0x43,
+						0x61, 0x6C, 0x6C, 0x73, 0x8F,
+						0x11, 0xF9, 0x43, 0x4C, 0x49,
+						0x20, 0x50, 0x72, 0x65, 0x73,
+						0x65, 0x6E, 0x74, 0x61, 0x74,
+						0x69, 0x6F, 0x6E };
+
+static unsigned char select_item_141[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0B, 0x53, 0x65, 0x6C,
+						0x65, 0x63, 0x74, 0x20, 0x49,
+						0x74, 0x65, 0x6D, 0x8F, 0x04,
+						0x11, 0x4F, 0x6E, 0x65, 0x8F,
+						0x04, 0x12, 0x54, 0x77, 0x6F };
+
+static unsigned char select_item_151[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
+						0x24, 0x00, 0x82, 0x02, 0x81,
+						0x82, 0x85, 0x81, 0xED, 0x54,
+						0x68, 0x65, 0x20, 0x53, 0x49,
+						0x4D, 0x20, 0x73, 0x68, 0x61,
+						0x6C, 0x6C, 0x20, 0x73, 0x75,
+						0x70, 0x70, 0x6C, 0x79, 0x20,
+						0x61, 0x20, 0x73, 0x65, 0x74,
+						0x20, 0x6F, 0x66, 0x20, 0x69,
+						0x74, 0x65, 0x6D, 0x73, 0x20,
+						0x66, 0x72, 0x6F, 0x6D, 0x20,
+						0x77, 0x68, 0x69, 0x63, 0x68,
+						0x20, 0x74, 0x68, 0x65, 0x20,
+						0x75, 0x73, 0x65, 0x72, 0x20,
+						0x6D, 0x61, 0x79, 0x20, 0x63,
+						0x68, 0x6F, 0x6F, 0x73, 0x65,
+						0x20, 0x6F, 0x6E, 0x65, 0x2E,
+						0x20, 0x45, 0x61, 0x63, 0x68,
+						0x20, 0x69, 0x74, 0x65, 0x6D,
+						0x20, 0x63, 0x6F, 0x6D, 0x70,
+						0x72, 0x69, 0x73, 0x65, 0x73,
+						0x20, 0x61, 0x20, 0x73, 0x68,
+						0x6F, 0x72, 0x74, 0x20, 0x69,
+						0x64, 0x65, 0x6E, 0x74, 0x69,
+						0x66, 0x69, 0x65, 0x72, 0x20,
+						0x28, 0x75, 0x73, 0x65, 0x64,
+						0x20, 0x74, 0x6F, 0x20, 0x69,
+						0x6E, 0x64, 0x69, 0x63, 0x61,
+						0x74, 0x65, 0x20, 0x74, 0x68,
+						0x65, 0x20, 0x73, 0x65, 0x6C,
+						0x65, 0x63, 0x74, 0x69, 0x6F,
+						0x6E, 0x29, 0x20, 0x61, 0x6E,
+						0x64, 0x20, 0x61, 0x20, 0x74,
+						0x65, 0x78, 0x74, 0x20, 0x73,
+						0x74, 0x72, 0x69, 0x6E, 0x67,
+						0x2E, 0x20, 0x4F, 0x70, 0x74,
+						0x69, 0x6F, 0x6E, 0x61, 0x6C,
+						0x6C, 0x79, 0x20, 0x74, 0x68,
+						0x65, 0x20, 0x53, 0x49, 0x4D,
+						0x20, 0x6D, 0x61, 0x79, 0x20,
+						0x69, 0x6E, 0x63, 0x6C, 0x75,
+						0x64, 0x65, 0x20, 0x61, 0x6E,
+						0x20, 0x61, 0x6C, 0x70, 0x68,
+						0x61, 0x20, 0x69, 0x64, 0x65,
+						0x6E, 0x74, 0x69, 0x66, 0x69,
+						0x65, 0x72, 0x2E, 0x20, 0x54,
+						0x68, 0x65, 0x20, 0x61, 0x6C,
+						0x70, 0x68, 0x61, 0x20, 0x69,
+						0x64, 0x65, 0x6E, 0x74, 0x69,
+						0x66, 0x69, 0x65, 0x72, 0x20,
+						0x69, 0x8F, 0x02, 0x01, 0x59 };
+
+static unsigned char select_item_161[] = { 0xD0, 0x81, 0xF3, 0x81, 0x03, 0x01,
+						0x24, 0x00, 0x82, 0x02, 0x81,
+						0x82, 0x85, 0x0A, 0x30, 0x4C,
+						0x61, 0x72, 0x67, 0x65, 0x4D,
+						0x65, 0x6E, 0x75, 0x8F, 0x1D,
+						0xFF, 0x31, 0x20, 0x43, 0x61,
+						0x6C, 0x6C, 0x20, 0x46, 0x6F,
+						0x72, 0x77, 0x61, 0x72, 0x64,
+						0x20, 0x55, 0x6E, 0x63, 0x6F,
+						0x6E, 0x64, 0x69, 0x74, 0x69,
+						0x6F, 0x6E, 0x61, 0x6C, 0x8F,
+						0x1C, 0xFE, 0x32, 0x20, 0x43,
+						0x61, 0x6C, 0x6C, 0x20, 0x46,
+						0x6F, 0x72, 0x77, 0x61, 0x72,
+						0x64, 0x20, 0x4F, 0x6E, 0x20,
+						0x55, 0x73, 0x65, 0x72, 0x20,
+						0x42, 0x75, 0x73, 0x79, 0x8F,
+						0x1B, 0xFD, 0x33, 0x20, 0x43,
+						0x61, 0x6C, 0x6C, 0x20, 0x46,
+						0x6F, 0x72, 0x77, 0x61, 0x72,
+						0x64, 0x20, 0x4F, 0x6E, 0x20,
+						0x4E, 0x6F, 0x20, 0x52, 0x65,
+						0x70, 0x6C, 0x79, 0x8F, 0x25,
+						0xFC, 0x34, 0x20, 0x43, 0x61,
+						0x6C, 0x6C, 0x20, 0x46, 0x6F,
+						0x72, 0x77, 0x61, 0x72, 0x64,
+						0x20, 0x4F, 0x6E, 0x20, 0x55,
+						0x73, 0x65, 0x72, 0x20, 0x4E,
+						0x6F, 0x74, 0x20, 0x52, 0x65,
+						0x61, 0x63, 0x68, 0x61, 0x62,
+						0x6C, 0x65, 0x8F, 0x20, 0xFB,
+						0x35, 0x20, 0x42, 0x61, 0x72,
+						0x72, 0x69, 0x6E, 0x67, 0x20,
+						0x4F, 0x66, 0x20, 0x41, 0x6C,
+						0x6C, 0x20, 0x4F, 0x75, 0x74,
+						0x67, 0x6F, 0x69, 0x6E, 0x67,
+						0x20, 0x43, 0x61, 0x6C, 0x6C,
+						0x73, 0x8F, 0x24, 0xFA, 0x36,
+						0x20, 0x42, 0x61, 0x72, 0x72,
+						0x69, 0x6E, 0x67, 0x20, 0x4F,
+						0x66, 0x20, 0x41, 0x6C, 0x6C,
+						0x20, 0x4F, 0x75, 0x74, 0x67,
+						0x6F, 0x69, 0x6E, 0x67, 0x20,
+						0x49, 0x6E, 0x74, 0x20, 0x43,
+						0x61, 0x6C, 0x6C, 0x73, 0x8F,
+						0x13, 0xF9, 0x37, 0x20, 0x43,
+						0x4C, 0x49, 0x20, 0x50, 0x72,
+						0x65, 0x73, 0x65, 0x6E, 0x74,
+						0x61, 0x74, 0x69, 0x6F, 0x6E };
+
+static unsigned char select_item_211[] = { 0xD0, 0x39, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33, 0x18, 0x03,
+						0x13, 0x10, 0x26 };
+
+static unsigned char select_item_311[] = { 0xD0, 0x37, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33, 0x90, 0x01,
+						0x02 };
+
+static unsigned char select_item_411[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
+						0x80, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33 };
+
+static unsigned char select_item_511[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33, 0x9E, 0x02,
+						0x01, 0x01, 0x9F, 0x04, 0x01,
+						0x05, 0x05, 0x05 };
+
+static unsigned char select_item_521[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33, 0x9E, 0x02,
+						0x00, 0x01, 0x9F, 0x04, 0x00,
+						0x05, 0x05, 0x05 };
+
+static unsigned char select_item_611[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
+						0x03, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33 };
+
+static unsigned char select_item_621[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
+						0x01, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32, 0x8F,
+						0x07, 0x03, 0x49, 0x74, 0x65,
+						0x6D, 0x20, 0x33 };
+
+static unsigned char select_item_711[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x24,
+						0x04, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0E, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x8F, 0x07, 0x01, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x31,
+						0x8F, 0x07, 0x02, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x32 };
+
+static unsigned char select_item_811[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0A, 0x3C, 0x54, 0x49,
+						0x4D, 0x45, 0x2D, 0x4F, 0x55,
+						0x54, 0x3E, 0x8F, 0x07, 0x01,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x31, 0x8F, 0x07, 0x02, 0x49,
+						0x74, 0x65, 0x6D, 0x20, 0x32,
+						0x8F, 0x07, 0x03, 0x49, 0x74,
+						0x65, 0x6D, 0x20, 0x33 };
+
+static unsigned char select_item_911[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_912[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34 };
+
+static unsigned char select_item_921[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x01, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x01, 0xB4, 0x00, 0x06,
+						0x01, 0xB4 };
+
+static unsigned char select_item_922[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34 };
+
+static unsigned char select_item_931[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x02, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x02, 0xB4, 0x00, 0x06,
+						0x02, 0xB4 };
+
+static unsigned char select_item_932[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34 };
+
+static unsigned char select_item_941[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x04, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x04, 0xB4, 0x00, 0x06,
+						0x04, 0xB4 };
+
+static unsigned char select_item_942[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_943[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_951[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x08, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x08, 0xB4, 0x00, 0x06,
+						0x08, 0xB4 };
+
+static unsigned char select_item_952[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_953[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_961[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x10, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x10, 0xB4, 0x00, 0x06,
+						0x10, 0xB4 };
+
+static unsigned char select_item_962[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_963[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_971[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x20, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x20, 0xB4, 0x00, 0x06,
+						0x20, 0xB4 };
+
+static unsigned char select_item_972[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_973[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_981[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x40, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x40, 0xB4, 0x00, 0x06,
+						0x40, 0xB4 };
+
+static unsigned char select_item_982[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_983[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_991[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x80, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x80, 0xB4, 0x00, 0x06,
+						0x80, 0xB4 };
+
+static unsigned char select_item_992[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_993[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x33, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x35, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x36 };
+
+static unsigned char select_item_9101[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x31, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x31, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x32, 0xD0, 0x04, 0x00, 0x10,
+						0x00, 0xB4, 0xD1, 0x08, 0x00,
+						0x06, 0x00, 0xB4, 0x00, 0x06,
+						0x00, 0xB4 };
+
+static unsigned char select_item_9102[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x54, 0x6F, 0x6F,
+						0x6C, 0x6B, 0x69, 0x74, 0x20,
+						0x53, 0x65, 0x6C, 0x65, 0x63,
+						0x74, 0x20, 0x32, 0x8F, 0x07,
+						0x01, 0x49, 0x74, 0x65, 0x6D,
+						0x20, 0x33, 0x8F, 0x07, 0x02,
+						0x49, 0x74, 0x65, 0x6D, 0x20,
+						0x34 };
+
+static unsigned char select_item_1011[] = { 0xD0, 0x7E, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x19, 0x80, 0x04, 0x17,
+						0x04, 0x14, 0x04, 0x20, 0x04,
+						0x10, 0x04, 0x12, 0x04, 0x21,
+						0x04, 0x22, 0x04, 0x12, 0x04,
+						0x23, 0x04, 0x19, 0x04, 0x22,
+						0x04, 0x15, 0x8F, 0x1C, 0x01,
+						0x80, 0x04, 0x17, 0x04, 0x14,
+						0x04, 0x20, 0x04, 0x10, 0x04,
+						0x12, 0x04, 0x21, 0x04, 0x22,
+						0x04, 0x12, 0x04, 0x23, 0x04,
+						0x19, 0x04, 0x22, 0x04, 0x15,
+						0x00, 0x31, 0x8F, 0x1C, 0x02,
+						0x80, 0x04, 0x17, 0x04, 0x14,
+						0x04, 0x20, 0x04, 0x10, 0x04,
+						0x12, 0x04, 0x21, 0x04, 0x22,
+						0x04, 0x12, 0x04, 0x23, 0x04,
+						0x19, 0x04, 0x22, 0x04, 0x15,
+						0x00, 0x32, 0x8F, 0x1C, 0x03,
+						0x80, 0x04, 0x17, 0x04, 0x14,
+						0x04, 0x20, 0x04, 0x10, 0x04,
+						0x12, 0x04, 0x21, 0x04, 0x22,
+						0x04, 0x12, 0x04, 0x23, 0x04,
+						0x19, 0x04, 0x22, 0x04, 0x15,
+						0x00, 0x33 };
+
+static unsigned char select_item_1021[] = { 0xD0, 0x53, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0F, 0x81, 0x0C, 0x08,
+						0x97, 0x94, 0xA0, 0x90, 0x92,
+						0xA1, 0xA2, 0x92, 0xA3, 0x99,
+						0xA2, 0x95, 0x8F, 0x11, 0x01,
+						0x81, 0x0D, 0x08, 0x97, 0x94,
+						0xA0, 0x90, 0x92, 0xA1, 0xA2,
+						0x92, 0xA3, 0x99, 0xA2, 0x95,
+						0x31, 0x8F, 0x11, 0x02, 0x81,
+						0x0D, 0x08, 0x97, 0x94, 0xA0,
+						0x90, 0x92, 0xA1, 0xA2, 0x92,
+						0xA3, 0x99, 0xA2, 0x95, 0x32,
+						0x8F, 0x11, 0x03, 0x81, 0x0D,
+						0x08, 0x97, 0x94, 0xA0, 0x90,
+						0x92, 0xA1, 0xA2, 0x92, 0xA3,
+						0x99, 0xA2, 0x95, 0x33 };
+
+static unsigned char select_item_1031[] = { 0xD0, 0x57, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x10, 0x82, 0x0C, 0x04,
+						0x10, 0x87, 0x84, 0x90, 0x80,
+						0x82, 0x91, 0x92, 0x82, 0x93,
+						0x89, 0x92, 0x85, 0x8F, 0x12,
+						0x01, 0x82, 0x0D, 0x04, 0x10,
+						0x87, 0x84, 0x90, 0x80, 0x82,
+						0x91, 0x92, 0x82, 0x93, 0x89,
+						0x92, 0x85, 0x31, 0x8F, 0x12,
+						0x02, 0x82, 0x0D, 0x04, 0x10,
+						0x87, 0x84, 0x90, 0x80, 0x82,
+						0x91, 0x92, 0x82, 0x93, 0x89,
+						0x92, 0x85, 0x32, 0x8F, 0x12,
+						0x03, 0x82, 0x0D, 0x04, 0x10,
+						0x87, 0x84, 0x90, 0x80, 0x82,
+						0x91, 0x92, 0x82, 0x93, 0x89,
+						0x92, 0x85, 0x33 };
+
+static unsigned char select_item_1111[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x0B, 0x80, 0x5D, 0xE5,
+						0x51, 0x77, 0x7B, 0xB1, 0x90,
+						0x09, 0x62, 0xE9, 0x8F, 0x08,
+						0x01, 0x80, 0x98, 0x79, 0x76,
+						0xEE, 0x4E, 0x00, 0x8F, 0x08,
+						0x02, 0x80, 0x98, 0x79, 0x76,
+						0xEE, 0x4E, 0x8C, 0x8F, 0x08,
+						0x03, 0x80, 0x98, 0x79, 0x76,
+						0xEE, 0x4E, 0x09, 0x8F, 0x08,
+						0x04, 0x80, 0x98, 0x79, 0x76,
+						0xEE, 0x56, 0xDB };
+
+static unsigned char select_item_1211[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x09, 0x80, 0x00, 0x38,
+						0x00, 0x30, 0x30, 0xEB, 0x00,
+						0x30, 0x8F, 0x0A, 0x01, 0x80,
+						0x00, 0x38, 0x00, 0x30, 0x30,
+						0xEB, 0x00, 0x31, 0x8F, 0x0A,
+						0x02, 0x80, 0x00, 0x38, 0x00,
+						0x30, 0x30, 0xEB, 0x00, 0x32,
+						0x8F, 0x0A, 0x03, 0x80, 0x00,
+						0x38, 0x00, 0x30, 0x30, 0xEB,
+						0x00, 0x33 };
+
+static unsigned char select_item_1221[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x07, 0x81, 0x04, 0x61,
+						0x38, 0x31, 0xEB, 0x30, 0x8F,
+						0x08, 0x01, 0x81, 0x04, 0x61,
+						0x38, 0x31, 0xEB, 0x31, 0x8F,
+						0x08, 0x02, 0x81, 0x04, 0x61,
+						0x38, 0x31, 0xEB, 0x32, 0x8F,
+						0x08, 0x03, 0x81, 0x04, 0x61,
+						0x38, 0x31, 0xEB, 0x33 };
+
+static unsigned char select_item_1231[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
+						0x00, 0x82, 0x02, 0x81, 0x82,
+						0x85, 0x08, 0x82, 0x04, 0x30,
+						0xA0, 0x38, 0x32, 0xCB, 0x30,
+						0x8F, 0x09, 0x01, 0x82, 0x04,
+						0x30, 0xA0, 0x38, 0x32, 0xCB,
+						0x31, 0x8F, 0x09, 0x02, 0x82,
+						0x04, 0x30, 0xA0, 0x38, 0x32,
+						0xCB, 0x32, 0x8F, 0x09, 0x03,
+						0x82, 0x04, 0x30, 0xA0, 0x38,
+						0x32, 0xCB, 0x33 };
+
+static struct select_item_test select_item_data_111 = {
+	.pdu = select_item_111,
+	.pdu_len = sizeof(select_item_111),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	},
+	.items[3] = {
+		.id = 4,
+		.text = "Item 4"
+	}
+};
+
+static struct select_item_test select_item_data_121 = {
+	.pdu = select_item_121,
+	.pdu_len = sizeof(select_item_121),
+	.qualifier = 0x00,
+	.alpha_id = "LargeMenu1",
+	.items[0] = {
+		.id = 0x50,
+		.text = "Zero"
+	},
+	.items[1] = {
+		.id = 0x4F,
+		.text = "One"
+	},
+	.items[2] = {
+		.id = 0x4E,
+		.text = "Two"
+	},
+	.items[3] = {
+		.id = 0x4D,
+		.text = "Three"
+	},
+	.items[4] = {
+		.id = 0x4C,
+		.text = "Four"
+	},
+	.items[5] = {
+		.id = 0x4B,
+		.text = "Five"
+	},
+	.items[6] = {
+		.id = 0x4A,
+		.text = "Six"
+	},
+	.items[7] = {
+		.id = 0x49,
+		.text = "Seven"
+	},
+	.items[8] = {
+		.id = 0x48,
+		.text = "Eight"
+	},
+	.items[9] = {
+		.id = 0x47,
+		.text = "Nine"
+	},
+	.items[10] = {
+		.id = 0x46,
+		.text = "Alpha"
+	},
+	.items[11] = {
+		.id = 0x45,
+		.text = "Bravo"
+	},
+	.items[12] = {
+		.id = 0x44,
+		.text = "Charlie"
+	},
+	.items[13] = {
+		.id = 0x43,
+		.text = "Delta"
+	},
+	.items[14] = {
+		.id = 0x42,
+		.text = "Echo"
+	},
+	.items[15] = {
+		.id = 0x41,
+		.text = "Fox-trot"
+	},
+	.items[16] = {
+		.id = 0x40,
+		.text = "Black"
+	},
+	.items[17] = {
+		.id = 0x3F,
+		.text = "Brown"
+	},
+	.items[18] = {
+		.id = 0x3E,
+		.text = "Red"
+	},
+	.items[19] = {
+		.id = 0x3D,
+		.text = "Orange"
+	},
+	.items[20] = {
+		.id = 0x3C,
+		.text = "Yellow"
+	},
+	.items[21] = {
+		.id = 0x3B,
+		.text = "Green"
+	},
+	.items[22] = {
+		.id = 0x3A,
+		.text = "Blue"
+	},
+	.items[23] = {
+		.id = 0x39,
+		.text = "Violet"
+	},
+	.items[24] = {
+		.id = 0x38,
+		.text = "Grey"
+	},
+	.items[25] = {
+		.id = 0x37,
+		.text = "White"
+	},
+	.items[26] = {
+		.id = 0x36,
+		.text = "milli"
+	},
+	.items[27] = {
+		.id = 0x35,
+		.text = "micro"
+	},
+	.items[28] = {
+		.id = 0x34,
+		.text = "nano"
+	},
+	.items[29] = {
+		.id = 0x33,
+		.text = "pico"
+	}
+};
+
+static struct select_item_test select_item_data_131 = {
+	.pdu = select_item_131,
+	.pdu_len = sizeof(select_item_131),
+	.qualifier = 0x00,
+	.alpha_id = "LargeMenu2",
+	.items[0] = {
+		.id = 0xFF,
+		.text = "Call Forwarding Unconditional"
+	},
+	.items[1] = {
+		.id = 0xFE,
+		.text = "Call Forwarding On User Busy"
+	},
+	.items[2] = {
+		.id = 0xFD,
+		.text = "Call Forwarding On No Reply"
+	},
+	.items[3] = {
+		.id = 0xFC,
+		.text = "Call Forwarding On User Not Reachable"
+	},
+	.items[4] = {
+		.id = 0xFB,
+		.text = "Barring Of All Outgoing Calls"
+	},
+	.items[5] = {
+		.id = 0xFA,
+		.text = "Barring Of All Outgoing International Calls"
+	},
+	.items[6] = {
+		.id = 0xF9,
+		.text = "CLI Presentation"
+	}
+};
+
+static struct select_item_test select_item_data_141 = {
+	.pdu = select_item_141,
+	.pdu_len = sizeof(select_item_141),
+	.qualifier = 0x00,
+	.alpha_id = "Select Item",
+	.items[0] = {
+		.id = 0x11,
+		.text = "One"
+	},
+	.items[1] = {
+		.id = 0x12,
+		.text = "Two"
+	}
+};
+
+static struct select_item_test select_item_data_151 = {
+	.pdu = select_item_151,
+	.pdu_len = sizeof(select_item_151),
+	.qualifier = 0x00,
+	.alpha_id = "The SIM shall supply a set of items from which the user "
+		"may choose one. Each item comprises a short identifier (used "
+		"to indicate the selection) and a text string. Optionally the "
+		"SIM may include an alpha identifier. The alpha identifier i",
+	.items[0] = {
+		.id = 0x01,
+		.text = "Y"
+	}
+};
+
+static struct select_item_test select_item_data_161 = {
+	.pdu = select_item_161,
+	.pdu_len = sizeof(select_item_161),
+	.qualifier = 0x00,
+	.alpha_id = "0LargeMenu",
+	.items[0] = {
+		.id = 0xFF,
+		.text = "1 Call Forward Unconditional"
+	},
+	.items[1] = {
+		.id = 0xFE,
+		.text = "2 Call Forward On User Busy"
+	},
+	.items[2] = {
+		.id = 0xFD,
+		.text = "3 Call Forward On No Reply"
+	},
+	.items[3] = {
+		.id = 0xFC,
+		.text = "4 Call Forward On User Not Reachable"
+	},
+	.items[4] = {
+		.id = 0xFB,
+		.text = "5 Barring Of All Outgoing Calls"
+	},
+	.items[5] = {
+		.id = 0xFA,
+		.text = "6 Barring Of All Outgoing Int Calls"
+	},
+	.items[6] = {
+		.id = 0xF9,
+		.text = "7 CLI Presentation"
+	}
+};
+
+static struct select_item_test select_item_data_211 = {
+	.pdu = select_item_211,
+	.pdu_len = sizeof(select_item_211),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	},
+	.next_act = {
+		.list = { STK_COMMAND_TYPE_SEND_SMS,
+				STK_COMMAND_TYPE_SETUP_CALL,
+				STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO},
+		.len = 3
+	}
+};
+
+static struct select_item_test select_item_data_311 = {
+	.pdu = select_item_311,
+	.pdu_len = sizeof(select_item_311),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	},
+	.item_id = 0x02
+};
+
+static struct select_item_test select_item_data_411 = {
+	.pdu = select_item_411,
+	.pdu_len = sizeof(select_item_411),
+	.qualifier = 0x80,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	}
+};
+
+static struct select_item_test select_item_data_511 = {
+	.pdu = select_item_511,
+	.pdu_len = sizeof(select_item_511),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	},
+	.icon_id = {
+		.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
+		.id = 1
+	},
+	.item_icon_id_list = {
+		.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
+		.list = { 5, 5, 5 },
+		.len = 3
+	}
+};
+
+static struct select_item_test select_item_data_521 = {
+	.pdu = select_item_521,
+	.pdu_len = sizeof(select_item_521),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	},
+	.icon_id = {
+		.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
+		.id = 1
+	},
+	.item_icon_id_list = {
+		.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
+		.list = { 5, 5, 5 },
+		.len = 3
+	}
+};
+
+static struct select_item_test select_item_data_611 = {
+	.pdu = select_item_611,
+	.pdu_len = sizeof(select_item_611),
+	.qualifier = 0x03,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	}
+};
+
+static struct select_item_test select_item_data_621 = {
+	.pdu = select_item_621,
+	.pdu_len = sizeof(select_item_621),
+	.qualifier = 0x01,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	}
+};
+
+static struct select_item_test select_item_data_711 = {
+	.pdu = select_item_711,
+	.pdu_len = sizeof(select_item_711),
+	.qualifier = 0x04,
+	.alpha_id = "Toolkit Select",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	}
+};
+
+static struct select_item_test select_item_data_811 = {
+	.pdu = select_item_811,
+	.pdu_len = sizeof(select_item_811),
+	.qualifier = 0x00,
+	.alpha_id = "<TIME-OUT>",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "Item 3"
+	}
+};
+
+static struct select_item_test select_item_data_911 = {
+	.pdu = select_item_911,
+	.pdu_len = sizeof(select_item_911),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_912 = {
+	.pdu = select_item_912,
+	.pdu_len = sizeof(select_item_912),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	}
+};
+
+static struct select_item_test select_item_data_921 = {
+	.pdu = select_item_921,
+	.pdu_len = sizeof(select_item_921),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x01, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x01, 0xB4, 0x00, 0x06, 0x01, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_922 = {
+	.pdu = select_item_922,
+	.pdu_len = sizeof(select_item_922),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	}
+};
+
+static struct select_item_test select_item_data_931 = {
+	.pdu = select_item_931,
+	.pdu_len = sizeof(select_item_931),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x02, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x02, 0xB4, 0x00, 0x06, 0x02, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_932 = {
+	.pdu = select_item_932,
+	.pdu_len = sizeof(select_item_932),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	}
+};
+
+static struct select_item_test select_item_data_941 = {
+	.pdu = select_item_941,
+	.pdu_len = sizeof(select_item_941),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x04, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x04, 0xB4, 0x00, 0x06, 0x04, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_942 = {
+	.pdu = select_item_942,
+	.pdu_len = sizeof(select_item_942),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_943 = {
+	.pdu = select_item_943,
+	.pdu_len = sizeof(select_item_943),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_951 = {
+	.pdu = select_item_951,
+	.pdu_len = sizeof(select_item_951),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x08, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x08, 0xB4, 0x00, 0x06, 0x08, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_952 = {
+	.pdu = select_item_952,
+	.pdu_len = sizeof(select_item_952),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_953 = {
+	.pdu = select_item_953,
+	.pdu_len = sizeof(select_item_953),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_961 = {
+	.pdu = select_item_961,
+	.pdu_len = sizeof(select_item_961),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x10, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x10, 0xB4, 0x00, 0x06, 0x10, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_962 = {
+	.pdu = select_item_962,
+	.pdu_len = sizeof(select_item_962),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_963 = {
+	.pdu = select_item_963,
+	.pdu_len = sizeof(select_item_963),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_971 = {
+	.pdu = select_item_971,
+	.pdu_len = sizeof(select_item_971),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x20, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x20, 0xB4, 0x00, 0x06, 0x20, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_972 = {
+	.pdu = select_item_972,
+	.pdu_len = sizeof(select_item_972),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_973 = {
+	.pdu = select_item_973,
+	.pdu_len = sizeof(select_item_973),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_981 = {
+	.pdu = select_item_981,
+	.pdu_len = sizeof(select_item_981),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x40, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x40, 0xB4, 0x00, 0x06, 0x40, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_982 = {
+	.pdu = select_item_982,
+	.pdu_len = sizeof(select_item_982),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_983 = {
+	.pdu = select_item_983,
+	.pdu_len = sizeof(select_item_983),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_991 = {
+	.pdu = select_item_991,
+	.pdu_len = sizeof(select_item_991),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x80, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x80, 0xB4, 0x00, 0x06, 0x80, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_992 = {
+	.pdu = select_item_992,
+	.pdu_len = sizeof(select_item_992),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_993 = {
+	.pdu = select_item_993,
+	.pdu_len = sizeof(select_item_993),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 3",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 5"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 6"
+	}
+};
+
+static struct select_item_test select_item_data_9101 = {
+	.pdu = select_item_9101,
+	.pdu_len = sizeof(select_item_9101),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 1",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 2"
+	},
+	.text_attr = {
+		.len = 4,
+		.attributes = { 0x00, 0x10, 0x00, 0xB4 }
+	},
+	.item_text_attr_list = {
+		.len = 8,
+		.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
+	}
+};
+
+static struct select_item_test select_item_data_9102 = {
+	.pdu = select_item_9102,
+	.pdu_len = sizeof(select_item_9102),
+	.qualifier = 0x00,
+	.alpha_id = "Toolkit Select 2",
+	.items[0] = {
+		.id = 1,
+		.text = "Item 3"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "Item 4"
+	}
+};
+
+static struct select_item_test select_item_data_1011 = {
+	.pdu = select_item_1011,
+	.pdu_len = sizeof(select_item_1011),
+	.qualifier = 0x00,
+	.alpha_id = "ЗДРАВСТВУЙТЕ",
+	.items[0] = {
+		.id = 1,
+		.text = "ЗДРАВСТВУЙТЕ1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "ЗДРАВСТВУЙТЕ2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "ЗДРАВСТВУЙТЕ3"
+	}
+};
+
+static struct select_item_test select_item_data_1021 = {
+	.pdu = select_item_1021,
+	.pdu_len = sizeof(select_item_1021),
+	.qualifier = 0x00,
+	.alpha_id = "ЗДРАВСТВУЙТЕ",
+	.items[0] = {
+		.id = 1,
+		.text = "ЗДРАВСТВУЙТЕ1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "ЗДРАВСТВУЙТЕ2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "ЗДРАВСТВУЙТЕ3"
+	}
+};
+
+static struct select_item_test select_item_data_1031 = {
+	.pdu = select_item_1031,
+	.pdu_len = sizeof(select_item_1031),
+	.qualifier = 0x00,
+	.alpha_id = "ЗДРАВСТВУЙТЕ",
+	.items[0] = {
+		.id = 1,
+		.text = "ЗДРАВСТВУЙТЕ1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "ЗДРАВСТВУЙТЕ2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "ЗДРАВСТВУЙТЕ3"
+	}
+};
+
+static struct select_item_test select_item_data_1111 = {
+	.pdu = select_item_1111,
+	.pdu_len = sizeof(select_item_1111),
+	.qualifier = 0x00,
+	.alpha_id = "工具箱选择",
+	.items[0] = {
+		.id = 1,
+		.text = "项目一"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "项目二"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "项目三"
+	},
+	.items[3] = {
+		.id = 4,
+		.text = "项目四"
+	}
+};
+
+static struct select_item_test select_item_data_1211 = {
+	.pdu = select_item_1211,
+	.pdu_len = sizeof(select_item_1211),
+	.qualifier = 0x00,
+	.alpha_id = "80ル0",
+	.items[0] = {
+		.id = 1,
+		.text = "80ル1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "80ル2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "80ル3"
+	}
+};
+
+static struct select_item_test select_item_data_1221 = {
+	.pdu = select_item_1221,
+	.pdu_len = sizeof(select_item_1221),
+	.qualifier = 0x00,
+	.alpha_id = "81ル0",
+	.items[0] = {
+		.id = 1,
+		.text = "81ル1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "81ル2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "81ル3"
+	}
+};
+
+static struct select_item_test select_item_data_1231 = {
+	.pdu = select_item_1231,
+	.pdu_len = sizeof(select_item_1231),
+	.qualifier = 0x00,
+	.alpha_id = "82ル0",
+	.items[0] = {
+		.id = 1,
+		.text = "82ル1"
+	},
+	.items[1] = {
+		.id = 2,
+		.text = "82ル2"
+	},
+	.items[2] = {
+		.id = 3,
+		.text = "82ル3"
+	}
+};
+
+static void test_select_item(gconstpointer data)
+{
+	const struct select_item_test *test = data;
+	struct stk_command *command;
+
+	command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
+
+	g_assert(command);
+
+	g_assert(command->number == 1);
+	g_assert(command->type == STK_COMMAND_TYPE_SELECT_ITEM);
+	g_assert(command->qualifier == test->qualifier);
+
+	g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
+	g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
+
+	check_common_text(command->select_item.alpha_id, test->alpha_id);
+	check_items(command->select_item.items, test->items);
+	check_items_next_action_indicator(&command->select_item.next_act,
+						&test->next_act);
+	check_item_id(command->select_item.item_id, test->item_id);
+	check_icon_id(&command->select_item.icon_id, &test->icon_id);
+	check_item_icon_id_list(&command->select_item.item_icon_id_list,
+					&test->item_icon_id_list);
+	check_text_attr(&command->select_item.text_attr, &test->text_attr);
+	check_item_text_attribute_list(
+				&command->select_item.item_text_attr_list,
+				&test->item_text_attr_list);
+	check_frame_id(&command->select_item.frame_id, &test->frame_id);
+
+	stk_command_free(command);
+}
+
 struct send_sms_test {
 	const unsigned char *pdu;
 	unsigned int pdu_len;
@@ -5981,6 +7919,103 @@ int main(int argc, char **argv)
 	g_test_add_data_func("/teststk/Setup Menu 9.1.3",
 				&setup_menu_data_913, test_setup_menu);
 
+	g_test_add_data_func("/teststk/Select Item 1.1.1",
+				&select_item_data_111, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 1.2.1",
+				&select_item_data_121, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 1.3.1",
+				&select_item_data_131, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 1.4.1",
+				&select_item_data_141, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 1.5.1",
+				&select_item_data_151, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 1.6.1",
+				&select_item_data_161, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 2.1.1",
+				&select_item_data_211, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 3.1.1",
+				&select_item_data_311, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 4.1.1",
+				&select_item_data_411, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 5.1.1",
+				&select_item_data_511, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 5.2.1",
+				&select_item_data_521, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 6.1.1",
+				&select_item_data_611, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 6.2.1",
+				&select_item_data_621, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 7.1.1",
+				&select_item_data_711, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 8.1.1",
+				&select_item_data_811, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.1.1",
+				&select_item_data_911, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.1.2",
+				&select_item_data_912, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.2.1",
+				&select_item_data_921, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.2.2",
+				&select_item_data_922, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.3.1",
+				&select_item_data_931, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.3.2",
+				&select_item_data_932, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.4.1",
+				&select_item_data_941, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.4.2",
+				&select_item_data_942, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.4.3",
+				&select_item_data_943, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.5.1",
+				&select_item_data_951, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.5.2",
+				&select_item_data_952, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.5.3",
+				&select_item_data_953, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.6.1",
+				&select_item_data_961, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.6.2",
+				&select_item_data_962, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.6.3",
+				&select_item_data_963, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.7.1",
+				&select_item_data_971, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.7.2",
+				&select_item_data_972, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.7.3",
+				&select_item_data_973, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.8.1",
+				&select_item_data_981, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.8.2",
+				&select_item_data_982, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.8.3",
+				&select_item_data_983, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.9.1",
+				&select_item_data_991, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.9.2",
+				&select_item_data_992, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.9.3",
+				&select_item_data_993, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.10.1",
+				&select_item_data_9101, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 9.10.2",
+				&select_item_data_9102, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 10.1.1",
+				&select_item_data_1011, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 10.2.1",
+				&select_item_data_1021, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 10.3.1",
+				&select_item_data_1031, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 11.1.1",
+				&select_item_data_1111, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 12.1.1",
+				&select_item_data_1211, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 12.2.1",
+				&select_item_data_1221, test_select_item);
+	g_test_add_data_func("/teststk/Select Item 12.3.1",
+				&select_item_data_1231, test_select_item);
+
 	g_test_add_data_func("/teststk/Send SMS 1.1",
 				&send_sms_data_11, test_send_sms);
 
-- 
1.7.0.4



More information about the ofono mailing list