Advertising

review www.do11warnet.blogspot.com on alexa.com

Thursday, January 19, 2012

Make D3D9 MENU HACK Part 2

Part 2
Part 1 | Part 2 | Part 3

#pragma.h

//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------

#pragma warning(disable: 4018)
#pragma warning(disable: 4996)
#pragma warning(disable: 4102)
#pragma warning(disable: 4244)
//-----------------------------------------------------------------------------
#Sounds.h
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
char* SWITCH = "\x52\x49\x46\x46\x7C\x30\x00\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x02\x00\x44\xAC\x00\x00\x10\xB1\x02\x00\x04\x00\x10\x00\x64\x61\x74\x61\x10\x30\x00\x00\x8E\x00\x50\x00\x0A\x05\x2A\x00\xB8\x02\x25\x00\x0B\xFE\xF8\xFF\xB8\x00\x79\xFF\xD2\xF9\x20\xFF\x32\x01\x2D\xFF\xB6\x0A\x22\xFF\x81\xFD\xFA\xFE\x94\xFC\xB2\xFF\x14\xFA\xC5\x00\xFA\xF6\xF4\x00\xC6\xFC\xE9\xFF\x80\xFE\x48\xFF\x0E\xFE\x98\xFF\xC9\xFE\xE6\x00\xE7\x01\x7D\x01\x6F\x01\x42\x00\x07\x06\x93\xFE\xDB\x02\x65\xFE\x2D\x05\xA3\xFF\x33\xFE\x4E\x00\x84\xF9\xD1\x00\x6A\xFD\xE8\x00\xB9\xFD\x4F\x00\xFF\x05\x40\x00\xB8\x04\x1E\x00\x7B\x02\x6E\xFF\xC6\xFE\x60\xFF\x94\xFE\x6F\x00\x0D\xFB\x7B\x00\x65\xFE\xBC\xFF\xBB\xFB\x36\xFF\x7B\xFB\xF8\xFE\xE9\xFC\x12\xFF\xD7\xFE\xE6\xFE\x02\xFE\x14\xFF\xDE\xFE\x52\xFF\x8A\x01\xFA\xFE\xD0\x04\xE5\xFE\x69\x05\xF2\xFF\x7F\x04\x6D\x00\x2E\x06\x30\x01\x85\xFF\xDE\x01\x92\x00\x53\x01\xC3\x01\x3A\x01\x81\x01\x29\x00\x3B\xFF\x5E\xFF\x50\xFF\xFD\xFF\xC8\xFB\xA7\x00\x3B\xFE\xC5\x00\x75\x08\x45\x01\xED\x17\xB7\x01\x68\x27\xD9\x00\x3D\x24\x1A\x00\x47\x05\x0F\xFF\x47\xDF\x4E\xFE\x77\xE1\x9E\xFE\xE4\xF0\xF7\xFD\xE6\xF3\xFC\xFD\xEE\xF2\x31\xFF\x36\xDE\x21\x00\x59\xCE\x52\x00\x50\xEB\x83\x00\x5A\x0A\xEF\x00\x9A\x19\xB6\x00\xD8\x29\x2C\x00\x0A\x23\x39\x02\x45\x01\xFA\x07\x9B\xF1\x76\x0B\x86\xFF\x25\x06\x04\xF7\x9F\xFD\x85\x0A\x77\xFB\xF3\x01\x2A\xFB\xFD\xD7\xD0\xF7\x16\xF1\x2D\xFB\xA1\x03\xFA\xFD\xEB\xFF\xC6\xF3\x1C\xFC\x82\xEE\xEB\xEE\x2A\xF6\xCE\xDA\x93\x00\x3B\xDD\x6B\x09\xB6\xE2\x3F\x0E\xC6\xFB\xEB\x09\x82\x14\xF4\x06\xEA\x0B\xA8\x06\xBF\x06\x93\xFF\xF7\x21\xC1\xFE\x17\x22\x73\x04\x56\x0D\xEE\xF6\xB4\x1E\xEC\xF0\x99\x11\x8C\xFE\x9A\x0E\x7F\xFC\x7B\x14\xF5\x00\x47\xF1\x1C\x06\x6B\xF7\xD9\xF9\xF0\x06\x7F\xF6\x8C\xFC\x15\xFC\x64\xF8\xF0\xFF\xA0\x07\xDC\xFF\x55\x14\xD9\x01\x0D\x18\x3B\x02\xB6\x12\xE9\xFA\x7C\xF1\x11\xF7\xC9\x17\x60\xF9\xF0\x31\xCC\x04\xB1\xFD\xC6\x0A\xEB\xED\x73\x04\x0B\x08\xCE\x06\x83\x25\xFE\x06\xD7\x1D\x1F\x05\xBE\x3E\x7D\x04\xFA\x41\xE3\xFD\x87\x16\x3F\x06\xCA\xFC\xEA\x12\xEE\xE7\x44\x0A\x39\xE1\xD0\xFD\x3B\xCB\x0E\xF8\xD4\xB4\xC9\xF9\x2A\xA7\xCB\xFE\x74\xAE\x45\x01\x50\xCB\x74\x00\x05\xBF\x47\xFF\x3D\xA1\x9F\xFD\x0B\xCB\xE1\xFE\xB9\x04\x84\xFD\x99\x1B\x52\xFB\x6A\x62\x9C\x02\x4E\x5A\x0E\x02\x89\xDD\xD4\xFB\x05\xFD\x06\xFC\xD1\x58\xEA\xFF\x82\x13\x3C\x01\x2C\xBD\x48\x05\xBA\xB4\x28\x08\x64\x02\x4F\x07\x32\x1A\x29\x04\xC7\x2F\x34\xFD\x10\xEB\xC8\xE8\xDA\xC6\x8B\xE8\x9C\xE5\xA0\xF2\xD6\xB6\x84\xDC\x24\x0B\xDD\xEE\xFA\xF0\xD2\x0E\x18\x67\x57\x03\xDD\x37\x66\x14\xD6\x0E\x53\x08\xD7\xC7\x07\xF5\x3A\x1A\x73\x11\x44\x69\x2A\x11\x82\xDD\x70\xE9\xAF\xFA\x4D\xCC\x74\x1B\x7E\xF8\xE3\xC2\x6C\x1D\x6A\xF1\x56\x16\x33\x1F\x14\x1A\x10\x22\x48\x0E\x21\x6D\x02\xFF\x3B\xF6\xE6\x02\x3E\xE7\x7A\xF8\x64\x08\x87\xF8\xDD\x50\xEC\xF6\xF8\x64\xB9\xC5\x1E\x2C\x6C\xBD\x19\xEA\xB8\x0E\xEF\xE8\x1C\x20\x95\xFF\x7E\xE0\x80\xAC\x7B\xDA\x5E\xD4\x18\x1F\x26\x0A\xD5\x42\x0F\xFF\xD9\x46\x15\x47\x03\x40\xD4\xDC\xDF\x2A\x3D\x0B\x47\x24\x00\x37\x76\x09\x2B\xC9\xC0\xFE\xEA\xA2\xD9\x0C\x95\xA5\x36\x0F\xC7\x1C\x40\xD5\x90\x20\x9C\xB0\x57\xF3\x12\xFB\x5C\xC2\xA3\x29\xDD\xDE\xD4\x12\x43\x5D\x04\xF9\x69\x11\x2E\xDB\xD0\x29\x98\xF0\x7A\xD4\x4D\x01\xF9\xEB\x9F\xFA\x2F\x39\xFA\x1D\x5D\xC6\x9F\x1D\xFF\x96\x62\xF2\xBC\xB5\xB3\xCC\xDC\x00\x5E\xDC\x07\xA7\xDA\xFC\xC4\xDC\x4B\x00\x1A\x50\x84\x01\xFC\x57\x86\xF5\xFF\x7F\x48\x06\xCC\x6B\x0F\x0D\x06\x35\x05\xFF\xED\xFD\x49\xF0\xA2\xF6\xAA\xE3\x59\xC8\x3F\xE0\xDD\x1F\x1F\xEB\xC5\xBA\xAE\x14\x47\xD3\xCB\x13\x05\xE0\x01\xFB\x1D\xC8\x71\x0E\x1F\x62\x88\xFF\xD9\xF1\x10\xE3\xF8\xD5\x03\xFC\x00\x2D\x0B\x17\xBE\x18\xF2\x15\x3B\x4A\xE7\xFF\xA4\x73\x45\x09\x4D\x0E\xB6\x35\x8F\xD3\xC8\x2A\x4A\xFA\x1D\xF6\x0C\x48\x10\xDC\x7E\x39\x07\xD1\x0D\x1B\x39\xD9\xB5\xC5\x1B\x0D\x1A\x97\x5E\x2F\x4E\xC5\x32\x3E\xB3\x0C\x20\x08\x57\xCC\x89\xD0\x93\xCA\x69\xE8\x18\xD1\x32\x04\xE4\xA1\xF1\x24\xA4\x0D\x54\x20\xF6\x41\xDA\xF1\x1A\x71\x11\xE4\x37\x47\xFA\xE1\x9D\xC6\x96\xE6\x85\xD4\x07\xFB\x7A\x02\x13\x16\x13\x48\x70\xF4\xEA\x22\xD5\xD6\x0D\xDD\x79\xD0\x86\xB4\x12\x08\x73\xBE\xE7\x42\x31\x35\xBA\x29\xFB\x37\x97\x09\xD1\x2B\x13\x04\xF6\x2E\x30\x0A\x79\xE6\x3F\xF5\x7E\xD4\x4F\xE0\xF6\x32\x61\xEB\x4B\x4C\xFC\xE4\xCA\x01\xA4\xE1\x7C\xB6\x7F\x04\x78\xC3\xEE\x0A\xE1\xB6\xC3\xFB\x5B\x0E\xA9\xFB\x77\x49\x9E\xF1\x96\xF0\x3E\x06\x36\xD2\x5F\x47\x83\xCB\x42\x4D\x07\xC1\x51\x16\x92\x24\xF2\xE2\x0B\x50\xB8\xDA\xCB\x22\xE2\xF0\x8B\xCF\xD4\xF9\x5C\x9D\x93\x09\x07\xEB\xE0\x04\x00\x05\x74\xE4\x0A\x3C\xD0\xEB\xE3\x3D\xF8\xF4\x11\xE8\xE7\x07\xAC\x1E\x08\x12\xD7\x1B\x28\xFA\x51\x53\xA5\xE5\xAE\x35\x0C\xDF\x20\xB2\xBC\xF7\x9E\x07\x17\x15\x54\xBC\x81\x1B\xF9\xF0\x69\x10\x99\x3E\x82\x12\x36\xCE\xF0\x16\x11\xA9\x25\x04\x06\xCD\x69\xF5\x3E\x2F\x78\xE6\x10\x4E\x47\xD0\xB2\x03\x18\xE6\xB5\x31\xEB\x0D\x88\x5C\x82\x0F\xCE\x52\x0D\x04\x5B\x24\x0C\xFF\xAA\xEE\x37\xF8\x10\xC8\x73\xFF\x4D\xC4\xD0\x03\x88\x05\x2C\xFF\x9A\x06\xBC\x0F\xF0\x9B\x85\x0A\xCF\xBD\xBF\xF9\xD4\xE3\x19\xFA\xE1\xC7\x10\x05\x19\x15\x2F\x07\xE8\x43\x60\x01\xCD\x2E\x0E\x07\xC5\x47\x9D\x12\x58\x14\x5B\x07\xC3\x5A\xF1\x05\x99\x53\x7C\x04\xF0\x06\x03\xE4\xB2\x01\x29\xD8\x63\xCE\x49\xE7\xB0\x09\xEC\xFB\xB6\x2B\x5D\x15\x25\xC1\xF6\x12\xFA\xBB\x28\x06\xCA\x9D\x71\x0A\xDA\x0B\xB1\x0E\xE4\x2A\x05\x23\xC0\x07\xD8\x1E\x96\xFA\x9F\x09\x99\xBF\x36\xFC\xD6\xFD\x10\xF0\x0B\x3D\xCE\xED\xFD\x22\xFF\xE1\x9F\x1A\x7A\xD4\x57\xF2\xA6\xE1\x09\x15\x46\xF4\xC2\x0E\xEA\x01\xE1\xF9\x38\x0B\x70\xED\x1F\x10\xA1\xB8\x84\x19\x06\xD7\x9B\x21\x85\xC7\x36\x23\x71\xD4\x29\x1C\x53\xC7\x72\x05\xC8\xD6\x3E\xED\x2C\xE0\xB9\xF2\x10\xD3\xB8\xEA\xB0\x08\x59\xE4\xAB\x1F\x19\xEB\x75\x57\x96\xF0\x82\x52\x55\xEE\x63\x1F\xBE\xEE\x07\x47\xA8\x0C\xD1\x3E\x65\x14\x86\x10\x48\x05\xD1\x05\xF0\x06\x49\xF4\x09\x02\xD2\xBE\xC1\x0B\x64\xB4\x09\x07\x3B\xB9\x1D\xFA\xB8\xB6\x72\x02\xBD\xD9\xD9\x00\xD8\xCF\xB1\xF4\xBD\xCE\x33\xF5\xC1\x10\xBD\x02\xED\x42\xB0\x07\x4D\x66\xA1\x06\x00\x53\x03\xFE\xA4\x75\xD6\xFB\x9C\x60\x5B\x03\xE5\x14\x5A\x0B\xF9\x10\x34\x05\xFA\xF3\x12\xF2\x41\xCC\x8E\xEC\x0D\xBE\xA7\xF3\x25\xA9\x51\xF6\xDD\x9B\x95\x0B\x82\xCD\x93\x10\xCA\xCE\x88\x02\xD4\xBC\xB1\x00\x28\xFC\x67\x0A\xEC\x31\xA0\x0B\xD5\x3F\xE3\xFC\xE3\x2D\x51\xF8\x87\x26\xD9\xFE\x46\x2F\x3B\x00\x2B\x34\xAE\xFF\x20\x12\x43\xF6\x0D\xE3\x80\xEF\x9E\xEC\xBC\xF8\xC6\xD2\x3E\x07\x39\xD8\x75\x07\xDF\xC8\x7F\x03\xBF\xD9\x46\x0A\xC5\x06\x00\x0A\x13\xDF\x72\x02\xCD\xDF\xA2\xFE\xDD\x26\x43\x00\xE3\x41\x2C\xFA\x08\x34\x3C\xF7\xE0\x08\xE5\xFB\x0E\x13\x85\xF4\x1E\x1B\xDC\xF2\x02\x30\x77\xFC\x4B\x19\x06\x06\x3D\xE0\x22\x09\x79\xD3\x57\x01\x50\xE2\xEA\x04\xF7\xEE\x5F\x0E\x05\xEC\xB3\x14\xFE\xE6\xE9\x0E\x94\xF6\x1A\x05\xEB\xED\x01\x04\xEA\x07\x76\x00\x5A\x08\xB3\xF0\xEC\x09\xA4\xEC\xB0\x17\xAE\xF7\x5B\x00\x8B\xF8\x3A\xF3\x0C\xFF\x47\x03\xE7\x01\xFF\x28\xB0\xFC\xE6\x11\xD9\x00\xDD\x02\xE4\x05\x18\x18\x52\x0C\xD3\xFF\xC0\x0F\x42\xDC\xEF\x02\x80\xEB\x96\xF3\xC2\xE4\xBF\xF9\x7C\xD2\x8D\x06\xEF\xD3\x2F\xFE\xA6\xD9\x0D\xF6\x6B\x09\x23\xF9\x18\x1B\x17\xF6\x6F\x1B\x87\xF8\x0F\x24\x95\x00\x41\x3C\x34\x0C\xE1\x23\x2C\x0C\x01\x1B\xFF\x02\x36\x17\x0D\x03\x49\xF5\x76\x06\xC1\xF8\x81\x01\xEB\xE6\xCC\xF8\x0C\xD8\x99\xF5\x12\xEB\x54\xF2\xEB\xDE\x70\xF5\xC4\xCD\xB8\xF9\x02\xEC\xE7\x01\x9F\xF3\x23\x08\xD5\xFF\x72\xFF\xC3\x05\x5B\x01\x37\x09\x6C\x0D\x9D\x1B\x43\x11\x9F\x1B\xBC\x0F\x7B\x05\x83\x05\xAB\xFD\x76\x00\xBB\x1E\x9B\xFF\xA9\x20\x50\xF7\x4D\xED\x40\xF5\xDA\xCB\x25\xFB\xC1\xD3\xBC\xF5\x9C\xFB\x60\xF3\xFE\xFA\xD4\xFD\x21\xE7\xE3\x06\xFF\xFF\xD7\x09\xF5\x2E\xFC\x0B\x62\x1D\x3D\x0A\x20\x05\x39\x05\xE4\x05\x1D\x05\x88\x0A\xBF\xFE\xDB\x06\xCE\xF9\x1F\xF3\x6F\xFA\xA3\xD6\x11\x01\x81\xEB\xC4\x01\x17\xF2\xF6\xFD\x25\xEB\x6A\x04\x0E\xFB\x96\x05\xB0\x19\x0E\x00\xDE\x1A\xA3\xFF\x10\x13\x4B\x02\x20\x0C\xCE\x07\x9C\x05\x33\x0A\x11\x0D\x8C\x07\x74\x15\xF8\xFB\xE2\x09\x51\xF2\x2F\xFD\x1F\xF4\x32\xE9\x10\xF7\xC4\xEE\xCE\xF6\x05\x0C\xD7\xF7\x12\xF8\xBA\xF8\x76\xFC\x3B\x03\xF9\xF3\xF8\x10\xBD\xF4\x53\x0F\x60\x03\x90\x08\x8A\xF3\xAC\x04\x3E\xFF\x00\x07\x95\x06\x08\x05\x86\x11\x72\xFB\x87\x13\x53\xF9\xDF\xFC\xB8\xFB\xA3\xE4\x7D\xF9\xAE\xF4\x88\xFA\x12\x06\x76\xFD\x5E\xF2\x21\xFE\xFC\xF7\x9B\x01\x15\xFA\x14\x00\x2C\xFB\x39\x06\xD9\x0B\x6C\x0D\x69\x08\x2F\x0C\xCC\x01\x29\x08\x34\x09\x70\xFE\x4B\x01\x49\xF4\x64\xF6\xB1\xF4\x0F\x00\x13\xF8\x11\x06\x80\xF8\xC3\x02\x3F\xF8\xFD\xEB\x61\xFA\x10\xF2\x2D\xFB\xCA\x01\xB4\xFC\x32\x10\xC0\x04\x89\x00\x11\x08\xF9\xF4\xDA\x01\xEF\x0F\x2D\xFF\x9C\x12\x41\x01\xD3\x05\xD8\x05\x17\xFB\xFC\x04\x03\xF3\x2D\x03\xBA\xFE\xC7\xFD\xB1\xFF\xAC\xF3\xF9\xF5\xEF\xF5\x41\xEF\x47\xFC\x36\x02\x5D\xFF\xC8\x08\xA6\x03\xB7\x07\x8E\x02\xA7\x03\xB2\xFE\x6D\xFE\xAE\xFF\x6B\xFA\x80\x04\xD7\xF7\xC8\x03\xC2\x00\xB3\xFE\xA6\x00\x20\xFE\xC2\x07\x05\xFD\x15\xFF\xC5\xFF\x6A\xF8\x76\x00\x04\x05\xF1\xFF\xCE\x09\x10\x05\x82\x01\xBD\x07\x7E\x01\xF8\x03\x28\x11\x70\x00\x2F\x0A\x4F\x04\x96\x08\xCB\x08\x1C\x05\x23\x01\x76\xFB\xCE\xFC\x5D\x02\x1F\xFA\x34\xF8\xC3\xF9\xC3\xEB\x49\xFD\x52\xF4\xC6\xFF\x83\xFC\xC7\xFD\x5B\xF8\x26\xFB\x2C\xF6\xA5\x01\x2E\x01\xFB\x09\x6A\x0E\x6A\x08\x2B\x04\x50\x03\xF8\x06\x83\x00\xC8\x04\xA3\x01\x61\xFD\x8A\x00\x41\x03\x7F\xFF\x8F\xFB\xF6\xFF\x86\xFA\xE9\xF9\x37\xF9\x37\xF4\x33\xFF\x15\xF6\x33\x02\xA6\xFD\x19\xFC\x3D\xFD\x3F\xFB\xDC\xFC\x0C\x01\x0F\x03\x66\x08\xE3\x05\xBE\x02\x68\x04\xBE\x04\xE1\x01\xBD\x05\xF3\x00\x21\xFD\x77\xFF\x82\xF7\xBD\xFA\x6C\xF4\xD3\xFB\xB3\xFA\xFE\xFE\x94\xF8\x1B\xFC\xAC\xE8\xD4\xFC\x36\xFB\x8E\xFF\x8D\xFF\xCA\x01\x6A\xFA\x21\x04\xA9\x0E\x20\x05\xE4\x0D\x6F\x07\x90\xFE\x09\x08\xAB\xFF\x46\x03\xD7\x0B\x23\xFC\x41\x11\x94\xFB\xF3\x10\x74\xFD\x6D\x03\x3E\xFD\x05\xFE\x17\xFC\x3A\x12\x63\xFD\x08\x05\x2B\xFF\xBA\xF1\x14\xFC\x7F\xFA\xAD\xFF\x2C\xF6\x45\x0A\x94\xFB\x6F\x0C\xFA\xFA\xB4\x09\xAC\xFC\xB2\x03\x7B\xFA\xC2\xFF\xE2\xFC\x07\x03\xEF\x05\x7B\x06\x3F\x03\xBD\xFF\x63\x03\x50\xF7\xC1\x09\x6F\xF7\x38\x0C\x08\xFC\xA2\x0A\x57\x04\x6A\x05\xF1\x04\x31\x08\xC0\xFF\xCA\x0C\xA3\x00\x19\x01\x2C\x02\x7F\xFD\x77\x00\x21\xFF\x35\x01\xBA\xFD\xEB\x02\xF3\xFE\xF3\xFE\x0B\xF4\x9F\xF9\xDF\xEC\x2E\xFA\x56\xF2\x08\xFC\x3E\xFE\xEC\xFB\xC4\x06\x7B\xFB\x0B\x08\xE4\xFF\x16\x07\x59\x02\x6C\xFC\xAA\x02\xBA\x04\xD2\x07\xA0\x11\x19\x08\xAF\x03\xD1\x00\xEA\xFC\x88\xFD\x2C\x02\x7D\xFF\xFB\xF5\xFB\x01\x22\xFC\xA9\x01\x1D\x02\xA7\xFF\x84\xFA\x80\xFB\xF7\xF1\xD1\xFD\x4B\xF3\xED\x01\x3D\x01\x7D\xFD\x30\x03\xE3\xFC\x4B\xFD\xF3\xFC\x1C\x02\x25\xF9\xF5\x01\x72\xFB\xE9\x06\xE4\xFE\xB9\x0A\xAE\x02\x18\x05\x0A\x06\x9C\xFF\xA7\x05\x8C\x07\x55\x05\xCF\x10\x05\x05\xE3\xFE\x08\x08\x7B\xEB\x7D\x07\x5F\xFB\x7A\x02\x13\x00\x44\x01\xAF\x05\x58\xFD\xBE\x0C\x57\xFC\xC9\x02\x66\x00\xA5\xFD\x8E\xFE\xEF\xF8\x00\xF9\x0C\x06\x58\xFA\x5E\x07\x3E\xFB\xA5\xF6\xCD\xF6\x5C\xFC\xEB\xF9\xA7\x08\xA9\xFF\x68\x0A\x61\x00\x6F\x03\x9B\x00\xC8\x02\xEF\x03\xA8\x03\x75\x04\x79\x01\x0F\x05\x30\xFF\x70\x08\x46\xF8\xB2\x09\xA7\xF9\xDF\x05\x89\xF9\xB5\xFE\x24\xF2\xEC\xFE\x77\xF6\xEE\x01\xFC\xF9\x3E\x01\xE8\xFF\xAF\xFD\xF1\x14\x74\xF9\x95\x0D\xFB\xF8\x63\x03\xF6\x00\x41\x03\x3F\x04\x47\x0E\x14\xFF\x75\x12\xBC\xFD\xFF\x03\x1B\x03\x20\xFC\x94\x06\x83\xF9\x59\x00\xFC\xF5\x7E\xFD\x51\xFF\x6C\xFF\x7A\xFA\x25\xFF\x3D\xF0\xFA\xFF\xE4\xF6\x1C\x02\xB8\x06\x68\x01\xF9\x0C\x49\xFF\x69\x0C\x68\x01\xEB\xFC\xA5\x02\xBD\xFD\xAB\xFF\x61\x07\x4F\x03\xC3\x01\x4A\x03\x88\xFA\x30\xFE\xE1\x05\x14\xFA\xE0\x0C\xCB\xFE\x41\xFD\x17\x04\x51\x00\x67\x00\xE2\xF4\x7B\xFC\x19\xF5\x72\xF9\xFD\x01\xF5\xF2\x67\x01\xD5\xF7\xA1\x01\x23\x03\x52\x02\xA2\x02\xA8\xFF\x4F\xFB\x7D\x01\x88\xFD\x65\x01\xA7\x06\x17\xFE\xF2\x06\x15\x02\x24\x04\x16\x05\xFF\xFF\x37\xFF\x5A\xFE\x5E\xFE\x2B\x00\xBD\x00\x45\xFA\xAC\xFE\x95\xFD\x7E\xFC\x27\x07\x7D\xFC\x64\x02\xB0\xFC\x52\x01\x34\x03\x17\x06\xD9\xFE\x81\x02\x35\xEF\x39\xFB\x1A\xFC\x36\x02\x8B\x05\xA9\xFC\x1D\x0C\xEF\xF0\x4B\x08\xDA\xF8\xBC\xFC\x7F\xF6\x16\x07\x26\xF8\x9E\x0F\x95\xFF\x1D\x03\xE0\xFA\x96\x0C\xF6\x01\x3D\x08\x36\x0C\x1C\xFC\x7E\x0D\x02\xFF\x46\x0B\x00\xF8\x3C\x0D\x2F\xEF\x23\x06\x25\xF6\x14\xF8\xFD\xFC\x3A\x01\x5A\xF7\xF6\x03\x6B\xFA\x5C\xF8\x72\xFB\x32\x03\x2D\x01\x5E\x06\x31\x06\x2D\xF6\x73\x0A\xBB\xFC\x48\x09\x03\x08\xF0\x04\x94\x03\x35\x05\xB7\xFB\x0B\x0C\x7F\xF7\x78\x02\xB6\xF9\xE0\xFD\x10\x01\x35\x05\x2C\x02\xEA\xFE\x71\xFF\xF9\x03\x24\x00\xFF\xFB\x4C\xFC\x9F\xEB\x0A\xF8\xFB\x02\x85\x04\x15\x0A\x92\x0B\x56\xFA\xB9\x00\x4D\x00\xB0\x02\xF0\x02\xC5\x04\x12\x04\xF9\xFE\x62\x0A\x7F\x03\x68\xFE\xBB\x06\x70\xFC\x70\xFD\xE4\x02\xCE\xFA\x5B\xFE\xB0\xFE\xF4\xF3\x92\xF8\x4D\xF9\x29\xFF\x45\xFF\x6C\x06\xAA\xFC\x41\xF7\x87\xFA\xA8\xF5\xD0\xFD\xAF\xFE\x9E\x05\x10\x0D\xB4\x04\x8E\x11\x3B\xFD\x8A\x00\x5C\xFF\x42\xFB\xDB\x0A\xCC\x07\xEA\x07\x8B\x01\xE2\xF8\x9B\xF9\x57\xF6\x52\x01\xF8\xF9\x7E\x03\xF1\x02\x62\x00\xB9\xFD\x4C\xFA\x6B\xFE\xEB\xF6\xB0\x04\xB1\xFC\x05\xFB\x88\xF9\xBD\x04\x41\xF7\xCC\x0E\x3E\xFC\xA0\xF6\xB3\xF9\xAD\xF9\x7C\x01\x2B\x0A\x7F\x0A\x82\x0C\x7B\x08\xE6\x0B\xA7\x06\x0F\xFF\xBF\x07\xF5\x02\xE8\x04\xEA\x12\x58\xFE\xB5\x07\xE6\xFA\x95\xFA\x1F\xF5\xAB\xFB\xDF\xF6\x9E\xF9\xC9\xFF\x3A\xFD\xF5\xFC\xE2\xF8\x13\xFA\xCF\xF6\x82\xFE\xF1\xF9\x9C\x00\x67\x02\xCA\x04\x81\xFE\x35\x0A\xDB\xFC\x29\x03\x44\x07\x31\xFD\x59\x02\x8B\x05\x81\x04\xFC\x06\xC3\x06\x31\x03\xAE\xFF\x75\xFF\xA5\xFF\xEE\x01\xD8\xFD\x2B\x01\x19\xFD\x0C\xFD\xDD\xFF\x81\x01\x10\xFA\x7B\x02\x62\xFA\x6A\x00\xB8\xFB\x8B\x03\xD7\xFC\x4D\x05\x3B\xF6\xEC\x02\xF1\xF7\x39\xFE\xFF\xFB\x43\x01\xB5\xFE\x0B\xFE\x21\x0B\xEE\xF6\xE7\x08\xBB\xFD\x8A\x06\x54\x07\x54\x0A\xCB\x09\xFA\x06\xED\x06\xDA\xFD\x0A\xFD\xA7\xFF\x79\xF7\xF9\x00\x3B\xFE\xB2\xF9\x28\x00\x9B\xF1\x86\xFC\xFA\xFC\x20\xFB\xCB\x06\x20\xFE\x32\x05\x92\xFE\x65\x09\x79\xFC\x8B\x0B\xB2\xFF\x58\x0B\x7F\x03\xAA\x06\xF3\x06\x75\xFE\x68\x02\xA7\xF9\xB7\xFF\xAD\xF7\xD8\x05\x58\xF9\x77\x00\xEA\xF6\xFE\xF9\x36\xF1\x3A\xFB\x1D\xF9\x5F\xFE\x26\x04\xC5\x03\x5F\xFF\x4A\x05\x16\xF5\x9D\xFD\x03\xFA\x07\xFA\x16\xFE\x5B\x06\x89\xFD\x19\x01\x02\x06\xF1\xFB\x23\x05\x14\x01\xE2\x03\x76\xFF\x6B\x03\xE3\xFB\x41\x03\x77\xFC\x02\x08\x30\x00\x45\x04\xD7\x04\x1A\xFD\x05\x06\x45\xFE\xA1\x05\x78\xF8\x63\x07\x24\x00\x23\xFE\x83\x03\x83\xF7\x06\xFD\x6F\xFF\xFD\xFC\xA2\xFE\x4F\xFA\x6F\xF6\xE0\xF8\x7B\xFD\xFB\xFC\xC7\xFF\x7C\x03\x16\xFB\x15\x04\xE7\xFB\xAA\xFE\x8C\x04\xAD\xF9\x61\x08\xC9\xFE\xB1\x08\x4B\x02\x90\x04\x63\x02\xFD\x04\xBB\x03\x28\x08\xF4\x02\x1A\x05\xD6\x06\xC6\xFC\xCB\x00\xE2\xFA\xE7\xFC\x79\xFC\xF9\xFF\x03\xFE\xDD\x01\x44\xFD\x62\x01\xFB\xF9\x40\xF8\x02\xFF\x4E\xF4\x0A\x00\xE9\xFD\x1E\x00\x05\x07\xB0\xFF\x94\x04\x52\x00\xF6\xFE\x70\x00\x90\x03\xCD\xFF\xFD\x05\x5A\x02\xC1\xFE\x2C\x09\x4E\xF8\x8C\x02\xA0\xF9\xE2\xFC\xCB\xFD\xA7\xFA\x0B\xFC\xB6\xFA\x03\xFE\xE9\xFD\x9D\x01\x79\xFF\xCA\x04\x2B\x00\x15\x09\x6E\x01\xCD\x02\x73\xFE\x43\x00\x09\xFC\xCE\x03\x43\xFF\xEC\x01\x31\x00\xF5\x02\x1B\xFF\x0C\x01\x48\xFF\x76\xFA\xCF\x02\x79\xFE\x7E\x00\x95\xFB\x61\xFD\x7D\xFD\xC1\x01\xA0\x04\x9F\x04\x22\x00\x44\x01\xA2\xFD\xA8\xFD\x79\xFE\x0C\x02\x92\x00\x01\x08\x9F\x00\xCD\x01\x00\xFB\x0B\xFF\x76\xFC\x73\x01\x78\xF9\xF0\x00\xB4\xF6\x1C\xFF\x1F\xFE\x4E\x00\xD6\x04\x11\xFF\x4B\x08\x97\xF8\x6F\x01\x1A\xFC\x65\xFF\xAA\xFE\xB3\xFC\x38\x01\x41\x04\xCA\x01\x34\x09\xBA\xFF\x25\x01\x15\x02\xD5\xF8\xEE\x04\xFF\xFC\xFB\x06\xD7\xFE\xBC\x07\x06\xFD\xFB\x04\xAD\xF9\x5A\x04\x3D\xFD\x23\x01\xD3\x02\x75\xF9\x06\x02\xD4\xF2\x61\xFB\xC9\xF2\xB6\xFE\xCC\xFD\xFE\x06\xF9\xFE\xAC\x06\xA6\xFE\x53\xFE\xED\xFF\xC4\xFA\xCA\x02\x46\x01\x02\x04\xB5\x02\xE9\x08\xAE\xFF\xA3\x0A\x56\xFB\x33\x06\xBF\xFE\xD3\x01\xEC\x05\x3A\x00\xC4\x04\xDE\xFF\xAE\xFD\xFC\xFE\x0C\x01\xBE\xFF\x6B\x04\x19\xFC\xB9\xFD\xCD\xF9\x94\xF1\xEA\xFF\x77\xF7\x00\x02\x2F\xFB\xAF\x01\x1E\xFC\x7B\x01\x7E\xFC\x98\xFE\x2A\xFD\xC5\x00\x3D\x00\xCE\x03\x4F\xFC\x2A\x03\x25\xFF\x7A\x00\xDE\x02\xA8\xFD\xFC\x01\xE6\xFE\x0E\xFE\x81\x03\xF9\xFB\x62\x04\xDE\xFF\x20\x02\xF4\xFF\x0C\x00\x37\xFE\x06\xFC\xA6\x02\xF5\xF9\x0A\x05\x9F\xFE\x40\x04\x14\x01\x46\x00\x29\xFC\x4D\x01\x02\xF8\x28\xFF\x62\xFA\x07\xF9\xA2\xFB\x9B\xF8\x40\xFF\x5C\xF6\x5B\x01\x6B\xF9\x02\x01\x84\x00\x3D\x04\x23\xFD\x58\x06\xB8\x02\x1F\x05\xE0\x02\x07\x03\x78\x01\xDB\x00\x75\x02\xDC\xFF\xD2\xFE\xA7\x01\x24\xFF\x41\xFF\x58\xFD\x2E\xFD\x49\xFB\xFA\xFD\xFA\xFC\xB5\xF9\x93\xFE\xB4\xF7\x59\x02\x94\xFC\x6B\x04\x49\x01\xF7\x00\x9C\x03\xAB\xFA\x0A\x02\xC2\xFA\x7E\x02\x11\xFE\xEB\x04\x36\xFD\xD8\x05\xBE\xFC\x62\x04\x51\xFA\x0A\x01\xDB\xF8\xCA\x01\x65\x03\xFD\x03\x85\x01\x0D\xFE\x50\xFC\x2D\xFA\x95\x01\x02\xF9\xB0\xFE\x57\xFE\xFE\x05\x2C\x01\xB3\xFF\xA2\xFF\x74\xFE\x2F\x00\x8C\xF9\x71\x00\x1A\xF2\x58\x02\xB5\xF4\x98\x01\x65\x00\xE9\x00\x63\x07\x64\xFF\xC1\x05\x83\x00\xDE\x05\x7C\xFD\x58\x04\xBD\xFA\xD8\x07\xA1\xFC\x2A\x03\xCF\xFE\x24\xFD\xB9\xFF\xEF\xF3\x41\xFE\xDF\xF8\x39\xFF\x49\xFF\x2E\xFE\x2F\xFA\x68\xFE\xD2\x01\x5E\x03\xEF\x01\x19\x04\xE6\xFA\xD5\x02\x33\x00\xD6\x03\x3D\xFD\x90\x04\xB1\xFC\x9A\x03\x1A\xFE\x7A\x00\x14\xF9\xF1\xFC\x19\xFC\x9B\xFC\x4A\x0B\xB1\xFF\xDE\x01\x24\x02\x54\xF9\x24\xFF\x94\xFF\x1F\xFA\xA8\x04\x8E\xFB\x3F\xFC\x9C\x00\xB0\x00\xE0\x01\xF0\xFA\x6B\x04\x17\xF1\xCB\x04\x99\xFD\xD0\x01\x5D\x03\x3E\x00\xDA\x03\x2F\xFD\xD2\xF7\x1D\xFF\x76\xFA\x6B\x02\x8F\x05\x5B\x01\x4A\x05\x6A\x00\x69\xFE\x9C\xFB\x42\x02\x71\xF9\x41\x03\x9E\xFE\xD5\xF8\xA2\x01\xCB\xFD\xDA\x00\x40\x05\xBA\xFB\x53\xFD\xF9\xFD\x44\xEF\xE6\x01\x80\xF6\xC5\x01\xDC\xFC\x75\x00\x05\x02\xF6\x00\x71\x0C\xE0\xFF\xA7\xFB\x94\x00\x9E\xFC\x42\x03\xC5\x0B\x3F\x00\x4F\x05\x68\xFE\xF2\xFE\x64\xFF\x29\xFC\xF8\xFF\x42\xFA\xB0\x00\xD3\xFC\xE7\xFE\xFF\xFE\x0C\x01\x81\x02\x69\xFF\x67\xFA\xEC\xFA\x9C\xFA\x19\xFD\x5F\x01\x88\x01\xD1\xFA\xCB\x04\xC1\x02\xE6\x04\x41\x08\xCA\x00\x62\xFE\x2C\x00\x7A\xFB\x61\x00\x75\x04\x76\x00\xB7\x06\x19\x02\x8D\xFB\x15\x01\xF0\x01\xC9\xFE\xA9\xFC\x46\xFC\x72\xFE\xE2\xFE\x51\x02\xF8\xFF\x1A\xF7\x40\xFF\x3B\xFF\x57\xFF\x31\xFF\x57\x00\xC9\xFE\xF3\xFE\xB9\xFE\xCB\xFF\xDD\xFC\xD9\x02\xC6\xFC\xC1\x02\x3E\xFF\xF9\x02\x26\xFF\x3C\x01\xCD\xFC\x08\xFF\x05\x01\xCA\x00\x37\xFC\xB8\x03\x86\xFF\x84\x01\x6F\x07\xE5\xFD\xBF\x04\x5D\xFE\x5C\x01\x77\x00\xF0\x00\x8A\x01\x64\x00\xE0\x00\xB2\xFC\xAA\x00\xA7\xFD\x39\x02\xA4\xFA\x70\x00\x4A\xFA\xFD\xFD\x70\xFB\xEF\x00\xC6\xF8\x14\x00\xCF\x01\x21\xFE\x57\x02\x2E\x00\x06\xFF\xED\xFD\xD1\xFE\x38\xFC\x20\x01\xE2\xFF\xE2\x06\x8F\x01\x8F\x06\xF4\x00\xA1\x08\xD7\xFE\x01\xFF\x46\x00\xA3\xF7\x96\x05\x98\xFE\x95\x05\x0C\x00\xAD\x00\xDD\xF4\xDA\xFC\xD9\xF6\x8B\xFE\x7A\xFD\x39\x01\x6F\xFB\x57\x00\xD6\x03\x3F\xFF\xD4\x03\x33\xFF\xB2\x03\x0B\xFF\x92\x04\x91\x00\xFA\x08\x05\x00\x51\x05\xF4\xFD\x41\xFF\xA4\xFF\x1C\xFF\xB9\x00\x6F\xFC\x6F\xFD\x01\xF7\x31\xFB\x8E\xF9\xF4\xFD\xB9\xFE\xD3\xFE\x26\xFE\xAE\xFE\x36\x00\x26\x02\x61\x01\x34\x04\x59\x04\xCA\x02\xEC\x06\xDB\x02\x9A\x07\xDC\x03\x86\x06\x84\x02\xF0\x03\x08\x01\x38\x01\x40\x00\x18\xFD\x39\x00\x09\xF8\x18\xFF\x1A\xFA\x91\xFD\xC8\xFB\x8E\xFB\x67\xFD\xFE\xF9\x75\xFB\xC4\xFB\x9D\xFB\x1E\xFC\x90\xFE\x3F\xFD\xF7\x01\x37\xFD\x9C\x02\xB9\xFE\x06\x00\x70\x00\x32\x03\xD9\xFF\xA2\x02\x2D\xFF\x68\x00\x64\x01\x3F\xFF\xF4\x03\x9B\xFF\x19\x01\xF3\xFD\x97\xFE\x7A\xFE\xC6\xFD\xFF\xFE\x82\x00\x8D\xFF\xCC\x00\x80\xFE\xE6\xFE\x5D\xFF\xC6\xFD\x0B\xFD\x78\xFB\xF8\xFE\xF9\xFC\x4C\x04\xA8\xFF\x1B\x03\x33\xFF\x61\xFE\xC8\xFE\x48\xFF\xDA\x02\x8D\x00\xB2\x05\x69\x00\x43\x01\xB0\xFF\xE1\xFE\xB7\x00\x45\x02\x15\x00\x69\x00\x00\xFF\xFD\xFD\x02\x05\xE2\x01\xC1\x04\x20\x05\xE8\xFF\xDD\x05\x72\xFF\x0A\x02\x37\x04\x05\x00\x43\x01\x1E\x01\xFC\xFD\x96\x01\x9F\xFB\x9D\x00\x7B\xFC\xAE\xFF\xD2\xFE\x83\xFB\x10\xFE\x5E\xFB\x7F\xFB\x73\xFF\xE9\x03\x07\xFF\xB6\x08\x6D\xFD\x9E\x01\xF2\xFD\x80\x02\xB2\xFF\xE7\x01\x35\xFD\xA3\xFD\x87\xFF\x7F\xF7\xBA\x03\x34\xF8\xA9\x02\x96\xFE\x16\xFF\x43\xFB\x30\xFD\x89\xFE\x75\xFD\x95\x05\xED\xFD\x49\x0A\xD4\xFF\x86\x09\x38\x00\x21\x05\x23\xFE\x04\x00\x13\xFD\x04\x00\xFA\xFE\xFA\x01\x3E\x01\xA0\xF9\x7E\x00\xB4\xF8\xB2\xFF\xCE\xFA\xD4\x00\x1F\xFB\x5E\x00\x72\xFF\xCF\x00\x4B\x01\x70\x04\x25\x07\x0E\x04\x31\x07\xAD\xFF\x1D\x07\x4E\xFF\x17\x05\x26\x03\xCE\xFF\xF2\x03\x31\xFC\x79\x02\xD7\xFE\x22\x00\xC6\x03\x73\xFE\x31\xFF\x5B\xFE\x83\xFC\x5E\xFD\x38\xFD\x7A\xFE\x70\xFE\x81\xFF\xE2\x01\xFB\xFE\xD9\xFD\x39\x00\x23\xFC\x5F\xFF\x89\x00\xB4\x01\x12\x03\xAA\x05\xBB\x01\x9C\x03\x10\xFD\xAF\xFF\xBB\xFD\x66\xFC\xC8\xFF\x70\xFC\x46\x01\x38\xFF\x99\xFE\x84\x00\x7D\xFF\x9B\xFF\xF1\x00\x26\xFD\xD1\xFA\x6B\xFD\x05\xF8\xE8\xFE\x6F\xFA\xA9\x00\x01\xFC\x17\x02\xFA\xFE\xEC\xFE\xCB\xFD\xC0\xFB\xEE\xFD\xF1\xFC\xB7\x07\x23\xFF\x21\x0C\x85\x00\xC7\x07\x9A\xFF\xBF\x04\x41\xFE\x0A\x01\x5F\xFF\xE4\xFD\xA8\xFF\x5B\xFE\x1B\x00\x14\xFB\x4B\x00\x49\xFC\x96\x00\x40\x00\x69\xFE\x75\x02\x9F\xFC\x9E\x04\xA3\xFE\xDE\x00\x64\x01\xFF\xFE\xE0\x01\xDD\x00\x83\x00\x91\x01\x4E\x00\x8F\x02\xE7\xFD\xBC\x02\xE3\xFE\xAC\x00\x02\x03\xB5\xFC\xBF\x03\x02\xFF\x1D\x02\x10\x03\x9E\xFF\x04\x03\x48\xFD\x21\x00\x3D\xFF\x95\xFC\x62\x01\x1D\xFE\x84\x01\xC2\x00\x91\x00\xA0\xFF\x84\xFD\x57\xFD\xC9\xFD\x60\xFB\x4B\x00\xB5\xFB\x56\x00\x46\xFF\xF7\xFE\x79\xFF\x9A\xFE\xCA\xFD\x52\xFE\xB2\xFF\x65\x00\xD8\x03\xD4\x02\x18\x07\xF0\x03\x4E\x03\x81\x03\x1A\xFD\x72\x00\xDB\xFB\x23\x00\xF1\xFC\xE1\x01\x8E\xFF\xFF\xFF\x0A\x00\xB7\xFF\x42\xFC\xF3\xFE\x1A\xF9\xA0\xFC\xE5\xFB\xD6\xFD\xA8\x00\x6E\xFE\x58\x02\x23\xFF\xF3\xFF\x0F\x00\x71\xFF\x72\xFF\x58\xFF\xDF\xFE\xE1\xFE\x0C\xFF\x19\x03\xE0\xFF\xF9\x05\x40\xFF\x9F\x07\xBB\xFF\xFE\x05\x61\x01\xDB\x00\xC9\x01\x9A\x01\x5E\x02\x5C\x01\xC9\x02\xF7\xFB\xFF\x01\xC7\xFA\x62\xFF\xDF\xFA\xA2\xFD\x52\x03\x15\xFE\x0A\x05\xEF\xFC\x57\xFE\xE0\xFA\x80\x00\x36\xFC\xB8\x00\xF2\xFF\x0A\x01\x31\x00\x5B\x01\x02\xFF\x4F\xFF\xEF\x00\x9B\xFF\x1B\x04\x9D\xFD\x1B\x05\xDD\xFE\xAB\x03\x5F\x01\xDE\xFF\x87\x00\x4C\xFD\x60\xFF\xDE\xFF\x6A\xFB\xA6\x01\x45\xFC\x41\x00\x34\xFF\xBB\xFD\x4D\xFD\x58\xFD\xEC\xFB\xC5\xFE\xB6\xFE\xC1\xFF\xB4\xFF\x88\xFF\xE8\x00\x1E\xFF\x0C\x00\xE0\xFF\x15\x00\xCE\xFF\x65\xFF\xA2\xFF\xE1\xFD\xF5\x00\xB2\x01\x8A\x01\x6E\xFF\xB6\x01\x2C\xFE\xB2\x02\xB4\xFF\xDA\x01\xB5\xFD\xC0\xFF\x0E\xFE\xBE\x00\xDD\x01\x18\x00\xBE\xFF\x55\xFD\xFB\xFD\x56\xFC\x11\x01\xD7\xFC\xE8\x03\x04\xFE\x52\x04\x1F\xFE\x09\x02\x7E\xFF\xEB\x01\xD5\x00\xEC\x01\x41\x00\x9B\x01\x8B\x01\x7E\x02\xAE\x02\x55\x00\xB9\x01\x18\xFD\xCD\xFF\x41\xFE\xCC\xFF\x73\x00\x6C\x02\x86\x00\x30\x03\x44\x00\x04\x01\xE9\xFD\x1C\xFF\xF1\xFD\x69\x00\x3D\x01\x55\x00\x49\x02\x65\xFE\xC4\x01\x5A\xFE\x4B\x02\x11\xFE\xF8\x01\xAA\xFF\x8B\x00\x17\x01\xC1\x00\xEE\xFF\x55\x00\x64\xFF\x40\xFF\x7E\x00\x89\xFE\x23\x01\x7A\xFC\x89\x00\xD0\xFB\x92\x01\x61\xFD\x36\xFF\xBF\xFC\x9A\xFC\xF1\xFB\x45\xFE\x26\xFD\x14\x00\x7A\xFF\x3C\x00\x00\x00\xC2\xFE\x81\x00\xBD\xFE\xD9\x01\xDE\xFF\x6A\x03\xD1\xFF\xCD\x02\x3D\xFF\x14\x03\x14\x01\x7B\x02\xFA\x02\x81\xFE\x35\x01\xA7\xFD\x16\x01\x1D\x00\x15\x01\xE2\xFF\xCA\x00\xA1\xFC\x98\x01\x60\xFD\xF4\x01\xB6\xFE\xD2\x00\x6B\xFF\x2E\xFE\x6A\x00\xE8\xFE\x89\x00\x39\x00\x36\x02\x0C\xFD\xFD\x02\xF1\xFB\x0B\x01\x6D\xFE\x65\xFF\x62\xFF\x04\x01\x0C\xFE\x48\x00\xBB\xFE\x1F\xFF\xA4\x01\x22\xFD\x33\x03\xAF\xFB\x6C\x03\x5F\xFE\x21\x02\xE1\xFF\x3B\x02\xCD\x00\x89\x03\x4E\x03\xE0\x00\xFB\x05\x71\xFE\x86\x04\x33\xFE\x76\x01\x5F\xFD\xB8\xFF\xFB\xFC\xE0\xFC\xEA\xFC\xA4\xFC\x85\xFC\x03\xFF\x89\xFD\x8A\xFD\x2E\x00\x71\xFF\x59\x00\xE5\xFF\x6F\xFF\x63\x00\x05\x01\x59\x00\x5F\x02\x0F\x01\x5A\x01\x4E\x02\x2E\x00\x09\x01\x3A\x00\x3C\x01\xD3\xFF\x00\x00\x30\xFF\x45\x00\x25\x01\x39\x00\x28\x01\xC3\x01\x8E\xFE\xCE\x00\x5B\xFE\x38\xFF\x42\x00\x0D\xFF\x0D\x01\x9C\xFF\x39\xFF\x12\xFF\x38\xFF\x4D\xFF\x2B\x02\x62\xFF\x1B\x01\x3E\x00\x2B\xFE\x0D\x02\xEA\xFE\x6E\x01\xCC\x00\x01\x01\xB7\x00\x8E\x01\x76\x00\xA4\xFF\x99\x00\x1B\xFE\x23\xFF\x7E\xFD\x76\xFF\x0A\x00\x18\x01\x0C\x02\x2C\x01\xE1\x00\x56\x00\x93\xFF\xB0\xFF\xDB\xFD\x76\xFF\xAB\xFE\x1F\xFF\xB8\x00\xCD\xFF\xB2\x01\x76\xFF\xFE\x00\xEC\xFF\xD5\xFE\x35\x00\xC6\xFE\x95\xFF\x6A\x03\x32\x01\xCC\x00\x73\x00\xCB\xFF\x07\xFF\xE3\x02\x92\xFF\x21\xFF\xDB\x00\x4A\x00\xA3\xFF\x67\x01\x9C\xFE\x8D\xFD\x96\xFF\x71\x01\x65\x00\xF3\xFE\xB4\x00\xF4\xFD\xC4\x00\x17\x01\xBA\xFF\xB7\x01\x90\xFF\x6E\x02\xCA\x01\x06\xFD\x36\x01\x91\xFB\xF8\xFF\xD5\xFB\x3A\x00\x7C\x00\xB7\x00\x4E\x04\x66\x01\x14\x01\x44\x01\x6C\xFF\xF8\xFF\xFE\x00\x89\xFF\x18\x01\xEB\xFF\x2E\x00\x78\xFF\x48\xFE\xC9\xFF\x2F\xFF\x57\x01\x08\x03\x31\x00\xAA\x00\xEF\xFD\xF5\xFE\xFC\xFC\x64\xFF\x62\xFD\x60\xFB\xCA\xFE\x88\xFA\xBF\xFF\xC2\xFE\x01\x01\x7F\x02\x67\x01\x72\x03\x13\x01\x9A\x04\x44\x01\x57\x06\x0C\x01\xAE\x04\x72\x01\xA5\x04\x08\x01\xA9\x00\x50\xFF\xE4\xFC\xE0\xFD\xA8\xFC\xB3\xFD\xBC\xFA\x8A\xFE\x6C\x00\xB1\xFD\xB4\xFB\x26\xFF\x46\xFD\xFA\xFF\xBD\x03\x3E\xFE\x42\x04\x60\xFE\x57\x06\xE1\x00\x4C\x07\xF3\x02\x68\x02\xD0\x02\x01\x02\xA6\x03\x4F\x01\x47\x03\xCF\xFC\x71\x00\xD9\xFD\x6F\xFF\x91\xFB\xBF\x00\xA4\xFA\xC3\xFF\x73\xFF\x32\xFD\xFA\xFE\x78\xFD\x8D\x04\x50\xFF\xA0\x00\x41\xFF\x56\xFB\x74\xFF\x9C\x02\xD6\xFF\x53\x04\x8C\xFE\x40\x03\x53\xFD\x9F\x00\x48\xFF\x9D\x02\x80\x02\x93\x00\x74\x01\x46\xFD\x0C\x00\x0E\xFE\xC5\x01\x39\xFD\x4B\x02\x32\xFF\xF9\x03\xEE\xFC\x7F\x03\x2E\xFE\x54\x01\xE1\x02\xAB\xFF\xBB\xFF\x52\xFD\xDD\x01\xD4\xFB\x1D\x01\xFF\xFC\x35\xFF\x46\xFE\x8D\x05\x94\xFC\x3C\x04\x3A\xFD\x56\xFF\xEA\xFE\xAE\x02\x68\xFE\x96\x01\x43\xFF\x92\xFB\x01\x02\x2E\xFC\x8D\x02\x59\xFE\x0D\x02\x36\xFE\xA9\x02\x2F\x03\x78\x02\x8A\x01\xB3\x02\x4E\x02\x0C\x01\x93\x03\xF0\xFF\x40\x06\x1D\xFF\x82\x04\x7F\xFE\x7F\xFD\xC7\xFE\x0A\xFF\x3F\xFE\x01\x01\x04\xFE\xAF\xFB\xEE\xFD\xE9\xF8\xD2\xFF\xE6\xFE\xF5\x00\x81\x01\x0C\x00\x2E\x02\xF3\xFE\x8F\x02\xDD\x00\x9F\x00\x12\x02\x75\x02\x7F\x02\x60\x05\x32\x03\x78\xFF\x48\x00\xE3\xFC\x0D\x00\xF0\xFC\x75\x01\x06\xFE\xFF\xFF\xE0\xFF\x77\xFD\x70\x00\x23\xFC\xB1\x03\xED\xFD\x0F\x02\xB9\xFE\x61\x01\x16\xFF\x21\x04\x13\x01\xE6\x01\x2B\x02\xF2\xFF\x9B\x00\x50\xFE\xEF\x00\x0B\xFF\x26\x03\x4D\xFF\x5B\x03\x16\xFF\xD2\xFF\x74\xFF\xBE\xFC\x4A\xFF\xD1\xFC\x4F\x00\x5F\xFF\x78\xFF\x8A\x00\x9F\xFE\x6A\x00\xA9\xFE\x3E\xFF\x08\xFF\x55\xFE\xAF\x00\xF9\x00\xB2\x02\x97\x02\x3D\x04\xA5\x01\xCE\x02\xF2\xFF\x1F\x03\x4D\x00\x1A\x00\xC0\x00\x71\xFD\x14\x00\x62\x00\xB0\xFF\x7F\x00\x20\xFE\x9A\xFF\xA6\xFE\x11\xFF\x35\x00\x03\x00\x9D\x00\x45\x00\xCE\xFF\xF0\xFF\xDE\xFE\xCE\x02\x92\x00\x65\x02\x37\x01\xAD\x01\xA3\x00\xDB\x02\xA9\x00\x75\x01\x84\x00\xC0\x00\x88\x00\x00\x00\xBE\x00\xEF\xFF\x58\x01\xFA\xFD\x47\x00\x37\xFE\x06\xFF\xA7\xFF\xE4\xFE\x0F\xFF\x32\x00\xCD\x00\x36\x01\x49\x03\xCB\x00\x99\x04\x6F\x00\xF7\x01\x54\xFF\x32\x02\x70\xFF\x63\x03\xE6\x00\xF4\x00\x27\x00\xA6\xFD\xCB\xFE\x1E\xFB\x65\xFF\x91\xFC\x97\xFF\x66\x00\xAE\xFF\xA6\x01\x21\xFF\x6C\x00\xD0\x00\x07\xFF\x2C\x01\x48\x00\x20\x01\x28\x01\x2E\x02\x75\xFF\xB1\x00\x4D\x01\x90\xFF\x97\x01\xEE\x00\x29\x02\xEF\x00\x91\x02\x53\xFE\x17\x03\x2E\xFD\xB0\x04\xDB\xFE\x94\x02\x14\x00\x3D\x00\xA8\xFD\x51\xFD\x05\xFD\x69\xFD\xAA\x00\xCB\xFE\x9E\x02\xBE\xFD\x8D\x01\x04\xFC\x58\x01\x72\xFC\x79\x00\x86\xFF\xA4\xFF\xF9\x01\x89\x00\x24\x03\xDB\x00\xA9\x03\x03\xFF\x72\x02\x19\xFD\x49\x01\x1E\xFE\x90\x01\xEE\xFE\x1F\x02\x5D\xFF\x35\x02\xAA\xFF\xD7\xFF\x3F\x00\x6D\xFE\x45\x01\x96\xFD\x86\x02\x66\xFE\x73\x03\x1C\x00\xB7\x03\xCB\x00\xA5\x01\x2E\x01\x8E\xFE\x93\x00\x4D\xFF\x3F\x00\xCC\x00\x29\x00\x73\xFF\x50\x00\x3E\xFE\xF0\x00\x60\xFE\xC6\x00\x98\xFD\xC4\xFF\xB7\xFD\x7C\xFF\x74\x00\xDB\x00\x48\x03\xDF\x01\xE2\x02\x0D\x01\xA8\x00\x07\x01\x1E\x01\x63\x01\xED\x02\xF2\x00\x1E\x02\xBE\x00\x87\x00\x69\x00\x6B\xFE\x26\x01\xDB\xFC\x2C\x01\x25\xFC\x8A\x00\x1C\xFD\x2C\x01\x1A\xFD\xC9\x01\xB5\xFD\x85\x01\x91\x00\x46\x00\xDD\x00\x60\x00\x1E\x00\xA0\x01\xD4\x00\xBE\x02\xC3\x01\xA8\x02\xF1\x00\x9D\x01\x9F\x00\xAB\x00\xCA\x00\xFE\xFF\xA9\x00\x48\xFF\x0E\x00\x34\xFE\xF3\xFE\x0B\xFE\x43\xFF\x34\xFE\x1E\x01\x81\xFE\x50\x01\x59\xFE\x44\x01\x06\x00\xB5\x01\xEC\x02\xC5\x00\xA3\x03\xDC\x00\xA4\x02\x80\x01\x7D\x02\x25\x00\xEB\x02\xB5\xFE\xF4\x01\xC2\xFF\xFE\x00\xB0\x00\xFA\xFE\x83\xFF\x5E\xFE\x8C\xFE\x39\xFE\xC6\xFF\xD4\xFC\x3D\x01\xBA\xFE\xB6\x01\x12\x01\x06\x00\x08\x02\x55\x00\x2B\x02\x0A\x02\xD4\x01\xD6\x01\xEE\x00\xEE\x00\x0B\x01\xB6\xFF\xF7\x01\x14\x00\x3A\x00\xAD\x00\x97\xFF\xD6\xFE\x23\x00\x1C\xFE\xDC\xFF\x90\xFE\x8A\xFF\xDD\xFD\xC7\xFE\x91\xFD\xBB\xFF\xE4\xFD\xF5\x00\x81\xFE\xD7\x01\x6E\xFF\x2C\x01\x1A\x01\x8A\xFF\xD5\x01\xA2\x00\x52\x01\xB1\x01\xAD\x01\x4A\x01\x39\x01\xAD\x01\x65\xFF\xF6\x01\xF3\xFE\x15\x01\x31\xFF\x53\x01\xDE\xFE\xE7\x01\x07\xFF\xC2\x00\xB2\xFF\x05\x00\xEA\xFF\xC4\xFF\xA9\x00\x88\xFF\x6B\x01\xC9\xFF\x71\x02\x1E\x01\x75\x02\xD2\x01\xA1\x00\xAB\x00\x29\x00\xDD\x00\x56\x00\x29\x01\x67\x00\x2F\x00\xFB\xFF\x39\x00\x36\x00\x0D\x01\x9C\xFF\xC5\x01\xA0\xFE\x97\x01\x4B\x00\xB5\x00\xB4\x01\x2B\x00\x62\x01\xF1\xFF\x95\x00\x48\x01\xD3\x00\xEB\x01\xC0\x00\x77\x00\x0E\x00\x43\x00\x27\x00\x60\x00\xAB\x00\x25\xFF\xF3\xFF\x15\xFF\xF2\xFE\x1A\x00\x10\xFE\x95\x00\xF2\xFE\x16\x01\x9B\xFF\xC0\x01\x05\x00\xF1\x01\x0B\x01\xB4\x01\xEA\x00\x2F\x01\x25\x01\xD4\x01\x73\x01\x0F\x02\x72\x01\x76\x00\xA6\x00\xAC\xFF\x14\x00\xA2\x00\x9D\xFF\xE0\x00\x81\xFF\x4E\x00\xC2\xFF\xC8\xFF\x17\xFF\x72\x00\xD6\xFE\xAF\x00\xD7\xFF\x2E\x00\x5D\x00\xCB\xFF\x94\x00\x98\x00\x2C\x01\xEA\x01\x91\x01\x4F\x02\xA1\x01\x2A\x02\xAC\x01\xD5\x02\xEF\xFF\xE1\x02\xEC\xFD\xD7\x01\x57\xFE\x76\x01\x95\xFF\x5A\x00\xA8\xFE\x54\xFF\x79\xFC\x34\xFF\xB0\xFD\x58\xFF\xAC\x00\x58\xFF\x15\x01\xEA\xFF\xC4\x00\xAD\x00\x85\x02\xE0\x00\x64\x03\x5B\x00\xBC\x01\xF1\xFF\xAA\x00\x9E\x00\xB2\xFF\x26\x01\x0F\xFF\x4D\x00\xAF\xFF\xB7\xFF\xEE\xFE\xF6\xFF\x2A\xFE\x63\x00\x48\xFE\xA3\x00\x47\xFF\xCB\x00\xF5\xFF\xFC\x01\x8F\xFE\xAC\x01\x0F\xFE\xD9\x00\xB5\xFF\x61\x01\x66\x00\x01\x02\x55\x01\x40\x02\xF3\x01\xE0\x01\xFC\x00\xDD\x01\x37\x01\x41\x01\x5A\x01\x8B\x00\x1B\x00\x57\x00\x62\xFF\xFA\xFE\x2A\x00\x1F\xFE\x37\x00\xF1\xFF\xB5\xFF\x5D\x00\xA6\xFF\xBD\x00\xE5\xFF\x94\x02\x3E\x00\xF2\x03\xAA\x00\x94\x03\x6D\x00\x4E\x03\xAB\xFF\xA3\x03\x16\xFF\x07\x02\x6E\xFF\x75\x01\xC1\xFF\x63\x00\x44\x00\x33\xFF\xD8\xFF\x9D\xFE\x3E\x00\xC2\xFD\x5E\x00\xDF\xFF\x2C\x00\xF1\x00\x5C\x00\x96\x00\x3A\x00\xA9\x02\x8E\x00\x54\x01\x2E\x00\x50\x01\x7C\x00\xE5\x01\x62\x00\xFD\x01\xCB\xFF\x54\x01\x84\xFF\xE7\x00\xCB\xFF\x0F\x00\xC1\xFF\x39\xFF\xEF\xFF\x51\x00\xD9\x00\x05\xFF\x7E\x01\xA5\xFE\xF4\x01\x59\x00\x85\x01\x84\x00\xED\x00\x4A\x02\xA3\x00\x4B\x02\xA2\x00\x21\x02\xE6\x00\x74\x03\x04\x00\x56\x02\xDF\xFF\x95\x00\x1C\x00\x75\x01\x0E\xFF\x5C\x00\xED\xFE\x1C\xFF\x02\xFF\xEF\xFE\x1A\xFF\xCB\xFC\xE2\xFE\x45\xFD\xBA\xFE\xBF\xFF\xDA\xFF\x59\x00\x73\x00\x8E\x01\x6F\x00\xB0\x02\x52\x01\xBA\x02\xA1\x01\xA0\x03\xF3\x00\xF3\x02\x9C\x00\x44\x04\x8B\x00\x54\x02\x35\xFF\x38\x00\x11\xFE\xF7\xFF\xB2\xFE\x09\xFF\xD5\xFE\xB7\xFD\x98\xFF\x7D\xFD\xA7\x00\x61\xFE\x75\x01\x9C\xFF\x7A\x00\x61\x01\x5F\x00\x80\x03\xE3\x01\x43\x03\x2C\x01\x84\x02\x7D\x00\x50\x02\x87\x00\xBE\x00\x25\xFF\xE3\xFF\x02\xFF\xF4\xFE\xC5\xFF\xBD\xFF\x41\xFF\x2E\x00\xBB\xFF\x37\x00\x6C\x00\xC3\x00\xDB\x00\x46\x01\x50\x02\xAD\x01\xAA\x02\x42\x02\x4C\x02\xF4\x02\x83\x01\x5C\x02\xE0\x00\x14\x02\x3F\x00\x26\x01\xC0\xFE\xA3\xFF\xCF\xFE\xF2\xFF\x2C\xFF\xED\xFF\x18\xFF\x69\x00\xCB\xFE\xD8\x00\x15\xFF\x44\x00\xE5\xFE\x24\x00\x13\x00\xAF\x00\xBD\x00\x8E\x01\xA1\x00\xC9\x01\x13\x01\xFE\x01\x79\x00\x8A\x02\xEF\x00\x38\x01\xE1\x00\x6D\x00\x79\x00\x7B\xFF\x5F\x00\x0C\xFF\xA1\xFF\xF4\xFF\x84\xFE\x41\x00\xF4\xFD\x86\x00\x97\xFE\xCD\x00\xBF\xFF\xF7\x00\x45\x00\x96\x01\xA4\xFF\x25\x02\x25\xFF\x5C\x02\x76\x00\xC5\x01\xB4\x01\x69\x00\xF7\x01\x3F\x00\xE0\x00\xCC\x00\xF9\xFF\x40\x00\xDE\xFF\xF7\xFF\x4F\x00\x2B\x00\xC8\x00\x91\x00\xD9\xFF\x2D\x01\xFC\xFE\xD1\x00\x6E\xFF\x54\x00\xB2\xFF\xB9\xFF\x80\xFF\xEA\xFF\xCA\xFF\xCA\x01\x51\x00\x39\x02\x69\x00\x93\x01\x19\x00\x89\x01\x25\x01\x25\x02\xE5\x01\x0A\x01\xA8\x01\xB6\xFE\xBD\x00\x22\xFF\xF3\xFF\xD7\xFE\xFD\xFF\x56\xFF\x57\xFF\x0D\x00\x43\xFF\x11\xFE\x4D\x00\xE6\x00\xBC\x00\xBC\x01\x0D\x00\x5F\x00\x00\xFF\xDC\x00\xC6\xFE\x3C\x03\xEE\xFF\x4F\x02\x8C\x00\x54\xFF\x95\x00\xC4\x01\xEF\x00\x35\x01\xAF\x00\xE9\xFF\x22\x00\x11\xFF\x43\x00\x53\xFF\x1D\x00\x98\x01\xBF\xFF\x68\x01\x65\xFF\x64\x03\xA6\xFF\x49\x02\xA2\xFF\x35\x01\xD8\xFF\x18\x01\xA4\x00\xC7\x00\x3E\x00\x3B\x00\x6F\xFF\x78\xFF\xF4\xFE\x21\x01\x95\xFE\xAA\xFF\x88\xFF\x37\xFE\x0D\x00\x0D\x00\x5D\x00\x98\x00\x6A\x00\x20\x00\xC2\x01\x84\xFF\xF3\x02\x34\x01\x9E\x02\x51\x02\x84\x01\x34\x03\x28\x00\x77\x03\xDB\xFF\x9F\x01\x2C\xFF\x70\x00\x6F\xFF\xCA\x00\xAC\xFF\xDB\xFF\xEC\xFE\x99\xFE\x5E\xFF\x69\x00\xF0\xFF\x49\xFF\xE1\xFF\x7E\xFD\x3A\x00\x5A\xFE\x11\x01\x16\x00\x6E\x01\x99\x00\x04\x00\xB2\x01\x35\xFF\x5D\x02\x87\x00\x1F\x02\x3F\x01\x80\x00\x63\x00\x61\x02\xB3\xFF\xBF\x03\x4D\xFF\x08\x01\xBF\xFE\x15\xFF\x47\xFF\xC7\xFF\x50\x00\x31\xFF\xD6\x00\x4D\xFC\x18\x01\x1D\xFE\xB4\x01\x41\xFE\xF0\x00\x4F\xFF\x4C\x00\x87\x00\x84\x01\x11\x02\xF1\x01\xF5\x01\x3A\x01\x03\x02\x3B\x01\xFA\x02\x3D\x00\xEF\x00\xE8\xFE\x8D\x00\xE6\xFE\x79\x01\x27\xFF\x2C\x01\xE7\xFE\xAF\x00\x7A\xFE\xD3\x01\xE5\xFE\x47\x01\x40\xFF\xF1\xFF\x23\x00\x7C\x00\x6A\x01\x78\x01\xB0\x01\x45\xFF\x28\x01\xB5\xFD\xA3\x01\xDE\xFE\xCD\x01\x9C\xFF\x03\x01\x35\x00\x2D\x00\x0F\x02\x35\x00\x80\x03\xCB\xFF\x24\x01\x55\xFE\x9C\x00\xD0\xFE\x93\x01\x53\x00\xC2\x00\x55\x01\xD1\x00\xB6\x00\xB6\x00\x52\x00\xF6\x00\x25\x01\xF7\x00\x27\x01\x46\x00\x8B\x00\x7E\x00\xB9\x00\xC8\xFF\x05\x00\xD0\xFE\x75\xFE\x0F\xFF\xEA\xFE\x3C\xFF\x7F\xFF\x0C\x00\x36\xFF\xFC\x00\xC6\xFF\x7D\x01\xEC\xFF\xF3\xFF\x9A\xFF\xCA\xFE\xDD\xFF\x2A\x00\x60\x00\x74\xFF\xFF\x00\x59\xFF\x36\x01\xD9\x00\xAF\x00\x9E\x00\x2A\x00\x0E\x00\xD0\xFF\x39\x00\xCB\xFF\x4D\x00\xD6\xFF\x87\xFF\x73\xFF\x79\xFF\x4E\xFF\x35\x00\x8D\xFE\x54\x00\xD0\xFE\xF9\x00\x5D\xFF\x67\x01\xAC\xFF\x64\x00\x77\x00\x84\x00\x6B\x00\x85\x00\x4C\x00\x5D\x00\xC4\x00\x5D\xFF\xE2\x00\x32\xFF\xFB\x00\x47\x00\x7D\x00\x83\x00\x30\x00\xA6\x00\x36\x00\xF9\x00\xF6\xFF\x78\x00\x72\x00\x4B\x00\x55\x00\xAA\x01\x31\x00\xF2\x00\x79\x00\xD7\xFF\xA3\x00\x83\x00\xF8\x00\x0F\x00\xBE\x00\x75\xFF\xA5\x00\x31\x00\x43\x00\x14\x00\xFC\xFF\xA1\xFF\xAE\x00\x02\x00\x61\x00\xC2\xFF\x31\x00\x7B\xFF\xE4\xFF\x0A\x00\xE1\xFF\xE1\x00\x9B\x00\x68\x01\xA3\x00\xDB\x00\x3B\x00\xC3\x00\x1B\x00\xD3\x00\x2B\x00\xE7\xFF\xCE\xFF\x7F\xFF\x58\x00\x26\xFF\xDF\xFF\x76\xFE\x12\xFF\xBF\xFE\xF6\xFF\x4F\x00\x13\x00\xF7\xFF\x12\x00\x40\xFF\xAE\x00\x2B\x00\x22\x00\x12\x01\xF2\xFF\xBD\x00\xA9\xFF\x7D\x00\x5C\x00\x62\x01\x08\x01\x93\x01\x5A\x00\xDD\x00\x92\xFF\x5F\xFF\x67\xFF\xF9\xFE\xF1\xFF\x39\xFF\x6E\xFF\xC6\xFF\x41\xFF\xF7\xFF\xCF\xFF\x65\xFF\x06\x00\x9B\xFF\x70\xFF\x33\x00\xA4\xFF\x3F\x00\x1E\x01\x47\x00\x9A\x01\x73\x00\x88\x01\x11\x00\xB6\x01\xB6\xFF\x61\x01\x75\xFF\x6D\x01\xEE\xFF\xBB\x00\x69\x00\x42\x00\x5C\x00\x6F\x00\xB0\x00\x57\xFF\xAD\x00\x6B\xFF\x82\x00\xCD\x00\x77\x01\xC0\x00\xBC\x01\x2D\x00\xB0\x00\x9F\x00\x77\x00\x5F\x01\x64\x00\x59\x01\x13\x00\x90\x00\x6E\xFF\x1A\x00\x29\xFF\x0A\x00\x72\xFF\xDB\x00\xC9\xFE\xC7\x00\xC9\xFE\x05\x00\xA2\xFF\x7F\x00\x12\x00\x09\x01\x57\x00\x18\x00\xD1\x00\xF1\xFF\x30\x01\x74\x00\x23\x01\x05\x01\x2D\x01\x60\x01\x03\x01\xEE\xFF\x5B\x00\xF6\xFF\x48\xFF\x1A\x00\x05\xFF\x79\xFF\x86\xFF\x73\xFF\x30\x00\x4A\xFF\x23\x00\x19\xFF\xAA\xFF\xC8\xFE\x39\xFF\xB1\xFE\x83\xFF\x3B\xFF\xA2\x00\x28\x00\x3E\x01\x84\x00\x76\x01\xA9\x00\x44\x01\x68\x01\x4B\x00\x71\x01\x70\xFF\x49\x01\x23\xFF\x28\x01\xE6\xFE\xB4\x00\x9B\xFE\xFF\xFF\x50\xFE\x3B\xFF\x8C\xFE\x50\xFF\x8E\xFF\x51\xFF\x5D\x00\x2F\xFF\x86\x00\x20\xFF\x11\x01\x81\xFF\x61\x01\x4B\x00\x89\x01\x54\x00\xCB\x01\xFF\xFF\x31\x02\x6B\x00\x1E\x02\x33\x00\x12\x01\x77\x00\x4B\xFF\x05\x01\x54\xFE\x43\x01\x32\xFE\x36\x01\x0D\xFE\x67\x00\xF3\xFD\xA2\xFF\xFF\xFD\xAF\xFF\x8F\xFE\x36\x00\x27\xFF\x0B\x00\x5C\x00\x87\x00\x9E\x01\x71\x00\x0A\x02\x30\x00\xC0\x01\x45\x00\x1F\x01\xA5\x00\x92\x00\x46\x01\x80\x00\x7C\x01\x3E\x00\x39\x01\x23\xFF\x99\x00\x66\xFE\x93\x00\x48\xFE\x7B\x00\x89\xFE\x1A\x00\x5B\xFF\x59\x00\xB6\xFF\x90\xFF\x5C\xFF\x2A\xFF\x41\xFF\xAE\xFF\x28\x00\x3A\x00\x9C\x00\x9C\x00\x83\x00\xBA\xFF\x4F\x00\x78\xFF\xAF\xFF\xC9\xFF\x3F\xFF\x24\x00\x40\xFF\x6A\x00\xA2\xFF\xEF\xFF\x0F\x00\x24\x00\xC1\xFF\xDB\x00\x29\xFF\xD8\x00\x74\xFF\x9A\x00\x84\x00\x6F\x00\x82\x00\x2B\x00\x86\xFF\x77\xFF\xB9\xFE\x4C\xFF\xB5\xFE\x79\xFF\x50\xFF\xEF\xFF\x30\x00\xDD\xFF\xAE\x00\xDE\xFE\x4C\x00\x10\xFF\xD2\xFF\x86\xFF\xC9\xFF\xE2\xFF\x05\x00\xF4\xFF\x41\x00\x35\x00\x77\x00\x88\x00\x62\x00\x84\x00\x00\x00\x85\x00\xDD\xFF\x3D\x01\x8A\xFF\x83\x01\xEA\xFE\xF7\x00\xB6\xFE\xC0\x00\xBC\xFE\xA2\x00\xF2\xFE\x16\x00\x56\xFF\xE6\xFF\xEB\xFF\x1A\x00\x0D\x00\x02\x00\x06\x00\xA6\xFF\x33\x00\xDB\xFF\xCF\xFF\xFD\xFF\xFC\xFF\x85\x00\x45\x00\x3B\x01\xEA\xFF\xA9\x00\x8C\xFF\x44\x00\xF6\xFE\x5F\x00\xFB\xFE\x4C\x00\x02\xFF\x6D\x00\x54\xFF\x80\x00\xB1\xFF\xB8\x00\x5F\xFF\x59\x00\xFC\xFE\x71\xFF\x62\xFF\x4F\xFF\x4D\x00\xD4\xFF\xAD\x00\xC2\xFF\x92\x00\x9C\xFF\x86\x00\x52\x00\x53\x00\x9C\x00\xD0\xFF\x50\x00\x9F\xFF\x72\x00\x8F\xFF\x96\x00\x88\xFF\x48\x00\x70\xFF\x3C\x00\x32\xFF\x72\x00\x42\xFF\x57\x00\x71\xFF\x1B\x00\x97\xFF\xA7\xFF\xC2\xFF\x90\xFF\xFF\xFF\x38\x00\xCC\xFF\x86\x00\x73\xFF\xC6\x00\xE7\xFF\xBA\x00\x5A\x00\x70\x00\x0E\x00\xF1\x00\xF5\xFE\x0B\x01\xB9\xFE\xDA\x00\x41\xFF\xB3\x00\xCF\xFE\xEC\xFF\xB6\xFE\x72\xFF\xE2\xFF\xA4\xFF\x65\x00\x3E\x00\xDB\xFF\xAD\x00\xE6\xFF\x48\x00\x2A\x00\x0A\x00\xC2\xFF\x11\x00\x67\xFF\x30\x00\x3E\xFF\x03\x00\x4F\xFF\x96\xFF\x8F\xFF\x9F\xFF\x51\xFF\xD4\xFF\xBD\xFE\xBA\xFF\x0A\xFF\xFD\xFF\x33\xFF\x05\x00\x0D\xFF\x04\x00\x8D\xFF\x24\x00\x5C\x00\xCF\xFF\xC7\xFF\xB1\xFF\x97\xFF\x36\x00\x9D\xFF\x82\x00\x4B\xFF\xE4\xFF\x2E\xFF\x54\xFF\xED\xFE\x3B\xFF\x96\xFE\x69\xFF\xB4\xFE\xE0\xFF\xB1\xFF\xFE\xFF\x1A\x00\xC2\xFF\x39\x00\xB0\xFF\x2F\x00\x29\x00\x05\x00\xF9\xFF\x5C\x00\xDD\xFF\x47\x00\xDE\x00\x86\xFF\xCB\x00\xF5\xFE\x68\x00\xFB\xFE\xAD\x00\x30\xFF\x25\x01\xBB\xFE\x58\x01\x77\xFE\x09\x01\xA6\xFE\xE7\x00\xEB\xFE\xE4\x00\x89\xFF\xA9\x00\x0C\x00\x6A\x00\x7D\x00\x0D\x00\xF5\x00\xAB\xFF\xD1\x00\xCF\xFE\xCD\xFF\xE0\xFE\x33\xFF\x76\xFF\x9F\xFF\x0B\x00\x67\xFF\x8A\x00\x9F\xFE\x14\x00\x4B\xFE\xBF\xFF\x86\xFE\x52\x00\x0F\xFF\xC0\x00\x06\xFF\xDF\x00\x32\xFF\x07\x01\x2F\x00\xB0\x00\xD2\x00\x2F\x00\xA2\x00\x31\x00\x6D\x00\x2A\x00\x7D\x00\xBE\xFF\x20\x00\x0D\xFF\x71\xFF\xEC\xFE\xA5\xFE\xEF\xFE\x07\xFE\x24\xFF\x42\xFE\xA1\xFF\x79\xFE\xD6\xFF\x84\xFE\x93\xFF\xED\xFE\xEA\xFF\x4F\xFF\xB2\x00\x74\xFF\x84\x00\xE5\xFF\x8D\x00\x8E\x00\xC3\x00\x4E\x00\x7E\x00\x92\xFF\x53\x00\x40\xFF\x19\x00\x2A\xFF\xCB\xFF\xFD\xFE\x8B\xFF\xFA\xFE\xB6\xFF\x9D\xFE\xB7\xFF\x7F\xFE\xEC\xFF\xCF\xFE\x6B\x00\x7E\xFF\xA9\x00\xCE\xFF\x76\x00\xD1\xFF\x03\x00\x03\x00\x20\x00\xED\xFF\x4D\x00\xB6\xFF\x29\x00\x23\xFF\x15\x00\x07\xFF\x29\x00\x25\xFF\x4F\x00\xCB\xFE\x5A\x00\x9E\xFE\x14\x00\xE6\xFE\xD6\xFF\x41\xFF\x85\x00\x89\xFF\xD8\x00\xDA\xFF\x23\x00\x2E\x00\x12\x00\x89\x00\x49\x00\x9D\x00\xF5\xFF\x0F\x00\x38\x00\x9A\xFF\x9D\x00\x57\xFF\xDC\xFF\x46\xFF\x36\xFF\xFC\xFE\x60\xFF\x6B\xFE\x6E\xFF\x57\xFE\x88\xFF\x81\xFE\xC6\xFF\xF5\xFE\xEC\xFF\x87\xFF\xCF\xFF\xCE\xFF\x37\x00\xFC\xFF\xB6\x00\x4C\x00\xFD\x00\x11\x00\xA5\x00\xD4\xFF\x57\x00\xE3\xFF\x61\x00\xCC\xFF\x6D\x00\x65\xFF\x8A\x00\xF5\xFE\x4B\x00\xCF\xFE\x9A\xFF\x9F\xFE\x22\xFF\xC9\xFE\xB0\xFF\x12\xFF\xB7\xFF\x3B\xFF\x9B\xFF\x3B\xFF\x4D\x00\x51\xFF\xC0\x00\x64\xFF\xB8\x00\xAD\xFF\x8C\x00\xD4\xFF\x43\x00\xC9\xFF\x13\x00\x79\xFF\x54\xFF\xFA\xFE\xF1\xFE\xC9\xFE\x54\xFF\xA7\xFE\xA0\xFF\xF8\xFE\xED\xFF\x3F\xFF\x0D\x00\x51\xFF\xE5\xFF\x4E\xFF\xF2\xFF\xAA\xFF\x75\x00\x6D\x00\xF1\x00\x2F\x00\x08\x01\x86\xFF\xA9\x00\x24\xFF\x4C\x00\x08\xFF\x40\x00\x8D\xFE\xCD\xFF\x5C\xFE\x4E\xFF\x9D\xFE\x32\xFF\xC0\xFE\x47\xFF\xE7\xFE\x7C\xFF\x5C\xFF\xB1\xFF\xB2\xFF\x15\x00\xB1\xFF\x2F\x00\x41\x00\x04\x00\x46\x00\x6D\x00\xEA\xFF\x87\x00\xCD\xFF\x5C\x00\x54\xFF\x10\x00\x60\xFF\x6F\xFF\xE3\xFE\x50\xFF\xB6\xFE\xA8\xFF\xC8\xFE\xD2\xFF\xDE\xFE\xB6\xFF\x78\xFF\x54\xFF\xA1\xFF\x6C\xFF\xC3\xFF\xEC\xFF\x28\x00\x40\x00\xC7\xFF\x15\x00\x95\xFF\xA4\xFF\xAF\xFF\x5B\xFF\x81\xFF\x76\xFF\xAA\xFF\xD2\xFF\x7C\xFF\xC7\xFF\x0C\xFF\x8D\xFF\x0B\xFF\x9B\xFF\x06\xFF\x77\xFF\xF7\xFE\x78\xFF\x59\xFF\xB9\xFF\x5D\xFF\x40\x00\x6E\xFF\x73\x00\x5F\xFF\x3F\x00\x5B\xFF\x5C\x00\xC7\xFF\x4C\x00\xA1\xFF\x11\x00\xAC\xFF\xE3\xFF\xD5\xFF\xC0\xFF\x56\xFF\xA5\xFF\x01\xFF\x94\xFF\x91\xFE\xEC\xFF\x83\xFE\x5F\x00\x1B\xFF\x6B\x00\x5D\xFF\x3A\x00\x2D\xFF\xDB\xFF\x24\xFF\x75\xFF\x5C\xFF\x6C\xFF\x89\xFF\xC4\xFF\x6B\xFF\x1B\x00\x4D\xFF\xFF\xFF\x1A\xFF\x8E\xFF\x9A\xFE\x84\xFF\x94\xFE\x1B\x00\x8C\xFE\x2B\x00\x7B\xFE\xF7\xFF\xFB\xFE\x5B\x00\x60\xFF\x6E\x00\x9B\xFF\x50\x00\xB3\xFF\x11\x00\x7B\xFF\x37\x00\x72\xFF\x3D\x00\xB4\xFF\xD4\xFF\xA8\xFF\x95\xFF\x37\xFF\x60\xFF\xF3\xFE\x1E\xFF\xDD\xFE\x96\xFF\xC0\xFE\xDA\xFF\xE0\xFE\x7F\xFF\x04\xFF\x82\xFF\x7C\xFF\xCF\xFF\xAA\xFF\x46\x00\xA1\xFF\x8A\x00\x85\xFF\xEC\xFF\x8B\xFF\x74\xFF\x3C\x00\xF6\xFF\xFF\xFF\x38\x00\x78\xFF\xF2\xFF\x9E\xFF\xCD\xFF\xB2\xFF\xB1\xFF\x88\xFF\xCF\xFF\x1D\xFF\xE6\xFF\xDC\xFE\xDD\xFF\x55\xFE\x00\x00\xC2\xFE\x64\x00\xA7\xFF\xE8\x00\xFA\xFF\x3D\x00\xC7\xFF\x78\xFF\x63\xFF\x86\xFF\xDC\xFF\x87\xFF\x0A\x00\x5C\xFF\xCE\xFF\xB8\xFF\x7E\xFF\xE5\xFF\xF5\xFE\xDB\xFF\xC6\xFE\xBE\xFF\x51\xFE\xD4\xFF\x45\xFE\x29\x00\x73\xFE\x52\x00\xC2\xFE\xD8\xFF\x10\xFF\xC0\xFF\x3B\xFF\x52\x00\x06\x00\x2E\x00\x27\x00\x07\x00\xDA\xFF\xCC\xFF\x9D\xFF\xB2\xFF\x44\xFF\xB9\xFF\x18\xFF\xC9\xFF\x15\xFF\xC5\xFF\x29\xFF\xA7\xFF\xFF\xFE\xA9\xFF\xCD\xFE\x47\xFF\xF5\xFE\x33\xFF\x75\xFF\x64\xFF\x36\xFF\x53\xFF\x15\xFF\x8F\xFF\x93\xFF\x21\x00\x65\xFF\x46\x00\xE9\xFE\x3D\x00\x0E\xFF\x97\x00\xBF\xFF\x94\x00\xEA\xFF\x68\x00\xE1\xFF\xF8\xFF\x8B\x00\x6A\xFF\xC9\x00\xC2\xFF\x9B\x00\x42\x00\xBE\x00\x02\x00\x2D\x00\x9A\xFF\x46\xFF\x8B\xFF\xF1\xFE\x9A\xFF\x1B\xFF\xD0\xFF\xE3\xFE\x42\x00\x97\xFE\x31\x00\xB8\xFE\x9F\xFF\xAC\xFE\x8D\xFF\xF5\xFE\x68\xFF\x89\xFF\x51\xFF\xF8\xFF\xA8\xFF\xE8\xFF\x1D\x00\xD8\xFF\x5E\x00\xAE\xFF\x21\x00\x8D\xFF\xE3\xFF\x86\xFF\x3D\x00\x9B\xFF\x94\x00\x80\xFF\x45\x00\x85\xFF\x1B\x00\x4C\xFF\x86\xFF\xC8\xFE\x55\xFF\xCB\xFE\xE0\xFF\x2D\xFF\x7F\xFF\x66\xFF\x34\xFF\xC7\xFE\x5E\xFF\x70\xFE\x9D\xFF\xEF\xFE\xC5\xFF\x2B\xFF\xB4\xFF\x52\xFF\xF1\xFF\xBB\xFF\x06\x00\x14\x00\x06\x00\x54\x00\xFD\xFF\x46\x00\x55\x00\x2F\x00\x93\x00\x00\x00\x49\x00\xFD\xFF\x23\x00\xFE\xFF\x31\x00\x86\xFF\xDA\xFF\x9C\xFF\xF7\xFF\xA4\xFF\x1C\x00\xA9\xFF\x4C\xFF\x99\xFF\x12\xFF\x4A\xFF\xBF\xFF\x6B\xFF\x06\x00\xEE\xFF\xF1\xFF\x27\x00\x66\x00\xFD\xFF\xEF\x00\xA0\xFF\x31\x00\x89\xFF\x6D\xFF\xB1\xFF\xDD\xFF\x5B\xFF\x62\x00\xF1\xFE\x1A\x00\x15\xFF\xD5\xFF\x4E\xFF\x14\x00\x29\xFF\x5E\x00\x2B\xFF\x28\x00\x4D\xFF\xF4\xFF\x50\xFF\xFB\xFF\x39\xFF\x05\x00\x79\xFF\xB1\xFF\xED\xFF\xB2\xFF\x3E\x00\xD0\xFF\x24\x00\xC3\xFF\xF9\xFF\xF8\xFF\xF8\xFF\xF2\xFF\xC9\xFF\x74\xFF\x7A\xFF\xA7\xFF\x10\xFF\xF6\xFF\x5F\xFF\xD8\xFF\x83\xFF\xCD\xFF\xF9\xFE\x33\x00\xF2\xFE\x79\x00\xA1\xFF\xD2\xFF\x27\x00\x07\x00\x45\xFF\xAF\x00\xDF\xFE\x79\x00\x33\xFF\x5E\x00\x3C\xFF\x3E\x00\x66\xFF\x21\x00\x3A\xFF\xEC\xFF\x37\x00\xCC\xFF\xD9\x00\x14\x00\x71\x00\x09\x00\x63\x00\x7B\xFF\x2F\x01\x87\xFF\xBC\x00\x2B\x00\x06\xFF\x56\x00\x0F\xFF\x3E\x00\xF2\xFE\x63\x00\x7E\xFE\x3B\x00\x2F\xFE\xF8\xFF\x99\xFE\xDC\xFF\xE3\xFF\x9C\xFF\x84\xFF\x4A\xFF\x13\x00\x62\xFF\x72\x00\x64\xFF\xA3\x00\x60\xFF\xC7\x00\xCF\xFF\xB2\xFF\x09\x00\xE8\xFF\xF1\xFF\xDB\xFF\x11\x00\x78\xFF\x5F\x00\xBA\xFE\x45\x00\x6A\xFE\x98\xFF\xD9\xFE\x8E\xFF\xCD\xFE\xF7\xFF\x48\xFF\xD5\xFF\xB6\xFF\xC0\xFF\x21\x00\x13\x00\x23\x00\x27\x00\x72\x00\x91\xFF\xD8\x00\x7F\xFF\x27\x00\x87\xFF\xDC\xFF\x64\xFF\x33\x00\x65\xFF\x91\x00\x8E\xFF\xC8\xFF\x22\x00\x71\xFF\x39\x00\x85\xFF\xE8\xFF\xC8\xFE\xC0\xFF\x49\xFE\xAD\xFF\x56\xFE\x14\x00\xA4\xFE\x59\x00\x4D\xFF\x5B\x00\xDC\xFF\x1B\x00\x62\x00\xC9\xFF\xF8\xFF\x17\x00\xE4\xFF\x68\x00\xAB\x00\x38\x00\x77\x00\x0D\x00\xB1\xFF\xE7\xFF\xCB\xFF\x02\x00\xFD\xFF\x75\x00\xCB\xFE\x7E\x00\xC4\xFE\x4C\x00\x1A\xFF\xEC\xFF\x45\xFF\x8D\xFF\x4E\xFF\x4F\xFF\xBF\xFF\x6C\xFF\x35\x00\x9C\xFF\x86\xFF\x10\x00\x56\xFF\x56\x00\x87\xFF\xA4\xFF\xCE\xFF\x87\xFF\xF4\xFF\x6E\x00\x86\xFF\x93\x00\x13\xFF\x0C\x00\x2B\xFF\xF0\xFF\xA5\xFF\x31\x00\x37\x00\x51\x00\x97\x00\x39\x00\x93\x00\x27\x00\x54\x00\xD5\xFF\x00\x00\xAC\xFF\x9B\xFF\x9C\xFF\x72\xFF\x02\x00\x62\xFF\x22\x00\xF2\xFF\xEF\xFF\xF0\xFF\xD8\xFF\x85\xFF\xD2\xFF\xC7\xFF\xB1\xFF\xD4\xFF\xAF\xFF\xB3\xFF\xF1\xFF\xDB\xFF\xFF\xFF\x2A\x00\xE2\xFF\x2A\x00\xCA\xFF\x5B\x00\xD0\xFF\xFA\xFF\x1D\x00\x56\xFF\x75\x00\x6C\xFF\x4C\x00\x72\xFF\x32\x00\x2B\xFF\x43\x00\xC6\xFE\x1D\x00\x5A\xFF\xBD\xFF\xBB\xFF\xFE\xFF\xCE\xFF\xB9\x00\xA1\xFF\x97\x00\xAB\xFF\xE8\xFF\x29\x00\xB1\xFF\x3F\x00\x22\x00\x00\x00\xD1\xFF\xE6\xFF\x7E\xFF\x1D\x00\xC8\xFF\x57\x00\x22\x00\x1B\x00\xFF\xFF\x99\xFF\xDC\xFF\x1A\xFF\x40\x00\x2B\xFF\x61\x00\xB2\xFF\x29\x00\xFA\xFF\xF8\xFF\x27\x00\x69\x00\xE1\xFF\x8F\x00\x06\x00\x21\x00\x4E\x00\xE1\xFF\x5B\x00\xDF\xFF\x2B\x00\xDD\xFF\xA2\xFF\xF0\xFF\x81\xFF\x39\x00\x78\xFF\x3D\x00\x6B\xFF\xFB\xFF\x83\xFF\xBE\xFF\xD0\xFF\xF7\xFF\x0E\x00\x59\x00\xEA\xFF\x8D\x00\xBE\xFF\x61\x00\x09\x00\x42\x00\x2A\x00\x47\x00\x37\x00\x05\x00\x14\x00\xAB\xFF\xE4\xFF\xBF\xFF\x94\xFF\xE1\xFF\x8B\xFF\xB3\xFF\x95\xFF\x9D\xFF\x9F\xFF\x14\x00\x73\xFF\xBC\x00\x54\xFF\xC6\x00\x87\xFF\x46\x00\xF2\xFF\x3F\x00\x3C\x00\x87\x00\xFF\xFF\x98\x00\x04\x00\x03\x00\x29\x00\x67\xFF\xFF\xFF\x0E\xFF\xD7\xFF\xF2\xFE\xDA\xFF\x4B\xFF\xF4\xFF\x96\xFF\xF9\xFF\x03\x00\xDC\xFF\x94\x00\xF7\xFF\xB4\x00\xD1\xFF\x80\x00\xBB\xFF\x87\x00\xC6\xFF\xCC\x00\xE5\xFF\x96\x00\xF3\xFF\x14\x00\x27\x00\xA5\xFF\x3F\x00\x85\xFF\xDB\xFF\x9B\xFF\x95\xFF\x05\x00\x47\xFF\xF3\xFF\xAF\xFF\x8A\xFF\x31\x00\x9C\xFF\x4F\x00\xE3\xFF\x1D\x00\x14\x00\xE1\xFF\x52\x00\x27\x00\x88\x00\x76\x00\x6A\x00\x76\x00\x2E\x00\x73\x00\x1B\x00\x30\x00\x30\x00\x00\x00\x44\x00\x08\x00\x31\x00\xED\xFF\x50\x00\x75\xFF\x6E\x00\x39\xFF\xAB\x00\x85\xFF\xB7\x00\x1B\x00\x72\x00\x59\x00\x56\x00\x65\x00\xF0\xFF\x77\x00\x8E\xFF\x7D\x00\x96\xFF\x93\x00\xB0\xFF\x71\x00\x0B\x00\x16\x00\x9D\xFF\xDE\xFF\x09\xFF\xC0\xFF\xD4\xFF\x55\xFF\x86\x00\xED\xFE\x3F\x00\x49\xFF\x1E\x00\xD3\xFF\x00\x00\xD7\xFF\x0D\x00\xBF\xFF\x5E\x00\x29\x00\x71\x00\xBA\x00\x26\x00\xA7\x00\x0D\x00\x62\x00\xEB\xFF\x1B\x00\x94\xFF\x36\x00\x84\xFF\x70\x00\x8C\xFF\x3E\x00\x90\xFF\x06\x00\x87\xFF\xB7\xFF\xC0\xFF\x56\xFF\xDD\xFF\x73\xFF\x15\x00\xCE\xFF\x40\x00\xAC\xFF\x15\x00\x22\xFF\x1D\x00\x39\xFF\x14\x00\xA4\xFF\x7D\x00\xAE\xFF\x7E\x00\xA1\xFF\x08\x00\xAA\xFF\x07\x00\x33\x00\x09\x00\x54\x00\xA2\xFF\x52\x00\x98\xFF\xC9\xFF\xD6\xFF\x3C\x00\xD5\xFF\xF6\x00\x9C\xFF\xA2\x00\x9E\xFF\x64\x00\x37\x00\x2B\x00\xC4\x00\xEF\xFF\x8A\x00\x00\x00\x39\x00\xD5\xFF\x22\x00\x94\xFF\x16\x00\x6E\xFF\xF6\xFF\x54\xFF\xC4\xFF\xBD\xFF\xF4\xFF\x06\x00\x0E\x00\xF2\xFF\xC2\xFF\xCC\xFF\xA4\xFF\x47\x00\xFC\xFF\x7A\x00\x2A\x00\x52\x00\x4B\x00\x43\x00\x89\x00\x54\x00\xC4\x00\x3E\x00\x81\x00\xCF\xFF\x5E\x00\x84\xFF\x28\x00\x0D\x00\x9B\xFF\x51\x00\x5F\xFF\x32\x00\xE6\xFF\x29\x00\x0F\x00\x8A\xFF\xF0\xFF\xF1\xFE\xD2\xFF\xF7\xFF\xBA\xFF\x85\x00\x9C\xFF\x4B\x00\xD9\xFF\xA4\xFF\x0D\x00\x51\xFF\xF2\xFF\xC0\xFF\xB9\xFF\xF7\xFF\x73\xFF\x7C\x00\x9E\xFF\x7B\x00\x1B\x00\xF9\xFF\xA5\x00\xF2\xFF\x8C\x00\xBF\xFF\x52\x00\xFA\xFF\xAA\x00\xE1\xFF\xEF\x00\x39\x00\xF1\x00\x08\x00\xA0\x00\x5B\xFF\xCE\xFF\x7C\xFF\x6F\xFF\xA9\xFF\x48\xFF\x00\x00\x3C\xFF\xE1\xFF\xA4\xFF\xA7\xFF\x7F\xFF\x29\x00\x72\xFF\x90\x00\xB9\xFF\xBF\x00\xEB\xFF\x1D\x00\x27\x00\xDC\xFF\x55\x00\x5C\x00\x80\x00\x47\x00\x4F\x00\xC6\xFF\x18\x00\x24\x00\x45\x00\x4E\x00\xA4\x00\xD8\xFF\xDD\xFF\x8C\xFF\x51\xFF\x01\x00\xD6\xFF\xAF\x00\xC9\xFF\x9C\x00\x88\xFF\xD6\xFF\x79\xFF\xF0\xFF\x5D\x00\x1F\x00\x29\x00\xD4\xFF\xBD\xFF\x2D\x00\xA9\xFF\x33\x00\x95\xFF\x0A\x00\x6D\xFF\xAC\xFF\x38\xFF\x22\xFF\xF7\xFF\xFA\xFE\x67\x00\x59\xFF\x70\x00\xCD\xFF\x63\xFF\x6A\x00\x67\xFF\xCB\x00\xD1\xFF\xEF\x00\xA3\xFF\x8D\x00\x2B\x00\x8C\x00\xFC\x00\xE2\x00\xA1\x00\x05\x01\xFC\xFF\x91\x00\x38\x00\x47\xFF\xEE\x00\x47\xFF\x65\x00\x8D\xFF\xA9\xFF\xC9\xFF\xEF\xFF\x84\xFF\x19\x00\xBB\xFF\x0A\x00\x2E\x00\xC0\xFF\x97\x00\xFA\xFF\x72\x00\x62\x00\x40\x00\x98\x00\x48\x00\x22\x00\x24\x00\xBC\xFF\x15\x00\xCD\xFF\x13\x00\xAA\xFF\xE4\xFF\x79\xFF\x5F\xFF\xBA\xFF\x7E\xFF\xFE\xFF\x09\x00\xA1\xFF\x63\x00\x4D\xFF\xBD\x00\xF6\xFF\xE4\x00\xA7\x00\x84\x00\xD8\x00\x30\x00\x12\x00\xAD\xFF\xF9\xFF\x7A\xFF\x65\x00\xD6\xFF\xED\xFF\x70\xFF\xB7\xFF\x3A\xFF\x93\xFF\x66\xFF\x56\xFF\xB8\xFF\xEB\xFE\x31\x00\xE8\xFE\x2F\x00\x81\xFF\x47\x00\xBF\xFF\xE3\x00\xE8\xFF\xEF\x00\xBD\xFF\xDC\xFF\xAA\xFF\xCE\xFF\x4A\x00\x69\x00\x1D\x00\x53\x00\x4E\x00\xC9\xFF\xF4\x00\x41\xFF\x1E\x00\x55\xFF\xA1\xFF\x7B\xFF\x18\x00\x2D\xFF\x42\x00\x99\xFF\xA3\xFF\x95\x00\xC0\xFF\xDC\x00\x9B\xFF\xF1\x00\xBA\xFF\x51\x01\x3D\x00\xF1\x00\x0C\x00\xE3\xFF\x69\x00\x0C\x00\xED\x00\x4D\x00\x6A\x00\xA2\xFF\xE6\xFF\x2C\xFF\x23\x00\x41\xFF\x09\x00\x63\x00\x4E\xFF\x6C\x00\x18\xFF\xD5\xFF\x37\xFF\x8C\x00\xC9\xFF\x42\x01\x23\x00\x1C\x01\x56\x00\xA2\x00\xB9\x00\x55\x00\x5E\x00\x32\x00\xB7\xFF\x8B\x00\x6B\xFF\x10\x00\x1B\x00\xAE\xFF\x54\x00\x3E\xFF\xC9\xFF\x50\xFE\x6C\xFF\xC1\xFE\x79\xFF\xAB\xFF\x8A\xFF\x08\x00\xC0\xFF\x78\x00\x47\x00\xDF\x00\x62\x00\x0A\x01\xEC\xFF\xF9\x00\x7C\xFF\x4F\x00\xB3\xFF\xCF\xFF\x73\x00\x65\x00\x52\x00\x14\x00\x0D\x00\x0C\x00\x8E\xFF\x3D\x00\x47\xFF\xA3\xFF\xF1\xFF\x41\xFF\x31\x00\x7D\xFF\x2A\x00\xB5\x00\xF1\xFF\xBB\x00\x7A\xFF\x14\x00\xBC\xFF\x2C\x00\xDD\xFF\x47\x00\x05\x00\x55\x00\x68\x00\xE8\x00\x21\x00\x0F\x01\xBD\xFF\x7F\x00\xDA\xFF\x7C\xFF\x7C\x00\x33\xFF\x87\x00\x66\xFF\x6C\x00\x07\x00\x62\x00\xB4\x00\xC3\xFF\xF0\x00\xC2\xFF\xD3\x00\x4F\x00\xFB\x00\x86\x00\x27\x01\x96\xFF\xA1\x00\x16\xFF\x3C\x00\xE8\xFF\x13\x00\x25\x00\x9E\xFF\xC7\xFF\x15\xFF\xCD\xFF\x3D\xFF\xFD\xFF\xF7\xFF\x69\x00\x44\x00\x54\x00\x3D\x00\x3E\x00\x5E\x00\xA1\x00\x83\x00\x65\x00\x42\x01\x33\x00\x4D\x01\x06\x00\xAB\x00\xE5\xFF\x21\x00\xDD\xFF\xDA\xFF\x4C\x00\xE4\xFF\x98\x00\xA2\xFF\xC5\xFF\x15\xFF\x69\xFF\x3E\xFF\xF5\xFF\xA9\xFF\xF2\xFF\xA9\xFF\x8F\xFF\xE3\xFF\x8F\xFF\xCB\x00\xCE\xFF\x6E\x01\xEC\xFF\xBC\x01\xBF\xFF\x12\x01\xF9\xFF\x36\x00\x3F\x00\xF8\xFF\x17\x00\xF0\xFF\xC2\xFF\xE6\xFF\x64\xFF\xA8\xFF\x9E\xFE\x7F\xFF\xE4\xFE\xE6\xFF\xB5\xFF\x95\x00\xB7\xFF\xA2\x00\x6C\xFF\x59\x00\x4F\xFF\xB6\x00\xBF\xFF\x20\x01\x64\x00\xEA\x00\x73\x00\x2F\x01\x83\x00\x46\x01\x92\x00\x09\x01\x46\x00\x76\x00\xFD\xFF\xFA\xFF\x04\x00\x03\x00\xDC\xFF\x21\x00\x88\xFF\xE5\xFF\x68\xFF\xE8\xFF\x5B\xFF\x1A\x00\x6E\xFF\xC6\xFF\x87\xFF\xBF\xFF\xBC\xFF\x46\x00\x32\x00\x92\x00\x77\x00\x79\x00\x4E\x00\x2F\x00\x13\x00\x66\x00\x71\x00\x4C\x49\x53\x54\x40\x00\x00\x00\x49\x4E\x46\x4F\x49\x53\x46\x54\x15\x00\x00\x00\x53\x6F\x6E\x79\x20\x53\x6F\x75\x6E\x64\x20\x46\x6F\x72\x67\x65\x20\x37\x2E\x30\x00\x00\x49\x45\x4E\x47\x02\x00\x00\x00\x20\x00\x49\x43\x52\x44\x0B\x00\x00\x00\x32\x30\x30\x34\x2D\x31\x30\x2D\x32\x31\x00\x02";
char* MOVE   = "\x52\x49\x46\x46\xA0\x04\x00\x00\x57\x41\x56\x45\x66\x6D\x74\x20\x32\x00\x00\x00\x02\x00\x02\x00\x22\x56\x00\x00\x27\x57\x00\x00\x00\x04\x04\x00\x20\x00\xF4\x03\x07\x00\x00\x01\x00\x00\x00\x02\x00\xFF\x00\x00\x00\x00\xC0\x00\x40\x00\xF0\x00\x00\x00\xCC\x01\x30\xFF\x88\x01\x18\xFF\x66\x61\x63\x74\x04\x00\x00\x00\xA7\x02\x00\x00\x64\x61\x74\x61\x00\x04\x00\x00\x02\x02\x28\x00\x37\x00\x89\xFF\x6F\x01\x3D\x01\x76\x00\x4E\x64\x05\xBF\x1C\xC2\x0B\x70\x37\x80\x78\xE7\xFD\x50\xD4\xEB\x2F\x22\x71\xF4\xED\xFD\x4E\x16\xF0\x0F\xD0\x4D\x34\xC1\xFC\x20\x22\xF1\xCF\x0D\x20\x42\xE4\xED\x2E\x02\x00\x21\x02\x2F\x92\x08\x00\xF0\x00\x00\x20\xF2\x0F\x10\x01\x50\x24\xF1\xFE\xEF\x0D\x00\x00\xF0\x1E\x03\xF0\x6F\x27\xE1\x0E\x30\xE4\xDE\x0F\xE0\x3F\x82\xE8\x5F\x04\x10\x11\xF1\x0F\x00\x20\xD2\xDC\x0F\x50\xF4\xBE\x1C\x33\x14\xF0\x0F\x11\xF1\x0E\x10\xB1\xEA\x1F\x31\xD2\xED\x7F\x17\x00\xE0\x1F\x11\x00\x00\xE0\xCE\xED\x5E\x16\xF0\x0F\x40\x34\xF2\xFE\xEF\x3E\xF3\x1F\xD1\x8D\x0A\x20\x23\xE2\x1C\x32\x02\x00\x30\xD3\xBC\xED\x0E\x12\xD1\x5C\x06\xE0\x0E\x60\x15\xE1\xEE\x1F\x21\xE2\xFE\xFF\x0F\x30\x73\xF7\xDE\x2E\x43\x04\xD0\xFD\x00\x00\xF0\x0F\x11\x11\x41\xF4\x0F\x11\x01\xC0\xEC\x1F\x02\xB0\xEA\x2F\x42\x23\xE2\xEE\x7E\x47\x03\xDF\xEB\x2F\x02\xE0\xFE\x4F\x33\x03\xE0\x0E\x51\x35\x03\x9F\x08\x10\x01\xE0\x0E\x10\x31\x12\xF1\xFF\x10\x72\x05\xF0\xCF\x0B\x20\x12\xF1\xDF\x4D\x44\x33\xF3\x0E\x00\x00\xF0\xBF\xEA\x0E\x30\x03\xFF\x10\x71\x27\x01\xF0\x1F\x01\xE0\xDE\xAE\x0B\x22\x02\xF1\x0F\x61\x37\x03\xD0\x0D\x00\xF0\xCF\xEC\xFE\x40\x45\x02\x00\x30\x64\x05\xF0\x0F\x00\x01\xE0\xED\x0E\x31\x32\x43\x04\x20\x73\x07\xE0\xFE\x00\x10\xD1\xED\x2F\x63\x36\x13\x00\x10\x62\x06\xF0\xE0\x0E\x00\x00\xF0\xEF\x4F\x55\x34\xF3\x0F\x10\x21\xE2\xFD\xD0\xDE\x2F\x21\x32\xC3\x7C\x37\x23\x02\x20\x23\xD2\xAE\xFA\x30\xF4\x00\xF0\x5F\x35\x32\xF3\xCE\x3D\x34\x02\x80\x09\x00\x10\x01\x10\x02\xF0\x2F\x54\x14\xC0\x0B\x20\x22\x11\x00\x00\x00\x70\x16\x01\xFF\x3F\x04\x10\x31\x11\xC1\x2E\x73\x07\x00\x00\x51\x15\x00\xF0\x10\x02\x10\x12\x12\xD1\xEF\x70\x07\x00\x00\x40\x34\x12\x11\xF1\x10\xF2\x70\x07\x00\x10\x31\x54\x13\x10\x22\x13\x01\x20\x13\x12\x03\x61\xF5\x0F\x01\x10\x73\x07\x01\x00\x50\x06\x10\x01\x00\x31\x43\x33\xF3\x1E\x71\x17\xF1\x0F\x30\x66\xF3\xFE\x30\x24\xF1\x0F\x00\x00\x41\x04\x00\xE0\x20\x22\xC1\x0F\x20\x15\xD0\x5E\x45\x03\x00\x42\x44\x26\xF1\x00\x00\x00\x20\x01\x90\xFB\x60\x07\x00\x01\x00\x01\x00\x30\x14\xE1\xDF\x5F\x24\xE2\x0E\x31\x43\x15\x32\xE2\xCF\xFD\x50\xF7\xBF\x0E\x10\x03\x40\x56\x24\xF2\xFF\x50\x26\x01\xE0\x2F\x12\x01\x50\x24\xE1\x4E\x55\x04\xE0\x0D\x61\xF5\xEE\x0E\xF0\x20\x03\x20\x04\x00\x40\x64\x15\x01\x20\x13\x01\xF0\x0F\x12\x02\x3F\x05\xF1\x30\x72\x35\xE3\x0C\x60\x06\xE0\xBE\x0D\x12\x02\xF0\xED\x70\x37\x14\x01\x00\x00\x00\x10\xF2\xEE\x0E\x32\x05\x10\x72\x26\x32\x32\x13\x01\xE0\xEF\x80\xDB\x0C\x01\x11\x12\x21\x42\x03\x11\x13\x13\xD1\xFE\x10\xD1\x0E\x11\x32\x04\x51\x66\x14\x11\x12\x01\x00\x10\x21\xF3\xE0\x40\x46\x02\xD0\x5F\x35\x22\xF1\xCF\x0E\x51\x35\x12\x00\x00\x42\x45\x02\xB0\xEC\x1F\x23\x02\x10\x43\x76\x56\x13\x01\x00\x20\x23\xF2\xDE\x0D\x21\x12\x12\x12\x23\x02\x21\x42\x25\x01\x20\x12\xE0\x2F\x44\x53\x25\x02\x10\x31\x75\x45\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4C\x49\x53\x54\x46\x00\x00\x00\x49\x4E\x46\x4F\x49\x43\x52\x44\x0B\x00\x00\x00\x31\x39\x39\x36\x2D\x30\x32\x2D\x30\x37\x00\x00\x49\x45\x4E\x47\x0D\x00\x00\x00\x42\x69\x6C\x6C\x20\x57\x6F\x6C\x66\x6F\x72\x64\x00\x00\x49\x53\x46\x54\x10\x00\x00\x00\x53\x6F\x75\x6E\x64\x20\x46\x6F\x72\x67\x65\x20\x34\x2E\x30\x00";
//-----------------------------------------------------------------------------

#stdafx.h
//==================================================================
// This file is part of Qmo Base D3D Class part 2
// (c) copyright Qmo 2011™
// special thanks to : mpgh.net
//==================================================================


#pragma once

#define WIN32_LEAN_AND_MEAN
#define WIN32_EXTRA_LEAN

#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <d3d9.h>
#include <d3dx9.h>

#pragma message("Building  : QmoMPGHClassD3D")
//==================================================================

2a. Make a new C++ file (.cpp) and give a new name ( It's up to you ) or that I recommend, then copy/paste all this code :

#ADE32.cpp
#include "stdafx.h"

#include "ADE32.h"

DWORD ade32_table[512] = {
/* 00 */  C_MODRM,
/* 01 */  C_MODRM,
/* 02 */  C_MODRM,
/* 03 */  C_MODRM,
/* 04 */  C_DATA1,
/* 05 */  C_DATA66,
/* 06 */  C_BAD,
/* 07 */  C_BAD,
/* 08 */  C_MODRM,
/* 09 */  C_MODRM,
/* 0A */  C_MODRM,
/* 0B */  C_MODRM,
/* 0C */  C_DATA1,
/* 0D */  C_DATA66,
/* 0E */  C_BAD,
/* 0F */  C_OPCODE2,
/* 10 */  C_MODRM+C_BAD,
/* 11 */  C_MODRM,
/* 12 */  C_MODRM+C_BAD,
/* 13 */  C_MODRM,
/* 14 */  C_DATA1+C_BAD,
/* 15 */  C_DATA66+C_BAD,
/* 16 */  C_BAD,
/* 17 */  C_BAD,
/* 18 */  C_MODRM+C_BAD,
/* 19 */  C_MODRM,
/* 1A */  C_MODRM,
/* 1B */  C_MODRM,
/* 1C */  C_DATA1+C_BAD,
/* 1D */  C_DATA66+C_BAD,
/* 1E */  C_BAD,
/* 1F */  C_BAD,
/* 20 */  C_MODRM,
/* 21 */  C_MODRM,
/* 22 */  C_MODRM,
/* 23 */  C_MODRM,
/* 24 */  C_DATA1,
/* 25 */  C_DATA66,
/* 26 */  C_SEG+C_BAD,
/* 27 */  C_BAD,
/* 28 */  C_MODRM,
/* 29 */  C_MODRM,
/* 2A */  C_MODRM,
/* 2B */  C_MODRM,
/* 2C */  C_DATA1,
/* 2D */  C_DATA66,
/* 2E */  C_SEG+C_BAD,
/* 2F */  C_BAD,
/* 30 */  C_MODRM,
/* 31 */  C_MODRM,
/* 32 */  C_MODRM,
/* 33 */  C_MODRM,
/* 34 */  C_DATA1,
/* 35 */  C_DATA66,
/* 36 */  C_SEG+C_BAD,
/* 37 */  C_BAD,
/* 38 */  C_MODRM,
/* 39 */  C_MODRM,
/* 3A */  C_MODRM,
/* 3B */  C_MODRM,
/* 3C */  C_DATA1,
/* 3D */  C_DATA66,
/* 3E */  C_SEG+C_BAD,
/* 3F */  C_BAD,
/* 40 */  0,
/* 41 */  0,
/* 42 */  0,
/* 43 */  0,
/* 44 */  C_BAD,
/* 45 */  0,
/* 46 */  0,
/* 47 */  0,
/* 48 */  0,
/* 49 */  0,
/* 4A */  0,
/* 4B */  0,
/* 4C */  C_BAD,
/* 4D */  0,
/* 4E */  0,
/* 4F */  0,
/* 50 */  0,
/* 51 */  0,
/* 52 */  0,
/* 53 */  0,
/* 54 */  0,
/* 55 */  0,
/* 56 */  0,
/* 57 */  0,
/* 58 */  0,
/* 59 */  0,
/* 5A */  0,
/* 5B */  0,
/* 5C */  C_BAD,
/* 5D */  0,
/* 5E */  0,
/* 5F */  0,
/* 60 */  C_BAD,
/* 61 */  C_BAD,
/* 62 */  C_MODRM+C_BAD,
/* 63 */  C_MODRM+C_BAD,
/* 64 */  C_SEG,
/* 65 */  C_SEG+C_BAD,
/* 66 */  C_66,
/* 67 */  C_67,
/* 68 */  C_DATA66,
/* 69 */  C_MODRM+C_DATA66,
/* 6A */  C_DATA1,
/* 6B */  C_MODRM+C_DATA1,
/* 6C */  C_BAD,
/* 6D */  C_BAD,
/* 6E */  C_BAD,
/* 6F */  C_BAD,
/* 70 */  C_DATA1+C_REL+C_BAD,
/* 71 */  C_DATA1+C_REL+C_BAD,
/* 72 */  C_DATA1+C_REL,
/* 73 */  C_DATA1+C_REL,
/* 74 */  C_DATA1+C_REL,
/* 75 */  C_DATA1+C_REL,
/* 76 */  C_DATA1+C_REL,
/* 77 */  C_DATA1+C_REL,
/* 78 */  C_DATA1+C_REL,
/* 79 */  C_DATA1+C_REL,
/* 7A */  C_DATA1+C_REL+C_BAD,
/* 7B */  C_DATA1+C_REL+C_BAD,
/* 7C */  C_DATA1+C_REL,
/* 7D */  C_DATA1+C_REL,
/* 7E */  C_DATA1+C_REL,
/* 7F */  C_DATA1+C_REL,
/* 80 */  C_MODRM+C_DATA1,
/* 81 */  C_MODRM+C_DATA66,
/* 82 */  C_MODRM+C_DATA1+C_BAD,
/* 83 */  C_MODRM+C_DATA1,
/* 84 */  C_MODRM,
/* 85 */  C_MODRM,
/* 86 */  C_MODRM,
/* 87 */  C_MODRM,
/* 88 */  C_MODRM,
/* 89 */  C_MODRM,
/* 8A */  C_MODRM,
/* 8B */  C_MODRM,
/* 8C */  C_MODRM+C_BAD,
/* 8D */  C_MODRM,
/* 8E */  C_MODRM+C_BAD,
/* 8F */  C_MODRM,
/* 90 */  0,
/* 91 */  0,
/* 92 */  0,
/* 93 */  C_BAD,
/* 94 */  C_BAD,
/* 95 */  C_BAD,
/* 96 */  C_BAD,
/* 97 */  C_BAD,
/* 98 */  C_BAD,
/* 99 */  0,
/* 9A */  C_DATA66+C_DATA2+C_BAD,
/* 9B */  0,
/* 9C */  C_BAD,
/* 9D */  C_BAD,
/* 9E */  C_BAD,
/* 9F */  C_BAD,
/* A0 */  C_ADDR67,
/* A1 */  C_ADDR67,
/* A2 */  C_ADDR67,
/* A3 */  C_ADDR67,
/* A4 */  0,
/* A5 */  0,
/* A6 */  0,
/* A7 */  0,
/* A8 */  C_DATA1,
/* A9 */  C_DATA66,
/* AA */  0,
/* AB */  0,
/* AC */  0,
/* AD */  C_BAD,
/* AE */  0,
/* AF */  C_BAD,
/* B0 */  C_DATA1,
/* B1 */  C_DATA1,
/* B2 */  C_DATA1,
/* B3 */  C_DATA1,
/* B4 */  C_DATA1,
/* B5 */  C_DATA1,
/* B6 */  C_DATA1+C_BAD,
/* B7 */  C_DATA1+C_BAD,
/* B8 */  C_DATA66,
/* B9 */  C_DATA66,
/* BA */  C_DATA66,
/* BB */  C_DATA66,
/* BC */  C_DATA66+C_BAD,
/* BD */  C_DATA66,
/* BE */  C_DATA66,
/* BF */  C_DATA66,
/* C0 */  C_MODRM+C_DATA1,
/* C1 */  C_MODRM+C_DATA1,
/* C2 */  C_DATA2+C_STOP,
/* C3 */  C_STOP,
/* C4 */  C_MODRM+C_BAD,
/* C5 */  C_MODRM+C_BAD,
/* C6 */  C_MODRM+C_DATA1,
/* C7 */  C_MODRM+C_DATA66,
/* C8 */  C_DATA2+C_DATA1,
/* C9 */  0,
/* CA */  C_DATA2+C_STOP+C_BAD,
/* CB */  C_STOP+C_BAD,
/* CC */  C_BAD,
/* CD */  C_BAD,
/* CE */  C_BAD,
/* CF */  C_STOP+C_BAD,
/* D0 */  C_MODRM,
/* D1 */  C_MODRM,
/* D2 */  C_MODRM,
/* D3 */  C_MODRM,
/* D4 */  C_DATA1+C_BAD,
/* D5 */  C_DATA1+C_BAD,
/* D6 */  C_BAD,
/* D7 */  C_BAD,
/* D8 */  C_MODRM,
/* D9 */  C_MODRM,
/* DA */  C_MODRM,
/* DB */  C_MODRM,
/* DC */  C_MODRM,
/* DD */  C_MODRM,
/* DE */  C_MODRM,
/* DF */  C_MODRM,
/* E0 */  C_DATA1+C_REL+C_BAD,
/* E1 */  C_DATA1+C_REL+C_BAD,
/* E2 */  C_DATA1+C_REL,
/* E3 */  C_DATA1+C_REL,
/* E4 */  C_DATA1+C_BAD,
/* E5 */  C_DATA1+C_BAD,
/* E6 */  C_DATA1+C_BAD,
/* E7 */  C_DATA1+C_BAD,
/* E8 */  C_DATA66+C_REL,
/* E9 */  C_DATA66+C_REL+C_STOP,
/* EA */  C_DATA66+C_DATA2+C_BAD,
/* EB */  C_DATA1+C_REL+C_STOP,
/* EC */  C_BAD,
/* ED */  C_BAD,
/* EE */  C_BAD,
/* EF */  C_BAD,
/* F0 */  C_LOCK+C_BAD,
/* F1 */  C_BAD,
/* F2 */  C_REP,
/* F3 */  C_REP,
/* F4 */  C_BAD,
/* F5 */  C_BAD,
/* F6 */  C_MODRM,
/* F7 */  C_MODRM,
/* F8 */  0,
/* F9 */  0,
/* FA */  C_BAD,
/* FB */  C_BAD,
/* FC */  0,
/* FD */  0,
/* FE */  C_MODRM,
/* FF */  C_MODRM,
/* 00 */  C_MODRM,
/* 01 */  C_MODRM,
/* 02 */  C_MODRM,
/* 03 */  C_MODRM,
/* 04 */  C_ERROR,
/* 05 */  C_ERROR,
/* 06 */  0,
/* 07 */  C_ERROR,
/* 08 */  0,
/* 09 */  0,
/* 0A */  0,
/* 0B */  0,
/* 0C */  C_ERROR,
/* 0D */  C_ERROR,
/* 0E */  C_ERROR,
/* 0F */  C_ERROR,
/* 10 */  C_ERROR,
/* 11 */  C_ERROR,
/* 12 */  C_ERROR,
/* 13 */  C_ERROR,
/* 14 */  C_ERROR,
/* 15 */  C_ERROR,
/* 16 */  C_ERROR,
/* 17 */  C_ERROR,
/* 18 */  C_ERROR,
/* 19 */  C_ERROR,
/* 1A */  C_ERROR,
/* 1B */  C_ERROR,
/* 1C */  C_ERROR,
/* 1D */  C_ERROR,
/* 1E */  C_ERROR,
/* 1F */  C_ERROR,
/* 20 */  C_ERROR,
/* 21 */  C_ERROR,
/* 22 */  C_ERROR,
/* 23 */  C_ERROR,
/* 24 */  C_ERROR,
/* 25 */  C_ERROR,
/* 26 */  C_ERROR,
/* 27 */  C_ERROR,
/* 28 */  C_ERROR,
/* 29 */  C_ERROR,
/* 2A */  C_ERROR,
/* 2B */  C_ERROR,
/* 2C */  C_ERROR,
/* 2D */  C_ERROR,
/* 2E */  C_ERROR,
/* 2F */  C_ERROR,
/* 30 */  C_ERROR,
/* 31 */  C_ERROR,
/* 32 */  C_ERROR,
/* 33 */  C_ERROR,
/* 34 */  C_ERROR,
/* 35 */  C_ERROR,
/* 36 */  C_ERROR,
/* 37 */  C_ERROR,
/* 38 */  C_ERROR,
/* 39 */  C_ERROR,
/* 3A */  C_ERROR,
/* 3B */  C_ERROR,
/* 3C */  C_ERROR,
/* 3D */  C_ERROR,
/* 3E */  C_ERROR,
/* 3F */  C_ERROR,
/* 40 */  C_ERROR,
/* 41 */  C_ERROR,
/* 42 */  C_ERROR,
/* 43 */  C_ERROR,
/* 44 */  C_ERROR,
/* 45 */  C_ERROR,
/* 46 */  C_ERROR,
/* 47 */  C_ERROR,
/* 48 */  C_ERROR,
/* 49 */  C_ERROR,
/* 4A */  C_ERROR,
/* 4B */  C_ERROR,
/* 4C */  C_ERROR,
/* 4D */  C_ERROR,
/* 4E */  C_ERROR,
/* 4F */  C_ERROR,
/* 50 */  C_ERROR,
/* 51 */  C_ERROR,
/* 52 */  C_ERROR,
/* 53 */  C_ERROR,
/* 54 */  C_ERROR,
/* 55 */  C_ERROR,
/* 56 */  C_ERROR,
/* 57 */  C_ERROR,
/* 58 */  C_ERROR,
/* 59 */  C_ERROR,
/* 5A */  C_ERROR,
/* 5B */  C_ERROR,
/* 5C */  C_ERROR,
/* 5D */  C_ERROR,
/* 5E */  C_ERROR,
/* 5F */  C_ERROR,
/* 60 */  C_ERROR,
/* 61 */  C_ERROR,
/* 62 */  C_ERROR,
/* 63 */  C_ERROR,
/* 64 */  C_ERROR,
/* 65 */  C_ERROR,
/* 66 */  C_ERROR,
/* 67 */  C_ERROR,
/* 68 */  C_ERROR,
/* 69 */  C_ERROR,
/* 6A */  C_ERROR,
/* 6B */  C_ERROR,
/* 6C */  C_ERROR,
/* 6D */  C_ERROR,
/* 6E */  C_ERROR,
/* 6F */  C_ERROR,
/* 70 */  C_ERROR,
/* 71 */  C_ERROR,
/* 72 */  C_ERROR,
/* 73 */  C_ERROR,
/* 74 */  C_ERROR,
/* 75 */  C_ERROR,
/* 76 */  C_ERROR,
/* 77 */  C_ERROR,
/* 78 */  C_ERROR,
/* 79 */  C_ERROR,
/* 7A */  C_ERROR,
/* 7B */  C_ERROR,
/* 7C */  C_ERROR,
/* 7D */  C_ERROR,
/* 7E */  C_ERROR,
/* 7F */  C_ERROR,
/* 80 */  C_DATA66+C_REL,
/* 81 */  C_DATA66+C_REL,
/* 82 */  C_DATA66+C_REL,
/* 83 */  C_DATA66+C_REL,
/* 84 */  C_DATA66+C_REL,
/* 85 */  C_DATA66+C_REL,
/* 86 */  C_DATA66+C_REL,
/* 87 */  C_DATA66+C_REL,
/* 88 */  C_DATA66+C_REL,
/* 89 */  C_DATA66+C_REL,
/* 8A */  C_DATA66+C_REL,
/* 8B */  C_DATA66+C_REL,
/* 8C */  C_DATA66+C_REL,
/* 8D */  C_DATA66+C_REL,
/* 8E */  C_DATA66+C_REL,
/* 8F */  C_DATA66+C_REL,
/* 90 */  C_MODRM,
/* 91 */  C_MODRM,
/* 92 */  C_MODRM,
/* 93 */  C_MODRM,
/* 94 */  C_MODRM,
/* 95 */  C_MODRM,
/* 96 */  C_MODRM,
/* 97 */  C_MODRM,
/* 98 */  C_MODRM,
/* 99 */  C_MODRM,
/* 9A */  C_MODRM,
/* 9B */  C_MODRM,
/* 9C */  C_MODRM,
/* 9D */  C_MODRM,
/* 9E */  C_MODRM,
/* 9F */  C_MODRM,
/* A0 */  0,
/* A1 */  0,
/* A2 */  0,
/* A3 */  C_MODRM,
/* A4 */  C_MODRM+C_DATA1,
/* A5 */  C_MODRM,
/* A6 */  C_ERROR,
/* A7 */  C_ERROR,
/* A8 */  0,
/* A9 */  0,
/* AA */  0,
/* AB */  C_MODRM,
/* AC */  C_MODRM+C_DATA1,
/* AD */  C_MODRM,
/* AE */  C_ERROR,
/* AF */  C_MODRM,
/* B0 */  C_MODRM,
/* B1 */  C_MODRM,
/* B2 */  C_MODRM,
/* B3 */  C_MODRM,
/* B4 */  C_MODRM,
/* B5 */  C_MODRM,
/* B6 */  C_MODRM,
/* B7 */  C_MODRM,
/* B8 */  C_ERROR,
/* B9 */  C_ERROR,
/* BA */  C_MODRM+C_DATA1,
/* BB */  C_MODRM,
/* BC */  C_MODRM,
/* BD */  C_MODRM,
/* BE */  C_MODRM,
/* BF */  C_MODRM,
/* C0 */  C_MODRM,
/* C1 */  C_MODRM,
/* C2 */  C_ERROR,
/* C3 */  C_ERROR,
/* C4 */  C_ERROR,
/* C5 */  C_ERROR,
/* C6 */  C_ERROR,
/* C7 */  C_ERROR,
/* C8 */  0,
/* C9 */  0,
/* CA */  0,
/* CB */  0,
/* CC */  0,
/* CD */  C_DATA1,
/* CE */  0,
/* CF */  0,
/* D0 */  C_ERROR,
/* D1 */  C_ERROR,
/* D2 */  C_ERROR,
/* D3 */  C_ERROR,
/* D4 */  C_ERROR,
/* D5 */  C_ERROR,
/* D6 */  C_ERROR,
/* D7 */  C_ERROR,
/* D8 */  C_ERROR,
/* D9 */  C_ERROR,
/* DA */  C_ERROR,
/* DB */  C_ERROR,
/* DC */  C_ERROR,
/* DD */  C_ERROR,
/* DE */  C_ERROR,
/* DF */  C_ERROR,
/* E0 */  C_ERROR,
/* E1 */  C_ERROR,
/* E2 */  C_ERROR,
/* E3 */  C_ERROR,
/* E4 */  C_ERROR,
/* E5 */  C_ERROR,
/* E6 */  C_ERROR,
/* E7 */  C_ERROR,
/* E8 */  C_ERROR,
/* E9 */  C_ERROR,
/* EA */  C_ERROR,
/* EB */  C_ERROR,
/* EC */  C_ERROR,
/* ED */  C_ERROR,
/* EE */  C_ERROR,
/* EF */  C_ERROR,
/* F0 */  C_ERROR,
/* F1 */  C_ERROR,
/* F2 */  C_ERROR,
/* F3 */  C_ERROR,
/* F4 */  C_ERROR,
/* F5 */  C_ERROR,
/* F6 */  C_ERROR,
/* F7 */  C_ERROR,
/* F8 */  C_ERROR,
/* F9 */  C_ERROR,
/* FA */  C_ERROR,
/* FB */  C_ERROR,
/* FC */  C_ERROR,
/* FD */  C_ERROR,
/* FE */  C_ERROR,
/* FF */  C_ERROR
}; // ade32_table[]


int disasm(BYTE* opcode0, disasm_struct* diza){
    BYTE* opcode = opcode0;

    memset(diza, 0x00, sizeof(disasm_struct));
    diza->disasm_defdata = 4;
    diza->disasm_defaddr = 4;

    if(*(WORD*)opcode == 0x0000)
        return 0;
    if(*(WORD*)opcode == 0xFFFF)
        return 0;

    DWORD flag = 0;

repeat_prefix:

    BYTE c = *opcode++;
    DWORD t = ade32_table[ c ];

    if(t & C_ANYPREFIX){
        if(flag & t)
            return 0;

        flag |= t;

        if(t & C_67)
            diza->disasm_defaddr ^= 2^4;
        else if(t & C_66)
            diza->disasm_defdata ^= 2^4;
        else if(t & C_SEG)
            diza->disasm_seg = c;
        else if(t & C_REP)
            diza->disasm_rep = c;
        // LOCK

        goto repeat_prefix;
    } // C_ANYPREFIX

    flag |= t;
    diza->disasm_opcode = c;

    if(c == 0x0F){
        c = *opcode++;
        diza->disasm_opcode2 = c;
        flag |= ade32_table[256+c]; // 2nd flagtable half
       
        if(flag == C_ERROR)
            return 0;
    }else if(c == 0xF7){
        if(((*opcode) & 0x38) == 0)
            flag |= C_DATA66;
    }else if(c == 0xF6){
        if(((*opcode) & 0x38) == 0)
            flag |= C_DATA1;
    }else if(c == 0xCD){
        if(*opcode == 0x20)
            flag |= C_DATA4;
    }

    if(flag & C_MODRM){
        c = *opcode++;
        diza->disasm_modrm = c;

        if(((c & 0x38) == 0x20) && (diza->disasm_opcode == 0xFF))
            flag |= C_STOP;

        BYTE mod = c & 0xC0;
        BYTE rm  = c & 0x07;

        if(mod != 0xC0){
            if(diza->disasm_defaddr == 4){
                if(rm == 4){
                    flag |= C_SIB;
                    c = *opcode++;
                    diza->disasm_sib = c;
                    rm = c & 0x07;
                }

                if(mod == 0x40)
                    flag |= C_ADDR1;
                else if(mod == 0x80)
                    flag |= C_ADDR4;
                else if (rm == 5)
                    flag |= C_ADDR4;
            }else{ // MODRM 16-bit
                if(mod == 0x40)
                    flag |= C_ADDR1;
                else if(mod == 0x80)
                    flag |= C_ADDR2;
                else if(rm == 6)
                    flag |= C_ADDR2;
            }
        }
    } // C_MODRM

    diza->disasm_flag = flag;

    DWORD a =  flag & (C_ADDR1 | C_ADDR2 | C_ADDR4);
    DWORD d = (flag & (C_DATA1 | C_DATA2 | C_DATA4)) >> 8;

    if(flag & C_ADDR67)
        a += diza->disasm_defaddr;
    if(flag & C_DATA66)
        d += diza->disasm_defdata;

    diza->disasm_addrsize = a;
    diza->disasm_datasize = d;

    DWORD i;
    for(i = 0; i < a; i++)
        diza->disasm_addr_b[i] = *opcode++;

    for(i = 0; i < d; i++)
        diza->disasm_data_b[i] = *opcode++;

    diza->disasm_len = opcode - opcode0;

    return diza->disasm_len;
}

int oplen(BYTE *opcode){
    disasm_struct diza;
    memset(&diza,0,sizeof(diza));
   
    disasm((BYTE*)opcode,&diza);

    if((diza.disasm_flag == C_ERROR) || ((diza.disasm_flag&C_STOP) == C_STOP) || ((diza.disasm_flag&C_REL)==C_REL) || ((diza.disasm_flag&C_BAD)==C_BAD))
        return -1;

    return diza.disasm_len;
}

#QmoBase.cpp
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------

#include "QmoBase.h"
#include "QmoMenu.h"
#include "QmoSound.h"
#include "QmoDetour.h"
#include "pragma.h"

#define D3DparamX        , UINT paramx
#define D3DparamvalX    , paramx
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
int SumStride;

//========================================================//
UCHAR
szFileSys[255],
szVolNameBuff[255];

DWORD
dwMFL,
dwSysFlags,
dwSerial;
//========================================================//

bool Color = true;
LPDIRECT3DDEVICE9 pDevice;
UINT OffsetInBytes;
UINT m_Stride;
  LPDIRECT3DVERTEXBUFFER9 Stream_Data;
  UINT Offset = 0;
  UINT Stride = 0;
  bool CekHook = true;
  /**************************/
LPDIRECT3DTEXTURE9    texYellow, texRed, texGreen, texBlue, texBlack, texWhite, texPink, texOrange, texLightBlue, texCyan, texPurple, texSteelBlue, texLightSteelBlue, texSalmon, texBrown, texTeal, texLime, texElectricLime, texGold, texOrangeRed, texGreenYellow, texAquaMarine, texSkyBlue, texSlateBlue, texCrimson, texDarkOliveGreen, texPaleGreen, texDarkGoldenRod, texFireBrick, texDarkBlue, texDarkerBlue, texDarkYellow, texLightYellow;
/**************************/
cBase Base;
cMenu Menu;
copt opt;
cSound Sound;

HRESULT GenerateTexture(IDirect3DDevice9 *pD3Ddev, IDirect3DTexture9 **ppD3Dtex, DWORD colour32)
{
    if(FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex, NULL)))
        return E_FAIL;
   
    WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
                    |(WORD)(((colour32>>20)&0xF)<<8)
                     |(WORD)(((colour32>>12)&0xF)<<4)
                     |(WORD)(((colour32>>4)&0xF)<<0);

    D3DLOCKED_RECT d3dlr;   
    (*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
    WORD *pDst16 = (WORD*)d3dlr.pBits;

    for(int xy=0; xy < 8*8; xy++)
        *pDst16++ = colour16;

    (*ppD3Dtex)->UnlockRect(0);

    return S_OK;
}


void PreReset( LPDIRECT3DDEVICE9 pDevice )
{
    // Code here
    Menu.PreReset();
    return;
}

void PostReset( LPDIRECT3DDEVICE9 pDevice )
{
    // Code here
    Menu.PostReset(pDevice);
    return;
}

typedef HRESULT ( WINAPI* oReset )( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters );
oReset pReset;

HRESULT APIENTRY myReset( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
    PreReset( pDevice );
    HRESULT hRet = pReset( pDevice, pPresentationParameters );
   
    if( SUCCEEDED( hRet ) )
    {
        PostReset( pDevice );
    }
    return hRet;
}
typedef HRESULT (WINAPI* oDrawIndexedPrimitive) (LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE Type, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount);
oDrawIndexedPrimitive pDrawIndexedPrimitive;

HRESULT WINAPI  myDrawIndexedPrimitive(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE pType D3DparamX ,UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount )
{
    if(pDevice->GetStreamSource(0,&Stream_Data,&OffsetInBytes,&m_Stride) == D3D_OK)
        Stream_Data->Release();

    DWORD dwOldZEnable = D3DZB_TRUE;
       
    if(Color)
    {
     GenerateTexture(pDevice, &texGreen , D3DCOLOR_ARGB(255,0,255,0));
     GenerateTexture(pDevice, &texRed , D3DCOLOR_ARGB(255,255,0,0));
     GenerateTexture(pDevice, &texBlue , D3DCOLOR_ARGB(255,0,0,255));
     GenerateTexture(pDevice, &texOrange , D3DCOLOR_ARGB(255,255,165,0));
     GenerateTexture(pDevice, &texYellow , D3DCOLOR_ARGB(255,255,255,0));
     GenerateTexture(pDevice, &texPink , D3DCOLOR_ARGB(255,255,192,203));
     GenerateTexture(pDevice, &texCyan , D3DCOLOR_ARGB(255,0,255,255));
     GenerateTexture(pDevice, &texPurple , D3DCOLOR_ARGB(255,160,32,240));
     GenerateTexture(pDevice, &texBlack , D3DCOLOR_ARGB(255,0,0,0));
     GenerateTexture(pDevice, &texWhite , D3DCOLOR_ARGB(255,255,255,255));
     GenerateTexture(pDevice, &texSteelBlue , D3DCOLOR_ARGB(255,33,104,140));
     GenerateTexture(pDevice, &texLightSteelBlue, D3DCOLOR_ARGB(255,201,255,255));
     GenerateTexture(pDevice, &texLightBlue , D3DCOLOR_ARGB(255,26,140,306));
     GenerateTexture(pDevice, &texSalmon , D3DCOLOR_ARGB(255,196,112,112));
     GenerateTexture(pDevice, &texBrown , D3DCOLOR_ARGB(255,168,99,20));
     GenerateTexture(pDevice, &texTeal , D3DCOLOR_ARGB(255,38,140,140));
     GenerateTexture(pDevice, &texLime , D3DCOLOR_ARGB(255,50,205,50));
     GenerateTexture(pDevice, &texElectricLime , D3DCOLOR_ARGB(255,204,255,0));
     GenerateTexture(pDevice, &texGold , D3DCOLOR_ARGB(255,255, 215, 0));
     GenerateTexture(pDevice, &texOrangeRed , D3DCOLOR_ARGB(255,255,69,0));
     GenerateTexture(pDevice, &texGreenYellow , D3DCOLOR_ARGB(255,173,255,47));
     GenerateTexture(pDevice, &texAquaMarine , D3DCOLOR_ARGB(255,127,255,212));
     GenerateTexture(pDevice, &texSkyBlue , D3DCOLOR_ARGB(255,0,191,255));
     GenerateTexture(pDevice, &texSlateBlue , D3DCOLOR_ARGB(255,132, 112, 255));
     GenerateTexture(pDevice, &texCrimson , D3DCOLOR_ARGB(255,220,20,60));
     GenerateTexture(pDevice, &texDarkOliveGreen, D3DCOLOR_ARGB(255,188,238,104 ));
     GenerateTexture(pDevice, &texPaleGreen , D3DCOLOR_ARGB(255,154,255, 154));
     GenerateTexture(pDevice, &texDarkGoldenRod , D3DCOLOR_ARGB(255,255, 185, 15 ));
     GenerateTexture(pDevice, &texFireBrick , D3DCOLOR_ARGB(255,255,48,48));
     GenerateTexture(pDevice, &texDarkBlue , D3DCOLOR_ARGB(255,0,0,204));
     GenerateTexture(pDevice, &texDarkerBlue , D3DCOLOR_ARGB(255,0,0,153));
     GenerateTexture(pDevice, &texDarkYellow , D3DCOLOR_ARGB(255,255,204,0));
     GenerateTexture(pDevice, &texLightYellow , D3DCOLOR_ARGB(255,255,255,153));
        Color = false;
    }
    if(opt.d3d.ChamsCT)
    {
        if((m_Stride == 44))
        {
            pDevice->SetRenderState(D3DRS_ZENABLE, false);
            pDevice->SetTexture(0, texGreen);
            pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
            pDevice->SetTexture(0, texRed);
            pDevice->SetRenderState(D3DRS_ZENABLE, true);
        }
    }
        if(opt.d3d.ChamsTERO)
    {
        if((m_Stride == 52))
        {
            pDevice->SetRenderState(D3DRS_ZENABLE, false);
            pDevice->SetTexture(0, texGreenYellow);
            pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
           
        }
    }

    if(opt.d3d.WHGlass)
    {
        if((m_Stride == 48 || m_Stride == 52 || m_Stride == 64))
        {
            SumStride=SumStride+4;
            pDevice->SetRenderState(D3DRS_ZENABLE,false);
            pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
            pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVDESTCOLOR);
            pDevice->SetRenderState(D3DRS_ZENABLE,false);
           
        }
    }
         return pDrawIndexedPrimitive(pDevice,pType D3DparamvalX,nMinIndex,nNumVertices,nStartIndex,nPrimitiveCount);
}


typedef HRESULT    ( WINAPI* oEndScene )( LPDIRECT3DDEVICE9 pDevice );
oEndScene pEndScene;

HRESULT APIENTRY myEndScene( LPDIRECT3DDEVICE9 pDevice )
{
        PostReset(pDevice);
        Menu.ShowMenu(pDevice);
        PreReset(pDevice);
    return pEndScene( pDevice );
}
PVOID D3Ddiscover(void *tbl, int size)
{
    HWND                  hWnd;
    void                  *pInterface=0 ;
    D3DPRESENT_PARAMETERS d3dpp;

    if ((hWnd=CreateWindowEx(NULL,WC_DIALOG,"",WS_OVERLAPPED,0,0,50,50,NULL,NULL,NULL,NULL))==NULL) return 0;
    ShowWindow(hWnd, SW_HIDE);

    LPDIRECT3D9            pD3D;
    LPDIRECT3DDEVICE9    pD3Ddev;
    if ((pD3D = Direct3DCreate9(D3D_SDK_VERSION))!=NULL)

    {
        ZeroMemory(&d3dpp, sizeof(d3dpp));
        d3dpp.Windowed         = TRUE;
        d3dpp.SwapEffect       = D3DSWAPEFFECT_DISCARD;
        d3dpp.hDeviceWindow    = hWnd;
        d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
        d3dpp.BackBufferWidth  = d3dpp.BackBufferHeight = 600;
        pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pD3Ddev);
        if (pD3Ddev)  {
            pInterface = (PDWORD)*(DWORD *)pD3Ddev;
            memcpy(tbl,(void *)pInterface,size);
            pD3Ddev->Release();
        }
        pD3D->Release();
    }
    DestroyWindow(hWnd);
    return pInterface;
}
int __stdcall D3D(void)
{
    HINSTANCE    hD3D;
    DWORD        vTable[105];
    hD3D=0;
    do {
        hD3D = GetModuleHandle("d3d9.dll");
        if (!hD3D) Sleep(100);
    } while(!hD3D);


    if (D3Ddiscover((void *)&vTable[0],420)==0) return 0;
    {
       
        while(1)
        {
        if(memcmp((void*)vTable[82],(void*)(PBYTE)"\x8B\xFF",2)== 0)
        {
            pDrawIndexedPrimitive    = (oDrawIndexedPrimitive)    DetourCreate((PBYTE)vTable[82], (PBYTE)myDrawIndexedPrimitive, 5);
            pEndScene = (oEndScene) DetourCreate((PBYTE) vTable[42], (PBYTE)myEndScene,5);
        }
    Sleep(50);
    }
    return 0;
    }   

}
char* cBase::GetFile(char *file)
{
    static char path[320];
    for(int i= 0;i<strlen(path);i++)
        path[i]=0;
    strcpy(path, Base.dllpath);
    strcat(path, file);
    return path;
}
BOOL __stdcall DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
    DisableThreadLibraryCalls(hDll);
    if (dwReason == DLL_PROCESS_ATTACH)
    {
MessageBox (0,"Creadits by Qmo","MPGH.NET", MB_OK);
       
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3D, NULL, NULL, NULL);
        //CreateThread(0, 0, (LPTHREAD_START_ROUTINE)DevilHack,0, 0, 0);

    }   
    return TRUE;
}

#QmoFont.cpp
// -----------------------------------------------------------------------------
// File: D3DFont.cpp
// Desc: Texture-based font class
// Copyright (c) 1999-2001 Microsoft Corporation. All rights reserved.
// - Added D3D_FONT_RIGHT
// - Added D3D_FONT_SHADOW
// - Stripped not needed functions
//
// Edite file by Qmo MPGH
// -----------------------------------------------------------------------------
#include <stdio.h>
#include <tchar.h>
#include <D3DX9.h>
#include "QmoFont.h"
#include "pragma.h"


//-----------------------------------------------------------------------------
// Custom vertex types for rendering text
//-----------------------------------------------------------------------------
#define MAX_NUM_VERTICES 50*6

struct FONT2DVERTEX { D3DXVECTOR4 p;   DWORD color;     FLOAT tu, tv; };
struct FONT3DVERTEX { D3DXVECTOR3 p;   D3DXVECTOR3 n;   FLOAT tu, tv; };

#define D3DFVF_FONT2DVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)
#define D3DFVF_FONT3DVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)

inline FONT2DVERTEX InitFont2DVertex( const D3DXVECTOR4& p, D3DCOLOR color,
                                      FLOAT tu, FLOAT tv )
{
    FONT2DVERTEX v;   v.p = p;   v.color = color;   v.tu = tu;   v.tv = tv;
    return v;
}

inline FONT3DVERTEX InitFont3DVertex( const D3DXVECTOR3& p, const D3DXVECTOR3& n,
                                      FLOAT tu, FLOAT tv )
{
    FONT3DVERTEX v;   v.p = p;   v.n = n;   v.tu = tu;   v.tv = tv;
    return v;
}




//-----------------------------------------------------------------------------
// Name: CD3DFont()
// Desc: Font class constructor
//-----------------------------------------------------------------------------
CD3DFont::CD3DFont( TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags )
{
    strcpy( m_strFontName, strFontName );
    m_dwFontHeight         = dwHeight;
    m_dwFontFlags          = dwFlags;

    m_pd3dDevice           = NULL;
    m_pTexture             = NULL;
    m_pVB                  = NULL;

    m_dwSavedStateBlock    = 0L;
    m_dwDrawTextStateBlock = 0L;
}




//-----------------------------------------------------------------------------
// Name: ~CD3DFont()
// Desc: Font class destructor
//-----------------------------------------------------------------------------
CD3DFont::~CD3DFont()
{
    InvalidateDeviceObjects();
    DeleteDeviceObjects();
}




//-----------------------------------------------------------------------------
// Name: InitDeviceObjects()
// Desc: Initializes device-dependent objects, including the vertex buffer used
//       for rendering text and the texture map which stores the font image.
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice )
{
    HRESULT hr;

    // Keep a local copy of the device
    m_pd3dDevice = pd3dDevice;

    // Establish the font and texture size
    m_fTextScale  = 1.0f; // Draw fonts into texture without scaling

    // Large fonts need larger textures
    if( m_dwFontHeight > 40 )
        m_dwTexWidth = m_dwTexHeight = 1024;
    else if( m_dwFontHeight > 20 )
        m_dwTexWidth = m_dwTexHeight = 512;
    else
        m_dwTexWidth  = m_dwTexHeight = 256;

    // If requested texture is too big, use a smaller texture and smaller font,
    // and scale up when rendering.
    D3DCAPS9 d3dCaps;
    m_pd3dDevice->GetDeviceCaps( &d3dCaps );

    if( m_dwTexWidth > d3dCaps.MaxTextureWidth )
    {
        m_fTextScale = (FLOAT)d3dCaps.MaxTextureWidth / (FLOAT)m_dwTexWidth;
        m_dwTexWidth = m_dwTexHeight = d3dCaps.MaxTextureWidth;
    }

    // Create a new texture for the font
    hr = m_pd3dDevice->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1,
                                      0, D3DFMT_A4R4G4B4,
                                      D3DPOOL_MANAGED, &m_pTexture, NULL );
    if( FAILED(hr) )
        return hr;

    // Prepare to create a bitmap
    DWORD*      pBitmapBits;
    BITMAPINFO bmi;
    ZeroMemory( &bmi.bmiHeader,  sizeof(BITMAPINFOHEADER) );
    bmi.bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth       =  (int)m_dwTexWidth;
    bmi.bmiHeader.biHeight      = -(int)m_dwTexHeight;
    bmi.bmiHeader.biPlanes      = 1;
    bmi.bmiHeader.biCompression = BI_RGB;
    bmi.bmiHeader.biBitCount    = 32;

    // Create a DC and a bitmap for the font
    HDC     hDC       = CreateCompatibleDC( NULL );
    HBITMAP hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,
                                          (VOID**)&pBitmapBits, NULL, 0 );
    SetMapMode( hDC, MM_TEXT );

    // Create a font.  By specifying ANTIALIASED_QUALITY, we might get an
    // antialiased font, but this is not guaranteed.
    INT nHeight    = -MulDiv( m_dwFontHeight,
        (INT)(GetDeviceCaps(hDC, LOGPIXELSY) * m_fTextScale), 72 );
    DWORD dwBold   = (m_dwFontFlags&D3DFONT_BOLD)   ? FW_BOLD : FW_NORMAL;
    DWORD dwItalic = (m_dwFontFlags&D3DFONT_ITALIC) ? TRUE    : FALSE;
    HFONT hFont    = CreateFont( nHeight, 0, 0, 0, dwBold, dwItalic,
                          FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
                          CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
                          VARIABLE_PITCH, m_strFontName );
    if( NULL==hFont )
        return E_FAIL;

    SelectObject( hDC, hbmBitmap );
    SelectObject( hDC, hFont );

    // Set text properties
    SetTextColor( hDC, RGB(255,255,255) );
    SetBkColor(   hDC, 0x00000000 );
    SetTextAlign( hDC, TA_TOP );

    // Loop through all printable character and output them to the bitmap..
    // Meanwhile, keep track of the corresponding tex coords for each character.
    DWORD x = 0;
    DWORD y = 0;
    TCHAR str[2] = _T("x");
    SIZE size;

    // Calculate the spacing between characters based on line height
    GetTextExtentPoint32( hDC, TEXT(" "), 1, &size );
    x = m_dwSpacing = (DWORD) ceil(size.cy * 0.3f);

    for( TCHAR c=32; c<127; c++ )
    {
        str[0] = c;
        GetTextExtentPoint32( hDC, str, 1, &size );

        if( (DWORD)(x+size.cx+1) > m_dwTexWidth )
        {
            x  = m_dwSpacing;
            y += size.cy+1;
        }

        ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );

        m_fTexCoords[c-32][0] = ((FLOAT)(x+0      -m_dwSpacing))/m_dwTexWidth;
        m_fTexCoords[c-32][1] = ((FLOAT)(y+0      +0          ))/m_dwTexHeight;
        m_fTexCoords[c-32][2] = ((FLOAT)(x+size.cx+m_dwSpacing))/m_dwTexWidth;
        m_fTexCoords[c-32][3] = ((FLOAT)(y+size.cy+0          ))/m_dwTexHeight;

        x += size.cx+(2 * m_dwSpacing);
    }

    // Lock the surface and write the alpha values for the set pixels
    D3DLOCKED_RECT d3dlr;
    m_pTexture->LockRect( 0, &d3dlr, 0, 0 );
    BYTE* pDstRow = (BYTE*)d3dlr.pBits;
    WORD* pDst16;
    BYTE bAlpha; // 4-bit measure of pixel intensity

    for( y=0; y < m_dwTexHeight; y++ )
    {
        pDst16 = (WORD*)pDstRow;
        for( x=0; x < m_dwTexWidth; x++ )
        {
            bAlpha = (BYTE)((pBitmapBits[m_dwTexWidth*y + x] & 0xff) >> 4);
            if (bAlpha > 0)
            {
                *pDst16++ = (bAlpha << 12) | 0x0fff;
            }
            else
            {
                *pDst16++ = 0x0000;
            }
        }
        pDstRow += d3dlr.Pitch;
    }

    // Done updating texture, so clean up used objects
    m_pTexture->UnlockRect(0);
    DeleteObject( hbmBitmap );
    DeleteDC( hDC );
    DeleteObject( hFont );

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: RestoreDeviceObjects()
// Desc:
//-----------------------------------------------------------------------------
HRESULT CD3DFont::RestoreDeviceObjects()
{
    HRESULT hr;

    // Create vertex buffer for the letters
    if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer(
        MAX_NUM_VERTICES*sizeof(FONT2DVERTEX),
        D3DUSAGE_WRITEONLY, 0,
        D3DPOOL_DEFAULT, &m_pVB, NULL ) ) )
    {
        return hr;
    }

    // Create the state blocks for rendering text
    for( UINT which=0; which<2; which++ )
    {
        m_pd3dDevice->BeginStateBlock();
        m_pd3dDevice->SetTexture( 0, m_pTexture );

        if ( D3DFONT_ZENABLE & m_dwFontFlags )
            m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
        else
            m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );

        m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND,   D3DBLEND_SRCALPHA );
        m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND,  D3DBLEND_INVSRCALPHA );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE,  TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHAREF,         0x08 );
        m_pd3dDevice->SetRenderState( D3DRS_ALPHAFUNC,  D3DCMP_GREATEREQUAL );
        m_pd3dDevice->SetRenderState( D3DRS_FILLMODE,   D3DFILL_SOLID );
        m_pd3dDevice->SetRenderState( D3DRS_CULLMODE,   D3DCULL_CCW );
        m_pd3dDevice->SetRenderState( D3DRS_STENCILENABLE,    FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_CLIPPING,         TRUE );
        m_pd3dDevice->SetRenderState( D3DRS_CLIPPLANEENABLE,  FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_VERTEXBLEND,      FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE );
        m_pd3dDevice->SetRenderState( D3DRS_FOGENABLE,        FALSE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_MODULATE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_NONE );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
        m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP,   D3DTOP_DISABLE );
        m_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );

        if( which==0 )
            m_pd3dDevice->EndStateBlock( &m_dwSavedStateBlock );
        else
            m_pd3dDevice->EndStateBlock( &m_dwDrawTextStateBlock );
    }

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: InvalidateDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InvalidateDeviceObjects()
{
    m_pVB->Release();

    // Delete the state blocks
    if( m_pd3dDevice )
    {
        if( m_dwSavedStateBlock )
            m_dwSavedStateBlock->Release();
        if( m_dwDrawTextStateBlock )
            m_dwDrawTextStateBlock->Release();
    }

    m_dwSavedStateBlock    = 0L;
    m_dwDrawTextStateBlock = 0L;

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: DeleteDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DeleteDeviceObjects()
{
    m_pTexture->Release();
    m_pd3dDevice = NULL;

    return S_OK;
}




//-----------------------------------------------------------------------------
// Name: GetTextExtent()
// Desc: Get the dimensions of a text string
//-----------------------------------------------------------------------------
HRESULT CD3DFont::GetTextExtent( TCHAR* strText, SIZE* pSize )
{
    if( NULL==strText || NULL==pSize )
        return E_FAIL;

    FLOAT fRowWidth  = 0.0f;
    FLOAT fRowHeight = (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
    FLOAT fWidth     = 0.0f;
    FLOAT fHeight    = fRowHeight;

    while( *strText )
    {
        TCHAR c = *strText++;

        if( c == _T('\n') )
        {
            fRowWidth = 0.0f;
            fHeight  += fRowHeight;
        }
    if( (c-32) < 0 || (c-32) >= 158-32 )
            continue;

        FLOAT tx1 = m_fTexCoords[c-32][0];
        FLOAT tx2 = m_fTexCoords[c-32][2];

        fRowWidth += (tx2-tx1)*m_dwTexWidth - 2*m_dwSpacing;

        if( fRowWidth > fWidth )
            fWidth = fRowWidth;
    }

    pSize->cx = (int)fWidth;
    pSize->cy = (int)fHeight;

    return S_OK;
}


//-----------------------------------------------------------------------------
// Name: DrawText()
// Desc: Draws 2D text
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DrawText( FLOAT sx, FLOAT sy, DWORD dwColor,
                            TCHAR* strText, DWORD dwFlags )
{
    if( m_pd3dDevice == NULL )
        return E_FAIL;

    // Setup renderstate
    m_dwSavedStateBlock->Capture();
    m_dwDrawTextStateBlock->Apply();
    m_pd3dDevice->SetFVF( D3DFVF_FONT2DVERTEX );
    m_pd3dDevice->SetPixelShader( NULL );
 
    m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(FONT2DVERTEX) );

    // Set filter states
    if( dwFlags & D3DFONT_FILTERED )
    {
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
        m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
    }
    // Hans211:  small adaption for right an centered alignment
   
    if( dwFlags & DT_RIGHT )
    {
    SIZE sz;
    GetTextExtent( strText, &sz ); sx -= (FLOAT)sz.cx;
    }

    if( dwFlags & DT_CENTER )
    {
    SIZE sz;
    GetTextExtent( strText, &sz ); sx -= (FLOAT)(sz.cx / 2.0);
    }


    // Adjust for character spacing
    sx -= m_dwSpacing;
    FLOAT fStartX = sx;

    // Fill vertex buffer
    FONT2DVERTEX* pVertices = NULL;
    DWORD         dwNumTriangles = 0;
    m_pVB->Lock( 0, 0, (VOID**)&pVertices, D3DLOCK_DISCARD );

    while( *strText )
    {
        TCHAR c = *strText++;

        if( c == _T('\n') )
        {
            sx = fStartX;
            sy += (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
        }
        if( (c-32) < 0 || (c-32) >= 158-32 )
            continue;

        FLOAT tx1 = m_fTexCoords[c-32][0];
        FLOAT ty1 = m_fTexCoords[c-32][1];
        FLOAT tx2 = m_fTexCoords[c-32][2];
        FLOAT ty2 = m_fTexCoords[c-32][3];

        FLOAT w = (tx2-tx1) *  m_dwTexWidth / m_fTextScale;
        FLOAT h = (ty2-ty1) * m_dwTexHeight / m_fTextScale;

        if( c != _T(' ') )
        {
            // Hans211: Add shadowing
            if( dwFlags & DT_SHADOW ) {
                float sxa,sya;
                sxa = sx;
                sya = sy;
                sxa=sx+1.0f;
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

                sxa=sx-1.0f;
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+w-0.5f,sy+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sxa+0-0.5f,sy+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

                sya=sy-1.0f;
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );

                sya=sy+1.0f;
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx1, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx2, ty1 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sya+h-0.5f,0.9f,1.0f), 0xff000000, tx2, ty2 );
                *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sya+0-0.5f,0.9f,1.0f), 0xff000000, tx1, ty1 );
                dwNumTriangles += 8;
            }
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx1, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx1, ty1 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx2, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx2, ty1 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+w-0.5f,sy+h-0.5f,0.9f,1.0f), dwColor, tx2, ty2 );
            *pVertices++ = InitFont2DVertex( D3DXVECTOR4(sx+0-0.5f,sy+0-0.5f,0.9f,1.0f), dwColor, tx1, ty1 );
            dwNumTriangles += 2;

            // Hans211: adapt calculation so it works with shadowing also
            if( dwNumTriangles*3 > (MAX_NUM_VERTICES-(dwNumTriangles*3)) )
            {
                // Unlock, render, and relock the vertex buffer
                m_pVB->Unlock();
                m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
                pVertices = NULL;
                m_pVB->Lock( 0, 0, (VOID**)&pVertices, D3DLOCK_DISCARD );
                dwNumTriangles = 0L;
            }
        }
        sx += w - (2 * m_dwSpacing);
    }

    // Unlock and render the vertex buffer
    m_pVB->Unlock();
    if( dwNumTriangles > 0 )
        m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );

    // Restore the modified renderstates
    m_dwSavedStateBlock->Apply();

    return S_OK;
}

#QmoMenu.cpp
//-----------------------------------------------------------------------------
//     Copyright © November/2011. MPGH/Qmoa. All rights reserved.
//                  ||  Do not forget to credits ||
//-----------------------------------------------------------------------------
// flavor from the Base cheat ... need to Edit ok, and the creation of your abilities
//( Clue : discard the unnecessary )
//-----------------------------------------------------------------------------


#include "stdafx.h"
#include "QmoMenu.h"
#include "QmoSound.h"
#include "QmoBase.h"
#include "Sounds.h"
#include "pragma.h"
//-----------------------------------------------------------------------------
// Name: PostReset()
// Desc: Creates Fonts and other Resources for Menu
//-----------------------------------------------------------------------------

void cMenu::PostReset(LPDIRECT3DDEVICE9 pDevice)
{
    font = new CD3DFont("Impac", 6, D3DFONT_BOLD);
    font->InitDeviceObjects(pDevice);
    font->RestoreDeviceObjects();
   
}
//-----------------------------------------------------------------------------
// Name: PreReset()
// Desc: Releases Fonts / objects for menu
//-----------------------------------------------------------------------------

void cMenu::PreReset(void)
{
    font->InvalidateDeviceObjects();
    font->DeleteDeviceObjects();
    delete font;
    font = NULL;
}

//-----------------------------------------------------------------------------
// Name: Init()
// Desc: Load Menu Defaults / Prepare Menu For Usage
//-----------------------------------------------------------------------------

void cMenu::Init()
{
    if (opt.options.reset)INIT=false;
    if(!INIT){
        opt.options.move=0;        // BUG FIX FOR RESET DISABLE MOVE BEFORE SETTING COORDINATES
        X=Y=100;                // TOP LEFT START
        WIDTH=200;                // MENU WIDTH
        I_OFS=4;                // OFSET FOR ITEM
        S_OFS=WIDTH-2;            // OFSET FOR STATE
        T_SPC=20;                // Space from Title and Start of Items
        F_SPC=20;                // Footer Spacing Hook Menu
        I_SPC=17;                // Item Spacing
        I_CUR=0;                // Set current Item
        ABOR=0;                    // ANIMATION MOVE
        BDIR=0;                    // ANIMATION HIGHLIGHT
        SHOW=true;                // false=hide  true=show
        INIT=true;                // STOP INITATION
    }
}

//-----------------------------------------------------------------------------
// Name: FPS()
// Desc: Keeps Track of Current Frames Persecond Make sure if its already called to specify a 1 as parameter
//-----------------------------------------------------------------------------

char* cMenu::FPS(int en)
{
    static int     FPScounter = 0;
    static float FPSfLastTickCount = 0.0f;
    static float FPSfCurrentTickCount;
    static char  cfps[6] = "";

    if(!en)
    {
        FPSfCurrentTickCount = clock() * 0.001f;
        FPScounter++;

        if((FPSfCurrentTickCount - FPSfLastTickCount) > 1.0f)
        {
            FPSfLastTickCount = FPSfCurrentTickCount;
            sprintf(cfps," %d",FPScounter);
            FPScounter = 0;
        }
    }

    return cfps;

}

//-----------------------------------------------------------------------------
// Name: TIME()
// Desc: Outputs Current Time in USA Format
//-----------------------------------------------------------------------------

char* cMenu::TIME(void)
{
    static char ctime[20] = "" ;
    struct tm * current_tm;
    time_t current_time;
    time (&current_time);
    current_tm = localtime (&current_time);
    if(current_tm->tm_hour>12)
        sprintf( ctime, "%d:%02d:%02d PM", current_tm->tm_hour - 12, current_tm->tm_min, current_tm->tm_sec );
    else
        sprintf( ctime, "%d:%02d:%02d AM", current_tm->tm_hour, current_tm->tm_min, current_tm->tm_sec );
    return ctime;
}

//-----------------------------------------------------------------------------
// Name: DATE()
// Desc: Outputs Current Date in USA Format
//-----------------------------------------------------------------------------

char* cMenu::DATE(void)
{
    static char cdate[20] = "" ;
    struct tm * current_tm;
    time_t current_time;
    time (&current_time);
    current_tm = localtime (&current_time);
    sprintf( cdate, "%d-%02d-%d",current_tm->tm_mon+1,current_tm->tm_mday,current_tm->tm_year-100+2000);
    return cdate;
}
//-----------------------------------------------------------------------------
// Name: oprintf()
// Desc: equiv to sprintf but for output into of dest
//-----------------------------------------------------------------------------

char* cMenu::oprintf (const char *fmt, ...)
{
    static char buffer[225] = "";
    va_list va_alist;
    va_start (va_alist, fmt);
    _vsnprintf (buffer,sizeof(buffer), fmt, va_alist);
    va_end (va_alist);
    return buffer;
}
//-----------------------------------------------------------------------------
// Name: Save()
// Desc: Saves Menu Item states for later Restoration
//-----------------------------------------------------------------------------

void cMenu::Save(char* szSection, char* szKey, int iValue,LPCSTR file)
{
    char szValue[255];
    sprintf(szValue, "%d", iValue);
    WritePrivateProfileString(szSection,  szKey, szValue, file);
}

//-----------------------------------------------------------------------------
// Name: Load()
// Desc: Loads Menu Item States From Previously Saved File
//-----------------------------------------------------------------------------

int cMenu::Load(char* szSection, char* szKey, int iDefaultValue,LPCSTR file)
{
    int iResult = GetPrivateProfileInt(szSection,  szKey, iDefaultValue, file);
    return iResult;
}

//-----------------------------------------------------------------------------
// Name: additem()
// Desc: BaseFunction for aitem,acat,and atext
//-----------------------------------------------------------------------------

void cMenu::additem(char *title, char *states,int type, int *var, int show, int when)
{
    if(show==when)
    {
        strcpy(items[NO].title,title);
        getfield(states,items[NO].state,*var+1);
        items[NO].type=type;
        items[NO].max=nofields(states);
        items[NO].val=var;

        NO++;
    }
    if(type!=T_TEXT)
    {
        if (opt.options.load)
            *var = Load("Items", title, *var,Base.GetFile("mset.ini"));
        if (opt.options.save)
            Save("Items", title, *var,Base.GetFile("mset.ini"));
        if (opt.options.reset)
            *var=0;
    }
}

//-----------------------------------------------------------------------------
// Name: acat()
// Desc: Adds Folder/Category to Item index
//-----------------------------------------------------------------------------

void cMenu::acat(char *title, char *states,int *var)
{
    additem(title,states,T_CAT,var,0,0);
}
//-----------------------------------------------------------------------------
// Name: aitem()
// Desc: Adds regular item to Item index
//-----------------------------------------------------------------------------

void cMenu::aitem(char *title, char *states,int *var,int show,int when)
{
    additem(title,states,T_ITEM,var,show,when);
}
//-----------------------------------------------------------------------------
// Name: atext()
// Desc: Adds Text item to item index
//-----------------------------------------------------------------------------

void cMenu::atext(char *title, char *states,int show,int when)
{
    additem(title,states,T_TEXT,&opt.text,show,when);
}

void cMenu::atext(char *title, char *states)
{
    additem(title,states,T_TEXT,&opt.text,1,1);
}

//-----------------------------------------------------------------------------
// Name: nofields()
// Desc: Calculates Number of Fields in a String based on deliminator
//-----------------------------------------------------------------------------

int cMenu::nofields(char *str)
{
    char *ptr;
    int  no;
    for(no=1; (ptr=strchr(str,(char)'|'))!=NULL; no++)str=ptr+1;
   
    return no;
}

//-----------------------------------------------------------------------------
// Name: getfield()
// Desc: Grabs Field in string based on deliminator
//-----------------------------------------------------------------------------

void cMenu::getfield(char *str,char *dst,int no)
{
    char *ptr;
    int  i;
    for(i=1; (ptr=strchr(str,(char)'|'))!=NULL ; i++)
    {
        if(i==no) break;
        str=ptr+1;
    }
    if(ptr)
    {
        i=(int)(ptr-str);
        strncpy(dst,str,i);
        dst[i]=0;
    }
    else
        strcpy(dst,str);
}

//-----------------------------------------------------------------------------
// Name: DrawBox()
// Desc: Fills Rectangle using DrawPrimitive Up
//-----------------------------------------------------------------------------

void cMenu::DrawBox( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice)
{
struct Vertex
{
    float x,y,z,ht;
    DWORD Color;
}V[4] = {
            {x,y+h, 0.0f, 0.0f, Color},
            {x,y, 0.0f, 0.0f, Color},
            {x+w,y+h, 0.0f, 0.0f, Color},
            {x+w,y, 0.0f, 0.0f, Color}
        };
pDevice->SetTexture(0, NULL);
pDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
pDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,2,V,sizeof(Vertex));
return;
}


//-----------------------------------------------------------------------------
// Name: DrawBorder()
// Desc: Fills outside of Rectangle using 4 calls to DrawBox
//-----------------------------------------------------------------------------

void cMenu::DrawBorder( int x, int y, int w, int h, D3DCOLOR Color,LPDIRECT3DDEVICE9 pDevice)
{
    DrawBox(x,  y, 1,  h,Color,pDevice);
    DrawBox(x,y+h, w,  1,Color,pDevice);
    DrawBox(x,  y, w,  1,Color,pDevice);
    DrawBox(x+w,y, 1,h+1,Color,pDevice);
    return;
}
//-----------------------------------------------------------------------------
// Name: ShowMenu()
// Desc: Core Menu Function Displays Menu Calls Other Menu functions and navigation
//-----------------------------------------------------------------------------

void cMenu::ShowMenu(LPDIRECT3DDEVICE9 pDevice)
{

    //-----------------------------------------------------------------------------
    // Desc: Check Hotkeys
    //-----------------------------------------------------------------------------
    int    lm        =    GetAsyncKeyState(VK_LBUTTON)&1;
    int    rm        =    GetAsyncKeyState(VK_RBUTTON)&1;
    int    left    =    GetAsyncKeyState(VK_LEFT )&1;
    int    right    =    GetAsyncKeyState(VK_RIGHT)&1;
    int    up        =    GetAsyncKeyState(VK_UP   )&1;
    int    down    =    GetAsyncKeyState(VK_DOWN )&1;
    //-----------------------------------------------------------------------------
    // Desc: Prepare/Reset Menu
    //-----------------------------------------------------------------------------

    Init();

    //-----------------------------------------------------------------------------
    // Desc: Show The Menu
    //-----------------------------------------------------------------------------
    if(GetAsyncKeyState(VK_INSERT)&1) SHOW=(!SHOW);
    if(SHOW){

        //-----------------------------------------------------------------------------
        // Desc: Get Mouse Coordinates and translate
        //-----------------------------------------------------------------------------

        GetCursorPos(&mpos);// Update Mouse Coordinates
        ScreenToClient(GetForegroundWindow(),&mpos); // Translate to Current Window

        //-----------------------------------------------------------------------------
        // Desc: Move Menu
        //-----------------------------------------------------------------------------

        //if(mpos.x>X && mpos.x<X+WIDTH && mpos.y>Y && mpos.y<Y+T_SPC && GetAsyncKeyState(VK_LBUTTON)&1 && !opt.options.move)  // If Header Clicked on
        //{
        //    M_DRAG=1;
        //}
        //else
        //{
        //    mofs.x=mpos.x - X;
        //    mofs.y=mpos.y - Y;
        //}

        //if(M_DRAG)
        //{
        //    if(GetAsyncKeyState(VK_LBUTTON)&1)M_DRAG=0;
        //    X = mpos.x - mofs.x;
        //    Y = mpos.y - mofs.y;
        //}

        if(opt.options.move && GetAsyncKeyState(VK_LCONTROL))    // If Options for Left Control is Set
        {
            X =(((X<=mpos.x+4) && (X>=mpos.x)) || ((X>=mpos.x-4) && (X<=mpos.x)))?(X=mpos.x):(X+=((mpos.x-X)/4));
            Y =(((Y<=mpos.y+4) && (Y>=mpos.y)) || ((Y>=mpos.y-4) && (Y<=mpos.y)))?(Y=mpos.y):(Y+=((mpos.y-Y)/4));
        }

        //-----------------------------------------------------------------------------
        // Desc: Draw Menu Header
        //-----------------------------------------------------------------------------

        DrawBox(X,Y,WIDTH,T_SPC,C_BOX,pDevice);      // Render Menu Header Backround
        DrawBorder(X,Y,WIDTH,T_SPC,C_BORDER,pDevice);// set-up border



        font->DrawText(MC_FCTR(X,MC_MAXX),Y+10,C_TITLE,"Qmo MPGH Class",DT_CENTER|DT_SHADOW);
        
        //-----------------------------------------------------------------------------
        // Desc: Fill Item Array and Render Menu Border and Box
        //-----------------------------------------------------------------------------


        NO=0;
        acat("[CHEAT PB]","[OPEN]|[CLOSE]",&opt.d3d.main);
            aitem("CHAMS CT","OFF|ON",&opt.d3d.ChamsCT,opt.d3d.main,1);
            aitem("CHAMS TERO","OFF|ON",&opt.d3d.ChamsTERO,opt.d3d.main,1);
            aitem("WH Glass","OFF|ON",&opt.d3d.WHGlass,opt.d3d.main,1);
           

        acat("[OPTIONS]","[OPEN]|[CLOSE]",&opt.options.main);
            aitem("Move Menu","NO|L-CTRL",&opt.options.move,opt.options.main,1);
            /*aitem("Save Menu","Off|Saving",&opt.options.save,opt.options.main,1);
            aitem("Load Menu","Off|Loading",&opt.options.load,opt.options.main,1);*/
            aitem("Reset Menu","Off|Resetting",&opt.options.reset,opt.options.main,1);

        acat("|INFO|","[OPEN]|[CLOSE]",&opt.info.main);
            atext("By:","Qmo",opt.info.main,1);   
            atext("Version","D3D Menu 2011",opt.info.main,1);
            atext("FPS",FPS(0),opt.info.main,1);
            atext("Time",TIME(),opt.info.main,1);
            atext("Date",DATE(),opt.info.main,1);
   

        opt.options.save=0;
        opt.options.load=0;

        DrawBox(X,MC_MSY,WIDTH,(NO*I_SPC),C_BOX,pDevice);// Render Menu Backround for items
        DrawBorder(X,MC_MSY,WIDTH,(NO*I_SPC),C_BORDER,pDevice);// set-up border

        //-----------------------------------------------------------------------------
        // Desc: Loop Threw Item Index and Render Items
        //-----------------------------------------------------------------------------
        for(int no=0; no<NO; no++)
        {   
            D3DCOLOR text;

            text=(*(items[no].val)>0)?C_ON:C_OFF;    // Is ON OR OFF

            if(items[no].type==T_CAT)
                text=C_CAT;    // Category

            if(I_CUR==no)
            {

           
                if(BDIR==0)
                    (BTEX<0xFF/4)?BTEX+=1:BDIR=1;
                if(BDIR==1)
                        (BTEX>0x00)?BTEX-=1:BDIR=0;

                if(ABOR>I_SPC*I_CUR)
                    ABOR=I_SPC*I_CUR;
                else if (ABOR<(-I_SPC*I_CUR))
                    ABOR=(-I_SPC*I_CUR);

                if(ABOR<0)
                    ABOR++;
                else if(ABOR>0)
                    ABOR--;

                text=0xFF000000+(0x10000*(BTEX*4))+(0x100*(BTEX*4))+0x1*(BTEX*4);

                DrawBorder(X,MC_ITEMY(no)-ABOR,WIDTH,I_SPC,C_CUR,pDevice);
            }

            if(mpos.x>X && mpos.x<MC_MAXX && mpos.y>MC_ITEMY(no) && mpos.y<MC_ITEMY(no)+I_SPC)
            {
                text=0xFF000000+(0x10000*(BTEX*4))+(0x100*(BTEX*4))+0x1*(BTEX*4);
                DrawBorder(X,MC_ITEMY(no),WIDTH,I_SPC,C_CUR,pDevice);
            }

            font->DrawText(X+I_OFS,MC_ITEMY(no)+2,text,items[no].title,DT_SHADOW);
            font->DrawText(X+S_OFS,MC_ITEMY(no)+2,text,items[no].state,DT_RIGHT|DT_SHADOW);
           
        }

        //-----------------------------------------------------------------------------
        // Desc: Draw Menu Footer
        //-----------------------------------------------------------------------------

        DrawBox(X,MC_ITEMY(NO)+(F_SPC/2),WIDTH,(F_SPC),C_BOX,pDevice);// Draw Footer Filled
        DrawBorder(X,MC_ITEMY(NO)+(F_SPC/2),WIDTH,(F_SPC),C_BORDER,pDevice);// Footer Border
       
        font->DrawText(MC_FCTR(X,MC_MAXX),MC_ITEMY(NO)+(F_SPC/2)+2,RED,"MPGH.net",DT_CENTER|DT_SHADOW);

        //-----------------------------------------------------------------------------
        // Desc: Keyboard Navigation
        //-----------------------------------------------------------------------------

        if(left && (*items[I_CUR].val)>0)
        {
            (*items[I_CUR].val)-=1;

                Sound.wav.playsoundmem((LPCSTR)SWITCH);
        }

        if(right && (*items[I_CUR].val)<(items[I_CUR].max-1))
        {
            (*items[I_CUR].val)+=1;
            Sound.wav.playsoundmem((LPCSTR)SWITCH);
        }

        if(up)
        {
            do {
                I_CUR=(I_CUR==0)?(NO-1):(I_CUR-1);
                if(ABOR>(-(I_SPC)))ABOR-=I_SPC;
            } while (items[I_CUR].type==T_TEXT);
            Sound.wav.playsoundmem((LPCSTR)MOVE);
           
        }

        if(down || items[I_CUR].type==T_TEXT)
        {
            do
            {
                I_CUR=(I_CUR+1)%NO;
                if(ABOR<(I_SPC))ABOR+=I_SPC;
            } while (items[I_CUR].type==T_TEXT);
            Sound.wav.playsoundmem((LPCSTR)MOVE);
        }
        //-----------------------------------------------------------------------------
        // Desc: Menu Saftey / Sanity Checks and ReEncryption
        //-----------------------------------------------------------------------------
        if(I_CUR>NO)I_CUR=NO-1; // Prevent Selection From Hiding be hind hidden item
       
        //-----------------------------------------------------------------------------
    }
}

No comments:

Post a Comment

Your Comment