Commit 9540140d16 for strongswan.org
commit 9540140d16adede0b1029e0127c467dca3eb85e8
Author: Andreas Steffen <andreas.steffen@strongswan.org>
Date: Thu Sep 25 18:15:48 2025 +0200
unit-tests: Test all ML-DSA private key formats and fingerprints
diff --git a/src/libstrongswan/tests/suites/test_ml_dsa.c b/src/libstrongswan/tests/suites/test_ml_dsa.c
index 13e93e4635..2e124b3e59 100644
--- a/src/libstrongswan/tests/suites/test_ml_dsa.c
+++ b/src/libstrongswan/tests/suites/test_ml_dsa.c
@@ -24,6 +24,11 @@ struct test_t {
u_int omega;
chunk_t asn1_seed;
chunk_t seed;
+ chunk_t asn1_privkey;
+ chunk_t asn1_seed_key;
+ chunk_t fp_pk;
+ chunk_t fp_spki;
+ chunk_t privkey;
chunk_t asn1_pubkey;
chunk_t pubkey;
chunk_t sig;
@@ -41,6 +46,179 @@ static test_t tests[] = {
chunk_from_chars(
0x93,0xef,0x2e,0x6e,0xf1,0xfb,0x08,0x99,0x9d,0x14,0x2a,0xbe,0x02,0x95,0x48,0x23,
0x70,0xd3,0xf4,0x3b,0xdb,0x25,0x4a,0x78,0xe2,0xb0,0xd5,0x16,0x8e,0xca,0x06,0x5f),/* 32 */
+ chunk_from_chars(
+ 0x30,0x82,0x0a,0x18,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x11,0x04,0x82,0x0a,0x04,0x04,0x82,0x0a,0x00),
+ chunk_from_chars(
+ 0x30,0x82,0x0a,0x3e,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x11,0x04,0x82,0x0a,0x2a,0x30,0x82,0x0a,0x26,0x04,0x20),
+ chunk_from_chars(
+ 0xb0,0x03,0xf5,0x3e,0x63,0xfa,0x99,0xdb,0x7d,0xfb,0xf0,0x07,0x2e,0x42,0x3a,0x2e,
+ 0x46,0x37,0xdf,0xfd),
+ chunk_from_chars(
+ 0xcc,0xc6,0xf3,0xbb,0x56,0x90,0x93,0x97,0x0d,0x6a,0x61,0x8d,0xfe,0x55,0x36,0x7d,
+ 0x86,0x77,0x76,0x71),
+ chunk_from_chars(
+ 0xbc,0x5f,0xf8,0x10,0xeb,0x08,0x90,0x48,0xb8,0xab,0x30,0x20,0xa7,0xbd,0x3b,0x16,
+ 0xc0,0xe0,0xca,0x3d,0x6b,0x97,0xe4,0x64,0x6c,0x2c,0xca,0xe0,0xbb,0xf1,0x9e,0xf7,
+ 0xba,0x2b,0x57,0xc4,0x46,0x55,0x6e,0xe2,0xb7,0x2c,0x78,0xb9,0x6b,0xb7,0xa8,0x50,
+ 0x3d,0xe4,0x0a,0xfb,0x54,0x18,0x4e,0x3b,0x54,0x63,0xc2,0x1a,0xf7,0x48,0x53,0x23,
+ 0xdf,0x98,0xf0,0x16,0x0a,0xe5,0xd1,0x37,0x51,0x27,0x25,0xf8,0x9d,0x56,0x3b,0xc9, /* 80 */
+ 0xa1,0x89,0xd3,0x1d,0x20,0xb3,0xb3,0xc8,0xff,0xaa,0xf5,0xe4,0x86,0xe7,0x90,0x51,
+ 0xf6,0xf3,0x60,0x5c,0xca,0x25,0x69,0xfd,0xb4,0x6b,0x33,0x18,0xd2,0x38,0x42,0xce,
+ 0x40,0xd6,0x43,0x86,0x13,0xf6,0x8b,0x45,0x5b,0x0d,0x3b,0xca,0x0e,0x05,0x0d,0x4d,
+ 0x11,0x99,0x88,0xa2,0xc4,0x80,0x1b,0x90,0x84,0xe0,0xb0,0x48,0xc9,0x28,0x09,0x22,
+ 0x30,0x90,0x24,0x06,0x49,0x98,0x40,0x65,0x5a,0x26,0x8a,0xda,0x32,0x90,0xda,0x48, /* 160 */
+ 0x08,0x22,0x81,0x90,0xc8,0x14,0x61,0xdc,0x16,0x6a,0x21,0x47,0x8e,0x08,0xb2,0x21,
+ 0xe3,0x08,0x68,0x1a,0x02,0x44,0x14,0xc6,0x65,0xe1,0x98,0x71,0x90,0xc6,0x69,0x0c,
+ 0x15,0x44,0xc9,0xa0,0x11,0xcc,0x34,0x71,0x83,0x40,0x45,0x00,0x12,0x4d,0x91,0x08,
+ 0x00,0x83,0x36,0x84,0x12,0x85,0x4c,0xcc,0x00,0x41,0x09,0x90,0x70,0x18,0x95,0x00,
+ 0xa2,0xb2,0x85,0x94,0x26,0x41,0x0b,0x00,0x41,0x0a,0xb9,0x80,0xc0,0xc6,0x10,0x0c, /* 240 */
+ 0x33,0x29,0xa3,0xa6,0x28,0x1c,0x26,0x10,0x1a,0x37,0x49,0x13,0x35,0x8a,0x0b,0x29,
+ 0x2e,0x82,0xa2,0x70,0x8b,0x38,0x49,0x94,0x04,0x80,0x9b,0x26,0x10,0xa4,0x80,0x30,
+ 0x04,0x37,0x0c,0x48,0xb2,0x60,0x04,0x17,0x2e,0x19,0x49,0x64,0xc8,0xc4,0x64,0x1a,
+ 0x96,0x60,0x10,0x83,0x6d,0x20,0x38,0x22,0x49,0x06,0x08,0x1b,0xb7,0x20,0x01,0x48,
+ 0x4d,0xe1,0x10,0x49,0x08,0x38,0x44,0x4c,0x16,0x8e,0x04,0xb2,0x2c,0x09,0x91,0x50, /* 320 */
+ 0x83,0x36,0x06,0x5c,0x02,0x8c,0x8a,0x38,0x05,0x1a,0xb5,0x81,0x82,0xc0,0x09,0x51,
+ 0x12,0x72,0x22,0x10,0x0d,0x04,0x08,0x2a,0xa4,0x84,0x10,0x58,0x08,0x52,0x08,0x26,
+ 0x0a,0x02,0xb6,0x2d,0x8a,0x12,0x0e,0x14,0x22,0x10,0x48,0x44,0x0a,0x14,0x23,0x91,
+ 0x50,0x40,0x90,0x0a,0x27,0x92,0xa4,0xb0,0x60,0x08,0x84,0x11,0xc4,0x40,0x22,0x63,
+ 0x46,0x2a,0xda,0xa6,0x90,0xc1,0xb2,0x30,0x50,0x10,0x00,0xa0,0xb4,0x6c,0x53,0xb4, /* 400 */
+ 0x50,0x13,0x05,0x8d,0x02,0x31,0x0e,0x08,0x20,0x10,0x91,0xc8,0x4c,0x22,0xa7,0x50,
+ 0xc2,0xa6,0x70,0x92,0x46,0x41,0x63,0x16,0x8c,0x84,0x00,0x11,0x0b,0x81,0x90,0x13,
+ 0x83,0x71,0x21,0x85,0x30,0x1b,0x18,0x46,0xa3,0x10,0x84,0x14,0x43,0x40,0x80,0x98,
+ 0x25,0x0c,0x27,0x2c,0x94,0x42,0x41,0xa2,0x88,0x45,0x02,0x13,0x05,0x44,0xb6,0x44,
+ 0x52,0x22,0x92,0xd0,0x80,0x50,0x4b,0xa6,0x04,0x84,0x36,0x70,0x09,0xb2,0x4d,0x19, /* 480 */
+ 0xa8,0x84,0x24,0x93,0x49,0x94,0xa2,0x80,0x49,0xb4,0x48,0x91,0x28,0x64,0xa1,0xc8,
+ 0x65,0x4b,0x82,0x85,0x93,0x30,0x06,0x63,0x12,0x66,0x10,0x37,0x01,0x4a,0x40,0x80,
+ 0x18,0x18,0x90,0x44,0xc4,0x0d,0x4b,0x28,0x81,0xa2,0x06,0x40,0xd4,0x30,0x2c,0x1b,
+ 0x96,0x4c,0xe1,0xb2,0x60,0x44,0x28,0x41,0xd8,0x30,0x65,0x24,0x09,0x04,0x64,0x00,
+ 0x89,0x63,0xc2,0x24,0xc0,0x00,0x49,0x92,0x16,0x52,0x23,0xc1,0x29,0x42,0x26,0x91, /* 560 */
+ 0xd0,0x38,0x31,0x83,0x28,0x28,0x4c,0x28,0x61,0x1a,0xb2,0x88,0x80,0x26,0x2d,0x0c,
+ 0x19,0x52,0x5b,0x22,0x60,0x8a,0x92,0x28,0xa2,0x18,0x90,0xd9,0x42,0x52,0xcb,0x40,
+ 0x8e,0x9b,0x16,0x06,0x4b,0xc8,0x05,0xe0,0x06,0x6c,0x49,0xc2,0x25,0xd4,0x22,0x69,
+ 0x14,0x11,0x69,0x1c,0x34,0x90,0x0c,0x85,0x8d,0x1c,0x84,0x49,0x63,0x10,0x85,0x08,
+ 0x34,0x89,0x58,0x16,0x66,0xa0,0x38,0x68,0x0b,0xa2,0x50,0xe0,0x84,0x61,0xc1,0x26, /* 640 */
+ 0x6e,0xc9,0x14,0x6a,0xc0,0xc0,0x31,0x84,0x18,0x2e,0xdc,0x16,0x52,0x14,0x18,0x91,
+ 0x0a,0x39,0x2c,0x83,0xa6,0x8d,0x12,0x29,0x62,0x92,0xa6,0x60,0x08,0xa5,0x10,0xd9,
+ 0xc8,0x4d,0x24,0x48,0x24,0x83,0x98,0x24,0x1a,0x44,0x42,0x08,0x08,0x48,0xc8,0x96,
+ 0x2d,0xa1,0x10,0x20,0x60,0x24,0x51,0x9c,0x30,0x11,0xdb,0xc8,0x04,0x11,0x22,0x51,
+ 0x18,0x04,0x68,0xe2,0x24,0x4e,0x10,0xc4,0x0d,0x18,0x37,0x29,0x11,0xb7,0x84,0x43, /* 720 */
+ 0x84,0x8d,0x54,0x40,0x70,0x64,0x80,0x70,0x21,0xb0,0x4d,0x00,0x26,0x62,0x00,0x45,
+ 0x25,0x1b,0x83,0x84,0x84,0x80,0x70,0x19,0xb0,0x04,0x0a,0xc9,0x28,0xca,0x80,0x05,
+ 0x1b,0x21,0x4e,0xd4,0xb0,0x49,0x8c,0x96,0x6c,0xd0,0x96,0x25,0x48,0x32,0x72,0x54,
+ 0x12,0x05,0x09,0x98,0x8c,0x8a,0x32,0x6d,0xc0,0x04,0x31,0x63,0xc8,0x61,0xc8,0xc2,
+ 0x68,0x9b,0xb4,0x8c,0x5b,0xc0,0x2d,0xc3,0xa8,0x8d,0x1b,0x16,0x6c,0xd8,0x96,0x41, /* 800 */
+ 0x98,0x34,0x02,0x44,0x14,0x2c,0xd3,0x86,0x44,0x0a,0x18,0x8a,0x1a,0x46,0x92,0x1a,
+ 0xb7,0x08,0x4c,0x34,0x24,0x21,0x91,0x0d,0x9a,0x96,0x2d,0xcb,0x24,0x22,0x92,0x86,
+ 0x08,0x98,0xa0,0x50,0xda,0x44,0x6a,0x19,0xb1,0x05,0x8b,0x20,0x6e,0x24,0xc4,0x81,
+ 0xc9,0x98,0x40,0x22,0x19,0x32,0x11,0x05,0x69,0xd3,0x94,0x91,0x08,0xa7,0x71,0xdb,
+ 0xc0,0x70,0x02,0xb8,0x28,0x83,0xb4,0x49,0xa0,0x44,0x8a,0x0b,0xb4,0x10,0x61,0x02, /* 880 */
+ 0x48,0x1c,0xa6,0x11,0xe3,0x20,0x66,0x40,0xb4,0x70,0x03,0xb6,0x04,0x60,0x48,0x21,
+ 0x5b,0x21,0x83,0x39,0x88,0xdb,0x67,0x4a,0x61,0xe7,0xc2,0x08,0xde,0xbe,0x8d,0xae,
+ 0x41,0x19,0xaf,0xb0,0x26,0x61,0xa6,0x9a,0xbc,0x8b,0xdd,0x24,0x5b,0x5d,0x0f,0xb1,
+ 0xa2,0x67,0x01,0xc9,0xb9,0xc9,0xa8,0xf7,0xd9,0xfc,0xd4,0xc2,0x87,0xff,0x3d,0x60,
+ 0x8c,0xf2,0x58,0x28,0x2a,0x1e,0xb2,0x9f,0x93,0x04,0xe8,0x9c,0x14,0xf3,0xe1,0xce, /* 960 */
+ 0x56,0x12,0x89,0x1c,0x60,0x29,0x34,0x52,0x60,0x06,0xc9,0x9b,0x4a,0xa2,0x39,0x9b,
+ 0xf4,0x94,0xbc,0xf8,0xdf,0x61,0xd6,0xdf,0x4c,0x69,0xbc,0x93,0xe0,0x2d,0x49,0x95,
+ 0xe2,0xf7,0x6e,0x9f,0xda,0x4e,0xf6,0x7e,0xb7,0x25,0x6c,0xa8,0x9a,0x3f,0x38,0xfe,
+ 0xb2,0xe9,0xdf,0x6a,0x01,0x0d,0xc1,0xc1,0x50,0x02,0xfb,0xd4,0x56,0xfa,0xe8,0x84,
+ 0x82,0x1a,0x34,0x16,0x6b,0x06,0x58,0xa2,0x41,0x25,0x95,0x71,0x8e,0x14,0x9b,0xbc, /* 1040 */
+ 0x6e,0x22,0x0a,0xee,0x26,0x8d,0x4d,0x82,0x18,0xc2,0x5f,0x6a,0x95,0x7d,0xe5,0xb2,
+ 0x6c,0xea,0x7b,0x14,0xcb,0x32,0x0d,0x89,0xe1,0x69,0x9a,0xd9,0xf2,0xb3,0x89,0xc6,
+ 0x7e,0xf9,0x33,0x86,0xa2,0xc6,0x5f,0x2c,0x32,0x23,0x33,0x67,0xd7,0x6a,0xe4,0xab,
+ 0x2a,0xbb,0xd4,0x22,0xe9,0x8e,0x49,0x3d,0xcc,0x3c,0xc5,0xda,0xf6,0x89,0xb6,0x5c,
+ 0xc4,0xbc,0x3f,0xa5,0x1c,0x9c,0x59,0xee,0xaf,0x07,0x55,0x17,0x0c,0x24,0x95,0x80, /* 1120 */
+ 0x4d,0x02,0xa6,0x07,0xc5,0xbf,0x88,0x7c,0xd8,0x6a,0x03,0x89,0xf2,0x8f,0xc9,0x72,
+ 0x5e,0xf4,0x60,0x03,0xf1,0x3b,0x01,0x87,0x68,0x4b,0xea,0xb1,0xf2,0x4a,0x29,0xf5,
+ 0x31,0x96,0x01,0xf3,0x09,0xc9,0x1d,0x2a,0x33,0x3d,0x1b,0x88,0xdf,0x20,0x5a,0x51,
+ 0x20,0xc4,0xcf,0xdc,0x22,0x38,0x12,0x4e,0x4e,0x2b,0x47,0xd0,0xb5,0xe6,0x6a,0x65,
+ 0x4f,0xe4,0xcc,0xcb,0x07,0x8f,0x07,0xcb,0xd4,0x55,0xd1,0x5d,0x3e,0xec,0x7d,0xa2, /* 1200 */
+ 0x74,0xd2,0x4a,0x2e,0x57,0x18,0x84,0xde,0x41,0xc3,0xa9,0xa4,0xfd,0xb3,0xf6,0x09,
+ 0x8a,0x17,0x2c,0x30,0x96,0x80,0x39,0xbd,0x0e,0x4e,0xb3,0xe2,0xfb,0x6d,0x6e,0xee,
+ 0xd3,0x9e,0x0b,0x63,0x62,0xd5,0x4e,0x7b,0x88,0x95,0x98,0x69,0xdd,0xd5,0xd8,0x73,
+ 0xd9,0x65,0x24,0x01,0xa2,0x9f,0x27,0xa2,0x8e,0xa6,0x6d,0x32,0xcc,0xb0,0xef,0x3b,
+ 0xf4,0x60,0x0f,0x75,0x57,0xee,0x8d,0x54,0xbf,0x1d,0xad,0x18,0xf4,0x5d,0xdc,0xd4, /* 1280 */
+ 0xc9,0xed,0x57,0xb1,0x3e,0x44,0x5b,0xf1,0x22,0xa4,0x3f,0x53,0x94,0x03,0x89,0xbf,
+ 0x87,0x14,0xff,0xac,0x72,0x1e,0x59,0x31,0x7e,0x4b,0x70,0x50,0x0a,0xd0,0xd1,0xb9,
+ 0xa6,0x27,0x05,0x4d,0x31,0x93,0x20,0x8c,0x77,0x4e,0x0b,0x20,0xed,0x04,0x1a,0x8c,
+ 0x05,0x5e,0x75,0xee,0xcd,0x37,0x38,0xf0,0x07,0x15,0x8f,0xad,0xdf,0xca,0x5f,0x43,
+ 0x56,0x2d,0x63,0x6a,0x5a,0xcf,0x3a,0x39,0x83,0xd3,0xcf,0xeb,0xca,0x10,0xb8,0x13, /* 1360 */
+ 0xf9,0xf6,0x52,0x65,0x19,0x19,0x9a,0x03,0x13,0xcd,0x1d,0xe1,0x3f,0x06,0xad,0x53,
+ 0x86,0xe1,0xe1,0x20,0x79,0x5f,0xd2,0x67,0xb7,0xf4,0x20,0x19,0xd8,0x4d,0xf6,0xcd,
+ 0x1b,0xf9,0x19,0x30,0xfc,0xa7,0xaf,0xd5,0x2e,0x80,0x70,0x0f,0x4c,0xf5,0xcd,0xc3,
+ 0x8a,0x5f,0x7a,0x57,0x49,0x79,0x1c,0x2f,0xdf,0xfc,0x4a,0x10,0x75,0x3c,0x24,0xdb,
+ 0x19,0xe8,0xeb,0x65,0x1c,0x5b,0x36,0x32,0x00,0xf0,0xb5,0xd1,0x69,0x94,0x70,0x26, /* 1440 */
+ 0xe9,0xf7,0x4f,0x01,0x2d,0xc7,0xc5,0xb3,0x39,0xdd,0x49,0xd2,0x61,0xca,0x1d,0x37,
+ 0xf8,0xf2,0x83,0x46,0xe6,0x19,0x78,0x05,0x4f,0x45,0xae,0xe4,0x36,0xdc,0xcb,0xe7,
+ 0xbf,0xaf,0xe0,0x7c,0xe9,0xa8,0xb8,0x3c,0x90,0xa2,0x68,0x6f,0xa9,0x54,0x02,0x85,
+ 0x09,0x25,0xc8,0x58,0x2b,0xc9,0xb7,0x34,0xe4,0xec,0xa1,0xf7,0xb2,0x0b,0x08,0x6f,
+ 0x12,0x9f,0x27,0x7a,0x5c,0xbd,0xaa,0x96,0x3c,0x92,0x71,0x7e,0xf7,0x0e,0xc1,0x9b, /* 1520 */
+ 0xf3,0xdb,0xc6,0xda,0x20,0x3a,0xd9,0x0f,0x3b,0x13,0xbb,0xc2,0x2f,0xbd,0x98,0x0b,
+ 0xb1,0xb9,0xd3,0xa3,0x44,0x52,0xb3,0x35,0x70,0x21,0xce,0x36,0x13,0x58,0x4e,0x09,
+ 0x36,0xbf,0x1d,0x09,0x42,0x09,0x37,0x81,0x5e,0x11,0xcc,0x5d,0x5d,0xdb,0x4b,0xf1,
+ 0xd8,0x30,0xc4,0xf8,0x3f,0x30,0xe5,0x15,0x92,0x1c,0x78,0x4d,0x87,0xbb,0x20,0xc0,
+ 0x9e,0x3c,0x64,0xbd,0xce,0x9a,0xb1,0xc6,0x9f,0xd3,0x07,0xef,0xe3,0x59,0xc7,0xf9, /* 1600 */
+ 0x38,0x56,0x6c,0x9f,0x25,0x17,0xb0,0x63,0x38,0x51,0x67,0xe2,0x47,0xf3,0x10,0x81,
+ 0x11,0x9b,0xac,0x6b,0x55,0xa0,0xbd,0xd7,0x14,0x25,0x51,0x0f,0xfa,0x2a,0xbd,0xfa,
+ 0x88,0x83,0x76,0xa3,0x7f,0x20,0xc2,0x48,0x01,0x52,0xbb,0x36,0x16,0x34,0x52,0x00,
+ 0x07,0xc5,0xb3,0x4b,0xf2,0x28,0x17,0xcb,0x2e,0x67,0xac,0x1a,0x82,0x67,0x0b,0x71,
+ 0xf1,0x96,0xc8,0x9f,0x23,0xba,0x31,0x4b,0x16,0xa9,0x48,0x49,0x93,0x04,0xef,0x5c, /* 1680 */
+ 0x03,0xdc,0xf5,0x8e,0x52,0xbe,0x31,0x48,0x63,0xe7,0x23,0xc5,0x6d,0x3a,0xeb,0x34,
+ 0x0b,0xff,0x18,0xab,0xfa,0x20,0xdc,0x03,0x44,0x20,0x30,0x23,0x05,0x33,0xd9,0x12,
+ 0x9b,0x83,0xed,0x22,0xc3,0x51,0xf2,0x32,0x81,0x72,0xe3,0x63,0x44,0x74,0x44,0xae,
+ 0x5c,0x69,0x02,0xb7,0x92,0x79,0x9f,0x54,0x44,0x50,0x78,0x71,0x19,0x61,0x2e,0x9b,
+ 0xb4,0x13,0x0a,0x33,0xa2,0xa5,0x96,0x2a,0xc0,0x9d,0x57,0x7d,0x6d,0xdc,0x88,0x1f, /* 1760 */
+ 0xe6,0x61,0x61,0x26,0xd8,0xa0,0xa7,0xdf,0x2b,0x22,0x53,0xbc,0x8e,0xc4,0xe3,0x53,
+ 0x86,0xea,0x55,0x11,0xf0,0xf1,0x58,0x87,0x14,0x5b,0x6c,0x23,0xab,0x3d,0x40,0x33,
+ 0x39,0xe4,0x04,0x07,0x3e,0xd9,0xc6,0xa8,0x96,0xa2,0xf9,0xec,0x70,0xc4,0x4b,0xd2,
+ 0xae,0xc1,0x0f,0xc4,0x36,0x0e,0x87,0x63,0x6b,0xe1,0x55,0xb6,0xa6,0x7b,0x7e,0xdf,
+ 0x38,0xcf,0x73,0x00,0x48,0x13,0xc9,0xe7,0xd2,0xc6,0x54,0xc2,0x53,0x0a,0x71,0xe5, /* 1840 */
+ 0xf8,0xc1,0x09,0x42,0xfb,0x6d,0x88,0x41,0x53,0x5a,0xb1,0xda,0x43,0xe8,0xcb,0x0b,
+ 0xb8,0x9e,0x78,0xec,0x91,0xf8,0xde,0x15,0x31,0xa0,0x36,0x65,0xcc,0xd5,0xa7,0x5b,
+ 0xda,0x0e,0xd0,0xe5,0x98,0x64,0xee,0xef,0x51,0xa8,0x3f,0xa5,0x53,0xaf,0x66,0x2a,
+ 0xee,0x00,0xd1,0xf8,0x36,0x7b,0x4d,0x5d,0xdd,0xc3,0x45,0x54,0x4c,0x6b,0xd5,0x14,
+ 0xf8,0x88,0xe6,0x03,0x3c,0x25,0x5d,0xb6,0x50,0xda,0x73,0x4a,0xd3,0x3a,0x3c,0xf8, /* 1920 */
+ 0x4b,0xd3,0xf0,0x6f,0xa1,0xa7,0xca,0x02,0xe4,0xb8,0xe9,0x93,0xae,0x7a,0xe6,0x34,
+ 0x20,0xa4,0x6b,0xa8,0xa3,0x81,0x3d,0x1e,0x9d,0x29,0x66,0xbb,0x85,0x60,0xd7,0x1c,
+ 0x62,0xa0,0x44,0xea,0x94,0x17,0x9f,0x4e,0xb1,0xb6,0xed,0x60,0x71,0x9d,0x51,0xe0,
+ 0xee,0xf6,0xcd,0x07,0x91,0x52,0xf6,0xbe,0x48,0x8e,0xc9,0x19,0x11,0xc6,0xd3,0xf1,
+ 0xd1,0x17,0x3c,0x54,0x1f,0x9d,0x25,0xbf,0x34,0x2f,0xca,0xa3,0xff,0x46,0xc1,0x8f, /* 2000 */
+ 0x2a,0x04,0x41,0xd8,0x3b,0xde,0x35,0x46,0xa9,0x82,0x6c,0x34,0x96,0xe0,0x6f,0x2f,
+ 0x2b,0x0e,0xeb,0x9d,0x5b,0xe8,0x73,0x9f,0x83,0xa4,0x2d,0x3b,0x30,0x0e,0x70,0xee,
+ 0x84,0xdf,0xff,0xb2,0x07,0x64,0xa0,0x60,0x21,0x2f,0x05,0x8c,0x8a,0x5f,0xfa,0x9a,
+ 0x34,0xe9,0x28,0xd6,0xa7,0xe0,0x77,0x08,0xfe,0x53,0x93,0xe3,0x01,0x7c,0xe4,0x70,
+ 0xeb,0x96,0x58,0xa7,0x4e,0x49,0x51,0xe6,0xfa,0x48,0x54,0xc9,0xe9,0xc2,0x89,0x88, /* 2080 */
+ 0x81,0x2e,0x44,0x18,0xa2,0xe8,0x32,0x58,0x0b,0x4a,0x27,0x03,0x72,0xbc,0x69,0x67,
+ 0x68,0x89,0xd0,0xcc,0x43,0x24,0x0e,0xda,0xbc,0x1d,0x31,0x14,0xd8,0xf3,0x5a,0xb2,
+ 0xe9,0xea,0x95,0x30,0x82,0xe9,0x53,0x62,0x79,0xac,0xb3,0xbe,0x16,0xd3,0xa2,0x05,
+ 0xf4,0x6c,0xb6,0x7b,0x22,0x14,0x96,0x93,0x5a,0xc0,0x42,0x92,0xbb,0xfb,0x9a,0x61,
+ 0xc0,0xa0,0x3e,0xf4,0xc9,0xb6,0x82,0x04,0x95,0xf3,0xd8,0x0e,0x4a,0x6f,0xb7,0xe1, /* 2160 */
+ 0xc6,0x99,0x03,0xfa,0x22,0x6e,0x02,0x3e,0x95,0xba,0x41,0x6d,0xf2,0xe5,0xe4,0x54,
+ 0x1e,0x15,0xdc,0xc0,0x00,0xb5,0xe6,0x5c,0x97,0x20,0xda,0xf6,0x96,0x01,0x2f,0xa2,
+ 0xa6,0xcf,0x75,0x8e,0xd6,0xd2,0x25,0xa3,0xe4,0xfe,0xe4,0x5a,0xc5,0xfb,0x48,0x70,
+ 0x7f,0xae,0x13,0x3d,0x59,0x2c,0xfd,0x2e,0x8c,0x43,0xc2,0x12,0x6f,0x65,0x2b,0xee,
+ 0x9b,0xab,0x43,0xa1,0xa1,0x0b,0xe2,0x41,0x1a,0x67,0x94,0xb2,0x6c,0xb5,0x5c,0xc2, /* 2240 */
+ 0x17,0xeb,0x7b,0x0b,0x14,0x6d,0x23,0xf7,0x92,0x2d,0x32,0x22,0xae,0x5e,0xe8,0xc6,
+ 0xd3,0x8e,0x83,0x99,0xba,0x51,0xc6,0x81,0xb8,0x38,0x16,0xfc,0xf7,0x44,0x38,0x82,
+ 0x59,0x20,0xf9,0xce,0x8a,0x20,0x2a,0x8f,0x6d,0x94,0x2d,0xa8,0x62,0x38,0xfb,0x4c,
+ 0x9f,0x21,0x98,0xea,0x8d,0xff,0x81,0xc1,0x72,0x86,0xe0,0x18,0xdf,0x4b,0x7f,0xe3,
+ 0x88,0x4d,0x17,0x59,0xe4,0xc5,0x9b,0xb5,0x26,0x17,0xae,0xd4,0xe7,0x8e,0x4e,0x7c, /* 2320 */
+ 0x4e,0x9a,0x36,0xe4,0xe9,0x96,0xd3,0x23,0x91,0xa3,0x4a,0x0d,0xaa,0xab,0x6b,0x54,
+ 0x08,0x15,0xa3,0x4d,0x20,0x40,0x7a,0xef,0x81,0x94,0x9b,0xe6,0x7b,0x90,0x69,0x50,
+ 0xd8,0x9b,0xe9,0xf0,0x85,0xe9,0x9e,0xb5,0x87,0x26,0x95,0x17,0x3b,0x3e,0xfa,0xca,
+ 0xe9,0x45,0x5d,0x2b,0x2c,0xd4,0xf7,0x10,0xb8,0x72,0xcf,0x66,0x2b,0x73,0x62,0x16,
+ 0xb1,0xbb,0xfb,0x1f,0x5f,0x3d,0x48,0x6c,0x7b,0x4b,0x87,0x56,0x12,0x33,0x3f,0x8e, /* 2400 */
+ 0x4b,0xa9,0x33,0xdc,0x79,0xf0,0xed,0xfd,0x7b,0xaa,0xde,0x2c,0x16,0xf2,0x14,0x6a,
+ 0x49,0x6f,0x79,0xc4,0x2a,0x4d,0x6b,0x52,0x39,0xa3,0x0d,0xd3,0xc4,0x8b,0xeb,0x09,
+ 0x2c,0xa0,0x75,0x00,0x10,0xf6,0x9e,0xd4,0xb9,0x23,0x20,0x14,0x7d,0xbb,0xe2,0x08,
+ 0xf6,0xe8,0xeb,0x1c,0xf2,0x47,0xd2,0x1a,0x3a,0x3b,0x01,0xdf,0x58,0xc0,0xaa,0x62,
+ 0x94,0x4d,0xa0,0xef,0x04,0x50,0xe8,0xce,0x48,0xaa,0x13,0x7e,0x7e,0x15,0x16,0xc1, /* 2480 */
+ 0xd5,0xc8,0x6e,0xea,0x17,0xfd,0xfa,0xc1,0x69,0x07,0x46,0xe7,0x26,0x70,0x45,0xa3,
+ 0xe9,0x05,0x96,0xbd,0xb7,0x5d,0x50,0xb6,0xdd,0x5c,0x34,0xe5,0xc8,0xd8,0x9d,0xc6,
+ 0xf2,0xf1,0xd2,0x44,0x40,0xe5,0x7b,0x47,0x59,0xb8,0x62,0x5f,0x72,0xbc,0x4a,0x7b,
+ 0x10,0xd5,0x19,0xd3,0x31,0xf9,0xc4,0x00,0xaa,0xe1,0xe5,0x0d,0x48,0x0c,0xaa,0xe5,
+ 0xa1,0xc0,0xfa,0x99,0xd7,0x79,0x24,0xcf,0x8d,0xfe,0x56,0xcd,0x70,0x92,0xe7,0xb9), /* 2560 */
chunk_from_chars(
0x30,0x82,0x05,0x32,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x03,
0x11,0x03,0x82,0x05,0x21,0x00),
@@ -441,6 +619,271 @@ static test_t tests[] = {
chunk_from_chars(
0x70,0xce,0xfb,0x9a,0xed,0x5b,0x68,0xe0,0x18,0xb0,0x79,0xda,0x82,0x84,0xb9,0xd5,
0xca,0xd5,0x49,0x9e,0xd9,0xc2,0x65,0xff,0x73,0x58,0x80,0x05,0xd8,0x5c,0x22,0x5c),/* 32 */
+ chunk_from_chars(
+ 0x30,0x82,0x0f,0xd8,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x12,0x04,0x82,0x0f,0xc4,0x04,0x82,0x0f,0xc0),
+ chunk_from_chars(
+ 0x30,0x82,0x0f,0xfe,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x12,0x04,0x82,0x0f,0xea,0x30,0x82,0x0f,0xe6,0x04,0x20),
+ chunk_from_chars(
+ 0x62,0x39,0x71,0xde,0xa3,0x7d,0x6d,0x1b,0xe7,0x28,0x31,0xc0,0x79,0x70,0xa4,0x95,
+ 0x8f,0x3f,0x52,0x1a),
+ chunk_from_chars(
+ 0x79,0x26,0xa8,0xdb,0xec,0x09,0xa7,0x39,0xe4,0xb3,0xec,0x1b,0x2d,0x11,0x02,0xd2,
+ 0xbb,0x15,0x0a,0xfd),
+ chunk_from_chars(
+ 0xd2,0xfd,0x03,0xf3,0xa1,0xb7,0xf6,0x35,0xaf,0x9f,0x34,0xd5,0x80,0xa9,0x8f,0x52,
+ 0x4c,0x73,0x5b,0xd5,0xba,0x23,0x55,0xdc,0x6e,0x03,0x5b,0xd2,0x17,0x65,0x58,0x0c,
+ 0xe3,0x8d,0x1c,0x14,0xf6,0x46,0x7c,0x35,0xa9,0xf3,0x80,0xd2,0x7d,0xe6,0x1f,0x7c,
+ 0x75,0x03,0x15,0x69,0xea,0x2e,0xc8,0x26,0x0e,0xee,0x91,0x05,0x26,0x1b,0x7f,0xe1,
+ 0x60,0xc9,0x13,0x44,0xb0,0xc6,0x76,0x4c,0x20,0x4e,0x5b,0x8d,0x42,0x46,0x50,0xbe, /* 80 */
+ 0xc0,0x6b,0x9e,0x2e,0x62,0x5a,0xf0,0x7e,0x23,0xf4,0x95,0x0c,0xa2,0x4f,0xb4,0xd6,
+ 0xec,0x2c,0x8b,0x3a,0x71,0x7c,0x93,0x11,0xeb,0x87,0x27,0x9f,0xe2,0x5e,0x31,0x1f,
+ 0x48,0xb8,0x25,0x65,0x01,0xf6,0x46,0x34,0x12,0xb5,0x0d,0xbc,0x89,0xa8,0x69,0xba,
+ 0x22,0x41,0x11,0x26,0x48,0x40,0x07,0x38,0x73,0x02,0x12,0x44,0x25,0x44,0x57,0x54,
+ 0x83,0x72,0x50,0x33,0x35,0x62,0x58,0x42,0x32,0x01,0x62,0x11,0x83,0x61,0x02,0x45, /* 160 */
+ 0x66,0x56,0x48,0x35,0x61,0x20,0x84,0x52,0x60,0x68,0x50,0x45,0x65,0x55,0x12,0x72,
+ 0x47,0x47,0x21,0x21,0x25,0x40,0x22,0x21,0x42,0x81,0x17,0x65,0x03,0x06,0x42,0x61,
+ 0x52,0x13,0x43,0x25,0x24,0x33,0x82,0x12,0x11,0x35,0x62,0x33,0x32,0x07,0x47,0x86,
+ 0x22,0x31,0x50,0x83,0x70,0x84,0x26,0x43,0x45,0x64,0x51,0x48,0x31,0x14,0x86,0x24,
+ 0x66,0x86,0x74,0x33,0x71,0x36,0x67,0x26,0x01,0x47,0x07,0x72,0x11,0x61,0x58,0x85, /* 240 */
+ 0x58,0x38,0x71,0x83,0x80,0x67,0x01,0x65,0x78,0x70,0x64,0x77,0x85,0x60,0x02,0x88,
+ 0x53,0x48,0x46,0x62,0x25,0x83,0x54,0x88,0x04,0x74,0x40,0x12,0x57,0x43,0x71,0x07,
+ 0x75,0x44,0x38,0x71,0x21,0x14,0x22,0x08,0x88,0x72,0x23,0x58,0x87,0x46,0x14,0x85,
+ 0x53,0x71,0x67,0x73,0x82,0x28,0x22,0x74,0x14,0x03,0x57,0x73,0x28,0x71,0x83,0x80,
+ 0x78,0x14,0x34,0x87,0x52,0x07,0x64,0x74,0x01,0x60,0x75,0x61,0x06,0x08,0x61,0x32, /* 320 */
+ 0x21,0x46,0x15,0x65,0x42,0x67,0x08,0x20,0x84,0x10,0x73,0x13,0x03,0x61,0x02,0x86,
+ 0x50,0x45,0x26,0x12,0x16,0x68,0x33,0x55,0x25,0x84,0x73,0x53,0x54,0x52,0x65,0x17,
+ 0x10,0x60,0x00,0x38,0x57,0x77,0x81,0x24,0x26,0x80,0x41,0x46,0x43,0x26,0x67,0x41,
+ 0x06,0x03,0x55,0x41,0x28,0x33,0x37,0x25,0x23,0x06,0x77,0x82,0x15,0x16,0x31,0x73,
+ 0x00,0x08,0x75,0x26,0x58,0x46,0x34,0x63,0x88,0x08,0x84,0x64,0x51,0x11,0x24,0x05, /* 400 */
+ 0x32,0x10,0x11,0x18,0x18,0x64,0x78,0x22,0x41,0x00,0x38,0x55,0x75,0x42,0x10,0x46,
+ 0x83,0x43,0x73,0x38,0x80,0x07,0x83,0x43,0x78,0x74,0x13,0x57,0x62,0x32,0x68,0x80,
+ 0x65,0x86,0x48,0x53,0x48,0x35,0x51,0x58,0x50,0x74,0x46,0x05,0x88,0x70,0x07,0x72,
+ 0x01,0x31,0x00,0x87,0x54,0x88,0x14,0x20,0x84,0x16,0x61,0x15,0x60,0x56,0x85,0x11,
+ 0x58,0x08,0x05,0x88,0x63,0x01,0x82,0x86,0x13,0x14,0x17,0x22,0x01,0x68,0x17,0x17, /* 480 */
+ 0x86,0x58,0x53,0x10,0x62,0x28,0x52,0x82,0x26,0x15,0x04,0x31,0x42,0x88,0x54,0x31,
+ 0x78,0x05,0x80,0x11,0x50,0x45,0x68,0x82,0x33,0x66,0x36,0x36,0x40,0x65,0x15,0x24,
+ 0x47,0x67,0x06,0x45,0x36,0x42,0x26,0x86,0x75,0x06,0x35,0x41,0x33,0x47,0x85,0x12,
+ 0x17,0x80,0x83,0x87,0x65,0x51,0x42,0x31,0x38,0x87,0x56,0x62,0x05,0x17,0x40,0x85,
+ 0x28,0x14,0x17,0x21,0x38,0x12,0x60,0x81,0x24,0x41,0x45,0x75,0x01,0x82,0x87,0x10, /* 560 */
+ 0x10,0x02,0x13,0x25,0x57,0x04,0x21,0x72,0x42,0x78,0x61,0x11,0x70,0x05,0x30,0x47,
+ 0x72,0x13,0x20,0x30,0x21,0x67,0x44,0x31,0x57,0x71,0x45,0x57,0x10,0x54,0x16,0x65,
+ 0x74,0x15,0x24,0x02,0x43,0x71,0x51,0x20,0x55,0x11,0x67,0x83,0x67,0x82,0x52,0x53,
+ 0x35,0x66,0x42,0x46,0x13,0x70,0x22,0x32,0x74,0x00,0x07,0x06,0x81,0x87,0x17,0x57,
+ 0x80,0x28,0x68,0x01,0x72,0x10,0x04,0x27,0x55,0x22,0x86,0x42,0x53,0x15,0x81,0x76, /* 640 */
+ 0x30,0x86,0x40,0x83,0x11,0x43,0x30,0x53,0x82,0x73,0x53,0x03,0x72,0x35,0x68,0x70,
+ 0x45,0x41,0x15,0x73,0x14,0x12,0x31,0x64,0x32,0x66,0x63,0x56,0x21,0x51,0x50,0x82,
+ 0x10,0x30,0x23,0x38,0x17,0x21,0x27,0x10,0x23,0x14,0x22,0x75,0x77,0x28,0x37,0x71,
+ 0x62,0x75,0x06,0x88,0x72,0x14,0x18,0x73,0x13,0x03,0x01,0x50,0x71,0x58,0x62,0x86,
+ 0x62,0x88,0x86,0x86,0x03,0x27,0x01,0x46,0x17,0x22,0x71,0x38,0x53,0x81,0x70,0x33, /* 720 */
+ 0x88,0x68,0x13,0x78,0x81,0x04,0x86,0x57,0x30,0x16,0x52,0x31,0x40,0x83,0x07,0x56,
+ 0x82,0x10,0x32,0x31,0x28,0x50,0x06,0x50,0x81,0x63,0x06,0x75,0x76,0x65,0x11,0x60,
+ 0x14,0x17,0x12,0x12,0x55,0x56,0x48,0x11,0x41,0x13,0x28,0x82,0x62,0x07,0x47,0x64,
+ 0x24,0x48,0x23,0x24,0x77,0x53,0x26,0x08,0x17,0x58,0x11,0x56,0x37,0x48,0x35,0x51,
+ 0x47,0x86,0x85,0x66,0x66,0x81,0x73,0x20,0x21,0x36,0x75,0x22,0x74,0x66,0x83,0x44, /* 800 */
+ 0x57,0x00,0x66,0x64,0x77,0x20,0x47,0x22,0x28,0x56,0x87,0x12,0x47,0x02,0x48,0x07,
+ 0x02,0x54,0x23,0x01,0x25,0x71,0x37,0x36,0x75,0x36,0x00,0x52,0x68,0x15,0x33,0x35,
+ 0x82,0x06,0x13,0x73,0x24,0x08,0x71,0x76,0x15,0x22,0x42,0x60,0x18,0x53,0x43,0x11,
+ 0x64,0x57,0x76,0x17,0x61,0x56,0x68,0x76,0x60,0x65,0x54,0x78,0x10,0x33,0x63,0x14,
+ 0x21,0x83,0x21,0x60,0x15,0x55,0x80,0x42,0x38,0x42,0x03,0x13,0x12,0x34,0x36,0x25, /* 880 */
+ 0x27,0x30,0x82,0x81,0x25,0x47,0x51,0x35,0x44,0x12,0x67,0x35,0x00,0x10,0x01,0x83,
+ 0x85,0x74,0x42,0x40,0x13,0x03,0x61,0x27,0x81,0x26,0x26,0x81,0x18,0x87,0x43,0x51,
+ 0x20,0x62,0x71,0x27,0x51,0x56,0x10,0x22,0x22,0x81,0x11,0x81,0x41,0x66,0x66,0x38,
+ 0x20,0x86,0x75,0x56,0x12,0x40,0x06,0x54,0x61,0x12,0x74,0x40,0x34,0x58,0x58,0x78,
+ 0x10,0x07,0x85,0x25,0x72,0x88,0x57,0x22,0x22,0x25,0x50,0x84,0x00,0x41,0x26,0x08, /* 960 */
+ 0x36,0x46,0x28,0x78,0x46,0x78,0x05,0x02,0x28,0x20,0x77,0x13,0x60,0x75,0x14,0x43,
+ 0x68,0x78,0x64,0x31,0x38,0x77,0x73,0x73,0x55,0x41,0x27,0x00,0x54,0x07,0x08,0x28,
+ 0x68,0x80,0x04,0x53,0x83,0x43,0x22,0x81,0x00,0x64,0x35,0x48,0x67,0x66,0x50,0x17,
+ 0x75,0x76,0x12,0x75,0x43,0x81,0x62,0x40,0x33,0x43,0x45,0x38,0x87,0x21,0x66,0x14,
+ 0x70,0x48,0x41,0x43,0x14,0x66,0x58,0x78,0x45,0x82,0x02,0x25,0x45,0x73,0x15,0x21, /* 1040 */
+ 0x32,0x03,0x02,0x48,0x80,0x80,0x13,0x71,0x25,0x54,0x32,0x72,0x05,0x68,0x65,0x24,
+ 0x68,0x04,0x06,0x16,0x83,0x50,0x54,0x53,0x37,0x37,0x27,0x22,0x20,0x68,0x08,0x25,
+ 0x50,0x84,0x72,0x86,0x74,0x22,0x36,0x16,0x80,0x07,0x55,0x18,0x12,0x17,0x84,0x44,
+ 0x81,0x15,0x64,0x50,0x71,0x10,0x58,0x15,0x51,0x10,0x10,0x47,0x16,0x21,0x07,0x58,
+ 0x61,0x18,0x78,0x00,0x52,0x72,0x64,0x52,0x17,0x43,0x23,0x40,0x76,0x48,0x67,0x30, /* 1120 */
+ 0x77,0x63,0x64,0x87,0x51,0x31,0x63,0x84,0x68,0x74,0x53,0x63,0x84,0x23,0x54,0x66,
+ 0x10,0x48,0x36,0x33,0x85,0x21,0x48,0x42,0x03,0x82,0x51,0x10,0x33,0x57,0x46,0x80,
+ 0x16,0x43,0x34,0x02,0x07,0x03,0x53,0x22,0x12,0x75,0x73,0x34,0x65,0x83,0x33,0x87,
+ 0x43,0x85,0x17,0x50,0x36,0x60,0x88,0x02,0x58,0x75,0x80,0x88,0x31,0x63,0x60,0x18,
+ 0x21,0x32,0x26,0x15,0x68,0x74,0x11,0x10,0x33,0x14,0x13,0x05,0x34,0x16,0x72,0x65, /* 1200 */
+ 0x35,0x50,0x13,0x34,0x80,0x87,0x10,0x26,0x48,0x68,0x84,0x52,0x71,0x44,0x23,0x58,
+ 0x80,0x35,0x57,0x70,0x54,0x84,0x28,0x70,0x55,0x88,0x86,0x83,0x86,0x25,0x21,0x82,
+ 0x72,0x61,0x17,0x78,0x85,0x17,0x67,0x73,0x00,0x57,0x71,0x11,0x78,0x51,0x10,0x65,
+ 0x63,0x57,0x02,0x87,0x40,0x13,0x40,0x01,0x26,0x53,0x45,0x12,0x05,0x46,0x75,0x18,
+ 0x80,0x70,0x33,0x35,0x66,0x22,0x62,0x00,0x70,0x23,0x26,0x87,0x72,0x63,0x11,0x13, /* 1280 */
+ 0x33,0x33,0x81,0x41,0x70,0x62,0x28,0x61,0x51,0x47,0x31,0x30,0x25,0x46,0x51,0x17,
+ 0x61,0x58,0x07,0x41,0x61,0x37,0x37,0x06,0x14,0x00,0x54,0x88,0x77,0x75,0x67,0x77,
+ 0x66,0x53,0x16,0x72,0x66,0x66,0x88,0x76,0x43,0x58,0x31,0x04,0x87,0x57,0x06,0x76,
+ 0x47,0x00,0x43,0x63,0x58,0x60,0x52,0x03,0x44,0x27,0x36,0x48,0x61,0x23,0x72,0x16,
+ 0x10,0x62,0x42,0x08,0x60,0x83,0x23,0x54,0x03,0x55,0x55,0x73,0x00,0x61,0x03,0x65, /* 1360 */
+ 0x34,0x27,0x14,0x15,0x86,0x62,0x55,0x80,0x16,0x53,0x10,0x18,0x26,0x11,0x35,0x46,
+ 0x82,0x46,0x13,0x25,0x83,0x47,0x70,0x50,0x06,0x01,0x56,0x02,0x11,0x68,0x54,0x53,
+ 0x03,0x68,0x73,0x36,0x41,0x88,0x86,0x33,0x42,0x52,0x01,0x58,0x33,0x42,0x32,0x88,
+ 0x56,0x81,0x77,0x55,0x51,0x48,0x48,0x12,0x01,0x58,0x13,0x85,0x04,0x14,0x71,0x83,
+ 0x57,0x07,0x54,0x55,0x54,0x55,0x28,0x27,0x31,0x36,0x02,0x12,0x32,0x68,0x32,0x13, /* 1440 */
+ 0x82,0x58,0x70,0x28,0x58,0x53,0x44,0x86,0x72,0x73,0x42,0x84,0x18,0x22,0x08,0x83,
+ 0x61,0x02,0x14,0x16,0x17,0x12,0x41,0x57,0x48,0x85,0x25,0x10,0x26,0x07,0x36,0x76,
+ 0x12,0x66,0x17,0x21,0x32,0x36,0x03,0x25,0x41,0x10,0x11,0x22,0x66,0x60,0x16,0x16,
+ 0x32,0x64,0x26,0x05,0x18,0x63,0x51,0x58,0x51,0x31,0x42,0x53,0x84,0x56,0x66,0x27,
+ 0x83,0x33,0x54,0x50,0x76,0x46,0x50,0x80,0x25,0x43,0x41,0x57,0x35,0x78,0x25,0x43, /* 1520 */
+ 0x02,0x82,0x38,0x47,0x45,0x70,0x15,0x67,0x51,0x77,0x47,0x80,0x31,0x52,0x75,0x00,
+ 0x00,0x94,0x7b,0xca,0x93,0xc2,0x7d,0x58,0x4e,0x2c,0x66,0xea,0xc9,0xc7,0x64,0x0c,
+ 0x1c,0xa2,0x17,0xee,0xf6,0x6d,0xab,0xbc,0xb2,0x60,0xb4,0xc3,0x43,0x00,0xfa,0x05,
+ 0x13,0x57,0x82,0x0f,0x57,0x39,0x25,0x44,0x98,0x2f,0xd1,0x10,0x57,0xde,0x23,0x3e,
+ 0x6d,0x2d,0xd8,0x49,0x72,0xa7,0xe4,0x7d,0x4d,0xba,0x99,0xbc,0x30,0xcf,0x8f,0x2a, /* 1600 */
+ 0xd5,0xa2,0xc0,0x24,0x31,0x95,0xed,0x27,0x30,0xff,0xa9,0x2d,0x22,0x7d,0x15,0x30,
+ 0x95,0x97,0x2d,0x4b,0x34,0x47,0xff,0xac,0x45,0xa2,0x3e,0xb4,0x1c,0xbc,0x87,0xcd,
+ 0xd1,0x25,0x0a,0x8a,0x47,0x8b,0x0f,0x7a,0x1d,0x5b,0x39,0xaa,0x22,0x06,0xe4,0x86,
+ 0x45,0x58,0x4f,0xe7,0xbf,0x7a,0x13,0x16,0x8f,0x48,0x27,0x65,0xe5,0x7b,0xb9,0x24,
+ 0xac,0x6d,0x9a,0x11,0x36,0x9f,0x4a,0x6a,0xff,0xcd,0x16,0x9b,0x7d,0x75,0x12,0x9b, /* 1680 */
+ 0x35,0xd5,0x13,0x4a,0x31,0x76,0x1b,0xb8,0x35,0x5a,0xee,0xed,0x27,0xe2,0x01,0xa0,
+ 0x63,0x13,0x01,0x3e,0x30,0x7a,0x01,0xa7,0x3a,0xea,0x79,0x55,0xc0,0x57,0x8c,0x8c,
+ 0x5e,0x5a,0x1a,0x2d,0x2f,0xa4,0x59,0x3f,0xac,0xd9,0x04,0xc6,0x20,0x40,0xbd,0xb9,
+ 0xf3,0x29,0x93,0x35,0x36,0xbf,0x8d,0x81,0xc4,0x25,0x6b,0xaa,0xe8,0x72,0x3f,0xd4,
+ 0xdc,0x66,0xbb,0x5e,0x7f,0x9c,0xa4,0x90,0x31,0xa1,0x93,0xec,0xec,0xbb,0x5d,0xc3, /* 1760 */
+ 0x90,0xec,0x6d,0x55,0x13,0xc7,0x9a,0x05,0x2b,0x3f,0xd4,0x36,0x12,0xfb,0x73,0x75,
+ 0x31,0x5d,0x80,0x91,0xf7,0x9b,0xab,0x13,0x18,0xf1,0x78,0x54,0x56,0x1b,0xc9,0x3a,
+ 0xe0,0xe5,0xcd,0x6d,0x13,0x1e,0x56,0x2c,0x81,0x14,0x81,0x0c,0x93,0x9a,0xe5,0x63,
+ 0xaa,0x10,0xb4,0x7c,0xe4,0x48,0x43,0x17,0xf3,0x4a,0xbd,0x02,0xd0,0xcc,0xad,0x58,
+ 0xdd,0x29,0xbc,0xf6,0x57,0xbb,0xd9,0x25,0x4b,0x01,0xca,0x97,0x26,0x09,0x19,0x38, /* 1840 */
+ 0xed,0x32,0x05,0x4b,0x37,0xdd,0x61,0x72,0x40,0xf4,0x43,0x4c,0x1a,0x4a,0x87,0x11,
+ 0xaa,0x3a,0x39,0x9a,0x8a,0x53,0x88,0x33,0x0b,0x70,0x59,0xec,0xcb,0xb6,0xb1,0xb9,
+ 0xcf,0x71,0x87,0xad,0xf1,0x0b,0x0c,0x91,0x71,0xd3,0xc0,0xf6,0xe2,0xd4,0x60,0xa4,
+ 0x19,0x24,0x76,0x72,0xe3,0xb9,0xfe,0xa2,0xc9,0x59,0x10,0xbf,0x2f,0xb6,0xa5,0xd6,
+ 0x1f,0x25,0x74,0x53,0xb0,0x7a,0xfb,0x64,0xb0,0xba,0x27,0x58,0xbc,0xd7,0x35,0x75, /* 1920 */
+ 0x1f,0x2d,0x53,0x51,0x5e,0x23,0x6f,0xe8,0xa5,0xb4,0x39,0x3b,0x80,0xbf,0x06,0xdf,
+ 0x97,0xbd,0xc6,0x38,0x00,0x87,0xe6,0xaa,0x8d,0xde,0x6e,0x09,0x81,0x11,0xa7,0x34,
+ 0x3f,0xcd,0xd1,0xe9,0x03,0x70,0x8e,0x63,0x7e,0xbf,0x28,0x32,0x3c,0xda,0x6b,0x94,
+ 0x05,0x81,0x0e,0xdc,0xfb,0x36,0x91,0x14,0x9e,0xcf,0x22,0x4c,0x50,0xf8,0xdf,0x92,
+ 0xa9,0x4a,0xa4,0x77,0x0a,0x0e,0x91,0x46,0x61,0x94,0xbb,0x0e,0x27,0xbf,0x1c,0xab, /* 2000 */
+ 0xf1,0x6a,0xdf,0xd3,0x51,0x22,0x00,0x33,0xf7,0x6f,0x59,0x25,0x55,0x7b,0xcf,0x96,
+ 0x34,0xe9,0x46,0x13,0x59,0x62,0x1d,0x80,0xb4,0xbb,0xad,0x7e,0x2a,0x6e,0x43,0x2d,
+ 0xc4,0x3b,0x12,0x6c,0xa4,0x2a,0xb8,0x8a,0xa8,0x8f,0x0a,0x84,0xaf,0x58,0x02,0x9c,
+ 0x99,0xa0,0x24,0x8f,0x0c,0x45,0x40,0x71,0xf3,0x5b,0x83,0x1f,0xed,0x12,0x54,0xd6,
+ 0xf4,0xe2,0x72,0x04,0x85,0x78,0x62,0x15,0xf7,0xc7,0xf0,0xc4,0xed,0x15,0xfa,0x85, /* 2080 */
+ 0x3c,0xd3,0xaa,0x07,0x25,0x9b,0x39,0x24,0x0a,0x82,0x13,0x5c,0x29,0x23,0xa7,0x2b,
+ 0x87,0x6f,0xab,0xb3,0xf0,0xf2,0xc0,0x96,0x13,0xde,0x39,0xd4,0x59,0xa0,0x7c,0x14,
+ 0xe7,0xba,0x43,0x7d,0x80,0x41,0x49,0x1f,0xce,0xc1,0x43,0x34,0x04,0xba,0xd1,0xda,
+ 0x9e,0xe9,0x47,0x1e,0x17,0xcb,0x69,0x1b,0x2a,0x35,0x37,0x10,0xc9,0xff,0xa4,0xe5,
+ 0x17,0x81,0x12,0x02,0x77,0x64,0xeb,0x7d,0xe8,0x09,0xc3,0xe1,0xf1,0xfa,0x41,0x78, /* 2160 */
+ 0xa5,0xd4,0xdc,0x9e,0xe2,0x78,0x57,0xef,0xf2,0x6b,0x91,0x71,0x1f,0xc1,0x44,0xd5,
+ 0xa7,0x75,0xb8,0xb5,0x0d,0x5d,0xb9,0x39,0xba,0x32,0x07,0x68,0x0c,0x24,0x2f,0xc8,
+ 0x21,0x94,0x7f,0x93,0x4c,0x8d,0xae,0xe2,0x03,0x56,0x3d,0x28,0x60,0x6b,0xe6,0x24,
+ 0xa3,0x29,0x01,0x93,0x2d,0xae,0x85,0x71,0x2a,0xf6,0xc8,0x01,0x60,0x26,0x92,0x7e,
+ 0x9b,0x81,0x29,0x57,0x4b,0xe3,0xcb,0x1e,0x95,0x33,0x2b,0x05,0x27,0x07,0xac,0x8a, /* 2240 */
+ 0xa8,0xf4,0x35,0xe8,0x8b,0x7e,0x56,0x8d,0x49,0x87,0xc6,0xac,0x0e,0x90,0x2b,0x06,
+ 0x09,0xa0,0x2d,0x91,0xb3,0xf5,0xfd,0x3f,0xd9,0x01,0xdd,0xd0,0xdb,0x98,0x73,0xbd,
+ 0x7c,0x71,0xed,0x92,0x1d,0x45,0x77,0xa7,0x8c,0x4f,0xcc,0x9b,0xf0,0x75,0x20,0x3d,
+ 0x38,0xf5,0xe7,0x6e,0x74,0xf2,0x77,0x48,0x4e,0x05,0x7b,0x61,0x89,0x00,0x41,0x31,
+ 0xb0,0xc9,0xb1,0xa1,0x55,0x29,0x4d,0x1c,0xd3,0xd5,0x20,0x8e,0x26,0x69,0x01,0xd7, /* 2320 */
+ 0xd3,0x14,0xfa,0xcc,0xe7,0xe2,0xaa,0x58,0x45,0x83,0xa1,0x1e,0x4d,0x7c,0x21,0xb9,
+ 0x4a,0x32,0xe5,0x08,0xed,0xdb,0xbd,0x7a,0x65,0xaa,0x86,0xb4,0xfd,0xfa,0x6b,0xc2,
+ 0x85,0xd4,0xcf,0xf5,0x39,0x26,0xc7,0x17,0x3f,0xbe,0x1f,0x89,0xcc,0x30,0x32,0x34,
+ 0xb8,0x78,0xc6,0xb8,0x10,0x1f,0x58,0xac,0x8d,0x3e,0x5e,0x1b,0xf5,0xab,0x6b,0x26,
+ 0x29,0x7c,0xc9,0x7b,0x95,0x95,0x4a,0xab,0xdb,0x25,0xbe,0x00,0x8a,0x3f,0x47,0xe5, /* 2400 */
+ 0x64,0x87,0xb0,0x0d,0x3d,0xed,0xa8,0x90,0xd9,0x2c,0x83,0x95,0x7f,0xea,0xc6,0xb8,
+ 0x29,0x1a,0xf6,0x59,0x59,0xe1,0xd1,0xfc,0xa3,0xbd,0x19,0x6e,0x9f,0xc9,0xe6,0x7e,
+ 0x06,0x07,0x09,0x48,0x22,0xe5,0xb4,0x19,0x1d,0xb9,0x68,0x24,0xb9,0xf0,0x3f,0x2e,
+ 0xf5,0x7f,0x52,0x38,0xba,0x7e,0x1e,0x84,0xed,0x55,0xb7,0xdf,0xf3,0xd6,0xc2,0xc1,
+ 0x27,0x36,0x92,0xa9,0xa1,0x92,0x72,0x16,0x61,0x30,0xdb,0x89,0xfc,0x67,0xdc,0x94, /* 2480 */
+ 0xdb,0x61,0x4e,0x3e,0x82,0xba,0x3a,0x35,0x12,0xb0,0x12,0xd5,0x1f,0xb4,0x86,0xb5,
+ 0xa3,0x15,0x0b,0x78,0xe7,0x24,0xe2,0xa1,0x2d,0xe0,0x7d,0x86,0x71,0xfb,0xa2,0xda,
+ 0x7f,0xd5,0xd1,0x47,0x20,0x8f,0xc3,0xaf,0x65,0x3e,0x65,0x20,0xfc,0x40,0x87,0x1a,
+ 0xf2,0x17,0x7e,0x65,0xcb,0xd0,0xea,0xf3,0x04,0x21,0x7b,0x36,0x7a,0x66,0x5f,0x22,
+ 0x4c,0xae,0xdf,0xe9,0x30,0x06,0xac,0x1e,0x14,0xbc,0xd6,0x7a,0x88,0xd1,0x71,0xf3, /* 2560 */
+ 0xd8,0xf3,0xe3,0x58,0xa7,0x19,0x26,0xba,0x3e,0x5c,0x23,0x9a,0x53,0x12,0x63,0xec,
+ 0x94,0x37,0xbf,0x2a,0x03,0x3b,0x8b,0x55,0xb2,0xc0,0xcb,0x6e,0x7e,0x97,0x31,0x6e,
+ 0x22,0xdf,0x77,0xca,0xd9,0x10,0xd2,0x0e,0xec,0xe1,0xc5,0x09,0x10,0xa5,0xcc,0x32,
+ 0xad,0xab,0x09,0x37,0x75,0x50,0xf9,0x2d,0x5b,0xb1,0xf4,0xc0,0x7f,0x4a,0x28,0x22,
+ 0x33,0x8e,0x2c,0xff,0x53,0x48,0xdf,0x77,0xcf,0x8e,0xf8,0xe6,0x65,0x7d,0xed,0x1e, /* 2640 */
+ 0x0c,0xe0,0x58,0xe3,0xcc,0xfb,0xf3,0x9b,0x3f,0x16,0x6e,0x30,0x3d,0x33,0xc3,0x55,
+ 0x6c,0x9a,0xc8,0xec,0xb3,0xdf,0x7c,0x74,0xab,0x36,0xd0,0xf2,0x79,0x44,0x41,0xba,
+ 0x98,0x08,0x82,0x7b,0x57,0x8f,0xb5,0xc2,0x9e,0x49,0x4e,0x21,0x53,0x9a,0xd3,0xab,
+ 0x2b,0x41,0xbf,0x16,0x1d,0x7f,0x69,0x58,0x9d,0x45,0x24,0xc5,0x4c,0x89,0xb4,0x86,
+ 0xf7,0x5d,0x25,0x2f,0x54,0x1c,0xc6,0x3b,0x9e,0x70,0x6d,0x64,0xa1,0x28,0x9a,0x23, /* 2720 */
+ 0x06,0xc5,0x95,0x36,0x3c,0xb6,0xfb,0xef,0x0a,0x1b,0x5b,0x17,0xab,0x5b,0x17,0x94,
+ 0xbf,0x27,0x03,0x6f,0x64,0xea,0xf0,0xbd,0x43,0x0d,0xd5,0x8d,0x80,0x01,0x0c,0xcd,
+ 0xad,0xa4,0xa5,0xa3,0xa1,0xe4,0x1a,0x6f,0xbf,0x12,0x9d,0x73,0x77,0x9a,0x37,0xae,
+ 0x5c,0x8d,0x68,0x41,0xa9,0x99,0x3c,0x51,0xe3,0x64,0xe0,0x4f,0xac,0x8e,0x25,0xa4,
+ 0xe6,0x87,0x2f,0x6c,0x86,0x0f,0xa2,0x65,0xc1,0xc4,0x42,0x6a,0xd9,0xc2,0x1d,0x26, /* 2800 */
+ 0xda,0x8c,0x27,0x85,0x46,0xad,0xcd,0x83,0x1f,0x2b,0x8b,0x26,0xd4,0xe1,0xf6,0x70,
+ 0x62,0x3d,0x95,0xc8,0x36,0x2d,0xa6,0x62,0xd1,0xff,0x0a,0xb6,0x87,0x50,0x3f,0x32,
+ 0x8d,0xe0,0x95,0x81,0x0e,0xde,0x12,0xb4,0x9e,0xad,0x15,0x33,0x51,0x95,0x58,0xc1,
+ 0xe9,0x40,0xb4,0x6e,0x4e,0xdb,0x02,0x7b,0xe9,0xda,0x20,0x39,0xb2,0x5d,0xcf,0x73,
+ 0x57,0xe1,0x9e,0x54,0x16,0xae,0x26,0x8c,0x14,0xfb,0x3a,0x8b,0xab,0xcb,0x3d,0x23, /* 2880 */
+ 0xf7,0x0c,0xc9,0xd5,0x96,0x81,0xc5,0xd8,0x33,0xac,0x22,0xe6,0x53,0xd8,0x6e,0x22,
+ 0xce,0x82,0x25,0x40,0x75,0x5d,0x8d,0x24,0x3c,0x15,0x21,0x3d,0x07,0x6c,0x6b,0x26,
+ 0x43,0x6d,0xdc,0x07,0xc7,0xe0,0x01,0x34,0x7b,0x0c,0xb8,0x78,0x3d,0xfe,0xfe,0xdf,
+ 0x27,0x5f,0xec,0x47,0x92,0x68,0x67,0x34,0x00,0x7f,0x0f,0xf8,0x54,0x08,0x11,0xc2,
+ 0xaf,0xe6,0xca,0x15,0x14,0x20,0x53,0x2f,0xa5,0x52,0x6a,0x10,0x74,0xc3,0xd7,0x89, /* 2960 */
+ 0xf2,0x93,0x2d,0xe4,0x2e,0x3a,0xcf,0xbf,0x94,0x76,0x0f,0x42,0x6d,0x96,0xcf,0x03,
+ 0x3f,0xa4,0x9e,0x2f,0x45,0x8f,0x9a,0x9c,0x2e,0x71,0xda,0xcf,0xe0,0x09,0xdd,0x9c,
+ 0x3f,0x3c,0x8a,0xb3,0x28,0x2d,0x6f,0x38,0x3b,0x98,0x1c,0x82,0xd6,0x36,0x4f,0x0e,
+ 0x4b,0xdb,0x2a,0xf6,0xa9,0x5b,0xa6,0x1f,0x47,0x41,0x50,0xca,0xd7,0x23,0x3f,0x89,
+ 0x03,0xdf,0x97,0x2d,0xbb,0x03,0x28,0xc0,0xcb,0x9d,0x0c,0xcb,0xef,0x88,0x3d,0x2e, /* 3040 */
+ 0x6a,0xdd,0x18,0x0e,0xca,0x1b,0x66,0x2f,0xc1,0xd2,0xdb,0xbd,0xdb,0x36,0x34,0x21,
+ 0x9e,0x1e,0xff,0x38,0xb1,0xe5,0x28,0x75,0x35,0x6c,0x03,0xea,0xde,0x94,0x20,0x55,
+ 0xf4,0x83,0x50,0x4b,0xbb,0xcb,0x43,0x02,0xa4,0x17,0xcf,0x6d,0x32,0x8e,0xd7,0x93,
+ 0xb1,0xa3,0xc0,0x96,0x9b,0x7b,0x34,0x18,0xf5,0x0a,0xb3,0x9f,0x83,0xc5,0x66,0x6c,
+ 0x90,0xe3,0x83,0x56,0xf7,0xf9,0xd4,0x94,0xa6,0xdc,0xb6,0x3d,0x67,0xc3,0x4e,0x3d, /* 3120 */
+ 0x14,0xa4,0xe1,0x55,0x96,0x49,0x79,0x26,0xc8,0x56,0x8d,0x8e,0xc3,0xdb,0xd9,0xc2,
+ 0xe8,0x2c,0x38,0x5b,0xcf,0xb8,0xd9,0x67,0x48,0x63,0xbd,0x4f,0xbf,0x17,0x57,0xdb,
+ 0x44,0x7b,0xf8,0x04,0xae,0x95,0x01,0x47,0xc9,0x1f,0xbf,0x9a,0xa1,0x78,0x91,0x04,
+ 0x4c,0xca,0xa7,0x3b,0x45,0x52,0x85,0x97,0x46,0x2c,0xed,0x75,0x1d,0x01,0x5e,0xbb,
+ 0xa9,0xe2,0xb7,0xcd,0xcb,0xe6,0xdc,0x05,0xaa,0x9e,0xae,0x0c,0x86,0x84,0x8a,0x34, /* 3200 */
+ 0x75,0xbb,0x1c,0x57,0x44,0xf5,0x90,0x3e,0xe4,0xa8,0x42,0xa4,0x69,0xcc,0x18,0x12,
+ 0x71,0xf2,0x45,0xad,0x70,0xd0,0x2a,0x48,0x37,0x86,0x3b,0x29,0x6b,0x4a,0xdb,0x4e,
+ 0x8d,0x03,0xd8,0x2b,0x64,0xaa,0x11,0xdd,0x31,0xcd,0xf2,0x1e,0xdf,0x1d,0xfe,0x32,
+ 0x76,0xc4,0xdb,0xc8,0x77,0xe3,0x5b,0x15,0xfb,0x28,0x35,0xec,0x3a,0x1c,0x45,0x31,
+ 0x68,0xa3,0x8c,0xa8,0xe5,0x63,0xcf,0x3e,0x9a,0x00,0x73,0x6c,0xd5,0xcf,0xbd,0x28, /* 3280 */
+ 0x41,0xd1,0x0f,0x94,0xad,0x55,0x79,0x9c,0x29,0x27,0xe5,0x46,0x1b,0x28,0xba,0xc5,
+ 0x17,0x4d,0x0c,0xe3,0xf8,0xf7,0xcd,0x76,0x09,0xfb,0xc8,0xda,0x0c,0x38,0xcc,0x21,
+ 0x69,0x5c,0xed,0xad,0x12,0xf8,0xd2,0xe6,0x49,0x51,0xa8,0x99,0x6e,0x51,0x0d,0x6d,
+ 0x52,0x79,0x7c,0x5b,0xa0,0xeb,0x4a,0xfa,0x6b,0xf2,0xcc,0x43,0xda,0x09,0xde,0x31,
+ 0x79,0xe8,0x99,0xbd,0x71,0x88,0xb3,0x2a,0x98,0xa4,0x99,0xd3,0x72,0xf3,0x70,0x7c, /* 3360 */
+ 0xed,0x47,0x9b,0x09,0x81,0xcb,0x50,0xc0,0xc0,0x53,0x9c,0xf7,0xe3,0x10,0x0b,0x72,
+ 0x0e,0x46,0x66,0x52,0xa4,0xf4,0x99,0xc2,0xba,0x3a,0x17,0xf5,0x23,0x22,0x68,0x73,
+ 0x0b,0x96,0x2b,0xc5,0x72,0xc0,0xde,0x96,0xe8,0xc9,0xe2,0x8f,0x7e,0x35,0x32,0xc2,
+ 0x22,0x41,0x96,0xaa,0x9e,0x27,0x68,0x8d,0xd0,0x50,0xd7,0xcb,0x78,0x54,0xfb,0x3c,
+ 0x35,0xf9,0xc6,0x2e,0xfb,0x10,0xda,0x84,0x83,0x3f,0x29,0xbb,0x1b,0xe5,0xef,0x3b, /* 3440 */
+ 0x53,0x36,0x38,0xee,0xf7,0x43,0xd8,0x11,0x9d,0xdc,0x29,0x0b,0xdf,0x08,0xb6,0xf0,
+ 0xf9,0xe4,0xe1,0xe1,0x34,0x46,0xc5,0x3e,0xd6,0x98,0x05,0xda,0x26,0x90,0x8a,0x15,
+ 0xdf,0x1c,0x48,0xe0,0x09,0xec,0x12,0x53,0xbd,0x5a,0x58,0x98,0xeb,0xb5,0x12,0x1c,
+ 0xc2,0x49,0x04,0xc8,0xb1,0x0e,0x24,0xe6,0x80,0xe5,0x65,0x98,0x50,0x76,0xfd,0xa1,
+ 0x1d,0x13,0xff,0xdf,0xa4,0xdb,0x28,0xac,0x9f,0x0a,0xea,0x2f,0x81,0xfd,0x7e,0xd4, /* 3520 */
+ 0xdc,0xa8,0xd3,0xb2,0xe3,0x84,0x8b,0x4d,0x60,0x46,0xf6,0xe0,0xde,0x3a,0x4f,0x68,
+ 0x3f,0x25,0xe0,0x60,0x5e,0x84,0xb3,0x6f,0x48,0x3c,0x40,0x4e,0xf8,0x99,0xcb,0x3f,
+ 0xcc,0xbe,0x8c,0xb2,0xa6,0xf0,0xa7,0xe1,0x0b,0x19,0x48,0xcd,0x4f,0x93,0xf1,0x81,
+ 0x55,0x5f,0x66,0x1d,0x31,0xd4,0x26,0x80,0x8b,0xbf,0x9f,0x66,0xfd,0x60,0xd6,0x49,
+ 0x26,0x9c,0xa3,0xfe,0x99,0x1b,0x22,0x42,0x8c,0x37,0xad,0x2a,0x08,0x68,0x0f,0x74, /* 3600 */
+ 0x7c,0xc0,0x36,0x0c,0xcd,0x37,0x3d,0xc6,0xa9,0xf4,0x3a,0x66,0x47,0x0e,0x01,0x4e,
+ 0x72,0xb3,0xd8,0xc3,0x8e,0x02,0x04,0x42,0xd8,0xaa,0xb9,0x74,0xe6,0x04,0x93,0x74,
+ 0x14,0x5b,0x04,0xcb,0x7f,0x30,0x44,0xaa,0xc1,0xef,0xda,0xb2,0xa1,0x8b,0xb4,0x64,
+ 0xd4,0xf2,0xf2,0xd8,0x14,0x39,0x74,0xc9,0x5e,0xee,0x85,0x6d,0x59,0xec,0x00,0x28,
+ 0x8e,0xd4,0x3f,0xf5,0xcc,0x88,0x03,0x00,0x6c,0x99,0x55,0x14,0xa2,0xcc,0x9c,0xa6, /* 3680 */
+ 0x22,0xb6,0x1b,0xcd,0x75,0xec,0x51,0xc2,0x02,0xa9,0x17,0x10,0x5b,0x4a,0x4b,0xed,
+ 0x1b,0x80,0x14,0x68,0x31,0xdc,0xed,0x07,0xef,0xd2,0xed,0x25,0x73,0x9f,0x54,0x09,
+ 0x69,0x11,0xb1,0x50,0xd3,0x07,0x7c,0xcd,0x73,0x1a,0x03,0x61,0x68,0x27,0x25,0xd5,
+ 0x38,0x03,0xf8,0xfc,0xea,0xa8,0x39,0x19,0x29,0x1e,0xdb,0x44,0x93,0xec,0x84,0xcc,
+ 0xe1,0xd0,0xf8,0x2a,0x67,0x92,0x36,0xea,0xd1,0x00,0x2a,0xe8,0x01,0x8c,0xac,0x9f, /* 3760 */
+ 0xdb,0xd2,0x46,0xff,0x09,0x3d,0x80,0x3c,0x0d,0xe3,0x32,0x6a,0x57,0x90,0x7b,0x0d,
+ 0xd6,0xb0,0x1d,0x08,0x14,0x58,0xc7,0x57,0x28,0xc6,0x00,0x82,0x99,0x28,0x89,0x0a,
+ 0x56,0xaa,0xaf,0xef,0xcf,0x74,0x23,0xb7,0x0a,0x6d,0x86,0xb4,0x15,0xb8,0x35,0x8d,
+ 0xd0,0x44,0xab,0xee,0x00,0xb9,0xc9,0x79,0x5f,0xc8,0xf6,0x1a,0x64,0x68,0x6d,0xf5,
+ 0xf8,0x76,0xa8,0xf3,0x30,0x61,0x59,0x9a,0xe8,0x30,0xf7,0xeb,0x4c,0x4b,0xff,0x87, /* 3840 */
+ 0x5f,0x4a,0x93,0x6c,0x40,0x3c,0x5d,0x16,0x0d,0xe5,0xd3,0x3c,0xae,0xe4,0x0f,0xb7,
+ 0x18,0xdd,0xa4,0x47,0x8a,0xc6,0xf5,0x1c,0x59,0xc2,0x15,0x52,0x54,0xbd,0x77,0x67,
+ 0x11,0x18,0x41,0x1e,0x26,0x09,0xd0,0x00,0x30,0x6f,0xc9,0x50,0x70,0x04,0xa3,0x1e,
+ 0x89,0x57,0xea,0x40,0xc2,0x56,0x4b,0x83,0xc3,0xab,0xb7,0x1a,0x87,0xc1,0x1b,0xd1,
+ 0x8d,0x78,0x91,0xc4,0x49,0xdb,0xbe,0x79,0xb4,0xa4,0xfb,0x04,0x83,0x07,0xce,0x0e, /* 3920 */
+ 0x81,0x2b,0x2c,0x68,0xec,0xab,0x77,0xfd,0x11,0x11,0x52,0x6a,0xb0,0x81,0x73,0x06,
+ 0xce,0xbc,0xb0,0x49,0x7c,0x55,0x24,0x31,0xce,0x15,0xe4,0xab,0x52,0x28,0x3f,0x67,
+ 0x94,0x80,0xd6,0x9d,0xdd,0xe1,0xf2,0x57,0x9c,0xfd,0xbe,0x0b,0xca,0x95,0xfc,0x5b,
+ 0x2d,0xb0,0xc5,0xcc,0x76,0xa3,0x19,0x50,0xf5,0x11,0x6a,0xae,0x5f,0x02,0xd4,0x67,
+ 0x10,0xe4,0x25,0x7a,0x75,0xfd,0xed,0xf2,0xf4,0x7c,0xe3,0x7c,0x20,0x3e,0x7f,0x24, /* 4000 */
+ 0xd3,0xc9,0x17,0x97,0x13,0xc5,0xd8,0x07,0xc2,0x96,0x14,0x9a,0x75,0xcc,0xb4,0x44,
+ 0xf0,0xc6,0xf6,0xab,0xdd,0x2d,0xbb,0x29,0x85,0xfe,0x26,0x74,0x82,0x85,0x8a,0x1e),/* 4032 */
chunk_from_chars(
0x30,0x82,0x07,0xb2,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x03,
0x12,0x03,0x82,0x07,0xa1,0x00),
@@ -991,6 +1434,325 @@ static test_t tests[] = {
chunk_from_chars(
0x38,0x35,0x9f,0xbc,0xd7,0x95,0x82,0xcf,0xfe,0x60,0x9e,0x13,0x7e,0xe2,0xef,0xe8,
0xa8,0xdb,0xcb,0xad,0x18,0xba,0x92,0xbb,0x43,0x3a,0xb4,0xf0,0x9b,0x49,0x29,0x9d),/* 32 */
+ chunk_from_chars(
+ 0x30,0x82,0x13,0x38,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x13,0x04,0x82,0x13,0x24,0x04,0x82,0x13,0x20),
+ chunk_from_chars(
+ 0x30,0x82,0x13,0x5e,0x02,0x01,0x00,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,
+ 0x03,0x04,0x03,0x13,0x04,0x82,0x13,0x4a,0x30,0x82,0x13,0x46,0x04,0x20),
+ chunk_from_chars(
+ 0xec,0xa1,0x4b,0x37,0xa0,0x87,0xba,0xaf,0xd0,0xa0,0xeb,0x23,0xc9,0x20,0x2c,0xd6,
+ 0x22,0x7e,0x04,0xd6),
+ chunk_from_chars(
+ 0xf2,0xba,0x09,0xff,0xf2,0x86,0xdc,0xfc,0xba,0xab,0x5e,0xb2,0xce,0x7b,0x81,0x28,
+ 0xd0,0x46,0x85,0xfe),
+ chunk_from_chars(
+ 0x69,0x24,0xbb,0x42,0x57,0xa7,0xb9,0xaf,0xf0,0x95,0xc3,0x0b,0xb3,0x5c,0x6a,0xe4,
+ 0x19,0x82,0x63,0x12,0x0f,0x80,0x39,0xaa,0x4e,0x78,0xe1,0x74,0xa7,0x86,0xce,0x00,
+ 0x3b,0x9a,0xc2,0xc1,0x42,0x2a,0x1a,0xe8,0x02,0xdd,0xd7,0x46,0x4d,0x3f,0x32,0x72,
+ 0x9a,0x3c,0x7d,0xe8,0x94,0xd5,0x06,0xac,0xad,0x25,0xce,0xb3,0x72,0xea,0x31,0x49,
+ 0xc9,0x87,0x80,0xdc,0xd1,0x31,0x4b,0xaa,0x29,0xb9,0xb8,0x07,0x75,0x4c,0x47,0xde, /* 80 */
+ 0x5d,0xca,0x95,0x40,0x64,0xf2,0x85,0x28,0xb8,0x15,0xfe,0x27,0xb7,0x9a,0xc5,0x06,
+ 0xb3,0xad,0x76,0x29,0xd2,0xc9,0x71,0xab,0x8f,0x28,0x2e,0x0c,0x6e,0x7e,0x55,0x48,
+ 0xee,0x0e,0x11,0x32,0x42,0xb7,0xa0,0xe0,0x64,0xa6,0xdb,0xce,0x30,0xc5,0x61,0x9b,
+ 0x19,0x80,0x08,0x89,0xa0,0x44,0x04,0xb5,0x00,0x13,0xc0,0x88,0xc1,0x30,0x29,0x62,
+ 0x12,0x4c,0xd3,0xb4,0x91,0x0a,0x35,0x2c,0x43,0x12,0x31,0x19,0x99,0x65,0x22,0x18, /* 160 */
+ 0x52,0x02,0xc3,0x85,0x23,0x44,0x0d,0x90,0x24,0x4a,0x1a,0x30,0x22,0x44,0x28,0x61,
+ 0x81,0x06,0x29,0x18,0x97,0x68,0x0a,0x20,0x09,0x08,0x32,0x6a,0x44,0xa4,0x4c,0x44,
+ 0x90,0x21,0x8a,0x16,0x68,0x9a,0xa8,0x51,0x1a,0xa5,0x2c,0x62,0x46,0x8d,0x04,0xc3,
+ 0x40,0xd3,0x86,0x28,0x60,0xa4,0x60,0x13,0x18,0x70,0x84,0x94,0x8c,0x63,0xc0,0x44,
+ 0x04,0xa9,0x28,0x20,0x08,0x20,0x43,0x16,0x2a,0x23,0x29,0x2d,0x1a,0xb1,0x29,0x48, /* 240 */
+ 0xb6,0x09,0x21,0x88,0x31,0x00,0xc5,0x30,0x00,0xc4,0x8c,0xd9,0x82,0x68,0xe1,0x30,
+ 0x4c,0x63,0x32,0x45,0x0c,0x32,0x86,0x18,0x08,0x31,0x91,0x98,0x0d,0x10,0xb8,0x70,
+ 0x9b,0x30,0x22,0x64,0x04,0x08,0x93,0xa4,0x8c,0x21,0xc9,0x70,0x0c,0x35,0x71,0x5b,
+ 0x00,0x0d,0x14,0x31,0x22,0xcc,0x98,0x10,0x21,0x04,0x80,0x9b,0x28,0x64,0x1c,0x30,
+ 0x80,0x21,0x30,0x71,0x18,0x33,0x50,0x24,0x25,0x44,0x08,0x17,0x8c,0xc0,0x08,0x48, /* 320 */
+ 0x84,0x44,0x90,0x48,0x98,0x30,0xca,0x44,0x00,0x09,0x19,0x51,0x19,0x23,0x0c,0x52,
+ 0x20,0x0e,0x49,0x06,0x32,0x1c,0x15,0x4e,0x19,0x48,0x85,0x13,0x25,0x49,0xa3,0x00,
+ 0x04,0x08,0x15,0x6d,0x20,0x41,0x0c,0xda,0x42,0x52,0xc1,0x34,0x8c,0x00,0x31,0x69,
+ 0x43,0x82,0x24,0x64,0x94,0x6d,0x1c,0x81,0x11,0x01,0x96,0x21,0x4b,0x02,0x00,0xca,
+ 0x28,0x84,0xcc,0x46,0x64,0x51,0x18,0x6a,0x18,0x10,0x00,0xa4,0x98,0x21,0x60,0xb0, /* 400 */
+ 0x68,0x03,0x94,0x6c,0x94,0x48,0x51,0x80,0x40,0x46,0x92,0x22,0x2c,0x23,0x44,0x69,
+ 0x98,0x26,0x4d,0x1c,0x01,0x08,0x52,0x02,0x20,0x8a,0xa6,0x08,0x0a,0x31,0x61,0x93,
+ 0x40,0x0e,0x9c,0xc8,0x11,0x81,0x32,0x2e,0x21,0x15,0x84,0x84,0xc2,0x41,0x00,0x22,
+ 0x72,0x54,0x22,0x62,0x58,0x06,0x92,0x48,0x48,0x44,0x11,0x27,0x04,0x04,0xc0,0x11,
+ 0x92,0x82,0x45,0xa1,0xc6,0x8c,0xe3,0x32,0x66,0xc1,0x38,0x72,0x5a,0x86,0x01,0x0c, /* 480 */
+ 0xc9,0x90,0x84,0x34,0x08,0x58,0xa8,0x60,0x80,0xc0,0x70,0xd0,0x26,0x62,0x9b,0x30,
+ 0x2a,0x04,0x29,0x69,0x04,0x10,0x8d,0x0b,0xb9,0x04,0x50,0x46,0x28,0x50,0x48,0x24,
+ 0xd0,0x48,0x05,0xa2,0x48,0x02,0xc3,0x20,0x8c,0xa0,0x14,0x00,0x41,0x38,0x21,0x4b,
+ 0x24,0x01,0x04,0xb5,0x49,0x42,0x00,0x00,0x0c,0x24,0x28,0x12,0x40,0x84,0xa2,0x20,
+ 0x44,0x9b,0x06,0x90,0x63,0xc0,0x88,0x8c,0x14,0x21,0x49,0x12,0x10,0x54,0x16,0x24, /* 560 */
+ 0x20,0x87,0x44,0x50,0x10,0x85,0x0c,0xb5,0x64,0xdb,0x24,0x41,0xd0,0x42,0x29,0x9a,
+ 0x16,0x8a,0x21,0xb4,0x4c,0x13,0xb7,0x70,0x10,0xc0,0x85,0x19,0x02,0x69,0xcc,0x40,
+ 0x61,0x1c,0x48,0x46,0x98,0x06,0x25,0x60,0x14,0x46,0xe4,0x22,0x62,0x24,0x27,0x22,
+ 0x62,0x24,0x29,0x44,0xc6,0x2d,0x08,0x31,0x84,0x20,0x32,0x21,0x04,0xb4,0x61,0x0a,
+ 0x38,0x12,0xd9,0x28,0x44,0xa4,0x08,0x20,0xcc,0xa8,0x29,0x0b,0x21,0x31,0x0a,0x34, /* 640 */
+ 0x29,0x03,0x21,0x40,0xc1,0xa2,0x6c,0x8a,0x16,0x12,0x52,0xa6,0x64,0xa3,0xb2,0x51,
+ 0x04,0x29,0x51,0xc4,0x04,0x91,0x63,0xb0,0x2d,0x14,0x44,0x30,0x8c,0x40,0x66,0x0c,
+ 0x40,0x0c,0x01,0xa5,0x2c,0x09,0x94,0x2d,0x62,0xc6,0x11,0x03,0x98,0x50,0x19,0x10,
+ 0x4d,0x19,0xa8,0x28,0xd3,0x86,0x40,0xc0,0x30,0x65,0x54,0xa6,0x71,0xe0,0xb4,0x85,
+ 0x9b,0x86,0x10,0x04,0x36,0x69,0xd0,0x46,0x29,0x18,0xa3,0x71,0x40,0x22,0x49,0x00, /* 720 */
+ 0x43,0x85,0xcb,0x40,0x28,0x89,0x36,0x66,0x41,0x22,0x69,0xa4,0x28,0x51,0xd9,0x80,
+ 0x29,0x14,0x07,0x21,0xda,0x80,0x91,0x1b,0x26,0x50,0x5b,0xa0,0x60,0x99,0x42,0x71,
+ 0x50,0x88,0x49,0x10,0x23,0x09,0x5a,0x90,0x21,0x22,0x27,0x8e,0x43,0xb2,0x70,0x0c,
+ 0xc9,0x4c,0xa4,0x02,0x70,0x92,0x40,0x10,0x0a,0x39,0x70,0x02,0x36,0x0e,0x11,0x30,
+ 0x41,0xd8,0x40,0x2d,0x1b,0x24,0x6d,0xc3,0x92,0x61,0x4c,0x86,0x8d,0x21,0xb8,0x00, /* 800 */
+ 0xd3,0x24,0x22,0x12,0xc8,0x21,0x12,0x99,0x85,0x09,0x16,0x0c,0x5a,0xa2,0x24,0x09,
+ 0x34,0x42,0x10,0xa2,0x24,0x03,0x42,0x8c,0xc0,0xb2,0x8d,0x12,0xb6,0x69,0x63,0x34,
+ 0x0d,0xcc,0xb0,0x65,0xa1,0x12,0x11,0x4a,0x38,0x69,0xcc,0x14,0x81,0x58,0x44,0x09,
+ 0x54,0xa6,0x80,0x0c,0xa8,0x05,0xc4,0x38,0x8a,0x84,0x06,0x01,0x9b,0x32,0x2d,0x83,
+ 0x12,0x90,0x09,0x02,0x60,0xa1,0x28,0x88,0x58,0x10,0x41,0x24,0x40,0x02,0x19,0x34, /* 880 */
+ 0x48,0x18,0xa0,0x4d,0x00,0x10,0x62,0x13,0x22,0x50,0xe3,0x38,0x21,0x9a,0x96,0x21,
+ 0x53,0x08,0x80,0x51,0x26,0x01,0x99,0xc4,0x28,0x1b,0xb9,0x71,0x04,0x97,0x84,0x04,
+ 0x05,0x2c,0xa0,0xc2,0x10,0xd3,0x42,0x81,0x81,0x42,0x4d,0x61,0x84,0x6c,0x5a,0x30,
+ 0x49,0x1b,0xc2,0x24,0xc0,0x20,0x28,0xca,0x92,0x2d,0x4a,0x90,0x10,0x04,0x27,0x86,
+ 0x4c,0x96,0x21,0x09,0x19,0x45,0x14,0x82,0x2c,0x11,0xa6,0x91,0x13,0xb8,0x04,0x03, /* 960 */
+ 0x18,0x70,0x01,0xa2,0x51,0x52,0x14,0x49,0x5a,0x02,0x30,0xcb,0x30,0x2c,0x94,0x10,
+ 0x2c,0x00,0x49,0x86,0x09,0xa0,0x25,0xc2,0x12,0x4c,0x1b,0x02,0x69,0x40,0xa4,0x44,
+ 0x41,0x16,0x62,0x02,0x25,0x28,0xdc,0xa2,0x2d,0x00,0x16,0x42,0x58,0x30,0x66,0x5b,
+ 0x86,0x24,0xd4,0x24,0x48,0xdb,0x26,0x0c,0x4c,0x08,0x85,0x01,0x90,0x49,0x21,0x24,
+ 0x41,0x54,0x06,0x84,0x02,0x43,0x4a,0x24,0x42,0x05,0x40,0x14,0x48,0xca,0x44,0x84, /* 1040 */
+ 0xc0,0x42,0x0c,0x98,0x26,0x04,0x9c,0xa2,0x05,0xd1,0xc2,0x51,0x13,0x01,0x86,0x1c,
+ 0xa1,0x50,0xd9,0x02,0x50,0x0c,0x39,0x86,0x8c,0x00,0x31,0x22,0x05,0x48,0xd3,0x10,
+ 0x81,0x12,0x48,0x05,0xd1,0x08,0x69,0x62,0x38,0x2c,0x0a,0x23,0x70,0x9b,0x44,0x72,
+ 0xe3,0x48,0x6e,0x22,0x96,0x70,0x14,0x33,0x6c,0xd8,0x90,0x29,0x03,0x00,0x49,0x63,
+ 0x20,0x8a,0x03,0x91,0x25,0x08,0x89,0x21,0xc0,0x82,0x0c,0x99,0x40,0x32,0xc2,0x34, /* 1120 */
+ 0x4e,0x4b,0x98,0x69,0x09,0x80,0x44,0xe4,0x04,0x69,0x94,0x20,0x09,0x99,0x24,0x6d,
+ 0x09,0xa9,0x60,0x01,0x29,0x2d,0xc8,0x42,0x28,0x8a,0x34,0x02,0xe4,0x08,0x70,0x0c,
+ 0x23,0x6e,0x0a,0x05,0x49,0x64,0x44,0x2a,0x82,0xc8,0x00,0x02,0x48,0x31,0xcb,0x90,
+ 0x50,0x1c,0x05,0x68,0x12,0x12,0x2c,0xd0,0x80,0x0c,0x59,0x48,0x61,0xcb,0xa6,0x09,
+ 0x9c,0xc0,0x81,0x42,0xb8,0x00,0x24,0x41,0x8a,0x94,0x20,0x40,0x42,0x14,0x4d,0x19, /* 1200 */
+ 0x46,0x62,0x18,0x05,0x09,0x24,0x33,0x6a,0xd4,0x00,0x61,0x12,0x48,0x32,0x8a,0x04,
+ 0x72,0x93,0xb4,0x69,0x62,0xc2,0x71,0x41,0xa6,0x89,0x44,0x96,0x31,0x62,0x30,0x46,
+ 0x83,0x42,0x6c,0x00,0x19,0x22,0x09,0x46,0x4d,0x8b,0x06,0x49,0xe1,0xb0,0x70,0x42,
+ 0x44,0x31,0xc1,0x80,0x65,0x9c,0x00,0x24,0x11,0xa8,0x31,0x13,0x21,0x2c,0x4b,0x46,
+ 0x28,0x1b,0x18,0x0d,0x88,0x42,0x70,0xd1,0xb0,0x0d,0x90,0xc8,0x45,0xda,0xc2,0x48, /* 1280 */
+ 0x59,0x14,0x26,0x22,0x44,0x00,0xc2,0x94,0x41,0x50,0xc8,0x04,0x18,0x00,0x00,0xcb,
+ 0xa6,0x24,0x19,0x02,0x10,0x10,0x89,0x0c,0x18,0x22,0x21,0x62,0xa8,0x81,0xc8,0x92,
+ 0x48,0xd3,0x94,0x20,0x82,0x06,0x72,0x09,0xa8,0x90,0x0c,0x49,0x8a,0x41,0x86,0x28,
+ 0x19,0xc5,0x80,0x9a,0x18,0x4d,0x14,0x10,0x2e,0x22,0x12,0x52,0x00,0x08,0x12,0x0c,
+ 0x33,0x45,0x63,0xc6,0x30,0x10,0x93,0x4c,0x60,0xc6,0x31,0xdc,0x40,0x0e,0x98,0x82, /* 1360 */
+ 0x50,0x60,0x02,0x2a,0xd2,0x22,0x40,0xe4,0x06,0x2d,0xdb,0x32,0x0e,0xca,0x32,0x4e,
+ 0xd4,0x18,0x24,0x08,0xc3,0x28,0x4a,0xc2,0x68,0xe2,0x80,0x40,0xa1,0xc8,0x64,0x51,
+ 0xc2,0x65,0xcb,0x16,0x60,0x23,0x09,0x4c,0x82,0x04,0x68,0xd9,0x22,0x2e,0x1c,0x49,
+ 0x92,0x42,0x24,0x21,0x00,0x37,0x0e,0xc8,0x12,0x72,0x64,0x08,0x25,0x0a,0x20,0x2a,
+ 0x58,0x24,0x04,0x59,0x16,0x4c,0x08,0x17,0x30,0x00,0x46,0x05,0x12,0x90,0x40,0x03, /* 1440 */
+ 0x07,0x21,0x52,0xc0,0x64,0x1c,0x83,0x6d,0x9c,0x32,0x2e,0x11,0x15,0x8a,0x10,0x35,
+ 0x88,0x5a,0xa0,0x8d,0xd9,0x80,0x48,0x03,0xb6,0x4c,0x01,0x10,0x65,0x10,0x86,0x40,
+ 0x11,0x01,0x42,0x0a,0xc1,0x64,0xdb,0x22,0x4d,0x64,0xb2,0x51,0x02,0x36,0x0d,0x93,
+ 0x46,0x31,0x14,0xb6,0x68,0x63,0x84,0x29,0xc8,0x10,0x24,0x94,0x30,0x08,0x19,0x37,
+ 0x02,0x14,0x82,0x45,0x88,0x28,0x40,0x54,0xa8,0x29,0x90,0x14,0x12,0x61,0x36,0x12, /* 1520 */
+ 0x0b,0x09,0x8c,0xa4,0x98,0x28,0xc2,0x92,0x45,0x4c,0x00,0x60,0x63,0xc4,0x81,0xc0,
+ 0x36,0x25,0xca,0x88,0x2d,0x24,0x40,0x30,0xd3,0xa8,0x2d,0xc9,0xc8,0x25,0xd2,0x84,
+ 0x48,0x00,0x32,0x92,0x50,0xa2,0x71,0xd3,0x44,0x0d,0x22,0x34,0x60,0x12,0x13,0x12,
+ 0x86,0x8c,0x5f,0x86,0x20,0x79,0x4a,0x05,0x0e,0x20,0xd0,0xe1,0x01,0x17,0x86,0x24,
+ 0x0e,0xa6,0x64,0xf2,0xf6,0x9b,0xb1,0xb7,0xe3,0x0e,0xc6,0x6b,0x1a,0x4a,0x0b,0xe5, /* 1600 */
+ 0x9b,0x79,0xf2,0x19,0x8a,0xd9,0x80,0x44,0x83,0xe4,0x75,0xe5,0x3b,0x3c,0x49,0xcb,
+ 0x0c,0xe5,0xef,0x92,0x91,0x2a,0xf4,0x40,0xf2,0x3b,0x99,0x58,0x13,0xd1,0x1b,0x59,
+ 0xf7,0x98,0xe9,0x3c,0x9d,0x13,0x53,0x98,0x17,0xc7,0xac,0x68,0xca,0xd1,0xaa,0x1a,
+ 0xc2,0x76,0x56,0xbd,0x0c,0x47,0x97,0xe9,0xc8,0xec,0x17,0x78,0x4c,0x1a,0x32,0x7a,
+ 0x9d,0xfe,0xaf,0x4d,0x61,0x91,0xee,0xcd,0xaf,0xe0,0x49,0xb7,0x33,0xfe,0x39,0xd5, /* 1680 */
+ 0xeb,0x40,0x00,0x93,0x6f,0xee,0xfc,0xf8,0x29,0x28,0xe9,0xf9,0x4c,0xfd,0x5c,0xf4,
+ 0xc1,0xe3,0xde,0xb1,0x43,0x3a,0x47,0xf6,0xd3,0x28,0xb5,0xe8,0x3d,0xd1,0x56,0xd0,
+ 0x18,0x2d,0xc6,0x92,0x34,0x75,0x91,0xaa,0x6f,0x73,0x2c,0xfb,0xe9,0x82,0x93,0x5f,
+ 0xd1,0x84,0x6c,0xac,0xf4,0xcb,0x85,0x15,0xc5,0x5a,0xb8,0x5e,0xe5,0xad,0x44,0xcb,
+ 0x09,0xd3,0x26,0x9e,0x2e,0x6d,0x11,0x78,0x09,0x61,0xfd,0x13,0x1d,0x5e,0x6f,0xbf, /* 1760 */
+ 0x89,0x84,0x9f,0x47,0xf2,0xb7,0x1d,0x82,0x83,0xff,0x25,0x38,0x5e,0x52,0xb0,0x7d,
+ 0xbb,0x26,0x6c,0x67,0x4c,0xee,0x3d,0x0b,0x5d,0xf5,0xa5,0x6d,0x8b,0xdc,0xdc,0xfa,
+ 0xae,0xe6,0xa2,0x48,0xe7,0x1d,0xb1,0x34,0x5a,0xfc,0x59,0x7c,0xa8,0x30,0xa1,0xa3,
+ 0x5b,0x43,0x96,0xef,0x4c,0x1a,0xdf,0x9e,0xd0,0x1b,0xce,0x9b,0x6e,0xb6,0x37,0xfa,
+ 0x24,0xaa,0x16,0x0b,0x90,0x76,0xba,0xe3,0x05,0x59,0xf8,0xb2,0x9d,0xed,0xb3,0xd2, /* 1840 */
+ 0x5b,0x79,0x06,0x4a,0xb0,0xcf,0x8b,0x8d,0x70,0xad,0xdd,0xeb,0x8b,0x17,0x42,0x48,
+ 0xd5,0xae,0xa4,0xd1,0x8d,0xe4,0x3b,0x89,0x38,0xcd,0xd2,0xac,0xba,0x54,0x77,0xbd,
+ 0x4a,0xac,0xc3,0xce,0x59,0x5e,0x5d,0x26,0x9f,0xe6,0x75,0x21,0x0d,0x23,0x15,0x2b,
+ 0x04,0x71,0x0f,0x36,0x84,0x28,0x79,0x4a,0x75,0xf4,0x9b,0x68,0x3e,0xd2,0x0d,0xd6,
+ 0x47,0x51,0x57,0x77,0x95,0x5a,0x8c,0xb3,0x8a,0x36,0xaf,0xcd,0x2c,0xe0,0xac,0xec, /* 1920 */
+ 0x4f,0x0d,0xfe,0x80,0x77,0x02,0xd1,0xeb,0x3b,0xde,0x72,0xe9,0xe0,0x85,0xaa,0x4e,
+ 0x09,0xeb,0x1b,0x09,0x47,0x41,0x38,0x52,0xec,0x3c,0x0a,0xc5,0x2f,0x06,0xcb,0x95,
+ 0x9c,0x85,0x39,0x4e,0xb3,0x74,0x81,0x19,0xed,0xbe,0x6c,0x80,0xd2,0xd8,0xf7,0x92,
+ 0xce,0x0d,0x91,0x5e,0x4f,0x4b,0x15,0x1e,0xfb,0x13,0x5e,0x7f,0x4d,0xc9,0x7d,0x85,
+ 0x81,0x41,0xc5,0x7f,0x70,0x41,0x7b,0x43,0xa6,0xa1,0x26,0x95,0x69,0x78,0xd7,0x8e, /* 2000 */
+ 0xfb,0x9f,0x03,0x72,0x43,0xb4,0xcb,0x41,0xdf,0x96,0x8b,0x7e,0xe5,0xb5,0x20,0x87,
+ 0xf0,0x5a,0xa9,0xfe,0x48,0x7b,0xd1,0x6c,0x03,0x47,0xcf,0x13,0x35,0x76,0x0b,0xd2,
+ 0x39,0x8a,0xd5,0x4d,0xda,0x00,0xa5,0xaa,0xc4,0x46,0xd8,0x0b,0x1c,0x79,0x98,0xc6,
+ 0x02,0x19,0x2a,0xda,0xfc,0xb8,0x09,0xd1,0x4e,0xe3,0x28,0x64,0x1b,0xa3,0xaa,0x00,
+ 0xf8,0xd2,0x9c,0x3a,0x84,0x8a,0xcb,0xdc,0x19,0x46,0xbc,0x0d,0x35,0xe0,0xbe,0x0f, /* 2080 */
+ 0x8f,0x7e,0x3d,0xa3,0xf6,0x8d,0x9f,0xa9,0x76,0x8f,0x5c,0xf2,0x75,0x53,0x4a,0x0e,
+ 0xca,0x9e,0x60,0xfc,0xea,0x38,0xf1,0xe0,0x42,0xc3,0x16,0x14,0x3a,0x76,0x7b,0x33,
+ 0xac,0xca,0xd8,0xc8,0xd6,0x6c,0x70,0xc7,0x5f,0xd1,0xf0,0xb2,0x58,0x6b,0x65,0x3a,
+ 0xd4,0xaf,0x54,0xe5,0x6e,0xf0,0x69,0x33,0xea,0xd3,0x1d,0xe3,0x65,0xd1,0x10,0xb9,
+ 0xc4,0xa2,0xa9,0x8b,0xcb,0xa1,0x65,0xca,0xfe,0x38,0x6f,0x88,0x7c,0x72,0x15,0x6e, /* 2160 */
+ 0xb1,0x4f,0xf0,0xda,0xd6,0x65,0x61,0x6c,0xe3,0xce,0x65,0xc1,0x90,0x4f,0x2c,0x17,
+ 0x47,0xb2,0xec,0x2b,0x5c,0x9d,0x67,0x76,0xbc,0xd7,0x9e,0x5a,0xc6,0x4b,0x79,0x33,
+ 0xbd,0xde,0xde,0xdd,0xbb,0xc7,0x25,0xbf,0xdb,0xcc,0xde,0x2f,0xb3,0x75,0xae,0x2b,
+ 0xe3,0x53,0x7b,0xdf,0x89,0xbf,0x4c,0x25,0xf8,0x3a,0x49,0xd6,0xa6,0xa8,0xd0,0x76,
+ 0x1c,0xf3,0x9d,0x62,0x0c,0x53,0xed,0x83,0x7d,0x19,0x82,0x55,0xcf,0x5b,0x91,0x0a, /* 2240 */
+ 0x6d,0xb5,0x78,0x77,0xdf,0x92,0xd8,0xbb,0x6e,0x9c,0x52,0x6b,0x8c,0x4e,0xc9,0x31,
+ 0x00,0xde,0xe0,0x50,0x0a,0x21,0x0c,0x98,0x45,0x83,0xe1,0x53,0x81,0x60,0xed,0xac,
+ 0x2c,0x6f,0x86,0x6e,0x7f,0x5d,0x99,0xd7,0xb1,0xb8,0x15,0x82,0xf5,0xd0,0xeb,0xbf,
+ 0x27,0x86,0xe3,0xf5,0x56,0x01,0x3b,0xa9,0xb6,0xf6,0x56,0xeb,0x79,0x88,0x38,0xea,
+ 0x05,0x79,0x20,0x1a,0x95,0xd5,0x6b,0xbc,0x3b,0xcd,0xb9,0x51,0x1a,0xfb,0xd4,0xd8, /* 2320 */
+ 0x12,0x88,0x89,0x6f,0x87,0x10,0x8c,0x07,0x7f,0x1a,0x81,0xa3,0xbd,0x29,0x7b,0xb1,
+ 0x24,0xa8,0x00,0x86,0x89,0x02,0x42,0x99,0x5e,0x03,0xcf,0x42,0xa0,0xc2,0x1e,0x27,
+ 0x2a,0x9a,0xfa,0x1d,0xc1,0x03,0x46,0x3d,0x2a,0xb4,0x94,0xf7,0xd0,0x17,0x68,0x6d,
+ 0x31,0x89,0x4d,0xd2,0xf6,0xeb,0xb0,0xc3,0xcb,0x62,0x23,0xec,0x79,0xc6,0x5d,0x45,
+ 0xc1,0xb0,0xd4,0xef,0x19,0x61,0xf1,0x6d,0x65,0x3f,0xcf,0x25,0x97,0x7b,0x65,0x1e, /* 2400 */
+ 0xc5,0x1a,0x13,0xae,0x8d,0x4a,0x34,0x72,0xee,0x71,0x96,0x9a,0x7a,0x93,0x6f,0x5d,
+ 0xbb,0xb9,0x39,0x6a,0x46,0xd9,0x76,0x42,0x35,0x8c,0xaf,0x48,0x94,0xc9,0xa6,0xdf,
+ 0x84,0xa5,0x9c,0x59,0x62,0xa6,0x99,0x0a,0x76,0xf0,0x61,0x48,0x90,0x16,0x9f,0x00,
+ 0x18,0x70,0xd4,0x9c,0xf2,0xe7,0x50,0x08,0xcc,0x4a,0x5d,0x85,0xe7,0x2d,0xe2,0xd6,
+ 0xcf,0x3f,0xa7,0x18,0x52,0x25,0x35,0x22,0xfe,0x8b,0x0e,0x42,0x3c,0xb4,0x17,0xa3, /* 2480 */
+ 0x8e,0xb7,0x8c,0x87,0x63,0xc3,0x72,0x0c,0x04,0xe6,0x7f,0xf8,0x89,0x79,0xeb,0xa0,
+ 0x9e,0x34,0x53,0x8b,0xb5,0x23,0xb9,0x9b,0x8e,0x34,0x16,0x74,0x12,0xf7,0x7a,0xea,
+ 0x89,0x4d,0x83,0xac,0xf9,0x46,0xfc,0x05,0x4d,0x0a,0xf4,0x72,0x95,0xe5,0x1e,0xd8,
+ 0x3f,0x74,0x86,0x94,0x0a,0x4d,0x41,0xc0,0x4a,0xd7,0xeb,0xee,0x61,0x0b,0xf1,0xd0,
+ 0x3f,0xa5,0x40,0x71,0xd5,0x1a,0x15,0x09,0xe4,0xf4,0x91,0x63,0xa2,0x50,0x81,0xbe, /* 2560 */
+ 0x87,0x90,0xd0,0x87,0xf5,0xf4,0xf0,0x5c,0x88,0x55,0x0f,0xca,0x9b,0xf9,0x9c,0x9b,
+ 0xe5,0x95,0x3d,0x51,0xdd,0x08,0x45,0xc9,0x3e,0x41,0xee,0xef,0x62,0xe0,0x79,0x4b,
+ 0x29,0x27,0xc4,0xf5,0xed,0x9b,0xd3,0xe3,0x4e,0xa9,0x20,0x0a,0x79,0xdd,0xeb,0x4b,
+ 0x2d,0x8f,0x30,0x5f,0xe0,0x5f,0x82,0x7c,0x7e,0x2e,0xd1,0x86,0x34,0x1c,0xb5,0xd1,
+ 0x15,0x2f,0xc8,0x01,0x04,0xe0,0xe1,0x36,0x83,0xd9,0x41,0x29,0x4c,0x77,0x84,0x17, /* 2640 */
+ 0x16,0x4b,0x68,0x4a,0x97,0x6e,0x56,0xe7,0x8d,0xa4,0xd1,0x7c,0x3c,0x73,0x22,0x93,
+ 0x14,0x87,0x0b,0x85,0xc4,0x55,0xc2,0x3b,0x83,0x0b,0x9a,0x28,0xa3,0xd8,0xc0,0xb5,
+ 0x66,0x42,0x6d,0xc1,0x69,0xf3,0x26,0xab,0xce,0x2e,0xff,0xf3,0x9e,0x9b,0x19,0x9a,
+ 0xe5,0xc1,0x29,0x2b,0x6f,0x2e,0xf3,0x7a,0xf1,0xde,0xa9,0x27,0x2c,0x8d,0x54,0x23,
+ 0xdf,0x8a,0x56,0x32,0xf9,0x91,0xe1,0x4d,0xca,0x25,0x14,0x78,0x8b,0x62,0xbe,0x16, /* 2720 */
+ 0x48,0x28,0xe9,0xac,0xb8,0x93,0xdd,0xa6,0x02,0xa5,0xe2,0xfb,0x9e,0xfc,0xbe,0xfd,
+ 0x95,0xab,0xfb,0x82,0xd2,0xb0,0x2d,0x49,0xcc,0x53,0x08,0x4a,0x49,0xab,0x1b,0xec,
+ 0x23,0xe5,0xb4,0xc8,0xe7,0x14,0xcb,0x03,0x40,0x5f,0x1b,0xcf,0x7e,0x11,0xbb,0x59,
+ 0x72,0x9d,0xdc,0x0b,0x7b,0xef,0xb2,0x91,0x27,0x6d,0xce,0xda,0xca,0xad,0x39,0xa2,
+ 0xf0,0x1c,0x7d,0xc9,0x8b,0x9e,0x06,0x5e,0xaf,0xed,0x1c,0xc8,0xce,0x3e,0x84,0x80, /* 2800 */
+ 0x80,0xa2,0xfc,0x5b,0x98,0xc9,0xf6,0xbf,0x50,0x40,0x27,0x33,0x42,0xf0,0x31,0x2f,
+ 0x8b,0x98,0x44,0x59,0x4a,0x50,0x3d,0xd3,0xe6,0xaf,0x1c,0x9e,0x35,0xc1,0x03,0x2a,
+ 0x4a,0x8a,0x5e,0x7b,0xf3,0x3a,0x82,0xf3,0x5e,0x16,0xed,0xf8,0xc6,0x0c,0x90,0x02,
+ 0x1d,0x8c,0x0b,0xa4,0xc3,0x86,0x24,0x5d,0xfe,0xf0,0x94,0x48,0x43,0x1d,0x8c,0x00,
+ 0xd1,0xe2,0x6e,0xe4,0xd8,0xc7,0x7d,0xaa,0x1a,0x70,0x5e,0xd4,0x79,0x2a,0xcb,0x4e, /* 2880 */
+ 0xa2,0x7c,0x15,0x66,0xfb,0x56,0x68,0x3c,0x43,0xbf,0x67,0x84,0x2e,0x67,0x53,0x4c,
+ 0xb3,0xf9,0x67,0x7c,0x8a,0xb9,0xd0,0xee,0xe7,0x82,0x7c,0xde,0xfc,0x22,0x3a,0xc9,
+ 0x48,0xb8,0x80,0xb5,0xf1,0xce,0x95,0x37,0x27,0x29,0x32,0x00,0x2c,0x1a,0x4d,0xd2,
+ 0x18,0xf5,0x27,0x16,0x6e,0xbf,0xb2,0xb2,0xfa,0x2b,0xf3,0x72,0x46,0xec,0xdf,0xdf,
+ 0xa7,0x2b,0x6d,0xa1,0x1c,0x30,0xd1,0xc7,0xd2,0x48,0xad,0x64,0x81,0x8f,0x69,0x1d, /* 2960 */
+ 0x59,0xb7,0x55,0xda,0xf7,0x1b,0xed,0x9a,0xb5,0xfb,0x52,0xe0,0x36,0x22,0xa9,0x00,
+ 0xd6,0x6b,0x4c,0x63,0x84,0x16,0x9b,0xdf,0x9e,0xb6,0x1c,0x02,0xdf,0x45,0xfb,0x76,
+ 0xb1,0xa2,0x6f,0x34,0xe9,0x38,0xb1,0x90,0x86,0x17,0x45,0xc0,0x21,0xfa,0x87,0x62,
+ 0x00,0xc7,0xfc,0x8e,0x22,0x2d,0xdb,0xfa,0xd8,0xbe,0x78,0x1b,0x18,0x54,0x24,0xaa,
+ 0xaf,0xc6,0x58,0x62,0xdb,0x13,0x2b,0xec,0x6d,0x18,0x83,0x7a,0x1f,0x58,0xa8,0x76, /* 3040 */
+ 0xc9,0x9e,0x63,0xf5,0x14,0x20,0xb8,0x3f,0x45,0x96,0x75,0x61,0x2f,0x7a,0xcf,0x80,
+ 0xb4,0xeb,0x1d,0xd0,0x72,0x1c,0xaa,0x1b,0x49,0x70,0xda,0x60,0x86,0x79,0xc6,0x38,
+ 0x3e,0x81,0x7f,0xe1,0x6b,0x66,0xb1,0x91,0x81,0xed,0xfc,0x39,0x27,0x0c,0x7e,0x91,
+ 0x7b,0x1f,0x10,0xeb,0x7a,0x01,0x19,0x97,0xe9,0x67,0x85,0x3b,0x78,0xe0,0x0c,0xfd,
+ 0x58,0xd2,0x24,0xd9,0x33,0xcc,0x5a,0x99,0x55,0x32,0xdc,0xd4,0xe5,0x32,0xe4,0x03, /* 3120 */
+ 0x05,0x15,0xf4,0xa0,0x5b,0x33,0x1d,0x57,0x5d,0xda,0xc2,0x9b,0xab,0x06,0x9f,0x09,
+ 0xaf,0x0d,0x17,0x33,0x73,0xdb,0x1e,0xc2,0xb6,0x36,0x6b,0xb3,0x71,0x00,0x8a,0x23,
+ 0x86,0xfd,0x88,0xbe,0x77,0xf5,0xed,0x5e,0x19,0x8c,0xbe,0x88,0xdf,0x24,0xbc,0x6e,
+ 0x39,0x3f,0xeb,0xc1,0x0c,0x47,0x0a,0x72,0xd4,0x7c,0x0f,0x83,0x46,0x53,0xc9,0xae,
+ 0x80,0x0e,0x89,0x3c,0x6b,0xa6,0x8e,0xa2,0x8a,0x83,0x8f,0xcb,0xb6,0x9c,0x3e,0x96, /* 3200 */
+ 0x4a,0x5f,0xaf,0xc2,0x06,0x7d,0xd4,0x06,0xb2,0x57,0xc9,0x8d,0xd3,0x97,0x9e,0xc7,
+ 0xc7,0xec,0xbe,0x96,0xa3,0x3d,0x85,0x51,0x5d,0xa2,0xcb,0x6a,0xa5,0xe1,0xff,0xf2,
+ 0x04,0xaf,0x62,0xdd,0x41,0x19,0xa0,0xe4,0x8c,0x04,0xa3,0xf2,0xb3,0x86,0x60,0xf5,
+ 0x29,0x64,0xd8,0xd4,0xae,0xe1,0x46,0xa9,0xc5,0x3c,0x31,0x90,0x6d,0xad,0x0f,0xd9,
+ 0x0b,0x5d,0x83,0xb3,0xe3,0x1b,0x69,0x0a,0x4c,0x49,0x35,0x24,0x99,0x81,0xbe,0x1f, /* 3280 */
+ 0x1a,0x85,0xec,0x6e,0x0f,0xee,0x4c,0x88,0xf2,0xd8,0x9e,0x29,0x69,0xab,0x8c,0xbb,
+ 0xeb,0x50,0x19,0x16,0x55,0x8d,0x29,0xea,0x7c,0x3e,0xcf,0x1c,0x9e,0xf1,0xa0,0x43,
+ 0x50,0x63,0x3b,0x4c,0xda,0x73,0x7d,0xfb,0x15,0x1c,0xb5,0xe7,0x36,0x11,0x73,0xf3,
+ 0xae,0xdd,0xdf,0x52,0x7d,0x73,0xf2,0xf9,0xd5,0xb6,0x21,0x3a,0xa6,0x8f,0x88,0x3e,
+ 0x9a,0x26,0x33,0x78,0x5e,0xc6,0xbe,0x64,0x2a,0x9f,0xd0,0xf2,0x1a,0x42,0xf6,0xb9, /* 3360 */
+ 0xda,0xab,0xdc,0xd1,0xe6,0xad,0xbe,0xf6,0x48,0x41,0xb5,0x96,0x86,0xea,0xe3,0xec,
+ 0x88,0xee,0xf0,0xa9,0xcb,0xc1,0x2b,0xc0,0x12,0x62,0x2d,0xf2,0xdd,0x93,0xa8,0x62,
+ 0x29,0x04,0x4a,0xf2,0xf2,0x60,0xd2,0x18,0x3f,0x51,0xe8,0x33,0xee,0x92,0xd9,0x8f,
+ 0x02,0x51,0xe3,0xf8,0x5f,0xab,0x74,0xce,0x36,0x7b,0x8b,0x7a,0xa6,0x3d,0x3c,0xf8,
+ 0xc8,0xbf,0x4d,0x78,0x35,0x8b,0xae,0x0a,0x02,0x41,0xe2,0x10,0xac,0x69,0x35,0x30, /* 3440 */
+ 0x87,0xcc,0x73,0x31,0x35,0x7e,0xb4,0x45,0x0f,0x95,0x09,0xcf,0xe5,0x95,0xf5,0x40,
+ 0x32,0xee,0x05,0x77,0x54,0xa8,0xed,0xd7,0x46,0xcb,0x92,0x82,0xe7,0x68,0xdc,0x6b,
+ 0x83,0x0c,0x5b,0x4a,0x21,0x93,0x43,0xad,0x12,0x4e,0xdb,0x3b,0xbc,0x42,0x50,0x55,
+ 0x66,0xa7,0x03,0x8c,0x95,0x9b,0xc3,0x55,0x85,0xb6,0x05,0x5f,0x19,0x68,0xda,0x24,
+ 0x3f,0x77,0x8f,0x4e,0x46,0xdb,0x46,0x2a,0xbe,0xb9,0x3b,0x81,0x24,0x3c,0x31,0xeb, /* 3520 */
+ 0x59,0x62,0x2e,0xdf,0x81,0xf0,0x6c,0xcc,0x61,0xd2,0xa6,0xea,0x73,0xe1,0x09,0xc3,
+ 0x87,0x91,0x5f,0x27,0x7b,0xcf,0x1f,0xc1,0x11,0x05,0xbb,0xa7,0x02,0x93,0xc0,0xfa,
+ 0xb5,0xc0,0x65,0xf2,0x3b,0xaa,0x19,0x29,0x0a,0x30,0x2f,0x08,0x09,0x11,0x07,0xa4,
+ 0xb1,0xd5,0x68,0x85,0x26,0x22,0x09,0x83,0x83,0x42,0x77,0x60,0xef,0x8f,0x29,0x28,
+ 0x62,0x5b,0xdd,0xa5,0xf5,0x14,0xc5,0xad,0xe9,0x59,0x89,0x1e,0xf2,0x95,0x9f,0x24, /* 3600 */
+ 0x8a,0x35,0x32,0xbf,0x9d,0x30,0xe7,0x14,0x05,0x9e,0xbd,0xec,0x95,0x87,0x08,0xf8,
+ 0xa8,0x3c,0x26,0x8b,0xef,0x26,0x82,0xd6,0x03,0xca,0x88,0x63,0x47,0xe1,0x98,0xfd,
+ 0x68,0x23,0x39,0x99,0xc7,0x7d,0x30,0xd7,0x45,0x5d,0xe6,0xbc,0xfd,0x01,0x44,0x27,
+ 0x70,0x62,0xb3,0x04,0xbe,0xf0,0xe3,0x4c,0x5a,0x9d,0x8d,0x78,0x0d,0x29,0xec,0x23,
+ 0x21,0xe0,0x73,0x40,0x77,0x1c,0x46,0x36,0x04,0x83,0xad,0xca,0xf1,0x2d,0x5b,0x79, /* 3680 */
+ 0xfd,0xbf,0xe2,0x85,0x6a,0xce,0x88,0x59,0xf6,0xb1,0x24,0x14,0xb3,0xf7,0xe8,0xbb,
+ 0x58,0x13,0x49,0x89,0x60,0xf3,0x4f,0xdc,0x64,0xfc,0x84,0x85,0x79,0xca,0xf9,0xdc,
+ 0xcf,0x19,0xb4,0xfb,0x82,0x5e,0xd5,0x71,0x6d,0xcc,0xcd,0x68,0x72,0xcb,0xde,0x38,
+ 0x31,0xd6,0x73,0x84,0x94,0x2c,0xd8,0xa9,0xec,0x4b,0xbf,0xef,0x57,0x06,0xb8,0xf9,
+ 0xf0,0x5f,0xe1,0xe8,0xfe,0x69,0xd3,0xea,0x6a,0x86,0x21,0xc2,0x21,0x44,0x17,0x7b, /* 3760 */
+ 0x1c,0x12,0x59,0xe1,0xa7,0x9d,0xfd,0xf8,0x97,0x28,0x88,0x7b,0xef,0x1a,0x70,0x48,
+ 0x25,0x56,0x83,0x1b,0x67,0x24,0x40,0xe1,0x3f,0xe3,0xe3,0xfc,0x82,0x04,0xa0,0x2e,
+ 0xa1,0xef,0xf1,0x9d,0x95,0x25,0x38,0x87,0x28,0x5b,0xfb,0xea,0x16,0xa0,0xf2,0x19,
+ 0xef,0xbc,0xec,0x30,0xa8,0xae,0x86,0x58,0x9a,0x57,0x03,0x10,0x3a,0x8a,0x39,0x3f,
+ 0xa6,0xf6,0xb6,0x57,0x70,0x4a,0xc6,0x77,0xc1,0x4c,0xd1,0x0d,0x3d,0x62,0xd1,0x3f, /* 3840 */
+ 0xbd,0x37,0x8c,0x2d,0xda,0x32,0x5b,0x61,0xb8,0x59,0x52,0xd5,0x12,0x93,0x87,0x1e,
+ 0x1f,0xcd,0xc9,0x48,0xc7,0x7b,0xea,0xe9,0xa6,0xf0,0xe8,0x7c,0xe1,0xa8,0x05,0x1c,
+ 0x8f,0x80,0x87,0x68,0x5c,0x12,0x62,0x4b,0xdf,0x58,0x38,0x0e,0xd6,0x6f,0x55,0xb4,
+ 0x3d,0xdd,0x6d,0x36,0x21,0x73,0xa5,0xbd,0x38,0x98,0x59,0xc1,0x7d,0x95,0xec,0xe3,
+ 0xab,0x73,0x26,0x39,0xff,0xe4,0x51,0xcd,0x10,0x3e,0xe4,0x85,0x4d,0xb2,0xf3,0x96, /* 3920 */
+ 0x14,0xf6,0x58,0xba,0xa3,0x84,0xbc,0x99,0x48,0xd0,0x71,0x4e,0xb4,0x8a,0x88,0x71,
+ 0x43,0xe7,0xa1,0xfa,0x4b,0x69,0x0c,0x22,0xb4,0x92,0xa7,0x0c,0x61,0x2b,0x59,0xff,
+ 0xd2,0xd6,0xb3,0xb5,0xe9,0x9c,0x20,0x03,0xe2,0xc3,0x59,0xb1,0xe6,0x2d,0xcb,0x62,
+ 0x0c,0x7a,0x24,0x6a,0x7b,0x9b,0x32,0x46,0x13,0x15,0x56,0xf2,0xf3,0xd5,0x13,0xa2,
+ 0x3c,0x6a,0x9f,0xd2,0x28,0x0e,0xd6,0x86,0xd7,0x67,0xcc,0xd0,0x17,0x54,0xeb,0x4c, /* 4000 */
+ 0x99,0x69,0x2f,0x2b,0x38,0x0c,0x36,0x08,0x13,0x44,0xc1,0xd3,0x5e,0xe1,0x94,0x97,
+ 0x36,0xb6,0x97,0x6f,0x48,0x52,0xcf,0xbe,0x64,0xfa,0xbc,0xf1,0x1b,0x9a,0xfb,0x82,
+ 0x85,0x76,0xb4,0xf9,0x78,0x7a,0xa7,0xd0,0x3e,0x84,0x59,0x8a,0x71,0x43,0xef,0x73,
+ 0x11,0xfa,0xf2,0x97,0x0e,0x23,0xed,0x4c,0x17,0x3f,0x98,0x5d,0x64,0x50,0x16,0x5a,
+ 0xe3,0xe2,0x41,0xa1,0x82,0x34,0xe7,0x4f,0xf3,0xdd,0xb9,0x21,0xa5,0x30,0x0b,0x1c, /* 4080 */
+ 0x4f,0xb6,0xe4,0x32,0xe6,0x98,0xf5,0x3f,0x66,0xe3,0x8c,0x07,0xbc,0xd6,0xe7,0x76,
+ 0x05,0xdf,0x46,0x24,0xd5,0x79,0x07,0x62,0x92,0xde,0x1c,0xe6,0xfc,0x6f,0x00,0x81,
+ 0xa3,0x8b,0xd9,0x2d,0x39,0xb2,0x4b,0x73,0xba,0xc1,0xc5,0x2b,0xd6,0x8e,0x91,0x81,
+ 0xd3,0xdc,0xd0,0xac,0x75,0x34,0xdb,0x48,0x90,0x1e,0x59,0x84,0xf9,0x90,0x25,0x57,
+ 0xbf,0xa2,0x31,0xb2,0xea,0x28,0xc3,0x18,0x32,0x62,0xa1,0xb2,0x22,0x1f,0x74,0x26, /* 4160 */
+ 0xea,0x88,0xa5,0x81,0x60,0x93,0xa5,0xca,0xe2,0xcd,0x5d,0x59,0xa9,0x39,0x0f,0xc9,
+ 0x3a,0x29,0x56,0x94,0x4b,0x06,0x4c,0xf0,0x13,0xbc,0xdb,0x67,0xfb,0x42,0x3d,0x13,
+ 0x28,0xd2,0xc6,0xd7,0xba,0x32,0x90,0x13,0xfa,0x2d,0x30,0xef,0xd6,0x9f,0xdc,0xa1,
+ 0xa9,0x5e,0xa6,0xd0,0x6c,0x73,0x63,0x53,0x4b,0x2f,0x3f,0x7d,0xaa,0xfa,0x29,0x6e,
+ 0xaa,0x09,0xb3,0x66,0x8e,0x9c,0xf8,0x2d,0x9b,0xa9,0x59,0xb3,0x2f,0x3c,0xad,0x3c, /* 4240 */
+ 0x10,0xc6,0xea,0x48,0x61,0x15,0x54,0x53,0x9c,0x37,0xdf,0x6b,0xca,0x33,0x85,0xea,
+ 0xd3,0xfc,0xff,0x96,0xd3,0x72,0xb4,0x23,0x93,0xb7,0x3c,0x8d,0xaa,0xaa,0x31,0x50,
+ 0x6e,0xe0,0x52,0x7b,0x7f,0xb3,0xe5,0x93,0xdc,0xcc,0xa5,0x7c,0x8f,0xbb,0xd4,0xa3,
+ 0xc7,0xf8,0xa5,0x38,0x99,0x86,0x91,0x32,0xfb,0xc3,0xe4,0x05,0x06,0x07,0xbb,0xfe,
+ 0x29,0xc6,0x75,0xe3,0x94,0x5e,0x74,0xa3,0x1c,0xd5,0x31,0xba,0x7a,0xeb,0x2e,0x2f, /* 4320 */
+ 0x0c,0xd9,0x90,0xb8,0xf9,0x83,0xa9,0x0d,0xfe,0xa0,0x56,0x8f,0x06,0x77,0xea,0x95,
+ 0x63,0xf7,0xc4,0x79,0xde,0x96,0x89,0x40,0xcf,0x24,0x29,0x92,0x69,0x28,0x65,0xcf,
+ 0xda,0x89,0xfa,0x07,0x8b,0xbe,0xf4,0x9c,0xe4,0x57,0x5b,0xdf,0xb3,0x80,0x36,0x60,
+ 0x11,0xc8,0x43,0x5f,0x12,0xb4,0x2d,0x9a,0xb9,0x9a,0xb6,0xa3,0x19,0x12,0xc4,0x35,
+ 0x41,0x49,0xd7,0x23,0x10,0x1d,0x13,0x65,0xa6,0x5e,0x7c,0xc6,0x8d,0x82,0xe3,0x05, /* 4400 */
+ 0x17,0x77,0x39,0x02,0xfb,0x38,0xdd,0xa2,0xb3,0x24,0xe7,0x20,0x8e,0x98,0x7e,0xd2,
+ 0x87,0xd0,0x92,0xe7,0x66,0x2a,0x43,0x02,0x41,0xbf,0xca,0x55,0x2d,0x31,0x41,0x27,
+ 0xe3,0x8c,0x85,0x97,0xa8,0x95,0x19,0xd4,0xf1,0xe6,0x2a,0x79,0x46,0x5a,0xd5,0xf4,
+ 0xea,0xa3,0xfa,0x77,0xcd,0x98,0x32,0x6d,0x2f,0x92,0xce,0x98,0x52,0x05,0x5c,0xec,
+ 0xcf,0x62,0xd6,0x3c,0xb9,0xd7,0xf1,0x98,0xae,0x08,0x5e,0x4d,0x45,0xc8,0xe4,0x8f, /* 4480 */
+ 0xcf,0xfe,0x59,0x3a,0xd6,0x52,0xd9,0x15,0x41,0x67,0xbf,0x3e,0x61,0x95,0x81,0x0a,
+ 0x44,0x5a,0xe1,0x58,0xf1,0xf9,0xa6,0x79,0x33,0x63,0xaf,0xc1,0xf2,0x2c,0xa8,0x82,
+ 0xfe,0xed,0x3a,0x5f,0x57,0x27,0xca,0x76,0x47,0x7c,0x5f,0x23,0xf0,0xfc,0x87,0x00,
+ 0xcd,0xc6,0xa5,0xbc,0xb2,0xb2,0x0b,0x4f,0x92,0x66,0x35,0x1d,0x30,0x4a,0x96,0xa8,
+ 0x2b,0xf5,0xf3,0x14,0xaf,0x68,0x5c,0x1c,0x70,0x7c,0x92,0xe3,0xe8,0x47,0xb7,0x04, /* 4560 */
+ 0x7d,0x68,0x9c,0x70,0xb2,0x5e,0x55,0x01,0xca,0xec,0x99,0x19,0x62,0x6f,0x4a,0x0f,
+ 0xc8,0x15,0x86,0xaf,0x1e,0xc8,0x88,0x89,0xb4,0x23,0x38,0x7d,0x5d,0x95,0x48,0x26,
+ 0x18,0xa6,0x50,0xe8,0x0b,0x53,0xb0,0x7c,0xac,0xe3,0x22,0x89,0x40,0x60,0x2e,0x3d,
+ 0xb4,0x74,0x66,0xce,0x9b,0xcc,0xb6,0xe4,0xd8,0xaa,0x61,0xc8,0x91,0x25,0x83,0xe8,
+ 0x10,0xb3,0xb2,0xe7,0xe9,0xcb,0x48,0xbd,0x40,0x3e,0xcf,0x08,0xd2,0x8c,0x70,0xae, /* 4640 */
+ 0x0b,0x62,0x08,0x59,0xc1,0xf0,0x9b,0x61,0x13,0x14,0x04,0xc3,0xd5,0xbf,0xfc,0xd8,
+ 0x60,0xe0,0xf4,0x2a,0xb2,0x99,0x00,0x62,0x30,0xb2,0x87,0x6d,0x77,0xdd,0xa9,0x1c,
+ 0x8c,0x62,0xbd,0x93,0xa8,0x44,0xe4,0xb3,0x44,0xe3,0x25,0x5e,0xea,0x53,0x1c,0x6c,
+ 0x45,0x8d,0x04,0xab,0xdb,0x0f,0xae,0xf2,0xd1,0xc0,0xb4,0xc5,0x5f,0x57,0x0a,0x5a,
+ 0x51,0x02,0x3f,0x4d,0x4e,0xff,0xf5,0x9f,0x9a,0xbe,0x17,0x92,0x2f,0xe7,0x32,0xca, /* 4720 */
+ 0x71,0xbc,0xd4,0x34,0xad,0x77,0x10,0xb8,0x4c,0xd4,0xac,0x9f,0x25,0x07,0xa0,0x68,
+ 0x26,0x56,0x2a,0xd7,0xf6,0x47,0x82,0x6f,0x9d,0xbb,0xe4,0xed,0xd2,0x3f,0x12,0x43,
+ 0x69,0xdb,0x85,0x26,0xfc,0x2b,0x4d,0x52,0xf0,0x74,0x14,0x15,0xf9,0x72,0xbe,0xf6,
+ 0xa9,0x35,0xbd,0x81,0x2a,0x56,0xc8,0x22,0x1b,0x7d,0xef,0x0f,0x51,0x06,0xbc,0x01,
+ 0xe9,0x13,0xe3,0xd4,0x3d,0xb8,0x6c,0x2b,0xb4,0xc7,0xe0,0x76,0x26,0x63,0xc6,0xde, /* 4800 */
+ 0x78,0x87,0x21,0xc2,0xaa,0x07,0xf8,0x95,0x48,0x87,0xe2,0x14,0x2f,0x2e,0x91,0x4a,
+ 0x09,0x9e,0xfc,0x0a,0xee,0x13,0x39,0x21,0x0d,0x3e,0x53,0xda,0x3e,0xcf,0x88,0x62,
+ 0x4b,0x11,0x19,0xbe,0x34,0x01,0x0b,0x88,0x6c,0x80,0xf5,0x1d,0x18,0x50,0x83,0x8f,
+ 0x21,0x50,0xe7,0x2b,0x04,0x2a,0xf3,0x28,0x99,0xc0,0xd3,0xd7,0xb0,0x2a,0x57,0xf8,
+ 0xcf,0x26,0x3a,0x36,0x95,0x62,0xe4,0xe9,0x45,0xa3,0x12,0x82,0xa5,0x02,0xa9,0x5e, /* 4880 */
+ 0xe9,0xbb,0x03,0x16,0xc6,0x86,0x10,0x06,0xda,0xc1,0x7f,0x93,0x6f,0x54,0xc4,0xc7),/* 4896 */
chunk_from_chars(
0x30,0x82,0x0a,0x32,0x30,0x0b,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x03,
0x13,0x03,0x82,0x0a,0x21,0x00),
@@ -1758,7 +2520,7 @@ START_TEST(test_ml_dsa_load)
{
private_key_t *key;
public_key_t *pubkey, *public;
- chunk_t encoding, asn1, short_key;
+ chunk_t encoding, fp, asn1, short_key;
/* load ASN.1 encoded private key in PKCS#8 format */
asn1 = chunk_cat("cc", tests[_i].asn1_seed, tests[_i].seed);
@@ -1773,6 +2535,12 @@ START_TEST(test_ml_dsa_load)
ck_assert(key->get_encoding(key, PRIVKEY_ASN1_DER, &encoding));
ck_assert_chunk_eq(encoding, asn1);
chunk_free(&encoding);
+
+ /* check ML-DSA private key fingerprinting */
+ ck_assert(key->get_fingerprint(key, KEYID_PUBKEY_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_pk, fp);
+ ck_assert(key->get_fingerprint(key, KEYID_PUBKEY_INFO_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_spki, fp);
key->destroy(key);
/* loading a private key blob with an incorrect key size must fail */
@@ -1795,6 +2563,12 @@ START_TEST(test_ml_dsa_load)
chunk_free(&encoding);
chunk_free(&asn1);
+ /* check ML-DSA private key fingerprinting */
+ ck_assert(key->get_fingerprint(key, KEYID_PUBKEY_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_pk, fp);
+ ck_assert(key->get_fingerprint(key, KEYID_PUBKEY_INFO_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_spki, fp);
+
/* load ASN.1 encoded public key in PKCS#1 format */
asn1 = chunk_cat("cc", tests[_i].asn1_pubkey, tests[_i].pubkey);
pubkey = lib->creds->create(lib->creds, CRED_PUBLIC_KEY, KEY_ANY,
@@ -1808,6 +2582,12 @@ START_TEST(test_ml_dsa_load)
ck_assert(pubkey->get_encoding(pubkey, PUBKEY_SPKI_ASN1_DER, &encoding));
ck_assert_chunk_eq(encoding, asn1);
chunk_free(&encoding);
+
+ /* check ML-DSA public key fingerprinting */
+ ck_assert(pubkey->get_fingerprint(pubkey, KEYID_PUBKEY_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_pk, fp);
+ ck_assert(pubkey->get_fingerprint(pubkey, KEYID_PUBKEY_INFO_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_spki, fp);
pubkey->destroy(pubkey);
/* loading a public key blob with an incorrect key size must fail */
@@ -1830,11 +2610,23 @@ START_TEST(test_ml_dsa_load)
chunk_free(&encoding);
chunk_free(&asn1);
+ /* check ML-DSA public key fingerprinting */
+ ck_assert(pubkey->get_fingerprint(pubkey, KEYID_PUBKEY_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_pk, fp);
+ ck_assert(pubkey->get_fingerprint(pubkey, KEYID_PUBKEY_INFO_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_spki, fp);
+
/* compare public keys */
public = key->get_public_key(key);
ck_assert(public != NULL);
ck_assert(public->equals(public, pubkey));
+ /* check private key-derived ML-DSA public key fingerprinting */
+ ck_assert(public->get_fingerprint(public, KEYID_PUBKEY_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_pk, fp);
+ ck_assert(public->get_fingerprint(public, KEYID_PUBKEY_INFO_SHA1, &fp));
+ ck_assert_chunk_eq(tests[_i].fp_spki, fp);
+
/* cleanup */
key->destroy(key);
pubkey->destroy(pubkey);
@@ -1847,9 +2639,9 @@ START_TEST(test_ml_dsa_sig)
private_key_t *key;
signature_scheme_t scheme;
pqc_params_t pqc_params;
- chunk_t msg, signature;
+ chunk_t msg, signature, asn1, asn1_privkey;
- /* load private key */
+ /* load private key in seed format*/
key = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, tests[_i].type,
BUILD_BLOB, tests[_i].seed, BUILD_END);
ck_assert(key != NULL);
@@ -1882,10 +2674,49 @@ START_TEST(test_ml_dsa_sig)
/* generate and verify signature with empty context string */
ck_assert(key->sign(key, scheme, &pqc_params, msg, &signature));
ck_assert_chunk_eq(signature, tests[_i].sig);
-
- /* cleanup */
chunk_free(&signature);
key->destroy(key);
+
+ /* load private key in expanded format*/
+ asn1 = chunk_cat("cc", tests[_i].asn1_privkey, tests[_i].privkey);
+ key = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, KEY_ANY,
+ BUILD_BLOB_ASN1_DER, asn1, BUILD_END);
+ chunk_free(&asn1);
+
+ if (key == NULL)
+ {
+ warn("ML-DSA private key in expanded format not supported");
+ }
+ else
+ {
+ /* generate and verify signature with empty context string */
+ ck_assert(key->sign(key, scheme, &pqc_params, msg, &signature));
+ ck_assert_chunk_eq(signature, tests[_i].sig);
+ chunk_free(&signature);
+ key->destroy(key);
+ }
+
+ /* load private key in combined seed/expanded format*/
+ asn1_privkey = chunk_skip(tests[_i].asn1_privkey,
+ tests[_i].asn1_privkey.len - 4);
+ asn1 = chunk_cat("cccc", tests[_i].asn1_seed_key, tests[_i].seed,
+ asn1_privkey, tests[_i].privkey);
+ key = lib->creds->create(lib->creds, CRED_PRIVATE_KEY, KEY_ANY,
+ BUILD_BLOB_ASN1_DER, asn1, BUILD_END);
+ chunk_free(&asn1);
+
+ if (key == NULL)
+ {
+ warn("ML-DSA private key in both format not supported");
+ }
+ else
+ {
+ /* generate and verify signature with empty context string */
+ ck_assert(key->sign(key, scheme, &pqc_params, msg, &signature));
+ ck_assert_chunk_eq(signature, tests[_i].sig);
+ chunk_free(&signature);
+ key->destroy(key);
+ }
}
END_TEST