Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SPRITE_CreateAnimSpriteByGIF.c
00001 /********************************************************************* 00002 * SEGGER Microcontroller GmbH * 00003 * Solutions for real time microcontroller applications * 00004 ********************************************************************** 00005 * * 00006 * (c) 1996 - 2018 SEGGER Microcontroller GmbH * 00007 * * 00008 * Internet: www.segger.com Support: support@segger.com * 00009 * * 00010 ********************************************************************** 00011 00012 ** emWin V5.48 - Graphical user interface for embedded applications ** 00013 All Intellectual Property rights in the Software belongs to SEGGER. 00014 emWin is protected by international copyright laws. Knowledge of the 00015 source code may not be used to write a similar product. This file may 00016 only be used in accordance with the following terms: 00017 00018 The software has been licensed to Cypress Semiconductor Corporation, 00019 whose registered office is situated at 198 Champion Ct. San Jose, CA 00020 95134 USA solely for the purposes of creating libraries for Cypress 00021 PSoC3 and PSoC5 processor-based devices, sublicensed and distributed 00022 under the terms and conditions of the Cypress End User License 00023 Agreement. 00024 Full source code is available at: www.segger.com 00025 00026 We appreciate your understanding and fairness. 00027 ---------------------------------------------------------------------- 00028 Licensing information 00029 Licensor: SEGGER Microcontroller Systems LLC 00030 Licensed to: Cypress Semiconductor Corp, 198 Champion Ct., San Jose, CA 95134, USA 00031 Licensed SEGGER software: emWin 00032 License number: GUI-00319 00033 License model: Services and License Agreement, signed June 10th, 2009 00034 Licensed platform: Any Cypress platform (Initial targets are: PSoC3, PSoC5) 00035 ---------------------------------------------------------------------- 00036 Support and Update Agreement (SUA) 00037 SUA period: 2009-06-12 - 2022-07-27 00038 Contact to extend SUA: sales@segger.com 00039 ---------------------------------------------------------------------- 00040 File : SPRITE_CreateAnimSpriteByGIF.c 00041 Purpose : Shows how to create an animated sprite using a GIF 00042 Requirements: WindowManager - ( ) 00043 MemoryDevices - (x) 00044 AntiAliasing - ( ) 00045 VNC-Server - ( ) 00046 PNG-Library - ( ) 00047 TrueTypeFonts - ( ) 00048 ---------------------------------------------------------------------- 00049 */ 00050 00051 #include <stdlib.h> 00052 #include <string.h> 00053 00054 #include "GUI.h" 00055 00056 /********************************************************************* 00057 * 00058 * Static (const) data 00059 * 00060 ********************************************************************** 00061 */ 00062 static const U8 _acGIF[] = { 00063 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x20, 0x00, 0x20, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x66, 0x00, 0x00, 0x99, 0x00, 0x00, 0xCC, 0x00, 0x00, 0xFF, 0x33, 0x00, 0x00, 0x33, 0x00, 0x33, 0x33, 0x00, 0x66, 00064 0x33, 0x00, 0x99, 0x33, 0x00, 0xCC, 0x33, 0x00, 0xFF, 0x66, 0x00, 0x00, 0x66, 0x00, 0x33, 0x66, 0x00, 0x66, 0x66, 0x00, 0x99, 0x66, 0x00, 0xCC, 0x66, 0x00, 0xFF, 0x99, 0x00, 0x00, 0x99, 0x00, 0x33, 0x99, 0x00, 0x66, 0x99, 0x00, 0x99, 0x99, 00065 0x00, 0xCC, 0x99, 0x00, 0xFF, 0xCC, 0x00, 0x00, 0xCC, 0x00, 0x33, 0xCC, 0x00, 0x66, 0xCC, 0x00, 0x99, 0xCC, 0x00, 0xCC, 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x33, 0xFF, 0x00, 0x66, 0xFF, 0x00, 0x99, 0xFF, 0x00, 0xCC, 0xFF, 0x00, 00066 0xFF, 0x00, 0x33, 0x00, 0x00, 0x33, 0x33, 0x00, 0x33, 0x66, 0x00, 0x33, 0x99, 0x00, 0x33, 0xCC, 0x00, 0x33, 0xFF, 0x33, 0x33, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x66, 0x33, 0x33, 0x99, 0x33, 0x33, 0xCC, 0x33, 0x33, 0xFF, 0x66, 0x33, 0x00, 00067 0x66, 0x33, 0x33, 0x66, 0x33, 0x66, 0x66, 0x33, 0x99, 0x66, 0x33, 0xCC, 0x66, 0x33, 0xFF, 0x99, 0x33, 0x00, 0x99, 0x33, 0x33, 0x99, 0x33, 0x66, 0x99, 0x33, 0x99, 0x99, 0x33, 0xCC, 0x99, 0x33, 0xFF, 0xCC, 0x33, 0x00, 0xCC, 0x33, 0x33, 0xCC, 00068 0x33, 0x66, 0xCC, 0x33, 0x99, 0xCC, 0x33, 0xCC, 0xCC, 0x33, 0xFF, 0xFF, 0x33, 0x00, 0xFF, 0x33, 0x33, 0xFF, 0x33, 0x66, 0xFF, 0x33, 0x99, 0xFF, 0x33, 0xCC, 0xFF, 0x33, 0xFF, 0x00, 0x66, 0x00, 0x00, 0x66, 0x33, 0x00, 0x66, 0x66, 0x00, 0x66, 00069 0x99, 0x00, 0x66, 0xCC, 0x00, 0x66, 0xFF, 0x33, 0x66, 0x00, 0x33, 0x66, 0x33, 0x33, 0x66, 0x66, 0x33, 0x66, 0x99, 0x33, 0x66, 0xCC, 0x33, 0x66, 0xFF, 0x66, 0x66, 0x00, 0x66, 0x66, 0x33, 0x66, 0x66, 0x66, 0x66, 0x66, 0x99, 0x66, 0x66, 0xCC, 00070 0x66, 0x66, 0xFF, 0x99, 0x66, 0x00, 0x99, 0x66, 0x33, 0x99, 0x66, 0x66, 0x99, 0x66, 0x99, 0x99, 0x66, 0xCC, 0x99, 0x66, 0xFF, 0xCC, 0x66, 0x00, 0xCC, 0x66, 0x33, 0xCC, 0x66, 0x66, 0xCC, 0x66, 0x99, 0xCC, 0x66, 0xCC, 0xCC, 0x66, 0xFF, 0xFF, 00071 0x66, 0x00, 0xFF, 0x66, 0x33, 0xFF, 0x66, 0x66, 0xFF, 0x66, 0x99, 0xFF, 0x66, 0xCC, 0xFF, 0x66, 0xFF, 0x00, 0x99, 0x00, 0x00, 0x99, 0x33, 0x00, 0x99, 0x66, 0x00, 0x99, 0x99, 0x00, 0x99, 0xCC, 0x00, 0x99, 0xFF, 0x33, 0x99, 0x00, 0x33, 0x99, 00072 0x33, 0x33, 0x99, 0x66, 0x33, 0x99, 0x99, 0x33, 0x99, 0xCC, 0x33, 0x99, 0xFF, 0x66, 0x99, 0x00, 0x66, 0x99, 0x33, 0x66, 0x99, 0x66, 0x66, 0x99, 0x99, 0x66, 0x99, 0xCC, 0x66, 0x99, 0xFF, 0x99, 0x99, 0x00, 0x99, 0x99, 0x33, 0x99, 0x99, 0x66, 00073 0x99, 0x99, 0x99, 0x99, 0x99, 0xCC, 0x99, 0x99, 0xFF, 0xCC, 0x99, 0x00, 0xCC, 0x99, 0x33, 0xCC, 0x99, 0x66, 0xCC, 0x99, 0x99, 0xCC, 0x99, 0xCC, 0xCC, 0x99, 0xFF, 0xFF, 0x99, 0x00, 0xFF, 0x99, 0x33, 0xFF, 0x99, 0x66, 0xFF, 0x99, 0x99, 0xFF, 00074 0x99, 0xCC, 0xFF, 0x99, 0xFF, 0x00, 0xCC, 0x00, 0x00, 0xCC, 0x33, 0x00, 0xCC, 0x66, 0x00, 0xCC, 0x99, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xFF, 0x33, 0xCC, 0x00, 0x33, 0xCC, 0x33, 0x33, 0xCC, 0x66, 0x33, 0xCC, 0x99, 0x33, 0xCC, 0xCC, 0x33, 0xCC, 00075 0xFF, 0x66, 0xCC, 0x00, 0x66, 0xCC, 0x33, 0x66, 0xCC, 0x66, 0x66, 0xCC, 0x99, 0x66, 0xCC, 0xCC, 0x66, 0xCC, 0xFF, 0x99, 0xCC, 0x00, 0x99, 0xCC, 0x33, 0x99, 0xCC, 0x66, 0x99, 0xCC, 0x99, 0x99, 0xCC, 0xCC, 0x99, 0xCC, 0xFF, 0xCC, 0xCC, 0x00, 00076 0xCC, 0xCC, 0x33, 0xCC, 0xCC, 0x66, 0xCC, 0xCC, 0x99, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFF, 0xFF, 0xCC, 0x00, 0xFF, 0xCC, 0x33, 0xFF, 0xCC, 0x66, 0xFF, 0xCC, 0x99, 0xFF, 0xCC, 0xCC, 0xFF, 0xCC, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x33, 0x00, 00077 0xFF, 0x66, 0x00, 0xFF, 0x99, 0x00, 0xFF, 0xCC, 0x00, 0xFF, 0xFF, 0x33, 0xFF, 0x00, 0x33, 0xFF, 0x33, 0x33, 0xFF, 0x66, 0x33, 0xFF, 0x99, 0x33, 0xFF, 0xCC, 0x33, 0xFF, 0xFF, 0x66, 0xFF, 0x00, 0x66, 0xFF, 0x33, 0x66, 0xFF, 0x66, 0x66, 0xFF, 00078 0x99, 0x66, 0xFF, 0xCC, 0x66, 0xFF, 0xFF, 0x99, 0xFF, 0x00, 0x99, 0xFF, 0x33, 0x99, 0xFF, 0x66, 0x99, 0xFF, 0x99, 0x99, 0xFF, 0xCC, 0x99, 0xFF, 0xFF, 0xCC, 0xFF, 0x00, 0xCC, 0xFF, 0x33, 0xCC, 0xFF, 0x66, 0xCC, 0xFF, 0x99, 0xCC, 0xFF, 0xCC, 00079 0xCC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x33, 0xFF, 0xFF, 0x66, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0xCC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00080 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00081 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00082 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xFF, 0x0B, 0x4E, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2E, 0x30, 0x03, 0x01, 0xE8, 0x03, 0x00, 00083 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x94, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 00084 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 00085 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0xA8, 0x12, 0xC0, 0x35, 0x00, 0xAC, 0x80, 0x0A, 0xD5, 0x38, 0x50, 0x68, 0xD0, 0xA3, 0x3B, 0x25, 0x1A, 0x1D, 0x4A, 0xB4, 0xE0, 0xD2, 0xA6, 0x07, 0x99, 0x42, 0x2D, 0xD8, 0x73, 0x2A, 0x55, 0x97, 0x56, 00086 0x05, 0xC6, 0xC4, 0x3A, 0x15, 0x67, 0xCB, 0xA4, 0x0F, 0xBD, 0xEA, 0x6C, 0x2A, 0xF6, 0x2B, 0x59, 0x56, 0x32, 0x69, 0x06, 0x3D, 0x9B, 0x76, 0x2C, 0x51, 0x90, 0x16, 0xC1, 0x32, 0xE4, 0xE8, 0x11, 0xA4, 0x5C, 0x85, 0x27, 0xF3, 0x92, 0xCC, 0xCA, 00087 0xB7, 0xAF, 0xDF, 0xBF, 0x80, 0x09, 0x06, 0x04, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x97, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 00088 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 00089 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0xA8, 0x12, 0xC0, 0x35, 0x00, 0x2E, 0x59, 0xED, 0x84, 0x08, 0xB4, 0xA8, 0x50, 0xA1, 0x1A, 0x0B, 0x1A, 0x2D, 0x9A, 0xD4, 0xE0, 0xD2, 0xA6, 0x07, 00090 0x99, 0x42, 0x35, 0xD8, 0x73, 0x6A, 0x41, 0x95, 0x35, 0xAD, 0x0A, 0x8C, 0x09, 0x14, 0xE9, 0x54, 0x9C, 0x2D, 0x87, 0x3E, 0x04, 0xAB, 0xB3, 0x29, 0xD9, 0xB0, 0x66, 0x59, 0xC9, 0xA4, 0xE9, 0x35, 0xA5, 0xDA, 0x9C, 0x68, 0x93, 0x82, 0xB4, 0x28, 00091 0x96, 0x21, 0x47, 0x8F, 0x20, 0xEB, 0x2A, 0x3C, 0xC9, 0x97, 0xA4, 0xD6, 0xBF, 0x80, 0x03, 0x0B, 0x1E, 0x4C, 0x30, 0x20, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 00092 0x97, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 00093 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0xA8, 0x12, 0x40, 0xCE, 0x9A, 0xAC, 0x76, 0x42, 0x04, 0x10, 0xB4, 0x28, 00094 0x51, 0xA1, 0x11, 0x8F, 0x1A, 0xD5, 0x78, 0x50, 0x29, 0x52, 0xA6, 0x47, 0x99, 0x26, 0xEC, 0x29, 0xF5, 0xA0, 0xCA, 0x9A, 0x55, 0x09, 0xC6, 0x24, 0x1A, 0x34, 0xAB, 0x34, 0x9C, 0x2D, 0x9F, 0x36, 0x04, 0xCB, 0x15, 0x2B, 0x53, 0xB0, 0x3A, 0xA5, 00095 0xA2, 0x0D, 0xAB, 0x96, 0x95, 0x4C, 0x9A, 0x5D, 0x99, 0x82, 0xB4, 0x28, 0x56, 0x21, 0x47, 0x8F, 0x20, 0xEB, 0x22, 0x3C, 0xC9, 0x97, 0xA4, 0xD7, 0xBF, 0x80, 0x03, 0x0B, 0x1E, 0xAC, 0x30, 0x20, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 00096 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x95, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 00097 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 00098 0xA8, 0x12, 0x40, 0xCE, 0x96, 0x3B, 0x21, 0x02, 0x60, 0x35, 0xB4, 0x28, 0x51, 0x8D, 0x05, 0x8D, 0x16, 0x45, 0x6A, 0x50, 0x29, 0xD3, 0x83, 0x4B, 0x9F, 0x1A, 0xEC, 0x29, 0xB5, 0xA0, 0xCA, 0x9A, 0x55, 0x05, 0xC6, 0x1C, 0x7A, 0x54, 0x2A, 0x4E, 00099 0xA0, 0x4F, 0xBF, 0x72, 0xC5, 0x8A, 0xF4, 0xAB, 0x4E, 0xA6, 0x62, 0xC1, 0x96, 0x65, 0x25, 0x93, 0x66, 0x57, 0x8D, 0x20, 0x2D, 0x06, 0x6D, 0xC8, 0xD1, 0x23, 0xC8, 0xB9, 0x0B, 0x4F, 0xEA, 0x25, 0x99, 0xB5, 0xAF, 0xDF, 0xBF, 0x80, 0x03, 0x13, 00100 0x0C, 0x08, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x95, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 00101 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 00102 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xFC, 0x1C, 0x2A, 0x14, 0x68, 0xC4, 0xA2, 0x44, 0x35, 0x1E, 0x44, 0x6A, 0x54, 0x69, 0x51, 0xA5, 0x09, 0x55, 0x36, 0x4D, 0xE9, 0x12, 0x6A, 00103 0xC1, 0x98, 0x42, 0x7F, 0x5A, 0x15, 0xD8, 0xB3, 0x2A, 0xD4, 0x9E, 0x59, 0x6B, 0x7E, 0x65, 0x25, 0xD3, 0xE7, 0xD4, 0x85, 0x60, 0x5B, 0x9E, 0x55, 0x88, 0x33, 0xAC, 0x58, 0xA5, 0x20, 0x2D, 0xAE, 0x45, 0xC8, 0xD1, 0x23, 0xC8, 0xB9, 0x06, 0x4F, 00104 0xEA, 0x25, 0xB9, 0xB5, 0xAF, 0xDF, 0xBF, 0x80, 0x03, 0x43, 0x0C, 0x08, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x97, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 00105 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 00106 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xFC, 0x74, 0xF9, 0x53, 0x63, 0x41, 0xA1, 0x48, 0x8B, 0x1A, 0x3D, 0x3A, 0x14, 00107 0xE8, 0x52, 0xA4, 0x4B, 0x11, 0xAA, 0x74, 0x6A, 0x54, 0x65, 0xCD, 0xA8, 0x04, 0x63, 0x0A, 0x55, 0x1A, 0xB5, 0xA7, 0xCB, 0xAE, 0xAC, 0x64, 0x0E, 0xFD, 0x5A, 0x35, 0x6C, 0xCE, 0x96, 0x54, 0x19, 0xF6, 0xDC, 0x7A, 0xB5, 0xAC, 0xCC, 0xA4, 0x6D, 00108 0x35, 0x82, 0xB4, 0x98, 0x56, 0x21, 0x47, 0x8F, 0x20, 0xEB, 0x22, 0x3C, 0xC9, 0x97, 0x24, 0xD6, 0xBF, 0x80, 0x03, 0x0B, 0x1E, 0x0C, 0x31, 0x20, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 00109 0x20, 0x00, 0x07, 0x08, 0x96, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 00110 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xFC, 00111 0xD4, 0xA9, 0xB1, 0xA0, 0xD0, 0xA3, 0x3F, 0x8B, 0x1A, 0x44, 0x0A, 0x54, 0xE9, 0x51, 0xA5, 0x08, 0x55, 0x36, 0x2D, 0xAA, 0xB2, 0x26, 0x54, 0x82, 0x31, 0x85, 0x26, 0xBD, 0xDA, 0xD3, 0x25, 0xD4, 0x9E, 0x5A, 0xAD, 0x52, 0x65, 0x25, 0xD3, 0xE7, 00112 0x54, 0x86, 0x60, 0x5B, 0x9E, 0x5D, 0x28, 0xF5, 0x1A, 0x52, 0xB1, 0x1A, 0x41, 0x5A, 0x5C, 0x9B, 0x90, 0xA3, 0x47, 0x90, 0x74, 0x0F, 0x9E, 0xDC, 0x4B, 0xF2, 0xAA, 0xDF, 0xBF, 0x80, 0x03, 0x0B, 0x86, 0x18, 0x10, 0x00, 0x21, 0xF9, 0x04, 0x09, 00113 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x97, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 00114 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 00115 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xF8, 0xFC, 0xA9, 0xB1, 0xA0, 0xD0, 0xA3, 0x44, 0x8B, 0x1A, 0xFD, 0x99, 0x54, 0xE9, 0x52, 0xA0, 0x4E, 0x55, 0x42, 0x2D, 0xAA, 0xB2, 0xA6, 0x53, 0x82, 0x31, 0x85, 0x36, 0x55, 0xDA, 00116 0xD3, 0x65, 0x54, 0x56, 0x32, 0x99, 0x7A, 0xA5, 0x0A, 0x36, 0x67, 0xCB, 0xA9, 0x0C, 0x7B, 0x6A, 0xB5, 0x4A, 0x16, 0xC0, 0x35, 0xA4, 0x47, 0x95, 0x82, 0xB4, 0x88, 0x56, 0x21, 0x47, 0x8F, 0x20, 0xEB, 0x22, 0x3C, 0xC9, 0x97, 0xE4, 0xD5, 0xBF, 00117 0x80, 0x03, 0x0B, 0x1E, 0x0C, 0x31, 0x20, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x98, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 00118 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 00119 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xF8, 0xFC, 0xA9, 0xB1, 0xA0, 0x50, 0xA1, 0x35, 0x8B, 0x1A, 0x3C, 0x4A, 0x54, 0xE9, 0xD2, 0xA6, 0x4E, 0x0B, 00120 0xAA, 0x04, 0xAA, 0x54, 0x65, 0xD2, 0xA8, 0x02, 0x63, 0x22, 0xA5, 0xCA, 0x93, 0x95, 0xCC, 0x96, 0x5C, 0x1B, 0xF6, 0x44, 0x7A, 0x35, 0xA5, 0xD7, 0x9C, 0x60, 0xAB, 0x7A, 0x65, 0xEA, 0x52, 0x2D, 0x80, 0x6B, 0x4C, 0x8F, 0x2A, 0x05, 0x69, 0x31, 00121 0xAC, 0x42, 0x8E, 0x1E, 0x41, 0xDA, 0x45, 0x78, 0xB2, 0x2F, 0x49, 0xAC, 0x80, 0x03, 0x0B, 0x1E, 0x4C, 0x58, 0x61, 0x40, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 00122 0x95, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 00123 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xF8, 0xFC, 0xA9, 0xB1, 0xA0, 00124 0xD0, 0x96, 0x40, 0x47, 0xFE, 0x24, 0x5A, 0xF4, 0xA0, 0xD0, 0xA4, 0x4D, 0x55, 0x42, 0x4D, 0xE9, 0xB2, 0x69, 0xC1, 0x98, 0x47, 0xA7, 0x3A, 0xEC, 0x59, 0x35, 0x2A, 0x2B, 0x99, 0x4B, 0xBB, 0x52, 0x05, 0xAB, 0xD3, 0xEB, 0xB5, 0xA7, 0x61, 0xB5, 00125 0x2A, 0x94, 0x7A, 0x76, 0xE9, 0xD3, 0xA6, 0x20, 0x2D, 0xAA, 0x45, 0xC8, 0xD1, 0x23, 0xC8, 0xB9, 0x06, 0x4F, 0xEA, 0x25, 0x69, 0xB5, 0xAF, 0xDF, 0xBF, 0x80, 0x03, 0x5B, 0x0D, 0x08, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 00126 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x95, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 00127 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 00128 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xF8, 0xFC, 0xA9, 0xB1, 0xA0, 0xD0, 0x96, 0x40, 0x47, 0xBA, 0x2C, 0x8A, 0x50, 0x68, 0x52, 0xA6, 0x2A, 0x9F, 0xA6, 0x5C, 0xCA, 0x94, 0x60, 0xCC, 0xA3, 0x52, 0x1D, 0xF6, 0xA4, 0x5A, 0xB4, 0xE7, 0xD1, 0x9A, 0x50, 00129 0x59, 0xC9, 0xFC, 0x0A, 0xB6, 0xAB, 0x58, 0xA7, 0x3F, 0xCB, 0x4E, 0x05, 0x70, 0x0D, 0xAD, 0x53, 0xA6, 0x20, 0x2D, 0x66, 0x4D, 0xC8, 0xD1, 0x23, 0xC8, 0xB9, 0x07, 0x4F, 0xEA, 0x25, 0x59, 0xB5, 0xAF, 0xDF, 0xBF, 0x80, 0x03, 0x57, 0x0D, 0x08, 00130 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x94, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 00131 0x23, 0x46, 0x7C, 0x43, 0xB1, 0xA2, 0x45, 0x8A, 0x00, 0x24, 0x4A, 0xA3, 0x98, 0xAB, 0x63, 0xAE, 0x8B, 0x6F, 0x32, 0x6A, 0x04, 0x40, 0xB2, 0xA4, 0x49, 0x91, 0x1A, 0x03, 0xB1, 0x5A, 0xC9, 0x92, 0x25, 0x4A, 0x89, 0x2A, 0xAF, 0x5D, 0x6B, 0xB9, 00132 0xF2, 0x65, 0xC4, 0x98, 0x33, 0x69, 0xDA, 0x84, 0x88, 0x93, 0x26, 0xAB, 0x9D, 0x10, 0x01, 0xF8, 0xFC, 0xA9, 0xB1, 0xA0, 0xD0, 0x96, 0x40, 0x47, 0xBA, 0x2C, 0x8A, 0x50, 0x68, 0x52, 0xA6, 0x2A, 0x9F, 0xA6, 0x5C, 0xCA, 0x94, 0x60, 0x4C, 0xAA, 00133 0x55, 0x7B, 0x62, 0x9D, 0x2A, 0xF3, 0x27, 0x52, 0xA8, 0xAC, 0x64, 0x3A, 0xDD, 0x7A, 0x33, 0xEC, 0xD8, 0xA3, 0x52, 0x17, 0x46, 0xBD, 0x76, 0x96, 0x68, 0x51, 0x90, 0x16, 0xD3, 0x26, 0xE4, 0xE8, 0x11, 0xA4, 0xDC, 0x83, 0x27, 0xF3, 0x92, 0xAC, 00134 0xCA, 0xB7, 0xAF, 0xDF, 0xBF, 0x80, 0xAB, 0x06, 0x04, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x99, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 00135 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x4A, 0x3C, 0xF8, 0x06, 0xC0, 0xC4, 0x85, 0x6F, 0x2A, 0x5E, 0x4C, 0xF8, 0x26, 0x97, 0xC6, 0x8D, 0x05, 0x03, 0xB1, 0xEA, 0xF8, 0x11, 0xA4, 0x34, 0x91, 0xD7, 0xAE, 0x91, 0xB4, 0x08, 00136 0x12, 0xE5, 0x35, 0x56, 0x23, 0x33, 0xB2, 0xBC, 0x18, 0x28, 0x25, 0x4C, 0x98, 0x19, 0x4B, 0x4A, 0xAC, 0x79, 0xF3, 0x66, 0xCE, 0x99, 0x11, 0x79, 0xF6, 0x84, 0x09, 0xA0, 0x28, 0xCD, 0x97, 0x43, 0x81, 0x3A, 0x0C, 0xC4, 0x94, 0x29, 0xD2, 0x9E, 00137 0x4A, 0x1B, 0xBA, 0xB4, 0xC9, 0xAA, 0xA8, 0xD5, 0x9D, 0xAC, 0xA8, 0x12, 0xBD, 0x28, 0xB3, 0xEA, 0x35, 0x00, 0x50, 0xB9, 0x7A, 0x04, 0xF0, 0xB5, 0xEA, 0xCD, 0xA8, 0x0F, 0x57, 0x9A, 0x05, 0x6B, 0x74, 0xA3, 0x5A, 0xB6, 0x55, 0x4D, 0xFE, 0x5C, 00138 0x6B, 0x52, 0xE0, 0x5C, 0xB4, 0x5C, 0x65, 0xD6, 0x2D, 0xA8, 0x77, 0x2F, 0xC1, 0xB6, 0x7E, 0x03, 0x0B, 0x1E, 0x4C, 0xB8, 0x70, 0xC1, 0x80, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 00139 0x00, 0x07, 0x08, 0xA1, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x4A, 0x9C, 0x48, 0xB1, 0xA2, 0xC5, 0x8B, 0x11, 0xDF, 0xBC, 0x91, 0xF8, 0x06, 0x80, 0x42, 0x8D, 00140 0x00, 0x02, 0x89, 0x0C, 0x84, 0x70, 0x64, 0x20, 0x90, 0x1F, 0x73, 0x01, 0x60, 0xC5, 0x92, 0x95, 0xC7, 0x82, 0x81, 0x5A, 0xB2, 0x7A, 0xA3, 0x32, 0xE5, 0xCA, 0x6B, 0x38, 0x5D, 0x12, 0x8C, 0x89, 0x13, 0x27, 0xCD, 0x97, 0x08, 0x7F, 0xB2, 0xEA, 00141 0xC9, 0xF2, 0x25, 0xCF, 0x9E, 0xD7, 0x7E, 0xDA, 0x1C, 0x9A, 0xB3, 0xE8, 0x51, 0x99, 0x4A, 0x13, 0x82, 0x94, 0x49, 0xB5, 0xEA, 0xCC, 0x8E, 0x1F, 0x3B, 0xBA, 0xDC, 0xBA, 0x12, 0xC0, 0xCA, 0xAA, 0x28, 0xA5, 0x76, 0xEC, 0xCA, 0x55, 0xE0, 0x57, 00142 0xA8, 0x58, 0xC5, 0x92, 0xED, 0x4A, 0xF0, 0x2C, 0xCB, 0xB0, 0x41, 0xC7, 0x96, 0x2D, 0xE8, 0x16, 0xEE, 0x41, 0x90, 0x5E, 0xBD, 0x22, 0xCC, 0xEB, 0x35, 0xED, 0x5E, 0xA0, 0x0F, 0xF5, 0x62, 0x1C, 0x4C, 0xB8, 0xB0, 0xE1, 0xC3, 0x88, 0x13, 0x2B, 00143 0x5E, 0xCC, 0xB8, 0x60, 0x40, 0x00, 0x21, 0xF9, 0x04, 0x09, 0x14, 0x00, 0xD2, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x07, 0x08, 0x9E, 0x00, 0xA5, 0x09, 0x1C, 0x48, 0xB0, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 00144 0xB0, 0xA1, 0xC3, 0x87, 0x10, 0x23, 0x4A, 0x94, 0x06, 0x00, 0xC0, 0x44, 0x85, 0x00, 0xDE, 0x58, 0xBC, 0x78, 0x30, 0xA3, 0x46, 0x8E, 0x06, 0x3D, 0xBE, 0x61, 0xB5, 0x11, 0x24, 0xC5, 0x37, 0x28, 0x59, 0xA9, 0x2C, 0x79, 0x31, 0x63, 0xAE, 0x91, 00145 0x2A, 0x57, 0x72, 0x74, 0x09, 0x33, 0x26, 0xC9, 0x96, 0x6F, 0x5E, 0xDA, 0x24, 0x79, 0x73, 0x22, 0xCA, 0x91, 0xD7, 0xAE, 0x01, 0xE0, 0x59, 0xD1, 0x64, 0x20, 0x92, 0x42, 0x89, 0x9A, 0x94, 0x76, 0x14, 0x80, 0xD0, 0xA4, 0x81, 0xA2, 0x06, 0x62, 00146 0x09, 0xB1, 0xA2, 0xD5, 0x6B, 0x3B, 0x7B, 0x82, 0x0C, 0x84, 0x75, 0x27, 0x55, 0x89, 0x5C, 0xB3, 0x92, 0x2C, 0x3A, 0x31, 0xAC, 0x57, 0x94, 0x5F, 0x1D, 0x72, 0xED, 0xBA, 0xF2, 0x27, 0xC7, 0xA3, 0x41, 0xDB, 0xA2, 0x34, 0xCA, 0x2A, 0xA8, 0xC8, 00147 0xA5, 0x4C, 0x49, 0xE6, 0x7C, 0x83, 0x57, 0x20, 0xCD, 0xBE, 0x02, 0xF7, 0x02, 0x0E, 0xCC, 0x77, 0xB0, 0xE1, 0xC3, 0x88, 0x13, 0x73, 0x0C, 0x08, 0x00, 0x21, 0xFE, 0xEF, 0x54, 0x68, 0x69, 0x73, 0x20, 0x47, 0x49, 0x46, 0x20, 0x66, 0x69, 0x6C, 00148 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x73, 0x73, 0x65, 0x6D, 0x62, 0x6C, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x46, 0x20, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x65, 00149 0x74, 0x20, 0x66, 0x72, 0x6F, 0x6D, 0x3A, 0x0D, 0x0A, 0x0D, 0x0A, 0x41, 0x6C, 0x63, 0x68, 0x65, 0x6D, 0x79, 0x20, 0x4D, 0x69, 0x6E, 0x64, 0x77, 0x6F, 0x72, 0x6B, 0x73, 0x20, 0x49, 0x6E, 0x63, 0x2E, 0x0D, 0x0A, 0x50, 0x2E, 0x4F, 0x2E, 0x20, 00150 0x42, 0x6F, 0x78, 0x20, 0x35, 0x30, 0x30, 0x0D, 0x0A, 0x42, 0x65, 0x65, 0x74, 0x6F, 0x6E, 0x2C, 0x20, 0x4F, 0x6E, 0x74, 0x61, 0x72, 0x69, 0x6F, 0x0D, 0x0A, 0x4C, 0x30, 0x47, 0x20, 0x31, 0x41, 0x30, 0x0D, 0x0A, 0x43, 0x41, 0x4E, 0x41, 0x44, 00151 0x41, 0x2E, 0x0D, 0x0A, 0x0D, 0x0A, 0x54, 0x68, 0x69, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x6D, 0x65, 0x6E, 0x74, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x20, 0x77, 0x69, 0x6C, 0x6C, 0x20, 0x6E, 0x6F, 0x74, 0x20, 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 00152 0x20, 0x69, 0x6E, 0x20, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x76, 0x65, 0x72, 0x73, 00153 0x69, 0x6F, 0x6E, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x49, 0x46, 0x20, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x65, 0x74, 0x00, 0x21, 0xFF, 0x0B, 0x47, 0x49, 0x46, 0x43, 0x4F, 0x4E, 0x6E, 0x62, 0x31, 00154 0x2E, 0x30, 0x02, 0x0F, 0x00, 0x0E, 0x2F, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 00155 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x35, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x2F, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 00156 0x00, 0x00, 0x00, 0x2F, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 00157 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x36, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x2F, 0x00, 0x02, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 00158 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x37, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x2F, 0x00, 0x02, 0x00, 0x09, 00159 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 00160 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x38, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x2F, 0x00, 0x02, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 00161 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x39, 0x2E, 0x67, 0x69, 0x66, 0x00, 00162 0x0E, 0x30, 0x00, 0x02, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 00163 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x30, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 00164 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 00165 0x2D, 0x31, 0x31, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 00166 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x32, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x13, 0x00, 0x00, 00167 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 00168 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x33, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 00169 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x34, 0x2E, 0x67, 0x69, 0x66, 0x00, 00170 0x0E, 0x30, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 00171 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x35, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 00172 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 00173 0x2D, 0x31, 0x36, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 00174 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x37, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x1D, 0x00, 0x00, 00175 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 00176 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x38, 0x2E, 0x67, 0x69, 0x66, 0x00, 0x0E, 0x30, 0x00, 0x02, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, 0x3A, 0x5C, 0x57, 0x49, 0x4E, 0x44, 0x4F, 00177 0x57, 0x53, 0x5C, 0x44, 0x65, 0x73, 0x6B, 0x74, 0x6F, 0x70, 0x5C, 0x41, 0x6E, 0x69, 0x6D, 0x5C, 0x69, 0x6E, 0x73, 0x74, 0x61, 0x6C, 0x6C, 0x5C, 0x74, 0x69, 0x6D, 0x65, 0x5C, 0x4E, 0x65, 0x77, 0x2D, 0x31, 0x39, 0x2E, 0x67, 0x69, 0x66, 0x00, 00178 0x00, 0x3B, 0x00 00179 }; 00180 00181 /********************************************************************* 00182 * 00183 * Static code 00184 * 00185 ********************************************************************** 00186 */ 00187 /********************************************************************* 00188 * 00189 * _GetData 00190 */ 00191 static int _GetData(void * pVoid, const U8 ** ppData, unsigned NumBytesReq, U32 Off) { 00192 static U8 acBuffer[0x200]; 00193 U8 * pImage; 00194 00195 pImage = (U8 *)pVoid; 00196 // 00197 // Check buffer size 00198 // 00199 if (NumBytesReq > sizeof(acBuffer)) { 00200 NumBytesReq = sizeof(acBuffer); 00201 } 00202 // 00203 // Read data into buffer 00204 // 00205 memcpy(acBuffer, pImage + Off, NumBytesReq); 00206 // 00207 // Set data pointer to the beginning of the buffer 00208 // 00209 *ppData = acBuffer; 00210 // 00211 // Return number of available bytes 00212 // 00213 return NumBytesReq; 00214 } 00215 00216 /********************************************************************* 00217 * 00218 * _CreateAnimateStriteFromGIF 00219 */ 00220 static void _CreateAnimateStriteFromGIF(void) { 00221 GUI_MEMDEV_Handle hMem, hMemOld; 00222 GUI_GIF_INFO Info; 00223 GUI_GIF_IMAGE_INFO ImageInfo; 00224 char ** apImage; 00225 int BitmapSize; 00226 unsigned i; 00227 static GUI_COLOR aColor[256]; 00228 void * pData; 00229 GUI_BITMAP * apBm; 00230 GUI_BITMAP ** ppBm; 00231 static GUI_LOGPALETTE Pal; 00232 unsigned * pDelay; 00233 00234 // 00235 // Calculate palette entries 00236 // 00237 for (i = 0; i < GUI_COUNTOF(aColor); i++) { 00238 aColor[i] = LCD_API_ColorConv_8666.pfIndex2Color(i); 00239 } 00240 // 00241 // Initialize palette 00242 // 00243 Pal.pPalEntries = aColor; 00244 Pal.HasTrans = 0; 00245 Pal.NumEntries = 256; 00246 // 00247 // Get GIF information 00248 // 00249 GUI_GIF_GetInfoEx(_GetData, (void *)_acGIF, &Info); 00250 // 00251 // Allocate memory for pixel pointers 00252 // 00253 apImage = (char **)malloc(sizeof(char *) * Info.NumImages); 00254 BitmapSize = Info.xSize * Info.ySize; 00255 // 00256 // Allocate memory for bitmap structures 00257 // 00258 apBm = (GUI_BITMAP *)malloc(sizeof(GUI_BITMAP) * Info.NumImages); 00259 ppBm = (GUI_BITMAP **)malloc(sizeof(GUI_BITMAP *) * Info.NumImages); 00260 // 00261 // Allocate memory for delays 00262 // 00263 pDelay = (unsigned *)malloc(sizeof(unsigned) * Info.NumImages); 00264 // 00265 // Create and select temporary memory device 00266 // 00267 hMem = GUI_MEMDEV_CreateFixed(0, 0, Info.xSize, Info.ySize, GUI_MEMDEV_NOTRANS, GUI_MEMDEV_APILIST_8, GUICC_8666); 00268 hMemOld = GUI_MEMDEV_Select(hMem); 00269 for (i = 0; i < (unsigned)Info.NumImages; i++) { 00270 // 00271 // Draw sub image into memory device 00272 // 00273 GUI_GIF_DrawSubEx(_GetData, (void *)_acGIF, 0, 0, i); 00274 GUI_GIF_GetImageInfoEx(_GetData, (void *)_acGIF, &ImageInfo, i); 00275 *(pDelay + i) = ImageInfo.Delay * 10; 00276 // 00277 // Allocate memory for pixels 00278 // 00279 *(apImage + i) = (char *)malloc(BitmapSize); 00280 // 00281 // Copy data from memory device into pixel array 00282 // 00283 pData = GUI_MEMDEV_GetDataPtr(hMem); 00284 memcpy(*(apImage + i), pData, BitmapSize); 00285 // 00286 // Initialize bitmap structure 00287 // 00288 (apBm + i)->BitsPerPixel = 8; 00289 (apBm + i)->BytesPerLine = Info.xSize; 00290 (apBm + i)->pData = (const U8 *)*(apImage + i); 00291 (apBm + i)->pMethods = NULL; 00292 (apBm + i)->pPal = &Pal; 00293 (apBm + i)->XSize = Info.xSize; 00294 (apBm + i)->YSize = Info.ySize; 00295 *(ppBm + i) = (apBm + i); 00296 } 00297 // 00298 // Deselect and free temporary memory device 00299 // 00300 GUI_MEMDEV_Select(hMemOld); 00301 GUI_MEMDEV_Delete(hMem); 00302 // 00303 // Create animated sprite 00304 // 00305 GUI_SPRITE_CreateAnim((const GUI_BITMAP **)ppBm, 0, 0, 0, pDelay, Info.NumImages); 00306 } 00307 00308 /********************************************************************* 00309 * 00310 * Public code 00311 * 00312 ********************************************************************** 00313 */ 00314 /********************************************************************* 00315 * 00316 * MainTask 00317 */ 00318 void MainTask(void) { 00319 GUI_Init(); 00320 _CreateAnimateStriteFromGIF(); 00321 while (1) { 00322 GUI_Delay(100); 00323 } 00324 } 00325 00326 /*************************** End of file ****************************/
Generated on Thu Jul 14 2022 12:58:43 by
