From d8ba288e1d86d3632fc3781eea30c6cc82eda55c Mon Sep 17 00:00:00 2001 From: Steven Hobs <47906512+stevenhobs@users.noreply.github.com> Date: Wed, 4 Mar 2026 17:47:10 +0800 Subject: [PATCH] init --- .gitignore | 1 + .vscode/tasks.json | 31 ++++ caihong.cc | 39 +++++ easyx/include/easyx.h | 368 +++++++++++++++++++++++++++++++++++++++ easyx/include/graphics.h | 153 ++++++++++++++++ easyx/lib64/libeasyx.a | Bin 0 -> 182234 bytes easyx/lib64/libeasyxw.a | Bin 0 -> 182310 bytes easyx/readme.txt | 25 +++ shubiao.cc | 44 +++++ xingkong/xingkong.cc | 67 +++++++ zifuzhen.cpp | 47 +++++ 11 files changed, 775 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/tasks.json create mode 100644 caihong.cc create mode 100644 easyx/include/easyx.h create mode 100644 easyx/include/graphics.h create mode 100644 easyx/lib64/libeasyx.a create mode 100644 easyx/lib64/libeasyxw.a create mode 100644 easyx/readme.txt create mode 100644 shubiao.cc create mode 100644 xingkong/xingkong.cc create mode 100644 zifuzhen.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..adb36c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.exe \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8453203 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,31 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++.exe 生成活动文件", + "command": "D:\\Sdk\\cc\\mingw64-15.2-msvcrt\\bin\\g++.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-I${workspaceFolder}\\easyx\\include", + "-L${workspaceFolder}\\easyx\\lib64", + "-leasyx", + "-lgdi32", + "-lole32", + "-o", + "${fileDirname}\\${fileBasenameNoExtension}.exe" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": ["$gcc"], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "编译器: D:\\Sdk\\cc\\mingw64-15.2-msvcrt\\bin\\g++.exe" + } + ] +} diff --git a/caihong.cc b/caihong.cc new file mode 100644 index 0000000..5d50e2b --- /dev/null +++ b/caihong.cc @@ -0,0 +1,39 @@ +// 编译环境:Visual C++ 6.0~2022,EasyX_25.9.10 +// https://easyx.cn +// +#include +#include + +int main() +{ + // 创建绘图窗口 + initgraph(640, 480); + + // 画渐变的天空(通过亮度逐渐增加) + float H = 190; // 色相 + float S = 1; // 饱和度 + float L = 0.7f; // 亮度 + for(int y = 0; y < 480; y++) + { + L += 0.0005f; + setlinecolor( HSLtoRGB(H, S, L) ); + line(0, y, 639, y); + } + + // 画彩虹(通过色相逐渐增加) + H = 0; + S = 1; + L = 0.5f; + setlinestyle(PS_SOLID, 2); // 设置线宽为 2 + for(int r = 400; r > 344; r--) + { + H += 5; + setlinecolor( HSLtoRGB(H, S, L) ); + circle(500, 480, r); + } + + // 按任意键退出 + _getch(); + closegraph(); + return 0; +} diff --git a/easyx/include/easyx.h b/easyx/include/easyx.h new file mode 100644 index 0000000..1ecd14d --- /dev/null +++ b/easyx/include/easyx.h @@ -0,0 +1,368 @@ +/****************************************************** + * EasyX Library for C++ (Ver:25.9.10) + * https://easyx.cn + * + * EasyX.h + * Provides the latest API. + ******************************************************/ + +#pragma once + +#ifndef WINVER +#define WINVER 0x0400 // Specifies that the minimum required platform is Windows 95 and Windows NT 4.0. +#endif + +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0500 // Specifies that the minimum required platform is Windows 2000 +#endif + +#ifndef _WIN32_WINDOWS +#define _WIN32_WINDOWS 0x0410 // Specifies that the minimum required platform is Windows 98 +#endif + +#ifdef UNICODE + #pragma comment(lib,"EasyXw.lib") +#else + #pragma comment(lib,"EasyXa.lib") +#endif + + +#ifndef __cplusplus +#error EasyX is only for C++ +#endif + +#include +#include + +// EasyX Window Properties +#define EX_SHOWCONSOLE 1 // Maintain the console window when creating a graphics window +#define EX_NOCLOSE 2 // Disable the close button +#define EX_NOMINIMIZE 4 // Disable the minimize button +#define EX_DBLCLKS 8 // Support double-click events + + +// Color constant +#define BLACK 0 +#define BLUE 0xAA0000 +#define GREEN 0x00AA00 +#define CYAN 0xAAAA00 +#define RED 0x0000AA +#define MAGENTA 0xAA00AA +#define BROWN 0x0055AA +#define LIGHTGRAY 0xAAAAAA +#define DARKGRAY 0x555555 +#define LIGHTBLUE 0xFF5555 +#define LIGHTGREEN 0x55FF55 +#define LIGHTCYAN 0xFFFF55 +#define LIGHTRED 0x5555FF +#define LIGHTMAGENTA 0xFF55FF +#define YELLOW 0x55FFFF +#define WHITE 0xFFFFFF + +// Color conversion macro +#define BGR(color) ( (((color) & 0xFF) << 16) | ((color) & 0xFF00FF00) | (((color) & 0xFF0000) >> 16) ) + + +class IMAGE; + +// Line style class +class LINESTYLE +{ +public: + LINESTYLE(); + LINESTYLE(const LINESTYLE &style); + LINESTYLE& operator = (const LINESTYLE &style); + virtual ~LINESTYLE(); + + DWORD style; + DWORD thickness; + DWORD *puserstyle; + DWORD userstylecount; +}; + +// Fill style class +class FILLSTYLE +{ +public: + FILLSTYLE(); + FILLSTYLE(const FILLSTYLE &style); + FILLSTYLE& operator = (const FILLSTYLE &style); + virtual ~FILLSTYLE(); + + int style; // Fill style + long hatch; // Hatch pattern + IMAGE* ppattern; // Fill image +}; + +// Image class +class IMAGE +{ +public: + int getwidth() const; // Get the width of the image + int getheight() const; // Get the height of the image + +protected: + int width, height; // Width and height of the image + HBITMAP m_hBmp; + HDC m_hMemDC; + float m_data[6]; + COLORREF m_LineColor; // Current line color + COLORREF m_FillColor; // Current fill color + COLORREF m_TextColor; // Current text color + COLORREF m_BkColor; // Current background color + DWORD* m_pBuffer; // Memory buffer of the image + + LINESTYLE m_LineStyle; // Current line style + FILLSTYLE m_FillStyle; // Current fill style + + void SetDefault(); // Set the graphics environment as default + +public: + IMAGE(int _width = 0, int _height = 0); + IMAGE(const IMAGE &img); + IMAGE& operator = (const IMAGE &img); + virtual ~IMAGE(); + virtual void Resize(int _width, int _height); // Resize image +}; + + + +// Graphics window related functions + +HWND initgraph(int width, int height, int flag = 0); // Create graphics window +void closegraph(); // Close graphics window + + +// Graphics environment related functions + +void cleardevice(); // Clear device +void setcliprgn(HRGN hrgn); // Set clip region +void clearcliprgn(); // Clear clip region + +void getlinestyle(LINESTYLE* pstyle); // Get line style +void setlinestyle(const LINESTYLE* pstyle); // Set line style +void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0); // Set line style +void getfillstyle(FILLSTYLE* pstyle); // Get fill style +void setfillstyle(const FILLSTYLE* pstyle); // Set fill style +void setfillstyle(int style, long hatch = HS_DIAGCROSS, const IMAGE* ppattern = NULL); // Set fill style +void setfillstyle(const BYTE* ppattern8x8); // Set fill style + +void setorigin(int x, int y); // Set coordinate origin +void getaspectratio(float *pxasp, float *pyasp); // Get aspect ratio +void setaspectratio(float xasp, float yasp); // Set aspect ratio + +int getrop2(); // Get binary raster operation mode +void setrop2(int mode); // Set binary raster operation mode +int getpolyfillmode(); // Get polygon fill mode +void setpolyfillmode(int mode); // Set polygon fill mode + +void graphdefaults(); // Reset the graphics environment as default + +COLORREF getlinecolor(); // Get line color +void setlinecolor(COLORREF color); // Set line color +COLORREF gettextcolor(); // Get text color +void settextcolor(COLORREF color); // Set text color +COLORREF getfillcolor(); // Get fill color +void setfillcolor(COLORREF color); // Set fill color +COLORREF getbkcolor(); // Get background color +void setbkcolor(COLORREF color); // Set background color +int getbkmode(); // Get background mode +void setbkmode(int mode); // Set background mode + +// Color model transformation related functions +COLORREF RGBtoGRAY(COLORREF rgb); +void RGBtoHSL(COLORREF rgb, float *H, float *S, float *L); +void RGBtoHSV(COLORREF rgb, float *H, float *S, float *V); +COLORREF HSLtoRGB(float H, float S, float L); +COLORREF HSVtoRGB(float H, float S, float V); + + +// Drawing related functions + +COLORREF getpixel(int x, int y); // Get pixel color +void putpixel(int x, int y, COLORREF color); // Set pixel color + +void line(int x1, int y1, int x2, int y2); // Draw a line + +void rectangle (int left, int top, int right, int bottom); // Draw a rectangle without filling +void fillrectangle (int left, int top, int right, int bottom); // Draw a filled rectangle with a border +void solidrectangle(int left, int top, int right, int bottom); // Draw a filled rectangle without a border +void clearrectangle(int left, int top, int right, int bottom); // Clear a rectangular region + +void circle (int x, int y, int radius); // Draw a circle without filling +void fillcircle (int x, int y, int radius); // Draw a filled circle with a border +void solidcircle(int x, int y, int radius); // Draw a filled circle without a border +void clearcircle(int x, int y, int radius); // Clear a circular region + +void ellipse (int left, int top, int right, int bottom); // Draw an ellipse without filling +void fillellipse (int left, int top, int right, int bottom); // Draw a filled ellipse with a border +void solidellipse(int left, int top, int right, int bottom); // Draw a filled ellipse without a border +void clearellipse(int left, int top, int right, int bottom); // Clear an elliptical region + +void roundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // Draw a rounded rectangle without filling +void fillroundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // Draw a filled rounded rectangle with a border +void solidroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // Draw a filled rounded rectangle without a border +void clearroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight); // Clear a rounded rectangular region + +void arc (int left, int top, int right, int bottom, double stangle, double endangle); // Draw an arc +void pie (int left, int top, int right, int bottom, double stangle, double endangle); // Draw a sector without filling +void fillpie (int left, int top, int right, int bottom, double stangle, double endangle); // Draw a filled sector with a border +void solidpie(int left, int top, int right, int bottom, double stangle, double endangle); // Draw a filled sector without a border +void clearpie(int left, int top, int right, int bottom, double stangle, double endangle); // Clear a rounded rectangular region + +void polyline (const POINT *points, int num); // Draw multiple consecutive lines +void polygon (const POINT *points, int num); // Draw a polygon without filling +void fillpolygon (const POINT *points, int num); // Draw a filled polygon with a border +void solidpolygon(const POINT *points, int num); // Draw a filled polygon without a border +void clearpolygon(const POINT *points, int num); // Clear a polygon region + +void polybezier(const POINT *points, int num); // Draw three square Bezier curves +void floodfill(int x, int y, COLORREF color, int filltype = FLOODFILLBORDER); // Fill the area + + + +// Text related functions +void outtextxy(int x, int y, LPCTSTR str); // Output a string at the specified location +void outtextxy(int x, int y, TCHAR c); // Output a char at the specified location +int textwidth(LPCTSTR str); // Get the width of a string +int textwidth(TCHAR c); // Get the width of a char +int textheight(LPCTSTR str); // Get the height of a string +int textheight(TCHAR c); // Get the height of a char +int drawtext(LPCTSTR str, RECT* pRect, UINT uFormat); // Output a string in the specified format within the specified area. +int drawtext(TCHAR c, RECT* pRect, UINT uFormat); // Output a char in the specified format within the specified area. + +// Set current text style. +// nHeight: The height of the text +// nWidth: The average width of the character. If 0, the scale is adaptive. +// lpszFace: The font name +// nEscapement: The writing angle of the string, 0.1 degrees, defaults to 0. +// nOrientation: The writing angle of each character, 0.1 degrees, defaults to 0. +// nWeight: The stroke weight of the character +// bItalic: Specify whether the font is italic +// bUnderline: Specify whether the font is underlined +// bStrikeOut: Specify whether the font has a strikeout +// fbCharSet: Specifies the character set +// fbOutPrecision: Specifies the output accuracy of the text +// fbClipPrecision: Specifies the clip accuracy of the text +// fbQuality: Specifies the output quality of the text +// fbPitchAndFamily: Specifies a font family that describes a font in a general way +void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace); +void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); +void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); +void settextstyle(const LOGFONT *font); // Set current text style +void gettextstyle(LOGFONT *font); // Get current text style + + + +// Image related functions +int loadimage(IMAGE *pDstImg, LPCTSTR pImgFile, int nWidth = 0, int nHeight = 0, bool bResize = false); // Load image from a file (bmp/gif/jpg/png/tif/emf/wmf/ico) +int loadimage(IMAGE *pDstImg, LPCTSTR pResType, LPCTSTR pResName, int nWidth = 0, int nHeight = 0, bool bResize = false); // Load image from resources (bmp/gif/jpg/png/tif/emf/wmf/ico) +void saveimage(LPCTSTR pImgFile, const IMAGE* pImg = NULL); // Save image to a file (bmp/gif/jpg/png/tif) +void getimage(IMAGE *pDstImg, int srcX, int srcY, int srcWidth, int srcHeight); // Get image from device +void putimage(int dstX, int dstY, const IMAGE *pSrcImg, DWORD dwRop = SRCCOPY); // Put image to device +void putimage(int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPY); // Put image to device +void rotateimage(IMAGE *dstimg, const IMAGE *srcimg, double radian, COLORREF bkcolor = BLACK, bool autosize = false, bool highquality = true); // Rotate image +void Resize(IMAGE* pImg, int width, int height); // Resize the device +DWORD* GetImageBuffer(const IMAGE* pImg = NULL); // Get the display buffer of the graphics device +IMAGE* GetWorkingImage(); // Get current graphics device +void SetWorkingImage(IMAGE* pImg = NULL); // Set current graphics device +HDC GetImageHDC(const IMAGE* pImg = NULL); // Get the graphics device handle + + +// Other functions + +int getwidth(); // Get the width of current graphics device +int getheight(); // Get the height of current graphics device + +void BeginBatchDraw(); // Begin batch drawing mode +void FlushBatchDraw(); // Refreshes the undisplayed drawing +void FlushBatchDraw(int left, int top, int right, int bottom); // Refreshes the undisplayed drawing +void EndBatchDraw(); // End batch drawing mode and refreshes the undisplayed drawing +void EndBatchDraw(int left, int top, int right, int bottom); // End batch drawing mode and refreshes the undisplayed drawing + +HWND GetHWnd(); // Get the handle of the graphics window +const TCHAR* GetEasyXVer(); // Get version of EasyX library + +// Get user input as a dialog box +bool InputBox(LPTSTR pString, int nMaxCount, LPCTSTR pPrompt = NULL, LPCTSTR pTitle = NULL, LPCTSTR pDefault = NULL, int width = 0, int height = 0, bool bOnlyOK = true); + + + +// Message +// +// Category Type Description +// +// EX_MOUSE WM_MOUSEMOVE Mouse moves +// WM_MOUSEWHEEL Mouse wheel is rotated +// WM_LBUTTONDOWN Left mouse button is pressed +// WM_LBUTTONUP Left mouse button is released +// WM_LBUTTONDBLCLK Left mouse button is double-clicked +// WM_MBUTTONDOWN Middle mouse button is pressed +// WM_MBUTTONUP Middle mouse button is released +// WM_MBUTTONDBLCLK Middle mouse button is double-clicked +// WM_RBUTTONDOWN Right mouse button is pressed +// WM_RBUTTONUP Right mouse button is released +// WM_RBUTTONDBLCLK Right mouse button is double-clicked +// +// EX_KEY WM_KEYDOWN A key is pressed +// WM_KEYUP A key is released +// +// EX_CHAR WM_CHAR +// +// EX_WINDOW WM_ACTIVATE The window is activated or deactivated +// WM_MOVE The window has been moved +// WM_SIZE The size of window has changed + +// Message Category +#define EX_MOUSE 1 +#define EX_KEY 2 +#define EX_CHAR 4 +#define EX_WINDOW 8 + +// Message Structure +struct ExMessage +{ + USHORT message; // The message identifier + union + { + // Data of the mouse message + struct + { + bool ctrl :1; // Indicates whether the CTRL key is pressed + bool shift :1; // Indicates whether the SHIFT key is pressed + bool lbutton :1; // Indicates whether the left mouse button is pressed + bool mbutton :1; // Indicates whether the middle mouse button is pressed + bool rbutton :1; // Indicates whether the right mouse button is pressed + short x; // The x-coordinate of the cursor + short y; // The y-coordinate of the cursor + short wheel; // The distance the wheel is rotated, expressed in multiples or divisions of 120 + }; + + // Data of the key message + struct + { + BYTE vkcode; // The virtual-key code of the key + BYTE scancode; // The scan code of the key. The value depends on the OEM + bool extended :1; // Indicates whether the key is an extended key, such as a function key or a key on the numeric keypad. The value is true if the key is an extended key; otherwise, it is false. + bool prevdown :1; // Indicates whether the key is previously up or down + }; + + // Data of the char message + TCHAR ch; + + // Data of the window message + struct + { + WPARAM wParam; + LPARAM lParam; + }; + }; +}; + +// Message Function +ExMessage getmessage(BYTE filter = -1); // Get a message until a message is available for retrieval +void getmessage(ExMessage *msg, BYTE filter = -1); // Get a message until a message is available for retrieval +bool peekmessage(ExMessage *msg, BYTE filter = -1, bool removemsg = true); // Get a message if any exist, otherwise return false +void flushmessage(BYTE filter = -1); // Flush the message buffer +void setcapture(); // Enable the ability to capture mouse messages outside of the graphics window +void releasecapture(); // Disable the ability to capture mouse messages outside of the graphics window \ No newline at end of file diff --git a/easyx/include/graphics.h b/easyx/include/graphics.h new file mode 100644 index 0000000..3fde060 --- /dev/null +++ b/easyx/include/graphics.h @@ -0,0 +1,153 @@ +/****************************************************** + * EasyX Library for C++ (Ver:25.9.10) + * https://easyx.cn + * + * graphics.h + * Based on easyx.h and retaining several old APIs. + * The functions and constants declared in this file are only for compatibility and are not recommended. + ******************************************************/ + +#pragma once + +#include + + + +// Old Window Properties +#define SHOWCONSOLE 1 // Maintain the console window when creating a graphics window +#define NOCLOSE 2 // Disable the close button +#define NOMINIMIZE 4 // Disable the minimize button +#define EW_SHOWCONSOLE 1 // Maintain the console window when creating a graphics window +#define EW_NOCLOSE 2 // Disable the close button +#define EW_NOMINIMIZE 4 // Disable the minimize button +#define EW_DBLCLKS 8 // Support double-click events + + + +// Old fill styles +#define NULL_FILL BS_NULL +#define EMPTY_FILL BS_NULL +#define SOLID_FILL BS_SOLID +// Old normal fill style +#define BDIAGONAL_FILL BS_HATCHED, HS_BDIAGONAL // Fill with ///. +#define CROSS_FILL BS_HATCHED, HS_CROSS // Fill with +++. +#define DIAGCROSS_FILL BS_HATCHED, HS_DIAGCROSS // Fill with xxx (heavy cross hatch fill). +#define DOT_FILL (BYTE*)"\x80\x00\x08\x00\x80\x00\x08\x00" // Fill with xxx. +#define FDIAGONAL_FILL BS_HATCHED, HS_FDIAGONAL // Fill with \\\. +#define HORIZONTAL_FILL BS_HATCHED, HS_HORIZONTAL // Fill with ===. +#define VERTICAL_FILL BS_HATCHED, HS_VERTICAL // Fill with |||. +// Old dense fill style +#define BDIAGONAL2_FILL (BYTE*)"\x44\x88\x11\x22\x44\x88\x11\x22" +#define CROSS2_FILL (BYTE*)"\xff\x11\x11\x11\xff\x11\x11\x11" +#define DIAGCROSS2_FILL (BYTE*)"\x55\x88\x55\x22\x55\x88\x55\x22" +#define DOT2_FILL (BYTE*)"\x88\x00\x22\x00\x88\x00\x22\x00" +#define FDIAGONAL2_FILL (BYTE*)"\x22\x11\x88\x44\x22\x11\x88\x44" +#define HORIZONTAL2_FILL (BYTE*)"\x00\x00\xff\x00\x00\x00\xff\x00" +#define VERTICAL2_FILL (BYTE*)"\x11\x11\x11\x11\x11\x11\x11\x11" +// Old heavy line fill style +#define BDIAGONAL3_FILL (BYTE*)"\xe0\xc1\x83\x07\x0e\x1c\x38\x70" +#define CROSS3_FILL (BYTE*)"\x30\x30\x30\x30\x30\x30\xff\xff" +#define DIAGCROSS3_FILL (BYTE*)"\xc7\x83\xc7\xee\x7c\x38\x7c\xee" +#define DOT3_FILL (BYTE*)"\xc0\xc0\x0c\x0c\xc0\xc0\x0c\x0c" +#define FDIAGONAL3_FILL (BYTE*)"\x07\x83\xc1\xe0\x70\x38\x1c\x0e" +#define HORIZONTAL3_FILL (BYTE*)"\xff\xff\x00\x00\xff\xff\x00\x00" +#define VERTICAL3_FILL (BYTE*)"\x33\x33\x33\x33\x33\x33\x33\x33" +// Old other fill style +#define INTERLEAVE_FILL (BYTE*)"\xcc\x33\xcc\x33\xcc\x33\xcc\x33" + + + +// +#if _MSC_VER > 1200 && _MSC_VER < 1900 + #define _EASYX_DEPRECATE __declspec(deprecated("This function is deprecated.")) + #define _EASYX_DEPRECATE_WITHNEW(_NewFunc) __declspec(deprecated("This function is deprecated. Instead, use this new function: " #_NewFunc ". See https://docs.easyx.cn/" #_NewFunc " for details.")) + #define _EASYX_DEPRECATE_OVERLOAD(_Func) __declspec(deprecated("This overload is deprecated. See https://docs.easyx.cn/" #_Func " for details.")) +#else + #define _EASYX_DEPRECATE + #define _EASYX_DEPRECATE_WITHNEW(_NewFunc) + #define _EASYX_DEPRECATE_OVERLOAD(_Func) +#endif + +// Old text related functions +// nHeight: The height of the text +// nWidth: The average width of the character. If 0, the scale is adaptive. +// lpszFace: The font name +// nEscapement: The writing angle of the string, 0.1 degrees, defaults to 0. +// nOrientation: The writing angle of each character, 0.1 degrees, defaults to 0. +// nWeight: The stroke weight of the character +// bItalic: Specify whether the font is italic +// bUnderline: Specify whether the font is underlined +// bStrikeOut: Specify whether the font has a strikeout +// fbCharSet: Specifies the character set +// fbOutPrecision: Specifies the output accuracy of the text +// fbClipPrecision: Specifies the clip accuracy of the text +// fbQuality: Specifies the output quality of the text +// fbPitchAndFamily: Specifies a font family that describes a font in a general way +_EASYX_DEPRECATE_WITHNEW(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace); +_EASYX_DEPRECATE_WITHNEW(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut); +_EASYX_DEPRECATE_WITHNEW(settextstyle) void setfont(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily); +_EASYX_DEPRECATE_WITHNEW(settextstyle) void setfont(const LOGFONT *font); // Set current text style +_EASYX_DEPRECATE_WITHNEW(gettextstyle) void getfont(LOGFONT *font); // Get current text style + +// Old drawing related functions +void bar(int left, int top, int right, int bottom); // Draw a filled rectangle without a border +void bar3d(int left, int top, int right, int bottom, int depth, bool topflag); // Draw a filled 3D rectangle with a border + +void drawpoly(int numpoints, const int *polypoints); // Draw a polygon without filling +void fillpoly(int numpoints, const int *polypoints); // Draw a filled polygon with a border + +int getmaxx(); // Get the maximum x-coordinate in the physical coordinates of the graphics window +int getmaxy(); // Get the maximum y-coordinate in the physical coordinates of the graphics window + +COLORREF getcolor(); // Get current foreground color +void setcolor(COLORREF color); // Set current foreground color + +void setwritemode(int mode); // Set binary raster operation mode + +// Old current location related functions +_EASYX_DEPRECATE int getx(); // Get current x coordinates +_EASYX_DEPRECATE int gety(); // Get current y coordinates +_EASYX_DEPRECATE void moveto(int x, int y); // Move current location +_EASYX_DEPRECATE void moverel(int dx, int dy); // Move current location +_EASYX_DEPRECATE void lineto(int x, int y); // Draw a line +_EASYX_DEPRECATE void linerel(int dx, int dy); // Draw a line +_EASYX_DEPRECATE void outtext(LPCTSTR str); // Output a string at current location +_EASYX_DEPRECATE void outtext(TCHAR c); // Output a char at current location + +// Old mouse related functions +// Mouse message +// WM_MOUSEMOVE Mouse moves +// WM_MOUSEWHEEL Mouse wheel is rotated +// WM_LBUTTONDOWN Left mouse button is pressed +// WM_LBUTTONUP Left mouse button is released +// WM_LBUTTONDBLCLK Left mouse button is double-clicked +// WM_MBUTTONDOWN Middle mouse button is pressed +// WM_MBUTTONUP Middle mouse button is released +// WM_MBUTTONDBLCLK Middle mouse button is double-clicked +// WM_RBUTTONDOWN Right mouse button is pressed +// WM_RBUTTONUP Right mouse button is released +// WM_RBUTTONDBLCLK Right mouse button is double-clicked +struct MOUSEMSG +{ + UINT uMsg; // Mouse message + bool mkCtrl :1; // Indicates whether the CTRL key is pressed + bool mkShift :1; // Indicates whether the SHIFT key is pressed + bool mkLButton :1; // Indicates whether the left mouse button is pressed + bool mkMButton :1; // Indicates whether the middle mouse button is pressed + bool mkRButton :1; // Indicates whether the right mouse button is pressed + short x; // The x-coordinate of the cursor + short y; // The y-coordinate of the cursor + short wheel; // The distance the wheel is rotated, expressed in multiples or divisions of 120 +}; +_EASYX_DEPRECATE bool MouseHit(); // Indicates whether there are mouse messages +_EASYX_DEPRECATE_WITHNEW(getmessage) MOUSEMSG GetMouseMsg(); // Get a mouse message. if mouse message queue is empty, wait. +_EASYX_DEPRECATE_WITHNEW(peekmessage) bool PeekMouseMsg(MOUSEMSG *pMsg, bool bRemoveMsg = true); // Get a mouse message and return immediately +_EASYX_DEPRECATE_WITHNEW(flushmessage) void FlushMouseMsgBuffer(); // Empty the mouse message buffer + +typedef ExMessage EASYXMSG; // Old message structure + +// Old message category +#define EM_MOUSE 1 +#define EM_KEY 2 +#define EM_CHAR 4 +#define EM_WINDOW 8 \ No newline at end of file diff --git a/easyx/lib64/libeasyx.a b/easyx/lib64/libeasyx.a new file mode 100644 index 0000000000000000000000000000000000000000..0b325b9430b1c0a4593251d1b982056891fb5400 GIT binary patch literal 182234 zcmeEv4SZD9nfIL}KtOb2Ma3@Gsm2;C#hHAN#L_xLW?)hROi9F`)FkACMDsD5Of*=w z8yl!h$8@unc4?Pim#W*+Eo*7zwbW8Kd?<)iqo5*E8&N9=DuQj%rRM!V=bZc8d*|Ls zg0|g#e{b(EC+C0v&vU-dJzw|CJ)fLe(_Y*7`3cu}te3B_ps-+uw=l2RsFlkp@tNm5Ym-cFDe-85x&05;on!7%s zrTsO{y7RQO|5;OY-e{Hi&1P5Gs*O|j5znw8B9wAY4`xEZsWVzZiK$+R!G zq`kf-Ru5@QP1GhWR?_y)j>gi~x~BH}TDuoTQmLe^C0Y|}TH0J6EU|esL+S)eXO+W? zrnc5(4HZ(P-X`(oNw*8(aN#n$Sb1IE*4$J#iz1rrby2XsxjyC;t6V8ru=Ey(bQOl0 zo13B?^~v7(azkA)86~IKl5}=+TU*`irsn2kw}nJHCIW?7ULTuP6RT}3YidEECY4|D z97u1S*H&kbj~Aj6MAg|}$U58G>sw>asU&|i8OW9+Y;d`AW2*Ea!QO- zj0z!NxFC|7?4vIqg7R2f?XAvnnNil%T3^wY?5t>B+igU5B@6N*O%Az1F`HF?M^k-! zvVI|nmf7oG5%J9kJK2FRe_?%1bJHF5ks8#Xm`z?xb+V>)S+j$rt+Ta`#5O6u z%k@D#+SXAoR2{XXZ=$`|YqXPIuE=3Mt)bRhw5#nM<#^H^wY}yf z>)MW*B9=1IvP-3;!*#G}sgu4hcbP2dind!VJ)e>8VhX#w<~Et=iZ(R5=1AsOEoiQ{ z)kDEL)j=W1^~o5@y0D-%Jg2#BX^pj=hp!kLw9)vYNi>0`=nGGL`6X@Fw>CM+XJ9DM z($<E=j^Xg;N=hadJ zESU}yL&YF;Vrc)YI?Momym~pb%?=YJ-SZQMi1O`Icfs14)sqyUQ>XsSgiYr?FF>QGxJ2I^h0uI2P3*CsLIp2WA)@J7k`o}@l6-8PD0 zjg*@i(kQCKV1<+*juawO7KTbHZZQk2w0P)AUp(|8Rw$pPOP4m%ML|-l;H2Ozv$2u6 zJ|Ch{wqVZe1@kKcLXJm{eT*cFi<>bbY@!iiL^e%G31S3?PLlH6Dkbc|C`39#%8gd7 z2!WY>qv{90=s_1WC0T|eS`>pe1SmX;wy(V{hQ$c8XAyL!buCLNaukjzH_=StMwXIj z{PSnkqXiYyXBtaNZZ?L{jl*&(s+iKZ)>#!TjIKr#UrbAGZE9UsO4%oZp(&7=RC$UB z&sbRBL6b+Bc#$bIH4fjYv9X>-lnpdZ7W}NvhKBlfvxs`zmimqk1TLzM z={`~%>Y8T~`J(mpw<=w;jIz>~+dz3^@d=f%wk8_uY?sN(Z zv=yZ}tF0?iOAlMQuL^&%vQ#WGMr;TWw>%osrnlEOL}TsKdDY67zpSb$D8?owXwfjA zu&d-QtBO+5E@(yeIVcn=xr4~(gG@{ZoShaet7?RVCMdRWi{TUtD5WjS9E9X?ZO5Eo zX&Kfuoa9ENojstCF%Fhfql$7<9wEz0t+(aY3@x?Xszt#<$|2NFpSOgDbu^i8=KeZF z9d>RN{!k#Ja8Nc{2fkeN|5f4ZL!#3U$w9zy0qDbpQK`zI#K@|}Ja7q7W1_+@mURZ% zug@gp@~Mee1MFnpIzkT76KnHRG~GOkb`IA%iXO%vYOuv9IfXy;tgDfA3SUfPZ)ZP@ zk+!oB#@IVVO}H(+#$Yuhnlqb%kD{PPl5O8PL{IeUD`18-+fY(sHp->AP6WdNM;vBSxEN zmNDzd+NQDSh|0$36fqUUQ+w!^!5@4~9;`XIK)v9>UC1`NvpL{#lXGpPHbIW0oaI5a za$;*A%}WZ-PPqvcL*I~fQf`YUH>OJ4I!zx*od%O);_je`6jC#y$HF{YchE))W@uaH z?{;PD{5eG~cu|`%sj6*juU9p8VUrvyrD&>*NeuMmEW{RcF;xLE97d&~d5KNKJaI{- z!;=|Ou*_!c-dSs^h!~m!(?sShoH)kUA%K*6Mz`SD^y%wp$(6PwMQ2|W49==(!;7$x z8m+fPeBN**P!_7F2#FOZ=foKmB{J7(KxXQGD0OCa8o%2-HI_g`O>t83<;$tRzE+Y_ zQLTKC+|eKNGDj*Uec>ZzAZj6Qq^93k^AJ9zh>=Q}zNj&bDy?h?v2zDeq%UL)qoXfj zpypeaHf&|0lBgCgMpjQ+o)S@TE&$Wg6KOdrS(cSj`<1j%Bov)} zG0A5)MKaBBY!1a124B*fz!X}RH=E8n#dC~TU6KEH-ZmaMm#Pl{m|b z#TzrKE~%0!_xCuvmU|+cWu|=&&I-l`31_*_OQoQ1u1KMiv;iiCmh@uiWWb0{C6}aBi@U{=2 zYuI<{q|kHTAeKVew%4qp+#w5S<;#(_l31|wC9V2848KXsvXnb29rVTa&X`sR)eB(D zsFHZ6Q6=$CQz!7oJ7>pk9~$Pj&?%yvZ(ZIVrBIS!Z+5yt^DMR0`KAF1f$`BaNq zBApl&>x)|UkvuepU9uv%@POWOI;^57xqQEhyta+7^eBwDWJQW2Em;X2M2D6gMlpxg z)y|VxI2#MljotNJ?dpH zD37$vMJoJS7TM;sUICrau0@b{!!Le7W5mS|($O0z{b3z`?M=AAQc}vbH(R%t^x}zL zgV{PUhdzJ!cTUDTB}B-<^$0J*hI?N%@?_0vW2QaX!%snmd)+36@ut1%DTV^61`bK% z36Vke@r0sPQTTG@_BXj7&DzB$$t>M`lFZW8TV>Y1HAyy%p9LkfXUp8NTiq7X&Q8pU zXpP&n0yvD4eD}w-(5gv0lsID@MEa=AE>byJq`zbJc`F*R&9rWIXKQUJVtQ}G8rCc^ zXiIJ|?aM2nJ$btK<{V)iYrz?`vyax18EY4!YDC)G5a}7=8|DYAs%}}{Wi;_VnqkcA zSXQw-S|5rTJUd6u;03w<79Q)}j7^JuhIU>AZ|GUYqE0XAZMiB(e1-!@Pidi~M83y& z%qN;8h^@)PD&^9~PtI>N*|k{bb&8bQ<3M98TRR}vcT#Wq=bR{r#u}TM z=BQYxE4Fkj!&4ulA2=9c>a}HYBP9CjHyZ)e(00RmM9GtBIaoUheM;rCfb9eFW4tdYz#$x zzmXWP>3eCcZ%iGPbydgU#oCqH30~6N(Nu>f`1VLa)tu`~gT|w4N)qp#qPAN1+DX&0 z2}(~Kc0u{{ZBVLkOn&orE<;`I=Ng@EdA``RW2;NUZx*+ykMuC{p7vpWmSFRg9Xb9y zVHkDCpD7HZ@APwpVbmRewlIvo!_OCn(RTb9gH2yHgbqKgOQAWcRb5(-r{5>(KR~ki zHR2$Vhi`VL`VVJ@`~Af*u2TFCV;C31{vIQ>JKqSux+pHucfMJN9VXr~?lAF|aiYOv zK%|d3)MmPZs`3K0nNELJlwkFj<9_1KLeYq`SJ6@!Qezj=sWH^=u(F!qMuoa*TY^H}@N&X5k`U`@;sy&};)Z&Cu|9Bnds7U*PLjVyp>?qa z{Nm7I^Miwk0x~-=-P`y1P?X4P+kPI};3gtXK*V@P3w{tAYZJ?vg@mzHSKQ2?l}BAb zSQiwkEPa4sF&VH5Et^IopKJre}X}Z7MPaw0B-iGWeIr&Wh$AFFR{kfBNjK zqxuE$t9@q;-)P>j%c!F-F#mu#g@2=(rAiM+xt(B?otvexH&5>LDW7&t@~5_}AKtRv z<$C3JwmhEd3F1cp)AiBZ^tNjhBY*fgoqqUfC&h0(4O(qgpI*W{)vYp&Sz4AQQ|NaL z%Dir8V(GV>7CoNc8A|%_jTlpEaEo;7-yF*=w0?8U=k?B*flMfvkp~G~)f4KzHcq3f z`y5RR3Y4Kurxjv><-h)PO`GP@w3Sj-s|D@RBGuFDYGO4eJtyebBK^~sc669!-S8{< z>L$H*tB2KTnsz+HstN!6)4QyC6QNS3;-+i+HLrhq)UHV5_Z-g&_nu3dLl@HjaN<&7#UBgzUWgC4Y2o;`p?%@_JGebh+>Yr&YITa- zgyUnPChBrYHJYdylBzaQrIM;NQ8!8|VxsCK6*f`rlJc9V9!V9MsJkWQHBsM@RE~-I zzN9=R>H$ejHc`KnRF;X_A*oCgwO>-2iF!#=r(x;&byQL(Ow{|5I%1+S;0bbd&_tap zsRJhJQb`S%s4FG4+eGC{s^3I?R#IC`R8UfzOcZ50BC)|ll}l>9iMmNrYfV(0r20%$ zhon}UsDF@Dw~4w-Qe7tMTat>JsCy;VXreYrs@g>TQc{&B>QPBWOw_ZI3Y)0kO3H7d z-j-C6iTb0Yye29G4>$5F$3$HuDUXS|T2hluRDq2 z-MpjEbm3bCdAZZ;nwvFzU`Uf66w=HeJJ4^;p9@l)`RhQ6GCl^R2z1N}sm*fguAD#Z zqv@aWQ9v$IXd(IQTrFh!Fc01EcX%|cm(q84G<-|}{kHL$9Ss9s`B@!8CGsme0-8UX zLxkKgLr8oIMF7*5G`gqFZe*K2aif)C6kgG$>7TICB2D$0v587R{ESxEG+@`PADqFh z`bD(HyTUZfwnKHNGD3>fHX(@gkHJVtTjvOwM_hC-zwIKBIYp3&6v3`QhbH=IQnG%S zMU|1|J1mq5>a!~Z$u&yD^pzEjDEg`j)il0bW7D;tXJnnEN(!_cHe*=Kc?JTbbL<+*8cG$lPJ(-eT_e%(?I!$vnsel6f$RxxZuXD(0p$ zcP(=P=H@Y1!CWYmFkv;pYu`u7j-DC^15qDV@W)JQ%EzDuuX%>ctTc<%9G5iFW6Bg!LFh?xR5-@`n z<~A?~EDW^@0~TfznB5kJp8kFda|Fy53o`^}lZBa#$ZoJO)4;5^FkvujElf3-J`1xP z%xVks9WdP%=0PxB7UtJrq88>jm_`dT0oA|S!b}BIX<cgu+Uvb=&(Z$H$kopt$@Uo{A+@yiS=j~(Qu ziG}Hnl=2f&o@pdYji1^i`AKgkF_<={BFQd`F>?Of7eB4J_O~y7CbbOKWp8U{nHSBi zlD~cN(=-=Ne(p@a>8Yw}YKd0ShNiNnrR_EC%kgm~LE+J)ZGwS1e8vlFvlFh7hf;_& zVfx1_$VJX8$hpM@kkDnUAQxc>mo0h*`wH?Vj74Y#*^B;(uIVtIkFtU+e6jxPc345C zand2#U9qx1#R@X@?&izyu!2lI>1pVlQGFkcT1n4o1vyKlRriy^r3GZa;{tN;g)~0K z>M_=_Xw-of(B2FGj;O@BbPu{(r$23>X|y4!Wy5b8iwNzXT4;|>@3GL7mqPou7CK9(#X>J9p2jDnU6JiU{!!#ZzW!ao zY#J?VVE_tTgH3TGTde6L*XVZW!fO2Q!;+x?rXBda&vf@?D~YGLlUL!y7|O-)(4c9x zkRVnJ={vS!%@F;a>6^B+5+`oe=WE5iW$U2)I;r6CxQTZ-H_%txER6jAtf1sVr25pX zVCW5#a7U|XrIIpzKvoji>=ctbi}4OpP}(pOuNL#{Dt z+L(41O=HBhQh`3$--n@68fmqQbm#?4hIStQUoH^M>8=oH3jRy!r+{c>EJLGpFUirm zm*hUjXf{jdF;~IpODwHp?p8)ImeN|7^!cld5-h!kIeIN3_3mZqkC@xU=oc*QXO7m# zq}u_OKF=Jz{*cnwS^5@pzh^{qO_>{GkmJ(DL`D|^N$C{ku3$uMu$1O8cP%5D(@Ov7 z1%yPjDkjl48GV-#qN33gCf7D3qVlCTWa(msLvr*`OEih4!>xQo=%G`qA0w@Nz(Z{+ z4AnuGhSd?v`%92mGoZRjeU5Q`xV4Zj!vlrvYa!=Rke2Jit%XqgNd1fTqS{W^aBCr7 zgggpE9a1VkP{Ag?SQpP7_n!xvS4! zc?`-D(-*3T_2F+HOt0iT^EvK3w&$(SVaKt9mg7!iyWVgcb{(`+Y}9qo9Cm}QT_1ZB z<+$OjKbStsp}bl>#^=wI_JR~UkK}!MMQZGCjO1U!6G6`+^}XhGWn#Kvs29ms&k*${ zo{un+_rQJf)$K5n_d{tT!ZlwsqBgg!B%>DNxJ}Q#7lhJx272`Vf-Y)lQ;p;&DIK9G z^qlvCU=xVi4r1F2;(;>^Mk#g}#ft4ApOF+bXhc!>NCQ#2_dPD(USmLNj8vt9K16M6 zu2=7}!sgGSX;{#s+dkLH#tnwam~i z!T*Z|^5DOeI*s9Gv9uIOjxrW9TFi(x4@oJ&pMShT&&pZ6X`wh=2}8M*YP>#VBPod$9-cw12CYb52nP#!T=4V2Tx?EK6te5@W3x#DLZ+u=k8*aQorAHwceJw{>uk!n}vA}cTT;k_*IXsPZsP5{qgX>2ja$BsGarU5ufZZbJ89>s*6ih zn7X>t3JSF;)zI6dbg4cFy`;T=RG*q{{zV*DT2?sdHMrk?yum$v_w5&*bXSU|^Q3!P z|BeQ|Jw54OVz8L$>t0Z+Y+Qra>3F1e@H{Az$q;K`5|LZ+jEesf(NjV1vYp=ilDYfjUG)&iT~yvn#AcYN`ri&bhQuH`sl6=+uX9q)`$LEFLTQxTOTTODre&| z&zh*sNq14c*sl^rrD}cVLvCs#`Sey|cE}lnz5`E53Vs2i6>L;m}q){kJya?yp zN@OV&K|y6Ds`v5B#hut?@Yi?}H=|{g@RcKe6-#Y)#h7f?nhkM#19nWl^M4mtT(=rw7n*%?%Gkh{c`JeRehTd+QUa>9Qb=bcEwCUm(emWdSW<3}4CT3;E z1DT0g6XSu2dJ(Ct>-kES78{qCJ$Y4s=f&Y&CBnmS`~ZcI4fUcYPb|vpIqdFve_ZEF z@si1j`IE!jUQSavGJA43UXn#`G82okO1BM4-t2*2(~C|;7coD&cxY&-PmixHeUvCu z`gZhL^YaFgKu?$xIGqz1PAtr#L}D~DH8DH0=SX_b;Ga4_p(naP)fY;h=cb#hWctF1 zxuVv-uGbD0V*-JZ%uiPfXLtqadq%vo-KD(wG7|nCCH&YA!|@%!ihn`a$?4OJi_%|= z^z-b*R5!$9lO=1A>Aj_>a(Y$sPj;5a_ppYCG*Y_H8PUCWSocLEy7v#~zIy`|FCxh0 zFP{w~{@t6ThWoN^09q%LmVDIw;Ss}+IEHTo;IDQFpL4I#+5fP~ebmXlN#13V_Z%-$ zX$a^#!FXA=XC8*c@qu9cnV~*PD7~^S!bn+9udW+Tbg!mt5Lt%$=pgTNkRvP(Ku=ru zdZlP-k5&Gf!dvU;-{T^-Mm4KMl-!r;@hOczUK$@LGx@Sb`l90N&UxCMvzuemFNKDC zmh9%hR|0W*O&$+O4d?pNeLzZwsb7P`x~HetTz;Y*HuYa0^`7fOQhs)ykO8xN56ziG z1>w9ot>R`Wzf|>$oe%ZVq=f6&DD-KE@!9BSou&Tdv()#P^<{lU{pJL6{&=BBWoOBs zVf2g6Qr~};`t+9F7N1e%e+2H%CjTqXQos5v^&74FVO2+ii6z-xrbcZ^wwI`=Xx_MV zg7GEUIYWI>Jz&**|36Nq1H-yGvH!lkW4er%7a< zprf3HLV`T(GyF9AcO(DK+P}4bX8+dznf=@FXZCNClYg>(K>vlt*3y4L84s_j>vnnn z2=d({$OlG{9~ePCsN|z)PmVy9+Y@dN?c;+J(o1Xm3IBcl4VVXcjIJrT8ny>|*!&ke|5n3q`BesxzAOsvb^ zqHfTJugl(~ZqVp>kh^{1J9kp7X?)sqyi#xfDe~(l`e&AV&2mipb1-YiS~nhnoY)vK z{!Z<^_y&vh`{SYF6 zsCo(HP@HwoE#qmf<3*fUXSsg_dF2T5>SXyS+N(ymNoub+zR?fiUzf!{vC`w~5BFTF zbxz>y#zK|If4P2ywUY$xY}CK~vFgRxB3(5;Sx1R19mN?X$|r|+kxQecf=u|OE7S6W zoMKS>r|Mq)1c*URt9u^4-x2 zEKJY})j48S%TG%Yruu4-PR|$OpXjFeCqJ*!zrbXAA!|)c0ptfN`8%9^RqW z^Yn-G3A9_=<+DmnAQp<`a*gq}S0&!ilhvP}A0-dDAKIO)V-DZ_(9@=;+cf{vGnb!V zz5HZTKM`KUaraZ;=T+wUX?9!6$;yw;tHKW6Hd{< zx*qx6NPbtt!ICiUBJvYAWeF0X1*=8_wj_+Z$kC-#Ck%hEp-F_mZ|e}QCJgNt&&7Um z-KH-jER|nKaN$*G#w?|0`f`Hq_L6ZK+PK_wZ(6l03h%U`A(#8J*zEFE*O)afyrZP2 zLf8G!HpOA-pTQq{d*j!KNm#t7=|UyC8gErZ9fG>}6$05_n1wJI zFx4=4BQ9%L6|MT{jd+hYy}>K{U?}yU=0to z2WBTA*`I^i4eW<~1I%9FYS_zR27tR^{|n51;PtS70doMjANKPwhkyrRzXmf1d;<3G zVO|B+#vutXM*y>6UkGy?*aQ1Ym=nNW*b$g_fywTGISt$m`vI6Uz?)#d1cU0U4Z=Pz z6FVn?vtWN7W)iR;b}P&j;3({G!ej%lhrI(P2Y3MXDVS-%wB7Lv7;3=1uy2N;FH=>+ z{szoU;6B)ozyyK&VZQ}a27Cf`F18p|0Q+Ho6^3?Z^}&7yrVe-z_T|{1*bMB2eH%;+ zxEuCkFtnp;0QN-_QGb9vup40R29Cmh2xbj%KkPx6b--lP4?orelkI`IADC=E%m!ex zt6??*lidxo37G5$U^WA9g1rxBEASxfi?NxiAJ_x?TA1Cye%Q@0dx4{{zYen>xDWPL z7@8*c!+r&35cmY_E3vieRbVgdw_uJF4|{1A$`?2a`IQFw`#e!TuqP2Y3_gT`=@5 zmjT$X!_Z{p1nhAiLwx|wf_)VXO+vh|Z-${A*wwIahnWf74f_EYKkz2lPr!tM2Vf6e zfVx2#_Pa0@z}h6VV=y#U_rSgmW(lw#b`?xDa5e0^VCsPTVE+K78F&-yJuuXU4ZuDO z69Ya0dkBWc)*6PUZkQFoS+FO=bOU=}pN3fpoLhizA^E&emRE6E>HJW6#p1G%yhnCh zF4OT+f=`xPlyRf`T%9aPy6;o>Bkl4_a`r!di>6-t510%s5C4BGP$Q!iK-6nxh<04+ zJ&ya0f}=LDU!W8C|DOU~g}N^heXT_5)dESMe-0%5`vcH+;o>}$;tqkX0Frw2-60v; zMj&d-GqhKL9u?>m&|?CfgXsU4Ko9z#u0m0QW>S1&rqaBQ1VU(VsyS;)@ z38Pv@J&f*Sw1d$rjMC9R$+%p_sGLy;qi-_W!RQr6>F9Z+FIO-sVN}bghtYkEb}-6A zA0vG!XLJ{%pEG)$(Z%Rhq>DL>IvCx@Xdk0=^dZtkA){rC{)N#lMt@{9XM*nbUl_g4 zs1Uu1^!YAE&ojCTeTbCa&S(dtR~V(EUyyoNFe+hG%jhmf4>Ed-(G}~7@cBt0orgWEo4;7 z=q^SN0&NmuYzO+OKraIQOrV#6=vRIj+M6u>BhZ6_bD>|5VVnabeYq59vyff|Bz>6< z^h?2&0LgUR03<`J0s2oNy%k9Mw*pA|_jMrY-?xFJi~CvcXRO!HdanSm9YFg<48Fjg*y^-|!0-zrVx6_#WXP_4Z_Z^^v0^JAnqCmTWXcU{F z9b@hk&@RCR@n5!>aUj{&Q3*)27_I0wq4zSL?%e{t1N68+E|sq8{u_AiiSqJS0FsnN{R$21do+; zGILWHd03jwTn?jYEcG&%&!~u{Gnw-00L2FXpDDoc+rcbw4) zmcGl}X+~#QiiS_+WCkPpj_SQ4pC>Yx#b^>sX?;?b!W2dxmS!`T!)O{yz0Bn^Dq`tO z=KPF;ETykH%5cjVMOa$FTqUC=EUjj)j!`2^o0*F;im|kdxfP7MS-O(B)r{_DX&-ZI z7_DXLI_B0hx}T*RnA^x`6H7NUw}sJGmi9BZlhJOL?qzO((SDX5VD1p3L6*MC+!02{ zS$cxGcNv{#=^5rQEY#~CkgRo?%uQrO-^-HHNz6@VG=-%e=CT>(uyh)8^sO;jhw@ok z#N13qewGHA3o|NXX@t27MwKjG!dx|@I+ivv*UTu&(in4Hj8?F;o4J*YR-eu`&=FTwEu>K5nF}%sv$Tx42%`#?(l483OzGFm5>>Obj=4rg%`A;F7h}}LQgja5uV7r_{n!5y z$jbekr4I>|h5r--mv}QKQ6}zb&fpSn&XT1Nh&MDCD&hJKj6^Rn`YoeDMlUlu%;*(H zuL_jv+ft^_JU|a??J_`wi(fP*iNA5IvFZ>bklVH3+29u|B zu-KK-pHiDE`odAQ#h(^1eHP{)!Sq`g`X)177s1HiRvU>^B2E7a5+?5{bzX+D2TqMt zyaT4%!lWY;tjvXAXf|NDx*CiJE)C{78&d(sZ_#P6F(84^AI}K015jwS~9t(30?x+PabZ8}<+7N@G z_N&jrRN=1Q!q8gzpoRG=?li1=8UB0+jK{(}0LE`&9tKlwVIBk1ZDC#nv);m-0Ml<_ z(s4IvVa~@Ly(c!}lZ`tKD{lr<2qw$I%m(AJFxP|eT9{fe^cLChryWeUh4~5?dZTRU z{1cc#3-j+_=Xz5VCYS=!B8sceY3%w1Ve9~4Tj!_)4OMbnGA;BKpV_e zVCX%x!F(1By^S^)N+rFMHkf)a^k&*%y1>x;X@lt_e=N+8z|gyDLuWe}dSh)cPl2KL z)&_G3486TJm^Z=DJ8Xj)0z+@I4d#601ijBTn5kgst+v5X9&31iU@%L-cr46vFn$a3 zZ7|gq=BHq~EzEW>^yb^}c|Vvz3-c-%dJAsoybFfjg&Ry7@|fO;8_Xmy^j_Rxvcb^X zafA6B7XE5~E+|c)7YUj}=2>W63 zJpHweIb>tTQn83j53A6|G};*2BW88=h>dx}##};`LR@-SB{rtn#(c}hY_~D*+L+6! zN?O8NXk%#Cm{n)3jro<0Ic8(V(*q$cJzbwy6bXJaXW;=m7`5gOH zdURAW&MXg>gi?Ej1MX`(<^)U2+G=l2t!6&&ez?$ZI`K%MMa3bFP)r?K;j*eIed0c~ zhA9Vz^~ru-H@^91WVSeT-CQ_Eky-WBaqLFn*<2d?6Uimt1??`?VeY0_NT#@{wJElY z&UkJTr?Arz#o6|<&tF#66s*6kskXkPt+O>Y`aG(-(dVsgZtJKQVTcpyjd+&i%A@2> zj4kG-1LjR?#v$`2(l}_|NG1otnT+%1Wi*&E2f-v9>gU*-eB&T|zS`#cn)W)8C%2`n z=|-hOM&vH5kI|{5wRA)`#le@0kC-vjA{gkpR@?AG>Wt&thwg>&XtRf(vH6f1#@zDiI>YZIOm@k=}f$ndpWFI4y)~ds{S@l3xfpVc|ys1ktwU z~~HF;qm6xka&> zWswD?^DC&R3W>+z#!0kKWK0T~%%D_48ML#nUUIaw{*I>l_M`xd8=BkN>L_JRO)a7h zwRMUnt7|zu$+c9gOpLgv_Um>!ZAQuYo}@l6-8R-YEo+QPxtSr2qB``;qy%xK5Sg+t zR8nz^Szx8bLr?mmu@JFB`7B+!w2>|fk{U!O1!tL!jm-7=5RI}0b7n7?Ux8z+WaG|0 zMv}$F%{cX{sikIFeMB}*NC{$;vfuDwgk&1CAWI!QD9^1TKd3>gxvgIMjtnvyzalgP z=0K^ILY>+JK~v7i=!k~LpbY`am{R9!Z;RE$R2X^+%B$*HmQwf>jwoKyn&CzkrsyN` zXVs&j73cEN=t^?4aiB`$u$+o2&I)X;vnpB`U9Dh_I7s`}rq*Spl*_4mWE!51Fkm!~ zJCXK+a;x8}1cxoVQH*X)qsh{iWvNG0rtx&ujWZV3ci{Xa6$Me6g-CiBDH1vB!;Q#* zaIi!#TPnYNouAd&&_Iv0(LvH^q6NpUA=kvCVY-hLhq~sOM80T!{jEyZETcN$%Wa@S zwfKaGthOc^>ueXJ3}1dbPKT=Ls5f&IVezfjMfGAxR8-oEYB;N{D^g31Nx82If2Jqp zFEvY&r-W9R=R^p~I&rFRh{oEd^Y@$W!+iU=Iaf_87PP7vLy{lH_|Wdw+636-mWrI@ zt+@u<98%k2sh>%X?G-ag!BQhFlU8JzdA2GF%REqn)O1_5tgEXkTHoH$)>_lt6kA@^ zQQzoQM*@agWA*JN?M<D!%kx#Irea}I z=Uy&E;{c-xvuSd_r^i8c6Lv+t%R}+$9-4~72%Ec1C>pA=bF}$t=`HmrMCPI)Q~jlK zQKT;aFQVn=PRe3>DiL!QKuniAGO|v;b!!LamLq3Sft&))hW4(#F zq$ZAebGyi-sUc;~HvUriWwh6ZYEm0-2yBZc*UZTEn6Ht(Bc7LEP%QP0(>B&&LH%N} z!fF4aKkX-&hPN40)GLdr(DQtR(~#s!s`Y<2oraWj+C~^EQ|R@8>GC_AS4w(y(0hnp z6X2rdTcMY9+C~KYM(Eu_FAs1bS`u-C#5Jp6nvCZYhzn)K4tLHAoE4P* zBQh%}SCAF|jhLKqPexDZiI~Td94}cy3bu+-t7g7$ix53j3y&^{Ef9%*N`rrZLaP#Zr&~xn3 zzQ8WX@S`^I&d8mEgy)Ea=OE$Y6SY(pX|XVT-a|g`hU0U|XZU-r^tbZdB5{BIgkz8N zA);d>y%>?Ggh8-BG`^Pwf3}f7$i|yR8Bu8}f5zlXf6|V2$WJB*@ofV4+b<#t?z`4P z=AJH+(s3h|0aXD=ZeNO4mD`U!%-@?u{XDi2oN#osj^b^pPvY~{jqa(j zY!6i_uc%V^9NScUY{xzQ+{uXQ9b?@q>8FE~D2fp!w}+C8^52f~7jfQ06=9n@=OpZ` zb19?TIj0fsNq5cw%5*pKwDM{ETXMpk^VpHcJ{THu=R6;OjF|UGPV6Sd;wTSE{2Pe) zcK1Us;uA!VZF?otor7qO-+^x~Z5zy@ir^i80FemN_v3O9VN{4ld{78kxCcS+0lDpH z6Os(#LY1c%sysaye<^6I1W4Th7^=ajFw;=z(~wQi zY&)EZ55tW|kkiom^&^wU4&Up?G>an#AeJDbA&OUd}OLV`Q?hm5G zj(!=rCcZx<elAgAfFI(V+l4*Cjo8q* zly*hHOgTrJvUZGi5jLr3VZ-J*jcMB0?dqFPndwsZa;Xb-?J)hrbpqxNG%y*kyJ6>I zV+2)vKkVy3Qgh;mO*;ta+3kk?Dhws~Ab8pfO}m@@FtkHj)Bdr9{$u}OIToH;m|aMN&$? zCX#4sx{j(CwK1aa6Dd8Eh(ta{^BL7JYGOqDQl$$jO^JTTh(4$$xs8na8SQ0+45tl@ z*m(n|3S|P(%YS(yv6N=9l%8-YrP?N?RM#Z(ur!-FYJ{XzG{m?|7kj-WN3E_zR7<7L z)bU8p&nU=J03prbIA@5RLgXSto5)f<&KQScHMpLf;rd`m)0Uyu$gs#ZE{Y#rVz-je zk@x2RbV4>gdqPJDzJdSUC~}njXfQ{KK^7a#B=}Fyq-5+nk?2{SD*V^~{pEHd zQ5$Ey>^qT2hqp5bW%-I&x|2JRBDg`cldjLJoTP!U(@vyP$kpp+TIG@_BdH~c>BfqL zICPRHFHUO~`bxy;7Z&taS)*Nv@a1ADqAGlSNW9Ckt}!^q=p(OOIQeQ>n=$3wglme` z;j|uk@%#c6Jgs^(wufTpz z)n4d*!=`6HFX|BV)+X!C@L39&(t8|w_uBLdPlNiuC(Rf6HxqjMZF+?^y)x*%l&n|mvz6}>=pC`? zSr1gBaGRlb(xz8rOUDZ6ok`a7d2`JXB>(P)-dMDKbh%*UbL5?2_K@_}K`+au=kuB? z7U^w--pB2FmIKvDZ!7e&?RrJY@!Jc%={CJwTRILwugI=fXs!qp?s4eNvgzgJnky>l zoq=ANU2lfD;7D)cEKOTv)62IsFr+sHdewG4TfR(#-Ys^$qU3bUgkH?1S71v=8T7tl z*DFj;#}eqRw&~6AC5PJ#y?g9>Gt3PtrFRAN*4gw5y~*W!H}rmB*DFZYTL-;Oc0J1j zOyO>X-orM%qI@r8`bBzMp|{hnXK8pzZ!h$owCNT5lH+#>dI#)!w)%1$dWVzrlFupQ z??h_}zv*13GCJf-i${vWy^%<1!cS*K;jA#f{&{E!6Mp{=;~Xgc)8SAUACLGAZ|Mu- z=5FvFwVoO0 z3}xZ-+8t$yD@jizDc@N9AW1Up~>wct=tJ;jSe_V-;+5M=8@qKjiNpmp%7>@s0 znLPk17=J2^Z?s29&=_yd_Q*4Whzk=}Cp33MlPEt?)$*_)x-W_!9O}z)X&S!h-b}6o z@%M0QW&9vM{q6_X2)hV&9c(Xs^&NH&r^}l5E~?&W<9J>3|MmEDI#ZO-Us^8DnNXD^ z{xnr)^`w5B+AzKL7^NT%pOmK^(DSX%`P4ml?qQk;h7)`c1RYJP>TW4cDvfV@c&4Z( z( z1;!5~zL@F$$rtJ5(QsgVzx2i2-^Fpx0v6{Z5g{__mwf*H;Y0xi9LB?u7#r>lM{w|G zEc1xq5@QqPnenIN&-c9SzVj&>`u4mx&b{&;(ock|>12s4T{FDPUrmmJiEv{Gf(g6) zjdYKuB!SL2;jb?1rGr!6+lBum2m^@m0Uo6MMES%p9u5y@=_m?oXdks1etFQSUrWrL zj9||V_k0;=u8yT>9Q#_&;nVTw?|f~7fM_^;#7 z&5Qp!oVX09msZEiD}(WpCFbN_hQnN|p{e!!&fW9DxY*_4LfBCTDr4p4s; z_!4RYmB+kQZ^m8-t$H=KKNzoVEZz2MT3P&MnS1e)>TqJ*y!c>Q{0+)jm8X{-`;kL^ z(91KLRGzB6Kw3nB_PmdN^NBJ_#MpSGE9UQce@yJNJ@2Q*K1CgEZzLK{+}Vc|gvI&3 zsIgTPQ=@(aixNRn)E|Ka3a$2wQ%D6A`h?g&=TW6ordS0DvK>xyeF|zwDc$O%5GiuZa61&zi8^e zk{-NkPoTK}D`|ngz*O`~=#JUHhwuERip3RNtwBWJlY|=Mi@xS;wKT_Q^4CeJUy;ER9un##oNf;z)8I8hU#`!9Td?x zT7)-e4Sl4tQ;6U#de};P5_ald2Hkj%M)?8Hm*_#?EtBOsnl1dJ_S;_;e>}dA&WN5# zXR64vS4{0h{2-mEg5#i|APz7RRY(pd{5Odi1NW!opEr!BC%#X_GJrRgvH=(8tcBwT z%|5_KdK>S(iO-oiYxmh!_cR_-0rH_^TaeNr1S?O6fqu~rKG#^j$3}%-k6fO&>Tx{H zXem9E8QI}pyfy~Nfp`NI0*=lG+$5nFa0?*Lkjn?`m#_eEw}dkQ2P7;6q!Nd25#XSN z#ekGaV6O$F>IV2(Joq@0Zf0PM2Lz7tQ_-do`bjh+7z?GL3qvyKops=bz#>x{+lX;k z5CbvtRzyD#e?Am{tStT%wYn4ngr`YJ$7-J(>hr=cgiY}buNn%*S5Vqx+1bI>&Dr_E z)pgkgexMmD7bp!X7X~Ht#x4l=&YvP98;-v}Tx4ZK9k@AAW#m8i4rrTQBF2boAdc4i zQF9bU-0Dyo&Dq(b4Y68IW$g7+@Bh$a2hoefBQryoU0oRHIh__;fPD4bWIKoH>_;}L zy{3sWdV$hJcOPXjd2VU{^>fAJF3JEreM zWCgP$4|~XeOx3Wv=jThZmj)BD?23k<`zLg|9v_}p z=pPLc!mu$+FUt;M5-JC9I1U}Xh_XF{ktiZ0&B#HvO1)NL}_7r7% zlua)*HGO1LhPseLahKAeivx-4Cj~G-2qii*1MZ*CJ8#u9sH;Ix8J*egpFi#X$w1Hc z%X$tE_Rbo&>KS)7 zQvZV9>WcC^y6aEqN4UNA^&eeM9f5w%7t((0`=;@brFHT1Fc$MUHIj|eNOsH-%7{cs zX3yy{NWAy<`D&jE?^40|2nz&|@p1{;IPa*Y3&sdk4D?1qQ zP|jf3vrVtRXlwP#N?}oPQGUS|3#_KFb5l-LhMuE*6%T|y3^qj~TpL*-W~fI!qK6ra zv*Rc-iAZLmYhv##H>z3b_HCy#ddsvl_fMV**FG*XN<3I&d)~$jT|_>dm=$)frjH9J zzL4pA69pRhWhVSV`QcIjMh^tx+Gpq09tp*_qZ{qZD0TftwJ(9h7taLZ$9r2`2y4xD z%pAV5#P_CAzM(|^RQMNK^@o6aO~31zaL=O|*e8P-O}OVzQ!wM{{7qQ5KiKQZ@>ifrpyfm8irABQv4g}@eiOi# zLgB`bKtMw-j2-&2peWtD#fqdH?}(mLKd=uCW<+)DV*V}1L<7fGi-%vH>c=J6(3jMo zR?;XV{zM@DEJj74_)|lDyAc&s7?H?pj)_EWpx99&7a%%%BC(*|I8)`33Prei;vH+o zOfrd+4qbPuUFzV+5JGF_zW{i7=H4 z`G_8^XjOmbH9d%>5K)gd)F+~7%KJ*0_o}m^^?e?e_Q989{p9MI0F4vUkA|pKR0VYO zPk3~p5Ai_!(W5^T9T}=*Qi*YW^ozk@%KBJw!kq1$7$;FhL$)T@#hhX5B4Q~kq3FPe z`if))grngqAgzX=8^ELm0g5_0aBR(}>R))+`uCF~B2irb{HD6Z_0Pk3ChFhZx6K*h zUWL6?TxUmL|5p8ud{Ompqwqp>df~)y^)F|b`X?(MYMiJ>loIDkmxD_8nGq^o*iz|| zs~p~x7*%eexynrtH?qQQOHtvH*Q@mRGb6Nz``@%?`(LI#td!Le?dfpU@h{dMUM6Zq zH`m9}w1>YuZq1kv*B<`<6;pkr1)INIdsv;aYW}Zk538v?^rvhOgR<*dO<6@<*SC|J z0Srtc+&_nhZ4=Qy_Y2pS{@Dw93utuJIe^q<=)HEAtflaExLT@D$MqId{20Qi(WEDm z=O;=1H?41^?!Vhatug9r4I-v@4BUPq56%7eId53&D~-%_H=}PqLob`^>#s%bjiUXe zL(_-pzX#!ux&Njj5GydU2&ik8YgOpgyHnQU@F*HstR$HhXNGNHedY%CsAyDW1G_#& z18aRh!~OdR^*JWHLaxvEi#$!y#}8kh#mmKh;XYl}T-oRAZy{e08me+*94cQuVz7Ev z^;)g3>%$%T%|oi%{bB3(KMjhy%I$HRsjjA~-=BWnTEFSXe`jC6>t8a}?-xW~e#H7M z@_Z0Jp-8AEb48b>BE+h)doYU7%Y@F|aUMueJ@<_;kg(QsF@H!Jzdm9fOwhE8o2%cT zejDT0ds5VP^?nGiwXt@LmMR>l>6Ep}S^Ju~NIL)CTpX5m8pF_G=23V|#q3EA)ad{r zOr79lxJFovq%i7MgVujdRYQ&T*Sxyym#uH9m_1piPVfFkq=~C$&{WO1Y9QFBbqWmKL){jfVeUj@ z*U8qo6Xffq98)HGNr=VBp?l~QCg&PQL)Ve!OKPe>^Ce6d{CM;n=1T*ZFCkV(Bj);+ zi5sK7{VGL$Gp+qsCN_(1IoyjMxY0lXbKIRFyqb)^cLd22LHAxbSM*eVEZZTwz9(qa zs$waPCaV#lOtbJY^um>9@mMnRkPmXPg+64iiBWwwK(P2tdgu3Mp!nUdqzCSL7cP1p zbA@{6x$qjn6N(S28Gt^u9}~k%bmW1kwUI78aG>MK*MPIr#xR%PgQw5-SqxjEGk0RDDMmZme z{g$33RjhYW0VPd{&oWJDmDdYjEQ3I?NTW|mMv*+KzbbvJMo8ZXN9a!;hZ+k31+EMLw9<=Z-E- znHQG*JF5SzR4Z+c{padKT-Q7Q@gvrAJiGQzbhsy1G*YJbgL?h$b*kTebf}0nYBOQ1 zHX(PccT9CgG(D2mKPq?QGPH5I>E5(zS5)X{xQySmQrI{+DD!ZJH@!M7>WVnrC&zD0 znl>ia<#mls*T&9LzkyBGp?eCqU4=Vw9QK}PddF3djgE4N4mt za=A;e&V7$-%nw}JW*2Su67kN>(sFlaYE!q2)2`SsR=X6x$GsT8$2}jv$DN4ZlYgJ~xa7Ul8JOnI!Qm*PQg z4m-FxFH<|OeS&v_(UNuavfj z>E9(3<~>H3O81gWp*!!UJudCXr1h994e)@-5xAka+-r}Ea_hMa+u*+Ddc?IZ9p5;B z>!WENz;CAG{pEkq2_YiPcIPllBUq4MM*%(LN(0<&4)d!ch54WhC)jMIFb}1909R6& z|H@(hPo&dSo|e4*``@~>ZIrkJt~9_m&FOTg8`iwt?|L9z`wgY@PiY>&f2VYA<#eVB zbNQPt?Qsg|cdj(R|30fQ54pCcYp+q5@pKR1gB0c-5hguLU$s3;mt2B66q^4Nm-cN6 z=*O-!z+dTMI@DV|jUPw-xzqKa>+W>z=M>%xX&%5H3h%ojJbI?@wLa5&-hK*UmbV~r zI~>wEOkJOSJu2Jx$W2nc8^+BSs_{_#C%H*_K9ZheJ#O?&ec`s3Roo7`(g5Gq^J6$S zUqO1Fa7Yj3`@PQjKC2w*S!+)Z#f925y0TzC0h0maf%z;D46 zZ@^4~>4Vt}Ga05I=6M*}5-|w#M;H$b1>}dx1|<6im>l40*q5U)>G#yM$LI4fC~|RL z)y=?u(t%CqZlO6Ar(e^r?8CsDVDEw{10I0=It<0}1nhBm%UA)N1^X(PN?{qd z0Q+^A`$-4(IMj>{z*(@bg4qb{h1~|T2{;P-XE0lU`(Zx`vlDm#_De9kfd^r~2D2CV z1nf_bgB;ikdp68|U^*WtkSR|MkHG#t%&Xw(XYd!noCfs3J_vILco6p6Fxe;vIz{L$ z9OpoL*iXRDn~1yx_QURisQ{)kLbkvx0q%$WI!qnu!=_Vqnt{n)b{^aS(}_9zU}%6b z2)h9rJk}Er`^zx2PSOo~41O?<&Pbf|LMO!U1opx{0doMD>?bcm{Y2Rg!0w)m->w0Z zJ^vDfMP(2BosYvGVD0aaZ!mPK>mcmDOObArC)quy=+%T_FZ5{I8sKW!HJ?Nt0!Lx{ zuR#4r*^-@}jrs^^00QuctdPbiz}F9+fR!RJX*1x3+}l|7(rsWtNdk-qOTvJZdL_*)MA@67=;(b`s+42>R4iAoriGrAGzS1=jc zE%^V4Kt1>`U3`-f{XjtK{Ra?j{Lj#K;D5hBd+=XMUjf=CxHp&^hc;LGcOH<`qwjHS z7kVW?w%Pw9Xs_T7GIt7y-eYEH z?=yEnI>riu`#6yFFAwM`!ClMTjf`r5288r>pr-};CeSkieV6r~V)O#gJ|R8D=zW%6 zfL5MHV;S1Vfn*GxVDv1|vqDO1pHliQpyvelAP|k9Gc;PjmePGd2LyMJxl=&&h6^cY z?gF&d2L<WG0H=4 zFS#2TwF1%TKSNs!bXuSzK))5}9UvK(4}fG$Gci_>aj625{@n#6-988Oo^X2{=zW3G z$Lo5ZX4D6CMo8}i`jbEp0(~IRuYrCq(6d0a2`NK+1xSXrc>*RXsM8tRZbl~tnC#* zvc~QO8YAk)D~yf-$+~+U#;;?A^co2}h^x{IrTq%UFS zZUBMkl6Edi2lHv>r*yMUxG zN0|E~ko4u#m+N}Z0m-=JU7@4T0!jaF1d_ho4kUg48j$qmc_8Wb4~#wll5Q7d>n@f8 zNnd)Hy9Y@6@)&dBD|P?wWAtMn>EH7}nJ#)#eh(z$lJP0M2a5rX7t;F~Z3L2TUjmYD zPXkG}eBb{}^u4wIhrsVXP;)2qSzjRdG8R(bqMl zUQxP^qKq~&dXKqBW;YXm(Qq?(K<#nZKHY$w3)dmqZmuOm|MZ9o24t6Tg~Whmi95XhS6G0agr80}~20p<=d8f59K%pGBLoTVq2dzaB^mY!jbo+efQfG92aVlZ>` zlu2n8OX<6#lAFwE3QIlAWi!fQ=``lNjPhAp#N13qewGHA3o|NXX@ogikCySPWGSsn zORkzx9ZMUTYi1N>X^gopMk`p_&D=^xt66$CbA61~uyieR>lm$P>HW-YV6>5?o0!|o zXbVfXGWUPk`xfx1s&nl<5HVnMqEf|EFH;*eSj0>SkW@U(kcmtr$dn+WQj?HONHipA zGLfKIgOg}>hiGhV<@DH7T5U^PTWM<*t+oLy1nVW@4KHn@^=N{qNUb7r%>RCCt^Mu2 zXYZMWUjEDT{Oifie)qe+b-(Pj*R1ueK1PqRZ9j8QFdAUn=a}2W=vB5IWbO?{Lu|W` zx&4ejVB3St9cHAVFP62A=I~`1WirZQ+id2jmsjs($fVmK(Fx!?fM{gYIb_v@qV{SR4O17T>y@R<8jP7FFjm+J{XcODs%iLy0_p|L5<{n|x$F`3#*U#t)wjE&ZIYxWf z_EqKv8NI=_L(J`Cw4ZH1VD2EJ!)%N0PL*2*BPdN*`JBaEHlxXGJB7JZ8Tr^Yhq+uv z)7UnTxdKKs8jE~7j~ zg^U7>!i*w}mNBYiRL7{9Q9Gj!M%|2h8Es&+k!FU;EGdiBp35-r;G?~$77|{s{_=7o_(G*6fF#0z}pJj9^qth6j z&gcwAK1QEobS9(EGstN>*8+gzQ2be*wIY;gUVG-8draY42=*?SK4t9hxt6NRJkz~GBge} zUCmdn&P?N~Ny&UJjm$S8(`)njQRT{)#?_mU*=%z)3BLr9IRjU!RQMsY-{$HvFtl>U zOxHT)4<^4;`tuXW(7GDa)h^`i*@Gh)$@IAo46Rr) znL#jvHs&Ch{Wj*a_{EOat(mS$!O#jelW7M-hHk0i^8<2)H>m0ADH6x~$z%?Lp*3$N zGZjgs)oUhm2^d*%D{>yaru5v}imMRrFC>B~RX1WT4 z>9aAdU})u-Df2@xw5H5to&!Ux%}nMn7+T+FGCousS_x`0g;bSbkbJ~&8G7N1#WVdw zS0T(&hpR>~w2IX9=X=T@>IhP$^l2qS9b77zPn8UH<*8)Op(X-DO*)m#QpnKSM>B?9 z$`!q6Q@MIb$sns!%Df2~T1{#CoP~x?>m5zzd@!`q(PWl^p|y@Cvl>sd%F$%*0z>O) zP3BQBw9?UJ-T*^u9!+K<{Gip2CQ|^W(r0DL!O$vOQ)V?7TI*;s8^O>jN0WIP46WNV znS)?xg{H}zh7Oh1WSUF}46VX6nI>YUTA6Qvp_P@U%r-D&&m zpQ^Oe(AMpwE)t(euSA$xxMa?pt(XF4<|$?-Gj)oY!OVKaIggoDikZgDor*!xDOV3DhQ`m*pBEH^N~M^?ilH&BlsT0KBQU6( zikYJrRA9wK6@yBym|GQthM<`H6oba1m}eAoCNl>VgC?eAj;8?>j1QNL&kV)T2u(8O zilLii+7v_HN#=INQ1T@6GsRGLOXexXP!*BPyNW?`Rm=$#EDY5yDO0Ez>hdHLRSb2( zl1V5Aott9rQw-H~Df5zIsLe`dL^1TPl#I^@2t)5d$t?2GvwZJJrq(A2jou)V=}`>5 zFC_D8#n9V9GA}B|>T9n7$U`PjisIulV-M#kqf8&h#bO+(~bL&Au2G0PatDjNe=Rd!buS2R|w zF}%^p)vD;K>Sm@4e{Qn*Lk{k=G4N+KI}-ko%qE)*F%LSJ9S-JCHm16%l^iNV@oBAZ zG#+smOsu6L%A^tJ!#01&$s}sl!Wc5AI+*DWhTfcZSBsg^RBfR(Hij7|z&9PteGcYn z2lK9jIgUCfWu(tD9n2*TroqA7>R^82VEP@*I}YX;>OO7pImf}wbuh~uOoM~za4_F? zFu!y#PdJ#rIGDo@<|KM8*iv!6gNZnpuQ(Xp!FS(b2?blt&v7*D*>LAR6Vdrs``Jt+;yh6z2OOz9iZn zD`}5K8)K2C`o`Fd{NN~2DkK+++G3;0`Sane%)&^taTHJevk;Zyww4yeV@z@P=fQ!L z96cg3569-Oswo#WHO7pJGI{_==|v4qO*I$QH#Cfv(!5Ah!*}K|qlnHX$(2o` zPHm`wp5Q2siMVAZH+aHN3UJ8OBx#Ln_EWf56YOGgnbL_HINqsaMZl8-0}ssjs~YDP)Fx(Ak`}K_QxE-lD=W%lHSHHQwX7N?g8o^u zPbhC{sIL+I@n{aHr5B?rrHz5?=4VL1sY;DSTJ{TL^qUIcvZj`Xnk6k&jjgq#rt;Vll3-5R5{rM}SG3vsqn;M#0Ad~8CZjFnJ|Ni_|t3RvU;vm9` zA=yS)sr)fzR;7&3-<#KNVdfzZR$P-VR(VLBA(1*xvT$ux#U;2R5!x#1s8VOQ@XA^} z-8>SJ5+2p3%qQs)>YGu|Q+U+WQopjkv7~+!pZso((Zx$Yt)YfMi61n-) z+{XTl(n(ndVJVO!|@>>zI#6kS<~QXHX&0XQ3R6jvlIY;OgdKo~Zcs=p~}a z(NU6M4wl`#@{?ClHJlbPbCZ%OpwT%cgTjPKpL5p1yo;AJ(8mdXYHHH^GedkgxcD%e zV&07J4vNdDzK9PL7hejgwu{OTSx^|OS{YeXddZSel4kiTa`DkGvXs1~@2j!IMERo9vabyn7u zQGH4|-R9!2KaV_CwTygrktwW!eku|}3$BjLMiX9KQoQ79H_@aPFOrQ8dButqb!3jr z$ylXR%2D~t5ut01Dz*&WFlX#G@9UBq#VI~53qzrKOPVk@TN05qZB@jd7mftWN|r1s z8SBTuSf^i)Xl|FjtHwBI3`yIxu1oqw5t}V5vY^Opi0M0nf5P1OSmNVa%ZidlTy7o} zh;DOq!CBSjV9U)P+5M&$nmy_$OMd!|CRWsvJPvba}Uj;gbtSb~Arq3G{s%w%}ON^+>azRQy)?_8y9vp|kef`H`B! zE+T&$bBns=OVZu3`BCU@Z~wqcAw$2GT0YxSNTvF9(knAEIR<^fSG)G%nn;Nn1AhxEWHCmUaRaDfkYOWv!w@dH=5me9khQqhi znnvT92B^i#Zhk}4imHZSLqiijMucn0ERI^a#i(&rtCoGP(Hnp`> zgQC&BKd+*qy1l(>Mg6sY|7_rfs@B$u*qY{OMSWu}e(&WW%B|fpn4iE^raScX6OS%w)yM(QV);{f-n z#CfI$3-V=(^(kU0i`~{*ukAL@mXTzy-sRlDlB^xg!ET?Xm8-QrBKDTv!tOrhG=@yH zOQ)6O-q!Uc*(G(JNw)6&aFS3`m!4$nKIx}zHZVp$8^>oQv>hFN z6Tok`pVu0W@5{xhk0ZU6DEMSy4JX;#vW9Hc+O&_V9FgC;X&`<#^bkp7jG|39(vSe}C)V@y`sG^@Kg~*FEvq zJVAXAl2WK2h`;ICx_2BMY^ayz)FNw4p%ge zmH+Is?+Ct<$01v z!5frJrp&*~mQoHz!U@_sqsdf;md{>g+*7_`pFPBd5d?DEj{eY?yNm-kF!`!g9Vc=SSF?p*Wi|ZH`j=8cTi{)r&f) zl;!z%hX0SopWQo?KT7K5dDfKvfOjf-JnvLAF>mhsC>w9?AzQh4b6-TMcypg}$xd%B zxy_{`Y2%Lt9QiYr{QXzfxBt`Oi}FcZ-^Brw){M1f2dX^1vH85_WdB0+qOuiMC;?`y zEvZ+&PXdWYayroaal4#D{-UR~yk*GWLh^SGwa~SAMW$$7bR;sGiL77$YXARV%MbIs zUu5}4WO?G=oK3ie68Ff%o$1X$J!2V_K-f_NVJd+#lt4(Y!5gt5Cs#i}g<-8gW`CuQ zAx3E!?>AW<&D7!})Z!~ek>j-3`*XHXY#tG@!1E(HeH5+HVuEwq(e&{@hH99mUQjm? zp>CoQ-9)pjA=Ll=-xeRPPw3B6zo1gSS&TQ7v%UUb>fitF_F0Bnjlrd*UnxVs;u~{+ zWi6jF8v9W*$+3Az9aT;lnh7c-9Zqd+8jikI_($V0=leUYTMWv?dGG&1_b;WaWokr7 z?I%t6qq^^f!RLnN!8cUKJau0oza7OHymU_Ru}5pidd}6XC(Q~sN8^0pudDNclg`~_ zx5nAK6D(&9TX8D;73y5#vB(-{7+Yn%6ErVWu};F5DW4~teCF|3!ZzYTX*JG5wqgp? zO(yBQQ_u04IOli*&N)6xJ9@XuGdIraUn-m`{A78zd?6VZ9#uf-L!!G6S23;(ToGJ1 z;39ns9k_18H5peguKRIex<>26^&3A*o^pQ@w({|yi0Up48A|lWXOj^xCxYm+9?mDhclE?j7Toji<+&_!Yy}N*Y zxR>LicWNc>|A}ie@J8HU!Sx8q<9-U}Li$M__f}lb0e9ejKdv```*8ml*FIoUW>bLc zAYcIZHMlgSuLJkTaFH(30o+f^M4kZqaK8>0>Fn&l{bgKvz=OD-HxcKw0_WlWHC$m} zI(aE`k~}9g8~3|#)qvlK`!uM(XeW8x+iN3z8u$cz?Hb)g=-LaBkr%@+6O#{`)4uVdJs69(r+;?8@MgD$>(lf z)>usD2mFN4Aq%*hU$^kP+cNJ^@t4BAu?2d$PB8x4|T$7DwCcKyNxM$ z!+tQyp6VAFs#|2JUI{~W2qvKJ@(FV4nd%c6s!LWw^=T}I>RLKO^)H>FI_YMpep(IH zQ8z>N)oQ5Dx*4j!WT@_vp?XV(>MR+muVkpMrZZH3$xz*OGkuEeL!Gu7>Ziz1A4SF| z{-d6#`;p%MUq8o_nhW*E8Co8rs~N?CzAS7vFuEJ4S#W#t{~Ccl!v7Y5=p-VEvVo+} zbgm-(7?Ytb1G-9}C{Tq!O+b|b-2@a9=-WVT0&NG9zPt=nCAdML27%rJ!T<(7(+P{! z0{soBMj#K$Sh~FcC@Q!Tpjv^h0ICwG3TTx;H!w$M0?07_6KI97{XUQkgS7t3FouAn z&j)~{&z}IvaJ}P=FirxJVH5$a7XAf*WbR(ca&*F?47VPrUC1@FEuFe3efclu?g5f6 zaHzeuM!5Jj+dcv$UHpl;H-MyzcY&@GF8;>0hk>Mv&!VrCIrKRo>0&C-^}DbF zb;89?wtWgnx_Fnl4}heLPl0X{E{?)`L#87ONV>Ryxgd~qu?Q$GTr6eVF9S&zbV8-{ z<#r(H;y-{og^P`By9r3Tp!3wFi|2r(3p!W5OSt%Nw%rFLT^xfqmvnJFkaTeh(9Oby zk8N{-q>D?KTLL6qTm^KCa1mwO1|aF;8_fL&kaV#Ls9U(Wk8K|Wk}l{3O&P0qfuxIZ zct`5O#Y7-!n++sg1em)BNW}{1Ycf`B+W;h8Y-H|-K+?r;ffB;S@7eYVAnD>DbDsi9 z7j%}_dg0;}AQ>ytd@5Z;m|F@YT{Hsq2p4T^yB0{g*v4ExkaRH&bgOW&pKU(^k}k^d zPM6^>29hqW1)}kPhIRwnb^=KkuQK;KkaRHtZ+05BWoX9&N&iS&w{#I=?qVS6;tHVK zg^Mb-tpk!S?qKfQK+?refW9tV{DN(_07(~bFh?4DHFH@g7ivkjpq$)4nCpF+kGx zL?G$neCB2XNf!a2JB5q+Y`X|(mEf9~YXg!lI)Lb{ouS>rwzmPT65M^v{TfKR=mYu> zVY`!Up8{GXxc8X*8<2ECI=H_rY>x(#={OEZx=6rAjubWneMQLq!J}!U><(QwOa#|> zfh9tt(3T1=i*2(RO=jCE%$>@}$F@1l)E!KxjPtbVB5Qx+sNo1 zw%x?sy^J=q?fuMcVe|;w_A&Puqkgu1g1G@k&#~<5+1+XNE{_3L`rAL)!Y7%VCtuw$qr)V?<|YNVkQ| z(OiKHBfz#H=4kdn+Lp0xgt;Y*Xq+v5Ud~)4qZ+oYW3GWwGuy_PYiG2UZ9ACjWYo>J z>zV6ibO+mRVD2tP8`<_A<~A|9mu)vQcR!;oZ2JgveT*Js+kWPrU^KwC&oQ@$(W`7b z$lM!@hS+u=bNd;6z_tgOJIqMKSAr}fT5~2#HIq>m+h#L2nGv13Bi*6`YmK<%IZ<^2 z5!b|Ay+GOczmmDDnWJ#!DN+*o@GMa-(0>ZsJp8AA!Xsw)z9Uco|D{|Q=)VL<&yril zsFD%IP1-gyYG>2|^j%yYF{YDpy?EXzxDELKJ%Q+1+HL~+zTh_F|J?#@!GG$#JX#q84WSo&*&h~4{@Q;RJkFa8D%q?0`wyx=VLAxh~nrGbAdk=s1V#w z1PTECRG=`shyYPP>k;3{KNF}D+|LE7W4UIa`vlhxM5*^^9YDVjsGH?_fqp5t4M4vV zXd~Nh0-_$=BjyifUTp#QYr*vaJs?m&yBGj^P;h&g8w8?U_lQ$x9};Lk+a6>@wOxi` z)Nzky)NIs0w)Fu$EPTlY`i($&K=fWg{bRWRqcG5;!Zrf*TY*R)z6`CBQ5~aZM(vC` z7H(v*KQWPGp}{@{-K2u9|Wp-J}{FdeWlWrmf{80^F6UOasXNE%ER2y-+* z2axIN3^2VmW;U2U8*{mGJ{fGPINzXTPDms310{ncxhehGNueX}%oq-Xp;~P+-VAsE zb3Cq8@tLJ$ylG@ES2EdYWD-gS1Ll-r{X)rPrIC3~$zWKX(w{?+p?Yto^z%o_UuR6_ z0tZ9Ctk4X+DRV6tnsYaqZ-b#(cawPp49&lr%&X*&jX6yI*qGBMU^dsrTm;4kIn$r3 z!BpB9n$6f~WBSP-8$)vyK3t|hCt^;Z!^Zf*^x2q2U^HB&t84KTurc4kQ-_Ut6i+ml zZ@T&uo_v{B<}jEJ8NOeE-jEl?$C4;Pl47GaG7%~qi8DvUIndg)YA_|!)^q)N<3&jcwbb;xJ?(nF7U7|16m=DTaDu$+RejNh@shCYkdUg9@XVOB6%3Mas~;4H>E%l3A-5stJ<$hGMAPCG!)-fKbeK2lFQf z^Ra_DgQBL4^f}Co4?a8f{bL7bOLbj~azip?sNG0oFkiDV(C*(FjU~(cz$QbsyBy4G z4km-LTo@y)TnBTpgSpzle9gi9)WJOGU=BK%bEulw;RwA9L(1ojB$1udPP;HFF0flJD9Vn(b(cs;$Z3=%-0=EpM!bF!O%%d_OJ>Z zOofA4=U{%|U|w`EncPVmxiQVbL>x@a!FqN7ZXR z3)|f1HKaM-!MbBE1l?%UrWkq%C{7@!$PDRSbDS>gFhcN_W1CSRo3Sb#lAe+jMQa2v}5TyV$xay>^pJ)@AJ`GrE#$ zs?+XDs$KlE>YjG7PF5`KB9cODw2NdKZP0GgDb+l?2q)`qb`wd~N9!U}STi2Ht6)|m-#+B)95l4u_7qRGSGBx~EN zHOWqd!sBaamW$#7?N*9TS`?7e6G=-IW6>BC7q&G-q3SDoN!6;Tp_#0tF&1qpZmEye zS64NZL&;rzQ=_3_ELwGK)L}J7O=C&=$nv3^thGLkN-{N2M7r%q-V_?cX@7nx28zZL zDV(l`*5wr#xC&))rK_q|M(4HF)<#>Lny^hzW)#!lj(u^C?+^jkQ409cMk6F*H1<^Q zPLfGK8i7RG(Fob68;vOY)T0q23dRtFPjgA`ib!y@(TI>4`)I@vALD4mDxNM!$1oa! zS7}BgWQ$a&gG$^o!sP@KSFzDYBM2+)XoT$3jz%DmW;6oZF^xt@ZnV(|$&5Z4F+&`K z65({C5qLD(Xapi-9F1_?U3C$=mED*}Bk+2((Flo*HX5O{jBzwV-qDD_RFLnQ01`>B z>Yh8Ov5iI$E}!z{IvR0{M)DD4t}?36NY|>3VUUz@?W*wxHV^W0moQ?ZqHn6TbWC}O z#M=6@f6-wLkp-?Q+(p@#J>w`xI#9YuI9=|H{Y0p-91t-k74u_NVLnz}^!_70m10!w z^OW?2bOPr0mpt0U)mx_=X1?U0)Uic3splQb$ssgMIO5}TEMFZQ=j5*q6*>F&3rkzR zj+jgRRm37mA6+J&G%L#%<_8>8)-OUPlfEt|o$t>t^jQpRxh!zkayes0QIQm{gqBNM zTYx=ESeTF}kW8+;k$Xs;R>TInF6R*z+*m4u=T)n174 zaVlixpv1o`tiK;N6!_tu+X0uj`zUvUv~*Xjob51TyaQSQ0?@RU}%5i<0 zUYu=6Z4K+inew3wiucMwiQ??AzDX_6WXN1$-*K&d_iory-oDEeI=#;*475|$R5-zQUPQx(>Sp~6x6Y9?-o z5*AJvNitFbO)C{&-cAdrHP&ik#iUW=`$}6$=22Sayo|i@mE)Q{5%Nyc&XhON-sL`L ztm6UKii;Ksb>P~Bixz!s#?^{|=x5{(+~=Zba)6BfbGy?QFTp8MDkQT~^4DBqS&kK|fL}|;=B0y&e zbOq4a0#yT@BhXzyK7oD)lq=A0fu;(y2k2aZ-Uj-DK%W4~FfvvCWoWcdVw$l1Jka?9 zod+aCy8_SC1&4ofoiE~LAZnbn&|thMFIq4&UX+$ZwA4e|QmIMqR7O6wrL;<0N`pic zBk7h(Msm~-OGG&?ZRao-U=(6o0PQ?na=*vvjLr~<>IV5IcXUYPzQVi>Qg*XmJ$f`> z$`$5RcgavLjraKIKQ3tu^tgH!{s{ag{!^MwhE}jw+L+TF%oo9Q*kq{2Y_>5sk_;}> z=O5vT481tUdniXuW5jTmlA-m1ZtF{(Yd)!MS{7x%-M?;0#Hvf2wqZ!1rDzp!;ruPcpVWPu62@;S zsU?iHHYp_NcM-YX!}^A>FZr-LO|iVfE@W9^VYjd^vq-YDEw!-Q*(bM?>})6h+3jW) z(?Q+VlRE77g=I}uHT2^GouOz>t)vku&*uZgEx%~k9k~4{l|q6F0RE&ZrZhoVemF_? z+j>5WG)9l*_1EEy6U(74)+1eH#h~>{N(6@-iY&9axU>-m!x$3c z*NSjeV@(5lYy6NSStI<5aK?&p8jQhFi5Q#;g5uXyn?(K{C&}O&Y^FR)z$XoVgUxjR z2J_DKlipgB(( z@LB8)*g|a<6^!tYP9(^;e}j?SsXmf0jrdlxE4D{oVYEg6EJn!9DzY$?r${gUWzrB1hB{gy zS43kU(*yt;d>E}MIU1YEZ@>K6fNXp~_tHO$L3!XC(RqTv6F!Wqm46<{i*Wt3ZT?Yu zUxnPVWVw95En`S-ALLdz_b`{a`um1lFRxWv?3(S&2Vb`KNWHv4!Htb z29kf%Aon$goIRsSZVu$`NR}&@;mDUV$o*H6T=25s(%_{^zwNqxH2jVijo=&B+xZog zZT$L-5pO3cEb{ktT%W0hd+yKKh#()DgnwcEqrZlKy0cR-5fHIs@Nf?RRmYC&CuyX~n0~;gV$UNv`-S69p+Z-F(mhOSeCXS_Qz*1Gz8*Vs`bktOihqde5ER-& zW`NipF`W_C4;cpvkj)^;i0*>a=j+gjz24>{6lL!uxjvTbxPBt$367$nR2ZMmmGp65 zi3cqa$%JD4Q$EBuJN#OQ@$Wco-40Sf2%Y345Kimh6bgMqIS~+fiQn?yl9qJ5$*fE$RNE}O5Vg!2XMUoz-ObYib&uI?pe-04&%Gopg7f!1 z1aFbq=i$GGf*pBY`CBHx?)9DOB!)66A~f5_*XFdJ5SuIW$iEvY^m)h^{iTr?y866b zhlQ6SDji#BYn~Rn@F9|rfePnsTf>PvL@9-Pj)fIR2q!C0g_I{N1iu`-Dp;|7;;xj4?dvA&N@X)6tBgUK%WrU200fu+M8fvyXDW#goi{QwM!@m-aM1$K& z`P1R;(hrY}>@22Q-!XgxusB%)Cx3{BFhs7^@e4b(-6(WX;kOFDmrq8Jnr2}|(?_=R z5jyVPfIR36?~GHOAXB?eP;>W#qx>NwCalJTpo&5UUhRmBg7ojE221KQRe^UtW;(?K(@WmYC*UQYi*b_7zmDH@Q}E%PB4Xao zUkMpe*=b7ZR4LWf*LFg3R^5PI_Lk>tsveg+)u~$v5$@05U>|OG9u7o>8VzX%y8ve%*P4M1wH$sXZI?5Z5(<|iAIB(Zi05Hd=+M!WW z-p=3R%U1Rm52MzajXnMt^l)R|Zr!0taJhOWg23GyClz|@4$)+Tx9hub@S&(*8Qw09 zUMQFyRqjN55l=Lj*fKc4-P@G~$1)23zPF#N?TsJu#(eQZ+1@VF^oNqqgpWhl{?EvW z#V7x6!->Un*44+ zuiCA{6XLJWjlVWmA1Hj>+gSur?*jv+`m^Dl$&2A=@-wwml-^rrz!9M4@y4mz)y5Bv zkDchfX&RCj-+L4uA#(;E9;OTmb?)|d9*-yQ1JCFKp{aY~gLC5t=XyIYq_X*xsz&VJ zyf?oHkJf#fK_%5G@ln8SM?Fdc2)u)08sCb;d**I^Z9?r?bN5f|uMO&g4)8dQ_Dr4|j1L|TP3)UE&>fsK z{0rnZ%6GiC>tqDymdlywT2RvJl_ASGWiAI0*D>buZzyNZ=s?UT9x8#lsO) z69?cFj}YFQL8nB;2mcDEsFhn^A1^G!Ti?zOKeIPJ_+G7k`Ejt@`g#V{*i7+0uqxH> zxDb872;zSBCzSbO)TG{~Nkg^a2qYZt5mTD)*UDtK7Shp9MUQbmau+>?PVKM6``|j+ zW85x!jNsOx33@*oG!ij4RM_Y3e4X-7jZaWo)H0ES8QW?vq>kg~s7kdLQopega<%b; zqTeV08y`ZyLH*u2c-SKQjXmDZ?~>JPa}oZ4J}{L+5?#kQBo*F@xCG;U9ts}$C%OgX z9{L4gMWH`ToquUh=T;G6J-d5Z=J0koUMlSOcGk(%iGC0sQ2?*^P25)4AM6&Kx2qei z9+|Tzq`x%W4{V;yLhf@%b$>P*gW0Zm%{D4QG<~ma~z!4};Q%??XMQ zy^ut9GY{HYnMbsb;K~ zr6ln8;e){+jnLM8D#klqvw$BZI6Mu===Msy4{V@ZqStRQ{ug@x4nK1+z5VG3EuDKG zVqmmYqws5~u~J(?(G33-ndE(NCv|Y8ax6mMio{?5>;uk`Z#ZN8Kqq!2*5>3Gfx=Vq z<`rXx*XE)x4eGmtQ@4qMhHRr(Ar8a8r3!15*Ufe>^^ROv}vpFuH?}J*%gQu3)~ zw0ZK5IxjDz|2|A-3BFjOKW4n2p4Ep$M;D8M5&e$pSG*61K1604_i(X=;U3ZVc^~LQ z_YyGsw&SQ7iM}m|km}pEpo($d_ES8lzHQLk`5ioYAH12$-uu9}WEDUOVFWffw{V-c zlZMCPt`QUg1T}BxJM{m7TS<^wnUF(Uo7mqi{GiSb*N(6p&4m-aVmOrO*a&x6Re;G4 zOcBsr0S>1+Ijqme+kFv^_!FZ>yv)_fL8a!&L8!x`9|?($Ms)9|AWovc6+KOG;#ROB z+1q%#hS6Gw&lPRG17RXJ(45cZeq*yJu3-%VvOHz`+7DOiS+uV~e)c{f5*FVk6H7xi zK@88A{Yf}+tNGocvPq>!zWF?X?(--j;@Ftr$iTyJhj*jJ71siLL8$LfaimNwH5-xH zD2&)KD4DKn5yiJB_M*@0S_U77?%pr@x3PR%TTk}l`dLZ!QB=%e{0(nN{{vN2>&rdZ zaoGD0SJ3|vMM5v%6D<|=M_{>vk|tMCK?9vb-cI^GSk+9GJwbhdvV*!1{E7F=TM$CV zcsr-V)6Q4Cogab-_5@I7eM)ZPwgqS@-J*(%8mg+MQBh?LMeX#dvmL3fat-|*{MCkU z!asX`6rt|{ow7dC+hzCyQCB)3m!du%4*_d^^q9}0KEBWO(QhBr;zJ|;m^x5WoD4+C zrIe;kV}Q~a9zGeNbiN|e7W**`VN`a7CT^1%_4YT$P@PblEGNYUmx?d$b^ChJMd(;h zgM-E5Z+UGsDbO*3uRt;WeK0P&o^Q}CsQ*>}NdH@je>dJip7>ki;{Tlye>2mp{KKCj z2T=mTQK;u)kN1Jy;=543Qu<0J_Lp?N66zNAWjz_sdLO*wS?YmGWic;IbkGwu#mcfo zFtZlrT}j^(0m&y_sXCo5vkLQMQq+6g2u?y3A zS&`TU-Uky@E>trH=hD!2-D~2LR~H#9t63JN#vYQndizGip-k5|;f4cSr-X|RwB4ji z-k5h-_ZU?SF(WF@7d0Y>Z|Pd;?GE9&_Vy0EpaXbmh&N9-A!gUqv_LEdj}3ltvc{stAD_omnJA9k^0#rV>gOA37PSJIkh zn!`P@oIFg!g;1SnIxawWS^^g+>pAL-w=k`PS;|m%EGHc5ZpbMOb=Txv9L52BkuYjz zF3sN|44%JK%huF8#yX>B?a49MX3i}p$}_PZEsLhkbTMlx6Kj=M#|eiMA_LIj)Y)gW z)hv(53`_-M`k&T*l=TGiFdt5@cIl-ar@2BYKu%yut656*KEs|Sa%h>I$jaeusODJX zi2OkvqRhqOJUJr7j}Cbl4Ho$Ox_0Z^yrp==v}UYOm0}wB zY5m!dzJuy_2r^~#Ye@jp!BF(sZ~nF+LkQ~o@jmyCC z3QH769#t;*o{L5th6u&Rr(%s?RKP^goQk&J=!L*?JT9Tf9bcUwLZX>g>dm*)A!)*l zz&ooEOD?d_QCt0mm{z>#l0}y;$4q6KNgd3UeJI zy)Zq=Cz8?gFU>REXe!{rFh-(lSUfRse(uKkKB_^fT zUGfG_ic?h(;4j1e%CyM=Rbkv>?!>0<|-DCy?~zr$9@EEuB7hnLwnOc$q-Y z0!d#;U$;abGn#-e`OAeItqi?FARo|`0-Xc2T%bIlpg^;M<_WYCNcwj@kd(U}NXF_; zpf3x#$AF3jdJ^a=ft~}BZeIbSc95abIyK2nMO&ddmZ5zSNOGk>(w9X*6~Zp z6X-6Wiv{`tP>n!+K+?ZI07V5y^QN@|y$>WyhJI;TDL6WrN4hu-NV+(exy3+rLhdT& zS{dC8bd#|CI-?Ch^@95@%RK}n)B6n2)xvf!P=`PVfMklQ(I&4E9PKcWvFZeB5ZteU zWNy3(v`TQEqYXJa+on-)Gl1p^R1DN4P#w$N0MsnFIFR)3cAy1L(bdi}eCY+dF}z?RS8rThdXOFT(g8P)wj5 zKvM2iwmk{&8`-u_1G-4aO$Yj_K$Sq!MJmeAB>lSwZ#BvN6iE8=7a&j(R80@VU z=y;&31^PTtOrUdtiUrC8k}!CBmavt1eHa$rH9{Zd##0S!|0cspL@5$`%=}xKkPV*fxi` zTt*ZF=`)2SL!(qnL^jfP4s!uUA+`-OSH>v9wo8~>#)#fy(&tL%Y8X-8N!teIni<8| zww<}Pj5^qs+OteYH>34z+soV?j5e_CUCeD{bPwBZV(wl>o7omXoKPosNG!yYhbVCd zo#ZYNTsHnweo1Z-a};N}e?lT3o+Sbhr-4cT5_pn`QYBFjqgxr>#;BLk?To%IkaLfQ zTHvh|{E5ZgkbFZ1gV3<@Tw%~QL!%us=uWV^Art>iL1m@QQ~(`UN*NmYkjciC${%Ar z|Kv0>zgGUBgH7oVjgQEnQ%@=5885#zDD8kS^W;s#Yb2$s%OFEvB_hX!D;hi`cz@jcUJ&~WxBcp%tjltjbu>hrpy5_^i^dtCnLV}ZDlfrVCW0WWWEfBzOzh* z&P1dy9Fw_+T)|*agE&(yQiV*wwkHQp5U@t%G7Z{`m< zuH(z8(~6;zlFYk`q1G)K95OEqwOq-3Rx#8nB||4NkfAb`%oU2EC&{c+47EYY z(1{FWsHI4TPGlfMH_7xXhSD#YXB9(rOftiYp&BKb5ygN|%t_>dGEyej!2})55(jgQ zgXwfI-*zzfI+#Zt44ph_7#YJqJD39whR&umjC3WY6%{2JI-9~Ul3CzjRyde74rVNMBD3QhJ+awo%bn?5&9GdGtI`-wnUqnqm48jFa*%-?9ZpCC* zM9rdphuX+g`DSSp&KQXuzb>?G+bstgvhCt!dNzLTinKJL7R?G@c1ftB;_5Z+&MdLC zwdz)G${e;o4^h9*a97PiG=dn`1I8rexN3TJQZWRiVy z+qKMj#g?v`bW^l{XBN(Ej@8w-TIw)VC)E`<8K)e$shjn?_Y+B?)bec|gp0jRrG2t} zlG^zsYmq?i3+!)UizDxM|0Baa&7kQ;V^Oo0_S+-rn|DOI3BO zw7RL$kX?*ZBw9(EZ$njUYe~C72WzfwYmHro4dP9!7t`yhU2O)JyV#|LDISXARdv_>bbO4X2R0?*7_CJ{rG0q8bQk}OwKd;9BFD*Vx&+2Ef%WmqKa{D_lI=sOKtTr zd)msQjWtQ>vUi2bzokeN_P0l=*cD~=sfwTwlKcuqYgJtFo-qoiyc*GMT+&qBP;VAJ zx=edrp!RrCQ%gD8WJ6RAhg3MI$ttnQ`J(9JSWAO!4lT-wEGs#1GJW9!5xN!Z8Hftm zw4$OGgDku+l2lOpXIHrCpH7lWsi?Z5y1lBRs-dB&8W~y7k2SEQrYGWsF&;2(aYB=z^q+dFEe?IS*><$KHR1;ZjTQhZ_$^C@0==lf?B z`YeVuOw3B5VWPmQVFEu&!DRa6Z*er6Y@KZ+y9lPj4r3atUy6!flzlE*{sNFKJBeJF zCZJXJS!W$h8$0SC4HK60BgvL_)~ttrlTMeiG?Nz4@&eYGMY3tf)rT41TqQ?0A(y1F zA_BfJX~Hu=8W##+VKF}7ZZ|pqOpBD9ZQKO8C1*&Q=39kkhS`3H+!n}Pl`Q9u5fm;+(F3QoGdpZ-n+kHL0bEg_%%E zAy<1U^$5X{=ZsaiawmFOP9e)E^$H`;3zsyLk0rVg2q!!v5yK-|2T3-#iz;CE5z9HT z@REEKzn9Q%p8}@D)X~WET_1WwSon!G{h_t6jbERQWw<4sA0~=3W2Y4D_jdk71dL_V z2lWG3yNa-3MGIMj-uwEXQ8Db_9qP&GqF5}fRtroKoiGt9x%OCv;b;m+N-pdSW1(q) zqDCvDb7?6!3vh&G8c2roXykcX$Eo(RklKgsB4R}cyCcDs1)10cg59CEz{`4yp@#%I56Tg3rLY0oI#GNJri2suq@`09 zB!Y+DOw!FkkwK&aq?`gV4(T;Hg;=wkM+;>aObJ2XCG9^Kt7MC_Xo0NhgRF^0)!(sFxQa709kTayE$jAK+V|pk#XR zNGmgF<+O?vTGSj`-E3{P;vF#Z0xIepQc*D*g@{b3r+r*$_0I4GRJkY~-uY!YxiZ1}_7ZHHNn8q_3^lJt zXfKJ-4k2Ae-n0eq5Z~bu&qb&$t8X)wg_r5C33iJ}Gs@7mDjt!O^)*Z?R}zO<+?&&jOf1#=gAY** zD05#xUC1S!1!!rMO)}d=jza;hk){|_j4T_6_(<#c!HlnFK~)WfKuN%cj+etdXdR?> zClcI36`zYhmetT@*mfE}I1=k8!Ahv!AtC78fl^*Xp)wawJH;=RDvj@>!q*7=(VmBW zWE;w9#*LQB*U2rESeM^ei^m31Gi0sbwmy(F0w)Tkuc+ab;#Gz|h-)f(ZfK_n>wBq( z7L`>rTz;~20mDZl+j?#7ZQZ_uh?I9KwgY*muFYuxl6uk zy;D^WHiCGaoNBD@8$17{_*>AM#6WZYajwIBPjZayq_9P8QP_)tc;sK4!R z*s9nSpt=CJP&RezLr7XUu{&c2EG3QdT zQBJ(T{SDW?lRBpdRZDu$A!F@G-@}VO_ymtAsr%q$JLT^0O()(5cA%~!o)oKhAh4JE0_uKbkg{7DB3tFkd-*Uj z@7(uD4y8nGTJ%LbL=Y6`kmZ1xJ?+v8&H9Vs$68LrS&*J$B+^HHNJ9lq=J$vH7JU!#5rSac;LPhU-Z=FZw zjg0$HW(8vSH;Vsc>Szg?|~h zg>H_w|?PFZWD7MMmMyo+Zb4$T#trL2f_RA15D% za}k@~I6eYBo>)!*t+W8+v5>cG4KzPkx{I!7pr%3e@1oDZr=;jM!ZdpJ{(zmRDxfsteg z4QE$Ke-pJk`!n>)r)o~)f^(ms%KZ$Q=hopRaIO!WCEkrg*?4ny?Epj77ok%5hUpDS zI);o-^5H`ec&HoxiPnL49t~V^7zA`&Vq7Fh`UuBvSG5%rUu}`$7e18rWf?wnrHmS| z_x9HIvNq88zGe6X+ziiYAe%=ATIf&W1Gj`GMbrRaOdbd?I{SW$=BKs!3_E;RSU&DZ z{f8XS2fPoAl<31H`XJ&0>AmD&^}8b@fxHjj#)%b9J%LF(j$(+ugV&2hBcAV+=tJ}wP^Q05PIkY8dgcG{?LN0i8XHb~ za}goK&^p>9HJ;-#wd1}%DQ{wBX7kaJ34Iv@;|9ep(Z!xT$Bt0i<@tS=U7i^pE#oGv z<0bo>Tj;@^0d{iW( zZ`^>ON&YkE9EF`cM}1W*#yy7ndbxQvotu-%&CH|X9_=E4H3V)~uCNLjy)&6U+|NQ) zoD58R0ZBX4slfYj@5Q)d8Zg~=;zDt21Gqm6@5+D&ai5FPY7KAz_hYfxH3poG`}c7@ z0lXRa`Lrw+;aq^5i|H^pbU9>hG@j*saIU)lPTu#cXZTxO{6$}GtY+1$g7f@SeFf8t zrrYMS?f(4#r{o-qFZ97^qlqkKjMmn+)w~{Fk<*eyd(^Gl3*G7pO#VUjm|7WN0lw^9AYv3JY{AP*9*J zfM~uqL)*>hCAR%Dkc|DCK&3+NuPo<9?G6fV3Xn|4Qs$NeNw>{F7Yn&ApalYb1BhyW zhPD%kaw$U_0FwT_2qgVG4=qJ|TcU77)!8 zWN4)0Qp(K*x?FJ7p-8#QfaLzUl|U83wvEvZK$U_crH|5fJEK3a?de!8e}$0y0#KDe z7Xrzc(tcGL?stJ!2-}|mRSWb-AekF~0g}147bqfZ{{~be&@t$tz9i6@K(b!t0ZF&B zfMibY28s%~SAb+H-vO!>+y$8icO#>Ipq0XQKXbDu8sW}kG#P7qrGGbJUZ_sE_%Wl) z@jj5gv;axDEkLrR>;$6Lm!Z81bd5m6Kn()XCZbgWWdhL}-VCh}s7at=pk{%V0DVQE zZ!-E0kaV#JNV<3vs71(q#ByImFa8z5%>$AyHshIgl#ka28BO*W94N8-RPHOx$J2PR z|AOXJ;H# z$)Gu=^yf{;^dWymK0^+xAkh1f!Al7(j!dCqsLiE{Pd#L4ENJ@kb>+&N#?|kX%yDUC z_9>aHG%{ZFwPesSri|fC$j}JYjNu9}G)^^{1Q;5vn#^yM&$PuNRoV|KnMrA6{F!p> zYx;a87&7SUQ~GS|W+Ks4q3?zzjigPVGvFnSr%i@-AGS+oB)U?KXXtYi50@FBm z`B7hKH`etwR8z*gv{UO^8)_coJu@IB>y_b~b)5}W+3_CgqtqfBB_vmO%Ll3u<2_+z zW4~2UcEV7Rq}t_owUVKJgKD{^{fAZCNt+Du!CFWL{PbwNuGVqUr`iElx58ilNpdnJW}SZAUU4ilLSwnY$E2?LsoY zQ4HNA^S)vz5|a5mc>qHRmW;7~hw7nZ)+-s3lgxJ<%oYdptb=*e!Tim^WKi^#kzt+S zV9s@vLdeRZDf9 z;fxqE<+jj?sdq3PHl`Y@P)$SrwARyz$uNe`|7mko+tAcxge~KPlh?2U)anW;U2RV( z+5X(-4>6D080W4rl6lG|L(Cr?%*PJqbgHDn7^(Q8gIU3hrt&c1V1DCZ{@cNvNKHf; zSr+Fwn16RL%N@*h4(2Wg^O%F#>tIfxMr?~uk%OsnFx?L3*AC`M8}k94)E=00TgeJ5 z=GW9m8roX@MF7p^Ro6zvD%K@UbXpp3g>WppXLtFt$emmWJg+{ss;c>-mZnwULiH=g z;yjO>W9hL7wWP7SsRoO^$KtTS%^@A1mc}tw*WzHSa=G~`wF52)e<5Xv3}rqkz^JbtOFsHV`O#YZrdC<> zV-KsPYPBdfTD@L67H6|5iZX3fOTy_&A}L`;6$wY{SJq(%U#i?Tor%BHF)-kz6p>Sn1R=l*uVLYZZ4I&dd23?PB~2J3MvLpJ zNYZ`R=@pl#?w?+8tHp>??CDc%5!gC8JSEysS|>{BH8`)Wwl>CP;-c|b>lbC1c@CROnpFG?0n z|Iz65c+_{6>2sP_qv@|XE?~~y1nsmxX}pnaYwsVDY+d>pmf&c+f4sTKx%7uFQm(zM zi=12M?IPy-PH>TP8?igZ(tH%KaMC-G`ShPH=lct1`z(fcq=J=)q09gNyu4YnuuHWt zZw5|7CsT`1jt z*syqq%Z}6~ur=mx4MDNfwAp?(I>l!{=5I5V$26xbFYfn1hDu4qQG9BGp} zDM^k`lcjU8$pJPzVv`{q0V2*2k!QsAh*Kr7*)6PF$`TxPG0wj z@TMPr)Nbk5ybC+UbNmq@{AInkatkdMA)Z{*ff|8_=m(tO79aj2mef*1-PLtC4;|+r z<3ZDlYy5q*od;WNmdlMi$-8i9c|FYz?+E2w=Ale1MwW}*M=s!T2bV=TmR{1P9Yv7k z){z$z#g*a2^#R)dl1D+}K8JoJi4R?Yqnxn%v(Vf57d#s)KXKR{9g70Lusw@58Tlfp zf-+WmF?PwxlGooK!A{U{{NS`3KfALyd>;9*?lCGt+x~(0!SiBo#fQ%G6xY1{XFnFz zzb8(F7fC+qRWvvp1m6Ki5nOv98^IPN`+W7xYvs+_^oCKBn95rM1Cc%-^5 zwwZM1^Z`oQ;g7K%*j(X@Wv|0NEVDCKn5r|2+eKZ)aVksbcy+Y}4r#+iFL{7@@FDmZ z!Qtuw6e9gh#+!)VFoBO;uMp9sYnKX?!t1}PWmXDH-31oQa7bnKymuXzvW zk)O02w>Wp?g^ug%J&AJKeAEETWzMif7#T(wr|g=7GoMy6PH0E->RIN}=hD^|1a(D6uj>;fE^ z96QNqMRDvI7F%vR5CEzGR&S%<#oM6@6;~WIjXlM@BDyw+Q&VGKrrWr-*N`_T4skA~ ztnF_5Y!AkEL~;BTmc>gMBQPUoiAZxe5zY=J0)?mfIHn{c+}86nR$TJK)-%puP}VrfmuRNCd%?CHn< zcIr%u)!4wKq$W7BW5zu?vw7s=y2_%K0AZeSV4di8di-|lerd{+-%-B&}gRhy6R7C_q z<>|06El3MKD9BT0##Uf#Es7utj7aDEe!qS8dF*r3*0pB-n!WD1=R4p2?Z?@#bIyMJ zcGcBLLX8U-Y7}tvH4e{jLfBWs`+>$`StQQ&gwt@O8%}%FEl#KHSiE5r)vm5_a>IjC zz!4Z4Bdlph2-VzMSf5Z53k@y5;rV=Veno-%LG7V@oiw{p;|1cajo_*z%$?I=Z zlwLcMA6{Z==f3MUA%_!d?*>&Ng^4xrhpZIXs%md5iqX1jI}>X^XziJ2#{Q|jS=i_C ztYz$ylW!Qs!-nN6^su>)?<*Rq4%}Wb4>$Yn2)6%^a2acB=85~*;;Q7{PokH))op-*R|tcANvd3 z1dZ2+JlFGLUeH#b$6+S^DsAZh>ly8Q%Qy{3N@iP~E@+zN_!_QUhvi0q_?nzbd>Q{! z1>J;yrfe#)75{%HD2r@Y+a*BCtpcK-sYDMDA26xJFwmKTz67M9-2!x$aJzxd7xY)4 zS%MBj{<7ev64wFE7PJXSL%R*APB^Y)s2B7)&<6#TNL^eFq%r0E zxp^Y@MWFeDz6!KJ&`m&jLAL-c6!blyj|e)V!kaB$52We$Eg-F@j{_|hxn0)w6^s4? zq;W~2mM#%F?)1|v=tLm3JsC*TB@Y|cd}I~O2{?4du_AbvI7v9R3d&VlbdFb^x8C)r<5#+^GcjurlNgO&? zUC~m@U1-ro7A+Ix&eYYtHoRs_Myw%ufqIEBFt^8G&>?fV;gS59m6zr}4mBRyXk_@U zS8A@~T}DR266ZeylLqpcm%uP*edb8iWg31AmhyRlkvV(}8NP$juuPQl=UYaGlj=&z zJO-I?4F3v->p}cDPeZcs3FI?PVE7#J8E=OUR3U_QB>sKlrRrx5V2O^~UBaCU%I6$w zhi`(tUA(>6d7dlQtnpkhNDa$l^z6k;i?)M#z2{O3`16#qft^kqs$o&bGE}Qav1Jc;u-a);4m8<=ARwrdk!<| zFi$zm9*6Pv>|mTUKHQbcGs;YN81DM%8I@V;Fg*_QX@~J<} z=#V;epNFbdPZN66O3a{H**x5r@W9>=PbkMVMLLobw3FYkgjcE1dGny-EDY%vRHz>cwHT@od| zGv!q;ED@OkaIl3ZQ`3FfYAVQI-rwF6+=#*VeP&;aC{91bQV|=W62&1_)+q;ZQlSE1 zm5Te3r;>B4RXjxN90*Tacv!7CCJKm7@P(Lx=PUa5rYd*}o;lI5rG22_U2`gESQ&W< z1>@p9l|l#9OlyOsnx6e2WAs)-z483sm1{kn*s-do=k+W{n-^6Z4K>s4tNNjIye(v7 z^p}UYcrDt9w@L-?+LD2rDXBrdIjR|bDThqMF^$o$jW8k_w+~H+Iot=+43~@A2iYm) z=@D-pgdX^ARD$K*m=xZ>h8gc=tGz+qbz^(as={hm9i*~s)14&MF;rHA76+Km5L;<% zYoj$izHN>OMJ7&7)Gx*hm-nC9dsZ6eK;!c@wKX-A)A4zINlN2wmwi0^Ru6uykg3ME z9u#pTeyXo1^2MBv8J|x>w${kd9Zfc7e124H!hh?iSvsOIIt!5&`1ecmt$--NKUZTk z`v-1-+>1tzcSN~3P0+VOE@%+H?1dZ%F-jqaW!y7Aa(FAG_WuGPEnpA+RXNRl{6xra zFK7P*4In=?XhcYcs#G0~iWc8{W1QU%L=(fTn_}!hOCUoJP5ao#(ShrzlG(R!-(J7p zSjV-sC!VSy$BPnPs46|2o`)GmCBSHm?MvOLfFo9BJlv{<0Z2e2DC~_1Vx^87 zUzQj@XIyo%Rj;8X<>c{sRUX!dQ zzMFqAqd2ON@pU*Ks1KH}#o7bK??d(#rDWA0zdBR0(oxY=T&IO&i9bmYdoa~DXAyhM zP8M7CX3^A3s!P#j=i*3<(m$Hs$z1-=G?7UA8EtOM+x)Q6Ydh%ce7jI8Wz6KK%e+EtfzHnd;axe`0NU>h7* z$qP9X3g2H?Ht5baj-Lc9&h$InapK*bOjE3lW`evqIjo%n>e$rVgbPpXH9XQS%-da+ zlrAx4*oHUTFA_H8B;o;!Rc0Zfd13S4*y`eERL-oaugB{e3};kon{+Q4_$&)Jo&?c1 zwmZnq^A&#g8P23w>9pcuC+qjhvJeVao zO1-h&80hVyEZ^An5_I@)K%to(Loe4spWbFjV79=`I5pI7%|WsKGY!QDq2T`7vfTCm zS^vhh7@2-XuJ|mcT)djw`u4b7@eRz3m_F~c-|T_&MDaB$f_#fg z^qy-t?Z1SBD_l3wiR#nFbd2fiN7o*WSEjnqs6S^CHYEQ92gUyurHZcxJb>5g9J4SO zgV*3))CY63&>m=Y_ZN5Mi;ow#i4FaaUfcIss3C@TP`ez~J$NAdX!^<zP1_sQl!+G1~=6*hjD$U^PK2Kr6vAfMob+xMNsshDAyfX(j{E zNtDb0yv7If&v&nG)IBz;$TUDhu=tP^ACi27!*mz*!REi@hdP4Zcg)`k1dTZ`>Ve!N zoTfkaAmytwqw0dn)iG1-lB)DZOc_#_P?au@9LJd7h5Ltd=%OCgsau%7lvd#(>{lQ& ztLT4LZ85Lb3QWESAx*v;Gyb4!bZ)9xM&fj&*wC)Ghjv5f|J?CprUO(IcMk1JHcWuB z>zxyJKp<6od}!Anhjv#C{kjtLgdIb>UYW3s;%9DbPQk^*yliTb#RRlX5qlCNy^m(P6nFMu#Qsc%Z>f z%?X^znJ*%-_vFSp2fnP~vQ~_skJ|D+);8vVDKe-mT4`+@%*8%hW@QXOIz?*UY9gYUzKj2(B4uu_< z=c92n0;h4FilYg*8t0ifT7a`Sb3Az&a1+iK;kX3273Xdot-yUaUxT9!cpc7n;#dtl ziu0dw6o39Ik=o~?(SlfDw zI0s1GE(KB-mjbDamDct%Kfd{~FT@kY@@v1?Vh6%YpcY zluE1zVtGwLAFDSbYA+DK`BI5VxHp~E^d2CV#7Ts@cM=ke|MLVqRPc668q9?8GvzGgJi*{Mt7cIBP zqL;1hA1wE}MQ>W$w=I`I+0`86*MR0eYk+cW%@wgdS6k|cRF3sS5nFn-Ok_A%tA2f5W{}GY=~J7 zrZvR$fawb{SAp3SVn)Dh4lyiMe+V%TfZ=n^j}Ke=bckVI^BJcymwmK$ReNFJ%4~!g zypqp5-=8GHX$>)lgW&qI-mKG@h6e+O0V13^|B-Lro&KIvKr5yGaRPQVdgu` zGKaa`VXk(VjSj=Ng>Za+>@d$e%wHVlcqWw?@4lux%sCEovBOZ4v+vJUxC-^^%~-L# zpUOwjdo~krMjJ0gWkp>Zy4L!7y9P0>g4T5%on2jl>)EK5-OC3C*b`{*ATigkuk7vW z?UxJahm#9xD#_H~>XTTL-`)*PT=a7`hz?9rq4E=G%II9NV#R8jc&jKIxNcgM$rP5a zYCLbj{PUKya7dF;qSsAPi&@>hSGE^=<(6j?_qTV+#jLK*9&17DSOa2y=F2CI06p>eVRhl$WGXXX{uX%-qPlIi<=ivAxNfP_V4w?brrvz zS;79(?#rNF2ECHYEV`KPYO!NQ~kUF zGmyVpatUHL{Zn^b#|r$Bh>Zr{hgUiW@ZL*Y3c7gQ7ZA1MP@>IxL}A>tgyl`3_e*347xnp)zc6vN0pn z1K=kej{aC9$MHLni>x5$JI#8?1r6fojAT>phNv7@kk^EtqLkYLxfji}Wj3|4lDoD# z7zE;iZ)3>4Y2^3>lNIDM>q2sAT)iF*m+_m$w=Lf=+@s!&JV2h&@X@6!$g69GFn^S* zg52qj+)QtnO(ZE-3%S~;TupW8hAGzoxeqyV?q13*kjp!A_58rIhW@od?t-Y?j9Mpt z1;}0E$hmtnuZLVmRIYYLwG9-2;obnbK1VLR88zj$K<-mfxtP6_?}XfXM{X9o6|A9u z4?*r9qH?pULj{3yPeSfSN3Pb9dl7P9cjW4v^m`q0w?^e=&v5c1g*tw>BUk5?gQFlf z8kMVa_k^y3+@le>$aumsbS-lD;NjtB&Z=N?Va5Hsu*)!(@oo4VE_F4YY?1q#w?&cm zwqntAC3m~c51$_0BKIldmpUGvi_ru~<|p6&bgsA!y_lo2rC?5X8N_x;l{sv`HgCc< zEP|eBX@$iRo`e6n#^Ebe228f%+}v-=o^wdFpybjoyKGDynM zUnWf`Hah4q4r4r6cU>G;cwc^GQJ-eS$f714G|(-Hr7K!&_B~G_OewN*3b3y;B7v-V zc;9ceKRt~?zvl%cC&mP16hS<}V($j5gljRn30fhvJy(b9NNmq>4J=Nu$2$4kbbN4r zczZ6br&=W?|F`F+=~b1Umg(sdJ|&>Cqm}cM4%g^xpW8~y{O}Lf;k143ITFO&0U577gfNFv(gm38B`C^Esr%y4sqmkZ~r zKQnpC-ODK1s-=SXh9FoB)Ljd~MfiXe3Hccd#&Kk_5ZX)g{o z-kB%%S9&Tuu&J|I%Z<90W-E=eq_S6njk6D98{qu#EZAyRU=W5kgKNnlDD$YLMvs~N zo5jD`N&M9j)${LzW%xT=b{c0j-Nrqjq0A$cwwyiIs?E}a`*-dgM0R*9y-n%CHldHB z0AWYA!rJ`M;FLt+Q>Joxn_Ul=4PS_L=g&0^&!6P)E6=2yj}~>&6f`x6bEuWcJmKAi zY%tEY1`V~0d1?Cl_2?NLLXx%fdZ|g5o9_Ym3`Y4t}zg;URmv&57O9 z?ZosANp!&cBw1b@m)OP0i7zF~L98DKXvgHRg~!D2kFPFoP4$&EjT@Df@?ZB?${)v- z^K<-b1ew50$jbM_k2A_U5)D%Zv0ohGL4Rs|e~jFbr^4>6@&~a;+{Ne~dR(VS!g32E z4|503+iyHcf4g9YZvJqP0BLCZftH9Z$Jx~O2p|pjI3Nup4Wwak9^ZN5 zVgyKirluBkyBSD*=4#<4k-Hy=Wj>X78mL3iili5vj!0Ko<)70uXyKQi&}< zd_zhl9sp_(^dwNLpyz=u7Q~gO8mkUi;FIxD+H|p(p=a8)Fs?)K<$F=0@4&81!@zH z`^Tw&Zvv@*+;T?!I}AwuI~GX&s{+zkoere2&j4xc&j!-i=dIilAdNj&UTR#v4zx<+ z2c&U%+?I`FkiV)0=N z*rF>+17&fPNo%g$G+Zm1Zf&bA$9HbEWlXa;%47sxIbJJj0OD1dq@8k&)|P3kwk)k` z%krp*PZPCmwH#ASZJAD49A%O}%Jo^>g0%&Zy#-aj!pCr>h`uMKH-v6g(}JQjt`z~u zu1aV=V0v&U>a~a=D#tn3iux^DV-e${wrefA(xOjVG+@!7MW3>Wql4hQJ5HkvfZyUa=pM#;9fTJwQ z8e<4vB4hQf7f+rdX!KFl=p9=6b`hO;G0ZhG7e!%nuF2 z*edfMhG9KbW;{KBVXahVnqgQ6m1#5#Yn(DYhGG3u2HTU1VQo_80mHEFD6`ivtSQP= zGC5&bFO)ggFf8-RTx=L7oHA{O;ms)1YZwrQ`Fn@?hGo)5=6=g~u72t;uUW=(bqu2> z#$&P$bAiLOIm}>)aaaDhIyo5V#*iyAUv`*V9p(Yccz61Q!@S`z$1q!r(R8kNn2Q`{ z&|$vdFtl3B_ls!+gkLmO9L!!~B!O+!bPehO2Uclv1ShDlKqZnj{Zay)$tF!NdRXtX}gA)l|ygj=a3+sFPyV_(`dq;2o7`t1k z3+P5Dv|ylpE+>r~$a|ylzL}FC=JaEH{QwTkTJom$14g_W(U^0^!9=27B%usrjP2m` z)@DM|+fZq2`HZuMtW;jB&)ol^xq$sH4r+(Ez-s+5y`6+b09=nKtOpl{l z0S+J>Rz*`vIA&p?>~mpuz`$k~XZ9`cFPvFjvfe~|C>4+?rw11+BOKkah1&G1O4OM{ zPtSwPs6e)J6<#E9Fh}K(_8c)DM702gTd5Lvc+kbwtp_&db^{T)j|NX8kX&V0d!asL zId)v}m!X!3%)!@6$;*SU?uXEXsEU+>XqFDO!DCH3_~!J`TkAu68kAP$A=&0_K~t*Y z1)giR7(nHdZd>D(Xsk$$5H+a!EZtf(VUJ4_1azG=hf6GV>Vz46(nd7&I88;wzC;@l zFBNSZVx>y73URW5<{-{G)DE=x?-g;fva?X+$r6!s>*yg=w1{6ZH7rg->UZGj948Zg z)W=D9TMUNZ9%3b(S`;f4UwvXl-Fg!%7GGhU^bJ)ETcQI+Sy!MR`Yu>wtV<85j5;)h zL4h6e-2EfXn*CW&Z`a-1GYfNGd;1478SD_;rMPxpQ}^Yv(P91kg^i8PEf+V=^Bx8D zjSH8|3o)urEU1#e-QLP~<*jk|efAjjCq~(U|EA3bMzjuT)sN4)h)}c?M6Bb=Q$!?E zFeA1xPm8cbu#$vr!c{D67kmVUZ8Gk|)C#!mgtgKnbKVNV_Mv7gnAWzr3(IF>Tg-?I U(l5BNa@02bj%RHnt^dUT0c+E4uK)l5 literal 0 HcmV?d00001 diff --git a/easyx/lib64/libeasyxw.a b/easyx/lib64/libeasyxw.a new file mode 100644 index 0000000000000000000000000000000000000000..1e4aec59aea405f510d5021af08c143c3d7a66d5 GIT binary patch literal 182310 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 T{)J!6ihZN+c-FV5^`HE|Oz*q) literal 0 HcmV?d00001 diff --git a/easyx/readme.txt b/easyx/readme.txt new file mode 100644 index 0000000..bb46d61 --- /dev/null +++ b/easyx/readme.txt @@ -0,0 +1,25 @@ +EasyX for MinGW +https://go.easyx.cn/easyx-for-mingw +------------------------------------ + +[支持 MinGW 的版本] +TDM-GCC 4.8.1 及以上版本,支持 32 位和 64 位。 +MinGW-w64 的支持有限,支持 x86_64-posix-seh、x86_64-win32-seh、i686-posix-sjlj、i686-win32-sjlj,但不支持 x86_64-posix-sjlj、x86_64-win32-sjlj、i686-posix-dwarf、i686-win32-dwarf。 + +[支持编译器的版本] +使用 TDM-GCC 4.8.1 及以上版本的集成开发环境都可以支持。例如: +● Code::Blocks 13.12 及以上版本 +● DevCpp 5.8.0 及以上版本 +同时额外支持: +● DevCpp 5.4.0 GCC MinGW 4.7.2 +● C-Free 5.0(内置 GCC MinGW 3.4.5) + +[文件列表] +include 头文件 +lib32 32 位库文件 +lib64 64 位库文件 +lib-for-devcpp_5.4.0 仅适用于 DevCpp 5.4.0 MinGW 4.7.2 和 C-Free 5.0 + +[安装方法] +将 include 文件夹下的头文件和 lib32/lib64 文件夹下的库文件,分别拷贝到 MinGW 的头文件和库文件文件夹中,链接选项增加:-leasyx,然后编译即可。 +详细步骤请参考:https://go.easyx.cn/easyx-for-mingw \ No newline at end of file diff --git a/shubiao.cc b/shubiao.cc new file mode 100644 index 0000000..504804d --- /dev/null +++ b/shubiao.cc @@ -0,0 +1,44 @@ +// 编译环境:Visual C++ 6.0~2022,EasyX_25.9.10 +// https://easyx.cn +// +#include + +int main() +{ + // 初始化图形窗口 + initgraph(640, 480); + + ExMessage m; // 定义消息变量 + + while(true) + { + // 获取一条鼠标或按键消息 + m = getmessage(EX_MOUSE | EX_KEY); + + switch(m.message) + { + case WM_MOUSEMOVE: + // 鼠标移动的时候画红色的小点 + putpixel(m.x, m.y, RED); + break; + + case WM_LBUTTONDOWN: + // 如果点左键的同时按下了 Ctrl 键 + if (m.ctrl) + // 画一个大方块 + rectangle(m.x - 10, m.y - 10, m.x + 10, m.y + 10); + else + // 画一个小方块 + rectangle(m.x - 5, m.y - 5, m.x + 5, m.y + 5); + break; + + case WM_KEYDOWN: + if (m.vkcode == VK_ESCAPE) + return 0; // 按 ESC 键退出程序 + } + } + + // 关闭图形窗口 + closegraph(); + return 0; +} diff --git a/xingkong/xingkong.cc b/xingkong/xingkong.cc new file mode 100644 index 0000000..f5368e3 --- /dev/null +++ b/xingkong/xingkong.cc @@ -0,0 +1,67 @@ +// 编译环境:Visual C++ 6.0~2022,EasyX_25.9.10 +// https://easyx.cn +// +#include +#include +#include + +#define MAXSTAR 200 // 星星总数 + +struct STAR +{ + double x; + int y; + double step; + int color; +}; + +STAR star[MAXSTAR]; + +// 初始化星星 +void InitStar(int i) +{ + star[i].x = 0; + star[i].y = rand() % 480; + star[i].step = (rand() % 5000) / 1000.0 + 1; + star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮 + star[i].color = RGB(star[i].color, star[i].color, star[i].color); +} + +// 移动星星 +void MoveStar(int i) +{ + // 擦掉原来的星星 + putpixel((int)star[i].x, star[i].y, 0); + + // 计算新位置 + star[i].x += star[i].step; + if (star[i].x > 640) InitStar(i); + + // 画新星星 + putpixel((int)star[i].x, star[i].y, star[i].color); +} + +// 主函数 +int main() +{ + srand((unsigned)time(NULL)); // 随机种子 + initgraph(640, 480); // 创建绘图窗口 + + // 初始化所有星星 + for(int i = 0; i < MAXSTAR; i++) + { + InitStar(i); + star[i].x = rand() % 640; + } + + // 绘制星空,按任意键退出 + while(!_kbhit()) + { + for(int i = 0; i < MAXSTAR; i++) + MoveStar(i); + Sleep(20); + } + + closegraph(); // 关闭绘图窗口 + return 0; +} diff --git a/zifuzhen.cpp b/zifuzhen.cpp new file mode 100644 index 0000000..7afbb62 --- /dev/null +++ b/zifuzhen.cpp @@ -0,0 +1,47 @@ +// 编译环境:Visual C++ 6.0~2022,EasyX_25.9.10 +// https://easyx.cn +// +#include +#include +#include + +int main() +{ + // 设置随机种子 + srand((unsigned) time(NULL)); + + // 初始化图形模式 + initgraph(640, 480); + + int x, y; + char c; + + settextstyle(16, 8, _T("Courier")); // 设置字体 + + // 设置颜色 + settextcolor(GREEN); + setlinecolor(BLACK); + + for (int i = 0; i <= 479; i++) + { + // 在随机位置显示三个随机字母 + for (int j = 0; j < 3; j++) + { + x = (rand() % 80) * 8; + y = (rand() % 20) * 24; + c = (rand() % 26) + 65; + outtextxy(x, y, c); + } + + // 画线擦掉一个像素行 + line(0, i, 639, i); + + Sleep(10); // 延时 + if (i >= 479) i = -1; + if (_kbhit()) break; // 按任意键退出 + } + + // 关闭图形模式 + closegraph(); + return 0; +}