19 Jan 2009

This commit is contained in:
g-cont 2009-01-19 00:00:00 +03:00 committed by Alibek Omarov
parent a8b771b4a4
commit a06a514afd
46 changed files with 43568 additions and 5718 deletions

View File

@ -1,669 +0,0 @@
const unsigned char client_dat[] = {
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x88, 0x0e, 0x00,
0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x05, 0x00, 0x00, 0x29, 0x05,
0x00, 0x00, 0x95, 0x16, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x0f,
0x19, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x92, 0x13, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x54, 0x0a, 0x00,
0x00, 0xbb, 0x19, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x00, 0x1b, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa9, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x0a, 0x0d,
0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20,
0x77, 0x61, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x58, 0x61, 0x73, 0x68, 0x33,
0x44, 0x20, 0x51, 0x75, 0x61, 0x6b, 0x65, 0x43, 0x20, 0x63, 0x6f,
0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x2c, 0x0a, 0x77, 0x68, 0x6f,
0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x6f,
0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x64,
0x65, 0x20, 0x6f, 0x66, 0x20, 0x46, 0x6f, 0x72, 0x65, 0x54, 0x68,
0x6f, 0x75, 0x67, 0x68, 0x74, 0x27, 0x73, 0x20, 0x51, 0x75, 0x61,
0x6b, 0x65, 0x43, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65,
0x72, 0x2e, 0x0a, 0x54, 0x68, 0x61, 0x6e, 0x6b, 0x73, 0x20, 0x74,
0x6f, 0x20, 0x49, 0x44, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
0x72, 0x65, 0x20, 0x61, 0x74, 0x20, 0x61, 0x6c, 0x6c, 0x2e, 0x00,
0x0d, 0x0a, 0x0d, 0x0a, 0x49, 0x04, 0x00, 0x00, 0x78, 0xda, 0x75,
0x56, 0x4b, 0x73, 0xe3, 0x28, 0x10, 0xe6, 0x9c, 0x5f, 0x91, 0x4b,
0x8e, 0x3b, 0xde, 0x24, 0x33, 0xb3, 0x8f, 0x9b, 0x27, 0xf1, 0x64,
0x5c, 0x9b, 0x99, 0xb8, 0xec, 0x24, 0x55, 0x7b, 0x59, 0x15, 0x86,
0x96, 0x44, 0x19, 0x81, 0x16, 0x90, 0x6d, 0x3c, 0x7f, 0x7e, 0x1b,
0x90, 0xb0, 0xec, 0x64, 0x0f, 0x56, 0x7f, 0xdd, 0x74, 0x37, 0xd0,
0x2f, 0x4c, 0xac, 0xee, 0x14, 0x2f, 0x1c, 0xa9, 0x3b, 0x3e, 0x51,
0x5d, 0x53, 0xfc, 0x9a, 0xd1, 0x75, 0x46, 0x37, 0x19, 0xdd, 0x66,
0xf4, 0x31, 0xa3, 0x4f, 0x19, 0x7d, 0xce, 0xe8, 0xb7, 0x8c, 0x7e,
0xcf, 0xe8, 0x8f, 0x8c, 0x7e, 0x89, 0x88, 0xd5, 0xd7, 0x3d, 0xbd,
0xe9, 0xe9, 0x2d, 0xd9, 0x08, 0x29, 0x49, 0x67, 0x81, 0x70, 0xa3,
0x5b, 0x62, 0xa9, 0x0f, 0xbf, 0xc2, 0x01, 0x6d, 0x08, 0x04, 0x4b,
0xca, 0x9c, 0xd8, 0x0a, 0xe7, 0x89, 0x50, 0xa5, 0x26, 0xad, 0xd1,
0x15, 0xa9, 0xc4, 0x16, 0x48, 0xa5, 0x39, 0x29, 0xa5, 0x27, 0x4a,
0x3b, 0x6a, 0x2a, 0x70, 0x08, 0x98, 0x14, 0x2d, 0xd9, 0x01, 0x6d,
0x15, 0xec, 0x5d, 0x04, 0xad, 0x81, 0x2d, 0x61, 0x46, 0x5b, 0x5b,
0x53, 0x61, 0xa2, 0x48, 0x2b, 0x3b, 0x31, 0x82, 0x5d, 0x89, 0x0f,
0x3b, 0xba, 0xcd, 0x12, 0x27, 0xd4, 0xe6, 0xfa, 0x44, 0x62, 0x0a,
0xd8, 0xb7, 0xb7, 0x51, 0xf4, 0xed, 0xe5, 0xbe, 0x98, 0x2b, 0xe1,
0x22, 0x58, 0x82, 0xe2, 0x60, 0xfe, 0xbc, 0x5c, 0x53, 0x7e, 0xc9,
0xa4, 0xfd, 0x60, 0x1d, 0x75, 0x30, 0x5a, 0x89, 0x70, 0xe5, 0x3a,
0x2e, 0xf4, 0x6c, 0x0b, 0x2a, 0x19, 0xbd, 0xb4, 0x1c, 0xb5, 0x66,
0xca, 0x09, 0x27, 0xc0, 0x46, 0xd1, 0x82, 0x1a, 0x0b, 0xdf, 0xc1,
0x5a, 0x5a, 0x25, 0xf3, 0x55, 0xdd, 0x39, 0xae, 0x77, 0x8a, 0x94,
0x86, 0x2a, 0x8e, 0xa7, 0x0e, 0xdf, 0x25, 0x50, 0xbe, 0xd0, 0x96,
0x5c, 0x89, 0xa8, 0x73, 0x6f, 0xe8, 0xee, 0xab, 0x00, 0xc9, 0x23,
0xf7, 0x95, 0x72, 0x98, 0xca, 0xb6, 0xa6, 0x84, 0xe9, 0xa6, 0xd1,
0x6a, 0x52, 0x62, 0x2c, 0x0b, 0x03, 0xcc, 0x65, 0xe5, 0x2f, 0xd4,
0xcc, 0x9b, 0x61, 0x87, 0x20, 0xb8, 0xc3, 0x23, 0x81, 0xc9, 0xe2,
0xde, 0x70, 0x4d, 0x4d, 0xb1, 0xa6, 0x6c, 0x33, 0xe6, 0xa5, 0xa6,
0x7c, 0xec, 0xe7, 0x01, 0x14, 0x60, 0xe0, 0xde, 0x7a, 0x3a, 0x5f,
0x58, 0xe2, 0x01, 0xa8, 0xaa, 0x24, 0x2c, 0x46, 0xc2, 0xc5, 0x1b,
0xcb, 0x20, 0x61, 0xb2, 0x90, 0xb0, 0x05, 0x69, 0x6b, 0xed, 0x0a,
0x45, 0x1b, 0x20, 0x96, 0xa5, 0x9d, 0x85, 0xaa, 0x86, 0xc3, 0x34,
0x59, 0x10, 0x16, 0x43, 0x88, 0xe2, 0xd1, 0x5e, 0xfb, 0x80, 0x2f,
0x24, 0xfd, 0xb7, 0x03, 0x12, 0x8e, 0x5f, 0x99, 0x50, 0xda, 0x13,
0xdb, 0x4a, 0x6a, 0xeb, 0xac, 0xb0, 0x4a, 0x6c, 0xef, 0x4d, 0x61,
0xa9, 0xb4, 0x14, 0x0b, 0x8e, 0x47, 0x77, 0xb8, 0xf3, 0x2e, 0xb2,
0xc7, 0xdd, 0x12, 0x1b, 0x73, 0xa4, 0xad, 0xeb, 0xb3, 0x1a, 0xca,
0xb5, 0xa4, 0x0c, 0xae, 0x33, 0xba, 0xc9, 0xe8, 0x36, 0xa3, 0x8f,
0x19, 0x7d, 0xea, 0x0b, 0x1c, 0x13, 0x37, 0x9c, 0x23, 0x26, 0x59,
0x84, 0xc0, 0xe0, 0x81, 0x3c, 0xfa, 0xbc, 0x7b, 0x4c, 0x55, 0xb0,
0xc2, 0x0a, 0x76, 0xab, 0x70, 0xf4, 0x05, 0x5e, 0x02, 0xcf, 0xd7,
0x08, 0xcb, 0x26, 0x8e, 0xca, 0x4d, 0x2c, 0xbf, 0x7f, 0x3e, 0x5f,
0xd9, 0x0b, 0xf2, 0x17, 0xe6, 0x16, 0xf8, 0xe5, 0x77, 0xac, 0x4d,
0x0c, 0xde, 0xc5, 0xd1, 0x18, 0xcc, 0x16, 0xcc, 0x50, 0x48, 0x18,
0xd0, 0x16, 0x9d, 0x09, 0x26, 0xb1, 0xcc, 0x32, 0x9a, 0xac, 0xbb,
0xf5, 0x5a, 0x42, 0xb0, 0xf9, 0x12, 0xd1, 0xe2, 0x1d, 0x1d, 0x8b,
0x70, 0x13, 0x54, 0x56, 0x01, 0xbc, 0xab, 0xd1, 0xe8, 0x4d, 0xef,
0x04, 0xcf, 0xe2, 0xde, 0x53, 0xa9, 0xa4, 0xde, 0x05, 0x8d, 0x67,
0xc0, 0x5b, 0x6a, 0xbc, 0x55, 0x8a, 0x3d, 0x4a, 0x66, 0xfb, 0x56,
0x6a, 0x2b, 0xb4, 0x7a, 0xcf, 0x2c, 0xf4, 0x3e, 0x7a, 0x4c, 0xbb,
0x07, 0x8b, 0x77, 0x95, 0xa0, 0xa4, 0x9d, 0x74, 0xfd, 0xcd, 0xa3,
0x70, 0x56, 0x96, 0xa1, 0xda, 0x39, 0x30, 0x2a, 0xed, 0xe4, 0xa7,
0x65, 0xda, 0xb0, 0x3a, 0x87, 0xe6, 0x19, 0x9a, 0x16, 0x7b, 0xce,
0xa6, 0x66, 0x75, 0xbe, 0x85, 0xcb, 0x2b, 0x71, 0xf1, 0x66, 0x19,
0x13, 0x74, 0x47, 0x25, 0x5b, 0x42, 0x89, 0x3b, 0x90, 0x16, 0x27,
0xc6, 0x4e, 0x1b, 0x6c, 0xb1, 0x06, 0x07, 0x49, 0x28, 0x49, 0x03,
0x54, 0x3a, 0x81, 0x00, 0x1b, 0xb3, 0x81, 0x88, 0xb6, 0x02, 0x50,
0xa7, 0x1a, 0x68, 0xb1, 0xcf, 0xc8, 0x67, 0x74, 0x88, 0x28, 0x36,
0x82, 0x1d, 0xc1, 0x5e, 0xb7, 0x67, 0xfc, 0x98, 0x41, 0x8b, 0xa2,
0xd4, 0x66, 0x47, 0x0d, 0x3f, 0xa2, 0xa0, 0x9f, 0xb1, 0x1f, 0xe1,
0xa0, 0x6d, 0x44, 0x55, 0xbb, 0x81, 0x46, 0xcd, 0x84, 0x7c, 0x46,
0x41, 0xab, 0x6b, 0xe3, 0x27, 0xae, 0x23, 0xf1, 0x89, 0x1c, 0x88,
0x56, 0xa9, 0x61, 0x48, 0xaa, 0x47, 0x9c, 0xb6, 0x64, 0x87, 0x63,
0xca, 0xc4, 0x96, 0xc4, 0x52, 0x12, 0xd8, 0xa7, 0xa5, 0xa4, 0x95,
0x0d, 0x65, 0x35, 0xba, 0xcc, 0x09, 0x87, 0x5e, 0x4f, 0x79, 0x7f,
0xc6, 0x1f, 0x88, 0x15, 0x4d, 0x70, 0x98, 0x08, 0xea, 0xf7, 0xc0,
0x0f, 0x20, 0x6a, 0x84, 0x70, 0x26, 0x92, 0x34, 0x52, 0x30, 0x7b,
0x70, 0x20, 0x82, 0x63, 0x16, 0x5a, 0xe1, 0x30, 0xbd, 0xc1, 0x77,
0x0d, 0xe9, 0xe6, 0x19, 0xf6, 0x61, 0xed, 0x19, 0x3f, 0x66, 0x0e,
0xa4, 0x0e, 0x19, 0xac, 0x31, 0xa1, 0xfb, 0x02, 0x86, 0x19, 0x8c,
0x4c, 0xba, 0xa1, 0x25, 0x12, 0x4c, 0x8b, 0xb9, 0x65, 0xf8, 0xc4,
0xe0, 0xed, 0xb1, 0xf9, 0x42, 0x99, 0x62, 0x51, 0x35, 0x3a, 0x04,
0x26, 0xce, 0xc5, 0xb6, 0x53, 0xac, 0x8e, 0x17, 0x1a, 0x41, 0xdc,
0x73, 0xc4, 0xf8, 0x31, 0x73, 0x38, 0xbe, 0x3a, 0xc9, 0xea, 0x94,
0x0d, 0x41, 0x3b, 0x15, 0xf8, 0x73, 0x41, 0x2a, 0x9f, 0x78, 0x5c,
0x4f, 0xb0, 0x65, 0xf1, 0xc9, 0x66, 0x5a, 0x6a, 0x33, 0xc6, 0xe8,
0x66, 0xcc, 0x9d, 0xe8, 0xa1, 0x83, 0xc4, 0xd1, 0xf8, 0x42, 0xe0,
0xac, 0x03, 0x50, 0x21, 0xb4, 0x09, 0xf8, 0x01, 0xec, 0x06, 0x50,
0x93, 0xa0, 0x6d, 0xbd, 0x2d, 0xb0, 0x89, 0xd7, 0xd8, 0x4f, 0x98,
0x47, 0x6a, 0x6d, 0x6c, 0x81, 0x24, 0x89, 0xb0, 0xd1, 0x1c, 0xa4,
0xc0, 0x79, 0x86, 0xae, 0x42, 0xf1, 0x24, 0x88, 0xf7, 0x16, 0x8a,
0xe0, 0x68, 0xc6, 0xb1, 0x16, 0x35, 0x88, 0xc6, 0xfa, 0x0b, 0xa2,
0x48, 0x70, 0xdf, 0x1e, 0xf8, 0x01, 0x1c, 0x70, 0xca, 0x29, 0x1b,
0x3f, 0xb8, 0x1a, 0x89, 0x4f, 0xe4, 0x10, 0x72, 0x13, 0x13, 0x14,
0x57, 0x02, 0xf1, 0x89, 0x60, 0xa1, 0x68, 0x29, 0x70, 0x70, 0x03,
0x4e, 0x7c, 0xc5, 0x80, 0x40, 0xec, 0x7f, 0x9b, 0x3a, 0x93, 0xac,
0x35, 0xc7, 0x6b, 0x6d, 0x70, 0xd7, 0xe1, 0x26, 0x65, 0x78, 0x2b,
0x2d, 0xa1, 0x22, 0x95, 0xb1, 0xc2, 0xb9, 0x55, 0xf4, 0x21, 0x7d,
0x9d, 0xdd, 0x15, 0x4f, 0xcb, 0xf9, 0xc3, 0xfc, 0x07, 0x6e, 0x32,
0x62, 0x4e, 0x56, 0x70, 0xc3, 0x72, 0x5f, 0xc4, 0x3f, 0x07, 0x11,
0x85, 0x67, 0x2e, 0xd2, 0xf8, 0xe7, 0x80, 0x2c, 0xa6, 0xcb, 0xe7,
0x62, 0xfa, 0xb8, 0xf8, 0x36, 0x7d, 0x9d, 0x3d, 0xa2, 0x9b, 0x53,
0xde, 0x9f, 0xf1, 0x87, 0xc4, 0x2f, 0xa7, 0xf7, 0xf3, 0x97, 0xd5,
0xc8, 0xe0, 0x28, 0xf0, 0xe7, 0x82, 0x37, 0x26, 0x0f, 0xcb, 0xe9,
0xeb, 0xfc, 0xf9, 0xef, 0xb7, 0xa6, 0xc3, 0x82, 0xff, 0xbf, 0x85,
0xde, 0xd5, 0xe3, 0xec, 0xc7, 0xc3, 0xf3, 0xb7, 0xd1, 0xee, 0x47,
0x81, 0x3f, 0x17, 0xf4, 0x26, 0x77, 0x4f, 0x8f, 0x4f, 0xcb, 0x41,
0x3d, 0x31, 0x7e, 0xcc, 0x1c, 0x08, 0xf9, 0x0f, 0x4f, 0xf4, 0xb0,
0xf8, 0x53, 0x0e, 0x00, 0x00, 0x78, 0xda, 0xcd, 0x5c, 0x09, 0x98,
0x14, 0xc5, 0x15, 0xee, 0xae, 0x65, 0x57, 0xb2, 0x88, 0xa8, 0x28,
0xc4, 0x44, 0x77, 0x16, 0xc4, 0x13, 0x4f, 0x44, 0x2e, 0xa3, 0x01,
0x57, 0x44, 0xc5, 0x0b, 0x95, 0x44, 0x04, 0x35, 0xba, 0x2a, 0x8a,
0xa2, 0x78, 0xb0, 0x68, 0x62, 0xc2, 0xec, 0x82, 0x40, 0x04, 0x04,
0x4f, 0x54, 0x40, 0x14, 0x10, 0x39, 0x14, 0x44, 0x51, 0x3c, 0xa2,
0x31, 0xae, 0xb8, 0xc0, 0x2a, 0xe2, 0x01, 0x11, 0xd7, 0x40, 0x82,
0x22, 0x28, 0x8a, 0xdc, 0xb8, 0x02, 0x62, 0xbd, 0xcc, 0xeb, 0xf4,
0xeb, 0x9f, 0xee, 0xaa, 0xee, 0x19, 0x21, 0xce, 0xf7, 0xf5, 0x76,
0xbd, 0x7d, 0x47, 0xbd, 0xaa, 0x7a, 0xef, 0xef, 0xaa, 0xea, 0x9a,
0x71, 0x9c, 0xe0, 0x27, 0xa5, 0xaf, 0xb4, 0xbe, 0x0e, 0x72, 0x33,
0x74, 0x23, 0x2e, 0x7f, 0xaa, 0xef, 0x45, 0xfa, 0xde, 0x92, 0xef,
0x7b, 0xb0, 0x7c, 0x99, 0x90, 0x4d, 0xe9, 0xfb, 0x7d, 0xfa, 0xbe,
0x83, 0xcb, 0x75, 0xf4, 0xbd, 0x95, 0xbe, 0x56, 0x81, 0x7d, 0x92,
0x4f, 0xb1, 0x4e, 0x01, 0xd3, 0xe5, 0x7c, 0x6f, 0xaf, 0xef, 0xb5,
0x3b, 0x76, 0xec, 0x90, 0xf2, 0xc5, 0x6c, 0xcb, 0x89, 0xb0, 0xd7,
0xc4, 0xc2, 0x6f, 0x6a, 0xe1, 0x1f, 0x0c, 0xfc, 0xa7, 0x80, 0xdf,
0xcc, 0xc2, 0x3f, 0xc4, 0xc2, 0x3f, 0xd4, 0xc2, 0x3f, 0xcc, 0xc2,
0x3f, 0xdc, 0xc2, 0x3f, 0xc2, 0xc2, 0x3f, 0xd2, 0xc2, 0x6f, 0x6e,
0xe1, 0x1f, 0x65, 0xe1, 0x1f, 0x6d, 0xe1, 0x1f, 0x63, 0xe1, 0x1f,
0x6b, 0xe1, 0x1f, 0x67, 0xe1, 0x1f, 0x6f, 0xe1, 0xb7, 0x10, 0x7c,
0xa2, 0x4f, 0x10, 0xf1, 0x4b, 0x34, 0xc5, 0x5e, 0x21, 0xd3, 0x6d,
0xf4, 0x35, 0x16, 0xf4, 0xcb, 0x43, 0xf2, 0x61, 0x20, 0xc7, 0x78,
0x4b, 0xbe, 0x17, 0x0a, 0xf9, 0x96, 0x50, 0xdf, 0x41, 0xa2, 0xbe,
0xd6, 0xfa, 0x1a, 0x0f, 0xf6, 0xc9, 0xb4, 0xf4, 0xff, 0xfb, 0x10,
0xfe, 0x01, 0x6e, 0xd0, 0x5e, 0x91, 0x21, 0x7f, 0x36, 0x43, 0xfe,
0x9c, 0xe8, 0xda, 0xed, 0x37, 0x16, 0xf6, 0x5b, 0xc5, 0x90, 0x3f,
0xd0, 0x75, 0x42, 0x3f, 0x57, 0x53, 0x1b, 0x35, 0xaf, 0x1e, 0xd3,
0x27, 0xea, 0x6b, 0xff, 0x08, 0x59, 0x8f, 0xbf, 0x9f, 0x85, 0xdf,
0xc8, 0x0d, 0xd2, 0x0d, 0x0d, 0xf2, 0xe4, 0x5f, 0x1b, 0xf0, 0x7f,
0x58, 0xb4, 0xb8, 0xd3, 0x8b, 0xc7, 0xd7, 0xeb, 0x33, 0xa2, 0x2b,
0xf4, 0xb5, 0x45, 0xd0, 0x03, 0x80, 0x3f, 0x50, 0xf0, 0x11, 0xaf,
0xc2, 0xfa, 0xa3, 0xad, 0xe8, 0x8f, 0x9f, 0xfb, 0x87, 0xda, 0xd7,
0xc1, 0x0d, 0xb6, 0xf7, 0x54, 0xa0, 0x4b, 0x80, 0x3e, 0x0d, 0xe8,
0x8e, 0x40, 0x9f, 0x0e, 0x74, 0x27, 0xa0, 0xcf, 0x00, 0xfa, 0x4c,
0xa0, 0xcf, 0xd2, 0xf4, 0x26, 0x43, 0x1f, 0x9b, 0x3e, 0x14, 0x2f,
0xff, 0x82, 0xf8, 0xe8, 0x0c, 0xf1, 0xb1, 0x8f, 0xbb, 0x73, 0x7c,
0x9f, 0xed, 0xfa, 0xfa, 0x2b, 0x85, 0x7e, 0x73, 0xc1, 0x8b, 0x8a,
0xbf, 0xb4, 0x13, 0xcc, 0x7f, 0x8a, 0x2f, 0x99, 0xff, 0xa3, 0xc1,
0x9e, 0x0b, 0xfa, 0xe7, 0xb9, 0xd9, 0xeb, 0x93, 0xbf, 0x9f, 0x87,
0xe4, 0x6b, 0x17, 0xd7, 0xcc, 0xbf, 0xc0, 0xc2, 0xbf, 0xd0, 0xf5,
0xeb, 0xeb, 0x02, 0xfd, 0x75, 0x25, 0xf8, 0x7b, 0x91, 0x01, 0xef,
0x9a, 0xb0, 0xbd, 0xee, 0x02, 0x6f, 0xba, 0xc3, 0x78, 0x4c, 0x08,
0xa9, 0xff, 0x52, 0x96, 0x2f, 0xd6, 0x57, 0xa9, 0x2e, 0x5f, 0xce,
0x34, 0xe1, 0xee, 0xc5, 0x6e, 0xa6, 0xcf, 0x25, 0x1e, 0x2b, 0xa1,
0x5f, 0xcd, 0x32, 0x9e, 0x7c, 0x37, 0x8b, 0xfc, 0x35, 0x6e, 0x46,
0x46, 0x8e, 0x67, 0x0f, 0x81, 0xff, 0x54, 0xbe, 0xd4, 0x0d, 0xea,
0xb7, 0x76, 0x7c, 0x3c, 0xee, 0xc1, 0x78, 0x4c, 0xff, 0xc7, 0xf6,
0xa5, 0x98, 0x2f, 0x9f, 0x3f, 0xf2, 0xf9, 0x41, 0xcf, 0x9f, 0x49,
0xa2, 0xfd, 0x3d, 0x3d, 0xfc, 0x87, 0xf8, 0xba, 0x8c, 0xfd, 0x21,
0xfc, 0x39, 0x38, 0xe4, 0x79, 0x25, 0xf9, 0x4d, 0x80, 0x5f, 0x01,
0xfc, 0x14, 0xf0, 0x07, 0x00, 0xff, 0x20, 0xe0, 0x0f, 0x04, 0xfe,
0xaf, 0x81, 0x5f, 0x05, 0xfc, 0x03, 0x80, 0x3f, 0x17, 0xf8, 0x8d,
0x81, 0xbf, 0x04, 0xf8, 0xfb, 0x03, 0x7f, 0x1e, 0xf0, 0x1b, 0x02,
0xff, 0x13, 0xe0, 0xef, 0x03, 0xfc, 0x1a, 0xe0, 0x37, 0x08, 0xc9,
0x5f, 0xc9, 0xaf, 0x0f, 0xf8, 0x48, 0xf3, 0x87, 0x55, 0x02, 0x9f,
0x7a, 0x6a, 0xfa, 0x4b, 0x41, 0x5f, 0xab, 0xe9, 0xaf, 0x04, 0x7d,
0x9d, 0xa6, 0x57, 0x0b, 0xba, 0x97, 0xa6, 0xbf, 0x16, 0xf4, 0xf5,
0x9a, 0xfe, 0x46, 0xd0, 0x37, 0x68, 0x7a, 0x8d, 0xa0, 0x7b, 0x6b,
0xfa, 0x5b, 0x41, 0xdf, 0xa8, 0xe9, 0xb5, 0x82, 0xbe, 0x49, 0xd3,
0xeb, 0x04, 0xdd, 0x47, 0xd3, 0xeb, 0xc5, 0xf3, 0x69, 0x83, 0xc0,
0xce, 0x32, 0xd1, 0x36, 0x9c, 0xaf, 0xd3, 0x45, 0xf9, 0xd5, 0x15,
0xe2, 0x35, 0x25, 0xe2, 0xb5, 0x98, 0x73, 0xa9, 0x50, 0xd0, 0x94,
0x8b, 0xf5, 0x21, 0xfe, 0xf6, 0x66, 0xba, 0x9d, 0xbe, 0x56, 0x8b,
0xfe, 0xeb, 0xcc, 0xfa, 0x5d, 0xdd, 0x60, 0x3e, 0xc8, 0xf9, 0x8c,
0x97, 0x3f, 0x3d, 0x78, 0x3e, 0x33, 0xcf, 0x80, 0xfd, 0xe4, 0xc7,
0x2d, 0x86, 0x7c, 0x6e, 0xce, 0xe3, 0xe9, 0x7d, 0xea, 0xd2, 0x7c,
0x9d, 0x75, 0x6e, 0x73, 0x33, 0xb1, 0x45, 0xf7, 0x5b, 0xdd, 0x78,
0xfa, 0xf9, 0x4e, 0x46, 0x96, 0x72, 0xa0, 0x2f, 0xe7, 0x77, 0x3f,
0xe8, 0xaf, 0xbe, 0x90, 0xdf, 0x35, 0x30, 0xbf, 0x9c, 0x1d, 0x82,
0x6f, 0x7d, 0x5d, 0xdf, 0xbf, 0x5b, 0xd9, 0x37, 0xf2, 0xa3, 0x11,
0xfb, 0xd3, 0x17, 0xfc, 0xcb, 0x77, 0xc2, 0xe5, 0x5d, 0xe6, 0x97,
0x0b, 0x39, 0x4f, 0xbf, 0xcc, 0xcd, 0xb4, 0xa7, 0xcc, 0xdd, 0x19,
0x2f, 0xca, 0x04, 0xbe, 0x4b, 0x3e, 0x15, 0x6f, 0xd7, 0x7f, 0x86,
0xba, 0x3e, 0x9e, 0xe1, 0xf3, 0x2d, 0x05, 0xed, 0x1d, 0xe6, 0xda,
0xdb, 0xfb, 0x17, 0xc0, 0xf3, 0x21, 0xae, 0x5f, 0xdf, 0x9d, 0x6e,
0x86, 0x7f, 0x17, 0xd7, 0xf7, 0x0e, 0xd4, 0x77, 0x27, 0xd4, 0x37,
0x3c, 0x46, 0x7d, 0x15, 0x22, 0xde, 0xe6, 0x83, 0xbd, 0x3f, 0x83,
0xbd, 0x77, 0x62, 0x8c, 0xd7, 0x20, 0x37, 0x48, 0x0f, 0x10, 0xf4,
0x1f, 0x75, 0xb9, 0xbf, 0xa0, 0xff, 0x44, 0xf1, 0x29, 0xda, 0xdb,
0x1f, 0xe2, 0xe5, 0x0e, 0xc8, 0xaf, 0x0a, 0xc8, 0xaf, 0x21, 0x09,
0xf2, 0x2b, 0xcc, 0xfe, 0x3d, 0x60, 0xff, 0x2e, 0x8b, 0xfd, 0x11,
0x6e, 0xb4, 0x7d, 0xfc, 0x50, 0xfc, 0x3d, 0x40, 0x38, 0xe2, 0x06,
0xe3, 0xad, 0x82, 0xef, 0xc4, 0x7f, 0x50, 0xdf, 0xef, 0xe7, 0x1c,
0xcf, 0xe7, 0xfd, 0x83, 0x0a, 0xbe, 0x53, 0x7d, 0x23, 0xc1, 0xdf,
0x7b, 0x0d, 0xcf, 0xc7, 0x14, 0xeb, 0x49, 0x7f, 0xef, 0x13, 0xfe,
0x12, 0x4d, 0x75, 0x79, 0xcf, 0x84, 0x93, 0x68, 0x2c, 0x0d, 0xf3,
0x35, 0x62, 0x3d, 0xb4, 0x0b, 0xe2, 0x7b, 0x34, 0xc4, 0xf7, 0x34,
0x37, 0x18, 0x5f, 0xd2, 0xfe, 0x23, 0x59, 0xc4, 0xf3, 0x78, 0x43,
0x3c, 0x3f, 0x9a, 0x45, 0x3c, 0x4f, 0x10, 0xf8, 0x33, 0x9e, 0xc7,
0xe7, 0x49, 0x1e, 0xbf, 0x09, 0x4c, 0x4f, 0x62, 0x7c, 0xa1, 0xff,
0x53, 0xfb, 0x26, 0x73, 0x7f, 0xd1, 0xff, 0xa7, 0x08, 0x7f, 0x46,
0xe9, 0xf2, 0x18, 0x41, 0x3f, 0xac, 0xcb, 0x63, 0x05, 0xbe, 0x8f,
0x62, 0x7c, 0x1a, 0xe7, 0x66, 0xe8, 0x87, 0x99, 0x7e, 0x9c, 0x9f,
0x3f, 0x63, 0x44, 0x3c, 0x14, 0xb3, 0x3f, 0x32, 0x7e, 0xa7, 0x41,
0x3c, 0x94, 0x8b, 0x67, 0x74, 0x5b, 0x7d, 0x7d, 0x0d, 0xf9, 0x30,
0x0e, 0xe2, 0x6b, 0x3a, 0xd8, 0x7b, 0x12, 0xf2, 0x61, 0x5a, 0xc2,
0x7c, 0x43, 0xfb, 0x33, 0xc0, 0xfe, 0x64, 0x8b, 0xfd, 0x6c, 0xf2,
0x6d, 0xa6, 0x25, 0xdf, 0x9e, 0x33, 0xe4, 0xdb, 0xb3, 0xae, 0x39,
0xbe, 0x8b, 0xa0, 0x7f, 0x67, 0x82, 0xbf, 0xcf, 0x81, 0xbf, 0x7b,
0x1a, 0xf2, 0x8b, 0xda, 0x3b, 0x58, 0x5f, 0xb3, 0x44, 0x3e, 0xbc,
0xa6, 0xcb, 0xb3, 0x21, 0x3f, 0x5e, 0x11, 0xf4, 0x2c, 0xf0, 0xef,
0x79, 0xe8, 0xcf, 0xd9, 0xd0, 0x9f, 0xaf, 0x24, 0x18, 0xaf, 0xb0,
0xf5, 0xda, 0x3f, 0xb4, 0xfe, 0x1c, 0x11, 0xaf, 0x6f, 0xea, 0xf2,
0xdb, 0x82, 0xae, 0xd4, 0xe5, 0xb9, 0x82, 0x7e, 0x4b, 0x97, 0xe7,
0x81, 0xff, 0xd5, 0x82, 0x9e, 0x03, 0xfe, 0xbf, 0x01, 0xfe, 0xcf,
0x05, 0xff, 0xab, 0x73, 0xf0, 0xdf, 0x8b, 0x87, 0x85, 0x96, 0x78,
0x78, 0xdf, 0x10, 0x0f, 0xef, 0x25, 0x8c, 0x87, 0x85, 0xe0, 0xef,
0xfb, 0x10, 0x0f, 0x0d, 0x2c, 0xeb, 0xe3, 0x0f, 0x60, 0xbd, 0xf7,
0x84, 0x65, 0x3f, 0x6c, 0x2f, 0x98, 0xaf, 0x7c, 0x08, 0xfa, 0xe3,
0x0c, 0xfa, 0x44, 0x7f, 0x04, 0xed, 0x59, 0x04, 0xed, 0xa9, 0x06,
0xfc, 0xa8, 0x07, 0xf5, 0x2d, 0x36, 0xd4, 0x77, 0x02, 0xd7, 0xa7,
0x0c, 0xed, 0x5d, 0x9c, 0xa3, 0xbf, 0x1f, 0x83, 0xbf, 0x4b, 0xa0,
0xff, 0x17, 0xc1, 0xf3, 0xaf, 0xda, 0x89, 0xff, 0xfc, 0xfb, 0xef,
0x7a, 0xc9, 0x8d, 0xee, 0xef, 0x30, 0xf9, 0xe5, 0x9a, 0x5f, 0x23,
0xf2, 0xe1, 0x33, 0x7a, 0x3f, 0x20, 0xf0, 0xbd, 0x1b, 0x3f, 0x73,
0x96, 0x72, 0x7c, 0x5d, 0xa2, 0xaf, 0x65, 0x22, 0x3f, 0x96, 0x42,
0xbc, 0x7d, 0x0e, 0xfb, 0x05, 0x6b, 0x01, 0x3f, 0x6a, 0xc0, 0xbf,
0x75, 0xe0, 0xcf, 0x0a, 0x43, 0xff, 0xb6, 0xe4, 0xfe, 0x2d, 0x10,
0xf2, 0x5f, 0x40, 0xfd, 0xde, 0x9c, 0xd9, 0x34, 0x3e, 0x45, 0x6e,
0x30, 0x3f, 0xbc, 0x2e, 0xea, 0x20, 0xf8, 0x61, 0xf3, 0x73, 0x92,
0x5f, 0x09, 0xf5, 0x2d, 0x82, 0xf1, 0xad, 0x86, 0xe7, 0xf3, 0x02,
0xcb, 0x7e, 0xe8, 0x46, 0xa0, 0xd7, 0x83, 0xbf, 0x6b, 0x68, 0x7d,
0x2a, 0xfc, 0xfd, 0x96, 0xd6, 0xa7, 0x82, 0x5e, 0x4b, 0xeb, 0x4f,
0xa0, 0x57, 0x0b, 0xba, 0x93, 0x13, 0x7c, 0xfe, 0xae, 0x02, 0xfc,
0x5a, 0x0d, 0xf3, 0x93, 0xbd, 0x85, 0xbf, 0xfb, 0xb3, 0xfe, 0x3a,
0xe8, 0x0f, 0xd9, 0xde, 0xf5, 0xd0, 0x1f, 0x1b, 0x80, 0xff, 0x19,
0xc4, 0xfb, 0x46, 0x88, 0xf7, 0x8d, 0x06, 0xbc, 0x69, 0x14, 0x51,
0xbf, 0x02, 0xff, 0x36, 0x31, 0x1e, 0x76, 0x60, 0x7e, 0x91, 0xc1,
0xdf, 0xcd, 0xbb, 0xc1, 0xdf, 0x4d, 0x16, 0x7f, 0xb7, 0x24, 0xf0,
0xf7, 0xbb, 0xdd, 0xe0, 0xef, 0x16, 0x8b, 0xbf, 0xb5, 0x3f, 0x33,
0x7f, 0x6b, 0x2d, 0xfe, 0xd6, 0x38, 0xf1, 0xfd, 0xfd, 0x7e, 0x37,
0xf8, 0x5b, 0xe3, 0x44, 0xd7, 0xbf, 0x75, 0x17, 0xd6, 0x8f, 0xef,
0xcb, 0x10, 0x0f, 0x1b, 0x33, 0xde, 0xa5, 0x0d, 0xef, 0xbf, 0x5a,
0x58, 0x9e, 0x77, 0xdb, 0x42, 0xf0, 0x37, 0xee, 0xfb, 0x31, 0x0f,
0x2f, 0x73, 0xc1, 0xcf, 0xa5, 0x21, 0xf6, 0xf3, 0x95, 0x99, 0xaf,
0x2c, 0x7c, 0x97, 0xf9, 0x25, 0x6c, 0xab, 0x1c, 0xfa, 0xa7, 0x4e,
0x44, 0xfd, 0xf9, 0xac, 0x5f, 0x57, 0xeb, 0xe4, 0xa9, 0xcc, 0x7e,
0x97, 0x0a, 0xd9, 0xcf, 0xcd, 0x03, 0xfb, 0x15, 0x31, 0xed, 0xff,
0xaf, 0xff, 0x94, 0xbf, 0x9f, 0x19, 0x66, 0xbf, 0x0e, 0xd8, 0x9f,
0x9f, 0xd0, 0x7e, 0x81, 0xc1, 0x3e, 0xad, 0x97, 0x0b, 0xc0, 0xfe,
0x3c, 0x83, 0xfd, 0x2f, 0x84, 0x7e, 0x53, 0x2f, 0x3e, 0x22, 0xec,
0x13, 0x7f, 0x90, 0xe0, 0x7b, 0xf6, 0xf1, 0xfd, 0x6c, 0x5d, 0xcb,
0xfb, 0x91, 0x1f, 0x2c, 0xef, 0x3f, 0x76, 0x58, 0xf8, 0x4e, 0x84,
0x7f, 0xde, 0xfa, 0xe7, 0x07, 0x31, 0xff, 0xf9, 0x01, 0xe2, 0x9f,
0x7c, 0x97, 0xf1, 0x4c, 0xb1, 0x24, 0xf3, 0x89, 0x62, 0x4f, 0xe6,
0x2f, 0xc5, 0x82, 0x9c, 0xef, 0xd1, 0xd8, 0x35, 0x14, 0x34, 0xf5,
0x75, 0x23, 0xd8, 0xcf, 0xf6, 0xf6, 0xe0, 0x4f, 0x26, 0xec, 0x36,
0xac, 0x27, 0xe8, 0x7d, 0xe5, 0x2f, 0xb4, 0xfe, 0xaf, 0x44, 0x7f,
0x6d, 0x77, 0x83, 0xef, 0x9b, 0xca, 0x21, 0x9f, 0xf6, 0xb5, 0xf0,
0x97, 0x85, 0xf4, 0x57, 0xa1, 0xf2, 0xf7, 0x6f, 0x0b, 0x43, 0xe2,
0x39, 0x4f, 0xc8, 0xd7, 0x53, 0x41, 0x3c, 0xd9, 0x0c, 0xf6, 0x57,
0x80, 0xfd, 0x3d, 0x95, 0x19, 0x5f, 0xee, 0x76, 0xcc, 0xfe, 0xae,
0xb0, 0xe0, 0x4f, 0x7d, 0x18, 0xaf, 0xf9, 0x80, 0x3f, 0x1b, 0x0c,
0xf6, 0x49, 0x7e, 0x2f, 0x68, 0x8f, 0xc9, 0x1f, 0xdc, 0x7f, 0xf6,
0xde, 0x57, 0xaf, 0x84, 0xf7, 0xd5, 0xab, 0xe0, 0x7d, 0xf5, 0x97,
0xf0, 0xbe, 0x7a, 0x83, 0xa0, 0xe9, 0xfd, 0xcc, 0x77, 0x4c, 0xa3,
0xfd, 0x30, 0x7f, 0x4f, 0x54, 0xb9, 0xad, 0x7f, 0xc8, 0x7e, 0x33,
0xe5, 0x3f, 0xdf, 0xa8, 0xdc, 0x54, 0x5f, 0xed, 0x54, 0x66, 0xbc,
0xe9, 0xde, 0x02, 0xfa, 0xf3, 0x10, 0x81, 0xb7, 0xe7, 0xc2, 0x7e,
0xf4, 0xc1, 0x2a, 0x73, 0x27, 0x3d, 0x9a, 0xd7, 0xa7, 0xd8, 0xd6,
0xa1, 0x2a, 0x9e, 0x7c, 0x31, 0xcb, 0x1f, 0x16, 0x53, 0xbe, 0x09,
0xcb, 0x1f, 0x1e, 0x21, 0xef, 0x72, 0x9f, 0x1e, 0x61, 0xe1, 0x1f,
0x69, 0xe1, 0xb7, 0xb3, 0xf0, 0x8b, 0x78, 0xbf, 0xac, 0x95, 0xca,
0x94, 0x3d, 0xba, 0x1d, 0xd3, 0xcd, 0x95, 0x8f, 0xe7, 0x47, 0x89,
0xfe, 0x3b, 0x27, 0xc4, 0x5e, 0x1b, 0xe5, 0xb7, 0xaf, 0x35, 0x97,
0xe9, 0xaa, 0xcb, 0xe3, 0x45, 0xe5, 0xa3, 0x95, 0x3f, 0x7e, 0xc7,
0x18, 0xc6, 0x63, 0x84, 0x1b, 0xec, 0xaf, 0x72, 0x2e, 0x1f, 0x2b,
0xf4, 0x8f, 0x53, 0xc1, 0x78, 0x38, 0x5e, 0x05, 0x9f, 0x3f, 0x2d,
0x80, 0xdf, 0x12, 0xe8, 0x13, 0x94, 0x8f, 0x9f, 0x87, 0xaa, 0xe0,
0xfa, 0xe4, 0x08, 0x15, 0x5c, 0x9f, 0x94, 0xc2, 0xfe, 0xca, 0x60,
0xb1, 0xbe, 0x2f, 0xe6, 0xbe, 0xd9, 0x5b, 0xd0, 0xc7, 0x0a, 0xfc,
0x2c, 0x66, 0x5f, 0x24, 0x7e, 0xb6, 0x55, 0xc1, 0xf7, 0xaf, 0x14,
0x9b, 0x07, 0x32, 0x7d, 0x0a, 0xe5, 0x52, 0xc2, 0x7c, 0x68, 0xa6,
0x82, 0xef, 0xbb, 0x9a, 0xf1, 0x7c, 0xa1, 0x19, 0x3f, 0xff, 0x17,
0x18, 0xde, 0x77, 0xfd, 0x14, 0xf9, 0x48, 0x67, 0xf9, 0x4e, 0x83,
0xfe, 0x2d, 0x11, 0xf9, 0x49, 0xe5, 0x53, 0xf5, 0xd5, 0x8d, 0xf3,
0x93, 0xee, 0x6d, 0xc5, 0x78, 0xff, 0x96, 0xf1, 0xba, 0x1b, 0x8f,
0xf7, 0x6f, 0x58, 0xb6, 0x5b, 0x48, 0xfc, 0x16, 0xb0, 0x1c, 0xfd,
0xab, 0x23, 0xdf, 0xdb, 0x83, 0xfe, 0xc9, 0x31, 0xf5, 0x4f, 0xe7,
0x7b, 0x07, 0xd0, 0x3f, 0x25, 0xa6, 0x7e, 0x27, 0xe5, 0xfb, 0x7f,
0x51, 0x84, 0xbc, 0x97, 0x1f, 0x5d, 0x95, 0x9f, 0x5f, 0xdd, 0xb8,
0x7c, 0x86, 0xf0, 0x3f, 0x1b, 0xfd, 0x33, 0x85, 0xff, 0xd9, 0xe8,
0x9f, 0x25, 0xf2, 0xbb, 0xb3, 0x18, 0xbf, 0xdf, 0xe9, 0xf2, 0xd9,
0x86, 0xfc, 0xec, 0xca, 0xf5, 0x7a, 0xfd, 0xf5, 0x7b, 0xae, 0xfb,
0x9c, 0x88, 0xfa, 0xdb, 0x80, 0x7c, 0x6b, 0x96, 0x3f, 0x57, 0xe4,
0xf3, 0xf9, 0x10, 0x3f, 0xe7, 0x19, 0xea, 0x1f, 0xe8, 0x04, 0xed,
0xcd, 0xe3, 0x72, 0x17, 0x95, 0x4c, 0xfe, 0x02, 0xae, 0x9f, 0xfc,
0xbb, 0x50, 0xe0, 0x41, 0x47, 0xc0, 0x83, 0x33, 0x12, 0xe2, 0x41,
0x67, 0xc0, 0x83, 0x73, 0x01, 0x0f, 0xba, 0x00, 0x1e, 0x5c, 0x0c,
0x78, 0x70, 0x5a, 0x8e, 0x78, 0x50, 0x02, 0x78, 0x50, 0xc2, 0x78,
0x50, 0xc2, 0x78, 0x50, 0xb5, 0x0b, 0xf1, 0x80, 0xda, 0x77, 0x15,
0xe8, 0xd7, 0x0a, 0x7e, 0x09, 0xeb, 0xdf, 0xa6, 0x65, 0xd2, 0x8c,
0x07, 0x69, 0xe5, 0xef, 0xa7, 0xa1, 0x3e, 0xf9, 0x73, 0x05, 0xcc,
0x8f, 0xd2, 0x30, 0x3f, 0x2a, 0x52, 0xe6, 0xfd, 0x45, 0xc2, 0xa7,
0x2b, 0x21, 0xbe, 0x4a, 0x05, 0x3e, 0x51, 0xf9, 0x0a, 0xf0, 0x47,
0xe2, 0xd3, 0x65, 0x8c, 0x0f, 0x9e, 0x9f, 0xdd, 0x59, 0x36, 0x1d,
0x81, 0x0f, 0x69, 0x8e, 0xf7, 0xab, 0xf8, 0x7e, 0x39, 0xe8, 0xf7,
0x88, 0xa9, 0x7f, 0x35, 0xdf, 0xff, 0x00, 0xfa, 0x97, 0xc6, 0xd4,
0xbf, 0x46, 0xf9, 0xfe, 0x5f, 0x14, 0x21, 0x1f, 0x86, 0x0f, 0x69,
0x2e, 0xf7, 0x14, 0xfe, 0x67, 0xa3, 0x7f, 0xad, 0xf0, 0x3f, 0x1b,
0xfd, 0xeb, 0x04, 0x3e, 0xf5, 0x12, 0xe3, 0xd7, 0x57, 0x97, 0xaf,
0x8f, 0x81, 0x4f, 0x69, 0x81, 0x4f, 0x54, 0xbe, 0xc1, 0x82, 0x4f,
0x69, 0x81, 0x4f, 0x54, 0xee, 0x2d, 0xf0, 0xe9, 0x26, 0x88, 0x9f,
0x1b, 0x63, 0xe0, 0x53, 0x5a, 0xe0, 0x0d, 0x95, 0xfb, 0xa8, 0x64,
0xf2, 0x37, 0x0b, 0x7c, 0xba, 0x45, 0x85, 0xe7, 0x07, 0xd1, 0x3d,
0x13, 0xe2, 0x53, 0x2f, 0xc0, 0xa7, 0xde, 0x80, 0x4f, 0x7d, 0x2c,
0xf8, 0x74, 0x65, 0x8e, 0xf8, 0x54, 0x0a, 0xf8, 0x54, 0xca, 0xf8,
0x54, 0x1a, 0x82, 0x4f, 0x5e, 0x7f, 0x7b, 0xf9, 0xdb, 0x9d, 0xfb,
0xcb, 0x96, 0xcf, 0x03, 0x1c, 0x73, 0x3e, 0x57, 0xe5, 0x98, 0xcf,
0x55, 0x39, 0xe6, 0x73, 0x55, 0x96, 0xf9, 0x1c, 0x95, 0x3f, 0x65,
0x2a, 0x13, 0x07, 0x26, 0xfe, 0xb5, 0x16, 0x7e, 0x3a, 0xcb, 0xf5,
0x02, 0xe6, 0x2b, 0xcd, 0xdf, 0x7b, 0xc5, 0x58, 0x2f, 0x60, 0xbe,
0xa5, 0xc5, 0x7a, 0x21, 0xcd, 0x39, 0xee, 0x8d, 0xef, 0x0d, 0x86,
0x7c, 0xeb, 0x07, 0xf9, 0xeb, 0x8d, 0x7d, 0xef, 0x88, 0xf6, 0x94,
0x81, 0xbc, 0x37, 0x16, 0x37, 0xaa, 0xf0, 0xf3, 0x1a, 0xb7, 0xab,
0xe0, 0x7a, 0xff, 0xd1, 0x90, 0xf5, 0xfc, 0x4d, 0xb0, 0xfe, 0xe8,
0x03, 0xf1, 0x79, 0x33, 0xd0, 0x49, 0xf2, 0xf9, 0x0e, 0x15, 0xcc,
0xe7, 0x3b, 0x55, 0x6e, 0xf9, 0xdc, 0xff, 0xff, 0x98, 0xcf, 0xbb,
0x62, 0xfd, 0x31, 0x4e, 0x33, 0xc7, 0xb0, 0xc0, 0x7e, 0x4e, 0xa6,
0x4c, 0x6b, 0xfe, 0x89, 0x9c, 0xff, 0x74, 0xef, 0x08, 0xf2, 0x63,
0x85, 0xfc, 0xd8, 0x10, 0xf9, 0xf6, 0x20, 0xff, 0x98, 0x90, 0xa7,
0x72, 0x35, 0xc8, 0x9f, 0x24, 0xe2, 0x6b, 0x2c, 0xef, 0x47, 0xde,
0xc5, 0x71, 0x36, 0x86, 0xe9, 0x41, 0x4c, 0x3f, 0xc6, 0xf4, 0x60,
0xc5, 0xe7, 0xa7, 0xa0, 0xfd, 0x73, 0x60, 0x3e, 0xe5, 0xb2, 0x8c,
0x8c, 0x9f, 0x3a, 0x70, 0x1e, 0x27, 0x2a, 0x3e, 0x0b, 0xf8, 0xdd,
0x0a, 0xd9, 0x78, 0x54, 0x85, 0xe7, 0xa3, 0xf7, 0xfc, 0x9b, 0xc8,
0xf9, 0xf0, 0xb8, 0xca, 0x94, 0x47, 0x33, 0x5d, 0xc1, 0xfd, 0x3b,
0x91, 0xf5, 0x47, 0x85, 0xcc, 0xe7, 0x06, 0x08, 0x7c, 0x98, 0xc8,
0xf1, 0x30, 0xc4, 0xcb, 0x47, 0xee, 0xef, 0xa4, 0xfa, 0x7f, 0x65,
0xfd, 0x81, 0xdc, 0xff, 0x49, 0xf5, 0xef, 0x56, 0x7e, 0xdf, 0x51,
0xdb, 0x87, 0x32, 0x3d, 0x88, 0xe9, 0x61, 0x4c, 0x0f, 0x66, 0x7a,
0x38, 0xe7, 0x3f, 0xb5, 0xfb, 0x1e, 0xd1, 0xdf, 0x44, 0x8f, 0x00,
0x7a, 0x24, 0xe4, 0xfb, 0xbd, 0x02, 0x9f, 0xc2, 0xfc, 0x5b, 0xc2,
0x7e, 0x79, 0xfd, 0xfc, 0x84, 0xf2, 0xfb, 0x9b, 0xce, 0x7b, 0x4e,
0x64, 0x9a, 0xf6, 0xef, 0xcf, 0x63, 0xfa, 0x3e, 0xf6, 0x67, 0xbc,
0xbe, 0xdf, 0x2f, 0xea, 0xa3, 0xb9, 0xe0, 0x03, 0x10, 0x0f, 0x0f,
0x02, 0xfd, 0x10, 0xf8, 0x37, 0x0a, 0xf8, 0x0f, 0x03, 0xfd, 0x88,
0xc0, 0xa3, 0x21, 0x80, 0x47, 0x43, 0x01, 0x8f, 0xee, 0x51, 0xe6,
0xf9, 0xc5, 0xbd, 0x80, 0x47, 0x0f, 0x00, 0x1e, 0x8d, 0x02, 0x3c,
0x9a, 0xa0, 0x76, 0x3e, 0x8f, 0x9e, 0x2d, 0x1e, 0x75, 0xe6, 0xf9,
0xc1, 0x63, 0x62, 0xff, 0x7c, 0x8e, 0xc0, 0x1f, 0x8f, 0x3f, 0x56,
0xf0, 0xdf, 0x08, 0xe1, 0x8f, 0x11, 0xfc, 0x57, 0x77, 0xc3, 0xfe,
0xc9, 0x14, 0x18, 0x8f, 0xa9, 0x62, 0x3e, 0x43, 0xe5, 0x57, 0xf4,
0x55, 0xc9, 0x78, 0x53, 0x29, 0xe6, 0x33, 0x1e, 0x3e, 0xd5, 0x81,
0xfd, 0x4e, 0x13, 0x1e, 0x4c, 0xe2, 0x38, 0x9c, 0xa6, 0xb2, 0xd3,
0x7f, 0x8a, 0xf5, 0x9f, 0xce, 0x52, 0x7f, 0x32, 0xeb, 0x3f, 0xc3,
0xfa, 0xaf, 0x82, 0xfe, 0xc7, 0xae, 0xfd, 0x79, 0x3b, 0x5d, 0xf4,
0x57, 0x36, 0xfa, 0x33, 0x72, 0xd4, 0x7f, 0x16, 0xf2, 0x6b, 0xa6,
0xa0, 0xff, 0xa6, 0xcb, 0xcf, 0x19, 0xe6, 0x2b, 0xb5, 0x8c, 0xc7,
0x95, 0x9c, 0xff, 0xaf, 0xf1, 0xd8, 0x3e, 0x6f, 0x59, 0x9f, 0x78,
0xf2, 0x34, 0xbf, 0xa2, 0xf2, 0x2c, 0x31, 0x5f, 0x79, 0x11, 0xe2,
0xe7, 0x85, 0x18, 0xeb, 0x93, 0x4a, 0xb1, 0xde, 0xa0, 0xf2, 0x6c,
0x95, 0x4c, 0xfe, 0x25, 0xb1, 0x3e, 0x79, 0x59, 0xe0, 0xc7, 0x34,
0xc0, 0x8f, 0xe9, 0x09, 0xd7, 0x27, 0x33, 0x01, 0x3f, 0x66, 0x01,
0x7e, 0xcc, 0xb6, 0xac, 0x4f, 0xa6, 0xe4, 0x38, 0x9f, 0x99, 0x0a,
0xf3, 0x99, 0xa9, 0x3c, 0x9f, 0x99, 0x6a, 0x58, 0x9f, 0x4c, 0x81,
0xf5, 0x89, 0x2d, 0x9f, 0xab, 0x9c, 0x60, 0x3e, 0xb7, 0x72, 0xa2,
0xc7, 0xcb, 0xe5, 0xf7, 0xf7, 0x5e, 0xff, 0x4f, 0xe2, 0x78, 0x99,
0xa6, 0xe2, 0xc9, 0x3f, 0xc5, 0xf2, 0x4f, 0xc7, 0x94, 0x9f, 0xcc,
0xf2, 0xcf, 0x58, 0xe4, 0xa7, 0x5b, 0xf8, 0x33, 0x62, 0xd4, 0x97,
0xcd, 0x7a, 0xa3, 0x92, 0xe9, 0x67, 0xc5, 0x7a, 0x63, 0xa6, 0x65,
0xbd, 0xf1, 0xb8, 0xf2, 0xdb, 0xe7, 0x95, 0x2b, 0xc5, 0x7a, 0xa3,
0x92, 0x73, 0xd6, 0x1b, 0xaf, 0xe7, 0x0d, 0xf9, 0xf3, 0x3a, 0xe4,
0x63, 0xad, 0xc8, 0xc7, 0x30, 0xf9, 0xbf, 0x83, 0xfc, 0xeb, 0x5c,
0xf7, 0x0b, 0x39, 0xac, 0x37, 0x5e, 0x04, 0xfc, 0x99, 0x0d, 0xf1,
0xf6, 0x32, 0xd0, 0x2f, 0x25, 0xc8, 0xcf, 0xc1, 0x4e, 0x30, 0x3f,
0xdf, 0x50, 0xb9, 0xe5, 0x67, 0xff, 0xdd, 0x9c, 0x9f, 0xf3, 0x77,
0xf1, 0xf3, 0x9a, 0xfa, 0x73, 0x81, 0xc8, 0x67, 0x2a, 0x57, 0xeb,
0x6b, 0x39, 0xe7, 0x33, 0xdd, 0x4f, 0x11, 0xe3, 0x3f, 0x97, 0xf7,
0x23, 0x96, 0xf3, 0xf8, 0xcf, 0x61, 0xd9, 0xe5, 0x86, 0xf8, 0x7f,
0x47, 0xec, 0x87, 0x2d, 0xe7, 0xf2, 0x42, 0x8e, 0xa3, 0x79, 0x60,
0xef, 0xed, 0x2c, 0xed, 0xbd, 0xcf, 0xf6, 0xe6, 0x83, 0xbd, 0xaa,
0x2c, 0xed, 0x7d, 0xa0, 0xfc, 0xf6, 0xbe, 0x6b, 0xd1, 0x7f, 0x37,
0x44, 0xff, 0x43, 0xd1, 0xbe, 0x6c, 0xf4, 0x3f, 0x12, 0xed, 0xc9,
0x46, 0x7f, 0xb9, 0xf2, 0x9f, 0x77, 0x61, 0xfc, 0x45, 0x22, 0x5f,
0x17, 0x5b, 0xf0, 0x66, 0x99, 0xf2, 0xfb, 0x73, 0x99, 0xe8, 0x4f,
0x0f, 0x6f, 0xa8, 0xfc, 0xcf, 0x08, 0xff, 0x5a, 0xb1, 0x1f, 0x9e,
0xfe, 0xbf, 0x59, 0xf7, 0xe3, 0x08, 0xf9, 0x65, 0x20, 0x3f, 0x82,
0xdb, 0xb2, 0x44, 0xf8, 0xfb, 0x89, 0x61, 0xfd, 0x18, 0x07, 0x6f,
0x6a, 0x04, 0x7e, 0xfc, 0x52, 0x97, 0x3f, 0x15, 0xf4, 0x42, 0xc0,
0x93, 0x0f, 0x13, 0x3e, 0xef, 0x17, 0x03, 0x9e, 0x2c, 0x01, 0x3c,
0xf9, 0x14, 0xf0, 0xe4, 0x3f, 0x80, 0x27, 0xef, 0xe5, 0x88, 0x27,
0x0b, 0x00, 0x4f, 0x16, 0x30, 0x9e, 0x2c, 0x60, 0x3c, 0x79, 0xd3,
0x82, 0x27, 0xd4, 0x9f, 0x6b, 0x04, 0x1e, 0x50, 0xf9, 0x1b, 0x15,
0x3c, 0x7f, 0xd2, 0xc6, 0x31, 0xaf, 0x0f, 0x6b, 0xb5, 0xfc, 0xb7,
0xca, 0xbc, 0x7e, 0xf4, 0xce, 0x1d, 0xa5, 0xc4, 0xef, 0x45, 0x90,
0xbf, 0x9f, 0x2b, 0xff, 0xfb, 0x96, 0x24, 0x4b, 0x76, 0x56, 0x8a,
0xf8, 0xf5, 0xce, 0x1f, 0xae, 0xcd, 0xd2, 0xfe, 0x8a, 0x10, 0xfb,
0xab, 0x42, 0xec, 0xaf, 0xcb, 0xd2, 0xfe, 0x17, 0x21, 0xf6, 0xbf,
0x0c, 0xb1, 0xbf, 0x5e, 0x25, 0xff, 0x3e, 0xbb, 0x97, 0x8f, 0x74,
0x46, 0x71, 0x43, 0x8e, 0xfa, 0x1b, 0x73, 0xd4, 0xdf, 0x24, 0xde,
0x67, 0x6c, 0x36, 0xe4, 0x63, 0x1c, 0x7b, 0xfd, 0x5c, 0xbf, 0xff,
0x46, 0xb8, 0x7e, 0xff, 0x79, 0xfb, 0x07, 0x54, 0xde, 0x22, 0xf6,
0x0f, 0xbe, 0x13, 0xf9, 0xba, 0x16, 0xf2, 0x75, 0x03, 0xe4, 0xeb,
0x57, 0x96, 0xf5, 0xfd, 0x66, 0xc8, 0xd7, 0x7d, 0x21, 0x5f, 0x1b,
0x40, 0xbe, 0x7e, 0xff, 0x13, 0xae, 0xef, 0x53, 0x9c, 0x5f, 0x32,
0x5f, 0xd7, 0x70, 0xbe, 0xae, 0xe1, 0x7c, 0x9d, 0x6b, 0xc8, 0xd7,
0xa8, 0xf3, 0x63, 0x5b, 0x55, 0xb0, 0xbd, 0xde, 0x81, 0xb1, 0xab,
0x99, 0x37, 0x5c, 0xe8, 0x9f, 0xef, 0xee, 0xbc, 0x3f, 0xb7, 0x5d,
0xe8, 0x6f, 0x87, 0xf9, 0x45, 0xb9, 0x32, 0x9f, 0x1f, 0x35, 0xd9,
0x2b, 0xe4, 0xfa, 0xf1, 0xfc, 0xa1, 0xfc, 0xfe, 0x41, 0x05, 0xc4,
0xcf, 0x40, 0xc7, 0x8e, 0xe7, 0xdb, 0xc4, 0xfe, 0x46, 0x7e, 0xd8,
0xf9, 0x4d, 0x41, 0x0f, 0x48, 0x60, 0x0f, 0xdb, 0x5f, 0xcc, 0x7d,
0x29, 0xdf, 0xdf, 0x6e, 0x53, 0xc1, 0xf7, 0xb7, 0x97, 0xa8, 0x9d,
0xf1, 0x54, 0xd6, 0x5f, 0x65, 0xa8, 0xbf, 0x50, 0xac, 0x17, 0x64,
0xff, 0xd4, 0x73, 0xc2, 0xfd, 0x49, 0x79, 0xe7, 0x3b, 0x23, 0xde,
0x27, 0x13, 0xdd, 0xd8, 0xf0, 0xfd, 0x29, 0x8f, 0x6e, 0x08, 0xe7,
0x51, 0x1b, 0x01, 0x3f, 0xea, 0x7c, 0x24, 0xf5, 0x77, 0x5f, 0xc7,
0xdc, 0xde, 0x8a, 0x18, 0xfd, 0x9d, 0xc7, 0xf1, 0x59, 0x26, 0xca,
0xd4, 0xee, 0x91, 0x4e, 0xe6, 0xb7, 0x7d, 0xe4, 0xf7, 0xef, 0x93,
0xb6, 0x3f, 0xb5, 0x0b, 0xdb, 0x9f, 0x34, 0xfe, 0xc3, 0xe2, 0xbb,
0xc6, 0xd0, 0x3f, 0x71, 0xe2, 0xcf, 0x85, 0xf3, 0x03, 0x27, 0xa9,
0xdc, 0xfc, 0x4b, 0x12, 0xaf, 0xde, 0xfb, 0x29, 0xef, 0x3b, 0x42,
0x71, 0xfc, 0xc5, 0xdf, 0xf3, 0xb8, 0x24, 0x07, 0x7f, 0xc3, 0xe2,
0xe1, 0x56, 0x98, 0xff, 0x6d, 0x0f, 0x79, 0xff, 0xe0, 0xe1, 0x61,
0x18, 0xbe, 0x3d, 0xa9, 0xcc, 0xfd, 0x5f, 0x0a, 0xdf, 0x27, 0xa8,
0x93, 0x17, 0x8c, 0xb7, 0xfc, 0xbc, 0x60, 0xbc, 0x15, 0xe4, 0x05,
0xe3, 0x2d, 0xed, 0x04, 0xbf, 0x7f, 0xb6, 0xcd, 0x92, 0x3f, 0x38,
0x9f, 0x1d, 0x9d, 0x20, 0x3e, 0x70, 0xbe, 0xea, 0xc5, 0x4b, 0x7d,
0xe8, 0x2f, 0x53, 0x3e, 0x94, 0x3b, 0xc1, 0x7c, 0xd8, 0x23, 0xcf,
0xfc, 0xfc, 0xdb, 0x6a, 0xf0, 0x2f, 0x4e, 0xbe, 0x1e, 0xf8, 0x33,
0xca, 0xd7, 0x28, 0x7e, 0x54, 0xfc, 0x84, 0xf5, 0x7f, 0x03, 0x38,
0xaf, 0xfe, 0xba, 0x0a, 0x7e, 0x9f, 0xf2, 0x33, 0x4b, 0xfc, 0x2f,
0x33, 0x3c, 0x9f, 0x72, 0xf5, 0xdf, 0xb3, 0x55, 0x91, 0x65, 0xfe,
0xe2, 0xf7, 0xcb, 0x53, 0xbc, 0xde, 0x93, 0xdf, 0x9f, 0x79, 0xcb,
0x72, 0x9e, 0xa9, 0x6e, 0x5e, 0x30, 0x3e, 0xb6, 0x42, 0xbc, 0xdb,
0x7e, 0x9f, 0x8c, 0xe2, 0xe7, 0x36, 0x71, 0x7e, 0x9b, 0xfc, 0xb9,
0x1d, 0xce, 0x77, 0xf7, 0x83, 0xf3, 0xe0, 0x93, 0xe0, 0x3c, 0xf8,
0x0c, 0x38, 0xff, 0xfd, 0xb2, 0xa0, 0xe9, 0x7d, 0xc6, 0x52, 0x41,
0x13, 0x5e, 0xcb, 0xf3, 0xe5, 0xf4, 0x7b, 0x3d, 0x1b, 0x05, 0x4d,
0x6b, 0x03, 0x79, 0x9e, 0x9c, 0xf6, 0x97, 0xd7, 0x0b, 0x9a, 0x7e,
0x7f, 0x67, 0x9d, 0xf8, 0xfd, 0x99, 0xb5, 0x09, 0x7e, 0xbb, 0xeb,
0x47, 0x1e, 0x9e, 0x2f, 0x68, 0x03, 0x03, 0x00, 0x00, 0x78, 0xda,
0x8d, 0x98, 0x4b, 0x6c, 0x4d, 0x51, 0x14, 0x86, 0xef, 0x3e, 0xe7,
0x56, 0x5c, 0x42, 0xa4, 0x89, 0x10, 0xd1, 0x8a, 0x48, 0x30, 0x31,
0x31, 0x11, 0x61, 0x20, 0x84, 0x89, 0x78, 0x25, 0x48, 0x84, 0x81,
0x98, 0x18, 0x11, 0xa4, 0xc4, 0xab, 0x54, 0x6f, 0xbd, 0xea, 0xd1,
0xa2, 0xea, 0x51, 0x13, 0x13, 0x46, 0x92, 0x8a, 0x37, 0x45, 0x11,
0xef, 0x8a, 0x89, 0x47, 0xa2, 0x9e, 0x55, 0xd4, 0xb3, 0xde, 0x03,
0xe5, 0xf2, 0x9f, 0x7b, 0xcf, 0xb9, 0x7b, 0x69, 0xf6, 0x3a, 0xf9,
0x77, 0xb2, 0x7a, 0xf7, 0xda, 0xe7, 0xbb, 0xff, 0x3a, 0x7b, 0xad,
0xbd, 0xf7, 0x39, 0xb7, 0x89, 0x04, 0xd7, 0xfe, 0xa2, 0x25, 0x95,
0x71, 0xe9, 0x67, 0x14, 0x2e, 0xd3, 0x89, 0xfb, 0x43, 0xea, 0xfd,
0x56, 0xb8, 0xce, 0xad, 0x43, 0xe1, 0x4c, 0x68, 0x51, 0xfb, 0x45,
0xea, 0xfd, 0x20, 0xf5, 0xbe, 0x93, 0xdc, 0x37, 0x92, 0xfb, 0x4a,
0x72, 0x5f, 0x48, 0xee, 0x33, 0x39, 0xdf, 0x76, 0x52, 0xef, 0x13,
0xa9, 0xf7, 0x51, 0xe1, 0xbc, 0x40, 0x4f, 0x08, 0x7e, 0x20, 0xe3,
0xbe, 0x27, 0xf5, 0xde, 0x91, 0xdc, 0xdb, 0x18, 0xce, 0xf7, 0xad,
0xdf, 0xa6, 0x70, 0x7e, 0x56, 0xcf, 0x0a, 0xbe, 0x21, 0xe3, 0xbe,
0x26, 0xe7, 0xfb, 0x8a, 0xd4, 0x6b, 0x25, 0xf5, 0x5e, 0x92, 0xfb,
0xad, 0x85, 0xd4, 0x7b, 0x41, 0x72, 0xcf, 0xc9, 0xb8, 0xcf, 0xc8,
0x3c, 0x3f, 0x25, 0xe3, 0x3e, 0x21, 0xb9, 0xc7, 0x24, 0xd7, 0x4c,
0x72, 0x0f, 0xc9, 0xfd, 0xf1, 0x80, 0xd4, 0xbb, 0x4f, 0x72, 0xf7,
0xc8, 0xf5, 0x72, 0x87, 0xe4, 0x9a, 0xc8, 0xb8, 0xb7, 0x49, 0xee,
0x16, 0xc9, 0xdd, 0x24, 0xef, 0xef, 0x06, 0xc9, 0x5d, 0x21, 0xb9,
0xcb, 0x24, 0x77, 0x89, 0x5c, 0xa7, 0x8d, 0xa4, 0xde, 0x45, 0x32,
0x2f, 0x17, 0x48, 0xee, 0x3c, 0xc9, 0x35, 0x90, 0xdc, 0x39, 0x92,
0x3b, 0x4b, 0x72, 0x67, 0x48, 0xee, 0x34, 0xc9, 0x9d, 0x22, 0xb9,
0x93, 0x24, 0x77, 0x82, 0xe4, 0x8e, 0x93, 0xdc, 0xd1, 0x18, 0x4e,
0x3c, 0x66, 0x12, 0xf5, 0x24, 0x57, 0x47, 0x9e, 0x2f, 0xfb, 0x49,
0x6e, 0x1f, 0xc9, 0xed, 0x25, 0xb9, 0x3d, 0x24, 0x57, 0x4b, 0x72,
0xbb, 0x49, 0xae, 0x86, 0xe4, 0x76, 0x91, 0xdc, 0x4e, 0x92, 0xdb,
0x41, 0x72, 0xd5, 0xe4, 0x7a, 0xa9, 0x52, 0xb8, 0x82, 0x60, 0x1d,
0x18, 0xdf, 0x8f, 0xd8, 0xed, 0x24, 0xb7, 0x8d, 0xe4, 0xb6, 0x2a,
0x5c, 0x32, 0xfb, 0x3e, 0x94, 0xc7, 0x12, 0x5b, 0x14, 0xae, 0x4b,
0x96, 0xb3, 0x82, 0x95, 0x71, 0xe7, 0xa4, 0x78, 0xc1, 0xda, 0x4c,
0xe6, 0x65, 0x53, 0xdc, 0xfb, 0x9a, 0x00, 0x37, 0x92, 0xfb, 0x68,
0x03, 0x59, 0xb7, 0xf5, 0xe4, 0x79, 0x5f, 0x41, 0xea, 0xa5, 0xc9,
0x79, 0x94, 0x93, 0x79, 0x59, 0xa7, 0x70, 0x5d, 0xb3, 0x7a, 0xb9,
0x16, 0xf8, 0x65, 0x0a, 0x97, 0xca, 0xd5, 0x37, 0x68, 0x59, 0x70,
0x2d, 0x99, 0xbf, 0x35, 0xe4, 0xfd, 0x95, 0xc6, 0xc7, 0xcd, 0xdf,
0xe0, 0xea, 0xf8, 0x75, 0x95, 0x4f, 0xf5, 0x32, 0x32, 0x7f, 0x41,
0xb7, 0x08, 0x7f, 0xfa, 0x85, 0xfe, 0x70, 0xe3, 0xae, 0xc7, 0x78,
0xd8, 0x08, 0x93, 0xfb, 0x7e, 0xd0, 0x66, 0x18, 0xf7, 0x3c, 0x66,
0xc2, 0x46, 0x62, 0xa0, 0x30, 0xf4, 0xe7, 0x1a, 0xbb, 0x3f, 0x8c,
0x58, 0xd0, 0x0b, 0x60, 0x13, 0xc5, 0x17, 0x17, 0x29, 0x71, 0x17,
0x86, 0x5c, 0x14, 0x37, 0xad, 0xc4, 0x2d, 0x81, 0x4d, 0x12, 0x03,
0x35, 0x8a, 0xde, 0x52, 0xd8, 0x64, 0x71, 0xed, 0xa0, 0xc2, 0xad,
0x80, 0x4d, 0x15, 0xd7, 0x0e, 0x2b, 0x5c, 0x29, 0x6c, 0x9a, 0xb1,
0x35, 0x3f, 0xa2, 0x70, 0x15, 0xb0, 0xe9, 0xb8, 0x56, 0x14, 0x3d,
0xb7, 0x8d, 0x7b, 0x9f, 0x37, 0xc1, 0x96, 0x98, 0x5c, 0x3d, 0x83,
0x76, 0xcd, 0xb8, 0xdf, 0x87, 0x5a, 0x60, 0xcb, 0xe1, 0xf7, 0x8d,
0x7e, 0x07, 0x19, 0xbb, 0x0e, 0xec, 0x6a, 0x46, 0xde, 0xf1, 0x59,
0x2d, 0xf4, 0x7e, 0xfe, 0x57, 0x0f, 0xab, 0xd8, 0x0b, 0xbd, 0x5a,
0xb1, 0x0e, 0x86, 0x79, 0xf6, 0xfc, 0x13, 0x72, 0x89, 0x51, 0xe8,
0xd4, 0x8b, 0xf9, 0x8e, 0xf1, 0xdc, 0xfb, 0x7c, 0x02, 0xba, 0xc7,
0x60, 0x3d, 0x42, 0x7f, 0x96, 0xe7, 0xae, 0x5b, 0x90, 0xe3, 0x46,
0x58, 0xcf, 0xa8, 0xde, 0x4a, 0xdc, 0x39, 0xe8, 0xdc, 0x15, 0x71,
0x57, 0x2a, 0x71, 0xe7, 0xa3, 0xfb, 0x48, 0xbe, 0xff, 0x7a, 0xee,
0x7a, 0x94, 0x81, 0x69, 0x96, 0xbf, 0x73, 0x15, 0x2e, 0x1d, 0x72,
0xd1, 0x3c, 0x86, 0xf8, 0x6e, 0xae, 0x0e, 0x4c, 0x1b, 0xac, 0x77,
0xe8, 0x2f, 0x56, 0xb8, 0x76, 0x30, 0x19, 0x58, 0xf7, 0xd0, 0xaf,
0x54, 0xb8, 0x81, 0xb8, 0x9f, 0x94, 0x67, 0xeb, 0x76, 0xdd, 0x77,
0xe7, 0x6f, 0x2c, 0x98, 0x01, 0xb0, 0xfe, 0xd1, 0xff, 0x77, 0x7c,
0x9b, 0x17, 0x5f, 0xe4, 0x65, 0x15, 0x98, 0xd1, 0xb0, 0xe2, 0xd0,
0x2f, 0x4e, 0x0a, 0x4e, 0x1c, 0x08, 0x0d, 0x60, 0x66, 0xc3, 0x06,
0x47, 0xf5, 0x55, 0xb8, 0x71, 0x18, 0x28, 0x07, 0x37, 0x28, 0xf4,
0xe7, 0x25, 0xdd, 0xe7, 0x5f, 0x15, 0x9c, 0x43, 0x22, 0x6e, 0x89,
0xc2, 0x75, 0xc3, 0xf8, 0x55, 0xc1, 0x1d, 0x48, 0x8a, 0xe7, 0xaf,
0x6f, 0x2b, 0x3c, 0x05, 0xe3, 0xad, 0xe0, 0xfa, 0x44, 0xbf, 0x33,
0x92, 0xee, 0xe7, 0x6f, 0x25, 0x06, 0x3a, 0x3c, 0xbb, 0xae, 0x4c,
0x81, 0x3b, 0xcf, 0x43, 0x31, 0x9e, 0x12, 0x37, 0x52, 0xa8, 0x70,
0xff, 0x00, 0xad, 0x10, 0xa6, 0xd6, 0x7a, 0x02, 0x00, 0x00, 0x78,
0xda, 0x4d, 0xd4, 0x59, 0x6c, 0x4c, 0x61, 0x18, 0xc6, 0xf1, 0x53,
0x63, 0x16, 0xbd, 0xa1, 0x0b, 0xd5, 0x4e, 0x1b, 0xa1, 0xb6, 0x52,
0xa5, 0xd6, 0xb6, 0xb6, 0xa3, 0xda, 0xa2, 0x8b, 0xa5, 0x28, 0x3a,
0x96, 0xb6, 0x96, 0xd2, 0x52, 0x55, 0xda, 0x1a, 0xb5, 0x85, 0x68,
0x35, 0x84, 0x0b, 0x24, 0x12, 0x5c, 0x11, 0xe1, 0x02, 0x89, 0x88,
0x3b, 0x42, 0x5c, 0x48, 0x44, 0x5c, 0x88, 0x1b, 0x22, 0xe1, 0x42,
0x5c, 0xb8, 0x92, 0x08, 0x89, 0x25, 0xe1, 0x79, 0x7d, 0xff, 0x64,
0x3a, 0xc9, 0xf3, 0xce, 0x6f, 0xde, 0x7c, 0xe7, 0xcc, 0x99, 0xef,
0xbc, 0x67, 0x3c, 0x2f, 0xf1, 0x1a, 0xec, 0x79, 0xfe, 0x18, 0xbd,
0x8f, 0x0a, 0x3a, 0xe7, 0xca, 0xb9, 0x72, 0x92, 0x3c, 0x56, 0xce,
0x93, 0x07, 0xc9, 0xe3, 0xe4, 0x42, 0x3c, 0x5e, 0x2e, 0x91, 0x03,
0xf2, 0x04, 0xb9, 0xcc, 0xf5, 0x3d, 0x73, 0x35, 0x9e, 0xa8, 0xd4,
0xe1, 0x3c, 0xa5, 0x81, 0xf5, 0x93, 0xe4, 0x16, 0xfa, 0xe6, 0x4e,
0x3c, 0x59, 0x39, 0x81, 0xf3, 0x95, 0xf3, 0xac, 0x9f, 0x22, 0x5f,
0xa5, 0x6f, 0xbe, 0x89, 0x0b, 0x94, 0xfb, 0x78, 0xaa, 0xf2, 0x98,
0xf5, 0xd3, 0xe4, 0x17, 0xf4, 0xcd, 0xaf, 0x71, 0xa1, 0xf2, 0x1e,
0x4f, 0x57, 0x3e, 0xb3, 0x7e, 0x86, 0xfc, 0x95, 0xbe, 0xf9, 0x3b,
0x9e, 0xa9, 0xfc, 0xc1, 0xb3, 0x94, 0x40, 0xc8, 0xfd, 0xf6, 0xd9,
0x72, 0x32, 0x9e, 0x23, 0xa7, 0xe1, 0x22, 0x39, 0x07, 0x17, 0xdb,
0xef, 0x0f, 0xb9, 0xf3, 0x97, 0xd8, 0xb9, 0x5c, 0xdf, 0x33, 0x97,
0xe2, 0xb9, 0x4a, 0x2d, 0x9e, 0xa7, 0x34, 0xb1, 0x7e, 0xbe, 0xdc,
0x41, 0xdf, 0x1c, 0xc7, 0x0b, 0x6c, 0x7f, 0xf0, 0x42, 0xe5, 0x0c,
0xeb, 0x7d, 0xf9, 0x22, 0x7d, 0xf3, 0x15, 0xbc, 0x48, 0xb9, 0x81,
0x4b, 0x95, 0x3b, 0x5c, 0xdb, 0x62, 0xf9, 0x21, 0xc7, 0x96, 0xc9,
0x4f, 0x59, 0x63, 0x7e, 0x89, 0xcb, 0x95, 0xb7, 0xb8, 0xc2, 0xf6,
0x8a, 0x63, 0x97, 0xc8, 0xdf, 0xf0, 0x52, 0xf9, 0x17, 0x5e, 0x26,
0x87, 0xc3, 0xce, 0x95, 0x72, 0x2a, 0xae, 0x92, 0xa3, 0xb8, 0xda,
0xf6, 0x04, 0xd7, 0xd8, 0x7e, 0x06, 0xdc, 0x35, 0x2c, 0xb7, 0xfd,
0x75, 0x7d, 0xcf, 0xec, 0xe3, 0x15, 0x4a, 0x0d, 0x5e, 0xa9, 0xd4,
0x87, 0xdd, 0xfa, 0x55, 0x72, 0x33, 0x7d, 0x73, 0x17, 0xae, 0x55,
0xfa, 0xf0, 0x6a, 0xe5, 0x72, 0xd8, 0xcd, 0xf3, 0x1a, 0xf9, 0x36,
0xc7, 0xae, 0x95, 0x1f, 0xb0, 0xc6, 0xfc, 0x04, 0xd7, 0x29, 0xaf,
0xf0, 0x3a, 0x9b, 0x13, 0xae, 0x73, 0xbd, 0xfc, 0x05, 0x6f, 0x90,
0x7f, 0xe0, 0x7a, 0xf9, 0x2f, 0x8e, 0xc9, 0x91, 0x88, 0xf3, 0x46,
0x39, 0x45, 0xd6, 0xb6, 0xf8, 0x9b, 0x6c, 0xce, 0x92, 0x9c, 0x37,
0xdb, 0xfc, 0xe3, 0x2d, 0xf2, 0x49, 0xdc, 0x60, 0xd7, 0x81, 0x1b,
0xe5, 0x76, 0xdc, 0x64, 0xf7, 0x14, 0x6f, 0xb5, 0xfd, 0x0c, 0xfe,
0x7f, 0x54, 0xfd, 0x6d, 0x2a, 0x59, 0x3a, 0xbf, 0x7d, 0xdc, 0x6e,
0xcf, 0x0f, 0xde, 0x61, 0x33, 0x86, 0x9b, 0x6d, 0x3e, 0xf0, 0x4e,
0xa5, 0x12, 0xef, 0xb2, 0xef, 0xc2, 0x2d, 0x4a, 0x0c, 0xb7, 0x2a,
0x8d, 0x78, 0xb7, 0x1d, 0x3f, 0xc0, 0x6d, 0x78, 0x8f, 0xd2, 0x8d,
0xdb, 0x94, 0xe3, 0x78, 0xaf, 0x7d, 0x0e, 0x26, 0x1c, 0xc7, 0xed,
0x4a, 0x2f, 0xde, 0xa7, 0x5c, 0xc0, 0x1d, 0x4a, 0x7f, 0x24, 0xe1,
0x73, 0x78, 0xbf, 0x72, 0x09, 0x1f, 0xb0, 0xe7, 0x1d, 0x77, 0x2a,
0xd7, 0x07, 0xf8, 0x16, 0xee, 0x52, 0xee, 0xe1, 0x6e, 0x9b, 0x67,
0x7c, 0x50, 0x79, 0x84, 0xe3, 0xca, 0x33, 0x7c, 0xc8, 0x66, 0x1b,
0xf7, 0x28, 0x6f, 0xf0, 0x61, 0xe5, 0x1d, 0x3e, 0xa2, 0x7c, 0xc0,
0x47, 0xed, 0xff, 0x25, 0xe4, 0xf6, 0xfc, 0x98, 0xca, 0x27, 0xfa,
0xa7, 0x6c, 0xfe, 0x23, 0x6e, 0xae, 0x7a, 0xe5, 0xdf, 0xee, 0xbe,
0x7b, 0x7d, 0x36, 0xff, 0x43, 0x9c, 0x4f, 0x2b, 0xe9, 0xb8, 0x5f,
0x19, 0xed, 0xec, 0x67, 0xe8, 0x7e, 0x16, 0xe0, 0x4c, 0xb9, 0x08,
0x67, 0xdb, 0x1f, 0x2d, 0xeb, 0x87, 0xaa, 0x54, 0xe1, 0x61, 0x2a,
0x31, 0x9c, 0xa2, 0xd2, 0x8a, 0x53, 0x55, 0x7a, 0x70, 0x9a, 0xca,
0x59, 0x9c, 0xae, 0x72, 0x0d, 0x0f, 0x57, 0xb9, 0x8b, 0x47, 0xa8,
0x3c, 0xc7, 0x19, 0x2a, 0x1f, 0xf1, 0x48, 0x95, 0x9f, 0x38, 0x53,
0x25, 0x39, 0xd9, 0x39, 0x4b, 0x25, 0x8a, 0xa3, 0x2a, 0xf9, 0x38,
0x5b, 0xa5, 0x18, 0xe7, 0xa8, 0x54, 0xc8, 0xff, 0x00, 0x4b, 0x49,
0x77, 0x91, 0xac, 0x00, 0x00, 0x00, 0x78, 0xda, 0x45, 0xcc, 0xa9,
0x0e, 0x42, 0x31, 0x10, 0x46, 0xe1, 0xb2, 0xf4, 0x72, 0xd9, 0xf7,
0xf5, 0x11, 0x10, 0x28, 0x3c, 0xfe, 0x7a, 0x14, 0x0a, 0x85, 0xc3,
0x12, 0x1c, 0x8a, 0x04, 0x83, 0x21, 0x38, 0x1c, 0x06, 0x87, 0xc3,
0xa1, 0xb0, 0x48, 0x14, 0x86, 0x87, 0xe0, 0x05, 0x38, 0xcd, 0xfc,
0x09, 0x4d, 0x4e, 0xfa, 0x65, 0x32, 0xad, 0x73, 0xff, 0x93, 0xd2,
0x3d, 0x8c, 0xcd, 0xa1, 0x31, 0x4e, 0x3b, 0x6b, 0x22, 0x67, 0x28,
0xc1, 0x59, 0x67, 0x4d, 0x65, 0x4f, 0x33, 0xbd, 0x8d, 0x68, 0x1e,
0xdb, 0x6e, 0x8e, 0x16, 0x7a, 0x1b, 0xbc, 0x94, 0xb9, 0xdc, 0x4a,
0xce, 0xd3, 0x46, 0xfb, 0x85, 0xb0, 0xe3, 0x6d, 0x1e, 0xbc, 0x96,
0x8b, 0xb4, 0x95, 0x4b, 0x74, 0xf0, 0xb6, 0x5f, 0xa6, 0x9d, 0xfe,
0x09, 0xde, 0xcb, 0x15, 0x3a, 0xca, 0x55, 0x3a, 0xe9, 0xff, 0x1a,
0x9d, 0x35, 0x0f, 0xbe, 0xc8, 0x75, 0xba, 0xca, 0x0d, 0xba, 0xc9,
0x4d, 0xba, 0xcb, 0x2d, 0x7a, 0xc8, 0x6d, 0x7a, 0xca, 0x1d, 0x7a,
0xc9, 0x5d, 0x7a, 0xcb, 0x3d, 0xfa, 0xc8, 0x7d, 0x1a, 0x45, 0xe6,
0x01, 0x7d, 0x99, 0xff, 0x00, 0x65, 0xf7, 0x13, 0x71, 0xee, 0x02,
0x00, 0x00, 0x78, 0xda, 0xed, 0xd6, 0x49, 0x4c, 0x53, 0x41, 0x18,
0xc0, 0xf1, 0x29, 0xad, 0x0b, 0x55, 0x10, 0x51, 0x11, 0xc5, 0x4a,
0x15, 0x37, 0xdc, 0x00, 0x45, 0x44, 0x81, 0x6e, 0x8f, 0x2a, 0x22,
0x2a, 0x0a, 0x8a, 0x28, 0x22, 0x6e, 0x88, 0x7b, 0x5d, 0x51, 0x5c,
0xe8, 0x0d, 0x63, 0x48, 0xb8, 0x78, 0x00, 0x23, 0x04, 0xc3, 0x8d,
0x8b, 0x31, 0xc1, 0x68, 0x42, 0x0c, 0x05, 0x0e, 0x92, 0x08, 0xd1,
0xa8, 0x09, 0x5e, 0x54, 0xe2, 0x89, 0x78, 0xc2, 0x93, 0x24, 0x5e,
0xfc, 0xbf, 0xbe, 0x29, 0x08, 0x28, 0x12, 0xa5, 0xf5, 0xe2, 0x4b,
0x7f, 0x9d, 0x37, 0xcd, 0x6c, 0x6f, 0xe6, 0x9b, 0x79, 0x15, 0xe2,
0xff, 0x15, 0xe8, 0xeb, 0x20, 0x0e, 0xe1, 0x08, 0x8a, 0x70, 0x18,
0x47, 0x51, 0xfe, 0x43, 0x19, 0x1d, 0x82, 0xa0, 0x87, 0x01, 0x13,
0x30, 0x11, 0x93, 0x30, 0x19, 0xc1, 0x30, 0x62, 0x0a, 0xa6, 0x22,
0x04, 0xa1, 0x98, 0x86, 0x30, 0x4c, 0x47, 0x38, 0x66, 0x60, 0x26,
0x66, 0x21, 0x02, 0xb3, 0x11, 0x89, 0x39, 0x43, 0x46, 0xe4, 0xb6,
0xf2, 0x65, 0xe3, 0x03, 0xb7, 0x6d, 0xee, 0x4f, 0xc6, 0x1c, 0x88,
0xf1, 0xa8, 0xfd, 0x46, 0x61, 0x1e, 0x4c, 0x98, 0x8f, 0x68, 0x98,
0xb1, 0x00, 0x0b, 0x11, 0x83, 0x45, 0x58, 0x8c, 0x25, 0x58, 0x8a,
0x65, 0x88, 0xc5, 0x72, 0xac, 0xc0, 0x4a, 0xac, 0xc2, 0x6a, 0xc4,
0x21, 0x1e, 0x09, 0x58, 0x83, 0xb5, 0x48, 0xc4, 0x3a, 0x24, 0x61,
0x3d, 0x92, 0xb1, 0x01, 0x1b, 0x91, 0x82, 0x54, 0xa4, 0x79, 0x9f,
0xba, 0x9e, 0xf9, 0xf0, 0x40, 0xd8, 0x99, 0x17, 0x08, 0x07, 0xa9,
0xca, 0xc9, 0xfd, 0x26, 0x52, 0x88, 0xcd, 0xa4, 0x10, 0x19, 0xa4,
0x10, 0x5b, 0x48, 0x21, 0x32, 0x49, 0x21, 0xb6, 0x0a, 0xd1, 0x43,
0x1b, 0x61, 0xd4, 0x37, 0x23, 0xde, 0x6e, 0xe1, 0x47, 0x39, 0xe1,
0x42, 0x36, 0x2a, 0x14, 0xa4, 0x43, 0x36, 0x2c, 0x64, 0x83, 0x42,
0x36, 0xa4, 0x36, 0x22, 0xb2, 0xb0, 0x0d, 0xdb, 0xb1, 0x03, 0xd9,
0xd8, 0x89, 0x5d, 0xc8, 0x41, 0x2e, 0x76, 0x63, 0x0f, 0xf2, 0xb0,
0x17, 0xf9, 0xd8, 0x87, 0xfd, 0x28, 0xc0, 0x01, 0x14, 0xca, 0xb5,
0x0a, 0x96, 0xeb, 0x61, 0x92, 0xf3, 0x98, 0x20, 0x9f, 0xdf, 0x29,
0xdb, 0xcf, 0x97, 0x31, 0x7a, 0x06, 0x27, 0x71, 0x0a, 0xa7, 0x65,
0xfe, 0x2c, 0xce, 0xa1, 0x04, 0x57, 0x70, 0x0b, 0x17, 0x71, 0x1e,
0x17, 0x70, 0x49, 0xc6, 0x4d, 0xd0, 0x6f, 0xf6, 0x42, 0xa9, 0x8c,
0xfb, 0x0a, 0x54, 0xe1, 0x2e, 0xaa, 0x51, 0x8b, 0x07, 0x68, 0xc4,
0x53, 0x3c, 0x43, 0x1b, 0x9e, 0xe3, 0x05, 0x5e, 0xe2, 0x1d, 0x3e,
0xa2, 0x17, 0x5f, 0x64, 0x8c, 0x7d, 0x53, 0x63, 0x8f, 0x60, 0x8d,
0xd6, 0x69, 0xed, 0xa7, 0xe8, 0xc6, 0xb0, 0x21, 0x33, 0xee, 0x3b,
0x45, 0x35, 0x7a, 0x91, 0x5c, 0xeb, 0x14, 0xd9, 0xa4, 0x45, 0x28,
0xc1, 0x2b, 0xf2, 0xe6, 0x3a, 0xa7, 0xb8, 0xdd, 0xec, 0xf4, 0x15,
0x3f, 0x86, 0x62, 0x6d, 0xdf, 0xb4, 0x1c, 0x1f, 0xa7, 0x33, 0xe1,
0xb1, 0xce, 0xb7, 0x0f, 0x7d, 0x6c, 0x8e, 0x28, 0x19, 0xe7, 0x71,
0x32, 0x3e, 0x15, 0xb9, 0xfe, 0x79, 0xf2, 0xfc, 0x50, 0xd7, 0xe3,
0x32, 0x4e, 0xfc, 0xa2, 0xcd, 0x7b, 0x35, 0x35, 0x96, 0xf1, 0x3c,
0xb7, 0x8c, 0xdd, 0x31, 0x6c, 0x8d, 0x0e, 0x35, 0x5c, 0xd3, 0xdf,
0x6a, 0xf3, 0x6a, 0x1d, 0x59, 0xca, 0x4c, 0x18, 0xf7, 0x29, 0xfe,
0x3e, 0x43, 0x43, 0x08, 0x2c, 0x53, 0xd0, 0x9f, 0xd6, 0xfe, 0xfb,
0x31, 0xba, 0x86, 0xe5, 0x2b, 0x19, 0x4b, 0x1d, 0x1a, 0xb5, 0x31,
0x29, 0xcd, 0x5a, 0xda, 0xce, 0x5a, 0xd2, 0xcf, 0x6b, 0xa5, 0x7b,
0xd4, 0xb1, 0x86, 0x53, 0xe6, 0x2b, 0x7a, 0x94, 0x7e, 0xca, 0xe9,
0x39, 0x64, 0x8d, 0x88, 0xd4, 0x8f, 0x56, 0xa7, 0x58, 0x11, 0xee,
0x0f, 0xd4, 0xf1, 0x70, 0x84, 0x34, 0x39, 0x92, 0xbc, 0x65, 0x33,
0xc8, 0xd7, 0x93, 0xaf, 0x74, 0xd8, 0xb4, 0xbc, 0x23, 0xd3, 0x9b,
0xf6, 0xd9, 0x73, 0x49, 0x0b, 0x51, 0xa2, 0xd7, 0x62, 0x66, 0xec,
0x57, 0xf9, 0xc0, 0x3c, 0x35, 0x50, 0xf7, 0x91, 0xb7, 0x3d, 0x97,
0xf2, 0x44, 0x3f, 0xf0, 0xde, 0xf0, 0x5d, 0xb6, 0x91, 0xf7, 0xe6,
0xb6, 0xa1, 0x65, 0x06, 0xe3, 0xbb, 0xd4, 0x8f, 0xb1, 0xf1, 0xde,
0x3b, 0xb6, 0x0e, 0x7b, 0x57, 0x67, 0xa7, 0xa5, 0xab, 0x33, 0xcb,
0xf2, 0x59, 0xce, 0xe3, 0xd5, 0x80, 0xbc, 0xdd, 0x13, 0x99, 0x2f,
0x17, 0x7b, 0xc4, 0xd3, 0xc2, 0xbc, 0xb7, 0x85, 0x1a, 0xb4, 0x5f,
0xaf, 0x05, 0xa4, 0x6f, 0x33, 0xfd, 0x16, 0xa9, 0xfb, 0xb3, 0x95,
0x7b, 0xf5, 0xdd, 0xc5, 0x5c, 0x37, 0x29, 0xda, 0x3c, 0xf8, 0x64,
0x0d, 0x88, 0x97, 0x63, 0x2b, 0xfb, 0x67, 0xff, 0x84, 0xdc, 0xad,
0x8c, 0x29, 0xcd, 0xd8, 0xdd, 0x90, 0xaa, 0xc6, 0x4a, 0x8e, 0x1c,
0xcf, 0x75, 0xbf, 0xf4, 0xe5, 0x61, 0x5d, 0xdc, 0xec, 0x47, 0x9b,
0x87, 0xf5, 0x21, 0x2e, 0x5d, 0xec, 0x93, 0x3e, 0xf5, 0x3f, 0x8f,
0x75, 0x90, 0x10, 0x37, 0x02, 0xfb, 0xfc, 0x9c, 0xcf, 0x11, 0xed,
0x77, 0xe4, 0x73, 0xdf, 0xf4, 0x5b, 0x3f, 0xfd, 0xf6, 0x87, 0x86,
0xb1, 0x96, 0x2d, 0x53, 0x62, 0x0b, 0xaa, 0xd4, 0xf8, 0xb0, 0xbe,
0xa1, 0xce, 0xa7, 0x61, 0xf5, 0xbe, 0x03, 0x0b, 0xb8, 0xb3, 0x90
};

13978
baserc/conback.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -82,6 +82,111 @@ const unsigned char error_tga[] = {
0x80, 0x80, 0x80, 0x00, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff
};
const unsigned char net_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00,
0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, 0xf4,
0x00, 0x00, 0x00, 0x3f, 0x74, 0x45, 0x58, 0x74, 0x47, 0x65, 0x6e,
0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x00, 0x47,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79,
0x20, 0x74, 0x68, 0x65, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f,
0x70, 0x65, 0x72, 0x27, 0x73, 0x20, 0x49, 0x6d, 0x61, 0x67, 0x65,
0x20, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x20, 0x28, 0x44,
0x65, 0x76, 0x49, 0x4c, 0x29, 0x3e, 0xf9, 0x5b, 0xf1, 0x00, 0x00,
0x00, 0x0e, 0x74, 0x45, 0x58, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f,
0x72, 0x27, 0x73, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x00, 0xa7, 0x54,
0x77, 0xc3, 0x00, 0x00, 0x00, 0x12, 0x74, 0x45, 0x58, 0x74, 0x41,
0x75, 0x74, 0x68, 0x6f, 0x72, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6d,
0x6d, 0x65, 0x6e, 0x74, 0x73, 0x00, 0x57, 0x30, 0xab, 0x86, 0x00,
0x00, 0x03, 0xa5, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xc5, 0x97,
0xbf, 0x6b, 0x1c, 0x39, 0x14, 0xc7, 0xbf, 0x36, 0xc2, 0x08, 0x33,
0x04, 0x11, 0x96, 0xb0, 0x84, 0x29, 0x44, 0x58, 0xc2, 0x16, 0x26,
0x4c, 0xe1, 0xc2, 0x45, 0x0a, 0x13, 0x4c, 0x6a, 0xff, 0x01, 0x29,
0x52, 0xa4, 0xc8, 0x9f, 0x90, 0xf2, 0x8a, 0x14, 0x29, 0x52, 0xa4,
0xbc, 0x72, 0xff, 0x80, 0x2b, 0x4c, 0x48, 0x71, 0x1c, 0x5b, 0x0c,
0xc6, 0xc5, 0x16, 0x57, 0x0c, 0x21, 0x45, 0x8a, 0x65, 0x51, 0x31,
0x98, 0x21, 0x0c, 0x46, 0x84, 0x61, 0x11, 0x46, 0x5c, 0x52, 0x68,
0x67, 0x34, 0x4f, 0x3b, 0xb3, 0x1b, 0xe2, 0xe4, 0xfc, 0x60, 0xd9,
0xd1, 0x1b, 0x49, 0xef, 0xa3, 0xf7, 0x43, 0x23, 0xed, 0x80, 0x8d,
0xbf, 0xa1, 0x2d, 0xd1, 0x90, 0x34, 0xb9, 0x25, 0x4d, 0x0c, 0x87,
0x86, 0x2a, 0xa0, 0x48, 0xcb, 0x68, 0x4d, 0xdb, 0x41, 0x77, 0x63,
0xa9, 0x82, 0x01, 0xc0, 0x9f, 0x93, 0xbf, 0x1b, 0x85, 0x36, 0x9c,
0x8e, 0x08, 0x00, 0x6c, 0xf5, 0x17, 0x5e, 0xbc, 0x7c, 0xe6, 0x27,
0xac, 0x28, 0x40, 0xf6, 0x6f, 0x16, 0x00, 0x84, 0xc0, 0x5e, 0x9e,
0x3f, 0x7b, 0x89, 0xdd, 0xde, 0xb7, 0xff, 0x93, 0xdc, 0x3a, 0x00,
0x03, 0x00, 0xc3, 0xbc, 0xdb, 0x39, 0x17, 0x30, 0xd7, 0x80, 0xb9,
0xae, 0x7b, 0x18, 0x12, 0x86, 0x48, 0x3c, 0x06, 0xda, 0x71, 0x0c,
0x5c, 0xcc, 0x79, 0xe0, 0xf2, 0x20, 0xe6, 0xa4, 0xbb, 0xe9, 0xf0,
0x40, 0x63, 0xb8, 0x99, 0x60, 0xf3, 0x0a, 0x6e, 0x2a, 0x2c, 0x54,
0xf0, 0x3d, 0x0f, 0xd1, 0x3c, 0xb3, 0x15, 0x88, 0xed, 0x1a, 0xe1,
0x24, 0x4d, 0xa7, 0x00, 0x80, 0xe2, 0x4b, 0x41, 0xf4, 0x66, 0x49,
0x3d, 0x30, 0x1e, 0x1f, 0x6c, 0x06, 0xe8, 0x34, 0xde, 0xd0, 0xf5,
0xad, 0xc3, 0x03, 0xac, 0x95, 0x5d, 0x4b, 0x91, 0x24, 0xd4, 0xb8,
0x03, 0xb0, 0x82, 0x8e, 0xfa, 0xcf, 0xd7, 0x31, 0x67, 0x40, 0x53,
0xe7, 0x2b, 0x90, 0x81, 0x28, 0xd0, 0x2e, 0x75, 0x5d, 0xb8, 0x15,
0xcf, 0x2e, 0x5c, 0xf9, 0x29, 0xa5, 0x21, 0x06, 0x1c, 0x66, 0x69,
0xc1, 0xf7, 0x19, 0x74, 0xe9, 0xe7, 0x1e, 0x8d, 0x0e, 0xa0, 0xab,
0x96, 0x2d, 0xd6, 0xeb, 0x50, 0x2a, 0x52, 0xfa, 0xe7, 0x64, 0x24,
0xfb, 0xba, 0x79, 0xa8, 0x95, 0x51, 0xb3, 0xdc, 0x9e, 0x40, 0xbd,
0x65, 0x38, 0xb8, 0x67, 0x30, 0xb8, 0x67, 0x20, 0x25, 0xc8, 0x8a,
0xf3, 0x4b, 0xdd, 0xf9, 0xfc, 0xb3, 0xb2, 0xe6, 0x81, 0xf1, 0x41,
0xb0, 0x95, 0x56, 0xee, 0xbf, 0x86, 0xa8, 0xb7, 0xda, 0xf8, 0xbe,
0x40, 0x7c, 0x5f, 0x40, 0x17, 0x37, 0x83, 0x60, 0x60, 0x06, 0x22,
0xf2, 0x99, 0x2b, 0x07, 0xfe, 0x5b, 0xa0, 0x16, 0x19, 0xcc, 0x35,
0x07, 0x6f, 0x25, 0xdf, 0x58, 0x0a, 0x07, 0x54, 0x69, 0xe8, 0xb2,
0x80, 0x2e, 0x14, 0x00, 0x20, 0x39, 0x3c, 0xc4, 0xd9, 0xd9, 0x14,
0x42, 0xd0, 0x4c, 0xd5, 0xad, 0xfc, 0x8a, 0xe3, 0x01, 0x74, 0xd9,
0x02, 0xb6, 0x1d, 0x1e, 0x50, 0x0b, 0x97, 0x4c, 0xf2, 0x41, 0x02,
0xf9, 0x20, 0x81, 0xae, 0xaa, 0xa0, 0x47, 0xe9, 0x0c, 0x97, 0x05,
0x44, 0x0b, 0xf6, 0xf4, 0xf4, 0x04, 0xa7, 0xa7, 0x27, 0xf8, 0xf0,
0x3e, 0xc5, 0xf4, 0x9f, 0x94, 0x8c, 0x78, 0xf3, 0xfa, 0x55, 0xaf,
0x07, 0x3a, 0x73, 0x40, 0x2d, 0x32, 0x0f, 0x12, 0xc7, 0xcd, 0x0f,
0x40, 0x63, 0x1c, 0x00, 0x01, 0xa8, 0xe5, 0xe4, 0xe9, 0x31, 0x6d,
0x3f, 0x79, 0xdc, 0x6b, 0xbc, 0x13, 0xa0, 0x5e, 0xb9, 0x5a, 0x64,
0x48, 0xa7, 0x13, 0xa4, 0xb3, 0x99, 0x83, 0xca, 0x73, 0xa8, 0x3c,
0xdf, 0x68, 0xbc, 0x96, 0x37, 0x6f, 0xff, 0xf8, 0x61, 0x80, 0x1d,
0x11, 0xf1, 0x6f, 0x69, 0x3a, 0x69, 0x14, 0xc3, 0x58, 0x34, 0xcf,
0xe9, 0xf9, 0x0c, 0xd5, 0xee, 0x21, 0x62, 0x39, 0x42, 0xae, 0xe6,
0xc8, 0xd5, 0x1c, 0x52, 0xfa, 0xf7, 0x6a, 0xa1, 0x80, 0xaf, 0x39,
0x84, 0x88, 0x1a, 0x1d, 0xbf, 0x23, 0x20, 0xee, 0x0a, 0xa8, 0xb9,
0x6a, 0x40, 0x75, 0x59, 0x42, 0x97, 0x25, 0x00, 0xba, 0xb3, 0xbf,
0x7d, 0x37, 0xe9, 0xdf, 0x07, 0xd2, 0xf3, 0x19, 0xd2, 0xf3, 0x19,
0x86, 0x52, 0x34, 0x00, 0xb1, 0x1c, 0x01, 0x70, 0x13, 0xa5, 0xd3,
0xd4, 0x19, 0x60, 0x86, 0x00, 0xd4, 0x22, 0x57, 0xfb, 0x85, 0xd6,
0xfd, 0xe7, 0x01, 0xa0, 0x23, 0x09, 0x6b, 0xc3, 0x6d, 0xf1, 0xc6,
0x41, 0x8c, 0x77, 0x89, 0xbe, 0xd2, 0x41, 0xbb, 0x6a, 0x56, 0xbf,
0x15, 0x60, 0x32, 0x39, 0x83, 0x41, 0x7f, 0x5d, 0xe7, 0x6a, 0x0e,
0x35, 0xa7, 0x27, 0x9e, 0xae, 0xd5, 0xb7, 0x21, 0x48, 0xd9, 0x75,
0x01, 0x18, 0x08, 0x9c, 0xcd, 0x5c, 0x62, 0x7d, 0xca, 0x2d, 0x2c,
0x3f, 0x06, 0x00, 0x24, 0x8f, 0x5c, 0xd6, 0x1b, 0x44, 0x98, 0x2b,
0x17, 0xb9, 0x2c, 0x1b, 0x82, 0xf3, 0x71, 0x33, 0x38, 0x16, 0x16,
0x51, 0x54, 0xc0, 0x5a, 0x1f, 0x59, 0xb6, 0x4b, 0x9d, 0x2a, 0x04,
0x50, 0x5c, 0xf9, 0x36, 0x6f, 0xa5, 0x3d, 0x67, 0xc2, 0x79, 0xe0,
0x62, 0x7a, 0xb1, 0x91, 0x32, 0x94, 0x58, 0x58, 0xf2, 0x7f, 0x13,
0xe9, 0xfd, 0x16, 0x64, 0x1f, 0x73, 0x24, 0x8f, 0x62, 0x24, 0x89,
0xdb, 0xd9, 0xb2, 0xac, 0xb5, 0xa3, 0x09, 0xfb, 0x4b, 0x8c, 0x03,
0x1b, 0xbe, 0x86, 0x75, 0x08, 0xb2, 0xcc, 0x10, 0xe3, 0x00, 0x90,
0x6b, 0x3f, 0xcc, 0xda, 0x01, 0x79, 0x17, 0x1e, 0xbb, 0xc5, 0x1e,
0x0d, 0x41, 0xb1, 0xf8, 0x4c, 0x01, 0x8c, 0x91, 0xb0, 0xac, 0x75,
0xcc, 0xb6, 0xae, 0xce, 0xcb, 0x2b, 0x0e, 0xa5, 0x38, 0x66, 0xd9,
0x10, 0x30, 0xab, 0x44, 0xe2, 0x02, 0x06, 0xc7, 0x28, 0x2e, 0x73,
0xd7, 0x77, 0x99, 0x03, 0x41, 0x95, 0x31, 0x46, 0xbf, 0x05, 0x55,
0x70, 0x6c, 0x37, 0xa5, 0x9b, 0x5f, 0x3e, 0x3c, 0x82, 0xb1, 0xef,
0xfa, 0x3d, 0x30, 0x57, 0x06, 0x73, 0x65, 0xc0, 0xeb, 0x63, 0x10,
0x17, 0xee, 0x07, 0x80, 0xef, 0xc7, 0x30, 0xcb, 0x1c, 0x7c, 0x3f,
0x06, 0xf6, 0x5a, 0x93, 0x7f, 0xcd, 0xd7, 0xe6, 0x89, 0x84, 0xf4,
0x30, 0x5a, 0x41, 0x3e, 0x3c, 0xa2, 0xc0, 0x7d, 0x00, 0x44, 0xb8,
0x58, 0x57, 0xed, 0xc7, 0xeb, 0xba, 0x3b, 0x31, 0x78, 0xe0, 0x92,
0x3a, 0x24, 0x95, 0x56, 0x2b, 0x18, 0x5a, 0x96, 0xdb, 0x01, 0x5a,
0x2b, 0xff, 0x1d, 0xc2, 0xc0, 0xe0, 0xce, 0xfe, 0x2b, 0x11, 0x91,
0x08, 0x7b, 0x80, 0x50, 0xaf, 0x25, 0xff, 0xe6, 0xad, 0xb6, 0x1e,
0x1b, 0xad, 0xce, 0x09, 0xe4, 0xda, 0x60, 0xf5, 0xed, 0xdf, 0x8c,
0x6e, 0x1d, 0x60, 0x07, 0xfc, 0x88, 0x5e, 0xcf, 0xed, 0xb6, 0x78,
0x87, 0x97, 0x83, 0x6d, 0x21, 0x08, 0xaf, 0x6a, 0xf4, 0xe2, 0xf2,
0x1d, 0x72, 0xf3, 0x92, 0x8e, 0x46, 0xd6, 0xb0, 0x55, 0x00, 0x00,
0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
const unsigned char blank_bmp[] = {
0x42, 0x4d, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36,
0x04, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,

27853
baserc/progs.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,11 +6,11 @@
#include <windows.h>
#include "launch_api.h"
#include "baserc_api.h"
#include "progs.h"
// resources
#include "images.h"
#include "server.h"
#include "client.h"
#include "conback.h"
#include "uimenu.h"
stdlib_api_t com;
@ -29,9 +29,10 @@ loadres_t load_resources[] =
{"blank.bmp", blank_bmp, sizeof(blank_bmp)},
{"checkerboard.dds", q1mip_dds, sizeof(q1mip_dds)},
{"default.dds", deffont_dds, sizeof(deffont_dds)},
{"server.dat", server_dat, sizeof(server_dat)},
{"client.dat", client_dat, sizeof(client_dat)},
{"uimenu.dat", uimenu_dat, sizeof(uimenu_dat)},
{"conback.dds", conback_dds, sizeof(conback_dds)},
{"net.png", net_png, sizeof(net_png)},
{"progs.pk3", progs_pk3, sizeof(progs_pk3)},
{"uimenu.dat", uimenu_dat, sizeof(uimenu_dat)}, // FIXME: get rid of this
{NULL, NULL, 0 }
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,243 +0,0 @@
//=======================================================================
// Copyright (C) Shambler Team 2005
// vector.h - shared vector operations
//=======================================================================
#ifndef VECTOR_H
#define VECTOR_H
#include <math.h>
#include <float.h>
#include <stdlib.h>
#include <stdio.h>
#pragma warning(disable : 4244) // int or float down-conversion
// Header file containing definition of globalvars_t and entvars_t
typedef int func_t; //
typedef int string_t; // from engine's pr_comp.h;
typedef float vec_t; // needed before including progdefs.h
//=========================================================
// 2DVector - used for many pathfinding and many other
// operations that are treated as planar rather than 3d.
//=========================================================
class Vector2D
{
public:
inline Vector2D(void) { }
inline Vector2D(float X, float Y) { x = X; y = Y; }
inline Vector2D operator+(const Vector2D& v) const { return Vector2D(x+v.x, y+v.y); }
inline Vector2D operator-(const Vector2D& v) const { return Vector2D(x-v.x, y-v.y); }
inline Vector2D operator*(float fl) const { return Vector2D(x*fl, y*fl); }
inline Vector2D operator/(float fl) const { return Vector2D(x/fl, y/fl); }
inline float Length(void) const { return (float)sqrt(x*x + y*y ); }
inline Vector2D Normalize ( void ) const
{
Vector2D vec2;
float flLen = Length();
if ( flLen == 0 )
{
return Vector2D( (float)0, (float)0 );
}
else
{
flLen = 1 / flLen;
return Vector2D( x * flLen, y * flLen );
}
}
vec_t x, y;
};
#define nanmask (255<<23)
#define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask)
inline float DotProduct(const Vector2D& a, const Vector2D& b) { return( a.x*b.x + a.y*b.y ); }
inline Vector2D operator*(float fl, const Vector2D& v) { return v * fl; }
//=========================================================
// 3D Vector
//=========================================================
class Vector // same data-layout as engine's vec3_t,
{ // which is a vec_t[3]
public:
// Construction/destruction
inline Vector(void) { }
inline Vector(float X, float Y, float Z) { x = X; y = Y; z = Z; }
inline Vector(const Vector& v) { x = v.x; y = v.y; z = v.z; }
inline Vector(float rgfl[3]) { x = rgfl[0]; y = rgfl[1]; z = rgfl[2]; }
// Initialization
void Init(vec_t ix=0.0f, vec_t iy=0.0f, vec_t iz=0.0f){ x = ix; y = iy; z = iz; }
// Operators
inline Vector operator-(void) const { return Vector(-x,-y,-z); }
inline int operator==(const Vector& v) const { return x==v.x && y==v.y && z==v.z; }
inline int operator!=(const Vector& v) const { return !(*this==v); }
inline Vector operator+(const Vector& v) const { return Vector(x+v.x, y+v.y, z+v.z); }
inline Vector operator-(const Vector& v) const { return Vector(x-v.x, y-v.y, z-v.z); }
inline Vector operator*(float fl) const { return Vector(x*fl, y*fl, z*fl); }
inline Vector operator/(float fl) const { return Vector(x/fl, y/fl, z/fl); }
_forceinline Vector& operator+=(const Vector &v)
{
x+=v.x; y+=v.y; z += v.z;
return *this;
}
_forceinline Vector& operator-=(const Vector &v)
{
x-=v.x; y-=v.y; z -= v.z;
return *this;
}
_forceinline Vector& operator*=(const Vector &v)
{
x *= v.x; y *= v.y; z *= v.z;
return *this;
}
_forceinline Vector& operator*=(float s)
{
x *= s; y *= s; z *= s;
return *this;
}
_forceinline Vector& operator/=(const Vector &v)
{
x /= v.x; y /= v.y; z /= v.z;
return *this;
}
_forceinline Vector& operator/=(float s)
{
float oofl = 1.0f / s;
x *= oofl; y *= oofl; z *= oofl;
return *this;
}
_forceinline Vector MA( const Vector &start, float scale, const Vector &direction ) const
{
return Vector(start.x + scale * direction.x, start.y + scale * direction.y, start.z + scale * direction.z) ;
}
// Methods
inline void CopyToArray(float* rgfl) const { rgfl[0] = x, rgfl[1] = y, rgfl[2] = z; }
inline float Length(void) const { return (float)sqrt(x*x + y*y + z*z); }
operator float *() { return &x; } // Vectors will now automatically convert to float * when needed
operator const float *() const { return &x; } // Vectors will now automatically convert to float * when needed
// array access...
vec_t operator[](int i) const { return ((vec_t*)this)[i];}
vec_t& operator[](int i) { return ((vec_t*)this)[i];}
inline Vector Normalize(void) const
{
float flLen = Length();
if (flLen == 0) return Vector(0,0,1); // ????
flLen = 1 / flLen;
return Vector(x * flLen, y * flLen, z * flLen);
}
vec_t Dot(Vector const& vOther) const
{
return(x*vOther.x+y*vOther.y+z*vOther.z);
}
Vector Cross(const Vector &vOther) const
{
return Vector(y*vOther.z - z*vOther.y, z*vOther.x - x*vOther.z, x*vOther.y - y*vOther.x);
}
inline Vector2D Make2D ( void ) const
{
Vector2D Vec2;
Vec2.x = x;
Vec2.y = y;
return Vec2;
}
inline float Length2D(void) const { return (float)sqrt(x*x + y*y); }
// Members
vec_t x, y, z;
};
inline Vector operator*(float fl, const Vector& v) { return v * fl; }
inline float DotProduct(const Vector& a, const Vector& b) { return(a.x*b.x+a.y*b.y+a.z*b.z); }
inline Vector CrossProduct(const Vector& a, const Vector& b) { return Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x ); }
#define vec3_t Vector
//=========================================================
// 4D Vector - for matrix operations
//=========================================================
class Vector4D
{
public:
// Members
vec_t x, y, z, w;
// Construction/destruction
Vector4D(void){}
Vector4D(vec_t X, vec_t Y, vec_t Z, vec_t W) { x = X; y = Y; z = Z; w = W;}
Vector4D(double X, double Y, double Z, double W) { x = (double)X; y = (double)Y; z = (double)Z; w = (double)W;}
Vector4D(const float *pFloat) { x = pFloat[0]; y = pFloat[1]; z = pFloat[2]; w = pFloat[3];}
// array access...
vec_t operator[](int i) const { return ((vec_t*)this)[i];}
vec_t& operator[](int i) { return ((vec_t*)this)[i];}
// equality
bool operator==(const Vector4D& src) const{ return(src.x == x) && (src.y == y) && (src.z == z) && (src.w == w);}
bool operator!=(const Vector4D& src) const{ return(src.x != x) || (src.y != y) || (src.z != z) || (src.w != w);}
// arithmetic operations
Vector4D& operator+=(const Vector4D &v){ x+=v.x; y+=v.y; z += v.z; return *this;}
Vector4D& operator-=(const Vector4D &v){ x-=v.x; y-=v.y; z -= v.z; return *this;}
Vector4D operator+ (const Vector4D &v)const {Vector4D res; res.x = x + v.x; res.y = y + v.y; res.z = z + v.z; res.w = w; return res;}
Vector4D operator- (const Vector4D &v)const {Vector4D res; res.x = x - v.x; res.y = y - v.y; res.z = z - v.z; res.w = w; return res;}
Vector4D operator* (const Vector4D &v)const {Vector4D res; res.x = y * v.z - z * v.y; res.y = z * v.x - x * v.z; res.z = x * v.y - y * v.x; res.w = w; return res;}
float operator% (const Vector4D &v)const { return (x * v.x + y * v.y + z * v.z); }
Vector4D Scale( float scale)const {Vector4D res; res.x = x * scale; res.y = y * scale; res.z = z * scale; res.w = w;return res; }
Vector4D CompProduct (const Vector4D &v)const {Vector4D res; res.x = x * v.x; res.y = y * v.y; res.z = z * v.z; res.w = w; return res;}
};
//=========================================================
// RandomRange - for random values
//=========================================================
class RandomRange
{
public:
float m_flMax, m_flMin;//class members
RandomRange() { m_flMin = m_flMax = 0; }
RandomRange(float fValue) { m_flMin = m_flMax = fValue; }
RandomRange(float fMin, float fMax) { m_flMin = fMin; m_flMax = fMax; }
RandomRange( char *szToken )
{
char *cOneDot = NULL;
m_flMin = m_flMax = 0;
for (char *c = szToken; *c; c++)
{
if (*c == '.')
{
if (cOneDot != NULL)
{
// found two dots in a row - it's a range
*cOneDot = 0; // null terminate the first number
m_flMin = atof(szToken); // parse the first number
*cOneDot = '.'; // change it back, just in case
c++;
m_flMax = atof(c); // parse the second number
return;
}
else cOneDot = c;
}
else cOneDot = NULL;
}
// no range, just record the number
m_flMax = m_flMin = atof(szToken);
}
// FIXME: float Random() { return RANDOM_FLOAT(m_flMin, m_flMax); }
float Random() { return m_flMin - m_flMax; }
// array access...
float operator[](int i) const { return ((float*)this)[i];}
float& operator[](int i) { return ((float*)this)[i];}
};
#endif

View File

@ -71,7 +71,7 @@ void V_CalcShake( void )
void V_ApplyShake( Vector& origin, Vector& angles, float factor )
{
origin.MA( origin, factor, gHUD.m_Shake.appliedOffset );
origin.MA( factor, origin, gHUD.m_Shake.appliedOffset );
angles.z += gHUD.m_Shake.appliedAngle * factor;
}

View File

@ -19,6 +19,7 @@ typedef int shader_t;
typedef struct edict_s edict_t;
typedef struct cl_priv_s cl_priv_t;
typedef struct sv_priv_s sv_priv_t;
typedef float vec_t;
#define DLLEXPORT __declspec( dllexport )

View File

@ -12,13 +12,6 @@
#pragma warning(disable : 4244) // int or float down-conversion
#ifdef CLIENT_DLL
// Header file containing definition of globalvars_t and entvars_t
typedef int func_t; //
typedef int string_t; // from engine's pr_comp.h;
typedef float vec_t; // needed before including progdefs.h
#endif
//=========================================================
// 2DVector - used for many pathfinding and many other
// operations that are treated as planar rather than 3d.
@ -32,12 +25,7 @@ public:
inline Vector2D operator-(const Vector2D& v) const { return Vector2D(x-v.x, y-v.y); }
inline Vector2D operator*(float fl) const { return Vector2D(x*fl, y*fl); }
inline Vector2D operator/(float fl) const { return Vector2D(x/fl, y/fl); }
#ifdef CLIENT_DLL
inline float Length(void) const { return (float)sqrt(x*x + y*y ); }
#else
inline float Length(void) const { return sqrt(x*x + y*y ); }
#endif
inline Vector2D Normalize ( void ) const
{
Vector2D vec2;
@ -45,11 +33,7 @@ public:
float flLen = Length();
if ( flLen == 0 )
{
#ifdef CLIENT_DLL
return Vector2D( (float)0, (float)0 );
#else
return Vector2D( 0, 0 );
#endif
}
else
{
@ -123,7 +107,6 @@ public:
x *= oofl; y *= oofl; z *= oofl;
return *this;
}
#ifndef CLIENT_DLL
_forceinline Vector& fixangle(void)
{
if(!IS_NAN(x))
@ -143,19 +126,14 @@ public:
}
return *this;
}
#endif
_forceinline Vector MA( float scale, const Vector &start, const Vector &direction ) const
{
return Vector(start.x + scale * direction.x, start.y + scale * direction.y, start.z + scale * direction.z) ;
}
// Methods
// methods
inline void CopyToArray(float* rgfl) const { rgfl[0] = x, rgfl[1] = y, rgfl[2] = z; }
#ifdef CLIENT_DLL
inline float Length(void) const { return (float)sqrt(x*x + y*y + z*z); }
#else
inline float Length(void) const { return sqrt(x*x + y*y + z*z); }
#endif
operator float *() { return &x; } // Vectors will now automatically convert to float * when needed
operator const float *() const { return &x; } // Vectors will now automatically convert to float * when needed
@ -185,14 +163,12 @@ public:
Vec2.y = y;
return Vec2;
}
#ifdef CLIENT_DLL
inline float Length2D(void) const { return (float)sqrt(x*x + y*y); }
#else
inline float Length2D(void) const { return sqrt(x*x + y*y); }
#endif
// Members
// members
vec_t x, y, z;
};
inline Vector operator*(float fl, const Vector& v) { return v * fl; }
inline float DotProduct(const Vector& a, const Vector& b) { return(a.x*b.x+a.y*b.y+a.z*b.z); }
inline Vector CrossProduct(const Vector& a, const Vector& b) { return Vector( a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x ); }

View File

@ -72,5 +72,5 @@ if exist xtools\xtools.plg del /f /q xtools\xtools.plg
echo Build succeeded!
echo Please wait. Xash is now loading
cd D:\Xash3D\
quake.exe -game tmpQuArK -log -debug -dev 3 +map qctest
quake.exe -game tmpQuArK -log -debug -dev 3 +map dm_knot
:done

View File

@ -20,7 +20,6 @@ cvar_t *cl_testentities;
cvar_t *cl_testlights;
cvar_t *cl_levelshot_name;
cvar_t *cl_envshot_size;
cvar_t *cl_neticon;
cvar_t *cl_font;
void SCR_TimeRefresh_f( void );
@ -392,8 +391,8 @@ void SCR_RegisterShaders( void )
// register console images
cls.consoleFont = re->RegisterShader( va( "gfx/fonts/%s", con_font->string ), SHADER_FONT );
cls.clientFont = re->RegisterShader( va( "gfx/fonts/%s", cl_font->string ), SHADER_FONT );
cls.consoleBack = re->RegisterShader( "gfx/shell/conback", SHADER_NOMIP ); // FIXME: hardcoded ...
cls.netIcon = re->RegisterShader( cl_neticon->string, SHADER_NOMIP );
cls.consoleBack = re->RegisterShader( "#conback.dds", SHADER_NOMIP ); // internal resource
cls.netIcon = re->RegisterShader( "#net.png", SHADER_NOMIP ); // internal recource
// vid_state has changed
if( cls.game ) cls.dllFuncs.pfnVidInit();
@ -415,7 +414,6 @@ void SCR_Init( void )
cl_testentities = Cvar_Get ("cl_testentities", "0", 0, "test client entities" );
cl_testlights = Cvar_Get ("cl_testlights", "0", 0, "test dynamic lights" );
cl_envshot_size = Cvar_Get( "cl_envshot_size", "256", CVAR_ARCHIVE, "envshot size of cube side" );
cl_neticon = Cvar_Get( "cl_neticon", "gfx/shell/net", CVAR_ARCHIVE, "path to icon that displayed bad network connection" );
cl_font = Cvar_Get( "cl_font", "default", CVAR_ARCHIVE, "in-game messages font" );
// register our commands

View File

@ -306,7 +306,6 @@ extern cvar_t *cl_pitchspeed;
extern cvar_t *cl_envshot_size;
extern cvar_t *cl_run;
extern cvar_t *cl_font;
extern cvar_t *cl_neticon;
extern cvar_t *cl_anglespeedkey;

View File

@ -262,7 +262,7 @@ void IN_Frame( void )
}
// uimenu.dat using mouse
if((!cl.video_prepped && cls.key_dest != key_menu) || cls.key_dest == key_console )
if((!cl.video_prepped && cls.key_dest != key_menu) || cls.key_dest == key_console || cl_paused->integer )
{
if( !Cvar_VariableValue( "fullscreen" ))
{

View File

@ -2910,6 +2910,9 @@ bool SV_ParseEdict( script_t *script, edict_t *ent )
ent = SV_AllocPrivateData( ent, MAKE_STRING( classname ));
if( ent->v.flags & FL_KILLME )
return false;
for( i = 0; i < numpairs; i++ )
{
if( pkvd[i].fHandled ) continue;

View File

@ -1286,6 +1286,11 @@ void FS_Rescan (void)
FS_AddGameHierarchy( GI.gamedir );
}
void FS_Rescan_f( void )
{
FS_Rescan();
}
void FS_ResetGameInfo( void )
{
com_strcpy(GI.title, gs_basedir );
@ -1412,6 +1417,7 @@ void FS_Init( void )
FS_AddGameDirectory( "bin/", FS_READONLY_PATH ); // execute system config
Cmd_AddCommand( "fs_rescan", FS_Rescan_f, "rescan filesystem search pathes" );
Cmd_AddCommand( "fs_path", FS_Path_f, "show filesystem search pathes" );
Cmd_AddCommand( "fs_clearpaths", FS_ClearPaths_f, "clear filesystem search pathes" );
fs_wadsupport = Cvar_Get( "fs_wadsupport", "0", CVAR_SYSTEMINFO, "enable wad-archive support" );

View File

@ -539,7 +539,8 @@ void Sys_Print( const char *pMsg )
int i = 0;
if( Sys.con_silentmode ) return;
if( Sys.CPrint ) Sys.CPrint( pMsg );
if( Sys.CPrint && Sys.app_name == HOST_NORMAL )
Sys.CPrint( pMsg );
// if the message is REALLY long, use just the last portion of it
if ( com_strlen( pMsg ) > MAX_MSGLEN - 1 )
@ -582,6 +583,11 @@ void Sys_Print( const char *pMsg )
}
*b = *c = 0; // cutoff garbage
// because we needs to kill any psedo graph symbols
// and color strings for other instances
if( Sys.CPrint && Sys.app_name != HOST_NORMAL )
Sys.CPrint( logbuf );
Sys_PrintLog( logbuf );
// don't flood system console with memory allocation messages or another

View File

@ -25,7 +25,6 @@
#include "basetypes.h"
typedef float vec_t;
typedef vec_t vec2_t[2];
typedef vec_t vec3_t[3];
typedef vec_t vec4_t[4];

View File

@ -70,6 +70,7 @@ static dllfunc_t opengl_110funcs[] =
{"glPointSize", (void**) &pglPointSize},
{"glMatrixMode", (void **) &pglMatrixMode},
{"glOrtho", (void **) &pglOrtho},
{"glRasterPos2f", (void **) &pglRasterPos2f},
{"glFrustum", (void **) &pglFrustum},
{"glViewport", (void **) &pglViewport},
{"glPushMatrix", (void **) &pglPushMatrix},
@ -86,6 +87,7 @@ static dllfunc_t opengl_110funcs[] =
{"glTranslated", (void **) &pglTranslated},
{"glTranslatef", (void **) &pglTranslatef},
{"glReadPixels", (void **) &pglReadPixels},
{"glDrawPixels", (void **) &pglDrawPixels},
{"glStencilFunc", (void **) &pglStencilFunc},
{"glStencilMask", (void **) &pglStencilMask},
{"glStencilOp", (void **) &pglStencilOp},
@ -569,7 +571,7 @@ void GL_InitExtensions( void )
// initialize gl extensions
GL_CheckExtension( "OpenGL 1.1.0", opengl_110funcs, NULL, R_OPENGL_110 );
if( !r_framebuffer ) r_framebuffer = Mem_Alloc( r_temppool, r_width->integer * r_height->integer * 3 );
if( !r_framebuffer ) r_framebuffer = Mem_Alloc( r_temppool, r_width->integer * r_height->integer * 4 );
// get our various GL strings
gl_config.vendor_string = pglGetString( GL_VENDOR );

View File

@ -1585,6 +1585,10 @@ void RB_DebugGraphics( void )
{
RB_ShowTextures();
}
if( r_pause_bw->integer )
{
RB_DrawPauseScreen();
}
}
/*

View File

@ -3,8 +3,8 @@
// r_bloom.c - lighting post process effect
//=======================================================================
#include <assert.h>
#include "r_local.h"
#include "mathlib.h"
static float Diamond8x[8][8] =
{
@ -174,8 +174,8 @@ void R_Bloom_InitTextures( void )
Mem_Set( &r_downsample, 0, sizeof( rgbdata_t ));
// find closer power of 2 to screen size
for( screen_texture_width = 1; screen_texture_width < r_width->integer; screen_texture_width *= 2 );
for( screen_texture_height = 1; screen_texture_height < r_height->integer; screen_texture_height *= 2 );
screen_texture_width = NearestPOW( r_width->integer, true );
screen_texture_height = NearestPOW( r_height->integer, true );
// init the screen texture
size = screen_texture_width * screen_texture_height * 4;
@ -285,12 +285,11 @@ void R_Bloom_GeneratexDiamonds( void )
}
// bluring passes
// GL_BlendFunc(GL_ONE, GL_ONE);
GL_BlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);
GL_BlendFunc( GL_ONE, GL_ONE );
if( r_bloom_diamond_size->value > 7 || r_bloom_diamond_size->value <= 3)
{
if( (int)r_bloom_diamond_size->value != 8 ) Cvar_SetValue( "r_bloom_diamond_size", 8 );
if( r_bloom_diamond_size->integer != 8 ) Cvar_SetValue( "r_bloom_diamond_size", 8 );
for( i = 0; i < r_bloom_diamond_size->value; i++ )
{
@ -305,7 +304,6 @@ void R_Bloom_GeneratexDiamonds( void )
}
else if( r_bloom_diamond_size->value > 5 )
{
if( r_bloom_diamond_size->value != 6 ) Cvar_SetValue( "r_bloom_diamond_size", 6 );
for( i = 0; i < r_bloom_diamond_size->value; i++ )

View File

@ -2200,7 +2200,7 @@ void GL_GenerateMipmaps( byte *buffer, texture_t *tex, int side, bool border )
{
pglHint( GL_GENERATE_MIPMAP_HINT_SGIS, GL_NICEST );
pglTexParameteri( image_desc.glTarget, GL_GENERATE_MIPMAP_SGIS, GL_TRUE );
if(pglGetError()) MsgDev(D_WARN, "GL_GenerateMipmaps: can't create mip levels\n");
if( pglGetError()) MsgDev( D_WARN, "GL_GenerateMipmaps: %s can't create mip levels\n", tex->name );
else return; // falltrough to software mipmap generating
}
@ -2824,6 +2824,8 @@ static void R_CreateBuiltInTextures( void )
buffer = FS_LoadInternal( "default.dds", &bufsize );
r_defaultConchars = R_FindTexture( "#default.dds", buffer, bufsize, TF_NOPICMIP|TF_STATIC, TF_LINEAR, 0 );
R_Bloom_InitTextures();
}
/*

View File

@ -702,7 +702,7 @@ void RB_CheckMeshOverflow( int numIndices, int numVertices );
void RB_RenderMesh( void );
void RB_RenderMeshes( mesh_t *meshes, int numMeshes );
void RB_DrawStretchPic( float x, float y, float w, float h, float sl, float tl, float sh, float th, ref_shader_t *shader );
void RB_DrawPauseScreen( void );
void RB_InitBackend( void );
void RB_ShutdownBackend( void );
@ -809,7 +809,7 @@ void R_AddSkyToList( void );
void R_DrawSurface( void );
void R_AddBrushModelToList( ref_entity_t *entity );
void R_AddWorldToList( void );
void R_Bloom_InitTextures( void );
void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point, float degrees );
void PerpendicularVector( vec3_t dst, const vec3_t src );

View File

@ -911,14 +911,12 @@ void R_RenderView( const ref_params_t *fd )
R_BloomBlend( fd );
}
void R_DrawPauseScreen( void )
// FIXME: copy screen into texRecatngle then draw as normal quad
void RB_DrawPauseScreen( void )
{
// don't apply post effects for custom window
if( r_refdef.onlyClientDraw ) return;
if( !r_pause_bw->integer )
return;
if( r_pause->modified )
{
// reset saturation value
@ -948,6 +946,7 @@ void R_DrawPauseScreen( void )
}
r_lefthand->modified = false;
}
// set custom orthogonal mode
pglMatrixMode( GL_PROJECTION );
pglLoadIdentity ();
@ -1170,6 +1169,7 @@ static bool R_AddEntityToScene( edict_t *pRefEntity, int ed_type, float lerpfrac
if( refent->ent_type == ED_CLIENT )
refent->gaitsequence = pRefEntity->v.gaitsequence;
else refent->gaitsequence = 0;
// because entity without models never added to scene
if( !refent->ent_type )

View File

@ -4088,12 +4088,24 @@ static ref_shader_t *R_CreateDefaultShader( const char *name, int shaderType, ui
break;
case SHADER_NOMIP:
shader->stages[0]->bundles[0]->flags |= STAGEBUNDLE_MAP;
shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP, TF_LINEAR, 0 );
if( shader->name[0] == '#' )
{
// search for internal resource
size_t bufsize = 0;
byte *buffer = FS_LoadInternal( shader->name + 1, &bufsize );
shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP|TF_STATIC, TF_LINEAR, 0 );
}
else shader->stages[0]->bundles[0]->textures[0] = R_FindTexture( shader->name, buffer, bufsize, TF_NOPICMIP, TF_LINEAR, 0 );
if( !shader->stages[0]->bundles[0]->textures[0] )
{
if( !shader->stages[0]->bundles[0]->textures[0] )
{
MsgDev( D_WARN, "couldn't find texture for shader '%s', using default...\n", shader->name );
shader->stages[0]->bundles[0]->textures[0] = r_defaultTexture;
}
}
shader->stages[0]->rgbGen.type = RGBGEN_VERTEX;
shader->stages[0]->bundles[0]->numTextures++;
shader->stages[0]->flags |= SHADERSTAGE_BLENDFUNC|SHADERSTAGE_RGBGEN;

View File

@ -1127,7 +1127,10 @@ float R_StudioMergeBones ( rmodel_t *m_pSubModel )
f = R_StudioEstimateFrame( pseqdesc );
//if (m_pCurrentEntity->prev.frame > f) Msg("%f %f\n", m_pCurrentEntity->prev.frame, f );
if( m_pCurrentEntity->prev.frame > f )
{
// Msg("%f %f\n", m_pCurrentEntity->prev.frame, f );
}
panim = R_StudioGetAnim( m_pSubModel, pseqdesc );
R_StudioCalcRotations( pos, q, pseqdesc, panim, f );

View File

@ -357,7 +357,8 @@ void CBaseBrush::Precache( void )
MaterialSoundPrecache( m_Material );
if(IsBreakable( ))
{
m_idShard = UTIL_PrecacheModel( m_iGibModel, (char*)pGibName ); // precache model
if( !FStringNull( m_iGibModel ) || !FStringNull( pGibName ))
m_idShard = UTIL_PrecacheModel( m_iGibModel, pGibName ); // precache model
if( m_iSpawnObject ) UTIL_PrecacheEntity( m_iSpawnObject );
}
UTIL_PrecacheModel( pev->model ); // can use *.mdl for any brush
@ -503,7 +504,7 @@ void CBaseBrush::Die( void )
float fvol;
pitch = 95 + RANDOM_LONG( 0, 29 );
if(pitch > 97 && pitch < 103)pitch = 100;
if( pitch > 97 && pitch < 103 ) pitch = PITCH_NORM;
fvol = RANDOM_FLOAT(0.85, 1.0) + (abs( pev->health ) / 100.0);
if( fvol > 1.0 ) fvol = 1.0;

View File

@ -680,38 +680,8 @@ CBaseEntity * CBaseEntity::Create( char *szName, const Vector &vecOrigin, const
int istr = ALLOC_STRING(szName);
CBaseEntity *pEntity;
// check for virtual entities
if( FUNCTION_FROM_NAME( szName ) != 0 )
{
pent = CREATE_NAMED_ENTITY( istr );
if( FNullEnt( pent )) return NULL;
}
else if(!strncmp( szName, "weapon_", 7))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("weapon_generic"));
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if(!strncmp( szName, "item_", 5))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if(!strncmp( szName, "ammo_", 5))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return NULL; // this never gonna called anymore. just in case
pent->v.netname = istr;
}
else //unknown error
{
Msg("can't create %s\n", szName );
return NULL;
}
pEntity = Instance( pent );
pEntity->pev->owner = pentOwner;
@ -728,38 +698,8 @@ CBaseEntity * CBaseEntity::CreateGib( char *szName, char *szModel )
string_t model = MAKE_STRING( szModel );
int istr = ALLOC_STRING(szName);
//check for virtual entities
if( FUNCTION_FROM_NAME( szName ))
{
pent = CREATE_NAMED_ENTITY( istr );
if( FNullEnt( pent )) return NULL;
}
else if(!strncmp( szName, "weapon_", 7))
{
// may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
if ( FNullEnt( pent )) return NULL; //this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if(!strncmp( szName, "item_", 5))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return NULL;//this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if(!strncmp( szName, "ammo_", 5))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return NULL;//this never gonna called anymore. just in case
pent->v.netname = istr;
}
else //unknown error
{
Msg("can't create %s\n", szName );
return NULL;
}
pEntity = Instance( pent );
DispatchSpawn( pEntity->edict() );

View File

@ -53,14 +53,15 @@ void CFuncWall :: Spawn( void )
}
UTIL_SetModel( ENT( pev ), pev->model );
//Smart field system ®
// smart field system ®
if( !FStringNull( pev->angles ) && FStringNull( pev->origin ))
{
pev->angles = g_vecZero;
DevMsg( "\n======/Xash SmartFiled System/======\n\n");
DevMsg( "Create brush origin for %s,\nif we want correctly set angles\n", STRING(pev->classname));
SHIFT;
ALERT( at_console, "\n======/Xash SmartFiled System/======\n\n");
ALERT( at_console, "Create brush origin for %s,\n", STRING( pev->classname ));
ALERT( at_console, "if we want correctly set angles\n\n" );
}
pev->angles[1] = 0 - pev->angles[1];
if( pev->spawnflags & SF_START_ON ) TurnOff();
else TurnOn();

View File

@ -2311,8 +2311,7 @@ void CEnvBeam::Spawn( void )
if( FStringNull( pev->netname ))
{
ALERT( at_warning, "%s end entity not found!\n", STRING( pev->classname ));
SetThink( Remove );
SetNextThink( 0 );
UTIL_Remove( this );
return;
}

View File

@ -154,11 +154,7 @@ CBaseEntity* CBasePlayerWeapon::Respawn( void )
edict_t *pent;
pent = CREATE_NAMED_ENTITY( pev->classname );
if ( FNullEnt( pent ) )
{
// it's a custom weapon!
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
}
if( FNullEnt( pent )) return NULL;
pNewWeapon = Instance( pent );
if( pNewWeapon )
@ -178,7 +174,7 @@ CBaseEntity* CBasePlayerWeapon::Respawn( void )
// but when it should respawn is based on conditions belonging to the weapon that was taken.
pNewWeapon->AbsoluteNextThink( g_pGameRules->FlWeaponRespawnTime( this ));
}
else Msg("Respawn failed to create %s!\n", STRING( pev->classname ) );
else ALERT( at_error, "failed to respawn %s!\n", STRING( pev->classname ));
return pNewWeapon;
}
@ -238,6 +234,7 @@ BOOL CBasePlayerWeapon :: CanDeploy( void )
void CBasePlayerWeapon :: Precache( void )
{
ItemInfo II;
if( GetItemInfo( &II ))
{
ItemInfoArray[II.iId] = II;
@ -245,7 +242,7 @@ void CBasePlayerWeapon :: Precache( void )
if( II.iszAmmo1 ) AddAmmoName( II.iszAmmo1 );
if( II.iszAmmo2 ) AddAmmoName( II.iszAmmo2 );
memset( &II, 0, sizeof II );
memset( &II, 0, sizeof( II ));
UTIL_PrecacheModel( iViewModel() );
UTIL_PrecacheModel( iWorldModel() );
@ -257,7 +254,9 @@ void CBasePlayerWeapon :: Precache( void )
//=========================================================
int CBasePlayerWeapon :: GetItemInfo( ItemInfo *p )
{
if (FStringNull(pev->netname)) pev->netname = pev->classname;
if( FStringNull( pev->netname ))
pev->netname = pev->classname;
if( ParseWeaponFile( p, STRING( pev->netname )))
{
// make unical weapon number
@ -275,6 +274,10 @@ void CBasePlayerWeapon :: Spawn( void )
{
Precache();
// don't let killed entity continue spawning
if( pev->flags & FL_KILLME )
return;
pev->movetype = MOVETYPE_TOSS;
pev->solid = SOLID_BBOX;
pev->sequence = 1; // set world animation
@ -389,7 +392,7 @@ int CBasePlayerWeapon :: ParseWeaponFile( ItemInfo *II, const char *filename )
if( !pfile )
{
Msg( "Warning: Weapon info file for %s not found!\n", STRING(pev->netname) );
ALERT( at_warning, "Weapon info file for %s not found!\n", STRING( pev->netname ));
COM_FreeFile( pfile );
UTIL_Remove( this );
return 0;
@ -398,16 +401,16 @@ int CBasePlayerWeapon :: ParseWeaponFile( ItemInfo *II, const char *filename )
{
II->iszName = pev->netname;
DevMsg("Parse %s.txt\n", STRING( II->iszName ));
ALERT( at_aiconsole, "\nparse %s.txt\n", STRING( II->iszName ));
// parses the type, moves the file pointer
iResult = ParseWeaponData( II, pfile );
DevMsg("Parsing: WeaponData{} %s\n", iResult ? "OK" : "ERROR" );
ALERT( at_aiconsole, "Parsing: WeaponData{} %s\n", iResult ? "^3OK" : "^1ERROR" );
iResult = ParsePrimaryAttack( II, pfile );
DevMsg("Parsing: PrimaryAttack{} %s\n", iResult ? "OK" : "ERROR" );
ALERT( at_aiconsole, "Parsing: PrimaryAttack{} %s\n", iResult ? "^3OK" : "^1ERROR" );
iResult = ParseSecondaryAttack( II, pfile );
DevMsg("Parsing: SecondaryAttack{} %s\n", iResult ? "OK" : "ERROR" );
ALERT( at_aiconsole, "Parsing: SecondaryAttack{} %s\n", iResult ? "^3OK" : "^1ERROR" );
iResult = ParseSoundData( II, pfile );
DevMsg("Parsing: SoundData{} %s\n", iResult ? "OK" : "ERROR" );
ALERT( at_aiconsole, "Parsing: SoundData{} %s\n", iResult ? "^3OK" : "^1ERROR" );
COM_FreeFile( pfile );
return 1;
}

View File

@ -12,6 +12,8 @@
#include "gamerules.h"
#include "game.h"
#include "defaults.h"
#include "baseitem.h"
#include "baseweapon.h"
void EntvarsKeyvalue( entvars_t *pev, KeyValueData *pkvd );
@ -137,7 +139,25 @@ int DispatchSpawn( edict_t *pent )
int DispatchCreate( edict_t *pent, const char *szName )
{
return -1; // -1 = failed, 0 = done
if( FNullEnt( pent ) || FStringNull( szName ))
return -1;
int istr = ALLOC_STRING( szName );
// handle virtual entities here
if( !strncmp( szName, "weapon_", 7 ))
{
CBasePlayerWeapon *pWeapon = GetClassPtr((CBasePlayerWeapon *)VARS( pent ));
pWeapon->pev->netname = istr;
return 0;
}
else if( !strncmp( szName, "item_", 5 ) || !strncmp( szName, "ammo_", 5 ))
{
CItem *pItem = GetClassPtr((CItem *)VARS( pent ));
pItem->pev->netname = istr;
return 0;
}
return -1;
}
void DispatchKeyValue( edict_t *pentKeyvalue, KeyValueData *pkvd )

View File

@ -41,9 +41,6 @@ typedef int BOOL;
#include <stdlib.h>
#include <math.h>
// Header file containing definition of globalvars_t and entvars_t
typedef float vec_t; // needed before including progdefs.h
inline unsigned long& FloatBits( vec_t& f ) { return *reinterpret_cast<unsigned long*>(&f); }
inline unsigned long const& FloatBits( vec_t const& f ) { return *reinterpret_cast<unsigned long const*>(&f); }
inline vec_t BitsToFloat( unsigned long i ) { return *reinterpret_cast<vec_t*>(&i); }

View File

@ -1,3 +0,0 @@
#pragma once
// attempt to be remove

View File

@ -1145,24 +1145,8 @@ void UTIL_PrecacheEntity( const char *szClassname )
edict_t *pent;
int istr = ALLOC_STRING( szClassname );
// check for virtual entities
if( FUNCTION_FROM_NAME( szClassname ))
{
pent = CREATE_NAMED_ENTITY( istr );
if( FNullEnt( pent )) return;
}
else if( !strncmp( szClassname, "weapon_", 7 ))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY( MAKE_STRING( "weapon_generic" ));
if ( FNullEnt( pent )) return; //this never gonna called anymore. just in case
pent->v.netname = istr;
}
else // unknown error
{
ALERT( at_error, "can't create %s\n", szClassname );
return;
}
CBaseEntity *pEntity = CBaseEntity::Instance( VARS( pent ));
if( pEntity ) pEntity->Precache();
@ -1390,8 +1374,6 @@ BOOL UTIL_EntIsVisible( entvars_t* pev, entvars_t* pevTarget)
//========================================================================
void UTIL_PrecacheResourse( void )
{
//constant precaches
// null and errors stuff
g_sModelIndexErrorModel = UTIL_PrecacheModel("models/common/error.mdl");//last crash point
g_sModelIndexErrorSprite = UTIL_PrecacheModel("sprites/error.spr");

View File

@ -212,6 +212,7 @@ extern BOOL FNullEnt( CBaseEntity *ent );
// and Doom3 colloisation
#define iStringNull 0
inline BOOL FStringNull( int iString ) { return iString == iStringNull; }
inline BOOL FStringNull( const char *szString ) { return (szString && *szString) ? FALSE : TRUE; };
inline BOOL FStringNull( Vector vString ) { return vString == Vector( 0, 0, 0); }
#define cchMapNameMost 32

View File

@ -3695,39 +3695,10 @@ void CBasePlayer::GiveNamedItem( const char *pszName )
edict_t *pent;
int istr = MAKE_STRING( pszName );
if( FUNCTION_FROM_NAME( pszName ))
{
pent = CREATE_NAMED_ENTITY( istr );
if( FNullEnt( pent )) return;
}
else if( !strncmp( pszName, "weapon_", 7 ))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("weapon_generic"));
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if( !strncmp( pszName, "item_", 5 ))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
pent->v.netname = istr;
}
else if(!strncmp( pszName, "ammo_", 5))
{
//may be this a weapon_generic entity?
pent = CREATE_NAMED_ENTITY(MAKE_STRING("item_generic"));
if ( FNullEnt( pent )) return;//this never gonna called anymore. just in case
pent->v.netname = istr;
}
else //unknown error
{
Msg("can't create %s\n", pszName );
return;
}
DevMsg("Give %s\n", STRING(pent->v.classname));
ALERT( at_aiconsole, "Give %s\n", STRING( pent->v.classname ));
VARS( pent )->origin = pev->origin;
pent->v.spawnflags |= SF_NORESPAWN;

View File

@ -55,7 +55,8 @@ Beta 13.12.08
24.ed_fields flags OK
25.install ALL missing models & sounds! OK
26.fixangle doesn't working correctly
27.fixup viewmodel drawing
27.fixup viewmodel drawing OK
28.fixing r_pause_effect
Список доступных рендереров: Что в них интересного

View File

@ -256,8 +256,8 @@ opcode_t pr_opcodes[] =
{"<<", "LSHIFT_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
{">>", "RSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
{"<<", "LSHIFT_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
{"%", "OP_MODULO_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
{"%", "OP_MODULO_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
{"%", "MODULO_I", 3, ASSOC_LEFT, &type_integer, &type_integer, &type_integer},
{"%", "MODULO_F", 3, ASSOC_LEFT, &type_float, &type_float, &type_float},
{"<ARRAY>", "GET_POINTER", -1, ASSOC_LEFT, &type_float, &type_integer, &type_pointer},
{"<ARRAY>", "ARRAY_OFS", -1, ASSOC_LEFT, &type_pointer, &type_integer, &type_pointer},
{"=", "LOADA_F", 6, ASSOC_LEFT, &type_float, &type_integer, &type_float},

View File

@ -159,7 +159,51 @@ char *prvm_opnames[] =
"^6SWITCH_FNC",
"^6CASE",
"^6CASERANGE"
"^6CASERANGE",
"STORE_I",
"STORE_IF",
"STORE_FI",
"ADD_I",
"ADD_FI",
"ADD_IF",
"SUB_I",
"SUB_FI",
"SUB_IF",
"CONV_ITOF",
"CONV_FTOI",
"CP_ITOF",
"CP_FTOI",
"LOAD_I",
"STOREP_I",
"STOREP_IF",
"STOREP_FI",
"BITAND_I",
"BITOR_I",
"MUL_I",
"DIV_I",
"EQ_I",
"NE_I",
"IFNOTS",
"IFS",
"NOT_I",
"DIV_VF",
"POWER_I",
"RSHIFT_I",
"LSHIFT_I",
"RSHIFT_F",
"LSHIFT_F",
"MODULO_I",
"MODULO_F",
};
char *PRVM_GlobalString (int ofs);
@ -183,18 +227,14 @@ void PRVM_PrintStatement (dstatement_t *s)
if( vm.prog->statement_linenums )
Msg( "%s:%i: ", PRVM_GetString( vm.prog->xfunction->s_file ), vm.prog->statement_linenums[ opnum ] );
if (prvm_statementprofiling->value)
if( prvm_statementprofiling->integer )
Msg( "%7.0f ", vm.prog->statement_profile[s - vm.prog->statements] );
if ( (unsigned)s->op < sizeof(prvm_opnames)/sizeof(prvm_opnames[0]))
if((uint)s->op < sizeof( prvm_opnames ) / sizeof( prvm_opnames[0] ))
{
Msg( "%s ", prvm_opnames[s->op] );
i = strlen(prvm_opnames[s->op]);
// don't count a preceding color tag when padding the name
if (prvm_opnames[s->op][0] == STRING_COLOR_TAG)
i -= 2;
for ( ; i<10 ; i++)
Msg(" ");
i = com.cstrlen( prvm_opnames[s->op] );
for( ; i < 10; i++ ) Msg(" ");
}
if (s->op == OP_IF || s->op == OP_IFNOT)
Msg("%s, s%i",PRVM_GlobalString((unsigned short) s->a),(signed short)s->b + opnum);

View File

@ -253,17 +253,14 @@ void PRVM_Init( int argc, char **argv )
size_t size;
byte *image;
if( !FS_FileExists( "bin/client.dll" ) || !FS_FileExists( "bin/server.dll" ))
{
image = FS_LoadInternal( "progs.pk3", &size );
if( size ) FS_WriteFile( "progs.pk3", image, size );
Cmd_ExecuteString( "fs_rescan\n" );
}
// dump internal copies of progs into hdd if missing
if(!FS_FileExists(va("%s/server.dat", GI->vprogs_dir)))
{
image = FS_LoadInternal( "server.dat", &size );
if( size ) FS_WriteFile(va("%s/server.dat", GI->vprogs_dir), image, size );
}
if(!FS_FileExists(va("%s/client.dat", GI->vprogs_dir)))
{
image = FS_LoadInternal( "client.dat", &size );
if( size ) FS_WriteFile(va("%s/client.dat", GI->vprogs_dir), image, size );
}
if(!FS_FileExists(va("%s/uimenu.dat", GI->vprogs_dir)))
{
image = FS_LoadInternal( "uimenu.dat", &size );

View File

@ -463,9 +463,12 @@ void ParseEntities( void )
{
num_entities = 0;
mapfile = Com_OpenScript( "entities", dentdata, entdatasize );
if( mapfile ) while( ParseEntity( ));
if( mapfile )
{
while( ParseEntity( ));
Com_CloseScript( mapfile );
}
}
/*
================
@ -480,7 +483,6 @@ void UnparseEntities( void )
char *buf, *end;
char line[2048];
char key[MAX_KEY], value[MAX_VALUE];
char *value2;
int i;
buf = dentdata;
@ -492,22 +494,11 @@ void UnparseEntities( void )
ep = entities[i].epairs;
if( !ep ) continue; // ent got removed
// certain entities get stripped from bsp file */
value2 = ValueForKey( &entities[i], "classname" );
com.strcat( end, "{\n" );
end += 2;
// always place "classname" at first
StripTrailing( value2 );
com.snprintf( line, 2048, "\"classname\" \"%s\"\n", value2 );
com.strcat( end, line );
end += com.strlen( line );
for( ep = entities[i].epairs; ep; ep = ep->next )
{
if( !com.stricmp( ep->key, "classname" ))
continue; // already stored
com.strncpy( key, ep->key, MAX_KEY );
StripTrailing( key );
com.strncpy( value, ep->value, MAX_VALUE );

View File

@ -230,32 +230,31 @@ int PlaneFromPoints( vec_t *p0, vec_t *p1, vec_t *p2 )
return FindFloatPlane( normal, dist );
}
void PrintContents( int cnt )
void CntString( int cnt, char *contents )
{
Msg("Contents:" );
contents[0] = '\0';
if( cnt & CONTENTS_SOLID ) Msg( "solid " );
if( cnt & CONTENTS_WINDOW) Msg( "window " );
if( cnt & CONTENTS_AUX ) Msg( "aux " );
if( cnt & CONTENTS_LAVA) Msg( "lava " );
if( cnt & CONTENTS_SLIME) Msg( "slime " );
if( cnt & CONTENTS_WATER) Msg( "water " );
if( cnt & CONTENTS_SKY) Msg( "sky " );
if( cnt & CONTENTS_SOLID ) com.strcat( contents, "solid " );
if( cnt & CONTENTS_WINDOW) com.strcat( contents, "window " );
if( cnt & CONTENTS_AUX ) com.strcat( contents, "aux " );
if( cnt & CONTENTS_LAVA) com.strcat( contents, "lava " );
if( cnt & CONTENTS_SLIME) com.strcat( contents, "slime " );
if( cnt & CONTENTS_WATER) com.strcat( contents, "water " );
if( cnt & CONTENTS_SKY) com.strcat( contents, "sky " );
if( cnt & CONTENTS_MIST) Msg( "mist " );
if( cnt & CONTENTS_FOG) Msg( "fog " );
if( cnt & CONTENTS_AREAPORTAL) Msg( "areaportal " );
if( cnt & CONTENTS_PLAYERCLIP) Msg( "playerclip " );
if( cnt & CONTENTS_MONSTERCLIP) Msg(" monsterclip " );
if( cnt & CONTENTS_CLIP) Msg( "clip " );
if( cnt & CONTENTS_ORIGIN) Msg(" origin" );
if( cnt & CONTENTS_MIST) com.strcat( contents, "mist " );
if( cnt & CONTENTS_FOG) com.strcat( contents, "fog " );
if( cnt & CONTENTS_AREAPORTAL) com.strcat( contents, "areaportal " );
if( cnt & CONTENTS_PLAYERCLIP) com.strcat( contents, "playerclip " );
if( cnt & CONTENTS_MONSTERCLIP) com.strcat( contents, " monsterclip " );
if( cnt & CONTENTS_CLIP) com.strcat( contents, "clip " );
if( cnt & CONTENTS_ORIGIN) com.strcat( contents, " origin" );
if( cnt & CONTENTS_BODY) Sys_Error("\nCONTENTS_BODY detected\n" );
if( cnt & CONTENTS_CORPSE) Sys_Error("\nCONTENTS_CORPSE detected\n" );
if( cnt & CONTENTS_DETAIL) Msg(" detail " );
if( cnt & CONTENTS_TRANSLUCENT) Msg( "translucent " );
if( cnt & CONTENTS_LADDER) Msg( "ladder " );
if( cnt & CONTENTS_TRIGGER) Msg( "trigger " );
Msg( "\n" );
if( cnt & CONTENTS_DETAIL) com.strcat( contents, " detail " );
if( cnt & CONTENTS_TRANSLUCENT) com.strcat( contents, "translucent " );
if( cnt & CONTENTS_LADDER) com.strcat( contents, "ladder " );
if( cnt & CONTENTS_TRIGGER) com.strcat( contents, "trigger " );
}
//====================================================================
@ -268,6 +267,7 @@ int BrushContents( mapbrush_t *b )
{
int contents;
int i, trans;
string cnt1, cnt2;
side_t *s;
s = &b->original_sides[0];
@ -279,10 +279,13 @@ int BrushContents( mapbrush_t *b )
{
s = &b->original_sides[i];
trans |= dshaders[texinfo[s->texinfo].shadernum].surfaceFlags;
if( s->contents != contents && !( trans & SURF_NODRAW ))
if(( s->contents != contents ) && ( trans & SURF_NODRAW ) == 0 )
{
CntString( s->contents, cnt1 );
CntString( contents, cnt2 );
// nodraw textures are ignored
MsgDev( D_WARN, "Entity %i, Brush %i: mixed face contents\n", b->entitynum, b->brushnum );
MsgDev( D_WARN, "Entity %i, Brush %i: mixed face contents ( %s) and ( %s)\n", b->entitynum, b->brushnum, cnt1, cnt2 );
break;
}
}
@ -699,7 +702,7 @@ void ParseBrush( bsp_entity_t *mapent )
planenum = PlaneFromPoints( planepts[0], planepts[1], planepts[2] );
if( planenum == -1 )
{
Msg( "Entity %i, Brush %i: plane with no normal\n", b->entitynum, b->brushnum );
MsgDev( D_ERROR, "Entity %i, Brush %i: plane with no normal\n", b->entitynum, b->brushnum );
continue;
}

View File

@ -174,7 +174,6 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
winding_t *w;
// find the major axis
max = -BOGUS_RANGE;
x = -1;
for( i = 0; i < 3; i++ )
@ -186,10 +185,9 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
max = v;
}
}
if (x==-1)
Sys_Error ("BaseWindingForPlane: no axis found");
if( x == -1 ) Sys_Error ("BaseWindingForPlane: no axis found");
VectorCopy (vec3_origin, vup);
VectorClear( vup );
switch( x )
{
case 0:
@ -204,11 +202,8 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
v = DotProduct( vup, normal );
VectorMA( vup, -v, normal, vup );
VectorNormalize( vup );
VectorScale( normal, dist, org );
CrossProduct( vup, normal, vright );
VectorScale( vup, BOGUS_RANGE, vup );
VectorScale( vright, BOGUS_RANGE, vright );
@ -430,8 +425,7 @@ void ChopWindingInPlace (winding_t **inout, vec3_t normal, vec_t dist, vec_t eps
*inout = NULL;
return;
}
if (!counts[1])
return; // inout stays the same
if( !counts[1] ) return; // inout stays the same
maxpts = in->numpoints+4; // cant use counts[0]+2 because
// of fp grouping errors