diff --git a/CHANGELOG.txt b/CHANGELOG.txt index b540713..00b10c3 100755 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,37 @@ +KernelEx v4.5 Final by Xeno86 +2010-12-30 + +setup: Start Menu shortcuts, included Release Notes.txt +verifier: new welcome screen +core/setup: make KernelEx compatible with kernel32.dll updates: +- uninstalling KernelEx won't revert kernel32 updates anymore; +- KernelEx doesn't need to be reinstalled anymore if kernel32 is updated +- kernel32 backup is now stored in sysbckup directory +core: don't load api libraries if resolver failed to initialize +SystemParametersInfo: fix SPI_GETCARETWIDTH erroneous zero caret width return +kernel32.TlsFree(ext) fixes: +- fixed a possible deadlock situation which could lead to system hang +- return error if TLS index has already been freed +- return 1 for success consistently for better compatibility +comdlg32 GetOpen[Save]FileName: avoid HeapFree(null), changes last-error +MSI shim database integration +MSI shim database: transforms for office 2003; office 2007 converters; google earth 5.1,5.2,6.0b; acrobat reader 7 +settings: force Windows Installer into default configuration +gdi32/textout: don't hold Win16Lock while calling GDI apis +added Shim database create utility SDBcreate for MSI installer files patching +settings: set GTAPI.DLL in Win2000 mode (Google Earth setup) +implemented cryptui.CryptUIDlgViewContext (Google Earth 5.2) +implemented kernel32.FindFirstFileExA/W (Opera) +user32: per-thread keyboard state is now updated for left/right modifier keys (Qt 4.6+ hotkeys) +user32: MapVirtualKey now maps left/right modifier key codes to AT keyboard scan codes. +gdi32 unicode APIs: wrong conversion macros were used; +gdi32: rewritten EnumFont*W APIs, FONTSIGNATURE is now passed to callback function; populated in registry cache (affects Qt 4.6+) +DC objects are revalidated after text API calls +replace MSLU's shell32.DragQueryFileW with custom implementation (fixes Foxit Reader 3.1 drag&drop crash) +minor GDI text api fixes + +--------------------------------------- + KernelEx v4.5 RC 5 by Xeno86 2010-11-02 diff --git a/KernelEx.dsw b/KernelEx.dsw index 1b158cf..09fc045 100755 --- a/KernelEx.dsw +++ b/KernelEx.dsw @@ -135,6 +135,18 @@ Package=<4> ############################################################################### +Project: "sdbcreate"=.\util\sdbcreate\sdbcreate.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + Global: Package=<5> diff --git a/KernelEx.nsi b/KernelEx.nsi index cae5862..92ae135 100755 --- a/KernelEx.nsi +++ b/KernelEx.nsi @@ -1,4 +1,4 @@ - !define _VERSION '4.5 RC 5' + !define _VERSION '4.5 Final' !ifndef _DEBUG !define FLAVOUR 'Release' @@ -37,6 +37,7 @@ Var ENABLEBUTTON Var WARNING_TEXT + Var StartMenuFolder ;-------------------------------- ;Interface Settings @@ -50,6 +51,13 @@ !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "License.txt" + + ;Start Menu Folder Page Configuration + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\KernelEx" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "SMDir" + !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder + !insertmacro MUI_PAGE_INSTFILES Page custom PageDefConfig PageLeaveDefConfig !insertmacro MUI_PAGE_FINISH @@ -208,25 +216,39 @@ Section "Install" Abort SetOutPath "$INSTDIR" - - SetOverwrite on - File setup\${FLAVOUR}\setupkex.exe - SetOverwrite lastused + + GetTempFileName $R0 "$INSTDIR" + File /oname=$R0 "setup\${FLAVOUR}\setupkex.exe" + + StrCpy $R1 "none" + IfFileExists "$INSTDIR\kernel32.bak" 0 +6 + StrCpy $R1 "copy" + ClearErrors + CopyFiles /SILENT "$INSTDIR\kernel32.bak" "$WINDIR\SYSBCKUP\KERNEL32.DLL" + IfErrors 0 +2 + StrCpy $R1 "exist" ;File already exists !ifdef _DEBUG - nsExec::ExecToLog '"$INSTDIR\setupkex.exe" "$INSTDIR\kernel32.bak"' + nsExec::ExecToLog '"$R0"' Pop $0 !else - ExecWait '"$INSTDIR\setupkex.exe" "$INSTDIR\kernel32.bak"' $0 + ExecWait '"$R0"' $0 StrCmp $0 "" 0 +2 StrCpy $0 "error" !endif DetailPrint " setup returned: $0" - Delete "$INSTDIR\setupkex.exe" - StrCmp $0 "0" +3 + StrCmp $0 "0" +6 + Delete $R0 ;delete temporary setupkex.exe + StrCmp $R1 "copy" 0 +2 ;undo copy + Delete "$WINDIR\SYSBCKUP\KERNEL32.DLL" RMDir "$INSTDIR" Abort + Rename /REBOOTOK $R0 "$INSTDIR\setupkex.exe" + StrCmp $R1 "copy" +2 0 + StrCmp $R1 "exist" 0 +2 + Delete /REBOOTOK "$INSTDIR\kernel32.bak" ;delete deprecated update file + ;Files to install ;UpdateDLL_Func params: @@ -271,6 +293,7 @@ Section "Install" File apilibs\core.ini File apilibs\settings.reg File license.txt + File "Release Notes.txt" GetTempFileName $0 "$INSTDIR" File /oname=$0 auxiliary\msimg32.dll @@ -318,6 +341,12 @@ Section "Install" ExecWait '"$WINDIR\regedit.exe" /s "$INSTDIR\settings.reg"' Delete "$INSTDIR\settings.reg" + + CreateDirectory $WINDIR\AppPatch\Custom + File /oname=$WINDIR\AppPatch\Custom\KernelEx.sdb "util\sdbcreate\sdbdb\KernelEx.sdb" + File "util\sdbcreate\sdbdb\kexsdb.i.reg" + ExecWait '"$WINDIR\regedit.exe" /s "$INSTDIR\kexsdb.i.reg"' + Delete "$INSTDIR\kexsdb.i.reg" ;Store installation folder WriteRegStr HKLM "Software\KernelEx" "InstallDir" $INSTDIR @@ -341,7 +370,16 @@ Section "Install" ;Create uninstaller WriteUninstaller "$INSTDIR\Uninstall.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunServicesOnce" "KexNeedsReboot" "" + ;Create shortcuts + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$StartMenuFolder" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Release Notes.lnk" "$INSTDIR\Release Notes.txt" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Verify Installation.lnk" "$INSTDIR\verify.exe" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\KernelEx Home Page.lnk" "http://kernelex.sourceforge.net/" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\KernelEx Wiki.lnk" "http://kernelex.sourceforge.net/wiki/" + CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + !insertmacro MUI_STARTMENU_WRITE_END + SetRebootFlag true SectionEnd @@ -361,10 +399,10 @@ Section "Uninstall" Abort ;Files to uninstall - IfFileExists "$INSTDIR\kernel32.bak" 0 +5 + IfFileExists "$WINDIR\SYSBCKUP\KERNEL32.DLL" 0 +5 GetTempFileName $0 "$SYSDIR" Delete $0 - Rename "$INSTDIR\kernel32.bak" $0 + CopyFiles /SILENT "$WINDIR\SYSBCKUP\KERNEL32.DLL" $0 Rename /REBOOTOK $0 "$SYSDIR\kernel32.dll" Delete /REBOOTOK "$INSTDIR\KernelEx.dll" @@ -376,6 +414,7 @@ Section "Uninstall" UnRegDLL "$INSTDIR\kexCOM.dll" Delete /REBOOTOK "$INSTDIR\kexCOM.dll" Delete "$INSTDIR\license.txt" + Delete "$INSTDIR\Release Notes.txt" Delete /REBOOTOK "$INSTDIR\msimg32.dll" DeleteRegValue HKLM "Software\KernelEx\KnownDLLs" "MSIMG32" @@ -390,6 +429,12 @@ Section "Uninstall" Delete /REBOOTOK "$INSTDIR\userenv.dll" DeleteRegValue HKLM "Software\KernelEx\KnownDLLs" "USERENV" + File "util\sdbcreate\sdbdb\kexsdb.u.reg" + ExecWait '"$WINDIR\regedit.exe" /s "$INSTDIR\kexsdb.u.reg"' + Delete "$INSTDIR\kexsdb.u.reg" + Delete /REBOOTOK "$WINDIR\AppPatch\Custom\KernelEx.sdb" + RMDir "$WINDIR\AppPatch\Custom" + Delete "$INSTDIR\verify.exe" DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "KexVerify" @@ -398,6 +443,10 @@ Section "Uninstall" RMDir /r "$INSTDIR\MSLU" WriteINIStr $WINDIR\wininit.ini Rename DIRNUL $INSTDIR + ;remove Start Menu shortcuts + !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder + RMDir /r "$SMPROGRAMS\$StartMenuFolder" + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(DESC_SETTINGS_PRESERVE)" IDYES +2 IDNO 0 DeleteRegKey HKLM "Software\KernelEx" diff --git a/Release Notes.txt b/Release Notes.txt new file mode 100755 index 0000000..39c35e6 --- /dev/null +++ b/Release Notes.txt @@ -0,0 +1,253 @@ +KernelEx v4.5 Final by Xeno86 +2010-12-30 + +What's new: +---------------------------------- +* Reworked installer (should be more compatible with kernel32 updates) +* New welcome screen +* Fixed stability of extended TLS code +* Fixed hang issues with printers +* Added Windows Installer compatibility database for MSI files patching + +Apps fixed / now working: +------------------------- +* Fixed: Foxit Reader 3.1 drag-and-drop crash +* Fixed: Qt 4.6+ hotkey issues +* Fixed: Opera 11 'about:' pages +* Fixed: Firefox displaying file save dialog twice +* Fixed: caret not showing on some configurations (Opera) +* Now working: Google Earth 5.2 (6.0 beta experimentally) + +################################################# + +KernelEx v4.5 RC 5 by Xeno86 +2010-11-02 + +What's new: +---------------------------------- +* KernelEx should now work better with Windows 95 shell +* Fixed stability issues with GDI anti-leaking code + +Apps fixed / now working: +------------------------- +* Fixed: OpenOffice.org often crashed on closing +* Fixed: VLC 1.1.x crashed on DVD playback on windows 98 shell +* Fixed: MAME insufficient memory error +* Fixed: Inkscape 0.47 invisible save dialog problem +* Fixed: Foxit Reader 3,4 resource leaks and random scrolling crashes +* Fixed: Opera crashed in 'Windows 2000' mode when trying to save file +* Fixed: Qt4 apps not showing interface fonts +* Fixed: AkelPad had broken national input +* Fixed: Easy Assembler Shell installer crash +* Now working: Media Player Classic Home Cinema rev 2374+ +* Now working: MS Office 2003 Word/Excel + Viewers (experimental) +* Now working: MS Office 2007 converters [docx only] (experimental) + +################################################# + +KernelEx v4.5 RC 4 by Xeno86 +2010-09-21 + +What's new: +----------- +* Fixed: missing background colors and images in Mozilla Firefox 3.6.9/3.6.10 +* Fixed: MSIMG32 warning and menu icon transparency issues in Opera 10.62 +* Fixed: crashes introduced in RC 3 +* KernelEx auxiliary libraries weren't loaded when full path to system file was passed in call to LoadLibary + +################################################# + +KernelEx v4.5 RC 3 by Xeno86 +2010-09-10 + +hotfix to prevent DLL circular-references causing crashes on certain configurations + +################################################# + +KernelEx v4.5 RC 2 by Xeno86 +2010-09-08 + +What's new: +----------- +* Implemented SysLink common control class + +Apps fixed / now working: +------------------------- +* Fixed: Google Picasa options dialog (empty tabs) +* Fixed: Adobe Flash Player crashes (reported by mailcat via sf.net forum) +* Fixed: Adobe Flash Player 10.1 volume control +* Fixed: Wizard101 game crash (bug #3041092) +* Fixed: Maxthon browser (freezing) +* Now working: Maxthon 1.6.7 +* Now working: VLC 1.1.2 (without RP9) + +################################################# + +KernelEx v4.5 RC 1 by Xeno86 +2010-07-30 + +What's new: +---------------------------------- +* Reworked 'Compatibility' tab to allow resetting compatibility settings to default values +* Resources with high ID are disallowed when KernelEx is disabled +* Platform check is now re-enabled when KernelEx is disabled +* Fixed settings not applied for applications with international characters in path +* Implemented get-post I/O completion ports functionality + +Apps fixed / now working: +------------------------- +* Fixed: MSYS (broken) +* Fixed: Microsoft Access XP (crashing) +* Fixed: Rally Championship '99 (crashing) +* Fixed: GTA San Andreas (crashing) +* Fixed: VLC 1.0+ (UI) +* Fixed: Firefox 3.6.4+ (high cpu usage) +* Now working: Adobe Flash 10.1 plugin +* Now working: Mozilla Firefox 4.0 Beta 2 +* Now working: Artweaver 1.0 +* Now working: MPC-HC (newer builds, svn build 1391+) + +################################################# + +KernelEx v4.5 Beta 2 by Xeno86 +2010-02-14 + +What's new: +---------------------------------- +* Implemented Uniscribe font caching (improves Firefox 3 performance). +* New thread pool implementation (fixes IE6 problems). +* Fixed rare font related Firefox 3 crash. +* Implemented timer queue APIs. +* Implemented SHParseDisplayName and restricted to XP+ configs to fix Firefox mailto issues. +* Fixed premature kexCOM unloading crashing Photoshop 5 and other buggy apps. +* Updated jemalloc to version from FF3.6. +* Fixed jemalloc sensitiveness to invalid pointers. Fixes vmwareuser, cvtaplog crashing. +* Implemented EnumPrintersW (Foxit 3.1 Unicode printing support). +* Fixed Opera 10.50 Beta Acid3 crash. +* Other small fixes / stubs. + +################################################# + +KernelEx v4.5 Beta 1 by Xeno86 +2010-01-18 + +What's new: +---------------------------------- +* Noticeably improved speed of applications which make extensive use of memory. +This was made possible by introducing new memory allocator originating from FreeBSD - jemalloc. +It improves heap memory allocation/free speed and reduces virtual memory fragmentation. +* Improved compatibility with Unicode applications by implementing new windowing layer +which provides NT-consistent way to work with Unicode window procedures. +* Extended TLS slot limitation from 80 to 1000+, for some heavy apps. +* Lifted PE loader named resource limitation, allowing named resource-heavy libraries to load. +* Changed kernel obfuscator to produce positive object (process, thread) IDs in order to improve compatibility. +* Introduced kexCOM - new library to take care of missing COM interfaces. Fixes creating shell shortcuts in newer installers. +* GDI object destroying rules adjusted in order to fix certain resource leaks or unstability with Flash and other apps. +* Implemented certain userenv, unicode winspool, thread pool functions. +* Lot of API fixes and stubs. +* Improved Compatibility tab. +* Various architecture improvements. +* Fixed uninstall kernel32.bak not restoring reliably issue. + +Apps now working / fixed: +------------------------- +* .NET Framework 2 (fixed install/uninstall and apps) +* AbiWord 2.8 (usable, minor problems) +* Adobe Flash 10.1 beta +* Adobe Acrobat Reader 9 (very unstable) +* Adobe ImageReady CS2 (no Photoshop yet) +* Arora (WebKit Internet Browser) +* FastStone Image Viewer (fixed plugin crash) +* Foxit Reader 3.1 +* ICQ 6.5 / ICQLite +* InkScape (usable) +* GIMP 2.6 (usable, fixed brush trace) +* Half-Life 2 Episode One/Two +* Miranda IM 0.8.x Unicode +* Mozilla Thunderbird 3 (fixed out of space errors) +* Nero DiscSpeed 4 +* QtCreator 1.2.1 +* SoftMaker Office 2008 (fixed input bugs) +* WinAmp 5.5x (fixed ML crash, charset problems) +* X-Moto + + +Notes: +------ +* This release is beta quality in order to test several major changes in KernelEx. +Please test the apps which were working before. Compare the performance and memory usage of any heavy apps you use. +Pay attention to possible national language input problems. +* If you want to downgrade to Final 2, you have to uninstall this beta first. +* Enjoy this great release. win9x 4ever. + +################################################# + +KernelEx v4.0 Final 2 by Xeno86 +2009-08-20 + +Major changes: +-------------- +* system won't try to load auxiliary libraries (PSAPI, MSIMG32, PDH, UXTHEME, WTSAPI32) when extensions are disabled + +Fixed regressions: +------------------ +* fixed ZoneAlarm not working properly +* Firefox 3 couldn't be uninstalled if KernelEx was installed with extensions disabled +* Foobar2000 v0.9.6.x installer was crashing + +################################################# + +KernelEx v4.0 Final by Xeno86 +2009-07-23 + +Now working on Windows 98/Me: +----------------------------- +* Flash 10 in Internet Explorer + +Major changes: +-------------- +* added option to installer to select between enabling KernelEx extensions for all applications and disabling them +* added installation verifier +* printer driver software no longer running in NT mode +* file select dialogs in Flash applets and certain applications should work correctly now +* improved RP9 compatibility +* loading MSLU altered floating point unit flags and caused certain programs to crash +* MSLU (Unicows.dll) is no longer loaded right on startup and should be seen referenced less often in system +* Dependency Walker is no longer slow when profiling +* startup speed improvements +* stability improvements +* tons of small changes + +################################################# + +KernelEx v4.0 RC 2 by Xeno86 +2009-03-21 + +Now working on Windows 98/Me: +----------------------------- +* The Chronicles of Riddick EFBB Demo +* QEmu 0.9 + +Fixed regressions: +------------------ +* fixed Adobe Acrobat Reader 7.0 not working with RC 1 +* .Net framework was broken in RC 1 now should work correctly +* input issue in Firefox 3 affecting special characters +* eMule couldn't complete downloads in RC 1, now fixed +* transparency issue in Firefox 3 +* incompatibility with Norton Utilities + +################################################# + +KernelEx v4.0 RC 1 by Xeno86 +2009-03-10 + +Now working on Windows 98/Me: +----------------------------- +* Firefox 3.6 alpha +* JDK 6 / JRE 6 works fine with the exception of Java applets which don't work (reason: missing proper named-pipe support in the system) +* PDF-XChange Viewer now works + +Fixed regressions: +------------------ +* Sysinternals TCPView display fix diff --git a/apilibs/kexbasen/comdlg32/opensavefile.h b/apilibs/kexbasen/comdlg32/opensavefile.h index 7feba28..7b36d97 100755 --- a/apilibs/kexbasen/comdlg32/opensavefile.h +++ b/apilibs/kexbasen/comdlg32/opensavefile.h @@ -104,7 +104,7 @@ static int strlenWW(LPWSTR strWW) //misc #define StrAllocA(size) (LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size) -#define StrFree(ptr) HeapFree(GetProcessHeap(),0,ptr) +#define StrFree(ptr) if (ptr) HeapFree(GetProcessHeap(),0,ptr) BOOL WINAPI GetSaveFileNameA_fix(LPOPENFILENAMEA lpofn); BOOL WINAPI GetOpenFileNameA_fix(LPOPENFILENAMEA lpofn); diff --git a/apilibs/kexbasen/cryptui/CryptUIDlgViewContext.c b/apilibs/kexbasen/cryptui/CryptUIDlgViewContext.c new file mode 100755 index 0000000..f1e9e5a --- /dev/null +++ b/apilibs/kexbasen/cryptui/CryptUIDlgViewContext.c @@ -0,0 +1,120 @@ +/* + * KernelEx + * Copyright 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include + +typedef struct { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCWSTR szTitle; + PCCTL_CONTEXT pCtlContext; + DWORD unknown[6]; +} CRYPTUI_VIEWCTL_STRUCTW; //size = 0x2C + +typedef struct { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCWSTR szTitle; + PCCRL_CONTEXT pCtlContext; + DWORD unknown[4]; +} CRYPTUI_VIEWCRL_STRUCTW; //size = 0x24 + +typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCWSTR szTitle; + PCCERT_CONTEXT pCertContext; + LPCSTR* rgszPurposes; + DWORD cPurposes; + union + { + CRYPT_PROVIDER_DATA const* pCryptProviderData; + HANDLE hWVTStateData; + }; + BOOL fpCryptProviderDataTrustedUsage; + DWORD idxSigner; + DWORD idxCert; + BOOL fCounterSigner; + DWORD idxCounterSigner; + DWORD cStores; + HCERTSTORE* rghStores; + DWORD cPropSheetPages; + LPCPROPSHEETPAGEW rgPropSheetPages; + DWORD nStartPage; +} CRYPTUI_VIEWCERTIFICATE_STRUCTW,*PCRYPTUI_VIEWCERTIFICATE_STRUCTW; +typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTW *PCCRYPTUI_VIEWCERTIFICATE_STRUCTW; + +#ifdef __cplusplus +extern "C" { +#endif +BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW, BOOL*); +BOOL WINAPI CryptUIDlgViewCTLW(CRYPTUI_VIEWCTL_STRUCTW*); +BOOL WINAPI CryptUIDlgViewCRLW(CRYPTUI_VIEWCRL_STRUCTW*); +#ifdef __cplusplus +} +#endif + +/* MAKE_EXPORT CryptUIDlgViewContext_new=CryptUIDlgViewContext */ +BOOL WINAPI CryptUIDlgViewContext_new( DWORD dwContextType, const void *pvContext, + HWND hwnd, LPCWSTR pwszTitle, DWORD dwFlags, void *pvReserved) +{ + switch (dwContextType) { + case CERT_STORE_CERTIFICATE_CONTEXT: + { + CRYPTUI_VIEWCERTIFICATE_STRUCTW certW; + memset(&certW,0,sizeof(certW)); + certW.dwSize = sizeof(certW); + certW.hwndParent = hwnd; + certW.szTitle = pwszTitle; + certW.pCertContext = (PCERT_CONTEXT)pvContext; + return CryptUIDlgViewCertificateW(&certW,NULL); + } + break; + case CERT_STORE_CTL_CONTEXT: + { + CRYPTUI_VIEWCTL_STRUCTW ctlW; + memset(&ctlW,0,sizeof(ctlW)); + ctlW.dwSize = sizeof(ctlW); + ctlW.hwndParent = hwnd; + ctlW.szTitle = pwszTitle; + ctlW.pCtlContext = (PCCTL_CONTEXT)pvContext; + return CryptUIDlgViewCTLW(&ctlW); + } + break; + case CERT_STORE_CRL_CONTEXT: + { + CRYPTUI_VIEWCRL_STRUCTW crlW; + memset(&crlW,0,sizeof(crlW)); + crlW.dwSize = sizeof(crlW); + crlW.hwndParent = hwnd; + crlW.szTitle = pwszTitle; + crlW.pCtlContext = (PCCRL_CONTEXT)pvContext; + return CryptUIDlgViewCRLW(&crlW); + } + break; + default: + return FALSE; + } +} diff --git a/apilibs/kexbasen/cryptui/_cryptui_apilist.c b/apilibs/kexbasen/cryptui/_cryptui_apilist.c new file mode 100755 index 0000000..9318c55 --- /dev/null +++ b/apilibs/kexbasen/cryptui/_cryptui_apilist.c @@ -0,0 +1,45 @@ +/* + * KernelEx + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "common.h" +#include "_cryptui_apilist.h" + +BOOL init_cryptui() +{ + return TRUE; +} + +static const apilib_named_api cryptui_named_apis[] = +{ +/*** AUTOGENERATED APILIST NAMED EXPORTS BEGIN ***/ + DECL_API("CryptUIDlgViewContext", CryptUIDlgViewContext_new), +/*** AUTOGENERATED APILIST NAMED EXPORTS END ***/ +}; + +#if 0 +static const apilib_unnamed_api cryptui_ordinal_apis[] = +{ +/*** AUTOGENERATED APILIST ORDINAL EXPORTS BEGIN ***/ +/*** AUTOGENERATED APILIST ORDINAL EXPORTS END ***/ +}; +#endif + +const apilib_api_table apitable_cryptui = DECL_TAB("CRYPTUI.DLL", cryptui_named_apis, 0 /*cryptui_ordinal_apis*/); diff --git a/apilibs/kexbasen/cryptui/_cryptui_apilist.h b/apilibs/kexbasen/cryptui/_cryptui_apilist.h new file mode 100755 index 0000000..7506300 --- /dev/null +++ b/apilibs/kexbasen/cryptui/_cryptui_apilist.h @@ -0,0 +1,34 @@ +/* + * KernelEx + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef _CRYPTUI_APILIST_H +#define _CRYPTUI_APILIST_H + +#include "kexcoresdk.h" + +BOOL init_cryptui(); +extern const apilib_api_table apitable_cryptui; + +/*** AUTOGENERATED APILIST DECLARATIONS BEGIN ***/ +BOOL WINAPI CryptUIDlgViewContext_new(DWORD dwContextType, const void *pvContext, HWND hwnd, LPCWSTR pwszTitle, DWORD dwFlags, void *pvReserved); +/*** AUTOGENERATED APILIST DECLARATIONS END ***/ + +#endif diff --git a/apilibs/kexbasen/dirlist b/apilibs/kexbasen/dirlist index c0c483e..77ebae9 100755 --- a/apilibs/kexbasen/dirlist +++ b/apilibs/kexbasen/dirlist @@ -10,3 +10,4 @@ shfolder winmm ws2_32 ole32 +cryptui diff --git a/apilibs/kexbasen/gdi32/UberGDI.c b/apilibs/kexbasen/gdi32/UberGDI.c index 59b5fd9..16c6684 100755 --- a/apilibs/kexbasen/gdi32/UberGDI.c +++ b/apilibs/kexbasen/gdi32/UberGDI.c @@ -48,15 +48,15 @@ FONTUID GetHDCFontUID(HDC hdc) /* MAKE_EXPORT GetGlyphIndicesW_new=GetGlyphIndicesW */ int WINAPI GetGlyphIndicesW_new( - HDC hdc, // handle to DC - LPWSTR lpstr, // string to convert - int c, // number of characters in string - LPWORD pgi, // array of glyph indices - DWORD fl // glyph options + HDC hdc, // handle to DC + LPWSTR lpstr, // string to convert + int c, // number of characters in string + LPWORD pgi, // array of glyph indices + DWORD fl // glyph options ) { HRESULT result; - if (!hdc || !pgi || (UINT)lpstr<0xFFFFu || !c) return GDI_ERROR; + if (!hdc || !pgi || (UINT)lpstr<0xFFFFu || c<=0) return GDI_ERROR; ScriptCache::instance.Lock(); FONTUID hFont = GetHDCFontUID(hdc); SCRIPT_CACHE cache = ScriptCache::instance.GetCache(hFont); @@ -110,41 +110,39 @@ static int WINAPI GdiGetCodePage( HDC hdc ) /* MAKE_EXPORT GetGlyphIndicesA_new=GetGlyphIndicesA */ int WINAPI GetGlyphIndicesA_new( - HDC hdc, // handle to DC - LPCSTR lpstr, // string to convert - int c, // number of characters in string - LPWORD pgi, // array of glyph indices - DWORD fl // glyph options + HDC hdc, // handle to DC + LPCSTR lpstr, // string to convert + int c, // number of characters in string + LPWORD pgi, // array of glyph indices + DWORD fl // glyph options ) { - int result; LPWSTR lpstrwide; if (!hdc || !pgi || (UINT)lpstr<0xFFFF || c<=0) return GDI_ERROR; lpstrwide = (LPWSTR)alloca(c*sizeof(WCHAR)); - if (MultiByteToWideChar(GdiGetCodePage(hdc),0,lpstr,c,lpstrwide,c)) - result = GetGlyphIndicesW_new(hdc,lpstrwide,c,pgi,fl); - else - result = GDI_ERROR; - return result; + c = MultiByteToWideChar(GdiGetCodePage(hdc),0,lpstr,c,lpstrwide,c); + if (!c) + return GDI_ERROR; + + return GetGlyphIndicesW_new(hdc,lpstrwide,c,pgi,fl); } /* MAKE_EXPORT GetTextExtentExPointI_new=GetTextExtentExPointI */ BOOL WINAPI GetTextExtentExPointI_new( - HDC hdc, // handle to DC - LPWORD pgiIn, // array of glyph indices - int cgi, // number of glyphs in array - int nMaxExtent, // maximum width of formatted string - LPINT lpnFit, // maximum number of characters - LPINT alpDx, // array of partial string widths - LPSIZE lpSize // string dimensions + HDC hdc, // handle to DC + LPWORD pgiIn, // array of glyph indices + int cgi, // number of glyphs in array + int nMaxExtent, // maximum width of formatted string + LPINT lpnFit, // maximum number of characters + LPINT alpDx, // array of partial string widths + LPSIZE lpSize // string dimensions ) { - ABC abc; - WORD* glyph = pgiIn; - int* dxs = alpDx; int i; int sum = 0; - int glyphwidth; + int glyphwidth; + int charextra = GetTextCharacterExtra(hdc); + ABC abc; BOOL unfit = FALSE; if ( !hdc || !pgiIn || cgi<=0 || !lpSize) @@ -152,25 +150,30 @@ BOOL WINAPI GetTextExtentExPointI_new( SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } - + ScriptCache::instance.Lock(); FONTUID hFont = GetHDCFontUID(hdc); SCRIPT_CACHE cache = ScriptCache::instance.GetCache(hFont); - //in UberKern, ScriptPlace was used. However, it's too costly... - //so let's compute the info ourselves + if (lpnFit) *lpnFit = cgi; for (i = 0; i < cgi; i++) { - if ( ScriptGetGlyphABCWidth(hdc,&cache,*glyph,&abc) != S_OK ) break; - glyphwidth = abc.abcA + abc.abcB + abc.abcC; - sum += glyphwidth; + if ( ScriptGetGlyphABCWidth(hdc,&cache,*pgiIn,&abc) != S_OK ) break; + glyphwidth = abc.abcA + abc.abcB + abc.abcC + charextra; + sum += glyphwidth; if ( !unfit ) { unfit = ( sum > nMaxExtent ); - if (alpDx) {*dxs = sum; dxs++;} - if (unfit && lpnFit) *lpnFit = i+1; //test test! + if (unfit) + { + if ( lpnFit ) *lpnFit = i; + } + else + { + if ( alpDx ) *alpDx++ = sum; + } } - glyph++; + pgiIn++; } lpSize->cx = sum; @@ -183,22 +186,22 @@ BOOL WINAPI GetTextExtentExPointI_new( /* MAKE_EXPORT GetTextExtentPointI_new=GetTextExtentPointI */ BOOL WINAPI GetTextExtentPointI_new( - HDC hdc, // handle to DC - LPWORD pgiIn, // glyph indices - int cgi, // number of indices in array - LPSIZE lpSize // string size + HDC hdc, // handle to DC + LPWORD pgiIn, // glyph indices + int cgi, // number of indices in array + LPSIZE lpSize // string size ) { - return GetTextExtentExPointI_new(hdc,pgiIn,cgi,32768,0,0,lpSize); + return GetTextExtentExPointI_new(hdc,pgiIn,cgi,0,0,0,lpSize); } /* MAKE_EXPORT GetCharWidthI_new=GetCharWidthI */ BOOL WINAPI GetCharWidthI_new( - HDC hdc, // handle to DC - UINT giFirst, // first glyph index in range - UINT cgi, // number of glyph indices in range - WORD* pgi, // array of glyph indices - INT* lpBuffer // buffer for widths + HDC hdc, // handle to DC + UINT giFirst, // first glyph index in range + UINT cgi, // number of glyph indices in range + WORD* pgi, // array of glyph indices + INT* lpBuffer // buffer for widths ) { ABC abc; @@ -243,11 +246,11 @@ BOOL WINAPI GetCharWidthI_new( /* MAKE_EXPORT GetCharABCWidthsI_new=GetCharABCWidthsI */ BOOL WINAPI GetCharABCWidthsI_new( - HDC hdc, // handle to DC - UINT giFirst, // first glyph index in range - UINT cgi, // count of glyph indices in range - LPWORD pgi, // array of glyph indices - LPABC lpabc // array of character widths + HDC hdc, // handle to DC + UINT giFirst, // first glyph index in range + UINT cgi, // count of glyph indices in range + LPWORD pgi, // array of glyph indices + LPABC lpabc // array of character widths ) { WORD glyph; @@ -283,15 +286,42 @@ BOOL WINAPI GetCharABCWidthsI_new( return TRUE; } +/* MAKE_EXPORT GetCharABCWidthsW_new=GetCharABCWidthsW */ +BOOL WINAPI GetCharABCWidthsW_new( + HDC hdc, // handle to DC + UINT uFirstChar, // first character in range + UINT uLastChar, // last character in range + LPABC lpabc // array of character widths +) +{ + if ( !hdc || !lpabc || uFirstChar>uLastChar ) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + UINT c = uLastChar-uFirstChar+1; + LPWORD glyphs = (LPWORD)alloca(c*sizeof(WORD)); + LPWSTR chrW = (LPWSTR)alloca(c*sizeof(WCHAR)); + LPWSTR strW = chrW; + for (int i = uFirstChar; i<=uLastChar; i++) + { + *chrW=(WCHAR)i; + chrW++; + } + if ( GetGlyphIndicesW_new(hdc,strW,c,glyphs,0) == GDI_ERROR ) + return FALSE; + return GetCharABCWidthsI_new(hdc,0,c,glyphs,lpabc); +} + /* MAKE_EXPORT GetGlyphOutlineW_new=GetGlyphOutlineW */ DWORD WINAPI GetGlyphOutlineW_new( - HDC hdc, // handle to DC - UINT uChar, // character to query - UINT uFormat, // data format - LPGLYPHMETRICS lpgm, // glyph metrics - DWORD cbBuffer, // size of data buffer - LPVOID lpvBuffer, // data buffer - CONST MAT2 *lpmat2 // transformation matrix + HDC hdc, // handle to DC + UINT uChar, // character to query + UINT uFormat, // data format + LPGLYPHMETRICS lpgm, // glyph metrics + DWORD cbBuffer, // size of data buffer + LPVOID lpvBuffer, // data buffer + CONST MAT2 *lpmat2 // transformation matrix ) { UINT glyph = 0; @@ -327,7 +357,7 @@ DWORD WINAPI GetGlyphOutlineW_new( lpgm->gmBlackBoxY = sz.cy; lpgm->gmptGlyphOrigin.x = 0; lpgm->gmptGlyphOrigin.y = sz.cy; - lpgm->gmCellIncX = sz.cx; + lpgm->gmCellIncX = (short) sz.cx; lpgm->gmCellIncY = 0; ret = 1; } diff --git a/apilibs/kexbasen/gdi32/_gdi32_apilist.c b/apilibs/kexbasen/gdi32/_gdi32_apilist.c index 4df3ccc..def58a2 100755 --- a/apilibs/kexbasen/gdi32/_gdi32_apilist.c +++ b/apilibs/kexbasen/gdi32/_gdi32_apilist.c @@ -43,10 +43,9 @@ static const apilib_named_api gdi32_named_apis[] = DECL_API("CreateICW", CreateICW_fwd), DECL_API("CreateMetaFileW", CreateMetaFileW_fwd), DECL_API("CreateScalableFontResourceW", CreateScalableFontResourceW_fwd), - DECL_API("EnumFontsW", EnumFontsW_fwd), DECL_API("EnumICMProfilesW", EnumICMProfilesW_fwd), DECL_API("GetCharABCWidthsI", GetCharABCWidthsI_new), - DECL_API("GetCharABCWidthsW", GetCharABCWidthsW_fwd), + DECL_API("GetCharABCWidthsW", GetCharABCWidthsW_new), DECL_API("GetCharWidthI", GetCharWidthI_new), DECL_API("GetCharacterPlacementW", GetCharacterPlacementW_fwd), DECL_API("GetEnhMetaFileDescriptionW", GetEnhMetaFileDescriptionW_fwd), diff --git a/apilibs/kexbasen/gdi32/_gdi32_apilist.h b/apilibs/kexbasen/gdi32/_gdi32_apilist.h index cfbde91..189a28e 100755 --- a/apilibs/kexbasen/gdi32/_gdi32_apilist.h +++ b/apilibs/kexbasen/gdi32/_gdi32_apilist.h @@ -34,6 +34,7 @@ BOOL WINAPI GetTextExtentExPointI_new(HDC hdc, LPWORD pgiIn, int cgi, int nMaxEx BOOL WINAPI GetTextExtentPointI_new(HDC hdc, LPWORD pgiIn, int cgi, LPSIZE lpSize); BOOL WINAPI GetCharWidthI_new(HDC hdc, UINT giFirst, UINT cgi, WORD* pgi, INT* lpBuffer); BOOL WINAPI GetCharABCWidthsI_new(HDC hdc, UINT giFirst, UINT cgi, LPWORD pgi, LPABC lpabc); +BOOL WINAPI GetCharABCWidthsW_new(HDC hdc, UINT uFirstChar, UINT uLastChar, LPABC lpabc); DWORD WINAPI GetGlyphOutlineW_new(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2); FWDPROC CopyEnhMetaFileW_fwd; FWDPROC CopyMetaFileW_fwd; @@ -45,9 +46,7 @@ FWDPROC CreateFontW_fwd; FWDPROC CreateICW_fwd; FWDPROC CreateMetaFileW_fwd; FWDPROC CreateScalableFontResourceW_fwd; -FWDPROC EnumFontsW_fwd; FWDPROC EnumICMProfilesW_fwd; -FWDPROC GetCharABCWidthsW_fwd; FWDPROC GetCharacterPlacementW_fwd; FWDPROC GetEnhMetaFileDescriptionW_fwd; FWDPROC GetEnhMetaFileW_fwd; diff --git a/apilibs/kexbasen/gdi32/unigdi32.c b/apilibs/kexbasen/gdi32/unigdi32.c index eadb461..d94873e 100755 --- a/apilibs/kexbasen/gdi32/unigdi32.c +++ b/apilibs/kexbasen/gdi32/unigdi32.c @@ -31,9 +31,7 @@ FORWARD_TO_UNICOWS(CreateFontW); FORWARD_TO_UNICOWS(CreateICW); FORWARD_TO_UNICOWS(CreateMetaFileW); FORWARD_TO_UNICOWS(CreateScalableFontResourceW); -FORWARD_TO_UNICOWS(EnumFontsW); FORWARD_TO_UNICOWS(EnumICMProfilesW); -FORWARD_TO_UNICOWS(GetCharABCWidthsW); FORWARD_TO_UNICOWS(GetCharacterPlacementW); FORWARD_TO_UNICOWS(GetEnhMetaFileDescriptionW); FORWARD_TO_UNICOWS(GetEnhMetaFileW); diff --git a/apilibs/kexbasen/kernel32/DelayLoadFailureHook.c b/apilibs/kexbasen/kernel32/DelayLoadFailureHook.c index 95fde93..4b6886a 100755 --- a/apilibs/kexbasen/kernel32/DelayLoadFailureHook.c +++ b/apilibs/kexbasen/kernel32/DelayLoadFailureHook.c @@ -39,8 +39,8 @@ typedef FARPROC (WINAPI* DLFH) (DWORD, PSHLWAPI_DELAYLOAD); /* MAKE_EXPORT DelayLoadFailureHook_new=DelayLoadFailureHook */ FARPROC WINAPI DelayLoadFailureHook_new( - LPSTR pszDllName, - LPSTR pszProcName + LPSTR pszDllName, + LPSTR pszProcName ) { SHLWAPI_DELAYLOAD param; diff --git a/apilibs/kexbasen/kernel32/ThreadPool.c b/apilibs/kexbasen/kernel32/ThreadPool.c index 984bd66..9eba4cd 100755 --- a/apilibs/kexbasen/kernel32/ThreadPool.c +++ b/apilibs/kexbasen/kernel32/ThreadPool.c @@ -48,13 +48,15 @@ #define TPS_EXECUTEIO 0x00000001 #define TPS_LONGEXECTIME 0x00000008 -typedef BOOL (WINAPI* SHQueueUserWorkItem_API) (LPTHREAD_START_ROUTINE pfnCallback, - LPVOID pContext, - LONG lPriority, - PDWORD dwTag, - PDWORD * pdwId, - LPCSTR pszModule, - DWORD dwFlags); +typedef BOOL (WINAPI* SHQueueUserWorkItem_API) ( + LPTHREAD_START_ROUTINE pfnCallback, + LPVOID pContext, + LONG lPriority, + PDWORD dwTag, + PDWORD * pdwId, + LPCSTR pszModule, + DWORD dwFlags +); static SHQueueUserWorkItem_API SHQueueUserWorkItem; @@ -89,12 +91,12 @@ BOOL WINAPI QueueUserWorkItem_new( LPTHREAD_START_ROUTINE Function, PVOID Contex typedef struct { - HANDLE Object; - HANDLE TimerObject; - WAITORTIMERCALLBACK Callback; - PVOID Context; - ULONG Milliseconds; - ULONG Flags; + HANDLE Object; + HANDLE TimerObject; + WAITORTIMERCALLBACK Callback; + PVOID Context; + ULONG Milliseconds; + ULONG Flags; PVOID waitThread; LONG State; LONG CallbacksPending; @@ -471,12 +473,12 @@ BOOL WINAPI UnregisterWait_new(HANDLE WaitHandle) typedef struct { - HANDLE TimerObject; - WAITORTIMERCALLBACK Callback; - PVOID Parameter; - ULONG DueTime; + HANDLE TimerObject; + WAITORTIMERCALLBACK Callback; + PVOID Parameter; + ULONG DueTime; DWORD Period; - ULONG Flags; + ULONG Flags; PVOID TimerQueue; LONG State; LONG CallbacksPending; diff --git a/apilibs/kexbasen/kernel32/TlsExt.c b/apilibs/kexbasen/kernel32/TlsExt.c index 821b305..59ccd25 100755 --- a/apilibs/kexbasen/kernel32/TlsExt.c +++ b/apilibs/kexbasen/kernel32/TlsExt.c @@ -109,14 +109,8 @@ BOOL init_exttls(void) void detach_exttls(void) { - TDB98* tdb; - LPVOID* ext; - - __asm mov eax, fs:18h; - __asm sub eax, 8; - __asm mov tdb, eax; - - ext = (LPVOID*) tdb->TlsSlots[TLS_SIZE-1]; + TDB98* tdb = get_tdb(); + LPVOID ext = tdb->TlsSlots[TLS_SIZE-1]; if (ext) { HeapFree(GetProcessHeap(), 0, ext); @@ -176,38 +170,38 @@ DWORD WINAPI TlsAlloc_new(void) /* MAKE_EXPORT TlsFree_new=TlsFree */ BOOL WINAPI TlsFree_new(DWORD dwTlsIndex) { - int ret; + int ret = 0; PDB98* pdb = get_pdb(); + _EnterSysLevel(k32lock); _EnterSysLevel(TlsLock); if (dwTlsIndex < TLS_SIZE-1) { int rem = dwTlsIndex % (sizeof(DWORD) * 8); int div = dwTlsIndex / (sizeof(DWORD) * 8); - pdb->tlsInUseBits[div] &= ~(1 << rem); - ret = 1; + if (pdb->tlsInUseBits[div] & (1 << rem)) + { + pdb->tlsInUseBits[div] &= ~(1 << rem); + ret = 1; + } } else if (dwTlsIndex < TOTAL_TLS_SIZE) { dwTlsIndex -= TLS_SIZE-1; int rem = dwTlsIndex % (sizeof(DWORD) * 8); int div = dwTlsIndex / (sizeof(DWORD) * 8); - ExtTlsBitmap[div] &= ~(1 << rem); - ret = 2; - } - else - { - SetLastError(ERROR_INVALID_PARAMETER); - ret = 0; + if (ExtTlsBitmap[div] & (1 << rem)) + { + ExtTlsBitmap[div] &= ~(1 << rem); + ret = 2; + } } if (ret) { const NODE* thread; - _EnterSysLevel(k32lock); - for (thread = pdb->ThreadList->firstNode ; thread != NULL ; thread = thread->next) { TDB98* tdb = (TDB98*) thread->data; @@ -220,13 +214,14 @@ BOOL WINAPI TlsFree_new(DWORD dwTlsIndex) ext[dwTlsIndex] = 0; } } - - _LeaveSysLevel(k32lock); } _LeaveSysLevel(TlsLock); + _LeaveSysLevel(k32lock); - return ret; + if (!ret) + SetLastError(ERROR_INVALID_PARAMETER); + return (ret != 0); } #ifdef __ASM_IS_L33T__ @@ -315,11 +310,7 @@ static inline void SetLastError_fast(TDB98* tdb, DWORD error) LPVOID WINAPI TlsGetValue_new2(DWORD dwTlsIndex) { - TDB98* tdb; - - __asm mov eax, fs:18h; - __asm sub eax, 8; - __asm mov tdb, eax; + TDB98* tdb = get_tdb(); if (dwTlsIndex < TLS_SIZE-1) { @@ -344,11 +335,7 @@ LPVOID WINAPI TlsGetValue_new2(DWORD dwTlsIndex) BOOL WINAPI TlsSetValue_new2(DWORD dwTlsIndex, LPVOID lpTlsValue) { - TDB98* tdb; - - __asm mov eax, fs:18h; - __asm sub eax, 8; - __asm mov tdb, eax; + TDB98* tdb = get_tdb(); if (dwTlsIndex < TLS_SIZE-1) { diff --git a/apilibs/kexbasen/kexbasen.dsp b/apilibs/kexbasen/kexbasen.dsp index 6d0fa13..31a6cee 100755 --- a/apilibs/kexbasen/kexbasen.dsp +++ b/apilibs/kexbasen/kexbasen.dsp @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib winmm.lib ws2_32.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll /DELAYLOAD:winmm.dll /DELAYLOAD:ws2_32.dll +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib cryptui.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib winmm.lib ws2_32.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll /DELAYLOAD:winmm.dll /DELAYLOAD:ws2_32.dll /DELAYLOAD:cryptui.dll # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "KernelEx Base NonShared - Win32 Debug" @@ -80,7 +80,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib winmm.lib ws2_32.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /debug /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll /DELAYLOAD:winmm.dll /DELAYLOAD:ws2_32.dll +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib cryptui.lib comdlg32.lib advapi32.lib shlwapi.lib shell32.lib rpcrt4.lib usp10.lib winmm.lib ws2_32.lib ../../common/KernelEx.lib ../../kexcrt/kexcrt.lib libc.lib delayimp.lib /nologo /dll /map /debug /machine:I386 /nodefaultlib /OPT:NOWIN98 /DELAYLOAD:shell32.dll /DELAYLOAD:rpcrt4.dll /DELAYLOAD:usp10.dll /DELAYLOAD:comdlg32.dll /DELAYLOAD:winspool.drv /DELAYLOAD:shlwapi.dll /DELAYLOAD:winmm.dll /DELAYLOAD:ws2_32.dll /DELAYLOAD:cryptui.dll # SUBTRACT LINK32 /pdb:none !ENDIF @@ -364,6 +364,22 @@ SOURCE=.\ole32\_ole32_apilist.h SOURCE=.\ole32\CoWaitForMultipleHandles.c # End Source File # End Group +# Begin Group "cryptui" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\cryptui\_cryptui_apilist.c +# End Source File +# Begin Source File + +SOURCE=.\cryptui\_cryptui_apilist.h +# End Source File +# Begin Source File + +SOURCE=.\cryptui\CryptUIDlgViewContext.c +# End Source File +# End Group # Begin Source File SOURCE=..\..\common\common.c diff --git a/apilibs/kexbasen/main.c b/apilibs/kexbasen/main.c index b574bff..9afe6a8 100755 --- a/apilibs/kexbasen/main.c +++ b/apilibs/kexbasen/main.c @@ -34,9 +34,10 @@ #include "winmm/_winmm_apilist.h" #include "ws2_32/_ws2_32_apilist.h" #include "ole32/_ole32_apilist.h" +#include "cryptui/_cryptui_apilist.h" //#include "/__apilist.h" -static apilib_api_table api_table[13]; +static apilib_api_table api_table[14]; static void fill_apitable() { @@ -52,6 +53,7 @@ static void fill_apitable() api_table[9] = apitable_winmm; api_table[10] = apitable_ws2_32; api_table[11] = apitable_ole32; + api_table[12] = apitable_cryptui; //last entry is null terminator } diff --git a/apilibs/kexbasen/rpcrt4/_rpcrt4_apilist.h b/apilibs/kexbasen/rpcrt4/_rpcrt4_apilist.h index f253ccd..8e5fd61 100755 --- a/apilibs/kexbasen/rpcrt4/_rpcrt4_apilist.h +++ b/apilibs/kexbasen/rpcrt4/_rpcrt4_apilist.h @@ -30,9 +30,9 @@ extern const apilib_api_table apitable_rpcrt4; /*** AUTOGENERATED APILIST DECLARATIONS BEGIN ***/ HRESULT WINAPI NdrDllGetClassObject_new(REFCLSID rclsid, REFIID riid, void **ppv, PVOID pVoidProxyFileList, const CLSID *pclsid, PVOID pVoidPSFactoryBuffer); -RPC_STATUS RPC_ENTRY RpcStringFreeW_new(IN OUT unsigned short ** String); -RPC_STATUS RPC_ENTRY UuidFromStringW_new(IN unsigned short * StringUuidW, OUT UUID * Uuid); -RPC_STATUS RPC_ENTRY UuidToStringW_new(IN UUID * Uuid, OUT unsigned short ** StringUuid); +RPC_STATUS RPC_ENTRY RpcStringFreeW_new(IN OUT LPWSTR * String); +RPC_STATUS RPC_ENTRY UuidFromStringW_new(IN LPWSTR StringUuidW, OUT UUID * Uuid); +RPC_STATUS RPC_ENTRY UuidToStringW_new(IN UUID * Uuid, OUT LPWSTR * StringUuid); /*** AUTOGENERATED APILIST DECLARATIONS END ***/ #endif diff --git a/apilibs/kexbasen/rpcrt4/unirpcrt4.c b/apilibs/kexbasen/rpcrt4/unirpcrt4.c index 7d19654..7569a1a 100755 --- a/apilibs/kexbasen/rpcrt4/unirpcrt4.c +++ b/apilibs/kexbasen/rpcrt4/unirpcrt4.c @@ -25,7 +25,7 @@ /* MAKE_EXPORT RpcStringFreeW_new=RpcStringFreeW */ RPC_STATUS RPC_ENTRY -RpcStringFreeW_new(IN OUT unsigned short ** String) +RpcStringFreeW_new(IN OUT LPWSTR * String) { HeapFree(GetProcessHeap(), 0, *String); return RPC_S_OK; @@ -34,7 +34,7 @@ RpcStringFreeW_new(IN OUT unsigned short ** String) /* MAKE_EXPORT UuidFromStringW_new=UuidFromStringW */ RPC_STATUS RPC_ENTRY -UuidFromStringW_new(IN unsigned short * StringUuidW, OUT UUID * Uuid) +UuidFromStringW_new(IN LPWSTR StringUuidW, OUT UUID * Uuid) { ALLOC_WtoA(StringUuid); return UuidFromStringA((unsigned char*) StringUuidA, Uuid); @@ -43,7 +43,7 @@ UuidFromStringW_new(IN unsigned short * StringUuidW, OUT UUID * Uuid) /* MAKE_EXPORT UuidToStringW_new=UuidToStringW */ RPC_STATUS RPC_ENTRY -UuidToStringW_new(IN UUID * Uuid, OUT unsigned short ** StringUuid) +UuidToStringW_new(IN UUID * Uuid, OUT LPWSTR * StringUuid) { RPC_STATUS ret; unsigned char* uuidA; @@ -51,7 +51,7 @@ UuidToStringW_new(IN UUID * Uuid, OUT unsigned short ** StringUuid) if (ret == RPC_S_OK) { int size = (strlen((char*) uuidA) + 1) * sizeof(short); - *StringUuid = (unsigned short*) HeapAlloc(GetProcessHeap(), 0, size); + *StringUuid = (LPWSTR) HeapAlloc(GetProcessHeap(), 0, size); if (!*StringUuid) { RpcStringFreeA(&uuidA); diff --git a/apilibs/kexbasen/shell32/SHCreateDirectoryEx.c b/apilibs/kexbasen/shell32/SHCreateDirectoryEx.c index 4204dc5..9375e7f 100755 --- a/apilibs/kexbasen/shell32/SHCreateDirectoryEx.c +++ b/apilibs/kexbasen/shell32/SHCreateDirectoryEx.c @@ -30,7 +30,7 @@ * SHCreateDirectoryEx is in ME shell but no security anyway. */ -static inline SHCreateDirectoryA(HWND hwnd, LPCSTR pszPath) +static inline int SHCreateDirectoryA(HWND hwnd, LPCSTR pszPath) { return SHCreateDirectory(hwnd, (LPCWSTR)pszPath); } diff --git a/apilibs/kexbasen/shell32/SHGetFolderPath.c b/apilibs/kexbasen/shell32/SHGetFolderPath.c index 0b57b39..a92c690 100755 --- a/apilibs/kexbasen/shell32/SHGetFolderPath.c +++ b/apilibs/kexbasen/shell32/SHGetFolderPath.c @@ -27,8 +27,8 @@ #include typedef struct { - BYTE jmp; - DWORD func; + BYTE jmp; + DWORD func; } LONGJMP, *PLONGJMP; #include diff --git a/apilibs/kexbasen/shell32/_shell32_apilist.c b/apilibs/kexbasen/shell32/_shell32_apilist.c index 8e40b22..a4e75ec 100755 --- a/apilibs/kexbasen/shell32/_shell32_apilist.c +++ b/apilibs/kexbasen/shell32/_shell32_apilist.c @@ -38,7 +38,7 @@ void uninit_shell32() static const apilib_named_api shell32_named_apis[] = { /*** AUTOGENERATED APILIST NAMED EXPORTS BEGIN ***/ - DECL_API("DragQueryFileW", DragQueryFileW_fwd), + DECL_API("DragQueryFileW", DragQueryFileW_new), DECL_API("ExtractIconExW", ExtractIconExW_fwd), DECL_API("ExtractIconW", ExtractIconW_fwd), DECL_API("FindExecutableW", FindExecutableW_fwd), diff --git a/apilibs/kexbasen/shell32/_shell32_apilist.h b/apilibs/kexbasen/shell32/_shell32_apilist.h index b57db48..b4bb5ef 100755 --- a/apilibs/kexbasen/shell32/_shell32_apilist.h +++ b/apilibs/kexbasen/shell32/_shell32_apilist.h @@ -23,6 +23,7 @@ #define _SHELL32_APILIST_H #include +#include #include "kexcoresdk.h" BOOL init_shell32(); @@ -40,7 +41,6 @@ HRESULT WINAPI SHGetSpecialFolderLocation_fix(HWND hwndOwner, int nFolder, LPVOI BOOL WINAPI SHGetSpecialFolderPathA_new(HWND hwndOwner, LPSTR lpszPath, int nFolder, BOOL fCreate); BOOL WINAPI SHGetSpecialFolderPathW_new(HWND hwndOwner, LPWSTR lpszPathW, int nFolder, BOOL fCreate); HRESULT WINAPI SHParseDisplayName_new(PCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut); -FWDPROC DragQueryFileW_fwd; FWDPROC ExtractIconExW_fwd; FWDPROC ExtractIconW_fwd; FWDPROC FindExecutableW_fwd; @@ -52,6 +52,7 @@ FWDPROC ShellExecuteW_fwd; FWDPROC SHFileOperationW_fwd; FWDPROC SHGetFileInfoW_fwd; FWDPROC SHGetNewLinkInfoW_fwd; +UINT WINAPI DragQueryFileW_new(HDROP hDrop, UINT iFile, LPWSTR lpszFileW, UINT cch); /*** AUTOGENERATED APILIST DECLARATIONS END ***/ #endif diff --git a/apilibs/kexbasen/shell32/unishell32.c b/apilibs/kexbasen/shell32/unishell32.c index ee2da41..d6800d0 100755 --- a/apilibs/kexbasen/shell32/unishell32.c +++ b/apilibs/kexbasen/shell32/unishell32.c @@ -1,6 +1,6 @@ /* * KernelEx - * Copyright (C) 2008, Xeno86 + * Copyright (C) 2008, 2010 Xeno86 * * This file is part of KernelEx source code. * @@ -20,8 +20,34 @@ */ #include "unifwd.h" +#include "common.h" +#include +#include + +/* MAKE_EXPORT DragQueryFileW_new=DragQueryFileW */ +UINT WINAPI DragQueryFileW_new(HDROP hDrop, UINT iFile, LPWSTR lpszFileW, UINT cch) +{ + UINT ret; + ALLOC_A(lpszFile, cch * 2); + + ret = DragQueryFileA(hDrop, iFile, lpszFileA, cch); + + if (ret && lpszFileA && iFile != 0xffffffff) + { + DWORD lasterr = GetLastError(); + + ret = AtoW(lpszFile, cch); + if (!ret && GetLastError() == ERROR_INSUFFICIENT_BUFFER) + ret = cch; + + if (ret) ret--; + + SetLastError(lasterr); + } + + return ret; +} -FORWARD_TO_UNICOWS(DragQueryFileW); FORWARD_TO_UNICOWS(ExtractIconExW); FORWARD_TO_UNICOWS(ExtractIconW); FORWARD_TO_UNICOWS(FindExecutableW); diff --git a/apilibs/kexbasen/winspool/uniwinspool.c b/apilibs/kexbasen/winspool/uniwinspool.c index 852fdcd..ce8cbb4 100755 --- a/apilibs/kexbasen/winspool/uniwinspool.c +++ b/apilibs/kexbasen/winspool/uniwinspool.c @@ -42,58 +42,60 @@ static const DWORD pi_sizeof[] = {0, sizeof(PRINTER_INFO_1), sizeof(PRINTER_INFO */ static LPDEVMODEW DEVMODEdupAtoW(const DEVMODEA *dmA) { - LPDEVMODEW dmW; - WORD size; + LPDEVMODEW dmW; + WORD size; - if (!dmA) return NULL; - size = dmA->dmSize + CCHDEVICENAME + - ((dmA->dmSize > FIELD_OFFSET(DEVMODEA, dmFormName)) ? CCHFORMNAME : 0); + if (!dmA) return NULL; + size = dmA->dmSize + CCHDEVICENAME + + ((dmA->dmSize > FIELD_OFFSET(DEVMODEA, dmFormName)) ? CCHFORMNAME : 0); - dmW = (LPDEVMODEW) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size + dmA->dmDriverExtra); - if (!dmW) return NULL; + dmW = (LPDEVMODEW) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size + dmA->dmDriverExtra); + if (!dmW) return NULL; - MultiByteToWideChar(CP_ACP, 0, (LPSTR)dmA->dmDeviceName, -1, + MultiByteToWideChar(CP_ACP, 0, (LPSTR)dmA->dmDeviceName, -1, dmW->dmDeviceName, CCHDEVICENAME); - if (FIELD_OFFSET(DEVMODEA, dmFormName) >= dmA->dmSize) { - memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, - dmA->dmSize - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); - } - else - { - memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, - FIELD_OFFSET(DEVMODEA, dmFormName) - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); + if (FIELD_OFFSET(DEVMODEA, dmFormName) >= dmA->dmSize) { + memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, + dmA->dmSize - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); + } + else + { + memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, + FIELD_OFFSET(DEVMODEA, dmFormName) - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); MultiByteToWideChar(CP_ACP, 0, (LPSTR)dmA->dmFormName, -1, dmW->dmFormName, CCHFORMNAME); - memcpy(&dmW->dmLogPixels, &dmA->dmLogPixels, dmA->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } + memcpy(&dmW->dmLogPixels, &dmA->dmLogPixels, dmA->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); + } - dmW->dmSize = size; - memcpy((char *)dmW + dmW->dmSize, (const char *)dmA + dmA->dmSize, dmA->dmDriverExtra); - return dmW; + dmW->dmSize = size; + memcpy((char *)dmW + dmW->dmSize, (const char *)dmA + dmA->dmSize, dmA->dmDriverExtra); + return dmW; } static void convert_printerinfo_WtoA(LPBYTE outW, LPBYTE pPrintersA, DWORD level, DWORD outlen, DWORD numentries) { - DWORD id = 0; - LPWSTR ptr; - INT len; + DWORD id = 0; + LPWSTR ptr; + INT len; - len = pi_sizeof[level] * numentries; - ptr = (LPWSTR) (outW + len); + len = pi_sizeof[level] * numentries; + ptr = (LPWSTR) (outW + len); /* first structures */ - outlen -= len; + outlen -= len; /* then text in unicode (we count in wchars from now on) */ outlen /= 2; - /* copy the numbers of all PRINTER_INFO_* first */ - memcpy(outW, pPrintersA, len); + /* copy the numbers of all PRINTER_INFO_* first */ + memcpy(outW, pPrintersA, len); - while (id < numentries) { - switch (level) { - case 1: + while (id < numentries) + { + switch (level) + { + case 1: { PRINTER_INFO_1W * piW = (PRINTER_INFO_1W *) outW; PRINTER_INFO_1A * piA = (PRINTER_INFO_1A *) pPrintersA; @@ -122,7 +124,7 @@ static void convert_printerinfo_WtoA(LPBYTE outW, LPBYTE pPrintersA, break; } - case 2: + case 2: { PRINTER_INFO_2W * piW = (PRINTER_INFO_2W *) outW; PRINTER_INFO_2A * piA = (PRINTER_INFO_2A *) pPrintersA; @@ -228,7 +230,7 @@ static void convert_printerinfo_WtoA(LPBYTE outW, LPBYTE pPrintersA, break; } - case 4: + case 4: { PRINTER_INFO_4W * piW = (PRINTER_INFO_4W *) outW; PRINTER_INFO_4A * piA = (PRINTER_INFO_4A *) pPrintersA; @@ -250,7 +252,7 @@ static void convert_printerinfo_WtoA(LPBYTE outW, LPBYTE pPrintersA, break; } - case 5: + case 5: { PRINTER_INFO_5W * piW = (PRINTER_INFO_5W *) outW; PRINTER_INFO_5A * piA = (PRINTER_INFO_5A *) pPrintersA; @@ -271,11 +273,11 @@ static void convert_printerinfo_WtoA(LPBYTE outW, LPBYTE pPrintersA, } break; } - } - pPrintersA += pi_sizeof[level]; - outW += pi_sizeof[level]; - id++; - } + } + pPrintersA += pi_sizeof[level]; + outW += pi_sizeof[level]; + id++; + } } //AddForm - not supported diff --git a/apilibs/kexbases/Advapi32/RegDisablePredefinedCache.c b/apilibs/kexbases/Advapi32/RegDisablePredefinedCache.c index e720f81..75206f1 100755 --- a/apilibs/kexbases/Advapi32/RegDisablePredefinedCache.c +++ b/apilibs/kexbases/Advapi32/RegDisablePredefinedCache.c @@ -24,5 +24,5 @@ /* MAKE_EXPORT RegDisablePredefinedCache_new=RegDisablePredefinedCache */ BOOL WINAPI RegDisablePredefinedCache_new() { - return ERROR_SUCCESS; + return ERROR_SUCCESS; } diff --git a/apilibs/kexbases/Advapi32/RegOpenCurrentUser.c b/apilibs/kexbases/Advapi32/RegOpenCurrentUser.c index 8e3ac41..57dca32 100755 --- a/apilibs/kexbases/Advapi32/RegOpenCurrentUser.c +++ b/apilibs/kexbases/Advapi32/RegOpenCurrentUser.c @@ -24,5 +24,5 @@ /* MAKE_EXPORT RegOpenCurrentUser_new=RegOpenCurrentUser */ LONG WINAPI RegOpenCurrentUser_new(REGSAM access, PHKEY retkey) { - return RegOpenKeyExA(HKEY_CURRENT_USER, NULL, 0, access, retkey); + return RegOpenKeyExA(HKEY_CURRENT_USER, NULL, 0, access, retkey); } diff --git a/apilibs/kexbases/Advapi32/TraceMessage.c b/apilibs/kexbases/Advapi32/TraceMessage.c index 4b1a0eb..476b6a8 100755 --- a/apilibs/kexbases/Advapi32/TraceMessage.c +++ b/apilibs/kexbases/Advapi32/TraceMessage.c @@ -23,11 +23,11 @@ /* MAKE_EXPORT TraceMessage_new=TraceMessage */ ULONG CDECL TraceMessage_new( - ULONG64 LoggerHandle, - ULONG MessageFlags, - LPGUID MessageGuid, - USHORT MessageNumber, - ... + ULONG64 LoggerHandle, + ULONG MessageFlags, + LPGUID MessageGuid, + USHORT MessageNumber, + ... ) { return ERROR_SUCCESS; diff --git a/apilibs/kexbases/Advapi32/uniadvapi32.c b/apilibs/kexbases/Advapi32/uniadvapi32.c index a217cb1..7da6f1c 100755 --- a/apilibs/kexbases/Advapi32/uniadvapi32.c +++ b/apilibs/kexbases/Advapi32/uniadvapi32.c @@ -86,14 +86,14 @@ LONG WINAPI RegQueryValueExW_new(HKEY hKey, LPCWSTR lpValueNameW, LPDWORD lpRese //MAKE_EXPORT RegEnumValueW_new=RegEnumValueW LONG WINAPI RegEnumValueW_new( - HKEY hKey, // handle to key to query - DWORD dwIndex, // index of value to query - LPWSTR lpValueName, // value buffer - LPDWORD lpcValueName, // size of value buffer - LPDWORD lpReserved, // reserved - LPDWORD lpType, // type buffer - LPBYTE lpData, // data buffer - LPDWORD lpcbData // size of data buffer + HKEY hKey, // handle to key to query + DWORD dwIndex, // index of value to query + LPWSTR lpValueName, // value buffer + LPDWORD lpcValueName, // size of value buffer + LPDWORD lpReserved, // reserved + LPDWORD lpType, // type buffer + LPBYTE lpData, // data buffer + LPDWORD lpcbData // size of data buffer ) { LONG ret; diff --git a/apilibs/kexbases/Gdi32/EnumFont.c b/apilibs/kexbases/Gdi32/EnumFont.c new file mode 100755 index 0000000..d393e02 --- /dev/null +++ b/apilibs/kexbases/Gdi32/EnumFont.c @@ -0,0 +1,171 @@ +/* + * KernelEx + * Copyright (C) 2010, Xeno86, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "common.h" + +typedef struct +{ + FONTENUMPROCW procW; + LPARAM lParam; + HKEY hKey; + ENUMLOGFONTEXDVW elfW; + ENUMTEXTMETRICW etmW; +} EnumHelperW_t; + +static const char regfontsig[] = "SOFTWARE\\KernelEx\\FontSignature"; +static const char regttfcachesize[] = "ttfCacheSize"; + +static inline void GetFontSignature(HKEY hkey, LOGFONTA* plfA, FONTSIGNATURE* sig) +{ + DWORD sz = sizeof(FONTSIGNATURE); + if ( RegQueryValueEx(hkey,plfA->lfFaceName,0,NULL,(LPBYTE)sig,&sz) != ERROR_SUCCESS ) + { + DBGPRINTF(("Querying signature from font %s",plfA->lfFaceName)); + HDC hdc = CreateCompatibleDC(0); + HFONT fnt = CreateFontIndirect(plfA); + HGDIOBJ old = SelectObject(hdc,fnt); + GetTextCharsetInfo(hdc,sig,0); + SelectObject(hdc,old); + DeleteObject(fnt); + DeleteDC(hdc); + sz = sizeof(FONTSIGNATURE); + RegSetValueEx(hkey,plfA->lfFaceName,0,REG_BINARY,(LPBYTE)sig,sz); + } +} + +static inline void ENUMLOGFONTEXAtoW(ENUMLOGFONTEXA* fontA, ENUMLOGFONTEXW* fontW) +{ + memcpy(&fontW->elfLogFont, &fontA->elfLogFont, FIELD_OFFSET(LOGFONT,lfFaceName)); + + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfLogFont.lfFaceName, -1, + fontW->elfLogFont.lfFaceName, LF_FACESIZE); + fontW->elfLogFont.lfFaceName[LF_FACESIZE - 1] = 0; + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfFullName, -1, + fontW->elfFullName, LF_FULLFACESIZE); + fontW->elfFullName[LF_FULLFACESIZE - 1] = 0; + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfStyle, -1, + fontW->elfStyle, LF_FACESIZE); + fontW->elfStyle[LF_FACESIZE - 1] = 0; + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfScript, -1, + fontW->elfScript, LF_FACESIZE); + fontW->elfScript[LF_FACESIZE - 1] = 0; +} + +static inline void NEWTEXTMETRICAtoW(NEWTEXTMETRICA* tmA, NEWTEXTMETRICW* tmW) +{ + memcpy(tmW,tmA,FIELD_OFFSET(NEWTEXTMETRICA,tmFirstChar)); + + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->tmFirstChar, 1, + &tmW->tmFirstChar, 1); + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->tmLastChar, 1, + &tmW->tmLastChar, 1); + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->tmDefaultChar, 1, + &tmW->tmDefaultChar, 1); + MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->tmBreakChar, 1, + &tmW->tmBreakChar, 1); + + memcpy(&tmW->tmItalic,&tmA->tmItalic,sizeof(NEWTEXTMETRICA) - FIELD_OFFSET(NEWTEXTMETRICA,tmItalic)); +} + +int WINAPI EnumFontWHelper( CONST LOGFONTA *lfA, CONST TEXTMETRICA *tmA, DWORD FontType, LPARAM lParam ) +{ + ENUMLOGFONTEXA* lpelfA = (ENUMLOGFONTEXA*)lfA; + NEWTEXTMETRICA* lpntmA = (NEWTEXTMETRICA*)tmA; + EnumHelperW_t* params = (EnumHelperW_t*)lParam; + + ENUMLOGFONTEXAtoW(lpelfA,¶ms->elfW.elfEnumLogfontEx); + NEWTEXTMETRICAtoW(lpntmA,¶ms->etmW.etmNewTextMetricEx.ntmTm); + if ( FontType == TRUETYPE_FONTTYPE ) + GetFontSignature(params->hKey,&lpelfA->elfLogFont,¶ms->etmW.etmNewTextMetricEx.ntmFontSig); + else + memset(¶ms->etmW.etmNewTextMetricEx.ntmFontSig,0,sizeof(FONTSIGNATURE)); + return params->procW((LOGFONTW*)¶ms->elfW,(TEXTMETRICW*)¶ms->etmW,FontType,params->lParam); +} + +/* MAKE_EXPORT EnumFontFamiliesExA_new=EnumFontFamiliesExA */ +int WINAPI EnumFontFamiliesExA_new(HDC hdc, LPLOGFONTA pLogfontA, + FONTENUMPROCA pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags) +{ + LOGFONTA logfont; + if (!pLogfontA) + { + memset(&logfont, 0, sizeof(logfont)); + logfont.lfCharSet = DEFAULT_CHARSET; + pLogfontA = &logfont; + } + return EnumFontFamiliesExA(hdc, pLogfontA, pEnumFontFamExProc, lParam, dwFlags); +} + +/* MAKE_EXPORT EnumFontFamiliesExW_new=EnumFontFamiliesExW */ +int WINAPI EnumFontFamiliesExW_new(HDC hdc, LPLOGFONTW pLogfontW, + FONTENUMPROCW pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags) +{ + LOGFONTA logfont; + if (pLogfontW) + { + memcpy(&logfont, pLogfontW, FIELD_OFFSET(LOGFONT,lfFaceName)); + WideCharToMultiByte(CP_ACP, 0, pLogfontW->lfFaceName, -1, logfont.lfFaceName, + LF_FACESIZE, NULL, NULL); + logfont.lfFaceName[LF_FACESIZE - 1] = '\0'; + } + else + { + memset(&logfont, 0, sizeof(logfont)); + logfont.lfCharSet = DEFAULT_CHARSET; + } + EnumHelperW_t params = {0}; + params.procW = pEnumFontFamExProc; + params.lParam = lParam; + RegCreateKey(HKEY_LOCAL_MACHINE,regfontsig,¶ms.hKey); + int ret = EnumFontFamiliesExA(hdc,&logfont,EnumFontWHelper,(LPARAM)¶ms,dwFlags); + RegCloseKey(params.hKey); + return ret; +} + +/* MAKE_EXPORT EnumFontFamiliesW_new=EnumFontFamiliesW */ +int WINAPI EnumFontFamiliesW_new( HDC hdc, LPCWSTR lpszFamilyW, + FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam) +{ + LPSTR lpszFamilyA; + STACK_WtoA(lpszFamilyW,lpszFamilyA); + EnumHelperW_t params = {0}; + params.procW = lpEnumFontFamProc; + params.lParam = lParam; + RegCreateKey(HKEY_LOCAL_MACHINE,regfontsig,¶ms.hKey); + int ret = EnumFontFamiliesA(hdc,lpszFamilyA,EnumFontWHelper,(LPARAM)¶ms); + RegCloseKey(params.hKey); + return ret; +} + +/* MAKE_EXPORT EnumFontsW_new=EnumFontsW */ +int WINAPI EnumFontsW_new( HDC hdc, LPCWSTR lpFaceNameW, + FONTENUMPROCW lpFontFunc, LPARAM lParam) +{ + LPSTR lpFaceNameA; + STACK_WtoA(lpFaceNameW,lpFaceNameA); + EnumHelperW_t params = {0}; + params.procW = lpFontFunc; + params.lParam = lParam; + RegCreateKey(HKEY_LOCAL_MACHINE,regfontsig,¶ms.hKey); + int ret = EnumFontsA(hdc,lpFaceNameA,EnumFontWHelper,(LPARAM)¶ms); + RegCloseKey(params.hKey); + return ret; +} diff --git a/apilibs/kexbases/Gdi32/GdiObjects.c b/apilibs/kexbases/Gdi32/GdiObjects.c index 5685af9..8e66ba6 100755 --- a/apilibs/kexbases/Gdi32/GdiObjects.c +++ b/apilibs/kexbases/Gdi32/GdiObjects.c @@ -149,17 +149,13 @@ DWORD WINAPI GetObjectType_fix( HGDIOBJ hgdiobj ) return result; } -__declspec(naked) +#pragma warning (disable:4035) //xeno approves static inline WORD GetCurrentTDB() { - __asm - { - mov ax, fs:[0Ch] - movzx eax, ax - ret - } + __asm mov ax, fs:[0Ch] } +#pragma warning (default:4035) /************************************************************************ The purpose of GdiObjects is to simulate NT GDI object rules, which @@ -268,12 +264,12 @@ HGDIOBJ WINAPI SelectObject_fix( HDC hdc, HGDIOBJ hgdiobj ) /* MAKE_EXPORT CreateDIBSection_fix=CreateDIBSection */ HBITMAP WINAPI CreateDIBSection_fix( - HDC hdc, // handle to DC - BITMAPINFO *pbmi, // bitmap data - UINT iUsage, // data type indicator - VOID **ppvBits, // bit values - HANDLE hSection, // handle to file mapping object - DWORD dwOffset // offset to bitmap bit values + HDC hdc, // handle to DC + BITMAPINFO *pbmi, // bitmap data + UINT iUsage, // data type indicator + VOID **ppvBits, // bit values + HANDLE hSection, // handle to file mapping object + DWORD dwOffset // offset to bitmap bit values ) { if (pbmi && pbmi->bmiHeader.biSize == sizeof(BITMAPINFO)) //9x does not forgive diff --git a/apilibs/kexbases/Gdi32/GdiObjects.h b/apilibs/kexbases/Gdi32/GdiObjects.h index 18fa01c..ef5c910 100755 --- a/apilibs/kexbases/Gdi32/GdiObjects.h +++ b/apilibs/kexbases/Gdi32/GdiObjects.h @@ -56,11 +56,11 @@ typedef struct { WORD bDoesntExist; DWORD dwOldSSSP; - WORD pLocalHeap; - WORD pAtomTable; - WORD pStackTop; - WORD pStackMin; - WORD pStackBottom; + WORD pLocalHeap; + WORD pAtomTable; + WORD pStackTop; + WORD pStackMin; + WORD pStackBottom; } INSTANCE16, *PINSTANCE16; typedef struct diff --git a/apilibs/kexbases/Gdi32/GetGlyphOutlineA_fix.c b/apilibs/kexbases/Gdi32/GetGlyphOutlineA_fix.c index cd0184c..1d20696 100755 --- a/apilibs/kexbases/Gdi32/GetGlyphOutlineA_fix.c +++ b/apilibs/kexbases/Gdi32/GetGlyphOutlineA_fix.c @@ -23,13 +23,13 @@ /* MAKE_EXPORT GetGlyphOutlineA_fix=GetGlyphOutlineA */ DWORD WINAPI GetGlyphOutlineA_fix( - HDC hdc, // handle to DC - UINT uChar, // character to query - UINT uFormat, // data format - LPGLYPHMETRICS lpgm, // glyph metrics - DWORD cbBuffer, // size of data buffer - LPVOID lpvBuffer, // data buffer - CONST MAT2 *lpmat2 // transformation matrix + HDC hdc, // handle to DC + UINT uChar, // character to query + UINT uFormat, // data format + LPGLYPHMETRICS lpgm, // glyph metrics + DWORD cbBuffer, // size of data buffer + LPVOID lpvBuffer, // data buffer + CONST MAT2 *lpmat2 // transformation matrix ) { //last parameter must point to writeable memory diff --git a/apilibs/kexbases/Gdi32/TextOut.c b/apilibs/kexbases/Gdi32/TextOut.c index 642faca..f458d6f 100755 --- a/apilibs/kexbases/Gdi32/TextOut.c +++ b/apilibs/kexbases/Gdi32/TextOut.c @@ -54,8 +54,8 @@ DWORD WINAPI GetFontUnicodeRanges_new( /* On 9x fallback to system function */ /* MAKE_EXPORT SetGraphicsMode_NT=SetGraphicsMode */ int WINAPI SetGraphicsMode_NT( - HDC hdc, // handle to device context - int iMode // graphics mode + HDC hdc, // handle to device context + int iMode // graphics mode ) { return GM_COMPATIBLE; @@ -63,8 +63,8 @@ int WINAPI SetGraphicsMode_NT( /* MAKE_EXPORT SetWorldTransform_9x=SetWorldTransform */ BOOL WINAPI SetWorldTransform_9x( - HDC hdc, // handle to device context - CONST XFORM *lpXform // transformation data + HDC hdc, // handle to device context + CONST XFORM *lpXform // transformation data ) { return FALSE; @@ -72,9 +72,9 @@ BOOL WINAPI SetWorldTransform_9x( /* MAKE_EXPORT GetRandomRgn_NT=GetRandomRgn */ int WINAPI GetRandomRgn_NT( - HDC hdc, // handle to DC - HRGN hrgn, // handle to region - INT iNum // must be SYSRGN + HDC hdc, // handle to DC + HRGN hrgn, // handle to region + INT iNum // must be SYSRGN ) { int result = GetRandomRgn(hdc,hrgn,iNum); @@ -106,8 +106,8 @@ void floattofrac( float f, int* m, int* d) /* MAKE_EXPORT SetWorldTransform_NT=SetWorldTransform */ BOOL WINAPI SetWorldTransform_NT( - HDC hdc, // handle to device context - CONST XFORM *lpXform // transformation data + HDC hdc, // handle to device context + CONST XFORM *lpXform // transformation data ) { GrabWin16Lock(); @@ -129,23 +129,26 @@ BOOL WINAPI SetWorldTransform_NT( //hack DC mode to anisotropic to make Set*ExtEx work savemapmode = dcobj->mapmode; dcobj->mapmode = MM_ANISOTROPIC; + ReleaseWin16Lock(); SetWindowExtEx(hdc,wx,wy,NULL); SetViewportExtEx(hdc,vx,vy,NULL); SetViewportOrgEx(hdc,(int)lpXform->eDx,(int)lpXform->eDy,NULL); //set it back + GrabWin16Lock(); + dcobj = GetDCObj(hdc); dcobj->mapmode = savemapmode; ReleaseWin16Lock(); return TRUE; } /************************************************************************/ -/* Those hacks shouldn't hurt anybody. */ +/* Those hacks shouldn't hurt anybody. */ /************************************************************************/ /* MAKE_EXPORT SetMapMode_NT=SetMapMode */ int WINAPI SetMapMode_NT( - HDC hdc, // handle to device context - int fnMapMode // new mapping mode + HDC hdc, // handle to device context + int fnMapMode // new mapping mode ) { @@ -155,8 +158,8 @@ int WINAPI SetMapMode_NT( /* MAKE_EXPORT GetTextMetricsA_NT=GetTextMetricsA */ BOOL WINAPI GetTextMetricsA_NT( - HDC hdc, // handle to DC - LPTEXTMETRIC lptm // text metrics + HDC hdc, // handle to DC + LPTEXTMETRIC lptm // text metrics ) { GrabWin16Lock(); @@ -170,20 +173,22 @@ BOOL WINAPI GetTextMetricsA_NT( } if ( dcobj->ViewportExtX != 1 || dcobj->ViewportExtY != 1 || dcobj->WindowExtX != 1 || dcobj->WindowExtY != 1 ) { + ReleaseWin16Lock(); saved = SaveDC(hdc); ResetMapMode(hdc); } + else + ReleaseWin16Lock(); retval = GetTextMetricsA(hdc,lptm); if ( saved ) - RestoreDC(hdc,-1); - ReleaseWin16Lock(); + RestoreDC(hdc,-1); return retval; } /* MAKE_EXPORT GetWorldTransform_NT=GetWorldTransform */ BOOL WINAPI GetWorldTransform_NT( - HDC hdc, // handle to device context - LPXFORM lpXform // transformation + HDC hdc, // handle to device context + LPXFORM lpXform // transformation ) { SIZE v; @@ -204,9 +209,9 @@ BOOL WINAPI GetWorldTransform_NT( /* MAKE_EXPORT ModifyWorldTransform_NT=ModifyWorldTransform */ BOOL WINAPI ModifyWorldTransform_NT( - HDC hdc, // handle to device context - CONST XFORM *lpXform, // transformation data - DWORD iMode // modification mode + HDC hdc, // handle to device context + CONST XFORM *lpXform, // transformation data + DWORD iMode // modification mode ) { //we accept only 'reset world' scenario @@ -242,14 +247,14 @@ static void WINAPI MakeDxFromDxDy(const int* lpDx, int* newlpDx, UINT cbCount) /* MAKE_EXPORT ExtTextOutA_new=ExtTextOutA */ BOOL WINAPI ExtTextOutA_new( - HDC hdc, // handle to DC - int X, // x-coordinate of reference point - int Y, // y-coordinate of reference point - UINT fuOptions, // text-output options - CONST RECT* lprc, // optional dimensions - LPCSTR lpString, // string - UINT cbCount, // number of characters in string - CONST INT* lpDx // array of spacing values + HDC hdc, // handle to DC + int X, // x-coordinate of reference point + int Y, // y-coordinate of reference point + UINT fuOptions, // text-output options + CONST RECT* lprc, // optional dimensions + LPCSTR lpString, // string + UINT cbCount, // number of characters in string + CONST INT* lpDx // array of spacing values ) { BOOL result; @@ -284,14 +289,14 @@ BOOL WINAPI ExtTextOutA_new( /* MAKE_EXPORT ExtTextOutW_new=ExtTextOutW */ BOOL WINAPI ExtTextOutW_new( - HDC hdc, // handle to DC - int X, // x-coordinate of reference point - int Y, // y-coordinate of reference point - UINT fuOptions, // text-output options - CONST RECT* lprc, // optional dimensions - LPCWSTR lpString, // string - UINT cbCount, // number of characters in string - CONST INT* lpDx // array of spacing values + HDC hdc, // handle to DC + int X, // x-coordinate of reference point + int Y, // y-coordinate of reference point + UINT fuOptions, // text-output options + CONST RECT* lprc, // optional dimensions + LPCWSTR lpString, // string + UINT cbCount, // number of characters in string + CONST INT* lpDx // array of spacing values ) { BOOL result; @@ -328,11 +333,15 @@ BOOL WINAPI ExtTextOutW_new( savemapmode = dcobj->mapmode; dcobj->mapmode = MM_ANISOTROPIC; } + ReleaseWin16Lock(); result = ExtTextOutW(hdc,X,Y,fuOptions,lprc,lpString,cbCount,lpDx); if ( savemapmode ) + { + GrabWin16Lock(); + dcobj = GetDCObj( hdc ); dcobj->mapmode = savemapmode; - ReleaseWin16Lock(); - + ReleaseWin16Lock(); + } if ( buffer && cbCount>128 ) HeapFree(GetProcessHeap(),0,buffer); return result; @@ -346,10 +355,10 @@ BOOL WINAPI PolyTextOutA_new( HDC hdc, const POLYTEXTA *pptxt, INT cStrings ) SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } - for (; cStrings>0; cStrings--, pptxt++) - if (!ExtTextOutA_new (hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) - return FALSE; - return TRUE; + for (; cStrings>0; cStrings--, pptxt++) + if (!ExtTextOutA_new (hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) + return FALSE; + return TRUE; } /* MAKE_EXPORT PolyTextOutW_new=PolyTextOutW */ @@ -360,8 +369,8 @@ BOOL WINAPI PolyTextOutW_new( HDC hdc, const POLYTEXTW *pptxt, INT cStrings ) SetLastError(ERROR_INVALID_PARAMETER); return FALSE; } - for (; cStrings>0; cStrings--, pptxt++) - if (!ExtTextOutW_new (hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) - return FALSE; - return TRUE; + for (; cStrings>0; cStrings--, pptxt++) + if (!ExtTextOutW_new (hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx )) + return FALSE; + return TRUE; } diff --git a/apilibs/kexbases/Gdi32/_gdi32_apilist.c b/apilibs/kexbases/Gdi32/_gdi32_apilist.c index e16992b..e60befc 100755 --- a/apilibs/kexbases/Gdi32/_gdi32_apilist.c +++ b/apilibs/kexbases/Gdi32/_gdi32_apilist.c @@ -47,6 +47,7 @@ static const apilib_named_api gdi32_named_apis[] = DECL_API("EnumFontFamiliesExA", EnumFontFamiliesExA_new), DECL_API("EnumFontFamiliesExW", EnumFontFamiliesExW_new), DECL_API("EnumFontFamiliesW", EnumFontFamiliesW_new), + DECL_API("EnumFontsW", EnumFontsW_new), DECL_API("ExtCreatePen", ExtCreatePen_fix), DECL_API("ExtTextOutA", ExtTextOutA_new), DECL_API("ExtTextOutW", ExtTextOutW_new), diff --git a/apilibs/kexbases/Gdi32/_gdi32_apilist.h b/apilibs/kexbases/Gdi32/_gdi32_apilist.h index 10e3d5d..d859a36 100755 --- a/apilibs/kexbases/Gdi32/_gdi32_apilist.h +++ b/apilibs/kexbases/Gdi32/_gdi32_apilist.h @@ -28,6 +28,10 @@ BOOL init_gdi32(); extern const apilib_api_table apitable_gdi32; /*** AUTOGENERATED APILIST DECLARATIONS BEGIN ***/ +int WINAPI EnumFontFamiliesExA_new(HDC hdc, LPLOGFONTA pLogfontA, FONTENUMPROCA pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags); +int WINAPI EnumFontFamiliesExW_new(HDC hdc, LPLOGFONTW pLogfontW, FONTENUMPROCW pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags); +int WINAPI EnumFontFamiliesW_new(HDC hdc, LPCWSTR lpszFamilyW, FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam); +int WINAPI EnumFontsW_new(HDC hdc, LPCWSTR lpFaceNameW, FONTENUMPROCW lpFontFunc, LPARAM lParam); INT WINAPI AddFontResourceExA_new(LPCSTR str, DWORD fl, PVOID pdv); BOOL WINAPI RemoveFontResourceExA_new(LPCSTR str, DWORD fl, PVOID pdv); HANDLE WINAPI AddFontMemResourceEx_stub(PVOID pbFont, DWORD cbFont, PVOID pdv, DWORD *pcFonts); @@ -59,9 +63,6 @@ STUB GetDCBrushColor_stub; STUB GetDCPenColor_stub; INT WINAPI AddFontResourceExW_new(LPCWSTR strW, DWORD fl, PVOID pdv); INT WINAPI AddFontResourceW_new(LPCWSTR strW); -int WINAPI EnumFontFamiliesExA_new(HDC hdc, LPLOGFONTA pLogfontA, FONTENUMPROCA pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags); -int WINAPI EnumFontFamiliesExW_new(HDC hdc, LPLOGFONTW pLogfontW, FONTENUMPROCW pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags); -int WINAPI EnumFontFamiliesW_new(HDC hdc, LPCWSTR lpszFamily, FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam); BOOL WINAPI RemoveFontResourceExW_new(LPCWSTR strW, DWORD fl, PVOID pdv); BOOL WINAPI RemoveFontResourceW_new(LPCWSTR strW); HPEN WINAPI ExtCreatePen_fix(DWORD dwPenStyle, DWORD dwWidth, CONST LOGBRUSH *lplb, DWORD dwStyleCount, CONST DWORD *lpStyle); diff --git a/apilibs/kexbases/Gdi32/unigdi32.c b/apilibs/kexbases/Gdi32/unigdi32.c index ad6ea2f..fbfb64a 100755 --- a/apilibs/kexbases/Gdi32/unigdi32.c +++ b/apilibs/kexbases/Gdi32/unigdi32.c @@ -22,193 +22,46 @@ #include "common.h" #include "_gdi32_apilist.h" -#include "../kernel32/_kernel32_apilist.h" - -typedef struct -{ - FONTENUMPROCW EnumProcW; - LPARAM lParam; -} EnumFamilies_t; - //MAKE_EXPORT AddFontResourceExW_new=AddFontResourceExW INT WINAPI AddFontResourceExW_new(LPCWSTR strW, DWORD fl, PVOID pdv) { - file_GetCP(); - file_ALLOC_WtoA(str); + LPSTR strA; + STACK_WtoA(strW,strA) return AddFontResourceExA_new(strA, fl, pdv); } //MAKE_EXPORT AddFontResourceW_new=AddFontResourceW INT WINAPI AddFontResourceW_new(LPCWSTR strW) { - file_GetCP(); - file_ALLOC_WtoA(str); + LPSTR strA; + STACK_WtoA(strW,strA) return AddFontResourceA(strA); } -static int CALLBACK EnumFontFamExConv(const LOGFONTA *plfA, - const TEXTMETRICA* ptmA, DWORD FontType, LPARAM lParam) -{ - const ENUMLOGFONTEXA* fontA = (const ENUMLOGFONTEXA*) plfA; - const NEWTEXTMETRICEXA* tmA = (const NEWTEXTMETRICEXA*) ptmA; - ENUMLOGFONTEXW elfeW; - NEWTEXTMETRICEXW ntmeW; - ENUMLOGFONTEXW* fontW = &elfeW; - NEWTEXTMETRICEXW* tmW = &ntmeW; - - EnumFamilies_t* pef = (EnumFamilies_t*) lParam; - - memcpy(&fontW->elfLogFont, &fontA->elfLogFont, sizeof(LOGFONTA) - LF_FACESIZE); - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfLogFont.lfFaceName, -1, - fontW->elfLogFont.lfFaceName, LF_FACESIZE); - fontW->elfLogFont.lfFaceName[LF_FACESIZE - 1] = 0; - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfFullName, -1, - fontW->elfFullName, LF_FULLFACESIZE); - fontW->elfFullName[LF_FULLFACESIZE - 1] = 0; - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfStyle, -1, - fontW->elfStyle, LF_FACESIZE); - fontW->elfStyle[LF_FACESIZE - 1] = 0; - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) fontA->elfScript, -1, - fontW->elfScript, LF_FACESIZE); - fontW->elfScript[LF_FACESIZE - 1] = 0; - - tmW->ntmTm.tmHeight = tmA->ntmTm.tmHeight; - tmW->ntmTm.tmAscent = tmA->ntmTm.tmAscent; - tmW->ntmTm.tmDescent = tmA->ntmTm.tmDescent; - tmW->ntmTm.tmInternalLeading = tmA->ntmTm.tmInternalLeading; - tmW->ntmTm.tmExternalLeading = tmA->ntmTm.tmExternalLeading; - tmW->ntmTm.tmAveCharWidth = tmA->ntmTm.tmAveCharWidth; - tmW->ntmTm.tmMaxCharWidth = tmA->ntmTm.tmMaxCharWidth; - tmW->ntmTm.tmWeight = tmA->ntmTm.tmWeight; - tmW->ntmTm.tmOverhang = tmA->ntmTm.tmOverhang; - tmW->ntmTm.tmDigitizedAspectX = tmA->ntmTm.tmDigitizedAspectX; - tmW->ntmTm.tmDigitizedAspectY = tmA->ntmTm.tmDigitizedAspectY; - tmW->ntmTm.tmItalic = tmA->ntmTm.tmItalic; - tmW->ntmTm.tmUnderlined = tmA->ntmTm.tmUnderlined; - tmW->ntmTm.tmStruckOut = tmA->ntmTm.tmStruckOut; - tmW->ntmTm.tmPitchAndFamily = tmA->ntmTm.tmPitchAndFamily; - tmW->ntmTm.tmCharSet = tmA->ntmTm.tmCharSet; - - //needs review - are this conversions necessary or is it enough to just copy? -#if 1 - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->ntmTm.tmFirstChar, 1, - &tmW->ntmTm.tmFirstChar, 1); - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->ntmTm.tmLastChar, 1, - &tmW->ntmTm.tmLastChar, 1); - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->ntmTm.tmDefaultChar, 1, - &tmW->ntmTm.tmDefaultChar, 1); - MultiByteToWideChar(CP_ACP, 0, (LPCSTR) &tmA->ntmTm.tmBreakChar, 1, - &tmW->ntmTm.tmBreakChar, 1); -#else - tmW->ntmTm.tmFirstChar = tmA->ntmTm.tmFirstChar; - tmW->ntmTm.tmLastChar = tmA->ntmTm.tmLastChar; - tmW->ntmTm.tmDefaultChar = tmA->ntmTm.tmDefaultChar; - tmW->ntmTm.tmBreakChar = tmA->ntmTm.tmBreakChar; -#endif - - if (FontType == TRUETYPE_FONTTYPE) - { - tmW->ntmTm.ntmFlags = tmA->ntmTm.ntmFlags; - tmW->ntmTm.ntmSizeEM = tmA->ntmTm.ntmSizeEM; - tmW->ntmTm.ntmCellHeight = tmA->ntmTm.ntmCellHeight; - tmW->ntmTm.ntmAvgWidth = tmA->ntmTm.ntmAvgWidth; - memset(&tmW->ntmFontSig, 0, sizeof(FONTSIGNATURE)); - } - else - { - memset(&tmW->ntmTm.ntmFlags, 0, sizeof(NEWTEXTMETRICEXW) - - FIELD_OFFSET(NEWTEXTMETRICEXW, ntmTm.ntmFlags)); - } - - return pef->EnumProcW((LOGFONTW*) &elfeW, (TEXTMETRICW*) &ntmeW, FontType, pef->lParam); -} - -/* Surprise surprise! - * logfont* is optional in EnumFontFamiliesEx on NT - * and means - all fonts, all charsets - */ - -/* MAKE_EXPORT EnumFontFamiliesExA_new=EnumFontFamiliesExA */ -int WINAPI EnumFontFamiliesExA_new(HDC hdc, LPLOGFONTA pLogfontA, - FONTENUMPROCA pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags) -{ - LOGFONTA logfont; - if (!pLogfontA) - { - memset(&logfont, 0, sizeof(logfont)); - logfont.lfCharSet = DEFAULT_CHARSET; - pLogfontA = &logfont; - } - return EnumFontFamiliesExA(hdc, pLogfontA, pEnumFontFamExProc, lParam, dwFlags); -} - -/* MAKE_EXPORT EnumFontFamiliesExW_new=EnumFontFamiliesExW */ -int WINAPI EnumFontFamiliesExW_new(HDC hdc, LPLOGFONTW pLogfontW, - FONTENUMPROCW pEnumFontFamExProc, LPARAM lParam, DWORD dwFlags) -{ - EnumFamilies_t ef; - LOGFONTA logfont; - if (pLogfontW) - { - memcpy(&logfont, pLogfontW, sizeof(LOGFONTA) - LF_FACESIZE); - WideCharToMultiByte(CP_ACP, 0, pLogfontW->lfFaceName, -1, logfont.lfFaceName, - LF_FACESIZE, NULL, NULL); - logfont.lfFaceName[LF_FACESIZE - 1] = '\0'; - } - else - { - memset(&logfont, 0, sizeof(logfont)); - logfont.lfCharSet = DEFAULT_CHARSET; - } - ef.EnumProcW = pEnumFontFamExProc; - ef.lParam = lParam; - return EnumFontFamiliesExA(hdc, &logfont, EnumFontFamExConv, (LPARAM) &ef, dwFlags); -} - -/* MAKE_EXPORT EnumFontFamiliesW_new=EnumFontFamiliesW */ -int WINAPI EnumFontFamiliesW_new(HDC hdc, LPCWSTR lpszFamily, - FONTENUMPROCW lpEnumFontFamProc, LPARAM lParam) -{ - LOGFONTW lf; - LOGFONTW* plf = NULL; - - if (lpszFamily) - { - if (!*lpszFamily) - return 1; - lstrcpynW_new(lf.lfFaceName, lpszFamily, LF_FACESIZE); - lf.lfCharSet = DEFAULT_CHARSET; - lf.lfPitchAndFamily = 0; - plf = &lf; - } - - return EnumFontFamiliesExW_new(hdc, plf, lpEnumFontFamProc, lParam, 0); -} - //MAKE_EXPORT RemoveFontResourceExW_new=RemoveFontResourceExW BOOL WINAPI RemoveFontResourceExW_new(LPCWSTR strW, DWORD fl, PVOID pdv) { - file_GetCP(); - file_ALLOC_WtoA(str); + LPSTR strA; + STACK_WtoA(strW,strA) return RemoveFontResourceExA_new(strA, fl, pdv); } //MAKE_EXPORT RemoveFontResourceW_new=RemoveFontResourceW BOOL WINAPI RemoveFontResourceW_new(LPCWSTR strW) { - file_GetCP(); - file_ALLOC_WtoA(str); + LPSTR strA; + STACK_WtoA(strW,strA) return RemoveFontResourceA(strA); } /* MAKE_EXPORT ExtCreatePen_fix=ExtCreatePen */ HPEN WINAPI ExtCreatePen_fix( - DWORD dwPenStyle, // pen style - DWORD dwWidth, // pen width - CONST LOGBRUSH *lplb, // brush attributes - DWORD dwStyleCount, // length of custom style array - CONST DWORD *lpStyle // custom style array + DWORD dwPenStyle, // pen style + DWORD dwWidth, // pen width + CONST LOGBRUSH *lplb, // brush attributes + DWORD dwStyleCount, // length of custom style array + CONST DWORD *lpStyle // custom style array ) { dwPenStyle &= ~PS_USERSTYLE; @@ -217,9 +70,9 @@ HPEN WINAPI ExtCreatePen_fix( /* MAKE_EXPORT GetObjectW_new=GetObjectW */ int WINAPI GetObjectW_new( - HGDIOBJ hgdiobj, // handle to graphics object - int cbBuffer, // size of buffer for object information - LPVOID lpvObject // buffer for object information + HGDIOBJ hgdiobj, // handle to graphics object + int cbBuffer, // size of buffer for object information + LPVOID lpvObject // buffer for object information ) { int type = GetObjectType_fix(hgdiobj); diff --git a/apilibs/kexbases/Kernel32/CompletionPorts.c b/apilibs/kexbases/Kernel32/CompletionPorts.c index 986f424..354da16 100755 --- a/apilibs/kexbases/Kernel32/CompletionPorts.c +++ b/apilibs/kexbases/Kernel32/CompletionPorts.c @@ -51,10 +51,10 @@ typedef struct /* MAKE_EXPORT CreateIoCompletionPort_new=CreateIoCompletionPort */ HANDLE WINAPI CreateIoCompletionPort_new( - HANDLE FileHandle, // handle to file - HANDLE ExistingCompletionPort, // handle to I/O completion port - ULONG_PTR CompletionKey, // completion key - DWORD NumberOfConcurrentThreads // number of threads to execute concurrently + HANDLE FileHandle, // handle to file + HANDLE ExistingCompletionPort, // handle to I/O completion port + ULONG_PTR CompletionKey, // completion key + DWORD NumberOfConcurrentThreads // number of threads to execute concurrently ) { //kexDebugPrint("CreateIoCompletionPort FileHandle %p Port %p Key %p Threads %d",FileHandle,ExistingCompletionPort,CompletionKey,NumberOfConcurrentThreads); @@ -81,11 +81,11 @@ HANDLE WINAPI CreateIoCompletionPort_new( /* MAKE_EXPORT GetQueuedCompletionStatus_new=GetQueuedCompletionStatus */ BOOL WINAPI GetQueuedCompletionStatus_new( - HANDLE CompletionPort, // handle to completion port - LPDWORD lpNumberOfBytes, // bytes transferred - PULONG_PTR lpCompletionKey, // file completion key - LPOVERLAPPED *lpOverlapped, // buffer - DWORD dwMilliseconds // optional timeout value + HANDLE CompletionPort, // handle to completion port + LPDWORD lpNumberOfBytes, // bytes transferred + PULONG_PTR lpCompletionKey, // file completion key + LPOVERLAPPED *lpOverlapped, // buffer + DWORD dwMilliseconds // optional timeout value ) { PCOMPLET_PORT port = (PCOMPLET_PORT)MapViewOfFile(CompletionPort,FILE_MAP_ALL_ACCESS,0,0,0); @@ -120,10 +120,10 @@ BOOL WINAPI GetQueuedCompletionStatus_new( /* MAKE_EXPORT PostQueuedCompletionStatus_new=PostQueuedCompletionStatus */ BOOL WINAPI PostQueuedCompletionStatus_new( - HANDLE CompletionPort, // handle to an I/O completion port - DWORD dwNumberOfBytesTransferred, // bytes transferred - ULONG_PTR dwCompletionKey, // completion key - LPOVERLAPPED lpOverlapped // overlapped buffer + HANDLE CompletionPort, // handle to an I/O completion port + DWORD dwNumberOfBytesTransferred, // bytes transferred + ULONG_PTR dwCompletionKey, // completion key + LPOVERLAPPED lpOverlapped // overlapped buffer ) { PCOMPLET_PORT port = (PCOMPLET_PORT)MapViewOfFile(CompletionPort,FILE_MAP_ALL_ACCESS,0,0,0); diff --git a/apilibs/kexbases/Kernel32/CopyFileEx.c b/apilibs/kexbases/Kernel32/CopyFileEx.c index 2f58206..aadf40d 100755 --- a/apilibs/kexbases/Kernel32/CopyFileEx.c +++ b/apilibs/kexbases/Kernel32/CopyFileEx.c @@ -22,8 +22,8 @@ #include /* MAKE_EXPORT CopyFileExA_new=CopyFileExA */ -BOOL WINAPI CopyFileExA_new(LPCSTR lpExistingFileNameA, LPCSTR lpNewFileNameA, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags) -{ - return CopyFileA(lpExistingFileNameA, lpNewFileNameA, - (dwCopyFlags & COPY_FILE_FAIL_IF_EXISTS) != 0); -} +BOOL WINAPI CopyFileExA_new(LPCSTR lpExistingFileNameA, LPCSTR lpNewFileNameA, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags) +{ + return CopyFileA(lpExistingFileNameA, lpNewFileNameA, + (dwCopyFlags & COPY_FILE_FAIL_IF_EXISTS) != 0); +} diff --git a/apilibs/kexbases/Kernel32/CreateThread_fix.c b/apilibs/kexbases/Kernel32/CreateThread_fix.c index 9606f57..d7e9145 100755 --- a/apilibs/kexbases/Kernel32/CreateThread_fix.c +++ b/apilibs/kexbases/Kernel32/CreateThread_fix.c @@ -23,12 +23,12 @@ /* MAKE_EXPORT CreateThread_fix=CreateThread */ HANDLE WINAPI CreateThread_fix( - LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD - SIZE_T dwStackSize, // initial stack size - LPTHREAD_START_ROUTINE lpStartAddress, // thread function - LPVOID lpParameter, // thread argument - DWORD dwCreationFlags, // creation option - LPDWORD lpThreadId // thread identifier + LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD + SIZE_T dwStackSize, // initial stack size + LPTHREAD_START_ROUTINE lpStartAddress, // thread function + LPVOID lpParameter, // thread argument + DWORD dwCreationFlags, // creation option + LPDWORD lpThreadId // thread identifier ) { DWORD dummy; diff --git a/apilibs/kexbases/Kernel32/FindFirstFileEx.c b/apilibs/kexbases/Kernel32/FindFirstFileEx.c new file mode 100755 index 0000000..3102a30 --- /dev/null +++ b/apilibs/kexbases/Kernel32/FindFirstFileEx.c @@ -0,0 +1,39 @@ +/* + * KernelEx + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include "common.h" +#include "_kernel32_apilist.h" + +/* MAKE_EXPORT FindFirstFileExA_new=FindFirstFileExA */ +HANDLE WINAPI FindFirstFileExA_new( LPCSTR lpFileNameA, FINDEX_INFO_LEVELS fInfoLevelId, + LPWIN32_FIND_DATAA lpFindFileDataA, FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, DWORD dwAdditionalFlags) +{ + return FindFirstFileA(lpFileNameA,lpFindFileDataA); +} + +/* MAKE_EXPORT FindFirstFileExW_new=FindFirstFileExW */ +HANDLE WINAPI FindFirstFileExW_new( LPWSTR lpFileNameW, FINDEX_INFO_LEVELS fInfoLevelId, + LPWIN32_FIND_DATAW lpFindFileDataW, FINDEX_SEARCH_OPS fSearchOp, + LPVOID lpSearchFilter, DWORD dwAdditionalFlags) +{ + return FindFirstFileW_new(lpFileNameW,lpFindFileDataW); +} diff --git a/apilibs/kexbases/Kernel32/GetModuleHandleEx.c b/apilibs/kexbases/Kernel32/GetModuleHandleEx.c index 46ae874..552b425 100755 --- a/apilibs/kexbases/Kernel32/GetModuleHandleEx.c +++ b/apilibs/kexbases/Kernel32/GetModuleHandleEx.c @@ -27,9 +27,9 @@ /* MAKE_EXPORT GetModuleHandleExA_new=GetModuleHandleExA */ BOOL WINAPI GetModuleHandleExA_new( - DWORD dwFlags, - LPCSTR lpModuleName, - HMODULE* phModule + DWORD dwFlags, + LPCSTR lpModuleName, + HMODULE* phModule ) { char buf[MAX_PATH]; @@ -60,9 +60,9 @@ BOOL WINAPI GetModuleHandleExA_new( /* MAKE_EXPORT GetModuleHandleExW_new=GetModuleHandleExW */ BOOL WINAPI GetModuleHandleExW_new( - DWORD dwFlags, - LPCWSTR lpModuleNameW, - HMODULE* phModule + DWORD dwFlags, + LPCWSTR lpModuleNameW, + HMODULE* phModule ) { if (dwFlags & GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS) diff --git a/apilibs/kexbases/Kernel32/GlobalMemoryStatusEx.c b/apilibs/kexbases/Kernel32/GlobalMemoryStatusEx.c index 514881c..00be2da 100755 --- a/apilibs/kexbases/Kernel32/GlobalMemoryStatusEx.c +++ b/apilibs/kexbases/Kernel32/GlobalMemoryStatusEx.c @@ -27,10 +27,10 @@ BOOL WINAPI GlobalMemoryStatusEx_new(LPMEMORYSTATUSEX lpmemex) MEMORYSTATUS mem; if (lpmemex->dwLength != sizeof(*lpmemex)) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } mem.dwLength = sizeof(mem); GlobalMemoryStatus(&mem); diff --git a/apilibs/kexbases/Kernel32/HeapLocks.c b/apilibs/kexbases/Kernel32/HeapLocks.c index 0beb527..febd76d 100755 --- a/apilibs/kexbases/Kernel32/HeapLocks.c +++ b/apilibs/kexbases/Kernel32/HeapLocks.c @@ -32,7 +32,7 @@ static BOOL IsValidHeap(HANDLE hHeap) /* MAKE_EXPORT HeapLock_new=HeapLock */ BOOL WINAPI HeapLock_new( - HANDLE hHeap + HANDLE hHeap ) { if ( !IsValidHeap(hHeap) ) return FALSE; @@ -42,7 +42,7 @@ BOOL WINAPI HeapLock_new( /* MAKE_EXPORT HeapUnlock_new=HeapUnlock */ BOOL WINAPI HeapUnlock_new( - HANDLE hHeap + HANDLE hHeap ) { if ( !IsValidHeap(hHeap) ) return FALSE; @@ -54,7 +54,7 @@ BOOL WINAPI HeapUnlock_new( /* MAKE_EXPORT GlobalLock_fix=GlobalLock */ LPVOID WINAPI GlobalLock_fix( - HGLOBAL hMem // address of the global memory object + HGLOBAL hMem // address of the global memory object ) { if (ISPOINTER(hMem)) @@ -64,7 +64,7 @@ LPVOID WINAPI GlobalLock_fix( /* MAKE_EXPORT GlobalUnlock_fix=GlobalUnlock */ BOOL WINAPI GlobalUnlock_fix( - HGLOBAL hMem // handle to the global memory object + HGLOBAL hMem // handle to the global memory object ) { if (ISPOINTER(hMem)) diff --git a/apilibs/kexbases/Kernel32/IsProcessorFeaturePresent.c b/apilibs/kexbases/Kernel32/IsProcessorFeaturePresent.c index 269323b..24882eb 100755 --- a/apilibs/kexbases/Kernel32/IsProcessorFeaturePresent.c +++ b/apilibs/kexbases/Kernel32/IsProcessorFeaturePresent.c @@ -16,10 +16,10 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#include - + */ + +#include + /* Processor feature flags. */ #define PF_FLOATING_POINT_PRECISION_ERRATA 0 #define PF_FLOATING_POINT_EMULATED 1 @@ -37,13 +37,13 @@ #define PF_SSE3_INSTRUCTIONS_AVAILABLE 13 #define PF_COMPARE_EXCHANGE128 14 #define PF_COMPARE64_EXCHANGE128 15 -#define PF_CHANNELS_ENABLED 16 - +#define PF_CHANNELS_ENABLED 16 + #define AUTH 0x68747541 /* "Auth" */ #define ENTI 0x69746e65 /* "enti" */ -#define CAMD 0x444d4163 /* "cAMD" */ - -static BYTE PF[17] = {0,}; +#define CAMD 0x444d4163 /* "cAMD" */ + +static BYTE PF[17] = {0,}; static void do_cpuid(unsigned int _eax, unsigned int *p) { @@ -51,52 +51,54 @@ static void do_cpuid(unsigned int _eax, unsigned int *p) __asm__("cpuid" : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) : "a" (_eax)); -#else - __asm { - mov eax, _eax - mov edi, p - cpuid - mov [edi], eax - mov [edi+4], ebx - mov [edi+8], ecx - mov [edi+12], edx - } -#endif -} - +#else + __asm { + mov eax, _eax + mov edi, p + cpuid + mov [edi], eax + mov [edi+4], ebx + mov [edi+8], ecx + mov [edi+12], edx + } +#endif +} + void get_cpuinfo() { - unsigned int regs[4], regs2[4]; + unsigned int regs[4], regs2[4]; - do_cpuid(0x00000000, regs); /* get standard cpuid level and vendor name */ - if (regs[0]>=0x00000001) /* Check for supported cpuid version */ - { - do_cpuid(0x00000001, regs2); /* get cpu features */ - PF[PF_FLOATING_POINT_EMULATED] = !(regs2[3] & 1); - PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = (regs2[3] & (1 << 4 )) >> 4; - PF[PF_COMPARE_EXCHANGE_DOUBLE] = (regs2[3] & (1 << 8 )) >> 8; - PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 23)) >> 23; - PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 25)) >> 25; - PF[PF_XMMI64_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 26)) >> 26; - PF[PF_SSE3_INSTRUCTIONS_AVAILABLE] = (regs2[2] & 1); + do_cpuid(0x00000000, regs); /* get standard cpuid level and vendor name */ + if (regs[0]>=0x00000001) /* Check for supported cpuid version */ + { + do_cpuid(0x00000001, regs2); /* get cpu features */ + PF[PF_FLOATING_POINT_EMULATED] = !(regs2[3] & 1); + PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = (regs2[3] & (1 << 4 )) >> 4; + PF[PF_COMPARE_EXCHANGE_DOUBLE] = (regs2[3] & (1 << 8 )) >> 8; + PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 23)) >> 23; + PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 25)) >> 25; + PF[PF_XMMI64_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 26)) >> 26; + PF[PF_SSE3_INSTRUCTIONS_AVAILABLE] = (regs2[2] & 1); - if (regs[1] == AUTH && - regs[3] == ENTI && - regs[2] == CAMD) { - do_cpuid(0x80000000, regs); /* get vendor cpuid level */ - if (regs[0]>=0x80000001) { - do_cpuid(0x80000001, regs2); /* get vendor features */ - PF[PF_3DNOW_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 31)) >> 31; - } - } - } -} - -/* MAKE_EXPORT IsProcessorFeaturePresent_new=IsProcessorFeaturePresent */ + if (regs[1] == AUTH && + regs[3] == ENTI && + regs[2] == CAMD) + { + do_cpuid(0x80000000, regs); /* get vendor cpuid level */ + if (regs[0]>=0x80000001) + { + do_cpuid(0x80000001, regs2); /* get vendor features */ + PF[PF_3DNOW_INSTRUCTIONS_AVAILABLE] = (regs2[3] & (1 << 31)) >> 31; + } + } + } +} + +/* MAKE_EXPORT IsProcessorFeaturePresent_new=IsProcessorFeaturePresent */ BOOL WINAPI IsProcessorFeaturePresent_new(DWORD feature) { if (feature < 17) return PF[feature]; else return FALSE; -} +} diff --git a/apilibs/kexbases/Kernel32/LockFileEx.c b/apilibs/kexbases/Kernel32/LockFileEx.c index 01d5c85..6ae8c3a 100755 --- a/apilibs/kexbases/Kernel32/LockFileEx.c +++ b/apilibs/kexbases/Kernel32/LockFileEx.c @@ -22,15 +22,24 @@ #include /* MAKE_EXPORT LockFileEx_new=LockFileEx */ -BOOL WINAPI LockFileEx_new(HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped) +BOOL WINAPI LockFileEx_new( + HANDLE hFile, + DWORD dwFlags, + DWORD dwReserved, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh, + LPOVERLAPPED lpOverlapped +) { - /* FIXME: flags LOCKFILE_FAIL_IMMEDIATELY and LOCKFILE_EXCLUSIVE_LOCK not supported (always set), - Event signalling not supported + /* + * FIXME: flags LOCKFILE_FAIL_IMMEDIATELY and LOCKFILE_EXCLUSIVE_LOCK not supported (always set), + * Event signalling not supported */ - if (dwReserved) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } - return LockFile(hFile, lpOverlapped->Offset, lpOverlapped->OffsetHigh, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh); + if (dwReserved) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + return LockFile(hFile, lpOverlapped->Offset, lpOverlapped->OffsetHigh, + nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh); } diff --git a/apilibs/kexbases/Kernel32/SetFilePointerEx.c b/apilibs/kexbases/Kernel32/SetFilePointerEx.c index bf426a7..f7e1525 100755 --- a/apilibs/kexbases/Kernel32/SetFilePointerEx.c +++ b/apilibs/kexbases/Kernel32/SetFilePointerEx.c @@ -29,12 +29,12 @@ BOOL WINAPI SetFilePointerEx_new(HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod) { DWORD lasterr = GetLastError(); - if ((liDistanceToMove.LowPart = SetFilePointer(hFile, liDistanceToMove.LowPart, &liDistanceToMove.HighPart, dwMoveMethod)) == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } - if (lpNewFilePointer) *lpNewFilePointer = liDistanceToMove; - SetLastError(lasterr); - return TRUE; + if ((liDistanceToMove.LowPart = SetFilePointer(hFile, liDistanceToMove.LowPart, &liDistanceToMove.HighPart, dwMoveMethod)) == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + if (lpNewFilePointer) *lpNewFilePointer = liDistanceToMove; + SetLastError(lasterr); + return TRUE; } diff --git a/apilibs/kexbases/Kernel32/TryEnterCriticalSection.c b/apilibs/kexbases/Kernel32/TryEnterCriticalSection.c index f8287f5..64024c8 100755 --- a/apilibs/kexbases/Kernel32/TryEnterCriticalSection.c +++ b/apilibs/kexbases/Kernel32/TryEnterCriticalSection.c @@ -69,38 +69,38 @@ BOOL init_tryentercritsec() BOOL WINAPI TryEnterCrst(CRIT_SECT* crit); -__asm__(".text\n\t" - ".align 4\n\t" - ".globl _TryEnterCrst@4\n\t" - ".def _TryEnterCrst@4; .scl 2; .type 32; .endef\n" - "_TryEnterCrst@4:\n\t" - "movl 4(%esp),%edx\n\t" - "xorl %eax,%eax\n\t" - "incl %eax\n\t" - "xorl %ecx,%ecx\n\t" - "cmpxchgl %ecx,0x10(%edx)\n\t" /* if (OP1==eax) { OP1=OP2; ZF=1; } else { eax=OP1; ZF=0 } */ - "movl %fs:0x18, %ecx\n\t" - "addl _offset,%ecx\n\t" - "movl (%ecx),%ecx\n\t" /* ecx will contain TDBX now */ - "cmpl $1,%eax\n\t" - "jnz .L1\n\t" - /* critical section was unowned => successful lock */ - "movl %ecx,8(%edx)\n\t" - "incl 4(%edx)\n\t" - "ret $4\n\t" +__asm__(".text\n\t" + ".align 4\n\t" + ".globl _TryEnterCrst@4\n\t" + ".def _TryEnterCrst@4; .scl 2; .type 32; .endef\n" + "_TryEnterCrst@4:\n\t" + "movl 4(%esp),%edx\n\t" + "xorl %eax,%eax\n\t" + "incl %eax\n\t" + "xorl %ecx,%ecx\n\t" + "cmpxchgl %ecx,0x10(%edx)\n\t" /* if (OP1==eax) { OP1=OP2; ZF=1; } else { eax=OP1; ZF=0 } */ + "movl %fs:0x18, %ecx\n\t" + "addl _offset,%ecx\n\t" + "movl (%ecx),%ecx\n\t" /* ecx will contain TDBX now */ + "cmpl $1,%eax\n\t" + "jnz .L1\n\t" + /* critical section was unowned => successful lock */ + "movl %ecx,8(%edx)\n\t" + "incl 4(%edx)\n\t" + "ret $4\n\t" ".L1: \n\t" - "cmpl %ecx,8(%edx)\n\t" - "jnz .L2\n\t" - /* critical section owned by this thread */ - "decl 0x10(%edx)\n\t" - "incl 4(%edx)\n\t" - "xorl %eax,%eax\n\t" - "incl %eax\n\t" - "ret $4\n\t" + "cmpl %ecx,8(%edx)\n\t" + "jnz .L2\n\t" + /* critical section owned by this thread */ + "decl 0x10(%edx)\n\t" + "incl 4(%edx)\n\t" + "xorl %eax,%eax\n\t" + "incl %eax\n\t" + "ret $4\n\t" ".L2: \n\t" - /* critical section owned by other thread - do nothing */ - "xorl %eax,%eax\n\t" - "ret $4\n\t" + /* critical section owned by other thread - do nothing */ + "xorl %eax,%eax\n\t" + "ret $4\n\t" ); #else diff --git a/apilibs/kexbases/Kernel32/_kernel32_apilist.c b/apilibs/kexbases/Kernel32/_kernel32_apilist.c index 997d14a..0a09883 100755 --- a/apilibs/kexbases/Kernel32/_kernel32_apilist.c +++ b/apilibs/kexbases/Kernel32/_kernel32_apilist.c @@ -77,7 +77,8 @@ static const apilib_named_api kernel32_named_apis[] = DECL_API("ExitProcess", ExitProcess_fix), DECL_API("FindAtomW", FindAtomW_new), DECL_API("FindFirstChangeNotificationW", FindFirstChangeNotificationW_new), - DECL_API("FindFirstFileExW", FindFirstFileExW_stub), + DECL_API("FindFirstFileExA", FindFirstFileExA_new), + DECL_API("FindFirstFileExW", FindFirstFileExW_new), DECL_API("FindFirstFileW", FindFirstFileW_new), DECL_API("FindNextFileW", FindNextFileW_new), DECL_API("FindResourceExW", FindResourceExW_new), diff --git a/apilibs/kexbases/Kernel32/_kernel32_apilist.h b/apilibs/kexbases/Kernel32/_kernel32_apilist.h index d11dfff..ae11c0b 100755 --- a/apilibs/kexbases/Kernel32/_kernel32_apilist.h +++ b/apilibs/kexbases/Kernel32/_kernel32_apilist.h @@ -44,6 +44,8 @@ BOOL WINAPI WriteFile_fix(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesTo UINT WINAPI GetTempFileNameA_fix(LPCSTR lpPathName, LPCSTR lpPrefixString, UINT uUnique, LPTSTR lpTempFileName); BOOL WINAPI GetDiskFreeSpaceA_fix(LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters); BOOL WINAPI GetDiskFreeSpaceExA_fix(LPCSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailable, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes); +HANDLE WINAPI FindFirstFileExA_new(LPCSTR lpFileNameA, FINDEX_INFO_LEVELS fInfoLevelId, LPWIN32_FIND_DATAA lpFindFileDataA, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags); +HANDLE WINAPI FindFirstFileExW_new(LPWSTR lpFileNameW, FINDEX_INFO_LEVELS fInfoLevelId, LPWIN32_FIND_DATAW lpFindFileDataW, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags); HWND WINAPI GetConsoleWindow_new(); BOOL WINAPI GetFileSizeEx_new(HANDLE hFile, PLARGE_INTEGER lpFileSize); BOOL WINAPI GetModuleHandleExA_new(DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule); @@ -85,7 +87,6 @@ STUB CreateHardLinkW_stub; STUB IsValidLanguageGroup_stub; STUB ReplaceFileA_stub; STUB ReplaceFileW_stub; -STUB FindFirstFileExW_stub; STUB HeapSetInformation_stub; STUB GetProcessIoCounters_stub; STUB RtlCaptureStackBackTrace_stub; diff --git a/apilibs/kexbases/Kernel32/_kernel32_stubs.c b/apilibs/kexbases/Kernel32/_kernel32_stubs.c index 059ebd9..de3f66b 100755 --- a/apilibs/kexbases/Kernel32/_kernel32_stubs.c +++ b/apilibs/kexbases/Kernel32/_kernel32_stubs.c @@ -26,7 +26,6 @@ UNIMPL_FUNC(CreateHardLinkW, 3); UNIMPL_FUNC(IsValidLanguageGroup, 2); UNIMPL_FUNC(ReplaceFileA, 6); UNIMPL_FUNC(ReplaceFileW, 6); -UNIMPL_FUNC(FindFirstFileExW, 6); UNIMPL_FUNC(HeapSetInformation, 4); UNIMPL_FUNC(GetProcessIoCounters, 2); UNIMPL_FUNC(RtlCaptureStackBackTrace, 4); diff --git a/apilibs/kexbases/Kernel32/locale.c b/apilibs/kexbases/Kernel32/locale.c index 6c9209d..243f6b6 100755 --- a/apilibs/kexbases/Kernel32/locale.c +++ b/apilibs/kexbases/Kernel32/locale.c @@ -43,35 +43,35 @@ */ /* MAKE_EXPORT CompareStringW_new=CompareStringW */ INT WINAPI CompareStringW_new(LCID lcid, DWORD style, - LPCWSTR str1, INT len1, LPCWSTR str2, INT len2) + LPCWSTR str1, INT len1, LPCWSTR str2, INT len2) { - INT ret; + INT ret; - if (!str1 || !str2) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } + if (!str1 || !str2) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } - if( style & ~(NORM_IGNORECASE|NORM_IGNORENONSPACE|NORM_IGNORESYMBOLS| - SORT_STRINGSORT|NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH|LOCALE_USE_CP_ACP|0x10000000) ) - { - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } + if( style & ~(NORM_IGNORECASE|NORM_IGNORENONSPACE|NORM_IGNORESYMBOLS| + SORT_STRINGSORT|NORM_IGNOREKANATYPE|NORM_IGNOREWIDTH|LOCALE_USE_CP_ACP|0x10000000) ) + { + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } - /* this style is related to diacritics in Arabic, Japanese, and Hebrew */ - if (style & 0x10000000) - WARN("Ignoring unknown style 0x10000000\n"); + /* this style is related to diacritics in Arabic, Japanese, and Hebrew */ + if (style & 0x10000000) + WARN("Ignoring unknown style 0x10000000\n"); - if (len1 < 0) len1 = strlenW(str1); - if (len2 < 0) len2 = strlenW(str2); + if (len1 < 0) len1 = strlenW(str1); + if (len2 < 0) len2 = strlenW(str2); - ret = wine_compare_string(style, str1, len1, str2, len2); + ret = wine_compare_string(style, str1, len1, str2, len2); - if (ret) /* need to translate result */ - return (ret < 0) ? CSTR_LESS_THAN : CSTR_GREATER_THAN; - return CSTR_EQUAL; + if (ret) /* need to translate result */ + return (ret < 0) ? CSTR_LESS_THAN : CSTR_GREATER_THAN; + return CSTR_EQUAL; } /****************************************************************************** @@ -82,52 +82,52 @@ INT WINAPI CompareStringW_new(LCID lcid, DWORD style, /* MAKE_EXPORT GetStringTypeW_new=GetStringTypeW */ BOOL WINAPI GetStringTypeW_new( DWORD type, LPCWSTR src, INT count, LPWORD chartype ) { - if (count == -1) count = strlenW(src) + 1; - switch(type) - { - case CT_CTYPE1: - while (count--) *chartype++ = get_char_typeW( *src++ ) & 0xfff; - break; - case CT_CTYPE2: - while (count--) *chartype++ = get_char_typeW( *src++ ) >> 12; - break; - case CT_CTYPE3: - { + if (count == -1) count = strlenW(src) + 1; + switch(type) + { + case CT_CTYPE1: + while (count--) *chartype++ = get_char_typeW( *src++ ) & 0xfff; + break; + case CT_CTYPE2: + while (count--) *chartype++ = get_char_typeW( *src++ ) >> 12; + break; + case CT_CTYPE3: + { #if 0 - WARN("CT_CTYPE3: semi-stub.\n"); - while (count--) - { - int c = *src; - WORD type1, type3 = 0; /* C3_NOTAPPLICABLE */ + WARN("CT_CTYPE3: semi-stub.\n"); + while (count--) + { + int c = *src; + WORD type1, type3 = 0; /* C3_NOTAPPLICABLE */ - type1 = get_char_typeW( *src++ ) & 0xfff; - /* try to construct type3 from type1 */ - if(type1 & C1_SPACE) type3 |= C3_SYMBOL; - if(type1 & C1_ALPHA) type3 |= C3_ALPHA; - if ((c>=0x30A0)&&(c<=0x30FF)) type3 |= C3_KATAKANA; - if ((c>=0x3040)&&(c<=0x309F)) type3 |= C3_HIRAGANA; - if ((c>=0x4E00)&&(c<=0x9FAF)) type3 |= C3_IDEOGRAPH; - if ((c>=0x0600)&&(c<=0x06FF)) type3 |= C3_KASHIDA; - if ((c>=0x3000)&&(c<=0x303F)) type3 |= C3_SYMBOL; + type1 = get_char_typeW( *src++ ) & 0xfff; + /* try to construct type3 from type1 */ + if(type1 & C1_SPACE) type3 |= C3_SYMBOL; + if(type1 & C1_ALPHA) type3 |= C3_ALPHA; + if ((c>=0x30A0)&&(c<=0x30FF)) type3 |= C3_KATAKANA; + if ((c>=0x3040)&&(c<=0x309F)) type3 |= C3_HIRAGANA; + if ((c>=0x4E00)&&(c<=0x9FAF)) type3 |= C3_IDEOGRAPH; + if ((c>=0x0600)&&(c<=0x06FF)) type3 |= C3_KASHIDA; + if ((c>=0x3000)&&(c<=0x303F)) type3 |= C3_SYMBOL; - if ((c>=0xFF00)&&(c<=0xFF60)) type3 |= C3_FULLWIDTH; - if ((c>=0xFF00)&&(c<=0xFF20)) type3 |= C3_SYMBOL; - if ((c>=0xFF3B)&&(c<=0xFF40)) type3 |= C3_SYMBOL; - if ((c>=0xFF5B)&&(c<=0xFF60)) type3 |= C3_SYMBOL; - if ((c>=0xFF21)&&(c<=0xFF3A)) type3 |= C3_ALPHA; - if ((c>=0xFF41)&&(c<=0xFF5A)) type3 |= C3_ALPHA; - if ((c>=0xFFE0)&&(c<=0xFFE6)) type3 |= C3_FULLWIDTH; - if ((c>=0xFFE0)&&(c<=0xFFE6)) type3 |= C3_SYMBOL; + if ((c>=0xFF00)&&(c<=0xFF60)) type3 |= C3_FULLWIDTH; + if ((c>=0xFF00)&&(c<=0xFF20)) type3 |= C3_SYMBOL; + if ((c>=0xFF3B)&&(c<=0xFF40)) type3 |= C3_SYMBOL; + if ((c>=0xFF5B)&&(c<=0xFF60)) type3 |= C3_SYMBOL; + if ((c>=0xFF21)&&(c<=0xFF3A)) type3 |= C3_ALPHA; + if ((c>=0xFF41)&&(c<=0xFF5A)) type3 |= C3_ALPHA; + if ((c>=0xFFE0)&&(c<=0xFFE6)) type3 |= C3_FULLWIDTH; + if ((c>=0xFFE0)&&(c<=0xFFE6)) type3 |= C3_SYMBOL; - if ((c>=0xFF61)&&(c<=0xFFDC)) type3 |= C3_HALFWIDTH; - if ((c>=0xFF61)&&(c<=0xFF64)) type3 |= C3_SYMBOL; - if ((c>=0xFF65)&&(c<=0xFF9F)) type3 |= C3_KATAKANA; - if ((c>=0xFF65)&&(c<=0xFF9F)) type3 |= C3_ALPHA; - if ((c>=0xFFE8)&&(c<=0xFFEE)) type3 |= C3_HALFWIDTH; - if ((c>=0xFFE8)&&(c<=0xFFEE)) type3 |= C3_SYMBOL; - *chartype++ = type3; - } - break; + if ((c>=0xFF61)&&(c<=0xFFDC)) type3 |= C3_HALFWIDTH; + if ((c>=0xFF61)&&(c<=0xFF64)) type3 |= C3_SYMBOL; + if ((c>=0xFF65)&&(c<=0xFF9F)) type3 |= C3_KATAKANA; + if ((c>=0xFF65)&&(c<=0xFF9F)) type3 |= C3_ALPHA; + if ((c>=0xFFE8)&&(c<=0xFFEE)) type3 |= C3_HALFWIDTH; + if ((c>=0xFFE8)&&(c<=0xFFEE)) type3 |= C3_SYMBOL; + *chartype++ = type3; + } + break; #else //use implementation from SHLWAPI - ordinal 35 HMODULE hShlwapi = GetModuleHandle("SHLWAPI.DLL"); @@ -143,12 +143,12 @@ BOOL WINAPI GetStringTypeW_new( DWORD type, LPCWSTR src, INT count, LPWORD chart kexGetProcAddress(hShlwapi, (LPSTR) 35); return GetStringType3ExW(src, count, chartype); #endif - } - default: - SetLastError( ERROR_INVALID_PARAMETER ); - return FALSE; - } - return TRUE; + } + default: + SetLastError( ERROR_INVALID_PARAMETER ); + return FALSE; + } + return TRUE; } @@ -160,8 +160,8 @@ BOOL WINAPI GetStringTypeW_new( DWORD type, LPCWSTR src, INT count, LPWORD chart /* MAKE_EXPORT GetStringTypeExW_new=GetStringTypeExW */ BOOL WINAPI GetStringTypeExW_new( LCID locale, DWORD type, LPCWSTR src, INT count, LPWORD chartype ) { - /* locale is ignored for Unicode */ - return GetStringTypeW_new( type, src, count, chartype ); + /* locale is ignored for Unicode */ + return GetStringTypeW_new( type, src, count, chartype ); } /************************************************************************* @@ -171,128 +171,128 @@ BOOL WINAPI GetStringTypeExW_new( LCID locale, DWORD type, LPCWSTR src, INT coun */ /* MAKE_EXPORT LCMapStringW_new=LCMapStringW */ INT WINAPI LCMapStringW_new(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, - LPWSTR dst, INT dstlen) + LPWSTR dst, INT dstlen) { - LPWSTR dst_ptr; + LPWSTR dst_ptr; - if (!src || !srclen || dstlen < 0) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } + if (!src || !srclen || dstlen < 0) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } - /* mutually exclusive flags */ - if ((flags & (LCMAP_LOWERCASE | LCMAP_UPPERCASE)) == (LCMAP_LOWERCASE | LCMAP_UPPERCASE) || - (flags & (LCMAP_HIRAGANA | LCMAP_KATAKANA)) == (LCMAP_HIRAGANA | LCMAP_KATAKANA) || - (flags & (LCMAP_HALFWIDTH | LCMAP_FULLWIDTH)) == (LCMAP_HALFWIDTH | LCMAP_FULLWIDTH) || - (flags & (LCMAP_TRADITIONAL_CHINESE | LCMAP_SIMPLIFIED_CHINESE)) == (LCMAP_TRADITIONAL_CHINESE | LCMAP_SIMPLIFIED_CHINESE)) - { - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } + /* mutually exclusive flags */ + if ((flags & (LCMAP_LOWERCASE | LCMAP_UPPERCASE)) == (LCMAP_LOWERCASE | LCMAP_UPPERCASE) || + (flags & (LCMAP_HIRAGANA | LCMAP_KATAKANA)) == (LCMAP_HIRAGANA | LCMAP_KATAKANA) || + (flags & (LCMAP_HALFWIDTH | LCMAP_FULLWIDTH)) == (LCMAP_HALFWIDTH | LCMAP_FULLWIDTH) || + (flags & (LCMAP_TRADITIONAL_CHINESE | LCMAP_SIMPLIFIED_CHINESE)) == (LCMAP_TRADITIONAL_CHINESE | LCMAP_SIMPLIFIED_CHINESE)) + { + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } - if (!dstlen) dst = NULL; + if (!dstlen) dst = NULL; - lcid = ConvertDefaultLocale(lcid); + lcid = ConvertDefaultLocale(lcid); - if (flags & LCMAP_SORTKEY) - { - INT ret; - if (src == dst) - { - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } + if (flags & LCMAP_SORTKEY) + { + INT ret; + if (src == dst) + { + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } - if (srclen < 0) srclen = strlenW(src); + if (srclen < 0) srclen = strlenW(src); - TRACE("(0x%04x,0x%08x,%s,%d,%p,%d)\n", - lcid, flags, debugstr_wn(src, srclen), srclen, dst, dstlen); + TRACE("(0x%04x,0x%08x,%s,%d,%p,%d)\n", + lcid, flags, debugstr_wn(src, srclen), srclen, dst, dstlen); - ret = wine_get_sortkey(flags, src, srclen, (BYTE *)dst, dstlen); - if (ret == 0) - SetLastError(ERROR_INSUFFICIENT_BUFFER); - else - ret++; - return ret; - } + ret = wine_get_sortkey(flags, src, srclen, (BYTE *)dst, dstlen); + if (ret == 0) + SetLastError(ERROR_INSUFFICIENT_BUFFER); + else + ret++; + return ret; + } - /* SORT_STRINGSORT must be used exclusively with LCMAP_SORTKEY */ - if (flags & SORT_STRINGSORT) - { - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } + /* SORT_STRINGSORT must be used exclusively with LCMAP_SORTKEY */ + if (flags & SORT_STRINGSORT) + { + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } - if (srclen < 0) srclen = strlenW(src) + 1; + if (srclen < 0) srclen = strlenW(src) + 1; - TRACE("(0x%04x,0x%08x,%s,%d,%p,%d)\n", - lcid, flags, debugstr_wn(src, srclen), srclen, dst, dstlen); + TRACE("(0x%04x,0x%08x,%s,%d,%p,%d)\n", + lcid, flags, debugstr_wn(src, srclen), srclen, dst, dstlen); - if (!dst) /* return required string length */ - { - INT len; + if (!dst) /* return required string length */ + { + INT len; - for (len = 0; srclen; src++, srclen--) - { - WCHAR wch = *src; - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - len++; - } - return len; - } + for (len = 0; srclen; src++, srclen--) + { + WCHAR wch = *src; + /* tests show that win2k just ignores NORM_IGNORENONSPACE, + * and skips white space and punctuation characters for + * NORM_IGNORESYMBOLS. + */ + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; + len++; + } + return len; + } - if (flags & LCMAP_UPPERCASE) - { - for (dst_ptr = dst; srclen && dstlen; src++, srclen--) - { - WCHAR wch = *src; - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - *dst_ptr++ = toupperW(wch); - dstlen--; - } - } - else if (flags & LCMAP_LOWERCASE) - { - for (dst_ptr = dst; srclen && dstlen; src++, srclen--) - { - WCHAR wch = *src; - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - *dst_ptr++ = tolowerW(wch); - dstlen--; - } - } - else - { - if (src == dst) - { - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } - for (dst_ptr = dst; srclen && dstlen; src++, srclen--) - { - WCHAR wch = *src; - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; - *dst_ptr++ = wch; - dstlen--; - } - } + if (flags & LCMAP_UPPERCASE) + { + for (dst_ptr = dst; srclen && dstlen; src++, srclen--) + { + WCHAR wch = *src; + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; + *dst_ptr++ = toupperW(wch); + dstlen--; + } + } + else if (flags & LCMAP_LOWERCASE) + { + for (dst_ptr = dst; srclen && dstlen; src++, srclen--) + { + WCHAR wch = *src; + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; + *dst_ptr++ = tolowerW(wch); + dstlen--; + } + } + else + { + if (src == dst) + { + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } + for (dst_ptr = dst; srclen && dstlen; src++, srclen--) + { + WCHAR wch = *src; + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; + *dst_ptr++ = wch; + dstlen--; + } + } - if (srclen) - { - SetLastError(ERROR_INSUFFICIENT_BUFFER); - return 0; - } + if (srclen) + { + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return 0; + } - return dst_ptr - dst; + return dst_ptr - dst; } /************************************************************************* @@ -304,31 +304,31 @@ INT WINAPI LCMapStringW_new(LCID lcid, DWORD flags, LPCWSTR src, INT srclen, INT WINAPI FoldStringW_new(DWORD dwFlags, LPCWSTR src, INT srclen, LPWSTR dst, INT dstlen) { - int ret; + int ret; - switch (dwFlags & (MAP_COMPOSITE|MAP_PRECOMPOSED|MAP_EXPAND_LIGATURES)) - { - case 0: - if (dwFlags) - break; - /* Fall through for dwFlags == 0 */ - case MAP_PRECOMPOSED|MAP_COMPOSITE: - case MAP_PRECOMPOSED|MAP_EXPAND_LIGATURES: - case MAP_COMPOSITE|MAP_EXPAND_LIGATURES: - SetLastError(ERROR_INVALID_FLAGS); - return 0; - } + switch (dwFlags & (MAP_COMPOSITE|MAP_PRECOMPOSED|MAP_EXPAND_LIGATURES)) + { + case 0: + if (dwFlags) + break; + /* Fall through for dwFlags == 0 */ + case MAP_PRECOMPOSED|MAP_COMPOSITE: + case MAP_PRECOMPOSED|MAP_EXPAND_LIGATURES: + case MAP_COMPOSITE|MAP_EXPAND_LIGATURES: + SetLastError(ERROR_INVALID_FLAGS); + return 0; + } - if (!src || !srclen || dstlen < 0 || (dstlen && !dst) || src == dst) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } + if (!src || !srclen || dstlen < 0 || (dstlen && !dst) || src == dst) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } - ret = wine_fold_string(dwFlags, src, srclen, dst, dstlen); - if (!ret) - SetLastError(ERROR_INSUFFICIENT_BUFFER); - return ret; + ret = wine_fold_string(dwFlags, src, srclen, dst, dstlen); + if (!ret) + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return ret; } /************************************************************************* @@ -353,54 +353,54 @@ INT WINAPI FoldStringW_new(DWORD dwFlags, LPCWSTR src, INT srclen, INT WINAPI FoldStringA_new(DWORD dwFlags, LPCSTR src, INT srclen, LPSTR dst, INT dstlen) { - INT ret = 0, srclenW = 0; - WCHAR *srcW = NULL, *dstW = NULL; + INT ret = 0, srclenW = 0; + WCHAR *srcW = NULL, *dstW = NULL; - if (!src || !srclen || dstlen < 0 || (dstlen && !dst) || src == dst) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } + if (!src || !srclen || dstlen < 0 || (dstlen && !dst) || src == dst) + { + SetLastError(ERROR_INVALID_PARAMETER); + return 0; + } - srclenW = MultiByteToWideChar(CP_ACP, dwFlags & MAP_COMPOSITE ? MB_COMPOSITE : 0, - src, srclen, NULL, 0); - srcW = (WCHAR*) HeapAlloc(GetProcessHeap(), 0, srclenW * sizeof(WCHAR)); + srclenW = MultiByteToWideChar(CP_ACP, dwFlags & MAP_COMPOSITE ? MB_COMPOSITE : 0, + src, srclen, NULL, 0); + srcW = (WCHAR*) HeapAlloc(GetProcessHeap(), 0, srclenW * sizeof(WCHAR)); - if (!srcW) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - goto FoldStringA_exit; - } + if (!srcW) + { + SetLastError(ERROR_NOT_ENOUGH_MEMORY); + goto FoldStringA_exit; + } - MultiByteToWideChar(CP_ACP, dwFlags & MAP_COMPOSITE ? MB_COMPOSITE : 0, - src, srclen, srcW, srclenW); + MultiByteToWideChar(CP_ACP, dwFlags & MAP_COMPOSITE ? MB_COMPOSITE : 0, + src, srclen, srcW, srclenW); - dwFlags = (dwFlags & ~MAP_PRECOMPOSED) | MAP_FOLDCZONE; + dwFlags = (dwFlags & ~MAP_PRECOMPOSED) | MAP_FOLDCZONE; - ret = FoldStringW_new(dwFlags, srcW, srclenW, NULL, 0); - if (ret && dstlen) - { - dstW = (WCHAR*) HeapAlloc(GetProcessHeap(), 0, ret * sizeof(WCHAR)); + ret = FoldStringW_new(dwFlags, srcW, srclenW, NULL, 0); + if (ret && dstlen) + { + dstW = (WCHAR*) HeapAlloc(GetProcessHeap(), 0, ret * sizeof(WCHAR)); - if (!dstW) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - goto FoldStringA_exit; - } + if (!dstW) + { + SetLastError(ERROR_NOT_ENOUGH_MEMORY); + goto FoldStringA_exit; + } - ret = FoldStringW_new(dwFlags, srcW, srclenW, dstW, ret); - if (!WideCharToMultiByte(CP_ACP, 0, dstW, ret, dst, dstlen, NULL, NULL)) - { - ret = 0; - SetLastError(ERROR_INSUFFICIENT_BUFFER); - } - } + ret = FoldStringW_new(dwFlags, srcW, srclenW, dstW, ret); + if (!WideCharToMultiByte(CP_ACP, 0, dstW, ret, dst, dstlen, NULL, NULL)) + { + ret = 0; + SetLastError(ERROR_INSUFFICIENT_BUFFER); + } + } - HeapFree(GetProcessHeap(), 0, dstW); + HeapFree(GetProcessHeap(), 0, dstW); FoldStringA_exit: - HeapFree(GetProcessHeap(), 0, srcW); - return ret; + HeapFree(GetProcessHeap(), 0, srcW); + return ret; } /************************************************************************* @@ -411,16 +411,16 @@ FoldStringA_exit: /* MAKE_EXPORT lstrcmpW_new=lstrcmpW */ int WINAPI lstrcmpW_new(LPCWSTR str1, LPCWSTR str2) { - int ret; + int ret; - if ((str1 == NULL) && (str2 == NULL)) return 0; - if (str1 == NULL) return -1; - if (str2 == NULL) return 1; + if ((str1 == NULL) && (str2 == NULL)) return 0; + if (str1 == NULL) return -1; + if (str2 == NULL) return 1; - ret = CompareStringW_new(GetThreadLocale(), 0, str1, -1, str2, -1); - if (ret) ret -= 2; - - return ret; + ret = CompareStringW_new(GetThreadLocale(), 0, str1, -1, str2, -1); + if (ret) ret -= 2; + + return ret; } /************************************************************************* @@ -431,15 +431,14 @@ int WINAPI lstrcmpW_new(LPCWSTR str1, LPCWSTR str2) /* MAKE_EXPORT lstrcmpiW_new=lstrcmpiW */ int WINAPI lstrcmpiW_new(LPCWSTR str1, LPCWSTR str2) { - int ret; - - if ((str1 == NULL) && (str2 == NULL)) return 0; - if (str1 == NULL) return -1; - if (str2 == NULL) return 1; + int ret; - ret = CompareStringW_new(GetThreadLocale(), NORM_IGNORECASE, str1, -1, str2, -1); - if (ret) ret -= 2; - - return ret; + if ((str1 == NULL) && (str2 == NULL)) return 0; + if (str1 == NULL) return -1; + if (str2 == NULL) return 1; + + ret = CompareStringW_new(GetThreadLocale(), NORM_IGNORECASE, str1, -1, str2, -1); + if (ret) ret -= 2; + + return ret; } - diff --git a/apilibs/kexbases/Kernel32/locale_casemap.c b/apilibs/kexbases/Kernel32/locale_casemap.c index f11044d..f93a035 100755 --- a/apilibs/kexbases/Kernel32/locale_casemap.c +++ b/apilibs/kexbases/Kernel32/locale_casemap.c @@ -6,1714 +6,1714 @@ extern const WCHAR wine_casemap_lower[]; const WCHAR wine_casemap_lower[3318] = { - /* index */ - 0x01bf, 0x02bf, 0x03bf, 0x0439, 0x0539, 0x0639, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0699, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0799, 0x0892, - 0x0100, 0x098f, 0x0100, 0x0100, 0x0a13, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0b13, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0bf6, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0041 .. 0x00ff */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0100 .. 0x01ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff39, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff87, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0000, 0x00d2, 0x0001, 0x0000, 0x0001, 0x0000, 0x00ce, 0x0001, - 0x0000, 0x00cd, 0x00cd, 0x0001, 0x0000, 0x0000, 0x004f, 0x00ca, - 0x00cb, 0x0001, 0x0000, 0x00cd, 0x00cf, 0x0000, 0x00d3, 0x00d1, - 0x0001, 0x0000, 0x0000, 0x0000, 0x00d3, 0x00d5, 0x0000, 0x00d6, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, - 0x0000, 0x00da, 0x0000, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, - 0x0000, 0x00d9, 0x00d9, 0x0001, 0x0000, 0x0001, 0x0000, 0x00db, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0001, 0x0000, 0x0002, - 0x0001, 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0xff9f, 0xffc8, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - /* 0x0200 .. 0x02ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0xff7e, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x2a2b, 0x0001, 0x0000, 0xff5d, 0x2a28, 0x0000, - 0x0000, 0x0001, 0x0000, 0xff3d, 0x0045, 0x0047, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0386 .. 0x03ff */ - 0x0026, 0x0000, 0x0025, 0x0025, 0x0025, 0x0000, 0x0040, 0x0000, - 0x003f, 0x003f, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffc4, 0x0000, - 0x0000, 0x0001, 0x0000, 0xfff9, 0x0001, 0x0000, 0x0000, 0xff7e, - 0xff7e, 0xff7e, - /* 0x0400 .. 0x04ff */ - 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, - 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x000f, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - /* 0x0500 .. 0x05ff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x10a0 .. 0x10ff */ - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, - 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1e00 .. 0x1eff */ - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f07 .. 0x1fff */ - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, - 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xffb6, 0xffb6, 0xfff7, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xffaa, 0xffaa, 0xffaa, 0xffaa, 0xfff7, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xff9c, 0xff9c, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xfff8, 0xfff8, 0xff90, 0xff90, 0xfff9, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xff80, 0xff80, 0xff82, 0xff82, 0xfff7, 0x0000, 0x0000, - 0x0000, - /* 0x2103 .. 0x21ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xe2a3, 0x0000, 0x0000, 0x0000, 0xdf41, - 0xdfba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001c, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x247c .. 0x24ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, - 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2c00 .. 0x2cff */ - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, - 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0xd609, 0xf11a, 0xd619, 0x0000, 0x0000, 0x0001, - 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, - 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xff1d .. 0xffff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000 + /* index */ + 0x01bf, 0x02bf, 0x03bf, 0x0439, 0x0539, 0x0639, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0699, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0799, 0x0892, + 0x0100, 0x098f, 0x0100, 0x0100, 0x0a13, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0b13, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0bf6, + /* defaults */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0041 .. 0x00ff */ + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0100 .. 0x01ff */ + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0xff39, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, + 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0xff87, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, + 0x0000, 0x00d2, 0x0001, 0x0000, 0x0001, 0x0000, 0x00ce, 0x0001, + 0x0000, 0x00cd, 0x00cd, 0x0001, 0x0000, 0x0000, 0x004f, 0x00ca, + 0x00cb, 0x0001, 0x0000, 0x00cd, 0x00cf, 0x0000, 0x00d3, 0x00d1, + 0x0001, 0x0000, 0x0000, 0x0000, 0x00d3, 0x00d5, 0x0000, 0x00d6, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, + 0x0000, 0x00da, 0x0000, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, + 0x0000, 0x00d9, 0x00d9, 0x0001, 0x0000, 0x0001, 0x0000, 0x00db, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0001, 0x0000, 0x0002, + 0x0001, 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0xff9f, 0xffc8, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + /* 0x0200 .. 0x02ff */ + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0xff7e, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x2a2b, 0x0001, 0x0000, 0xff5d, 0x2a28, 0x0000, + 0x0000, 0x0001, 0x0000, 0xff3d, 0x0045, 0x0047, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0386 .. 0x03ff */ + 0x0026, 0x0000, 0x0025, 0x0025, 0x0025, 0x0000, 0x0040, 0x0000, + 0x003f, 0x003f, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffc4, 0x0000, + 0x0000, 0x0001, 0x0000, 0xfff9, 0x0001, 0x0000, 0x0000, 0xff7e, + 0xff7e, 0xff7e, + /* 0x0400 .. 0x04ff */ + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x000f, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + /* 0x0500 .. 0x05ff */ + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x10a0 .. 0x10ff */ + 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, + 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, + 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, + 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, + 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x1c60, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1e00 .. 0x1eff */ + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1f07 .. 0x1fff */ + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, + 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xffb6, 0xffb6, 0xfff7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xffaa, 0xffaa, 0xffaa, 0xffaa, 0xfff7, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xff9c, 0xff9c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xfff8, 0xfff8, 0xff90, 0xff90, 0xfff9, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xff80, 0xff80, 0xff82, 0xff82, 0xfff7, 0x0000, 0x0000, + 0x0000, + /* 0x2103 .. 0x21ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xe2a3, 0x0000, 0x0000, 0x0000, 0xdf41, + 0xdfba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001c, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x247c .. 0x24ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x2c00 .. 0x2cff */ + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0xd609, 0xf11a, 0xd619, 0x0000, 0x0000, 0x0001, + 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, + 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xff1d .. 0xffff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000 }; extern const WCHAR wine_casemap_upper[]; const WCHAR wine_casemap_upper[3582] = { - /* index */ - 0x019f, 0x029f, 0x039f, 0x045a, 0x0556, 0x0656, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x06dd, 0x07dc, 0x08dc, - 0x0100, 0x09d0, 0x0100, 0x0100, 0x0a55, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0b3f, 0x0c3f, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0cfe, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0061 .. 0x00ff */ - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x02e7, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0079, - /* 0x0100 .. 0x01ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xff18, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xfed4, - 0x00c3, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0061, 0x0000, 0x0000, - 0x0000, 0xffff, 0x00a3, 0x0000, 0x0000, 0x0000, 0x0082, 0x0000, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0038, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, - 0xffff, 0xfffe, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xffb1, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, 0x0000, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - /* 0x0200 .. 0x02ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0x0000, 0x0000, 0xff2e, 0xff32, 0x0000, 0xff33, 0xff33, - 0x0000, 0xff36, 0x0000, 0xff35, 0x0000, 0x0000, 0x0000, 0x0000, - 0xff33, 0x0000, 0x0000, 0xff31, 0x0000, 0x0000, 0x0000, 0x0000, - 0xff2f, 0xff2d, 0x0000, 0x29f7, 0x0000, 0x0000, 0x0000, 0xff2d, - 0x0000, 0x0000, 0xff2b, 0x0000, 0x0000, 0xff2a, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29e7, 0x0000, 0x0000, - 0xff26, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0x0000, 0x0000, - 0xff26, 0xffbb, 0xff27, 0xff27, 0xffb9, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0345 .. 0x03ff */ - 0x0054, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0082, 0x0082, - 0x0082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffda, - 0xffdb, 0xffdb, 0xffdb, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe1, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffc0, - 0xffc1, 0xffc1, 0x0000, 0xffc2, 0xffc7, 0x0000, 0x0000, 0x0000, - 0xffd1, 0xffca, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0xffaa, 0xffb0, 0x0007, 0x0000, 0x0000, - 0xffa0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, - 0x0000, 0x0000, 0x0000, - /* 0x0404 .. 0x04ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, - 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, - 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0xfff1, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, - /* 0x0500 .. 0x05ff */ - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1d79 .. 0x1dff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0ee6, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1e01 .. 0x1eff */ - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffc5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1f00 .. 0x1fff */ - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x004a, 0x004a, 0x0056, 0x0056, 0x0056, 0x0056, 0x0064, 0x0064, - 0x0080, 0x0080, 0x0070, 0x0070, 0x007e, 0x007e, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe3db, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x210c .. 0x21ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffe4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xfff0, 0xfff0, 0xfff0, 0xfff0, - 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, - 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0x0000, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x247b .. 0x24ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, - 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2c16 .. 0x2cff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, - 0xffd0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xd5d5, - 0xd5d8, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, - 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x2d00 .. 0x2dff */ - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, - 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xff41 .. 0xffff */ - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, - 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 + /* index */ + 0x019f, 0x029f, 0x039f, 0x045a, 0x0556, 0x0656, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x06dd, 0x07dc, 0x08dc, + 0x0100, 0x09d0, 0x0100, 0x0100, 0x0a55, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0b3f, 0x0c3f, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0cfe, + /* defaults */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0061 .. 0x00ff */ + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x02e7, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0079, + /* 0x0100 .. 0x01ff */ + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xff18, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xfed4, + 0x00c3, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0061, 0x0000, 0x0000, + 0x0000, 0xffff, 0x00a3, 0x0000, 0x0000, 0x0000, 0x0082, 0x0000, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0038, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, + 0xffff, 0xfffe, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xffb1, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, 0x0000, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + /* 0x0200 .. 0x02ff */ + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0x0000, 0x0000, 0xff2e, 0xff32, 0x0000, 0xff33, 0xff33, + 0x0000, 0xff36, 0x0000, 0xff35, 0x0000, 0x0000, 0x0000, 0x0000, + 0xff33, 0x0000, 0x0000, 0xff31, 0x0000, 0x0000, 0x0000, 0x0000, + 0xff2f, 0xff2d, 0x0000, 0x29f7, 0x0000, 0x0000, 0x0000, 0xff2d, + 0x0000, 0x0000, 0xff2b, 0x0000, 0x0000, 0xff2a, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x29e7, 0x0000, 0x0000, + 0xff26, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0x0000, 0x0000, + 0xff26, 0xffbb, 0xff27, 0xff27, 0xffb9, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0345 .. 0x03ff */ + 0x0054, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0082, 0x0082, + 0x0082, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffda, + 0xffdb, 0xffdb, 0xffdb, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe1, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffc0, + 0xffc1, 0xffc1, 0x0000, 0xffc2, 0xffc7, 0x0000, 0x0000, 0x0000, + 0xffd1, 0xffca, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0xffaa, 0xffb0, 0x0007, 0x0000, 0x0000, + 0xffa0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, + 0x0000, 0x0000, 0x0000, + /* 0x0404 .. 0x04ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, + 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, + 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0xfff1, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, + /* 0x0500 .. 0x05ff */ + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1d79 .. 0x1dff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0ee6, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1e01 .. 0x1eff */ + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffc5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1f00 .. 0x1fff */ + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x004a, 0x004a, 0x0056, 0x0056, 0x0056, 0x0056, 0x0064, 0x0064, + 0x0080, 0x0080, 0x0070, 0x0070, 0x007e, 0x007e, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe3db, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x210c .. 0x21ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffe4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xfff0, 0xfff0, 0xfff0, 0xfff0, + 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, + 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0x0000, 0x0000, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x247b .. 0x24ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe6, 0xffe6, 0xffe6, + 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, + 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, + 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x2c16 .. 0x2cff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, + 0xffd0, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xd5d5, + 0xd5d8, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, + 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x2d00 .. 0x2dff */ + 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, + 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, + 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, + 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, + 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0xe3a0, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xff41 .. 0xffff */ + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, + 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; extern const WCHAR wine_digitmap[]; const WCHAR wine_digitmap[4619] = { - /* index */ - 0x01d0, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x028a, 0x0384, - 0x0100, 0x044e, 0x053e, 0x062e, 0x071e, 0x080e, 0x08be, 0x099e, - 0x0a5e, 0x0100, 0x0100, 0x0af5, 0x0100, 0x0100, 0x0100, 0x0b67, - 0x0c57, 0x0d11, 0x0100, 0x0deb, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0e7b, 0x0100, 0x0100, 0x0100, 0x0f1b, 0x0100, 0x0100, 0x101b, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x110b, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0030 .. 0x00ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xff80, 0xff80, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xff78, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0646 .. 0x06ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, - 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, - 0xf940, 0xf940, 0xf940, 0xf940, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0706 .. 0x07ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, - 0xf870, 0xf870, 0xf870, 0xf870, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0936 .. 0x09ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, - 0xf6ca, 0xf6ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, - 0xf64a, 0xf64a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x0a10 .. 0x0aff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf5ca, 0xf5ca, - 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf54a, 0xf54a, - 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0b10 .. 0x0bff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf4ca, 0xf4ca, - 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf44a, 0xf44a, - 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0c10 .. 0x0cff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf3ca, 0xf3ca, - 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf34a, 0xf34a, - 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0d10 .. 0x0dff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf2ca, 0xf2ca, - 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0e50 .. 0x0eff */ - 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, - 0xf1e0, 0xf1e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, - 0xf160, 0xf160, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x0f20 .. 0x0fff */ - 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, - 0xf110, 0xf110, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1040 .. 0x10ff */ - 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, - 0xeff0, 0xeff0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1369 .. 0x13ff */ - 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, - 0xecc8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x178e .. 0x17ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, - 0xe850, 0xe850, 0xe850, 0xe850, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x1810 .. 0x18ff */ - 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, - 0xe820, 0xe820, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x1946 .. 0x19ff */ - 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, - 0xe6ea, 0xe6ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, - 0xe660, 0xe660, 0xe660, 0xe660, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x1b26 .. 0x1bff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, - 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0x2070 .. 0x20ff */ - 0xdfc0, 0x0000, 0x0000, 0x0000, 0xdfc0, 0xdfc0, 0xdfc0, 0xdfc0, - 0xdfc0, 0xdfc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, - 0xdfb0, 0xdfb0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0x2460 .. 0x24ff */ - 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, - 0xdbd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, - 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, - 0xdba9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0xdb46, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xdb3c, 0xdb3c, 0xdb3c, - 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0x0000, 0xdb31, - /* 0x2700 .. 0x27ff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd8bb, 0xd8bb, - 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0x0000, - 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, - 0xd8b1, 0x0000, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, - 0xd8a7, 0xd8a7, 0xd8a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xff10 .. 0xffff */ - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 + /* index */ + 0x01d0, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x028a, 0x0384, + 0x0100, 0x044e, 0x053e, 0x062e, 0x071e, 0x080e, 0x08be, 0x099e, + 0x0a5e, 0x0100, 0x0100, 0x0af5, 0x0100, 0x0100, 0x0100, 0x0b67, + 0x0c57, 0x0d11, 0x0100, 0x0deb, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0e7b, 0x0100, 0x0100, 0x0100, 0x0f1b, 0x0100, 0x0100, 0x101b, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x110b, + /* defaults */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0030 .. 0x00ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xff80, 0xff80, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xff78, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0646 .. 0x06ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, + 0xf9d0, 0xf9d0, 0xf9d0, 0xf9d0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, 0xf940, + 0xf940, 0xf940, 0xf940, 0xf940, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x0706 .. 0x07ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, 0xf870, + 0xf870, 0xf870, 0xf870, 0xf870, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x0936 .. 0x09ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, 0xf6ca, + 0xf6ca, 0xf6ca, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, 0xf64a, + 0xf64a, 0xf64a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x0a10 .. 0x0aff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf5ca, 0xf5ca, + 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, 0xf5ca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf54a, 0xf54a, + 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, 0xf54a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0b10 .. 0x0bff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf4ca, 0xf4ca, + 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, 0xf4ca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf44a, 0xf44a, + 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, 0xf44a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0c10 .. 0x0cff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf3ca, 0xf3ca, + 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, 0xf3ca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf34a, 0xf34a, + 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, 0xf34a, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0d10 .. 0x0dff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf2ca, 0xf2ca, + 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, 0xf2ca, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0e50 .. 0x0eff */ + 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, 0xf1e0, + 0xf1e0, 0xf1e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, 0xf160, + 0xf160, 0xf160, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x0f20 .. 0x0fff */ + 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, 0xf110, + 0xf110, 0xf110, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1040 .. 0x10ff */ + 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, 0xeff0, + 0xeff0, 0xeff0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1369 .. 0x13ff */ + 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, 0xecc8, + 0xecc8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x178e .. 0x17ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, 0xe850, + 0xe850, 0xe850, 0xe850, 0xe850, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x1810 .. 0x18ff */ + 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, 0xe820, + 0xe820, 0xe820, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x1946 .. 0x19ff */ + 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, 0xe6ea, + 0xe6ea, 0xe6ea, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, 0xe660, + 0xe660, 0xe660, 0xe660, 0xe660, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x1b26 .. 0x1bff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, + 0xe4e0, 0xe4e0, 0xe4e0, 0xe4e0, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0x2070 .. 0x20ff */ + 0xdfc0, 0x0000, 0x0000, 0x0000, 0xdfc0, 0xdfc0, 0xdfc0, 0xdfc0, + 0xdfc0, 0xdfc0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, 0xdfb0, + 0xdfb0, 0xdfb0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0x2460 .. 0x24ff */ + 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, 0xdbd1, + 0xdbd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, + 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0xdbbd, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, 0xdba9, + 0xdba9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0xdb46, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xdb3c, 0xdb3c, 0xdb3c, + 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0xdb3c, 0x0000, 0xdb31, + /* 0x2700 .. 0x27ff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xd8bb, 0xd8bb, + 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0xd8bb, 0x0000, + 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, 0xd8b1, + 0xd8b1, 0x0000, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, 0xd8a7, + 0xd8a7, 0xd8a7, 0xd8a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xff10 .. 0xffff */ + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; extern const WCHAR wine_compatmap[]; const WCHAR wine_compatmap[1497] = { - /* index */ - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, - 0x0100, 0x0200, 0x0300, 0x0100, 0x0100, 0x0100, 0x03da, 0x04d9, - /* defaults */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xf900 .. 0xf9ff */ - 0x9348, 0x6df3, 0x95c8, 0x93c5, 0x75cd, 0x552d, 0x5adf, 0xa695, - 0xa694, 0x6048, 0x98c7, 0x5c7c, 0x603c, 0x68e9, 0x7d5b, 0x8676, - 0x8d2f, 0x8ea9, 0x8fe6, 0x977c, 0x70ee, 0x7406, 0x77c3, 0x7ac7, - 0x8b25, 0x9851, 0xa0d7, 0x5567, 0x5a59, 0x71e7, 0x78fd, 0x8d0e, - 0xa4fe, 0x642f, 0x76c9, 0x8caa, 0x9040, 0x69a4, 0x88b2, 0x8ef8, - 0x65a2, 0x6dee, 0x7440, 0x79d1, 0x97a2, 0x5659, 0x5889, 0x59af, - 0x6b94, 0x71a2, 0x78de, 0x7db4, 0x86cd, 0x8cd1, 0x8d26, 0x94b8, - 0x9dfa, 0xa236, 0xa4c0, 0x7f51, 0x8043, 0x8463, 0x8a8b, 0x99c5, - 0xa53f, 0x9195, 0x5f9d, 0x65c1, 0x831c, 0x8739, 0x791c, 0x7f83, - 0x937a, 0x9dae, 0x5f8e, 0x6317, 0x70c7, 0x748d, 0x75c1, 0x83e0, - 0x84e7, 0x9cfa, 0x5980, 0x8738, 0x5888, 0x5877, 0x80c6, 0x8467, - 0x8a99, 0x9d1c, 0x9226, 0x6974, 0x70a6, 0x91a1, 0x54db, 0x6288, - 0x66b2, 0x7a26, 0x7c0e, 0x59b4, 0x7f97, 0x565a, 0x6643, 0x54a6, - 0x7364, 0x6c0f, 0x83b8, 0x5a58, 0x5ef2, 0x7d94, 0x8adb, 0x913b, - 0x724a, 0x963f, 0x7316, 0x698b, 0x8971, 0x6a2b, 0x7bef, 0x5537, - 0x57f1, 0x5850, 0x6f07, 0x836c, 0x88f3, 0x9155, 0x9851, 0x5976, - 0x5ac2, 0x5ff2, 0x656a, 0x6c42, 0x767a, 0x7fa5, 0x9c27, 0xa0e3, - 0xa50f, 0xa545, 0x5911, 0x6d3b, 0x71eb, 0x95d5, 0x64e6, 0x6801, - 0x6870, 0x6b09, 0x7591, 0x77b6, 0x7af5, 0x8035, 0x845e, 0x86d8, - 0x958e, 0x8b55, 0x9689, 0x99af, 0x587b, 0x5906, 0x5b1f, 0x7729, - 0x8f22, 0x9109, 0x6527, 0x6652, 0x69d7, 0x7209, 0x8298, 0x79ce, - 0x553c, 0x5d50, 0x623d, 0x640f, 0x6670, 0x7a05, 0x7abb, 0x85eb, - 0x8696, 0x9883, 0x9d44, 0x9d95, 0x9e64, 0x55d6, 0x7ff8, 0x97fd, - 0x9d00, 0x6728, 0x54cc, 0x571f, 0x6232, 0x6282, 0x6bdb, 0x7043, - 0x780e, 0x7c81, 0x8b3a, 0x96b9, 0xa5c9, 0x6cc3, 0x9c68, 0x58c2, - 0x6db3, 0x6e2a, 0x7377, 0x74d1, 0x7a3d, 0x7b8c, 0x7e9d, 0x8341, - 0x9e8e, 0x579c, 0x685c, 0x9ca5, 0x5657, 0x6344, 0x7414, 0x9553, - 0x65b3, 0x676b, 0x6e3d, 0x79ac, 0x9caa, 0x584c, 0x5a31, 0x6286, - 0x6c33, 0x6d6d, 0x6ec6, 0x7302, 0x7a22, 0x7bfd, 0x8593, 0x8ee8, - 0x8ef9, 0x97e3, 0x9cf8, 0x5954, 0x74ce, 0x5a30, 0x77e2, 0x7aa9, - 0x8c0a, 0x9cb2, 0xa265, 0xa4ac, 0x6da3, 0x73d6, 0x87f2, 0x80d4, - 0x8128, 0x8299, 0x78c6, 0x769e, 0x915c, 0x54c3, 0x8938, 0x583b, - /* 0xfa00 .. 0xfaff */ - 0x5807, 0x64a5, 0x68d1, 0x82d3, 0x6181, 0x7319, 0x6cae, 0x9534, - 0x8e44, 0x9c44, 0x8f81, 0x64c8, 0x5734, 0x5bb3, 0x0000, 0x0000, - 0x5e4a, 0x0000, 0x6c62, 0x0000, 0x0000, 0x57c9, 0x7914, 0x7cb3, - 0x7f24, 0x7f45, 0x7f4b, 0x7f74, 0x9d3a, 0x82a1, 0x859f, 0x0000, - 0x8bf2, 0x0000, 0x90d6, 0x0000, 0x0000, 0x9613, 0x96d7, 0x0000, - 0x0000, 0x0000, 0x9ec5, 0x9ed1, 0x9efc, 0xa387, 0x0000, 0x0000, - 0x557e, 0x56b6, 0x571b, 0x5896, 0x58b0, 0x591c, 0x5b67, 0x5bcf, - 0x5c30, 0x5e07, 0x5e6e, 0x6229, 0x6232, 0x6657, 0x672a, 0x674f, - 0x67b2, 0x6b0e, 0x6ba0, 0x6c4e, 0x6e41, 0x7332, 0x73d4, 0x74db, - 0x7726, 0x77e2, 0x79d8, 0x7e46, 0x7ef2, 0x7efc, 0x7efa, 0x7f01, - 0x7f06, 0x7f0c, 0x7f3b, 0x7f3b, 0x7fec, 0x802c, 0x816a, 0x839d, - 0x83b1, 0x83e8, 0x8518, 0x85aa, 0x8791, 0x881c, 0x881b, 0x89f8, - 0x8eb0, 0x8f35, 0x909f, 0x90d6, 0x926f, 0x92a3, 0x9550, 0x95d1, - 0x9c7b, 0x9d96, 0x9dd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x53b6, 0x5744, 0x56f6, 0x550d, 0x56d1, 0x570b, 0x5851, 0x5883, - 0x5b25, 0x5adc, 0x5b1f, 0x5b67, 0x5dde, 0x5e36, 0x5ec6, 0x5ed5, - 0x5fe2, 0x60a7, 0x6450, 0x6456, 0x64e5, 0x6528, 0x6652, 0x66c7, - 0x6680, 0x6705, 0x66d6, 0x6767, 0x67a8, 0x6937, 0x698e, 0x69c3, - 0x6ac6, 0x6be3, 0x6c85, 0x6c88, 0x6cc2, 0x70e4, 0x7124, 0x72aa, - 0x7443, 0x7432, 0x7488, 0x7583, 0x76d2, 0x7d0a, 0x7797, 0x7810, - 0x788a, 0x79d0, 0x7a64, 0x7a98, 0x7b79, 0x7b7a, 0x7c24, 0x7c34, - 0x7c4c, 0x7ca1, 0x7c96, 0x7e21, 0x8005, 0x8113, 0x81cd, 0x82ac, - 0x8344, 0x848d, 0x8553, 0x889f, 0x893b, 0x8cc4, 0x8e8b, 0x8ecf, - 0x8ede, 0x9006, 0x903e, 0x9010, 0x9045, 0x9041, 0x902f, 0x907a, - 0x90ca, 0x9247, 0x9476, 0x95af, 0x96d5, 0x97b1, 0x9bb6, 0x9c1c, - 0x9c8e, 0x9d12, 0x9d35, 0x9d40, 0x9d6f, 0xa045, 0xa4ce, 0x2d7b, - 0x2d74, 0x3904, 0x40cb, 0x4545, 0x4565, 0x5774, 0x61fa, 0x83fc, - 0xa46b, 0xa4b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - /* 0xfe26 .. 0xfeff */ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x21f5, 0x21e3, 0x21e1, 0x022c, 0x022b, 0x01f3, - 0x01f3, 0x0244, 0x0245, 0x31db, 0x31db, 0x31d5, 0x31d5, 0x31cd, - 0x31cd, 0x31c9, 0x31c9, 0x31cb, 0x31cb, 0x31cb, 0x31cb, 0x0000, - 0x0000, 0x0214, 0x0215, 0x21f5, 0x21f4, 0x21f3, 0x21f2, 0x0212, - 0x0211, 0x0210, 0x01dc, 0x31b0, 0x01dc, 0x0000, 0x01e7, 0x01e5, - 0x01e9, 0x01ca, 0x21bc, 0x01cf, 0x01cf, 0x0220, 0x0221, 0x31b7, - 0x31b7, 0x01c4, 0x01c6, 0x01c9, 0x01c9, 0x01ca, 0x01d8, 0x01d9, - 0x01d7, 0x0000, 0x01f4, 0x01bb, 0x01bb, 0x01d5, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x07a1, 0x07a1, 0x07a0, 0x07a0, 0x079f, 0x079f, - 0x079e, 0x079e, 0x079d, 0x079d, 0x079c, 0x079b, 0x079a, 0x079a, - 0x0799, 0x0799, 0x0798, 0x0797, 0x0796, 0x0796, 0x0795, 0x0795, - 0x0794, 0x0793, 0x0792, 0x0792, 0x0791, 0x0790, 0x078f, 0x078f, - 0x078e, 0x078d, 0x078c, 0x078c, 0x078b, 0x078a, 0x0789, 0x0789, - 0x0788, 0x0787, 0x0786, 0x0786, 0x0785, 0x0785, 0x0784, 0x0784, - 0x0783, 0x0783, 0x0782, 0x0782, 0x0781, 0x0780, 0x077f, 0x077f, - 0x077e, 0x077d, 0x077c, 0x077c, 0x077b, 0x077a, 0x0779, 0x0779, - 0x0778, 0x0777, 0x0776, 0x0776, 0x0775, 0x0774, 0x0773, 0x0773, - 0x0772, 0x0771, 0x0770, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, - 0x076c, 0x076b, 0x076a, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, - 0x076c, 0x076b, 0x076a, 0x076a, 0x0769, 0x0768, 0x0767, 0x0767, - 0x0766, 0x0765, 0x0764, 0x0764, 0x0763, 0x0762, 0x0761, 0x0761, - 0x0760, 0x075f, 0x075e, 0x075e, 0x075d, 0x075c, 0x075b, 0x075b, - 0x075a, 0x075a, 0x0759, 0x0759, 0x0758, 0x0757, 0x0756, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, - /* 0xff01 .. 0xffff */ - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, - 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x2a26, 0x2a26, - 0x30a1, 0x30aa, 0x30aa, 0x309d, 0x3196, 0x318c, 0x313a, 0x313b, - 0x313c, 0x313d, 0x313e, 0x3177, 0x3178, 0x3179, 0x3154, 0x318c, - 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3135, 0x3136, 0x3137, - 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, - 0x3140, 0x3142, 0x3143, 0x3144, 0x3145, 0x3145, 0x3145, 0x3145, - 0x3145, 0x3145, 0x3147, 0x3149, 0x314b, 0x314d, 0x314f, 0x314f, - 0x314f, 0x314f, 0x314f, 0x3150, 0x3151, 0x3152, 0x3152, 0x3152, - 0x3152, 0x3152, 0x3152, 0x3153, 0x3156, 0x30fb, 0x30fb, 0x31c4, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, - 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x0000, 0x0000, - 0x0000, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x0000, - 0x0000, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x0000, - 0x0000, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x0000, - 0x0000, 0x3187, 0x3187, 0x3187, 0x0000, 0x0000, 0x0000, 0x00c2, - 0x00c2, 0x00ca, 0x00cc, 0x00c2, 0x00c0, 0x20c3, 0x0000, 0x251a, - 0x21a7, 0x21a7, 0x21a7, 0x21a7, 0x25b3, 0x25dd, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 + /* index */ + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, + 0x0100, 0x0200, 0x0300, 0x0100, 0x0100, 0x0100, 0x03da, 0x04d9, + /* defaults */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xf900 .. 0xf9ff */ + 0x9348, 0x6df3, 0x95c8, 0x93c5, 0x75cd, 0x552d, 0x5adf, 0xa695, + 0xa694, 0x6048, 0x98c7, 0x5c7c, 0x603c, 0x68e9, 0x7d5b, 0x8676, + 0x8d2f, 0x8ea9, 0x8fe6, 0x977c, 0x70ee, 0x7406, 0x77c3, 0x7ac7, + 0x8b25, 0x9851, 0xa0d7, 0x5567, 0x5a59, 0x71e7, 0x78fd, 0x8d0e, + 0xa4fe, 0x642f, 0x76c9, 0x8caa, 0x9040, 0x69a4, 0x88b2, 0x8ef8, + 0x65a2, 0x6dee, 0x7440, 0x79d1, 0x97a2, 0x5659, 0x5889, 0x59af, + 0x6b94, 0x71a2, 0x78de, 0x7db4, 0x86cd, 0x8cd1, 0x8d26, 0x94b8, + 0x9dfa, 0xa236, 0xa4c0, 0x7f51, 0x8043, 0x8463, 0x8a8b, 0x99c5, + 0xa53f, 0x9195, 0x5f9d, 0x65c1, 0x831c, 0x8739, 0x791c, 0x7f83, + 0x937a, 0x9dae, 0x5f8e, 0x6317, 0x70c7, 0x748d, 0x75c1, 0x83e0, + 0x84e7, 0x9cfa, 0x5980, 0x8738, 0x5888, 0x5877, 0x80c6, 0x8467, + 0x8a99, 0x9d1c, 0x9226, 0x6974, 0x70a6, 0x91a1, 0x54db, 0x6288, + 0x66b2, 0x7a26, 0x7c0e, 0x59b4, 0x7f97, 0x565a, 0x6643, 0x54a6, + 0x7364, 0x6c0f, 0x83b8, 0x5a58, 0x5ef2, 0x7d94, 0x8adb, 0x913b, + 0x724a, 0x963f, 0x7316, 0x698b, 0x8971, 0x6a2b, 0x7bef, 0x5537, + 0x57f1, 0x5850, 0x6f07, 0x836c, 0x88f3, 0x9155, 0x9851, 0x5976, + 0x5ac2, 0x5ff2, 0x656a, 0x6c42, 0x767a, 0x7fa5, 0x9c27, 0xa0e3, + 0xa50f, 0xa545, 0x5911, 0x6d3b, 0x71eb, 0x95d5, 0x64e6, 0x6801, + 0x6870, 0x6b09, 0x7591, 0x77b6, 0x7af5, 0x8035, 0x845e, 0x86d8, + 0x958e, 0x8b55, 0x9689, 0x99af, 0x587b, 0x5906, 0x5b1f, 0x7729, + 0x8f22, 0x9109, 0x6527, 0x6652, 0x69d7, 0x7209, 0x8298, 0x79ce, + 0x553c, 0x5d50, 0x623d, 0x640f, 0x6670, 0x7a05, 0x7abb, 0x85eb, + 0x8696, 0x9883, 0x9d44, 0x9d95, 0x9e64, 0x55d6, 0x7ff8, 0x97fd, + 0x9d00, 0x6728, 0x54cc, 0x571f, 0x6232, 0x6282, 0x6bdb, 0x7043, + 0x780e, 0x7c81, 0x8b3a, 0x96b9, 0xa5c9, 0x6cc3, 0x9c68, 0x58c2, + 0x6db3, 0x6e2a, 0x7377, 0x74d1, 0x7a3d, 0x7b8c, 0x7e9d, 0x8341, + 0x9e8e, 0x579c, 0x685c, 0x9ca5, 0x5657, 0x6344, 0x7414, 0x9553, + 0x65b3, 0x676b, 0x6e3d, 0x79ac, 0x9caa, 0x584c, 0x5a31, 0x6286, + 0x6c33, 0x6d6d, 0x6ec6, 0x7302, 0x7a22, 0x7bfd, 0x8593, 0x8ee8, + 0x8ef9, 0x97e3, 0x9cf8, 0x5954, 0x74ce, 0x5a30, 0x77e2, 0x7aa9, + 0x8c0a, 0x9cb2, 0xa265, 0xa4ac, 0x6da3, 0x73d6, 0x87f2, 0x80d4, + 0x8128, 0x8299, 0x78c6, 0x769e, 0x915c, 0x54c3, 0x8938, 0x583b, + /* 0xfa00 .. 0xfaff */ + 0x5807, 0x64a5, 0x68d1, 0x82d3, 0x6181, 0x7319, 0x6cae, 0x9534, + 0x8e44, 0x9c44, 0x8f81, 0x64c8, 0x5734, 0x5bb3, 0x0000, 0x0000, + 0x5e4a, 0x0000, 0x6c62, 0x0000, 0x0000, 0x57c9, 0x7914, 0x7cb3, + 0x7f24, 0x7f45, 0x7f4b, 0x7f74, 0x9d3a, 0x82a1, 0x859f, 0x0000, + 0x8bf2, 0x0000, 0x90d6, 0x0000, 0x0000, 0x9613, 0x96d7, 0x0000, + 0x0000, 0x0000, 0x9ec5, 0x9ed1, 0x9efc, 0xa387, 0x0000, 0x0000, + 0x557e, 0x56b6, 0x571b, 0x5896, 0x58b0, 0x591c, 0x5b67, 0x5bcf, + 0x5c30, 0x5e07, 0x5e6e, 0x6229, 0x6232, 0x6657, 0x672a, 0x674f, + 0x67b2, 0x6b0e, 0x6ba0, 0x6c4e, 0x6e41, 0x7332, 0x73d4, 0x74db, + 0x7726, 0x77e2, 0x79d8, 0x7e46, 0x7ef2, 0x7efc, 0x7efa, 0x7f01, + 0x7f06, 0x7f0c, 0x7f3b, 0x7f3b, 0x7fec, 0x802c, 0x816a, 0x839d, + 0x83b1, 0x83e8, 0x8518, 0x85aa, 0x8791, 0x881c, 0x881b, 0x89f8, + 0x8eb0, 0x8f35, 0x909f, 0x90d6, 0x926f, 0x92a3, 0x9550, 0x95d1, + 0x9c7b, 0x9d96, 0x9dd1, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x53b6, 0x5744, 0x56f6, 0x550d, 0x56d1, 0x570b, 0x5851, 0x5883, + 0x5b25, 0x5adc, 0x5b1f, 0x5b67, 0x5dde, 0x5e36, 0x5ec6, 0x5ed5, + 0x5fe2, 0x60a7, 0x6450, 0x6456, 0x64e5, 0x6528, 0x6652, 0x66c7, + 0x6680, 0x6705, 0x66d6, 0x6767, 0x67a8, 0x6937, 0x698e, 0x69c3, + 0x6ac6, 0x6be3, 0x6c85, 0x6c88, 0x6cc2, 0x70e4, 0x7124, 0x72aa, + 0x7443, 0x7432, 0x7488, 0x7583, 0x76d2, 0x7d0a, 0x7797, 0x7810, + 0x788a, 0x79d0, 0x7a64, 0x7a98, 0x7b79, 0x7b7a, 0x7c24, 0x7c34, + 0x7c4c, 0x7ca1, 0x7c96, 0x7e21, 0x8005, 0x8113, 0x81cd, 0x82ac, + 0x8344, 0x848d, 0x8553, 0x889f, 0x893b, 0x8cc4, 0x8e8b, 0x8ecf, + 0x8ede, 0x9006, 0x903e, 0x9010, 0x9045, 0x9041, 0x902f, 0x907a, + 0x90ca, 0x9247, 0x9476, 0x95af, 0x96d5, 0x97b1, 0x9bb6, 0x9c1c, + 0x9c8e, 0x9d12, 0x9d35, 0x9d40, 0x9d6f, 0xa045, 0xa4ce, 0x2d7b, + 0x2d74, 0x3904, 0x40cb, 0x4545, 0x4565, 0x5774, 0x61fa, 0x83fc, + 0xa46b, 0xa4b5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + /* 0xfe26 .. 0xfeff */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x21f5, 0x21e3, 0x21e1, 0x022c, 0x022b, 0x01f3, + 0x01f3, 0x0244, 0x0245, 0x31db, 0x31db, 0x31d5, 0x31d5, 0x31cd, + 0x31cd, 0x31c9, 0x31c9, 0x31cb, 0x31cb, 0x31cb, 0x31cb, 0x0000, + 0x0000, 0x0214, 0x0215, 0x21f5, 0x21f4, 0x21f3, 0x21f2, 0x0212, + 0x0211, 0x0210, 0x01dc, 0x31b0, 0x01dc, 0x0000, 0x01e7, 0x01e5, + 0x01e9, 0x01ca, 0x21bc, 0x01cf, 0x01cf, 0x0220, 0x0221, 0x31b7, + 0x31b7, 0x01c4, 0x01c6, 0x01c9, 0x01c9, 0x01ca, 0x01d8, 0x01d9, + 0x01d7, 0x0000, 0x01f4, 0x01bb, 0x01bb, 0x01d5, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x07a1, 0x07a1, 0x07a0, 0x07a0, 0x079f, 0x079f, + 0x079e, 0x079e, 0x079d, 0x079d, 0x079c, 0x079b, 0x079a, 0x079a, + 0x0799, 0x0799, 0x0798, 0x0797, 0x0796, 0x0796, 0x0795, 0x0795, + 0x0794, 0x0793, 0x0792, 0x0792, 0x0791, 0x0790, 0x078f, 0x078f, + 0x078e, 0x078d, 0x078c, 0x078c, 0x078b, 0x078a, 0x0789, 0x0789, + 0x0788, 0x0787, 0x0786, 0x0786, 0x0785, 0x0785, 0x0784, 0x0784, + 0x0783, 0x0783, 0x0782, 0x0782, 0x0781, 0x0780, 0x077f, 0x077f, + 0x077e, 0x077d, 0x077c, 0x077c, 0x077b, 0x077a, 0x0779, 0x0779, + 0x0778, 0x0777, 0x0776, 0x0776, 0x0775, 0x0774, 0x0773, 0x0773, + 0x0772, 0x0771, 0x0770, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, + 0x076c, 0x076b, 0x076a, 0x0770, 0x076f, 0x076e, 0x076d, 0x076d, + 0x076c, 0x076b, 0x076a, 0x076a, 0x0769, 0x0768, 0x0767, 0x0767, + 0x0766, 0x0765, 0x0764, 0x0764, 0x0763, 0x0762, 0x0761, 0x0761, + 0x0760, 0x075f, 0x075e, 0x075e, 0x075d, 0x075c, 0x075b, 0x075b, + 0x075a, 0x075a, 0x0759, 0x0759, 0x0758, 0x0757, 0x0756, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, + /* 0xff01 .. 0xffff */ + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, + 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x0120, 0x2a26, 0x2a26, + 0x30a1, 0x30aa, 0x30aa, 0x309d, 0x3196, 0x318c, 0x313a, 0x313b, + 0x313c, 0x313d, 0x313e, 0x3177, 0x3178, 0x3179, 0x3154, 0x318c, + 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3135, 0x3136, 0x3137, + 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, + 0x3140, 0x3142, 0x3143, 0x3144, 0x3145, 0x3145, 0x3145, 0x3145, + 0x3145, 0x3145, 0x3147, 0x3149, 0x314b, 0x314d, 0x314f, 0x314f, + 0x314f, 0x314f, 0x314f, 0x3150, 0x3151, 0x3152, 0x3152, 0x3152, + 0x3152, 0x3152, 0x3152, 0x3153, 0x3156, 0x30fb, 0x30fb, 0x31c4, + 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, + 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, + 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, + 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x3190, 0x0000, 0x0000, + 0x0000, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x318d, 0x0000, + 0x0000, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x318b, 0x0000, + 0x0000, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x3189, 0x0000, + 0x0000, 0x3187, 0x3187, 0x3187, 0x0000, 0x0000, 0x0000, 0x00c2, + 0x00c2, 0x00ca, 0x00cc, 0x00c2, 0x00c0, 0x20c3, 0x0000, 0x251a, + 0x21a7, 0x21a7, 0x21a7, 0x21a7, 0x25b3, 0x25dd, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; diff --git a/apilibs/kexbases/Kernel32/locale_collation.c b/apilibs/kexbases/Kernel32/locale_collation.c index 308f88b..ddc144c 100755 --- a/apilibs/kexbases/Kernel32/locale_collation.c +++ b/apilibs/kexbases/Kernel32/locale_collation.c @@ -5,1654 +5,1654 @@ extern const unsigned int collation_table[]; const unsigned int collation_table[12800] = { - /* index */ - 0x00000200, 0x00000300, 0x00000400, 0x00000500, 0x00000600, 0x00000700, 0x00000800, 0x00000900, - 0x00000100, 0x00000a00, 0x00000b00, 0x00000c00, 0x00000d00, 0x00000e00, 0x00000f00, 0x00001000, - 0x00001100, 0x00001200, 0x00001300, 0x00001400, 0x00001500, 0x00001600, 0x00001700, 0x00001800, - 0x00001900, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00001a00, 0x00001b00, - 0x00001c00, 0x00001d00, 0x00001e00, 0x00001f00, 0x00002000, 0x00002100, 0x00002200, 0x00002300, - 0x00002400, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00002500, 0x00002600, - 0x00002700, 0x00002800, 0x00002900, 0x00002a00, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, - 0x00000100, 0x00002b00, 0x00002c00, 0x00002d00, 0x00002e00, 0x00002f00, 0x00003000, 0x00003100, - /* defaults */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0000 .. 0x00ff */ - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x02010111, 0x02020111, 0x02030111, 0x02040111, 0x02050111, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02090111, 0x024b0111, 0x02700111, 0x02a90111, 0x09e00111, 0x02aa0111, 0x02a70111, 0x02690111, - 0x027a0111, 0x027b0111, 0x02a20111, 0x039f0111, 0x022d0111, 0x02210111, 0x02550111, 0x02a40111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02370111, 0x02350111, 0x03a30111, 0x03a40111, 0x03a50111, 0x024e0111, - 0x02a10111, 0x0a150151, 0x0a290141, 0x0a3d0151, 0x0a490151, 0x0a650151, 0x0a910151, 0x0a990151, - 0x0ab90151, 0x0ad30161, 0x0ae70141, 0x0af70141, 0x0b030161, 0x0b2b0151, 0x0b330151, 0x0b4b0161, - 0x0b670141, 0x0b730141, 0x0b7f0141, 0x0ba70151, 0x0bbf0151, 0x0bd70141, 0x0bef0151, 0x0bfb0141, - 0x0c030151, 0x0c070141, 0x0c130141, 0x027c0111, 0x02a60111, 0x027d0111, 0x020f0111, 0x021b0111, - 0x020c0111, 0x0a150111, 0x0a290111, 0x0a3d0111, 0x0a490111, 0x0a650111, 0x0a910111, 0x0a990111, - 0x0ab90111, 0x0ad30111, 0x0ae70111, 0x0af70111, 0x0b030111, 0x0b2b0111, 0x0b330111, 0x0b4b0111, - 0x0b670111, 0x0b730111, 0x0b7f0111, 0x0ba70111, 0x0bbf0111, 0x0bd70111, 0x0bef0111, 0x0bfb0111, - 0x0c030111, 0x0c070111, 0x0c130111, 0x027e0111, 0x03a70111, 0x027f0111, 0x03aa0111, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02060111, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02090141, 0x024c0111, 0x09df0111, 0x09e10111, 0x09de0111, 0x09e20111, 0x03a80111, 0x029c0111, - 0x02140111, 0x029f0111, 0x0a150181, 0x02780111, 0x03a60111, 0x02200111, 0x02a00111, 0x02100111, - 0x030a0111, 0x03a00111, 0x0a0d0151, 0x0a0e0151, 0x020d0111, 0x0c9f0121, 0x029d0111, 0x025f0111, - 0x02190111, 0x0a0c0151, 0x0b4b01a1, 0x02790111, 0x0a0c0171, 0x0a0c0171, 0x0a0e0171, 0x024f0111, - 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a190121, 0x0a3d0151, - 0x0a650151, 0x0a650151, 0x0a650151, 0x0a650151, 0x0ad30161, 0x0ad30161, 0x0ad30161, 0x0ad30161, - 0x0a5d0121, 0x0b330151, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x03a20111, - 0x0b530121, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0c070141, 0x0c3b0121, 0x0ba70131, - 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a190111, 0x0a3d0111, - 0x0a650111, 0x0a650111, 0x0a650111, 0x0a650111, 0x0ad30111, 0x0ad30111, 0x0ad30111, 0x0ad30111, - 0x0a5d0111, 0x0b330111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x03a10111, - 0x0b530111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0c070111, 0x0c3b0111, 0x0c070111, - /* 0x0100 .. 0x01ff */ - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a3d0151, 0x0a3d0111, - 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, - 0x0a4d0121, 0x0a4d0111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, - 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ac50131, 0x0ac50111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, - 0x0ad30161, 0x0ad70111, 0x0ad30181, 0x0ad30131, 0x0ae70141, 0x0ae70111, 0x0af70141, 0x0af70111, - 0x0b7b0111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030181, - 0x0b030131, 0x0b0b0121, 0x0b0b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b330151, - 0x0b330111, 0x0c580121, 0x0b470121, 0x0b470111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0181, 0x0b4b0131, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, - 0x0b7f0141, 0x0b7f0111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bc30121, 0x0bc30111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bfb0141, 0x0bfb0111, 0x0c070141, 0x0c070111, - 0x0c070141, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ba70131, - 0x0a310111, 0x0a350121, 0x0a390121, 0x0a390111, 0x0c4f0121, 0x0c4f0111, 0x0b570121, 0x0a410121, - 0x0a410111, 0x0a510121, 0x0a550121, 0x0a590121, 0x0a590111, 0x0a610111, 0x0a690121, 0x0a6d0121, - 0x0a710121, 0x0a950121, 0x0a950111, 0x0aa50121, 0x0aad0121, 0x0ac10111, 0x0ae30121, 0x0adf0121, - 0x0afb0121, 0x0afb0111, 0x0b0f0111, 0x0b230111, 0x0be30121, 0x0b3b0121, 0x0b3f0111, 0x0b5b0121, - 0x0b4b0161, 0x0b4b0111, 0x0ab50121, 0x0ab50111, 0x0b6b0121, 0x0b6b0111, 0x0b830121, 0x0c470121, - 0x0c470111, 0x0baf0121, 0x0bb30111, 0x0bc70111, 0x0bcb0121, 0x0bcb0111, 0x0bcf0121, 0x0bd70141, - 0x0bd70111, 0x0beb0121, 0x0bf30121, 0x0c0f0121, 0x0c0f0111, 0x0c170121, 0x0c170111, 0x0c270121, - 0x0c2b0121, 0x0c2b0111, 0x0c2f0111, 0x0c430111, 0x0c4b0121, 0x0c4b0111, 0x0c610111, 0x0c3f0111, - 0x0c710111, 0x0c750111, 0x0c790111, 0x0c7d0111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0b030181, - 0x0b030181, 0x0b030131, 0x0b330171, 0x0b330171, 0x0b330131, 0x0a150151, 0x0a150111, 0x0ad30161, - 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, - 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0a690111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0aa10121, 0x0aa10111, 0x0a990151, 0x0a990111, - 0x0af70141, 0x0af70111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0c270121, 0x0c270111, - 0x0ae70111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0a990151, 0x0a990111, 0x0ac10121, 0x0c3f0121, - 0x0b330151, 0x0b330111, 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0b530121, 0x0b530111, - /* 0x0200 .. 0x02ff */ - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0c370121, 0x0c370111, 0x0ab90151, 0x0ab90111, - 0xffffffff, 0xffffffff, 0x0b630121, 0x0b630111, 0x0c1b0121, 0x0c1b0111, 0x0a150151, 0x0a150111, - 0x0a650151, 0x0a650111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a1d0111, 0x0a210111, 0x0a250111, 0x0a350111, 0x0b570111, 0x0a450111, 0x0a510111, 0x0a550111, - 0x0a750111, 0x0a6d0111, 0x0a790111, 0x0a710111, 0x0a7d0111, 0x0a810111, 0x0a850111, 0x0aef0111, - 0x0aa50111, 0x0ab10111, 0x0a9d0111, 0x0aad0111, 0x0a8d0111, 0x0bdf0111, 0x0ac90111, 0x0acd0111, - 0x0adf0111, 0x0ae30111, 0x0adb0111, 0x0b130111, 0x0b170111, 0x0b1b0111, 0x0b1f0111, 0x0be30111, - 0x0be70111, 0x0b2f0111, 0x0b3b0111, 0x0b430111, 0x0b370111, 0x0b5b0111, 0x0b4f0111, 0x0b5f0111, - 0x0b6f0111, 0x0b870111, 0x0b8b0111, 0x0b8f0111, 0x0b930111, 0x0b970111, 0x0b9b0111, 0x0b9f0111, - 0x0b830111, 0x0ba30111, 0x0bab0111, 0x0baf0111, 0x0af30111, 0x0bb70111, 0x0bbb0111, 0x0bd30111, - 0x0bcf0111, 0x0bdb0111, 0x0beb0111, 0x0bf30111, 0x0bf70111, 0x0bff0111, 0x0b270111, 0x0c0b0111, - 0x0c1f0111, 0x0c230111, 0x0c270111, 0x0c330111, 0x0c530111, 0x0c5b0111, 0x0c6d0111, 0x0c810111, - 0x0c850111, 0x0a2d0111, 0x0a890111, 0x0aa90111, 0x0abd0111, 0x0aeb0111, 0x0aff0111, 0x0b070111, - 0x0b770111, 0x0c650111, 0x0c690111, 0x0a490131, 0x0a490131, 0x0a490131, 0x0bbf0131, 0x0bbf0131, - 0x0bbf0131, 0x0a910131, 0x0b030131, 0x0b030131, 0x0c890111, 0x0c8d0111, 0xffffffff, 0xffffffff, - 0x0ab90191, 0x0ac90121, 0x0ae70171, 0x0b7f0191, 0x0b870121, 0x0b8f0121, 0x0ba30121, 0x0bfb0171, - 0x0c070171, 0x02e90111, 0x02eb0111, 0x0ad10111, 0x0c580111, 0x0ad20111, 0x0c5a0111, 0x0c5f0111, - 0x0c570111, 0x0c600111, 0x02ec0111, 0x02ed0111, 0x02ee0111, 0x02ef0111, 0x02f00111, 0x02f10111, - 0x02f20111, 0x02f30111, 0x02f40111, 0x02f50111, 0x02f60111, 0x02f70111, 0x02f80111, 0x02f90111, - 0x09d30111, 0x09d40111, 0x02fa0111, 0x02fb0111, 0x02fc0111, 0x02fd0111, 0x02fe0111, 0x02ff0111, - 0x02120111, 0x02130111, 0x02150111, 0x021a0111, 0x020e0111, 0x02160111, 0x03000111, 0xffffffff, - 0x0aad0131, 0x0b0301b1, 0x0ba70181, 0x0c030191, 0x0c5b0121, 0x03010111, 0x03020111, 0x03030111, - 0x03040111, 0x03050111, 0x03060111, 0x03070111, 0x03080111, 0x03090111, 0x0c590111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0300 .. 0x03ff */ - 0x00000611, 0x00000511, 0x00000811, 0x00000e11, 0x00001311, 0x00001411, 0x00000711, 0x00000f11, - 0x00000c11, 0x00001511, 0x00000a11, 0x00000d11, 0x00000911, 0x00001611, 0x00001711, 0x00001811, - 0x00001911, 0x00001a11, 0x00001b11, 0x00000311, 0x00000411, 0x00001c11, 0x00001d11, 0x00001e11, - 0x00001f11, 0x00002011, 0x00002111, 0x00002211, 0x00002311, 0x00002411, 0x00002511, 0x00002611, - 0x00002711, 0x00002811, 0x00002911, 0x00002a11, 0x00002b11, 0x00002c11, 0x00002d11, 0x00001111, - 0x00001211, 0x00002e11, 0x00002f11, 0x00003011, 0x00003111, 0x00003211, 0x00003311, 0x00003411, - 0x00003511, 0x00003611, 0x00000211, 0x00003711, 0x00003811, 0x00003911, 0x00003a11, 0x00003b11, - 0x00001011, 0x00003c11, 0x00003d11, 0x00003e11, 0x00003f11, 0x00004011, 0x00004111, 0x00004211, - 0x00000611, 0x00000511, 0x00000b11, 0x00000311, 0x00000c11, 0x00004311, 0x00004411, 0x00004511, - 0x00004611, 0x00004711, 0x00004811, 0x00004911, 0x00004a11, 0x00004b11, 0x00004c11, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00004d11, 0x00004e11, 0x00004f11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x02e90111, 0x02ea0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0c9b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02350111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x020d0111, 0x02140111, 0x0c910121, 0x025f0111, - 0x0c950131, 0x0c990121, 0x0c9b0121, 0xffffffff, 0x0ca20121, 0xffffffff, 0x0ca80121, 0x0cac0121, - 0x0c9b0111, 0x0c910121, 0x0c920131, 0x0c930121, 0x0c940121, 0x0c950131, 0x0c980121, 0x0c990121, - 0x0c9a0131, 0x0c9b0121, 0x0c9d0131, 0x0c9e0121, 0x0c9f0131, 0x0ca00121, 0x0ca10121, 0x0ca20121, - 0x0ca30131, 0x0ca50131, 0xffffffff, 0x0ca60131, 0x0ca70121, 0x0ca80121, 0x0ca90131, 0x0caa0121, - 0x0cab0121, 0x0cac0121, 0x0c9b0121, 0x0ca80121, 0x0c910111, 0x0c950111, 0x0c990111, 0x0c9b0111, - 0x0ca80111, 0x0c910111, 0x0c920111, 0x0c930111, 0x0c940111, 0x0c950111, 0x0c980111, 0x0c990111, - 0x0c9a0111, 0x0c9b0111, 0x0c9d0111, 0x0c9e0111, 0x0c9f0111, 0x0ca00111, 0x0ca10111, 0x0ca20111, - 0x0ca30111, 0x0ca50111, 0x0ca60141, 0x0ca60111, 0x0ca70111, 0x0ca80111, 0x0ca90111, 0x0caa0111, - 0x0cab0111, 0x0cac0111, 0x0c9b0111, 0x0ca80111, 0x0ca20111, 0x0ca80111, 0x0cac0111, 0xffffffff, - 0x0c920121, 0x0c9a0121, 0x0ca80131, 0x0ca80131, 0x0ca80131, 0x0ca90121, 0x0ca30121, 0x0c9d0121, - 0xffffffff, 0xffffffff, 0x0c970121, 0x0c970111, 0x0c960121, 0x0c960111, 0x0ca40121, 0x0ca40111, - 0x0cad0121, 0x0cad0111, 0x0cae0121, 0x0cae0111, 0x0caf0121, 0x0caf0111, 0x0cb00121, 0x0cb00111, - 0x0cb10121, 0x0cb10111, 0x0cb20121, 0x0cb20111, 0x0cb30121, 0x0cb30111, 0x0cb40121, 0x0cb40111, - 0x0c9d0121, 0x0ca50121, 0x0ca60121, 0x0c9c0111, 0x0c9a0141, 0x0c950121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0400 .. 0x04ff */ - 0x0cf10121, 0x0cf10121, 0x0ce50121, 0x0ce90121, 0x0cf90121, 0x0d110121, 0x0d210121, 0x0d250121, - 0x0d2d0121, 0x0d4d0121, 0x0d650121, 0x0d9d0121, 0x0da10121, 0x0d190121, 0x0da90121, 0x0e050121, - 0x0cb50121, 0x0ccd0121, 0x0cd10121, 0x0cd50131, 0x0ce10121, 0x0cf10121, 0x0cfd0121, 0x0d090121, - 0x0d190121, 0x0d290121, 0x0d310121, 0x0d490121, 0x0d510121, 0x0d550121, 0x0d690121, 0x0d790121, - 0x0d850121, 0x0d8d0121, 0x0d950121, 0x0da50121, 0x0dc10121, 0x0dc50121, 0x0de10121, 0x0de90121, - 0x0e090121, 0x0e0d0121, 0x0e110121, 0x0e150121, 0x0e1d0121, 0x0e290121, 0x0e310121, 0x0e350121, - 0x0cb50111, 0x0ccd0111, 0x0cd10111, 0x0cd50111, 0x0ce10111, 0x0cf10111, 0x0cfd0111, 0x0d090111, - 0x0d190111, 0x0d290111, 0x0d310111, 0x0d490111, 0x0d510111, 0x0d550111, 0x0d690111, 0x0d790111, - 0x0d850111, 0x0d8d0111, 0x0d950111, 0x0da50111, 0x0dc10111, 0x0dc50111, 0x0de10111, 0x0de90111, - 0x0e090111, 0x0e0d0111, 0x0e110111, 0x0e150111, 0x0e1d0111, 0x0e290111, 0x0e310111, 0x0e350111, - 0x0cf10111, 0x0cf10111, 0x0ce50111, 0x0ce90111, 0x0cf90111, 0x0d110111, 0x0d210111, 0x0d250111, - 0x0d2d0111, 0x0d4d0111, 0x0d650111, 0x0d9d0111, 0x0da10111, 0x0d190111, 0x0da90111, 0x0e050111, - 0x0dd10121, 0x0dd10111, 0x0e250121, 0x0e250111, 0x0e390121, 0x0e390111, 0x0e3d0121, 0x0e3d0111, - 0x0e450121, 0x0e450111, 0x0e410121, 0x0e410111, 0x0e490121, 0x0e490111, 0x0e4d0121, 0x0e4d0111, - 0x0e510121, 0x0e510111, 0x0e550121, 0x0e550111, 0x0e590121, 0x0e590111, 0x0e5d0121, 0x0e5d0111, - 0x0dbd0121, 0x0dbd0111, 0x0ddd0121, 0x0ddd0111, 0x0dd90121, 0x0dd90111, 0x0dd50121, 0x0dd50111, - 0x0d810121, 0x0d810111, 0x030b0111, 0x00005411, 0x00005511, 0x00005611, 0x00005711, 0xffffffff, - 0x00000001, 0x00000001, 0xffffffff, 0xffffffff, 0x0e210121, 0x0e210111, 0x0d890121, 0x0d890111, - 0x0cd50141, 0x0cd50121, 0x0cd90121, 0x0cd90111, 0x0cdd0121, 0x0cdd0111, 0x0d050121, 0x0d050111, - 0x0ced0121, 0x0ced0111, 0x0d350121, 0x0d350111, 0x0d450121, 0x0d450111, 0x0d410121, 0x0d410111, - 0x0d3d0121, 0x0d3d0111, 0x0d590121, 0x0d590111, 0x0d610121, 0x0d610111, 0x0d7d0121, 0x0d7d0111, - 0x0e610121, 0x0e610111, 0x0d910121, 0x0d910111, 0x0d990121, 0x0d990111, 0x0db50121, 0x0db50111, - 0x0db90121, 0x0db90111, 0x0dc90121, 0x0dc90111, 0x0de50121, 0x0de50111, 0x0df10121, 0x0df10111, - 0x0df90121, 0x0df90111, 0x0dcd0121, 0x0dcd0111, 0x0dfd0121, 0x0dfd0111, 0x0e010121, 0x0e010111, - 0x0e650111, 0x0cfd0121, 0x0cfd0111, 0x0d390121, 0x0d390111, 0xffffffff, 0xffffffff, 0x0d5d0121, - 0x0d5d0111, 0xffffffff, 0xffffffff, 0x0df50121, 0x0df50111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0cb90121, 0x0cb90111, 0x0cbd0121, 0x0cbd0111, 0x0cc90121, 0x0cc90111, 0x0cf50121, 0x0cf50111, - 0x0cc10121, 0x0cc10111, 0x0cc50121, 0x0cc50111, 0x0d010121, 0x0d010111, 0x0d0d0121, 0x0d0d0111, - 0x0d150121, 0x0d150111, 0x0d190121, 0x0d190111, 0x0d1d0121, 0x0d1d0111, 0x0d6d0121, 0x0d6d0111, - 0x0d710121, 0x0d710111, 0x0d750121, 0x0d750111, 0x0e2d0121, 0x0e2d0111, 0x0da50121, 0x0da50111, - 0x0dad0121, 0x0dad0111, 0x0db10121, 0x0db10111, 0x0ded0121, 0x0ded0111, 0xffffffff, 0xffffffff, - 0x0e190121, 0x0e190111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0500 .. 0x05ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0e900121, 0x0e910121, 0x0e920121, 0x0e930121, 0x0e940131, 0x0e950121, 0x0e960121, - 0x0e970121, 0x0e980121, 0x0e990121, 0x0e9a0121, 0x0e9b0121, 0x0e9c0121, 0x0e9d0121, 0x0e9e0121, - 0x0e9f0121, 0x0ea00121, 0x0ea10121, 0x0ea20121, 0x0ea30131, 0x0ea40121, 0x0ea50121, 0x0ea60121, - 0x0ea70121, 0x0ea80121, 0x0ea90121, 0x0eaa0121, 0x0eab0121, 0x0eac0121, 0x0ead0131, 0x0eae0121, - 0x0eaf0121, 0x0eb00121, 0x0eb10121, 0x0eb20121, 0x0eb30121, 0x0eb40121, 0x0eb50121, 0xffffffff, - 0xffffffff, 0x0eb60111, 0x02bf0111, 0x02c00111, 0x024d0111, 0x022e0111, 0x02500111, 0x02c10111, - 0xffffffff, 0x0e900111, 0x0e910111, 0x0e920111, 0x0e930111, 0x0e940111, 0x0e950111, 0x0e960111, - 0x0e970111, 0x0e980111, 0x0e990111, 0x0e9a0111, 0x0e9b0111, 0x0e9c0111, 0x0e9d0111, 0x0e9e0111, - 0x0e9f0111, 0x0ea00111, 0x0ea10111, 0x0ea20111, 0x0ea30111, 0x0ea40111, 0x0ea50111, 0x0ea60111, - 0x0ea70111, 0x0ea80111, 0x0ea90111, 0x0eaa0111, 0x0eab0111, 0x0eac0111, 0x0ead0111, 0x0eae0111, - 0x0eaf0111, 0x0eb00111, 0x0eb10111, 0x0eb20111, 0x0eb30111, 0x0eb40111, 0x0eb50111, 0x0e940121, - 0xffffffff, 0x02380111, 0x02220111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, - 0x00005811, 0x00005911, 0x00005a11, 0x00005b11, 0x00005c11, 0x00005d11, 0x00005e11, 0x00005f11, - 0x00006011, 0x00006111, 0xffffffff, 0x00006211, 0x00006311, 0x00000001, 0x02c20111, 0x00006411, - 0x02c30111, 0x00006511, 0x00006611, 0x02c40111, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0x0ebe0111, - 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0x0ec30131, 0x0ec30111, 0x0ec40121, - 0x0ec40111, 0x0ec50111, 0x0ec60111, 0x0ec70121, 0x0ec70111, 0x0ec80121, 0x0ec80111, 0x0ec90111, - 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0ebc0121, 0x0ebc0121, 0x0ec00121, 0x02c50111, 0x02c60111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0600 .. 0x06ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x022f0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x02360111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02510111, - 0xffffffff, 0x0ecd0111, 0x0ece0111, 0x0ecf0111, 0x0ed20111, 0x0ed30111, 0x0ed50111, 0x0ed60111, - 0x0ed70111, 0x0edb0111, 0x0edc0111, 0x0edd0111, 0x0ee30111, 0x0ee90111, 0x0eea0111, 0x0eee0111, - 0x0eef0111, 0x0ef90111, 0x0efa0111, 0x0f040111, 0x0f050111, 0x0f0a0111, 0x0f0b0111, 0x0f0f0111, - 0x0f100111, 0x0f120111, 0x0f130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x020b0111, 0x0f160111, 0x0f1d0111, 0x0f200111, 0x0f2d0111, 0x0f320111, 0x0f330111, 0x0f390111, - 0x0f3e0111, 0x0f480111, 0x0f490111, 0x00006811, 0x00006911, 0x00006a11, 0x00006b11, 0x00006c11, - 0x00006d11, 0x00006e11, 0x00006f11, 0x00007011, 0x00007111, 0x00007211, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02ab0111, 0x02300111, 0x02310111, 0x02a30111, 0xffffffff, 0xffffffff, - 0x00007311, 0x0ed10111, 0x0ed00111, 0x0ed40111, 0x0ecd0111, 0x0ed60121, 0x0f3e0121, 0x0f420121, - 0x0f490121, 0x0ede0111, 0x0edf0111, 0x0ed80111, 0x0ee00111, 0x0ee10111, 0x0ed90111, 0x0ee20111, - 0x0eda0111, 0x0eeb0111, 0x0eec0111, 0x0ee40111, 0x0ee50111, 0x0eed0111, 0x0ee60111, 0x0ee80111, - 0x0ef00111, 0x0ef10111, 0x0ef20111, 0x0ef30111, 0x0ef40111, 0x0ef50111, 0x0ef60111, 0x0ef70111, - 0x0ef80111, 0x0efb0111, 0x0efc0111, 0x0efd0111, 0x0efe0111, 0x0eff0111, 0x0f000111, 0x0f010111, - 0x0f020111, 0x0f030111, 0x0f060111, 0x0f070111, 0x0f080111, 0x0f0c0111, 0x0f0d0111, 0x0f110111, - 0x0f140111, 0x0f170111, 0x0f180111, 0x0f190111, 0x0f1a0111, 0x0f1b0111, 0x0f1c0111, 0x0f1e0111, - 0x0f1f0111, 0x0f210111, 0x0f220111, 0x0f230111, 0x0f240111, 0x0f250111, 0x0f260111, 0x0f270111, - 0x0f280111, 0x0f290111, 0x0f2a0111, 0x0f2b0111, 0x0f2c0111, 0x0f2e0111, 0x0f2f0111, 0x0f300111, - 0x0f310111, 0x0f380111, 0x0f340111, 0x0f350111, 0x0f360111, 0x0f370111, 0x0f3a0111, 0x0ee70111, - 0x0f3d0111, 0x0f3b0111, 0x0f3b0111, 0x0f3c0111, 0x0f3f0111, 0x0f400111, 0x0f410111, 0x0f420111, - 0x0f430111, 0x0f440111, 0x0f450111, 0x0f460111, 0x0f4a0111, 0x0f4b0111, 0x0f4c0111, 0x0f470111, - 0x0f4d0111, 0x0f4e0111, 0x0f4f0111, 0x0f4f0111, 0x02570111, 0x0f3d0111, 0x00007411, 0x00007511, - 0x00007611, 0x00007711, 0x00007811, 0x00007911, 0x00007a11, 0x00000001, 0x00000001, 0x00000001, - 0x00000001, 0x00007b11, 0x00007c11, 0x00007d11, 0x00007e11, 0x0f3e0121, 0x0f490121, 0x00007f11, - 0x00008011, 0x030c0111, 0x00000001, 0x00000001, 0x00000001, 0x00008111, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0f090111, 0x0f0e0111, 0x0f150111, 0x0ecd0121, 0x0f320121, 0xffffffff, - /* 0x0700 .. 0x07ff */ - 0x02660111, 0x02580111, 0x02590111, 0x02390111, 0x023a0111, 0x023b0111, 0x023c0111, 0x023d0111, - 0x023e0111, 0x02520111, 0x02c70111, 0x02c80111, 0x02c90111, 0x02ca0111, 0xffffffff, 0x00000000, - 0x0f500111, 0x00008211, 0x0f510111, 0x0f520111, 0x0f520121, 0x0f530111, 0x0f540111, 0x0f550111, - 0x0f560111, 0x0f570111, 0x0f580111, 0x0f590111, 0x0f590121, 0x0f5a0111, 0x0f5b0111, 0x0f5c0111, - 0x0f5d0111, 0x0f5e0111, 0x0f5f0111, 0x0f600111, 0x0f600121, 0x0f610111, 0x0f620111, 0x0f620121, - 0x0f630111, 0x0f640111, 0x0f650111, 0x0f660111, 0x0f670111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00008311, 0x00008411, 0x00008511, 0x00008611, 0x00008711, 0x00008811, 0x00008911, 0x00008a11, - 0x00008b11, 0x00008c11, 0x00008d11, 0x00008e11, 0x00008f11, 0x00009011, 0x00009111, 0x00009211, - 0x00009311, 0x00009411, 0x00009511, 0x00009611, 0x00009711, 0x00009811, 0x00009911, 0x00009a11, - 0x00009b11, 0x00009c11, 0x00009d11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0f680111, 0x0f6b0111, 0x0f6c0111, 0x0f6d0111, 0x0f6f0111, 0x0f700111, 0x0f710111, 0x0f720111, - 0x0f750111, 0x0f770111, 0x0f780111, 0x0f790111, 0x0f7b0111, 0x0f7f0111, 0x0f800111, 0x0f820111, - 0x0f830111, 0x0f870111, 0x0f880111, 0x0f890111, 0x0f8a0111, 0x0f8b0111, 0x0f8c0111, 0x0f8d0111, - 0x0f7c0111, 0x0f690111, 0x0f6a0111, 0x0f7a0111, 0x0f6e0111, 0x0f840111, 0x0f850111, 0x0f860111, - 0x0f7d0111, 0x0f7e0111, 0x0f730111, 0x0f740111, 0x0f810111, 0x0f760111, 0x0f8e0111, 0x0f8f0111, - 0x0f900111, 0x0f910111, 0x0f920111, 0x0f930111, 0x0f940111, 0x0f950111, 0x0f960111, 0x0f970111, - 0x0f980111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0900 .. 0x09ff */ - 0xffffffff, 0x00009f11, 0x0000a011, 0x0000a111, 0xffffffff, 0x10d70111, 0x10d80111, 0x10d90111, - 0x10da0111, 0x10db0111, 0x10dc0111, 0x10dd0111, 0x10df0111, 0x10e10111, 0x10e20111, 0x10e30111, - 0x10e40111, 0x10e50111, 0x10e60111, 0x10e70111, 0x10e80111, 0x10e90111, 0x10ea0111, 0x10eb0111, - 0x10ec0111, 0x10ed0111, 0x10ee0111, 0x10ef0111, 0x10f00111, 0x10f10111, 0x10f20111, 0x10f30111, - 0x10f40111, 0x10f50111, 0x10f60111, 0x10f70111, 0x10f80111, 0x10f90111, 0x10fa0111, 0x10fb0111, - 0x10fc0111, 0x10fc0111, 0x10fd0111, 0x10fe0111, 0x10ff0111, 0x11000111, 0x11010111, 0x11020111, - 0x11030111, 0x11030111, 0x11040111, 0x11050111, 0x11050111, 0x11060111, 0x11070111, 0x11080111, - 0x11090111, 0x110a0111, 0xffffffff, 0xffffffff, 0x00009e11, 0x110b0111, 0x110c0111, 0x110d0111, - 0x110e0111, 0x110f0111, 0x11100111, 0x11110111, 0x11120111, 0x11150111, 0x11160111, 0x11170111, - 0x11180111, 0x11190111, 0x111a0111, 0x111b0111, 0x111c0111, 0x111d0111, 0xffffffff, 0xffffffff, - 0x10d60111, 0x0000a211, 0x0000a311, 0x0000a411, 0x0000a511, 0xffffffff, 0xffffffff, 0xffffffff, - 0x10e90111, 0x10ea0111, 0x10eb0111, 0x10f00111, 0x10f50111, 0x10f60111, 0x10fe0111, 0x11020111, - 0x10de0111, 0x10e00111, 0x11130111, 0x11140111, 0x02600111, 0x02610111, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x02cd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000a711, 0x0000a811, 0x0000a911, 0xffffffff, 0x111e0111, 0x111f0111, 0x11200111, - 0x11210111, 0x11220111, 0x11230111, 0x11240111, 0x11260111, 0xffffffff, 0xffffffff, 0x11280111, - 0x11290111, 0xffffffff, 0xffffffff, 0x112a0111, 0x112b0111, 0x112c0111, 0x112d0111, 0x112e0111, - 0x112f0111, 0x11300111, 0x11310111, 0x11320111, 0x11330111, 0x11340111, 0x11350111, 0x11360111, - 0x11370111, 0x11380111, 0x11390111, 0x113a0111, 0x113b0111, 0x113c0111, 0x113d0111, 0x113e0111, - 0x113f0111, 0xffffffff, 0x11400111, 0x11410111, 0x11420111, 0x11430111, 0x11440111, 0x11450111, - 0x11460111, 0xffffffff, 0x11480111, 0xffffffff, 0xffffffff, 0xffffffff, 0x114a0111, 0x114b0111, - 0x114c0111, 0x114d0111, 0xffffffff, 0xffffffff, 0x0000a611, 0xffffffff, 0x114e0111, 0x114f0111, - 0x11500111, 0x11510111, 0x11520111, 0x11530111, 0x11540111, 0xffffffff, 0xffffffff, 0x11570111, - 0x11580111, 0xffffffff, 0xffffffff, 0x11590111, 0x115a0111, 0x115b0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x115c0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11380111, 0x11390111, 0xffffffff, 0x11450111, - 0x11250111, 0x11270111, 0x11550111, 0x11560111, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x11470111, 0x11490111, 0x09e30111, 0x09e40111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, - 0x09c10111, 0x09c20111, 0x030d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0a00 .. 0x0aff */ - 0xffffffff, 0xffffffff, 0x0000ab11, 0xffffffff, 0xffffffff, 0x11620111, 0x11630111, 0x11670111, - 0x11680111, 0x115f0111, 0x11600111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11690111, - 0x11640111, 0xffffffff, 0xffffffff, 0x11610111, 0x11650111, 0x116c0111, 0x116d0111, 0x116e0111, - 0x116f0111, 0x11700111, 0x11710111, 0x11720111, 0x11730111, 0x11740111, 0x11750111, 0x11760111, - 0x11770111, 0x11780111, 0x11790111, 0x117a0111, 0x117b0111, 0x117c0111, 0x117d0111, 0x117e0111, - 0x117f0111, 0xffffffff, 0x11800111, 0x11810111, 0x11820111, 0x11830111, 0x11840111, 0x11850111, - 0x11860111, 0xffffffff, 0x11870111, 0x11870111, 0xffffffff, 0x11880111, 0x116a0111, 0xffffffff, - 0x116a0111, 0x116b0111, 0xffffffff, 0xffffffff, 0x0000aa11, 0xffffffff, 0x118a0111, 0x118b0111, - 0x118c0111, 0x118d0111, 0x118e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x118f0111, - 0x11900111, 0xffffffff, 0xffffffff, 0x11910111, 0x11920111, 0x11930111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x116d0111, 0x116e0111, 0x11730111, 0x11890111, 0xffffffff, 0x11810111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x0000ac11, 0x0000ad11, 0x11660111, 0x115e0111, 0x115d0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000af11, 0x0000b011, 0x0000b111, 0xffffffff, 0x11950111, 0x11960111, 0x11970111, - 0x11980111, 0x11990111, 0x119a0111, 0x119b0111, 0xffffffff, 0x119d0111, 0xffffffff, 0x119e0111, - 0x119f0111, 0x11a00111, 0xffffffff, 0x11a10111, 0x11a20111, 0x11a30111, 0x11a40111, 0x11a50111, - 0x11a60111, 0x11a70111, 0x11a80111, 0x11a90111, 0x11aa0111, 0x11ab0111, 0x11ac0111, 0x11ad0111, - 0x11ae0111, 0x11af0111, 0x11b00111, 0x11b10111, 0x11b20111, 0x11b30111, 0x11b40111, 0x11b50111, - 0x11b60111, 0xffffffff, 0x11b70111, 0x11b80111, 0x11b90111, 0x11ba0111, 0x11bb0111, 0x11bc0111, - 0x11bd0111, 0xffffffff, 0x11be0111, 0x11bf0111, 0xffffffff, 0x11c00111, 0x11c10111, 0x11c20111, - 0x11c30111, 0x11c40111, 0xffffffff, 0xffffffff, 0x0000ae11, 0x11c50111, 0x11c60111, 0x11c70111, - 0x11c80111, 0x11c90111, 0x11ca0111, 0x11cb0111, 0x11cc0111, 0x11cd0111, 0xffffffff, 0x11ce0111, - 0x11cf0111, 0x11d00111, 0xffffffff, 0x11d10111, 0x11d20111, 0x11d30111, 0xffffffff, 0xffffffff, - 0x11940111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x119c0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0b00 .. 0x0bff */ - 0xffffffff, 0x0000b311, 0x0000b411, 0x0000b511, 0xffffffff, 0x11d40111, 0x11d50111, 0x11d60111, - 0x11d70111, 0x11d80111, 0x11d90111, 0x11da0111, 0x11dc0111, 0xffffffff, 0xffffffff, 0x11de0111, - 0x11df0111, 0xffffffff, 0xffffffff, 0x11e00111, 0x11e10111, 0x11e20111, 0x11e30111, 0x11e40111, - 0x11e50111, 0x11e60111, 0x11e70111, 0x11e80111, 0x11e90111, 0x11ea0111, 0x11eb0111, 0x11ec0111, - 0x11ed0111, 0x11ee0111, 0x11ef0111, 0x11f00111, 0x11f10111, 0x11f20111, 0x11f30111, 0x11f40111, - 0x11f50111, 0xffffffff, 0x11f60111, 0x11f70111, 0x11f80111, 0x11f90111, 0x11fa0111, 0x11fb0111, - 0x11fd0111, 0xffffffff, 0x11fe0111, 0x11ff0111, 0xffffffff, 0xffffffff, 0x12000111, 0x12010111, - 0x12020111, 0x12030111, 0xffffffff, 0xffffffff, 0x0000b211, 0x12040111, 0x12050111, 0x12060111, - 0x12070111, 0x12080111, 0x12090111, 0x120a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x120b0111, - 0x120c0111, 0xffffffff, 0xffffffff, 0x120d0111, 0x120e0111, 0x120f0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12100111, 0x12110111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11ee0111, 0x11ef0111, 0xffffffff, 0x11fc0111, - 0x11db0111, 0x11dd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x030e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000b611, 0x12120111, 0xffffffff, 0x12130111, 0x12140111, 0x12150111, - 0x12160111, 0x12170111, 0x12180111, 0xffffffff, 0xffffffff, 0xffffffff, 0x12190111, 0x121a0111, - 0x121b0111, 0xffffffff, 0x121c0111, 0x121d0111, 0x121e0111, 0x121f0111, 0xffffffff, 0xffffffff, - 0xffffffff, 0x12200111, 0x12210111, 0xffffffff, 0x12220111, 0xffffffff, 0x12230111, 0x12240111, - 0xffffffff, 0xffffffff, 0xffffffff, 0x12250111, 0x12260111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12270111, 0x12280111, 0x12290111, 0xffffffff, 0xffffffff, 0xffffffff, 0x122a0111, 0x122b0111, - 0x122c0111, 0x122d0111, 0x122e0111, 0x122f0111, 0x12300111, 0x12310111, 0xffffffff, 0x12320111, - 0x12330111, 0x12340111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12350111, 0x12360111, - 0x12370111, 0x12380111, 0x12390111, 0xffffffff, 0xffffffff, 0xffffffff, 0x123a0111, 0x123b0111, - 0x123c0111, 0xffffffff, 0x123d0111, 0x123e0111, 0x123f0111, 0x12400111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12410111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0x09c30111, 0x09c40111, 0x09c50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0c00 .. 0x0cff */ - 0xffffffff, 0x0000b711, 0x0000b811, 0x0000b911, 0xffffffff, 0x12420111, 0x12430111, 0x12440111, - 0x12450111, 0x12460111, 0x12470111, 0x12480111, 0x124a0111, 0xffffffff, 0x124c0111, 0x124d0111, - 0x124e0111, 0xffffffff, 0x124f0111, 0x12500111, 0x12510111, 0x12520111, 0x12530111, 0x12540111, - 0x12550111, 0x12560111, 0x12570111, 0x12580111, 0x12590111, 0x125a0111, 0x125b0111, 0x125c0111, - 0x125d0111, 0x125e0111, 0x125f0111, 0x12600111, 0x12610111, 0x12620111, 0x12630111, 0x12640111, - 0x12650111, 0xffffffff, 0x12660111, 0x12670111, 0x12680111, 0x12690111, 0x126a0111, 0x126b0111, - 0x126c0111, 0x126d0111, 0x126e0111, 0x126f0111, 0xffffffff, 0x12700111, 0x12710111, 0x12720111, - 0x12730111, 0x12740111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12750111, 0x12760111, - 0x12770111, 0x12780111, 0x12790111, 0x127a0111, 0x127b0111, 0xffffffff, 0x127c0111, 0x127d0111, - 0x127e0111, 0xffffffff, 0x127f0111, 0x12800111, 0x12810111, 0x12820111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12830111, 0x12840111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12490111, 0x124b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000ba11, 0x0000bb11, 0xffffffff, 0x12850111, 0x12860111, 0x12870111, - 0x12880111, 0x12890111, 0x128a0111, 0x128b0111, 0x128d0111, 0xffffffff, 0x128f0111, 0x12900111, - 0x12910111, 0xffffffff, 0x12920111, 0x12930111, 0x12940111, 0x12950111, 0x12960111, 0x12970111, - 0x12980111, 0x12990111, 0x129a0111, 0x129b0111, 0x129c0111, 0x129d0111, 0x129e0111, 0x129f0111, - 0x12a00111, 0x12a10111, 0x12a20111, 0x12a30111, 0x12a40111, 0x12a50111, 0x12a60111, 0x12a70111, - 0x12a80111, 0xffffffff, 0x12a90111, 0x12aa0111, 0x12ab0111, 0x12ac0111, 0x12ad0111, 0x12ae0111, - 0x12af0111, 0x12b00111, 0x12b10111, 0x12b70111, 0xffffffff, 0x12b20111, 0x12b30111, 0x12b40111, - 0x12b50111, 0x12b60111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b90111, 0x12ba0111, - 0x12bb0111, 0x12bc0111, 0x12bd0111, 0x12be0111, 0x12bf0111, 0xffffffff, 0x12c00111, 0x12c10111, - 0x12c20111, 0xffffffff, 0x12c30111, 0x12c40111, 0x12c50111, 0x12c60111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12c70111, 0x12c80111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b80111, 0xffffffff, - 0x128c0111, 0x128e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0d00 .. 0x0dff */ - 0xffffffff, 0xffffffff, 0x0000bc11, 0x0000bd11, 0xffffffff, 0x12c90111, 0x12ca0111, 0x12cb0111, - 0x12cc0111, 0x12cd0111, 0x12ce0111, 0x12cf0111, 0x12d10111, 0xffffffff, 0x12d30111, 0x12d40111, - 0x12d50111, 0xffffffff, 0x12d60111, 0x12d70111, 0x12d80111, 0x12d90111, 0x12da0111, 0x12db0111, - 0x12dc0111, 0x12dd0111, 0x12de0111, 0x12df0111, 0x12e00111, 0x12e10111, 0x12e20111, 0x12e30111, - 0x12e40111, 0x12e50111, 0x12e60111, 0x12e70111, 0x12e80111, 0x12e90111, 0x12ea0111, 0x12eb0111, - 0x12ec0111, 0xffffffff, 0x12ed0111, 0x12ee0111, 0x12ef0111, 0x12f00111, 0x12f10111, 0x12f20111, - 0x12f30111, 0x12f40111, 0x12f50111, 0x12f60111, 0x12f70111, 0x12f80111, 0x12f90111, 0x12fa0111, - 0x12fb0111, 0x12fc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12fd0111, 0x12fe0111, - 0x12ff0111, 0x13000111, 0x13010111, 0x13020111, 0xffffffff, 0xffffffff, 0x13030111, 0x13040111, - 0x13050111, 0xffffffff, 0x13060111, 0x13070111, 0x13080111, 0x13090111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x130a0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x12d00111, 0x12d20111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, - 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x0000be11, 0x0000bf11, 0xffffffff, 0x130b0111, 0x130c0111, 0x130d0111, - 0x130e0111, 0x130f0111, 0x13100111, 0x13110111, 0x13120111, 0x13130111, 0x13140111, 0x13150111, - 0x13160111, 0x13170111, 0x13180111, 0x13190111, 0x131a0111, 0x131b0111, 0x131c0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0x131d0111, 0x131e0111, 0x131f0111, 0x13200111, 0x13210111, 0x13220111, - 0x13230111, 0x13240111, 0x13250111, 0x13260111, 0x13270111, 0x13280111, 0x13290111, 0x132a0111, - 0x132b0111, 0x132c0111, 0x132d0111, 0x132e0111, 0x132f0111, 0x13300111, 0x13310111, 0x13320111, - 0x13330111, 0x13340111, 0xffffffff, 0x13350111, 0x13360111, 0x13370111, 0x13380111, 0x13390111, - 0x133a0111, 0x133b0111, 0x133c0111, 0x133d0111, 0xffffffff, 0x133e0111, 0xffffffff, 0xffffffff, - 0x133f0111, 0x13400111, 0x13410111, 0x13420111, 0x13430111, 0x13440111, 0x13450111, 0xffffffff, - 0xffffffff, 0xffffffff, 0x13460111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13470111, - 0x13480111, 0x13490111, 0x134a0111, 0x134b0111, 0x134c0111, 0xffffffff, 0x134d0111, 0xffffffff, - 0x134e0111, 0x134f0111, 0x13500111, 0x13510111, 0x13520111, 0x13530111, 0x13540111, 0x13550111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x13560111, 0x13570111, 0x02ce0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0e00 .. 0x0eff */ - 0xffffffff, 0x13580111, 0x13590111, 0x135a0111, 0x135b0111, 0x135c0111, 0x135d0111, 0x135e0111, - 0x135f0111, 0x13600111, 0x13610111, 0x13620111, 0x13630111, 0x13640111, 0x13650111, 0x13660111, - 0x13670111, 0x13680111, 0x13690111, 0x136a0111, 0x136b0111, 0x136c0111, 0x136d0111, 0x136e0111, - 0x136f0111, 0x13700111, 0x13710111, 0x13720111, 0x13730111, 0x13740111, 0x13750111, 0x13760111, - 0x13770111, 0x13780111, 0x13790111, 0x137a0111, 0x137b0111, 0x137c0111, 0x137d0111, 0x137e0111, - 0x137f0111, 0x13800111, 0x13810111, 0x13820111, 0x13830111, 0x13840111, 0x13850111, 0x13860111, - 0x13870111, 0x13880111, 0x13890111, 0x138a0111, 0x138b0111, 0x138c0111, 0x138d0111, 0x138e0111, - 0x138f0111, 0x13900111, 0x13910111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x09e50111, - 0x13920111, 0x13930111, 0x13940111, 0x13950111, 0x13960111, 0x13970111, 0x09d50111, 0x0000c011, - 0x0000c111, 0x0000c211, 0x0000c311, 0x0000c411, 0x13980111, 0x13990111, 0x00000001, 0x030f0111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02cf0111, 0x02d00111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x139a0111, 0x139b0111, 0xffffffff, 0x139c0111, 0xffffffff, 0xffffffff, 0x139d0111, - 0x139e0111, 0xffffffff, 0x139f0111, 0xffffffff, 0xffffffff, 0x13a00111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13a10111, 0x13a20111, 0x13a30111, 0x13a40111, - 0xffffffff, 0x13a50111, 0x13a60111, 0x13a70111, 0x13a80111, 0x13a90111, 0x13aa0111, 0x13ab0111, - 0xffffffff, 0x13ac0111, 0x13ad0111, 0x13ae0111, 0xffffffff, 0x13af0111, 0xffffffff, 0x13b00111, - 0xffffffff, 0xffffffff, 0x13b10111, 0x13b20111, 0xffffffff, 0x13b30111, 0x13b40111, 0x13b50111, - 0x13b60111, 0x13b70111, 0x13b80111, 0x13b90111, 0x13ba0111, 0x13bb0111, 0x13bc0111, 0x13bd0111, - 0x13be0111, 0x13bf0111, 0xffffffff, 0x13c00111, 0x13c10111, 0x13c20111, 0xffffffff, 0xffffffff, - 0x13c30111, 0x13c40111, 0x13c50111, 0x13c60111, 0x13c70111, 0xffffffff, 0x09d60111, 0xffffffff, - 0x0000c511, 0x0000c611, 0x0000c711, 0x0000c811, 0x13c80111, 0x13c90111, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0x13b20121, 0x13b20121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x0f00 .. 0x0fff */ - 0x140e0121, 0x03100111, 0x03110111, 0x03120111, 0x02d10111, 0x02d20111, 0x02d30111, 0x02d40111, - 0x02d50111, 0x02d60111, 0x02d70111, 0x02d80111, 0x02d80121, 0x02d90111, 0x02da0111, 0x02db0111, - 0x02dc0111, 0x02dd0111, 0x02de0111, 0x03130111, 0x02460111, 0x03140111, 0x03150111, 0x03160111, - 0x00000001, 0x00000001, 0x03170111, 0x03180111, 0x03190111, 0x031a0111, 0x031b0111, 0x031c0111, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, - 0x0a120111, 0x0a130111, 0x0a140111, 0x0a0b0111, 0x031d0111, 0x00000001, 0x031e0111, 0x00000001, - 0x031f0111, 0x0000c911, 0x02800111, 0x02810111, 0x02820111, 0x02830111, 0x03200111, 0x03210111, - 0x13ca0111, 0x13cc0111, 0x13ce0111, 0x13ce0111, 0x13d00111, 0x13d20111, 0x13d40111, 0x13d60111, - 0xffffffff, 0x13d80111, 0x13da0111, 0x13dc0111, 0x13de0111, 0x13de0111, 0x13e00111, 0x13e20111, - 0x13e40111, 0x13e60111, 0x13e60111, 0x13e80111, 0x13ea0111, 0x13ec0111, 0x13ee0111, 0x13ee0111, - 0x13f00111, 0x13f20111, 0x13f40111, 0x13f60111, 0x13f60111, 0x13f80111, 0x13fa0111, 0x13fc0111, - 0x13fe0111, 0x14000111, 0x14020111, 0x14040111, 0x14060111, 0x14080111, 0x140a0111, 0x140c0111, - 0x140e0111, 0x13ca0111, 0x14020121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x14140111, 0x14150111, 0x14160111, 0x14190111, 0x141a0111, 0x141b0111, 0x141c0111, - 0x141d0111, 0x141e0111, 0x141f0111, 0x14200111, 0x14210111, 0x14220111, 0x0000ca11, 0x0000cb11, - 0x14170111, 0x14180111, 0x00000001, 0x00000001, 0x14230111, 0x02df0111, 0x00000001, 0x00000001, - 0x14100111, 0x14110111, 0x14120111, 0x14130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x13cb0111, 0x13cd0111, 0x13cf0111, 0x13cf0111, 0x13d10111, 0x13d30111, 0x13d50111, 0x13d70111, - 0xffffffff, 0x13d90111, 0x13db0111, 0x13dd0111, 0x13df0111, 0x13df0111, 0x13e10111, 0x13e30111, - 0x13e50111, 0x13e70111, 0x13e70111, 0x13e90111, 0x13eb0111, 0x13ed0111, 0x13ef0111, 0x13ef0111, - 0x13f10111, 0x13f30111, 0x13f50111, 0x13f70111, 0x13f70111, 0x13f90111, 0x13fb0111, 0x13fd0111, - 0x13ff0111, 0x14010111, 0x14030111, 0x14050111, 0x14070111, 0x14090111, 0x140b0111, 0x140d0111, - 0x140f0111, 0x13cb0111, 0x13f90121, 0x14010121, 0x14030121, 0xffffffff, 0x03220111, 0x03230111, - 0x03240111, 0x03250111, 0x03260111, 0x03270111, 0x03280111, 0x03290111, 0x00000001, 0x032a0111, - 0x032b0111, 0x032c0111, 0x032d0111, 0x032e0111, 0x032f0111, 0xffffffff, 0xffffffff, 0x03300111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1000 .. 0x10ff */ - 0x14240111, 0x14250111, 0x14260111, 0x14270111, 0x14280111, 0x14290111, 0x142a0111, 0x142b0111, - 0x142c0111, 0x142d0111, 0x142e0111, 0x142f0111, 0x14300111, 0x14310111, 0x14320111, 0x14330111, - 0x14340111, 0x14350111, 0x14360111, 0x14370111, 0x14380111, 0x14390111, 0x143a0111, 0x143b0111, - 0x143c0111, 0x143d0111, 0x143e0111, 0x143f0111, 0x14400111, 0x14410111, 0x14440111, 0x14450111, - 0x14460111, 0x14470111, 0xffffffff, 0x14480111, 0x14490111, 0x144a0111, 0x144b0111, 0x144c0111, - 0xffffffff, 0x144d0111, 0x144e0111, 0xffffffff, 0x14530111, 0x14540111, 0x14550111, 0x14560111, - 0x14570111, 0x14580111, 0x14590111, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000cc11, 0x0000cd11, - 0x0000ce11, 0x145e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x02620111, 0x02630111, 0x02e00111, 0x02e10111, 0x02e20111, 0x02e30111, - 0x14420111, 0x14430111, 0x144f0111, 0x14500111, 0x14510111, 0x14520111, 0x145a0111, 0x145b0111, - 0x145c0111, 0x145d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0e690121, 0x0e6a0121, 0x0e6b0121, 0x0e6c0121, 0x0e6d0121, 0x0e6e0121, 0x0e6f0121, 0x0e710121, - 0x0e720121, 0x0e730121, 0x0e740121, 0x0e750121, 0x0e760121, 0x0e780121, 0x0e790121, 0x0e7a0121, - 0x0e7b0121, 0x0e7c0121, 0x0e7d0121, 0x0e7f0121, 0x0e800121, 0x0e810121, 0x0e820121, 0x0e830121, - 0x0e840121, 0x0e850121, 0x0e860121, 0x0e870121, 0x0e880121, 0x0e890121, 0x0e8a0121, 0x0e8c0121, - 0x0e8d0121, 0x0e700121, 0x0e770121, 0x0e7e0121, 0x0e8b0121, 0x0e8e0121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0e690111, 0x0e6a0111, 0x0e6b0111, 0x0e6c0111, 0x0e6d0111, 0x0e6e0111, 0x0e6f0111, 0x0e710111, - 0x0e720111, 0x0e730111, 0x0e740111, 0x0e750111, 0x0e760111, 0x0e780111, 0x0e790111, 0x0e7a0111, - 0x0e7b0111, 0x0e7c0111, 0x0e7d0111, 0x0e7f0111, 0x0e800111, 0x0e810111, 0x0e820111, 0x0e830111, - 0x0e840111, 0x0e850111, 0x0e860111, 0x0e870111, 0x0e880111, 0x0e890111, 0x0e8a0111, 0x0e8c0111, - 0x0e8d0111, 0x0e700111, 0x0e770111, 0x0e7e0111, 0x0e8b0111, 0x0e8e0111, 0x0e8f0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x02670111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1100 .. 0x11ff */ - 0x18310111, 0x18320111, 0x18330111, 0x18340111, 0x18350111, 0x18360111, 0x18370111, 0x18380111, - 0x18390111, 0x183a0111, 0x183b0111, 0x183c0111, 0x183d0111, 0x183e0111, 0x183f0111, 0x18400111, - 0x18410111, 0x18420111, 0x18430111, 0x18440111, 0x18450111, 0x18460111, 0x18470111, 0x18480111, - 0x18490111, 0x184a0111, 0x184b0111, 0x184c0111, 0x184d0111, 0x184e0111, 0x184f0111, 0x18500111, - 0x18510111, 0x18520111, 0x18530111, 0x18540111, 0x18550111, 0x18560111, 0x18570111, 0x18580111, - 0x18590111, 0x185a0111, 0x185b0111, 0x185c0111, 0x185d0111, 0x185e0111, 0x185f0111, 0x18600111, - 0x18610111, 0x18620111, 0x18630111, 0x18640111, 0x18650111, 0x18660111, 0x18670111, 0x18680111, - 0x18690111, 0x186a0111, 0x186b0111, 0x186c0111, 0x186d0111, 0x186e0111, 0x186f0111, 0x18700111, - 0x18710111, 0x18720111, 0x18730111, 0x18740111, 0x18750111, 0x18760111, 0x18770111, 0x18780111, - 0x18790111, 0x187a0111, 0x187b0111, 0x187c0111, 0x187d0111, 0x187e0111, 0x187f0111, 0x18800111, - 0x18810111, 0x18820111, 0x18830111, 0x18840111, 0x18850111, 0x18860111, 0x18870111, 0x18880111, - 0x18890111, 0x188a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x188b0111, - 0x188c0111, 0x188d0111, 0x188e0111, 0x188f0111, 0x18900111, 0x18910111, 0x18920111, 0x18930111, - 0x18940111, 0x18950111, 0x18960111, 0x18970111, 0x18980111, 0x18990111, 0x189a0111, 0x189b0111, - 0x189c0111, 0x189d0111, 0x189e0111, 0x189f0111, 0x18a00111, 0x18a10111, 0x18a20111, 0x18a30111, - 0x18a40111, 0x18a50111, 0x18a60111, 0x18a70111, 0x18a80111, 0x18a90111, 0x18aa0111, 0x18ab0111, - 0x18ac0111, 0x18ad0111, 0x18ae0111, 0x18af0111, 0x18b00111, 0x18b10111, 0x18b20111, 0x18b30111, - 0x18b40111, 0x18b50111, 0x18b60111, 0x18b70111, 0x18b80111, 0x18b90111, 0x18ba0111, 0x18bb0111, - 0x18bc0111, 0x18bd0111, 0x18be0111, 0x18bf0111, 0x18c00111, 0x18c10111, 0x18c20111, 0x18c30111, - 0x18c40111, 0x18c50111, 0x18c60111, 0x18c70111, 0x18c80111, 0x18c90111, 0x18ca0111, 0x18cb0111, - 0x18cc0111, 0x18cd0111, 0x18ce0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x18cf0111, 0x18d00111, 0x18d10111, 0x18d20111, 0x18d30111, 0x18d40111, 0x18d50111, 0x18d60111, - 0x18d70111, 0x18d80111, 0x18d90111, 0x18da0111, 0x18db0111, 0x18dc0111, 0x18dd0111, 0x18de0111, - 0x18df0111, 0x18e00111, 0x18e10111, 0x18e20111, 0x18e30111, 0x18e40111, 0x18e50111, 0x18e60111, - 0x18e70111, 0x18e80111, 0x18e90111, 0x18ea0111, 0x18eb0111, 0x18ec0111, 0x18ed0111, 0x18ee0111, - 0x18ef0111, 0x18f00111, 0x18f10111, 0x18f20111, 0x18f30111, 0x18f40111, 0x18f50111, 0x18f60111, - 0x18f70111, 0x18f80111, 0x18f90111, 0x18fa0111, 0x18fb0111, 0x18fc0111, 0x18fd0111, 0x18fe0111, - 0x18ff0111, 0x19000111, 0x19010111, 0x19020111, 0x19030111, 0x19040111, 0x19050111, 0x19060111, - 0x19070111, 0x19080111, 0x19090111, 0x190a0111, 0x190b0111, 0x190c0111, 0x190d0111, 0x190e0111, - 0x190f0111, 0x19100111, 0x19110111, 0x19120111, 0x19130111, 0x19140111, 0x19150111, 0x19160111, - 0x19170111, 0x19180111, 0x19190111, 0x191a0111, 0x191b0111, 0x191c0111, 0x191d0111, 0x191e0111, - 0x191f0111, 0x19200111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1200 .. 0x12ff */ - 0x0f990111, 0x0f9a0111, 0x0f9b0111, 0x0f9c0111, 0x0f9d0111, 0x0f9e0111, 0x0f9f0111, 0xffffffff, - 0x0fa00111, 0x0fa10111, 0x0fa20111, 0x0fa30111, 0x0fa40111, 0x0fa50111, 0x0fa60111, 0x0fa70111, - 0x0fa80111, 0x0fa90111, 0x0faa0111, 0x0fab0111, 0x0fac0111, 0x0fad0111, 0x0fae0111, 0x0faf0111, - 0x0fb00111, 0x0fb10111, 0x0fb20111, 0x0fb30111, 0x0fb40111, 0x0fb50111, 0x0fb60111, 0x0fb70111, - 0x0fb80111, 0x0fb90111, 0x0fba0111, 0x0fbb0111, 0x0fbc0111, 0x0fbd0111, 0x0fbe0111, 0x0fbf0111, - 0x0fc00111, 0x0fc10111, 0x0fc20111, 0x0fc30111, 0x0fc40111, 0x0fc50111, 0x0fc60111, 0x0fc70111, - 0x0fc80111, 0x0fc90111, 0x0fca0111, 0x0fcb0111, 0x0fcc0111, 0x0fcd0111, 0x0fce0111, 0x0fcf0111, - 0x0fd00111, 0x0fd10111, 0x0fd20111, 0x0fd30111, 0x0fd40111, 0x0fd50111, 0x0fd60111, 0x0fd70111, - 0x0fd80111, 0x0fd90111, 0x0fda0111, 0x0fdb0111, 0x0fdc0111, 0x0fdd0111, 0x0fde0111, 0xffffffff, - 0x0fdf0111, 0xffffffff, 0x0fe00111, 0x0fe10111, 0x0fe20111, 0x0fe30111, 0xffffffff, 0xffffffff, - 0x0fe40111, 0x0fe50111, 0x0fe60111, 0x0fe70111, 0x0fe80111, 0x0fe90111, 0x0fea0111, 0xffffffff, - 0x0feb0111, 0xffffffff, 0x0fec0111, 0x0fed0111, 0x0fee0111, 0x0fef0111, 0xffffffff, 0xffffffff, - 0x0ff00111, 0x0ff10111, 0x0ff20111, 0x0ff30111, 0x0ff40111, 0x0ff50111, 0x0ff60111, 0x0ff70111, - 0x0ff80111, 0x0ff90111, 0x0ffa0111, 0x0ffb0111, 0x0ffc0111, 0x0ffd0111, 0x0ffe0111, 0x0fff0111, - 0x10000111, 0x10010111, 0x10020111, 0x10030111, 0x10040111, 0x10050111, 0x10060111, 0x10070111, - 0x10080111, 0x10090111, 0x100a0111, 0x100b0111, 0x100c0111, 0x100d0111, 0x100e0111, 0x100f0111, - 0x10100111, 0x10110111, 0x10120111, 0x10130111, 0x10140111, 0x10150111, 0x10160111, 0xffffffff, - 0x10170111, 0xffffffff, 0x10180111, 0x10190111, 0x101a0111, 0x101b0111, 0xffffffff, 0xffffffff, - 0x101c0111, 0x101d0111, 0x101e0111, 0x101f0111, 0x10200111, 0x10210111, 0x10220111, 0x10230111, - 0x10240111, 0x10250111, 0x10260111, 0x10270111, 0x10280111, 0x10290111, 0x102a0111, 0x102b0111, - 0x102c0111, 0x102d0111, 0x102e0111, 0x102f0111, 0x10300111, 0x10310111, 0x10320111, 0x10330111, - 0x10340111, 0x10350111, 0x10360111, 0x10370111, 0x10380111, 0x10390111, 0x103a0111, 0xffffffff, - 0x103b0111, 0xffffffff, 0x103c0111, 0x103d0111, 0x103e0111, 0x103f0111, 0xffffffff, 0xffffffff, - 0x10400111, 0x10410111, 0x10420111, 0x10430111, 0x10440111, 0x10450111, 0x10460111, 0xffffffff, - 0x10470111, 0xffffffff, 0x10480111, 0x10490111, 0x104a0111, 0x104b0111, 0xffffffff, 0xffffffff, - 0x104c0111, 0x104d0111, 0x104e0111, 0x104f0111, 0x10500111, 0x10510111, 0x10520111, 0xffffffff, - 0x10530111, 0x10540111, 0x10550111, 0x10560111, 0x10570111, 0x10580111, 0x10590111, 0xffffffff, - 0x105a0111, 0x105b0111, 0x105c0111, 0x105d0111, 0x105e0111, 0x105f0111, 0x10600111, 0x10610111, - 0x10620111, 0x10630111, 0x10640111, 0x10650111, 0x10660111, 0x10670111, 0x10680111, 0x10690111, - 0x106a0111, 0x106b0111, 0x106c0111, 0x106d0111, 0x106e0111, 0x106f0111, 0x10700111, 0xffffffff, - 0x10710111, 0x10720111, 0x10730111, 0x10740111, 0x10750111, 0x10760111, 0x10770111, 0x10780111, - 0x10790111, 0x107a0111, 0x107b0111, 0x107c0111, 0x107d0111, 0x107e0111, 0x107f0111, 0x10800111, - /* 0x1300 .. 0x13ff */ - 0x10810111, 0x10820111, 0x10830111, 0x10840111, 0x10850111, 0x10860111, 0x10870111, 0x10880111, - 0x10890111, 0x108a0111, 0x108b0111, 0x108c0111, 0x108d0111, 0x108e0111, 0x108f0111, 0xffffffff, - 0x10900111, 0xffffffff, 0x10910111, 0x10920111, 0x10930111, 0x10940111, 0xffffffff, 0xffffffff, - 0x10950111, 0x10960111, 0x10970111, 0x10980111, 0x10990111, 0x109a0111, 0x109b0111, 0xffffffff, - 0x109c0111, 0x109d0111, 0x109e0111, 0x109f0111, 0x10a00111, 0x10a10111, 0x10a20111, 0x10a30111, - 0x10a40111, 0x10a50111, 0x10a60111, 0x10a70111, 0x10a80111, 0x10a90111, 0x10aa0111, 0x10ab0111, - 0x10ac0111, 0x10ad0111, 0x10ae0111, 0x10af0111, 0x10b00111, 0x10b10111, 0x10b20111, 0x10b30111, - 0x10b40111, 0x10b50111, 0x10b60111, 0x10b70111, 0x10b80111, 0x10b90111, 0x10ba0111, 0x10bb0111, - 0x10bc0111, 0x10bd0111, 0x10be0111, 0x10bf0111, 0x10c00111, 0x10c10111, 0x10c20111, 0xffffffff, - 0x10c30111, 0x10c40111, 0x10c50111, 0x10c60111, 0x10c70111, 0x10c80111, 0x10c90111, 0x10ca0111, - 0x10cb0111, 0x10cc0111, 0x10cd0111, 0x10ce0111, 0x10cf0111, 0x10d00111, 0x10d10111, 0x10d20111, - 0x10d30111, 0x10d40111, 0x10d50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x023f0111, 0x025a0111, 0x02400111, 0x02410111, 0x02420111, 0x02430111, 0x02530111, - 0x02680111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x09c60111, 0x09c70111, 0x09c80111, 0x09c90111, 0x09ca0111, 0x09cb0111, - 0x09cc0111, 0x09cd0111, 0x09ce0111, 0x09cf0111, 0x09d00111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x15280111, 0x15290111, 0x152a0111, 0x152b0111, 0x152c0111, 0x152d0111, 0x152e0111, 0x152f0111, - 0x15300111, 0x15310111, 0x15320111, 0x15330111, 0x15340111, 0x15350111, 0x15360111, 0x15370111, - 0x15380111, 0x15390111, 0x153a0111, 0x153b0111, 0x153c0111, 0x153d0111, 0x153e0111, 0x153f0111, - 0x15400111, 0x15410111, 0x15420111, 0x15430111, 0x15440111, 0x15450111, 0x15460111, 0x15470111, - 0x15480111, 0x15490111, 0x154a0111, 0x154b0111, 0x154c0111, 0x154d0111, 0x154e0111, 0x154f0111, - 0x15500111, 0x15510111, 0x15520111, 0x15530111, 0x15540111, 0x15550111, 0x15560111, 0x15570111, - 0x15580111, 0x15590111, 0x155a0111, 0x155b0111, 0x155c0111, 0x155d0111, 0x155e0111, 0x155f0111, - 0x15600111, 0x15610111, 0x15620111, 0x15630111, 0x15640111, 0x15650111, 0x15660111, 0x15670111, - 0x15680111, 0x15690111, 0x156a0111, 0x156b0111, 0x156c0111, 0x156d0111, 0x156e0111, 0x156f0111, - 0x15700111, 0x15710111, 0x15720111, 0x15730111, 0x15740111, 0x15750111, 0x15760111, 0x15770111, - 0x15780111, 0x15790111, 0x157a0111, 0x157b0111, 0x157c0111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1400 .. 0x14ff */ - 0xffffffff, 0x157d0111, 0x157e0111, 0x157f0111, 0x15800111, 0x15810111, 0x15820111, 0x15830111, - 0x15840111, 0x15850111, 0x15860111, 0x15870111, 0x15880111, 0x15890111, 0x158a0111, 0x158b0111, - 0x158c0111, 0x158d0111, 0x158e0111, 0x158f0111, 0x15900111, 0x15910111, 0x15920111, 0x15930111, - 0x15940111, 0x15950111, 0x15960111, 0x15970111, 0x15980111, 0x15990111, 0x159a0111, 0x159b0111, - 0x159c0111, 0x159d0111, 0x159e0111, 0x159f0111, 0x15a00111, 0x15a10111, 0x15a20111, 0x15a30111, - 0x15a40111, 0x15a50111, 0x15a60111, 0x15a70111, 0x15a80111, 0x15a90111, 0x15aa0111, 0x15ab0111, - 0x15ac0111, 0x15ad0111, 0x15ae0111, 0x15af0111, 0x15b00111, 0x15b10111, 0x15b20111, 0x15b30111, - 0x15b40111, 0x15b50111, 0x15b60111, 0x15b70111, 0x15b80111, 0x15b90111, 0x15ba0111, 0x15bb0111, - 0x15bc0111, 0x15bd0111, 0x15be0111, 0x15bf0111, 0x15c00111, 0x15c10111, 0x15c20111, 0x15c30111, - 0x15c40111, 0x15c50111, 0x15c60111, 0x15c70111, 0x15c80111, 0x15c90111, 0x15ca0111, 0x15cb0111, - 0x15cc0111, 0x15cd0111, 0x15ce0111, 0x15cf0111, 0x15d00111, 0x15d10111, 0x15d20111, 0x15d30111, - 0x15d40111, 0x15d50111, 0x15d60111, 0x15d70111, 0x15d80111, 0x15d90111, 0x15da0111, 0x15db0111, - 0x15dc0111, 0x15dd0111, 0x15de0111, 0x15df0111, 0x15e00111, 0x15e10111, 0x15e20111, 0x15e30111, - 0x15e40111, 0x15e50111, 0x15e60111, 0x15e70111, 0x15e80111, 0x15e90111, 0x15ea0111, 0x15eb0111, - 0x15ec0111, 0x15ed0111, 0x15ee0111, 0x15ef0111, 0x15f00111, 0x15f10111, 0x15f20111, 0x15f30111, - 0x15f40111, 0x15f50111, 0x15f60111, 0x15f70111, 0x15f80111, 0x15f90111, 0x15fa0111, 0x15fb0111, - 0x15fc0111, 0x15fd0111, 0x15fe0111, 0x15ff0111, 0x16000111, 0x16010111, 0x16020111, 0x16030111, - 0x16040111, 0x16050111, 0x16060111, 0x16070111, 0x16080111, 0x16090111, 0x160a0111, 0x160b0111, - 0x160c0111, 0x160d0111, 0x160e0111, 0x160f0111, 0x16100111, 0x16110111, 0x16120111, 0x16130111, - 0x16140111, 0x16150111, 0x16160111, 0x16170111, 0x16180111, 0x16190111, 0x161a0111, 0x161b0111, - 0x161c0111, 0x161d0111, 0x161e0111, 0x161f0111, 0x16200111, 0x16210111, 0x16220111, 0x16230111, - 0x16240111, 0x16250111, 0x16260111, 0x16270111, 0x16280111, 0x16290111, 0x162a0111, 0x162b0111, - 0x162c0111, 0x162d0111, 0x162e0111, 0x162f0111, 0x16300111, 0x16310111, 0x16320111, 0x16330111, - 0x16340111, 0x16350111, 0x16360111, 0x16370111, 0x16380111, 0x16390111, 0x163a0111, 0x163b0111, - 0x163c0111, 0x163d0111, 0x163e0111, 0x163f0111, 0x16400111, 0x16410111, 0x16420111, 0x16430111, - 0x16440111, 0x16450111, 0x16460111, 0x16470111, 0x16480111, 0x16490111, 0x164a0111, 0x164b0111, - 0x164c0111, 0x164d0111, 0x164e0111, 0x164f0111, 0x16500111, 0x16510111, 0x16520111, 0x16530111, - 0x16540111, 0x16550111, 0x16560111, 0x16570111, 0x16580111, 0x16590111, 0x165a0111, 0x165b0111, - 0x165c0111, 0x165d0111, 0x165e0111, 0x165f0111, 0x16600111, 0x16610111, 0x16620111, 0x16630111, - 0x16640111, 0x16650111, 0x16660111, 0x16670111, 0x16680111, 0x16690111, 0x166a0111, 0x166b0111, - 0x166c0111, 0x166d0111, 0x166e0111, 0x166f0111, 0x16700111, 0x16710111, 0x16720111, 0x16730111, - 0x16740111, 0x16750111, 0x16760111, 0x16770111, 0x16780111, 0x16790111, 0x167a0111, 0x167b0111, - /* 0x1500 .. 0x15ff */ - 0x167c0111, 0x167d0111, 0x167e0111, 0x167f0111, 0x16800111, 0x16810111, 0x16820111, 0x16830111, - 0x16840111, 0x16850111, 0x16860111, 0x16870111, 0x16880111, 0x16890111, 0x168a0111, 0x168b0111, - 0x168c0111, 0x168d0111, 0x168e0111, 0x168f0111, 0x16900111, 0x16910111, 0x16920111, 0x16930111, - 0x16940111, 0x16950111, 0x16960111, 0x16970111, 0x16980111, 0x16990111, 0x169a0111, 0x169b0111, - 0x169c0111, 0x169d0111, 0x169e0111, 0x169f0111, 0x16a00111, 0x16a10111, 0x16a20111, 0x16a30111, - 0x16a40111, 0x16a50111, 0x16a60111, 0x16a70111, 0x16a80111, 0x16a90111, 0x16aa0111, 0x16ab0111, - 0x16ac0111, 0x16ad0111, 0x16ae0111, 0x16af0111, 0x16b00111, 0x16b10111, 0x16b20111, 0x16b30111, - 0x16b40111, 0x16b50111, 0x16b60111, 0x16b70111, 0x16b80111, 0x16b90111, 0x16ba0111, 0x16bb0111, - 0x16bc0111, 0x16bd0111, 0x16be0111, 0x16bf0111, 0x16c00111, 0x16c10111, 0x16c20111, 0x16c30111, - 0x16c40111, 0x16c50111, 0x16c60111, 0x16c70111, 0x16c80111, 0x16c90111, 0x16ca0111, 0x16cb0111, - 0x16cc0111, 0x16cd0111, 0x16ce0111, 0x16cf0111, 0x16d00111, 0x16d10111, 0x16d20111, 0x16d30111, - 0x16d40111, 0x16d50111, 0x16d60111, 0x16d70111, 0x16d80111, 0x16d90111, 0x16da0111, 0x16db0111, - 0x16dc0111, 0x16dd0111, 0x16de0111, 0x16df0111, 0x16e00111, 0x16e10111, 0x16e20111, 0x16e30111, - 0x16e40111, 0x16e50111, 0x16e60111, 0x16e70111, 0x16e80111, 0x16e90111, 0x16ea0111, 0x16eb0111, - 0x16ec0111, 0x16ed0111, 0x16ee0111, 0x16ef0111, 0x16f00111, 0x16f10111, 0x16f20111, 0x16f30111, - 0x16f40111, 0x16f50111, 0x16f60111, 0x16f70111, 0x172a0111, 0x16f80111, 0x16fa0111, 0x16fb0111, - 0x16fc0111, 0x16fd0111, 0x16fe0111, 0x16ff0111, 0x17000111, 0x17010111, 0x17020111, 0x17030111, - 0x17040111, 0x17050111, 0x17060111, 0x17070111, 0x17080111, 0x17090111, 0x170b0111, 0x170c0111, - 0x170d0111, 0x170e0111, 0x170f0111, 0x17100111, 0x17110111, 0x17120111, 0x17190111, 0x171a0111, - 0x171b0111, 0x171c0111, 0x171d0111, 0x171e0111, 0x171f0111, 0x17200111, 0x17210111, 0x17220111, - 0x17230111, 0x17240111, 0x17250111, 0x17260111, 0x17270111, 0x17280111, 0x17290111, 0x172b0111, - 0x172c0111, 0x172d0111, 0x172e0111, 0x172f0111, 0x17300111, 0x17310111, 0x17320111, 0x17330111, - 0x17340111, 0x17350111, 0x17360111, 0x17370111, 0x17380111, 0x17390111, 0x173a0111, 0x173b0111, - 0x173c0111, 0x173d0111, 0x173e0111, 0x173f0111, 0x17400111, 0x17410111, 0x17420111, 0x17430111, - 0x17440111, 0x17450111, 0x17460111, 0x17470111, 0x17480111, 0x17490111, 0x174a0111, 0x174b0111, - 0x174c0111, 0x174d0111, 0x174e0111, 0x174f0111, 0x17500111, 0x17510111, 0x17520111, 0x17530111, - 0x17540111, 0x17550111, 0x17560111, 0x17570111, 0x17580111, 0x17590111, 0x175a0111, 0x175b0111, - 0x175c0111, 0x175d0111, 0x175e0111, 0x175f0111, 0x17600111, 0x17610111, 0x17620111, 0x17630111, - 0x17640111, 0x17650111, 0x17660111, 0x17670111, 0x17680111, 0x17690111, 0x176a0111, 0x176b0111, - 0x176c0111, 0x176d0111, 0x176e0111, 0x176f0111, 0x17700111, 0x17710111, 0x17720111, 0x17730111, - 0x17740111, 0x17750111, 0x17760111, 0x17770111, 0x17780111, 0x17790111, 0x177a0111, 0x177b0111, - 0x177c0111, 0x177d0111, 0x177e0111, 0x177f0111, 0x17800111, 0x17810111, 0x17820111, 0x17830111, - /* 0x1600 .. 0x16ff */ - 0x17840111, 0x17850111, 0x17860111, 0x17870111, 0x17880111, 0x17890111, 0x178a0111, 0x178b0111, - 0x178c0111, 0x178d0111, 0x178e0111, 0x178f0111, 0x17900111, 0x17910111, 0x17920111, 0x17930111, - 0x17940111, 0x17950111, 0x17960111, 0x17970111, 0x17980111, 0x17990111, 0x179a0111, 0x179b0111, - 0x179c0111, 0x179d0111, 0x179e0111, 0x179f0111, 0x17a00111, 0x17a10111, 0x17a20111, 0x17a30111, - 0x17a40111, 0x17a50111, 0x17a60111, 0x17a70111, 0x17a80111, 0x17a90111, 0x17aa0111, 0x17ab0111, - 0x17ac0111, 0x17ad0111, 0x17ae0111, 0x17af0111, 0x17b00111, 0x17b10111, 0x17b20111, 0x17b30111, - 0x17b40111, 0x17b50111, 0x17b60111, 0x17b70111, 0x17b80111, 0x17b90111, 0x17ba0111, 0x17bb0111, - 0x17bc0111, 0x17bd0111, 0x17be0111, 0x17bf0111, 0x17c00111, 0x17c10111, 0x17c20111, 0x17c30111, - 0x17c40111, 0x17c50111, 0x17c60111, 0x17c70111, 0x17c80111, 0x17c90111, 0x17ca0111, 0x17cb0111, - 0x17cc0111, 0x17cd0111, 0x17ce0111, 0x17cf0111, 0x17d00111, 0x17d10111, 0x17d20111, 0x17d30111, - 0x17d40111, 0x17d50111, 0x17d60111, 0x17d70111, 0x17d80111, 0x17d90111, 0x17da0111, 0x17db0111, - 0x17dc0111, 0x17dd0111, 0x17de0111, 0x17df0111, 0x17e00111, 0x17e10111, 0x17e20111, 0x17e30111, - 0x17e40111, 0x17e50111, 0x17e60111, 0x17e70111, 0x17e80111, 0x17e90111, 0x17ea0111, 0x17eb0111, - 0x17ec0111, 0x17ed0111, 0x17ee0111, 0x17ef0111, 0x17f00111, 0x03310111, 0x025d0111, 0x16f90111, - 0x170a0111, 0x17130111, 0x17140111, 0x17150111, 0x17160111, 0x17170111, 0x17180111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x020a0111, 0x17f10111, 0x17f20111, 0x17f30111, 0x17f40111, 0x17f50111, 0x17f60111, 0x17f70111, - 0x17f80111, 0x17f90111, 0x17fa0111, 0x17fb0111, 0x17fc0111, 0x17fd0111, 0x17fe0111, 0x17ff0111, - 0x18000111, 0x18010111, 0x18020111, 0x18030111, 0x18040111, 0x18050111, 0x18060111, 0x18070111, - 0x18080111, 0x18090111, 0x180a0111, 0x02840111, 0x02850111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x180b0111, 0x180b0121, 0x180c0111, 0x18280111, 0x180c0121, 0x180c0121, 0x180d0111, 0x180d0121, - 0x180e0111, 0x180e0121, 0x18260111, 0x18270111, 0x180e0121, 0x180e0121, 0x180e0121, 0x180f0111, - 0x18100111, 0x18110111, 0x18120111, 0x18120121, 0x18120121, 0x18120121, 0x18120121, 0x18130111, - 0x182b0111, 0x18140111, 0x18150111, 0x18150121, 0x18150121, 0x18150121, 0x18160111, 0x18160121, - 0x18160121, 0x18170111, 0x18170121, 0x18180111, 0x18180121, 0x18190111, 0x18190121, 0x181a0111, - 0x181b0111, 0x181c0111, 0x181d0111, 0x181d0121, 0x181d0121, 0x181d0121, 0x181d0121, 0x181e0111, - 0x181e0121, 0x181e0121, 0x181f0111, 0x181f0121, 0x181f0121, 0x181b0121, 0x18200111, 0x18210111, - 0x18210121, 0x18210121, 0x18220111, 0x18220121, 0x18230111, 0x18230121, 0x18240111, 0x18250111, - 0x18290111, 0x182d0111, 0x182e0111, 0x182a0111, 0x182c0111, 0x182f0111, 0x18300111, 0x18300121, - 0x18300121, 0x18140121, 0x181d0121, 0x02480111, 0x02490111, 0x024a0111, 0x18190121, 0x18210121, - 0x180d0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1700 .. 0x17ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x145f0111, 0x14600111, 0x14610111, 0x14620111, 0x14630111, 0x14640111, 0x14650111, 0x14660111, - 0x14670111, 0x14680111, 0x14690111, 0x146a0111, 0x146b0111, 0x146c0111, 0x146d0111, 0x146e0111, - 0x146f0111, 0x14700111, 0x14710111, 0x14720111, 0x14730111, 0x14740111, 0x14750111, 0x14760111, - 0x14770111, 0x14780111, 0x14790111, 0x147a0111, 0x147b0111, 0x147c0111, 0x147d0111, 0x147e0111, - 0x147f0111, 0x14800111, 0x14810111, 0x14820111, 0x14830111, 0x14840111, 0x14850111, 0x14860111, - 0x14870111, 0x14880111, 0x14890111, 0x148a0111, 0x148b0111, 0x148c0111, 0x148d0111, 0x148e0111, - 0x148f0111, 0x14900111, 0x14910111, 0x14920111, 0x14930111, 0x14940111, 0x14950111, 0x14960111, - 0x14970111, 0x14980111, 0x14990111, 0x149a0111, 0x149b0111, 0x149c0111, 0x149d0111, 0x149e0111, - 0x149f0111, 0x14a00111, 0x14a10111, 0x14a20111, 0x14a30111, 0x14a40111, 0x0000cf11, 0x0000d011, - 0x0000d111, 0x0000d211, 0x0000d311, 0x0000d411, 0x0000d511, 0x0000d611, 0x0000d711, 0x0000d811, - 0x0000d911, 0x0000da11, 0x14a50111, 0x0000db11, 0x02640111, 0x02650111, 0x02470111, 0x02e40111, - 0x02e50111, 0x02e60111, 0x02e70111, 0x09e60111, 0x02e80111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1800 .. 0x18ff */ - 0x02cb0111, 0x02560111, 0x02320111, 0x025b0111, 0x02440111, 0x02450111, 0x02230111, 0x02240111, - 0x02330111, 0x025c0111, 0x02cc0111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, - 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x14ae0111, 0x14b00111, 0x14b30111, 0x14b90111, 0x14bb0111, 0x14be0111, 0x14c00111, 0x14c30111, - 0x14c40111, 0x14c50111, 0x14ca0111, 0x14cc0111, 0x14cf0111, 0x14d10111, 0x14d60111, 0x14d80111, - 0x14d90111, 0x14da0111, 0x14e10111, 0x14e40111, 0x14e70111, 0x14ec0111, 0x14f00111, 0x14f30111, - 0x14f50111, 0x14f70111, 0x14fa0111, 0x14ff0111, 0x15000111, 0x15030111, 0x15070111, 0x150a0111, - 0x150b0111, 0x150c0111, 0x150d0111, 0x14ad0111, 0x14b10111, 0x14b40111, 0x14ba0111, 0x14bc0111, - 0x14bf0111, 0x14c10111, 0x14c60111, 0x14cb0111, 0x14cd0111, 0x14d00111, 0x14d20111, 0x14d70111, - 0x14e20111, 0x14e50111, 0x14e80111, 0x14ed0111, 0x15010111, 0x14f10111, 0x14f60111, 0x14fb0111, - 0x15050111, 0x15080111, 0x150e0111, 0x150f0111, 0x14ea0111, 0x14b20111, 0x14b50111, 0x14b80111, - 0x14c20111, 0x14bd0111, 0x14c70111, 0x14fc0111, 0x14d30111, 0x14d50111, 0x14ce0111, 0x14db0111, - 0x14e30111, 0x14e60111, 0x14ee0111, 0x14f80111, 0x15060111, 0x15090111, 0x15020111, 0x15040111, - 0x15100111, 0x14e90111, 0x14f20111, 0x14b60111, 0x14fd0111, 0x14f40111, 0x14f90111, 0x14ef0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x14a60111, 0x14a70111, 0x14a80111, 0x14a90111, 0x14aa0111, 0x14ab0111, 0x14ac0111, 0x14af0111, - 0x14b70111, 0x14fe0111, 0x14c80111, 0x14eb0111, 0x15110111, 0x15130111, 0x15140111, 0x15160111, - 0x15170111, 0x151a0111, 0x151c0111, 0x151d0111, 0x151f0111, 0x15210111, 0x15230111, 0x15240111, - 0x15180111, 0x15220111, 0x14d40111, 0x14c90111, 0x14dc0111, 0x14dd0111, 0x15120111, 0x15150111, - 0x15190111, 0x151b0111, 0x14de0111, 0x15200111, 0x14df0111, 0x14e00111, 0x15250111, 0x15260111, - 0x151e0111, 0x15270111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1e00 .. 0x1eff */ - 0x0a150151, 0x0a150111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, - 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, - 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a910151, 0x0a910111, - 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, - 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, - 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0b030161, 0x0b030111, - 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b2b0151, 0x0b2b0111, - 0x0b2b0151, 0x0b2b0111, 0x0b2b0151, 0x0b2b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, - 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b670141, 0x0b670111, 0x0b670141, 0x0b670111, - 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, - 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, - 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, - 0x0bbf0151, 0x0bbf0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bef0151, 0x0bef0111, 0x0bef0151, 0x0bef0111, - 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, - 0x0bfb0141, 0x0bfb0111, 0x0c030151, 0x0c030111, 0x0c030151, 0x0c030111, 0x0c070141, 0x0c070111, - 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ab90111, 0x0bbf0111, - 0x0bfb0111, 0x0c070111, 0x0a150131, 0x0ba70131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, - 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, - 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, - 0x0bd70141, 0x0bd70111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, - 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x1f00 .. 0x1fff */ - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, - 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0xffffffff, 0xffffffff, - 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0xffffffff, 0xffffffff, - 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, - 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, - 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, - 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, - 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0xffffffff, 0xffffffff, - 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0xffffffff, 0xffffffff, - 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, - 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, - 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, - 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, - 0x0c910111, 0x0c910111, 0x0c950111, 0x0c950111, 0x0c990111, 0x0c990111, 0x0c9b0111, 0x0c9b0111, - 0x0ca20111, 0x0ca20111, 0x0ca80111, 0x0ca80111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0xffffffff, - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, - 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, - 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, - 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, - 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, - 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0xffffffff, 0x0c910111, 0x0c910111, - 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x02170111, 0x0c9b0111, 0x02170111, - 0x021d0111, 0x02140111, 0x0c990111, 0x0c990111, 0x0c990111, 0xffffffff, 0x0c990111, 0x0c990111, - 0x0c950131, 0x0c950131, 0x0c990121, 0x0c990121, 0x0c990121, 0x02170111, 0x02170111, 0x02170111, - 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0xffffffff, 0xffffffff, 0x0c9b0111, 0x0c9b0111, - 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0xffffffff, 0x02180111, 0x02180111, 0x02180111, - 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca50111, 0x0ca50111, 0x0ca80111, 0x0ca80111, - 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca50131, 0x02140111, 0x02140111, 0x020c0111, - 0xffffffff, 0xffffffff, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0x0cac0111, 0x0cac0111, - 0x0ca20121, 0x0ca20121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x020d0111, 0x02180111, 0xffffffff, - /* 0x2000 .. 0x20ff */ - 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090141, - 0x02090131, 0x02090131, 0x02090131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x02250111, 0x02250121, 0x02260111, 0x02270111, 0x02280111, 0x02290111, 0x03a90111, 0x021c0111, - 0x026a0111, 0x026b0111, 0x026c0111, 0x026d0111, 0x02710111, 0x02720111, 0x02730111, 0x02740111, - 0x02ae0111, 0x02af0111, 0x02b00111, 0x02b10111, 0x02550131, 0x02550131, 0x02550131, 0x02b20111, - 0x02070111, 0x02080111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02090141, - 0x02ac0111, 0x02ad0111, 0x02b60111, 0x02b60121, 0x02b60121, 0x02b70111, 0x02b70121, 0x02b70121, - 0x02b90111, 0x026e0111, 0x026f0111, 0x02ba0111, 0x024b0131, 0x02540111, 0x02110111, 0x02bb0111, - 0x02bc0111, 0x02bd0111, 0x02be0111, 0x02b30111, 0x02a50111, 0x02860111, 0x02870111, 0xffffffff, - 0x024e0131, 0x024b0131, 0x02a80111, 0x029e0111, 0x02b40111, 0x02b50111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x0a0b0151, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0f0151, 0x0a100151, 0x0a110151, 0x0a120151, - 0x0a130151, 0x0a140151, 0x039f0151, 0x03ab0121, 0x03a40141, 0x027a0151, 0x027b0141, 0x0b3301a1, - 0x0a0b0161, 0x0a0c0161, 0x0a0d0161, 0x0a0e0161, 0x0a0f0161, 0x0a100161, 0x0a110161, 0x0a120161, - 0x0a130161, 0x0a140161, 0x039f0161, 0x03ab0131, 0x03a40151, 0x027a0161, 0x027b0151, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09e70111, 0x09e80111, 0x09e90111, 0x09ea0111, 0x09eb0111, 0x09ec0111, 0x09ed0111, 0x09ee0111, - 0x0b7f0161, 0x09ef0111, 0x09f00111, 0x09f10111, 0x09f20111, 0x09f30111, 0x09f40111, 0x09f50111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0000e411, 0x0000e511, 0x0000e611, 0x0000e711, 0x0000e811, 0x0000e911, 0x0000ea11, 0x0000eb11, - 0x0000ec11, 0x0000ed11, 0x0000ee11, 0x0000ef11, 0x0000f011, 0x0000f111, 0x0000f211, 0x0000f311, - 0x0000f411, 0x0000f511, 0x0000f611, 0x0000f711, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2100 .. 0x21ff */ - 0x0a150131, 0x0a150131, 0x0a3d0181, 0x030a0121, 0x09f60111, 0x0a3d0131, 0x0a3d0131, 0x0a710131, - 0x09f70111, 0x030a0121, 0x0a990131, 0x0ab90171, 0x0ab90171, 0x0ab90171, 0x0ab90131, 0x0ac50121, - 0x0ad30191, 0x0ad30191, 0x0b030191, 0x0b030141, 0x09f80111, 0x0b330181, 0x0b330171, 0x09f90111, - 0x09fa0111, 0x0b670161, 0x0b730161, 0x0b7f0171, 0x0b7f0171, 0x0b7f0171, 0x09fb0111, 0x09fc0111, - 0x0ba70181, 0x0bbf0171, 0x0bbf0191, 0x09fd0111, 0x0c130161, 0x09fe0111, 0x0cac0121, 0x09ff0111, - 0x0c130161, 0x0a000111, 0x0af70141, 0x0a150151, 0x0a290161, 0x0a3d0181, 0x0a010111, 0x0a650131, - 0x0a650171, 0x0a910171, 0x0a020111, 0x0b2b0181, 0x0b4b0141, 0x0eb70121, 0x0eb80121, 0x0eb90121, - 0x0eba0121, 0x0ad30141, 0x0a030111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0171, 0x0a0d0171, 0x0a0c0171, 0x0a0d0171, 0x0a0e0171, - 0x0a0f0171, 0x0a0c0171, 0x0a100171, 0x0a0c0171, 0x0a0e0171, 0x0a100171, 0x0a120171, 0x0a0c0171, - 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0bef0171, 0x0bef0171, 0x0bef0171, 0x0bef0171, - 0x0ad30181, 0x0c030171, 0x0c030171, 0x0c030171, 0x0b030181, 0x0a3d0171, 0x0a490171, 0x0b2b0171, - 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0bef0131, 0x0bef0131, 0x0bef0131, 0x0bef0131, - 0x0ad30131, 0x0c030131, 0x0c030131, 0x0c030131, 0x0b030131, 0x0a3d0131, 0x0a490131, 0x0b2b0131, - 0x0a040111, 0x0a050111, 0x0a060111, 0x0a070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x03320111, 0x03340111, 0x03330111, 0x03350111, 0x03360111, 0x03370111, 0x03380111, 0x03390111, - 0x033a0111, 0x033b0111, 0x03320111, 0x03330111, 0x033c0111, 0x033d0111, 0x033e0111, 0x033f0111, - 0x03400111, 0x03410111, 0x03420111, 0x03430111, 0x03440111, 0x03450111, 0x03460111, 0x03470111, - 0x03480111, 0x03490111, 0x034a0111, 0x034b0111, 0x034c0111, 0x034d0111, 0x03360111, 0x034e0111, - 0x034f0111, 0x03500111, 0x03510111, 0x03520111, 0x03530111, 0x03540111, 0x03550111, 0x03560111, - 0x03570111, 0x03580111, 0x03590111, 0x035a0111, 0x035b0111, 0x035c0111, 0x035d0111, 0x035e0111, - 0x035f0111, 0x03600111, 0x03610111, 0x03620111, 0x03630111, 0x03640111, 0x03650111, 0x03660111, - 0x03670111, 0x03680111, 0x03690111, 0x036a0111, 0x036b0111, 0x036c0111, 0x03700111, 0x036e0111, - 0x036c0111, 0x036d0111, 0x036e0111, 0x036f0111, 0x03700111, 0x03710111, 0x03720111, 0x03730111, - 0x03740111, 0x03750111, 0x03760111, 0x03770111, 0x03780111, 0x03790111, 0x037a0111, 0x037b0111, - 0x037c0111, 0x037d0111, 0x037e0111, 0x037f0111, 0x03800111, 0x03810111, 0x03820111, 0x03830111, - 0x03840111, 0x03850111, 0x03860111, 0x03870111, 0x03880111, 0x03890111, 0x038a0111, 0x038b0111, - 0x038c0111, 0x038d0111, 0x038e0111, 0x038f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2200 .. 0x22ff */ - 0x03900111, 0x03910111, 0x03920111, 0x03930111, 0x03930111, 0x03940111, 0x03950111, 0x03960111, - 0x03970111, 0x03970111, 0x03980111, 0x03990111, 0x03990111, 0x039a0111, 0x039b0111, 0x039c0111, - 0x039d0111, 0x039e0111, 0x03ab0111, 0x03ac0111, 0x03ad0111, 0x03ae0111, 0x03af0111, 0x03b00111, - 0x03b10111, 0x03b20111, 0x03b30111, 0x03b40111, 0x03b50111, 0x03b60111, 0x03b70111, 0x03b80111, - 0x03b90111, 0x03ba0111, 0x03bb0111, 0x03bc0111, 0x03bc0111, 0x03bd0111, 0x03bd0111, 0x03be0111, - 0x03bf0111, 0x03c00111, 0x03c10111, 0x03c20111, 0x03c20121, 0x03c20121, 0x03c30111, 0x03c30121, - 0x03c30121, 0x03c40111, 0x03c50111, 0x03c60111, 0x03c70111, 0x03c80111, 0x03c90111, 0x03ca0111, - 0x03cb0111, 0x03cc0111, 0x03cd0111, 0x03ce0111, 0x03cf0111, 0x03d00111, 0x03d10111, 0x03d20111, - 0x03d30111, 0x03cf0111, 0x03d40111, 0x03d50111, 0x03d50111, 0x03d60111, 0x03d70111, 0x03d60111, - 0x03d80111, 0x03d80111, 0x03d90111, 0x03da0111, 0x03db0111, 0x03dc0111, 0x03dd0111, 0x03de0111, - 0x03df0111, 0x03e00111, 0x03e10111, 0x03e20111, 0x03e30111, 0x03e40111, 0x03e50111, 0x03e60111, - 0x03e70111, 0x03e80111, 0x03e90111, 0x03ea0111, 0x03eb0111, 0x03ec0111, 0x03ed0111, 0x03ee0111, - 0x03a40111, 0x03ef0111, 0x03ef0111, 0x03f00111, 0x03f10111, 0x03f20111, 0x03f30111, 0x03f40111, - 0x03f50111, 0x03f60111, 0x03f70111, 0x03f80111, 0x03f90111, 0x03dc0111, 0x03a30111, 0x03a50111, - 0x03f10111, 0x03f20111, 0x03fa0111, 0x03fb0111, 0x03fa0111, 0x03fb0111, 0x03fc0111, 0x03fd0111, - 0x03fc0111, 0x03fd0111, 0x03fe0111, 0x03ff0111, 0x04000111, 0x04010111, 0x04020111, 0x04030111, - 0x03fe0111, 0x03ff0111, 0x04040111, 0x04050111, 0x04040111, 0x04050111, 0x04060111, 0x04070111, - 0x04060111, 0x04070111, 0x04080111, 0x04090111, 0x040a0111, 0x040b0111, 0x040c0111, 0x040d0111, - 0x040e0111, 0x040f0111, 0x04100111, 0x04110111, 0x04120111, 0x04130111, 0x04140111, 0x04150111, - 0x04160111, 0x04170111, 0x04180111, 0x04190111, 0x041a0111, 0x041b0111, 0x041c0111, 0x041d0111, - 0x041e0111, 0x041f0111, 0x04200111, 0x04210111, 0x04220111, 0x04230111, 0x04240111, 0x04250111, - 0x04260111, 0x04270111, 0x04280111, 0x04290111, 0x04200111, 0x04260111, 0x04270111, 0x04290111, - 0x042a0111, 0x042b0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04300111, 0x04310111, - 0x04320111, 0x04330111, 0x04340111, 0x04350111, 0x04360111, 0x04370111, 0x04380111, 0x04390111, - 0x043a0111, 0x043b0111, 0x043c0111, 0x043d0111, 0x043e0111, 0x043f0111, 0x04400111, 0x04410111, - 0x04420111, 0x04430111, 0x04440111, 0x04450111, 0x04460111, 0x04470111, 0x04480111, 0x04490111, - 0x044a0111, 0x044b0111, 0x044c0111, 0x044d0111, 0x044e0111, 0x044f0111, 0x04500111, 0x04510111, - 0x04520111, 0x04530111, 0x04540111, 0x04550111, 0x04560111, 0x04570111, 0x04580111, 0x04590111, - 0x04000111, 0x04010111, 0x040f0111, 0x04100111, 0x045a0111, 0x045b0111, 0x045c0111, 0x045d0111, - 0x045e0111, 0x045f0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04600111, 0x04610111, - 0x04620111, 0x04630111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2300 .. 0x23ff */ - 0x04640111, 0x04650111, 0x04660111, 0x04670111, 0x04680111, 0x04690111, 0x046a0111, 0x046b0111, - 0x046c0111, 0x046d0111, 0x046e0111, 0x046f0111, 0x04700111, 0x04710111, 0x04720111, 0x04730111, - 0x04740111, 0x04750111, 0x04760111, 0x04770111, 0x04780111, 0x04790111, 0x047a0111, 0x047b0111, - 0x047c0111, 0x047d0111, 0x047e0111, 0x047f0111, 0x04800111, 0x04810111, 0x04820111, 0x04830111, - 0x04840111, 0x04850111, 0x04860111, 0x04870111, 0x04880111, 0x04890111, 0x048a0111, 0x048b0111, - 0x048c0111, 0x02880111, 0x02890111, 0x048d0111, 0x048e0111, 0x048f0111, 0x04900111, 0x04910111, - 0x04920111, 0x04930111, 0x04940111, 0x04950111, 0x04960111, 0x04970111, 0x04980111, 0x04990111, - 0x049a0111, 0x049b0111, 0x049c0111, 0x049d0111, 0x049e0111, 0x049f0111, 0x04a00111, 0x04a10111, - 0x04a20111, 0x04a30111, 0x04a40111, 0x04a50111, 0x04a60111, 0x04a70111, 0x04a80111, 0x04a90111, - 0x04aa0111, 0x04ab0111, 0x04ac0111, 0x04ad0111, 0x04ae0111, 0x04af0111, 0x04b00111, 0x04b10111, - 0x04b20111, 0x04b30111, 0x04b40111, 0x04b50111, 0x04b60111, 0x04b70111, 0x04b80111, 0x04b90111, - 0x04ba0111, 0x04bb0111, 0x04bc0111, 0x04bd0111, 0x04be0111, 0x04bf0111, 0x04c00111, 0x04c10111, - 0x04c20111, 0x04c30111, 0x04c40111, 0x04c50111, 0x04c60111, 0x04c70111, 0x04c80111, 0x04c90111, - 0x04ca0111, 0x04cb0111, 0x04cc0111, 0x04cd0111, 0x04ce0111, 0x04cf0111, 0x04d00111, 0x04d10111, - 0x04d20111, 0x04d30111, 0x04d40111, 0x04d50111, 0x04d60111, 0x04d70111, 0x04d80111, 0x04d90111, - 0x04da0111, 0x04db0111, 0x04dc0111, 0x04dd0111, 0xffffffff, 0x04de0111, 0x04df0111, 0x04e00111, - 0x04e10111, 0x04e20111, 0x04e30111, 0x04e40111, 0x04e50111, 0x04e60111, 0x04e70111, 0x04e80111, - 0x04e90111, 0x04ea0111, 0x04eb0111, 0x04ec0111, 0x04ed0111, 0x04ee0111, 0x04ef0111, 0x04f00111, - 0x04f10111, 0x04f20111, 0x04f30111, 0x04f40111, 0x04f50111, 0x04f60111, 0x04f70111, 0x04f80111, - 0x04f90111, 0x04fa0111, 0x04fb0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2400 .. 0x24ff */ - 0x04fc0111, 0x04fd0111, 0x04fe0111, 0x04ff0111, 0x05000111, 0x05010111, 0x05020111, 0x05030111, - 0x05040111, 0x05050111, 0x05060111, 0x05070111, 0x05080111, 0x05090111, 0x050a0111, 0x050b0111, - 0x050c0111, 0x050d0111, 0x050e0111, 0x050f0111, 0x05100111, 0x05110111, 0x05120111, 0x05130111, - 0x05140111, 0x05150111, 0x05160111, 0x05170111, 0x05180111, 0x05190111, 0x051a0111, 0x051b0111, - 0x051c0111, 0x051d0111, 0x051e0111, 0x051f0111, 0x05200111, 0x05210111, 0x05220111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x05230111, 0x05240111, 0x05250111, 0x05260111, 0x05270111, 0x05280111, 0x05290111, 0x052a0111, - 0x052b0111, 0x052c0111, 0x052d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, - 0x0a140141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, - 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0d0141, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x0a150171, 0x0a290171, - 0x0a3d0191, 0x0a490181, 0x0a650181, 0x0a910181, 0x0a990171, 0x0ab90181, 0x0ad301a1, 0x0ae70161, - 0x0af70161, 0x0b0301a1, 0x0b2b0191, 0x0b330191, 0x0b4b0191, 0x0b670171, 0x0b730171, 0x0b7f0181, - 0x0ba70171, 0x0bbf0181, 0x0bd70161, 0x0bef0181, 0x0bfb0161, 0x0c030181, 0x0c070161, 0x0c130171, - 0x0a150141, 0x0a290131, 0x0a3d0141, 0x0a490141, 0x0a650141, 0x0a910141, 0x0a990141, 0x0ab90141, - 0x0ad30151, 0x0ae70131, 0x0af70131, 0x0b030151, 0x0b2b0141, 0x0b330141, 0x0b4b0151, 0x0b670131, - 0x0b730131, 0x0b7f0131, 0x0ba70141, 0x0bbf0141, 0x0bd70131, 0x0bef0141, 0x0bfb0131, 0x0c030141, - 0x0c070131, 0x0c130131, 0x0a0b0141, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2500 .. 0x25ff */ - 0x052e0111, 0x052f0111, 0x05300111, 0x05310111, 0x05320111, 0x05330111, 0x05340111, 0x05350111, - 0x05360111, 0x05370111, 0x05380111, 0x05390111, 0x053a0111, 0x053b0111, 0x053c0111, 0x053d0111, - 0x053e0111, 0x053f0111, 0x05400111, 0x05410111, 0x05420111, 0x05430111, 0x05440111, 0x05450111, - 0x05460111, 0x05470111, 0x05480111, 0x05490111, 0x054a0111, 0x054b0111, 0x054c0111, 0x054d0111, - 0x054e0111, 0x054f0111, 0x05500111, 0x05510111, 0x05520111, 0x05530111, 0x05540111, 0x05550111, - 0x05560111, 0x05570111, 0x05580111, 0x05590111, 0x055a0111, 0x055b0111, 0x055c0111, 0x055d0111, - 0x055e0111, 0x055f0111, 0x05600111, 0x05610111, 0x05620111, 0x05630111, 0x05640111, 0x05650111, - 0x05660111, 0x05670111, 0x05680111, 0x05690111, 0x056a0111, 0x056b0111, 0x056c0111, 0x056d0111, - 0x056e0111, 0x056f0111, 0x05700111, 0x05710111, 0x05720111, 0x05730111, 0x05740111, 0x05750111, - 0x05760111, 0x05770111, 0x05780111, 0x05790111, 0x057a0111, 0x057b0111, 0x057c0111, 0x057d0111, - 0x057e0111, 0x057f0111, 0x05800111, 0x05810111, 0x05820111, 0x05830111, 0x05840111, 0x05850111, - 0x05860111, 0x05870111, 0x05880111, 0x05890111, 0x058a0111, 0x058b0111, 0x058c0111, 0x058d0111, - 0x058e0111, 0x058f0111, 0x05900111, 0x05910111, 0x05920111, 0x05930111, 0x05940111, 0x05950111, - 0x05960111, 0x05970111, 0x05980111, 0x05990111, 0x059a0111, 0x059b0111, 0x059c0111, 0x059d0111, - 0x059e0111, 0x059f0111, 0x05a00111, 0x05a10111, 0x05a20111, 0x05a30111, 0x05a40111, 0x05a50111, - 0x05a60111, 0x05a70111, 0x05a80111, 0x05a90111, 0x05aa0111, 0x05ab0111, 0x05ac0111, 0x05ad0111, - 0x05ae0111, 0x05af0111, 0x05b00111, 0x05b10111, 0x05b20111, 0x05b30111, 0x05b40111, 0x05b50111, - 0x05b60111, 0x05b70111, 0x05b80111, 0x05b90111, 0x05ba0111, 0x05bb0111, 0x05bc0111, 0x05bd0111, - 0x05be0111, 0x05bf0111, 0x05c00111, 0x05c10111, 0x05c20111, 0x05c30111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x05c40111, 0x05c50111, 0x05c60111, 0x05c70111, 0x05c80111, 0x05c90111, 0x05ca0111, 0x05cb0111, - 0x05cc0111, 0x05cd0111, 0x05ce0111, 0x05cf0111, 0x05d00111, 0x05d10111, 0x05d20111, 0x05d30111, - 0x05d40111, 0x05d50111, 0x05d60111, 0x05d70111, 0x05d80111, 0x05d90111, 0x05da0111, 0x05db0111, - 0x05dc0111, 0x05dd0111, 0x05de0111, 0x05df0111, 0x05e00111, 0x05e10111, 0x05e20111, 0x05e30111, - 0x05e40111, 0x05e50111, 0x05e60111, 0x05e70111, 0x05e80111, 0x05e90111, 0x05ea0111, 0x05eb0111, - 0x05ec0111, 0x05ed0111, 0x05ee0111, 0x05ef0111, 0x05f00111, 0x05f10111, 0x05f20111, 0x05f30111, - 0x05f40111, 0x05f50111, 0x05f60111, 0x05f70111, 0x05f80111, 0x05f90111, 0x05fa0111, 0x05fb0111, - 0x05fc0111, 0x05fd0111, 0x05fe0111, 0x05ff0111, 0x06000111, 0x06010111, 0x06020111, 0x06030111, - 0x06040111, 0x06050111, 0x06060111, 0x06070111, 0x06080111, 0x06090111, 0x060a0111, 0x060b0111, - 0x060c0111, 0x060d0111, 0x060e0111, 0x060f0111, 0x06100111, 0x06110111, 0x06120111, 0x06130111, - 0x06140111, 0x06150111, 0x06160111, 0x06170111, 0x06180111, 0x06190111, 0x061a0111, 0x061b0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2600 .. 0x26ff */ - 0x061c0111, 0x061d0111, 0x061e0111, 0x061f0111, 0x06200111, 0x06210111, 0x06220111, 0x06230111, - 0x06240111, 0x06250111, 0x06260111, 0x06270111, 0x06280111, 0x06290111, 0x062a0111, 0x062b0111, - 0x062c0111, 0x062d0111, 0x062e0111, 0x062f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x06300111, 0x06310111, 0x06320111, 0x06330111, 0x06340111, 0x06350111, 0x06360111, - 0x06370111, 0x06380111, 0x06390111, 0x063a0111, 0x063b0111, 0x063c0111, 0x063d0111, 0x063e0111, - 0x063f0111, 0x06400111, 0x06410111, 0x06420111, 0x06430111, 0x06440111, 0x06450111, 0x06460111, - 0x06470111, 0x06480111, 0x06490111, 0x064a0111, 0x064b0111, 0x064c0111, 0x064d0111, 0x064e0111, - 0x064f0111, 0x06500111, 0x06510111, 0x06520111, 0x06530111, 0x06540111, 0x06550111, 0x06560111, - 0x06570111, 0x06580111, 0x06590111, 0x065a0111, 0x065b0111, 0x065c0111, 0x065d0111, 0x065e0111, - 0x065f0111, 0x06600111, 0x06610111, 0x06620111, 0x06630111, 0x06640111, 0x06650111, 0x06660111, - 0x06670111, 0x06680111, 0x06690111, 0x066a0111, 0x066b0111, 0x066c0111, 0x066d0111, 0x066e0111, - 0x066f0111, 0x06700111, 0x06710111, 0x06720111, 0x06730111, 0x06740111, 0x06750111, 0x06760111, - 0x06770111, 0x06780111, 0x06790111, 0x067a0111, 0x067b0111, 0x067c0111, 0x067d0111, 0x067e0111, - 0x067f0111, 0x06800111, 0x06810111, 0x06820111, 0x06830111, 0x0a080111, 0x0a090111, 0x0a0a0111, - 0x06840111, 0x06850111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2700 .. 0x27ff */ - 0xffffffff, 0x06860111, 0x06870111, 0x06880111, 0x06890111, 0xffffffff, 0x068a0111, 0x068b0111, - 0x068c0111, 0x068d0111, 0xffffffff, 0xffffffff, 0x068e0111, 0x068f0111, 0x06900111, 0x06910111, - 0x06920111, 0x06930111, 0x06940111, 0x06950111, 0x06960111, 0x06970111, 0x06980111, 0x06990111, - 0x069a0111, 0x069b0111, 0x069c0111, 0x069d0111, 0x069e0111, 0x069f0111, 0x06a00111, 0x06a10111, - 0x06a20111, 0x06a30111, 0x06a40111, 0x06a50111, 0x06a60111, 0x06a70111, 0x06a80111, 0x06a90111, - 0xffffffff, 0x06aa0111, 0x06ab0111, 0x06ac0111, 0x06ad0111, 0x06ae0111, 0x06af0111, 0x06b00111, - 0x06b10111, 0x06b20111, 0x06b30111, 0x06b40111, 0x06b50111, 0x06b60111, 0x06b70111, 0x06b80111, - 0x06b90111, 0x06ba0111, 0x06bb0111, 0x06bc0111, 0x06bd0111, 0x06be0111, 0x06bf0111, 0x06c00111, - 0x06c10111, 0x06c20111, 0x06c30111, 0x06c40111, 0x06c50111, 0x06c60111, 0x06c70111, 0x06c80111, - 0x06c90111, 0x06ca0111, 0x06cb0111, 0x06cc0111, 0xffffffff, 0x06cd0111, 0xffffffff, 0x06ce0111, - 0x06cf0111, 0x06d00111, 0x06d10111, 0xffffffff, 0xffffffff, 0xffffffff, 0x06d20111, 0xffffffff, - 0x06d30111, 0x06d40111, 0x06d50111, 0x06d60111, 0x06d70111, 0x06d80111, 0x06d90111, 0xffffffff, - 0xffffffff, 0x06da0111, 0x06db0111, 0x06dc0111, 0x06dd0111, 0x06de0111, 0x06df0111, 0x06e00111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0141, 0x0a0d0141, - 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, 0x0a140141, 0x06e10111, - 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, - 0x0a140141, 0x06e20111, 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, - 0x0a120141, 0x0a130141, 0x0a140141, 0x06e30111, 0x06e40111, 0xffffffff, 0xffffffff, 0xffffffff, - 0x06e50111, 0x06e60111, 0x06e70111, 0x06e80111, 0x06e90111, 0x06ea0111, 0x06eb0111, 0x06ec0111, - 0x06ed0111, 0x06ee0111, 0x06ef0111, 0x06f00111, 0x06f10111, 0x06f20111, 0x06f30111, 0x06f40111, - 0x06f50111, 0x06f60111, 0x06f70111, 0x06f80111, 0x06f90111, 0x06fa0111, 0x06fb0111, 0x06fc0111, - 0xffffffff, 0x06fd0111, 0x06fe0111, 0x06ff0111, 0x07000111, 0x07010111, 0x07020111, 0x07030111, - 0x07040111, 0x07050111, 0x07060111, 0x07070111, 0x07080111, 0x07090111, 0x070a0111, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2800 .. 0x28ff */ - 0x070b0111, 0x070c0111, 0x070d0111, 0x070e0111, 0x070f0111, 0x07100111, 0x07110111, 0x07120111, - 0x07130111, 0x07140111, 0x07150111, 0x07160111, 0x07170111, 0x07180111, 0x07190111, 0x071a0111, - 0x071b0111, 0x071c0111, 0x071d0111, 0x071e0111, 0x071f0111, 0x07200111, 0x07210111, 0x07220111, - 0x07230111, 0x07240111, 0x07250111, 0x07260111, 0x07270111, 0x07280111, 0x07290111, 0x072a0111, - 0x072b0111, 0x072c0111, 0x072d0111, 0x072e0111, 0x072f0111, 0x07300111, 0x07310111, 0x07320111, - 0x07330111, 0x07340111, 0x07350111, 0x07360111, 0x07370111, 0x07380111, 0x07390111, 0x073a0111, - 0x073b0111, 0x073c0111, 0x073d0111, 0x073e0111, 0x073f0111, 0x07400111, 0x07410111, 0x07420111, - 0x07430111, 0x07440111, 0x07450111, 0x07460111, 0x07470111, 0x07480111, 0x07490111, 0x074a0111, - 0x074b0111, 0x074c0111, 0x074d0111, 0x074e0111, 0x074f0111, 0x07500111, 0x07510111, 0x07520111, - 0x07530111, 0x07540111, 0x07550111, 0x07560111, 0x07570111, 0x07580111, 0x07590111, 0x075a0111, - 0x075b0111, 0x075c0111, 0x075d0111, 0x075e0111, 0x075f0111, 0x07600111, 0x07610111, 0x07620111, - 0x07630111, 0x07640111, 0x07650111, 0x07660111, 0x07670111, 0x07680111, 0x07690111, 0x076a0111, - 0x076b0111, 0x076c0111, 0x076d0111, 0x076e0111, 0x076f0111, 0x07700111, 0x07710111, 0x07720111, - 0x07730111, 0x07740111, 0x07750111, 0x07760111, 0x07770111, 0x07780111, 0x07790111, 0x077a0111, - 0x077b0111, 0x077c0111, 0x077d0111, 0x077e0111, 0x077f0111, 0x07800111, 0x07810111, 0x07820111, - 0x07830111, 0x07840111, 0x07850111, 0x07860111, 0x07870111, 0x07880111, 0x07890111, 0x078a0111, - 0x078b0111, 0x078c0111, 0x078d0111, 0x078e0111, 0x078f0111, 0x07900111, 0x07910111, 0x07920111, - 0x07930111, 0x07940111, 0x07950111, 0x07960111, 0x07970111, 0x07980111, 0x07990111, 0x079a0111, - 0x079b0111, 0x079c0111, 0x079d0111, 0x079e0111, 0x079f0111, 0x07a00111, 0x07a10111, 0x07a20111, - 0x07a30111, 0x07a40111, 0x07a50111, 0x07a60111, 0x07a70111, 0x07a80111, 0x07a90111, 0x07aa0111, - 0x07ab0111, 0x07ac0111, 0x07ad0111, 0x07ae0111, 0x07af0111, 0x07b00111, 0x07b10111, 0x07b20111, - 0x07b30111, 0x07b40111, 0x07b50111, 0x07b60111, 0x07b70111, 0x07b80111, 0x07b90111, 0x07ba0111, - 0x07bb0111, 0x07bc0111, 0x07bd0111, 0x07be0111, 0x07bf0111, 0x07c00111, 0x07c10111, 0x07c20111, - 0x07c30111, 0x07c40111, 0x07c50111, 0x07c60111, 0x07c70111, 0x07c80111, 0x07c90111, 0x07ca0111, - 0x07cb0111, 0x07cc0111, 0x07cd0111, 0x07ce0111, 0x07cf0111, 0x07d00111, 0x07d10111, 0x07d20111, - 0x07d30111, 0x07d40111, 0x07d50111, 0x07d60111, 0x07d70111, 0x07d80111, 0x07d90111, 0x07da0111, - 0x07db0111, 0x07dc0111, 0x07dd0111, 0x07de0111, 0x07df0111, 0x07e00111, 0x07e10111, 0x07e20111, - 0x07e30111, 0x07e40111, 0x07e50111, 0x07e60111, 0x07e70111, 0x07e80111, 0x07e90111, 0x07ea0111, - 0x07eb0111, 0x07ec0111, 0x07ed0111, 0x07ee0111, 0x07ef0111, 0x07f00111, 0x07f10111, 0x07f20111, - 0x07f30111, 0x07f40111, 0x07f50111, 0x07f60111, 0x07f70111, 0x07f80111, 0x07f90111, 0x07fa0111, - 0x07fb0111, 0x07fc0111, 0x07fd0111, 0x07fe0111, 0x07ff0111, 0x08000111, 0x08010111, 0x08020111, - 0x08030111, 0x08040111, 0x08050111, 0x08060111, 0x08070111, 0x08080111, 0x08090111, 0x080a0111, - /* 0x2e00 .. 0x2eff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, - 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, - 0xfb400111, 0xfb400111, 0xffffffff, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, - 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, - 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, - 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x2f00 .. 0x2fff */ - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, - 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, - 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09a90111, 0x09aa0111, 0x09ab0111, 0x09ac0111, 0x09ad0111, 0x09ae0111, 0x09af0111, 0x09b00111, - 0x09b10111, 0x09b20111, 0x09b30111, 0x09b40111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x3000 .. 0x30ff */ - 0x02090121, 0x02340111, 0x025e0111, 0x02b80111, 0x09b50111, 0x09d70111, 0x192c0111, 0x0a0b0111, - 0x02880111, 0x02890111, 0x028a0111, 0x028b0111, 0x028c0111, 0x028d0111, 0x028e0111, 0x028f0111, - 0x02900111, 0x02910111, 0x09b60111, 0x09b70111, 0x02920111, 0x02930111, 0x02940111, 0x02950111, - 0x02960111, 0x02970111, 0x02980111, 0x02990111, 0x022a0111, 0x02750111, 0x02760111, 0x02770111, - 0x09b80111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, - 0x0a130111, 0x0a140111, 0x0000dc11, 0x0000dd11, 0x0000de11, 0x0000df11, 0x0000e011, 0x0000e111, - 0x022b0111, 0x09d80111, 0x09d80111, 0x09d90111, 0x09d90111, 0x09da0111, 0x09b60121, 0x09b90111, - 0xfb400121, 0xfb400121, 0xfb400121, 0xffffffff, 0xffffffff, 0xffffffff, 0x09ba0111, 0x09bb0111, - 0xffffffff, 0x19210111, 0x19210121, 0x19220111, 0x19220121, 0x19230111, 0x19230121, 0x19240111, - 0x19240121, 0x19250111, 0x19250121, 0x19260111, 0x19260111, 0x19270111, 0x19270111, 0x19280111, - 0x19280111, 0x19290111, 0x19290111, 0x192a0111, 0x192a0111, 0x192b0111, 0x192b0111, 0x192c0121, - 0x192c0121, 0x192d0111, 0x192d0111, 0x192e0111, 0x192e0111, 0x192f0111, 0x192f0111, 0x19300111, - 0x19300111, 0x19310111, 0x19310111, 0x19320111, 0x19320121, 0x19320121, 0x19330111, 0x19330111, - 0x19340111, 0x19340111, 0x19350111, 0x19360111, 0x19370111, 0x19380111, 0x19390111, 0x193a0111, - 0x193a0111, 0x193a0111, 0x193b0111, 0x193b0111, 0x193b0111, 0x193c0111, 0x193c0111, 0x193c0111, - 0x193d0111, 0x193d0111, 0x193d0111, 0x193e0111, 0x193e0111, 0x193e0111, 0x193f0111, 0x19400111, - 0x19410111, 0x19420111, 0x19430111, 0x19440111, 0x19440121, 0x19450111, 0x19450121, 0x19460111, - 0x19460121, 0x19470111, 0x19480111, 0x19490111, 0x194a0111, 0x194b0111, 0x194c0111, 0x194c0121, - 0x194d0111, 0x194e0111, 0x194f0111, 0x19500111, 0x19230121, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x0000e211, 0x0000e311, 0x021e0111, 0x021f0111, 0x09db0111, 0x09db0111, 0xffffffff, - 0xffffffff, 0x19210131, 0x19210151, 0x19220131, 0x19220151, 0x19230131, 0x19230151, 0x19240131, - 0x19240151, 0x19250131, 0x19250151, 0x19260131, 0x19260131, 0x19270121, 0x19270121, 0x19280121, - 0x19280121, 0x19290131, 0x19290131, 0x192a0121, 0x192a0121, 0x192b0121, 0x192b0121, 0x192c0131, - 0x192c0131, 0x192d0121, 0x192d0121, 0x192e0121, 0x192e0121, 0x192f0121, 0x192f0121, 0x19300121, - 0x19300121, 0x19310121, 0x19310121, 0x19320131, 0x19320151, 0x19320151, 0x19330121, 0x19330121, - 0x19340121, 0x19340121, 0x19350121, 0x19360121, 0x19370121, 0x19380121, 0x19390121, 0x193a0121, - 0x193a0121, 0x193a0121, 0x193b0121, 0x193b0121, 0x193b0121, 0x193c0121, 0x193c0121, 0x193c0121, - 0x193d0121, 0x193d0121, 0x193d0121, 0x193e0121, 0x193e0121, 0x193e0121, 0x193f0121, 0x19400121, - 0x19410121, 0x19420121, 0x19430121, 0x19440131, 0x19440151, 0x19450131, 0x19450151, 0x19460131, - 0x19460151, 0x19470121, 0x19480121, 0x19490121, 0x194a0121, 0x194b0121, 0x194c0131, 0x194c0141, - 0x194d0121, 0x194e0121, 0x194f0121, 0x19500121, 0x19230151, 0x19260121, 0x19290121, 0x194c0141, - 0x194d0121, 0x194e0121, 0x194f0121, 0x022c0111, 0x09dc0111, 0x09dd0111, 0x09dd0111, 0xffffffff, - /* 0x3100 .. 0x31ff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x19510111, 0x19520111, 0x19530111, - 0x19540111, 0x19560111, 0x19570111, 0x19580111, 0x19590111, 0x195a0111, 0x195b0111, 0x195e0111, - 0x195f0111, 0x19600111, 0x19610111, 0x19630111, 0x19640111, 0x19650111, 0x19660111, 0x19670111, - 0x19680111, 0x19690111, 0x196a0111, 0x196b0111, 0x196d0111, 0x196e0111, 0x19700111, 0x19710111, - 0x19720111, 0x19730111, 0x19740111, 0x19750111, 0x19760111, 0x19780111, 0x197c0111, 0x197d0111, - 0x197e0111, 0x197f0111, 0x19550111, 0x195c0111, 0x19620111, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x18310121, 0x18320121, 0x18d10121, 0x18330121, 0x18d30121, 0x18d40121, 0x18340121, - 0x18350121, 0x18360121, 0x18d70121, 0x18d80121, 0x18d90121, 0x18da0121, 0x18db0121, 0x18dc0121, - 0x184b0121, 0x18370121, 0x18380121, 0x18390121, 0x18520121, 0x183a0121, 0x183b0121, 0x183c0121, - 0x183d0121, 0x183e0121, 0x183f0121, 0x18400121, 0x18410121, 0x18420121, 0x18430121, 0x188d0121, - 0x188e0121, 0x188f0121, 0x18900121, 0x18910121, 0x18920121, 0x18930121, 0x18940121, 0x18950121, - 0x18960121, 0x18970121, 0x18980121, 0x18990121, 0x189a0121, 0x189b0121, 0x189c0121, 0x189d0121, - 0x189e0121, 0x189f0121, 0x18a00121, 0x18a10121, 0x188c0121, 0x18450121, 0x18460121, 0x18ee0121, - 0x18ef0121, 0x18f30121, 0x18f50121, 0x18fa0121, 0x18fe0121, 0x19000121, 0x184d0121, 0x19040121, - 0x19060121, 0x184e0121, 0x184f0121, 0x18510121, 0x18530121, 0x18540121, 0x18580121, 0x185a0121, - 0x185c0121, 0x185d0121, 0x185e0121, 0x185f0121, 0x18600121, 0x18630121, 0x18670121, 0x18710121, - 0x18780121, 0x187d0121, 0x19180121, 0x19190121, 0x18880121, 0x18890121, 0x188a0121, 0x18b00121, - 0x18b10121, 0x18b40121, 0x18bd0121, 0x18be0121, 0x18c00121, 0x18ca0121, 0x18cd0121, 0xffffffff, - 0x09bc0111, 0x09bd0111, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, - 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, - 0x19510121, 0x19670121, 0x195f0121, 0x195a0121, 0x196f0111, 0x196f0121, 0x196c0111, 0x196b0121, - 0x197e0121, 0x196a0121, 0x197d0121, 0x197e0121, 0x197b0111, 0x195d0111, 0x19700121, 0x19720121, - 0x19790111, 0x197a0111, 0x19770111, 0x197d0131, 0x19520121, 0x19570121, 0x195b0121, 0x195e0121, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0x3200 .. 0x32ff */ - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, - 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x18310131, 0x18330131, 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, - 0x183d0131, 0x183f0131, 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0x18310131, 0x18330131, - 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, 0x183d0131, 0x183f0131, - 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0xffffffff, 0xffffffff, 0xffffffff, 0x09be0111, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, - 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, - 0xfb400131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x19210171, 0x19220171, 0x19230171, 0x19240171, 0x19250171, 0x19260151, 0x19270141, 0x19280141, - 0x19290151, 0x192a0141, 0x192b0141, 0x192c0151, 0x192d0141, 0x192e0141, 0x192f0141, 0x19300141, - 0x19310141, 0x19320171, 0x19330141, 0x19340141, 0x19350141, 0x19360141, 0x19370141, 0x19380141, - 0x19390141, 0x193a0141, 0x193b0141, 0x193c0141, 0x193d0141, 0x193e0141, 0x193f0141, 0x19400141, - 0x19410141, 0x19420141, 0x19430141, 0x19440171, 0x19450171, 0x19460171, 0x19470141, 0x19480141, - 0x19490141, 0x194a0141, 0x194b0141, 0x194c0161, 0x194d0131, 0x194e0131, 0x194f0141, 0xffffffff, - /* 0x3300 .. 0x33ff */ - 0x19210181, 0x19210181, 0x19210181, 0x19210181, 0x19220181, 0x19220181, 0x19230181, 0x19240181, - 0x19240181, 0x19250181, 0x19250181, 0x19260161, 0x19260161, 0x19260161, 0x19260161, 0x19260161, - 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, - 0x19280151, 0x19280151, 0x19280151, 0x19280151, 0x19290161, 0x192a0151, 0x192a0151, 0x192b0151, - 0x192b0151, 0x192c0161, 0x192e0151, 0x192e0151, 0x19300151, 0x19330151, 0x19340151, 0x19340151, - 0x19350151, 0x19390151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193b0151, 0x193b0151, - 0x193b0151, 0x193b0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193d0151, 0x193d0151, - 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193e0151, 0x193e0151, 0x193e0151, - 0x193e0151, 0x193e0151, 0x193e0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, - 0x19400151, 0x19400151, 0x19400151, 0x19420151, 0x19420151, 0x19420151, 0x19440181, 0x19440181, - 0x19450181, 0x19480151, 0x19480151, 0x19490151, 0x19490151, 0x194a0151, 0x194a0151, 0x194c0171, - 0x0a0b0131, 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, - 0x0a130131, 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, - 0x0a0d0131, 0x0ab901a1, 0x0a490191, 0x0a1501a1, 0x0a290181, 0x0b4b01b1, 0x0b670181, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, - 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0af70181, 0x0b2b01b1, 0x0a990181, - 0x0a3d01a1, 0x0af70171, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, - 0x0ab901b1, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0bbf01a1, 0x0c9f0141, 0x0b2b01a1, 0x0a490191, - 0x0af70171, 0x0a910191, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0a3d01a1, 0x0af70171, 0x0b2b01a1, - 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, - 0x0b2b01a1, 0x0b670191, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0b7f01a1, 0x0b7f01a1, 0x0b7f01a1, - 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, - 0x0af70171, 0x0b2b01b1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0b2b01b1, - 0x0af70171, 0x0b2b01b1, 0x0a150191, 0x0a290191, 0x0a3d01a1, 0x0a3d01a1, 0x0a3d01b1, 0x0a3d01b1, - 0x0a490191, 0x0a990181, 0x0ab901a1, 0x0ab901b1, 0x0ad301b1, 0x0af70181, 0x0af70181, 0x0af70171, - 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b2b01a1, 0x0b2b01a1, 0x0b2b01a1, 0x0b670191, - 0x0b670181, 0x0b670191, 0x0b670191, 0x0ba70191, 0x0ba701a1, 0x0bfb0181, 0xffffffff, 0xffffffff, - 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, - 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, - 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, - 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0e0131, 0x0a0e0131, 0xffffffff, - /* 0xf900 .. 0xf9ff */ - 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, - /* 0xfa00 .. 0xfaff */ - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, - 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, - 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, - 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0xfb00 .. 0xfbff */ - 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0ba70131, 0x0ba70131, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0ea30121, 0x0ea30121, 0x0ea30121, 0x0ead0121, 0x0ea30121, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0ec00111, 0x00006711, 0x0ec00121, - 0x0ec60121, 0x0eb70131, 0x0eba0131, 0x0ebb0121, 0x0ec10121, 0x0ec20121, 0x0ec30121, 0x0eca0121, - 0x0ecc0121, 0x039f0131, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0eb70111, 0x0eb70111, - 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0xffffffff, - 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0xffffffff, 0x0ec30111, 0xffffffff, - 0x0ec40111, 0x0ec50111, 0xffffffff, 0x0ec70121, 0x0ec70111, 0xffffffff, 0x0ec80111, 0x0ec90111, - 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0x0ebc0111, 0x0eb80111, 0x0ec10111, 0x0ec70111, 0x0eb70121, - 0x0ed10131, 0x0ed10121, 0x0ed80151, 0x0ed80141, 0x0ed80121, 0x0ed80131, 0x0ed90151, 0x0ed90141, - 0x0ed90121, 0x0ed90131, 0x0eda0151, 0x0eda0141, 0x0eda0121, 0x0eda0131, 0x0edf0151, 0x0edf0141, - 0x0edf0121, 0x0edf0131, 0x0ee20151, 0x0ee20141, 0x0ee20121, 0x0ee20131, 0x0ede0151, 0x0ede0141, - 0x0ede0121, 0x0ede0131, 0x0f1a0151, 0x0f1a0141, 0x0f1a0121, 0x0f1a0131, 0x0f1c0151, 0x0f1c0141, - 0x0f1c0121, 0x0f1c0131, 0x0ee50151, 0x0ee50141, 0x0ee50121, 0x0ee50131, 0x0ee40151, 0x0ee40141, - 0x0ee40121, 0x0ee40131, 0x0ee60151, 0x0ee60141, 0x0ee60121, 0x0ee60131, 0x0ee80151, 0x0ee80141, - 0x0ee80121, 0x0ee80131, 0x0ef50131, 0x0ef50121, 0x0ef40131, 0x0ef40121, 0x0ef60131, 0x0ef60121, - 0x0ef00131, 0x0ef00121, 0x0f020131, 0x0f020121, 0x0efb0131, 0x0efb0121, 0x0f210151, 0x0f210141, - 0x0f210121, 0x0f210131, 0x0f270151, 0x0f270141, 0x0f270121, 0x0f270131, 0x0f2b0151, 0x0f2b0141, - 0x0f2b0121, 0x0f2b0131, 0x0f290151, 0x0f290141, 0x0f290121, 0x0f290131, 0x0f340131, 0x0f340121, - 0x0f350151, 0x0f350141, 0x0f350121, 0x0f350131, 0x0f3d0131, 0x0f3d0121, 0x0f3b0151, 0x0f3b0141, - 0x0f3b0121, 0x0f3b0131, 0x0f3a0151, 0x0f3a0141, 0x0f3a0121, 0x0f3a0131, 0x0f4f0131, 0x0f4f0121, - 0x0f4f0131, 0x0f4f0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0x0f250151, 0x0f250141, 0x0f250121, 0x0f250131, 0x0f420141, - 0x0f420131, 0x0f410131, 0x0f410121, 0x0f430131, 0x0f430121, 0x0f420141, 0x0f460131, 0x0f460121, - 0x0f400131, 0x0f400121, 0x0f440131, 0x0f440121, 0x0f4d0151, 0x0f4d0141, 0x0f4d0121, 0x0f4d0131, - 0x0f480121, 0x0f480131, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, - 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, - 0x0ed50121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0f4a0151, 0x0f4a0141, 0x0f4a0121, 0x0f4a0131, - /* 0xfc00 .. 0xfcff */ - 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed70151, 0x0ed70151, 0x0ed70151, - 0x0ed70151, 0x0ed70151, 0x0ed70151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, - 0x0edc0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0ee30151, 0x0ee30151, 0x0ee90151, - 0x0ee90151, 0x0eea0151, 0x0eea0151, 0x0eea0151, 0x0f040151, 0x0f040151, 0x0f040151, 0x0f040151, - 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0f0151, 0x0f0f0151, - 0x0f100151, 0x0f120151, 0x0f120151, 0x0f130151, 0x0f130151, 0x0f160151, 0x0f160151, 0x0f160151, - 0x0f160151, 0x0f160151, 0x0f160151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f200151, - 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f2d0151, - 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f320161, 0x0f320161, 0x0f320161, - 0x0f320161, 0x0f320161, 0x0f320161, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, - 0x0f330151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f490161, 0x0f490161, 0x0f490161, - 0x0f490161, 0x0f490161, 0x0f490161, 0x0eef0131, 0x0ef90131, 0x0f480151, 0x00006e31, 0x00006e31, - 0x00006e31, 0x00006e31, 0x00006e31, 0x00006e31, 0x0ed50141, 0x0ed50141, 0x0ed50141, 0x0ed50141, - 0x0ed50141, 0x0ed50141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, - 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edd0141, 0x0edd0141, - 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0f160141, 0x0f160141, 0x0f1d0141, 0x0f1d0141, - 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, - 0x0f320151, 0x0f320151, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, - 0x0f480141, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0ed50121, - 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed70121, 0x0ed70121, 0x0ed70121, 0x0ed70121, - 0x0ed70121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edd0121, 0x0ee30121, - 0x0ee30121, 0x0ee90121, 0x0ee90121, 0x0eea0121, 0x0eea0121, 0x0f040121, 0x0f040121, 0x0f040121, - 0x0f040121, 0x0f0a0121, 0x0f0a0121, 0x0f0a0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, - 0x0f0f0121, 0x0f100121, 0x0f120121, 0x0f120121, 0x0f130121, 0x0f130121, 0x0f160121, 0x0f160121, - 0x0f160121, 0x0f160121, 0x0f1d0121, 0x0f1d0121, 0x0f200121, 0x0f200121, 0x0f200121, 0x0f200121, - 0x0f200121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f320131, 0x0f320131, - 0x0f320131, 0x0f320131, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f390121, - 0x0f390121, 0x0f390121, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0ed50131, - 0x0ed50131, 0x0ed70131, 0x0ed70131, 0x0edc0131, 0x0edc0131, 0x0edd0131, 0x0edd0131, 0x0f040131, - 0x0f040131, 0x0f050131, 0x0f050131, 0x0f200131, 0x0f200131, 0x0f2d0131, 0x0f330131, 0x0f330131, - 0x0f490141, 0x0f490141, 0x00006e21, 0x00006e21, 0x00006e21, 0x0f0f0151, 0x0f0f0151, 0x0f120151, - 0x0f120151, 0x0f130151, 0x0f130151, 0x0f040151, 0x0f040151, 0x0f050151, 0x0f050151, 0x0ee90151, - /* 0xfd00 .. 0xfdff */ - 0x0ee90151, 0x0ee30151, 0x0ee30151, 0x0eea0151, 0x0eea0151, 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, - 0x0f0b0151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f040151, 0x0f0a0151, - 0x0f0b0151, 0x0f0f0141, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f130141, 0x0f130141, 0x0f040141, - 0x0f040141, 0x0f050141, 0x0f050141, 0x0ee90141, 0x0ee90141, 0x0ee30141, 0x0ee30141, 0x0eea0141, - 0x0eea0141, 0x0f0a0141, 0x0f0a0141, 0x0f0b0141, 0x0f0b0141, 0x0f050141, 0x0f050141, 0x0f050141, - 0x0f050141, 0x0f050141, 0x0f040141, 0x0f0a0141, 0x0f0b0141, 0x0f050121, 0x0f050121, 0x0f050121, - 0x0f050121, 0x0f040121, 0x0f050121, 0x0f0f0121, 0x0f040131, 0x0f040131, 0x0f040131, 0x0f050131, - 0x0f050131, 0x0f050131, 0x0f0f0131, 0x0f100131, 0x0ed60131, 0x0ed60141, 0x029a0111, 0x029b0111, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0edc0121, 0x0edc0141, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, - 0x0ee30141, 0x0ee30121, 0x0ee90141, 0x0ee90141, 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040141, - 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040121, 0x0f0a0141, 0x0f0a0121, 0x0f0a0141, 0x0f050141, - 0x0f050121, 0x0f050141, 0x0f050141, 0x0f050121, 0x0f050141, 0x0f050121, 0x0f0b0141, 0x0f0b0141, - 0x0f0b0121, 0x0f0f0141, 0x0f0f0121, 0x0f0f0121, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f120121, - 0x0f120141, 0x0f130141, 0x0f130141, 0x0f130141, 0x0f160141, 0x0f160121, 0x0f1d0141, 0x0f1d0141, - 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, - 0x0f2d0121, 0x0f320131, 0x0f320131, 0x0f320151, 0x0f320131, 0x0f320131, 0x0f320131, 0x0f320131, - 0xffffffff, 0xffffffff, 0x0f320131, 0x0f390121, 0x0f390121, 0x0f330121, 0x0f330141, 0x0f330141, - 0x0f330121, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f490151, 0x0f490131, 0x0ed70141, 0x0edc0141, - 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0ee30141, 0x0ee30141, 0x0ee30141, - 0x0f040141, 0x0f0a0141, 0x0f050141, 0x0f0b0141, 0x0f2d0141, 0x0f2d0141, 0x0f490151, 0x0f490151, - 0x0f490151, 0x0f320151, 0x0f1d0141, 0x0f330141, 0x0f1d0121, 0x0f2d0121, 0x0f120141, 0x0f200141, - 0x0f330121, 0x0f320151, 0x0f2d0121, 0x0f200141, 0x0f2d0141, 0x0f330141, 0x0ee30141, 0x0ee90141, - 0x0f320151, 0x0f160141, 0x0ed70141, 0x0f200121, 0x0f120121, 0x0f0a0121, 0x0f040141, 0x0f330141, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x0f0a0151, 0x0f1d0151, 0x0ed60141, 0x0ed60141, 0x0f320161, 0x0f0a0151, 0x0ef90131, 0x0f120151, - 0x0f3e0141, 0x0f0a0151, 0x0f0a0151, 0x0ee30151, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - /* 0xfe00 .. 0xfeff */ - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00005011, 0x00005111, 0x00005211, 0x00005311, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x02550151, 0x02280131, 0x02270121, 0x021b0141, 0x021b0141, 0x027a0171, 0x027b0161, 0x027e0141, - 0x027f0141, 0x02920131, 0x02930131, 0x02900121, 0x02910121, 0x028a0121, 0x028b0121, 0x02880121, - 0x02890121, 0x028c0131, 0x028d0131, 0x028e0121, 0x028f0121, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x02110121, 0x02110121, 0x02110121, 0x02110121, 0x021b0131, 0x021b0131, 0x021b0131, - 0x022d0131, 0x02340121, 0x02550141, 0xffffffff, 0x02350131, 0x02370131, 0x024e0141, 0x024b0141, - 0x02280121, 0x027a0141, 0x027b0131, 0x027e0131, 0x027f0131, 0x02920121, 0x02930121, 0x02a90131, - 0x02a70131, 0x02a20131, 0x039f0141, 0x02210131, 0x03a30131, 0x03a50131, 0x03a40131, 0xffffffff, - 0x02a60131, 0x09e00131, 0x02aa0131, 0x02a10131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0x00006831, 0x00006821, 0x00006921, 0xffffffff, 0x00006a21, 0xffffffff, 0x00006b31, 0x00006b21, - 0x00006c31, 0x00006c21, 0x00006d31, 0x00006d21, 0x00006e31, 0x00006e21, 0x00006f31, 0x00006f21, - 0x0ecd0131, 0x0ece0131, 0x0ece0121, 0x0ecf0131, 0x0ecf0121, 0x0ed20131, 0x0ed20121, 0x0ed30131, - 0x0ed30121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0ed50131, 0x0ed60141, 0x0ed60131, 0x0ed70151, - 0x0ed70141, 0x0ed70121, 0x0ed70131, 0x0edb0131, 0x0edb0121, 0x0edc0151, 0x0edc0141, 0x0edc0121, - 0x0edc0131, 0x0edd0151, 0x0edd0141, 0x0edd0121, 0x0edd0131, 0x0ee30151, 0x0ee30141, 0x0ee30121, - 0x0ee30131, 0x0ee90151, 0x0ee90141, 0x0ee90121, 0x0ee90131, 0x0eea0151, 0x0eea0141, 0x0eea0121, - 0x0eea0131, 0x0eee0131, 0x0eee0121, 0x0eef0131, 0x0eef0121, 0x0ef90131, 0x0ef90121, 0x0efa0131, - 0x0efa0121, 0x0f040151, 0x0f040141, 0x0f040121, 0x0f040131, 0x0f050151, 0x0f050141, 0x0f050121, - 0x0f050131, 0x0f0a0151, 0x0f0a0141, 0x0f0a0121, 0x0f0a0131, 0x0f0b0151, 0x0f0b0141, 0x0f0b0121, - 0x0f0b0131, 0x0f0f0151, 0x0f0f0141, 0x0f0f0121, 0x0f0f0131, 0x0f100151, 0x0f100141, 0x0f100121, - 0x0f100131, 0x0f120151, 0x0f120141, 0x0f120121, 0x0f120131, 0x0f130151, 0x0f130141, 0x0f130121, - 0x0f130131, 0x0f160151, 0x0f160141, 0x0f160121, 0x0f160131, 0x0f1d0151, 0x0f1d0141, 0x0f1d0121, - 0x0f1d0131, 0x0f200151, 0x0f200141, 0x0f200121, 0x0f200131, 0x0f2d0151, 0x0f2d0141, 0x0f2d0121, - 0x0f2d0131, 0x0f320161, 0x0f320151, 0x0f320131, 0x0f320141, 0x0f330151, 0x0f330141, 0x0f330121, - 0x0f330131, 0x0f390151, 0x0f390141, 0x0f390121, 0x0f390131, 0x0f3e0141, 0x0f3e0131, 0x0f480151, - 0x0f480141, 0x0f490161, 0x0f490151, 0x0f490131, 0x0f490141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, - 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0xffffffff, 0xffffffff, 0x00000000, - /* 0xff00 .. 0xffff */ - 0xffffffff, 0x024b0121, 0x02700121, 0x02a90121, 0x09e00121, 0x02aa0121, 0x02a70121, 0x02690121, - 0x027a0121, 0x027b0121, 0x02a20121, 0x039f0121, 0x022d0121, 0x02210121, 0x02550121, 0x02a40121, - 0x0a0b0121, 0x0a0c0121, 0x0a0d0121, 0x0a0e0121, 0x0a0f0121, 0x0a100121, 0x0a110121, 0x0a120121, - 0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121, - 0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161, - 0x0ab90161, 0x0ad30171, 0x0ae70151, 0x0af70151, 0x0b030171, 0x0b2b0161, 0x0b330161, 0x0b4b0171, - 0x0b670151, 0x0b730151, 0x0b7f0151, 0x0ba70161, 0x0bbf0161, 0x0bd70151, 0x0bef0161, 0x0bfb0151, - 0x0c030161, 0x0c070151, 0x0c130151, 0x027c0121, 0x02a60121, 0x027d0121, 0x020f0121, 0x021b0121, - 0x020c0121, 0x0a150121, 0x0a290121, 0x0a3d0121, 0x0a490121, 0x0a650121, 0x0a910121, 0x0a990121, - 0x0ab90121, 0x0ad30121, 0x0ae70121, 0x0af70121, 0x0b030121, 0x0b2b0121, 0x0b330121, 0x0b4b0121, - 0x0b670121, 0x0b730121, 0x0b7f0121, 0x0ba70121, 0x0bbf0121, 0x0bd70121, 0x0bef0121, 0x0bfb0121, - 0x0c030121, 0x0c070121, 0x0c130121, 0x027e0121, 0x03a70121, 0x027f0121, 0x03aa0121, 0xffffffff, - 0xffffffff, 0x025e0121, 0x028c0121, 0x028d0121, 0x02340131, 0x022c0121, 0x194f0131, 0x19210141, - 0x19220141, 0x19230141, 0x19240141, 0x19250141, 0x19440141, 0x19450141, 0x19460141, 0x19320141, - 0x09dc0121, 0x19210161, 0x19220161, 0x19230161, 0x19240161, 0x19250161, 0x19260141, 0x19270131, - 0x19280131, 0x19290141, 0x192a0131, 0x192b0131, 0x192c0141, 0x192d0131, 0x192e0131, 0x192f0131, - 0x19300131, 0x19310131, 0x19320161, 0x19330131, 0x19340131, 0x19350131, 0x19360131, 0x19370131, - 0x19380131, 0x19390131, 0x193a0131, 0x193b0131, 0x193c0131, 0x193d0131, 0x193e0131, 0x193f0131, - 0x19400131, 0x19410131, 0x19420131, 0x19430131, 0x19440161, 0x19450161, 0x19460161, 0x19470131, - 0x19480131, 0x19490131, 0x194a0131, 0x194b0131, 0x194c0151, 0x19500131, 0x0000e221, 0x0000e321, - 0x188c0131, 0x18310141, 0x18320131, 0x18d10131, 0x18330141, 0x18d30131, 0x18d40131, 0x18340141, - 0x18350131, 0x18360141, 0x18d70131, 0x18d80131, 0x18d90131, 0x18da0131, 0x18db0131, 0x18dc0131, - 0x184b0131, 0x18370141, 0x18380141, 0x18390131, 0x18520131, 0x183a0141, 0x183b0131, 0x183c0141, - 0x183d0141, 0x183e0131, 0x183f0141, 0x18400141, 0x18410141, 0x18420141, 0x18430141, 0xffffffff, - 0xffffffff, 0xffffffff, 0x188d0131, 0x188e0131, 0x188f0131, 0x18900131, 0x18910131, 0x18920131, - 0xffffffff, 0xffffffff, 0x18930131, 0x18940131, 0x18950131, 0x18960131, 0x18970131, 0x18980131, - 0xffffffff, 0xffffffff, 0x18990131, 0x189a0131, 0x189b0131, 0x189c0131, 0x189d0131, 0x189e0131, - 0xffffffff, 0xffffffff, 0x189f0131, 0x18a00131, 0x18a10131, 0xffffffff, 0xffffffff, 0xffffffff, - 0x09df0121, 0x09e10121, 0x03a60121, 0x02100121, 0x03a80121, 0x09e20121, 0x09ef0121, 0xffffffff, - 0x05300121, 0x03320121, 0x03340121, 0x03330121, 0x03350121, 0x05c40121, 0x05ef0121, 0xffffffff, - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, - 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x09bf0111, 0x09c00111, 0xffffffff, 0xffffffff + /* index */ + 0x00000200, 0x00000300, 0x00000400, 0x00000500, 0x00000600, 0x00000700, 0x00000800, 0x00000900, + 0x00000100, 0x00000a00, 0x00000b00, 0x00000c00, 0x00000d00, 0x00000e00, 0x00000f00, 0x00001000, + 0x00001100, 0x00001200, 0x00001300, 0x00001400, 0x00001500, 0x00001600, 0x00001700, 0x00001800, + 0x00001900, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00001a00, 0x00001b00, + 0x00001c00, 0x00001d00, 0x00001e00, 0x00001f00, 0x00002000, 0x00002100, 0x00002200, 0x00002300, + 0x00002400, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00002500, 0x00002600, + 0x00002700, 0x00002800, 0x00002900, 0x00002a00, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, + 0x00000100, 0x00002b00, 0x00002c00, 0x00002d00, 0x00002e00, 0x00002f00, 0x00003000, 0x00003100, + /* defaults */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0000 .. 0x00ff */ + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x02010111, 0x02020111, 0x02030111, 0x02040111, 0x02050111, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x02090111, 0x024b0111, 0x02700111, 0x02a90111, 0x09e00111, 0x02aa0111, 0x02a70111, 0x02690111, + 0x027a0111, 0x027b0111, 0x02a20111, 0x039f0111, 0x022d0111, 0x02210111, 0x02550111, 0x02a40111, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x02370111, 0x02350111, 0x03a30111, 0x03a40111, 0x03a50111, 0x024e0111, + 0x02a10111, 0x0a150151, 0x0a290141, 0x0a3d0151, 0x0a490151, 0x0a650151, 0x0a910151, 0x0a990151, + 0x0ab90151, 0x0ad30161, 0x0ae70141, 0x0af70141, 0x0b030161, 0x0b2b0151, 0x0b330151, 0x0b4b0161, + 0x0b670141, 0x0b730141, 0x0b7f0141, 0x0ba70151, 0x0bbf0151, 0x0bd70141, 0x0bef0151, 0x0bfb0141, + 0x0c030151, 0x0c070141, 0x0c130141, 0x027c0111, 0x02a60111, 0x027d0111, 0x020f0111, 0x021b0111, + 0x020c0111, 0x0a150111, 0x0a290111, 0x0a3d0111, 0x0a490111, 0x0a650111, 0x0a910111, 0x0a990111, + 0x0ab90111, 0x0ad30111, 0x0ae70111, 0x0af70111, 0x0b030111, 0x0b2b0111, 0x0b330111, 0x0b4b0111, + 0x0b670111, 0x0b730111, 0x0b7f0111, 0x0ba70111, 0x0bbf0111, 0x0bd70111, 0x0bef0111, 0x0bfb0111, + 0x0c030111, 0x0c070111, 0x0c130111, 0x027e0111, 0x03a70111, 0x027f0111, 0x03aa0111, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02060111, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x02090141, 0x024c0111, 0x09df0111, 0x09e10111, 0x09de0111, 0x09e20111, 0x03a80111, 0x029c0111, + 0x02140111, 0x029f0111, 0x0a150181, 0x02780111, 0x03a60111, 0x02200111, 0x02a00111, 0x02100111, + 0x030a0111, 0x03a00111, 0x0a0d0151, 0x0a0e0151, 0x020d0111, 0x0c9f0121, 0x029d0111, 0x025f0111, + 0x02190111, 0x0a0c0151, 0x0b4b01a1, 0x02790111, 0x0a0c0171, 0x0a0c0171, 0x0a0e0171, 0x024f0111, + 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a150151, 0x0a190121, 0x0a3d0151, + 0x0a650151, 0x0a650151, 0x0a650151, 0x0a650151, 0x0ad30161, 0x0ad30161, 0x0ad30161, 0x0ad30161, + 0x0a5d0121, 0x0b330151, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x0b4b0161, 0x03a20111, + 0x0b530121, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0bd70141, 0x0c070141, 0x0c3b0121, 0x0ba70131, + 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a150111, 0x0a190111, 0x0a3d0111, + 0x0a650111, 0x0a650111, 0x0a650111, 0x0a650111, 0x0ad30111, 0x0ad30111, 0x0ad30111, 0x0ad30111, + 0x0a5d0111, 0x0b330111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x0b4b0111, 0x03a10111, + 0x0b530111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0bd70111, 0x0c070111, 0x0c3b0111, 0x0c070111, + /* 0x0100 .. 0x01ff */ + 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a3d0151, 0x0a3d0111, + 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, + 0x0a4d0121, 0x0a4d0111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, + 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, + 0x0a990151, 0x0a990111, 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ac50131, 0x0ac50111, + 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, + 0x0ad30161, 0x0ad70111, 0x0ad30181, 0x0ad30131, 0x0ae70141, 0x0ae70111, 0x0af70141, 0x0af70111, + 0x0b7b0111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030181, + 0x0b030131, 0x0b0b0121, 0x0b0b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b330151, + 0x0b330111, 0x0c580121, 0x0b470121, 0x0b470111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0b4b0181, 0x0b4b0131, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, + 0x0b7f0141, 0x0b7f0111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, + 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bc30121, 0x0bc30111, + 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, + 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bfb0141, 0x0bfb0111, 0x0c070141, 0x0c070111, + 0x0c070141, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ba70131, + 0x0a310111, 0x0a350121, 0x0a390121, 0x0a390111, 0x0c4f0121, 0x0c4f0111, 0x0b570121, 0x0a410121, + 0x0a410111, 0x0a510121, 0x0a550121, 0x0a590121, 0x0a590111, 0x0a610111, 0x0a690121, 0x0a6d0121, + 0x0a710121, 0x0a950121, 0x0a950111, 0x0aa50121, 0x0aad0121, 0x0ac10111, 0x0ae30121, 0x0adf0121, + 0x0afb0121, 0x0afb0111, 0x0b0f0111, 0x0b230111, 0x0be30121, 0x0b3b0121, 0x0b3f0111, 0x0b5b0121, + 0x0b4b0161, 0x0b4b0111, 0x0ab50121, 0x0ab50111, 0x0b6b0121, 0x0b6b0111, 0x0b830121, 0x0c470121, + 0x0c470111, 0x0baf0121, 0x0bb30111, 0x0bc70111, 0x0bcb0121, 0x0bcb0111, 0x0bcf0121, 0x0bd70141, + 0x0bd70111, 0x0beb0121, 0x0bf30121, 0x0c0f0121, 0x0c0f0111, 0x0c170121, 0x0c170111, 0x0c270121, + 0x0c2b0121, 0x0c2b0111, 0x0c2f0111, 0x0c430111, 0x0c4b0121, 0x0c4b0111, 0x0c610111, 0x0c3f0111, + 0x0c710111, 0x0c750111, 0x0c790111, 0x0c7d0111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0b030181, + 0x0b030181, 0x0b030131, 0x0b330171, 0x0b330171, 0x0b330131, 0x0a150151, 0x0a150111, 0x0ad30161, + 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, + 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0a690111, 0x0a150151, 0x0a150111, + 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0aa10121, 0x0aa10111, 0x0a990151, 0x0a990111, + 0x0af70141, 0x0af70111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0c270121, 0x0c270111, + 0x0ae70111, 0x0a490171, 0x0a490171, 0x0a490131, 0x0a990151, 0x0a990111, 0x0ac10121, 0x0c3f0121, + 0x0b330151, 0x0b330111, 0x0a150151, 0x0a150111, 0x0a190121, 0x0a190111, 0x0b530121, 0x0b530111, + /* 0x0200 .. 0x02ff */ + 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, + 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, + 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0c370121, 0x0c370111, 0x0ab90151, 0x0ab90111, + 0xffffffff, 0xffffffff, 0x0b630121, 0x0b630111, 0x0c1b0121, 0x0c1b0111, 0x0a150151, 0x0a150111, + 0x0a650151, 0x0a650111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a1d0111, 0x0a210111, 0x0a250111, 0x0a350111, 0x0b570111, 0x0a450111, 0x0a510111, 0x0a550111, + 0x0a750111, 0x0a6d0111, 0x0a790111, 0x0a710111, 0x0a7d0111, 0x0a810111, 0x0a850111, 0x0aef0111, + 0x0aa50111, 0x0ab10111, 0x0a9d0111, 0x0aad0111, 0x0a8d0111, 0x0bdf0111, 0x0ac90111, 0x0acd0111, + 0x0adf0111, 0x0ae30111, 0x0adb0111, 0x0b130111, 0x0b170111, 0x0b1b0111, 0x0b1f0111, 0x0be30111, + 0x0be70111, 0x0b2f0111, 0x0b3b0111, 0x0b430111, 0x0b370111, 0x0b5b0111, 0x0b4f0111, 0x0b5f0111, + 0x0b6f0111, 0x0b870111, 0x0b8b0111, 0x0b8f0111, 0x0b930111, 0x0b970111, 0x0b9b0111, 0x0b9f0111, + 0x0b830111, 0x0ba30111, 0x0bab0111, 0x0baf0111, 0x0af30111, 0x0bb70111, 0x0bbb0111, 0x0bd30111, + 0x0bcf0111, 0x0bdb0111, 0x0beb0111, 0x0bf30111, 0x0bf70111, 0x0bff0111, 0x0b270111, 0x0c0b0111, + 0x0c1f0111, 0x0c230111, 0x0c270111, 0x0c330111, 0x0c530111, 0x0c5b0111, 0x0c6d0111, 0x0c810111, + 0x0c850111, 0x0a2d0111, 0x0a890111, 0x0aa90111, 0x0abd0111, 0x0aeb0111, 0x0aff0111, 0x0b070111, + 0x0b770111, 0x0c650111, 0x0c690111, 0x0a490131, 0x0a490131, 0x0a490131, 0x0bbf0131, 0x0bbf0131, + 0x0bbf0131, 0x0a910131, 0x0b030131, 0x0b030131, 0x0c890111, 0x0c8d0111, 0xffffffff, 0xffffffff, + 0x0ab90191, 0x0ac90121, 0x0ae70171, 0x0b7f0191, 0x0b870121, 0x0b8f0121, 0x0ba30121, 0x0bfb0171, + 0x0c070171, 0x02e90111, 0x02eb0111, 0x0ad10111, 0x0c580111, 0x0ad20111, 0x0c5a0111, 0x0c5f0111, + 0x0c570111, 0x0c600111, 0x02ec0111, 0x02ed0111, 0x02ee0111, 0x02ef0111, 0x02f00111, 0x02f10111, + 0x02f20111, 0x02f30111, 0x02f40111, 0x02f50111, 0x02f60111, 0x02f70111, 0x02f80111, 0x02f90111, + 0x09d30111, 0x09d40111, 0x02fa0111, 0x02fb0111, 0x02fc0111, 0x02fd0111, 0x02fe0111, 0x02ff0111, + 0x02120111, 0x02130111, 0x02150111, 0x021a0111, 0x020e0111, 0x02160111, 0x03000111, 0xffffffff, + 0x0aad0131, 0x0b0301b1, 0x0ba70181, 0x0c030191, 0x0c5b0121, 0x03010111, 0x03020111, 0x03030111, + 0x03040111, 0x03050111, 0x03060111, 0x03070111, 0x03080111, 0x03090111, 0x0c590111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0300 .. 0x03ff */ + 0x00000611, 0x00000511, 0x00000811, 0x00000e11, 0x00001311, 0x00001411, 0x00000711, 0x00000f11, + 0x00000c11, 0x00001511, 0x00000a11, 0x00000d11, 0x00000911, 0x00001611, 0x00001711, 0x00001811, + 0x00001911, 0x00001a11, 0x00001b11, 0x00000311, 0x00000411, 0x00001c11, 0x00001d11, 0x00001e11, + 0x00001f11, 0x00002011, 0x00002111, 0x00002211, 0x00002311, 0x00002411, 0x00002511, 0x00002611, + 0x00002711, 0x00002811, 0x00002911, 0x00002a11, 0x00002b11, 0x00002c11, 0x00002d11, 0x00001111, + 0x00001211, 0x00002e11, 0x00002f11, 0x00003011, 0x00003111, 0x00003211, 0x00003311, 0x00003411, + 0x00003511, 0x00003611, 0x00000211, 0x00003711, 0x00003811, 0x00003911, 0x00003a11, 0x00003b11, + 0x00001011, 0x00003c11, 0x00003d11, 0x00003e11, 0x00003f11, 0x00004011, 0x00004111, 0x00004211, + 0x00000611, 0x00000511, 0x00000b11, 0x00000311, 0x00000c11, 0x00004311, 0x00004411, 0x00004511, + 0x00004611, 0x00004711, 0x00004811, 0x00004911, 0x00004a11, 0x00004b11, 0x00004c11, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x00004d11, 0x00004e11, 0x00004f11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x02e90111, 0x02ea0111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x0c9b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02350111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x020d0111, 0x02140111, 0x0c910121, 0x025f0111, + 0x0c950131, 0x0c990121, 0x0c9b0121, 0xffffffff, 0x0ca20121, 0xffffffff, 0x0ca80121, 0x0cac0121, + 0x0c9b0111, 0x0c910121, 0x0c920131, 0x0c930121, 0x0c940121, 0x0c950131, 0x0c980121, 0x0c990121, + 0x0c9a0131, 0x0c9b0121, 0x0c9d0131, 0x0c9e0121, 0x0c9f0131, 0x0ca00121, 0x0ca10121, 0x0ca20121, + 0x0ca30131, 0x0ca50131, 0xffffffff, 0x0ca60131, 0x0ca70121, 0x0ca80121, 0x0ca90131, 0x0caa0121, + 0x0cab0121, 0x0cac0121, 0x0c9b0121, 0x0ca80121, 0x0c910111, 0x0c950111, 0x0c990111, 0x0c9b0111, + 0x0ca80111, 0x0c910111, 0x0c920111, 0x0c930111, 0x0c940111, 0x0c950111, 0x0c980111, 0x0c990111, + 0x0c9a0111, 0x0c9b0111, 0x0c9d0111, 0x0c9e0111, 0x0c9f0111, 0x0ca00111, 0x0ca10111, 0x0ca20111, + 0x0ca30111, 0x0ca50111, 0x0ca60141, 0x0ca60111, 0x0ca70111, 0x0ca80111, 0x0ca90111, 0x0caa0111, + 0x0cab0111, 0x0cac0111, 0x0c9b0111, 0x0ca80111, 0x0ca20111, 0x0ca80111, 0x0cac0111, 0xffffffff, + 0x0c920121, 0x0c9a0121, 0x0ca80131, 0x0ca80131, 0x0ca80131, 0x0ca90121, 0x0ca30121, 0x0c9d0121, + 0xffffffff, 0xffffffff, 0x0c970121, 0x0c970111, 0x0c960121, 0x0c960111, 0x0ca40121, 0x0ca40111, + 0x0cad0121, 0x0cad0111, 0x0cae0121, 0x0cae0111, 0x0caf0121, 0x0caf0111, 0x0cb00121, 0x0cb00111, + 0x0cb10121, 0x0cb10111, 0x0cb20121, 0x0cb20111, 0x0cb30121, 0x0cb30111, 0x0cb40121, 0x0cb40111, + 0x0c9d0121, 0x0ca50121, 0x0ca60121, 0x0c9c0111, 0x0c9a0141, 0x0c950121, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0400 .. 0x04ff */ + 0x0cf10121, 0x0cf10121, 0x0ce50121, 0x0ce90121, 0x0cf90121, 0x0d110121, 0x0d210121, 0x0d250121, + 0x0d2d0121, 0x0d4d0121, 0x0d650121, 0x0d9d0121, 0x0da10121, 0x0d190121, 0x0da90121, 0x0e050121, + 0x0cb50121, 0x0ccd0121, 0x0cd10121, 0x0cd50131, 0x0ce10121, 0x0cf10121, 0x0cfd0121, 0x0d090121, + 0x0d190121, 0x0d290121, 0x0d310121, 0x0d490121, 0x0d510121, 0x0d550121, 0x0d690121, 0x0d790121, + 0x0d850121, 0x0d8d0121, 0x0d950121, 0x0da50121, 0x0dc10121, 0x0dc50121, 0x0de10121, 0x0de90121, + 0x0e090121, 0x0e0d0121, 0x0e110121, 0x0e150121, 0x0e1d0121, 0x0e290121, 0x0e310121, 0x0e350121, + 0x0cb50111, 0x0ccd0111, 0x0cd10111, 0x0cd50111, 0x0ce10111, 0x0cf10111, 0x0cfd0111, 0x0d090111, + 0x0d190111, 0x0d290111, 0x0d310111, 0x0d490111, 0x0d510111, 0x0d550111, 0x0d690111, 0x0d790111, + 0x0d850111, 0x0d8d0111, 0x0d950111, 0x0da50111, 0x0dc10111, 0x0dc50111, 0x0de10111, 0x0de90111, + 0x0e090111, 0x0e0d0111, 0x0e110111, 0x0e150111, 0x0e1d0111, 0x0e290111, 0x0e310111, 0x0e350111, + 0x0cf10111, 0x0cf10111, 0x0ce50111, 0x0ce90111, 0x0cf90111, 0x0d110111, 0x0d210111, 0x0d250111, + 0x0d2d0111, 0x0d4d0111, 0x0d650111, 0x0d9d0111, 0x0da10111, 0x0d190111, 0x0da90111, 0x0e050111, + 0x0dd10121, 0x0dd10111, 0x0e250121, 0x0e250111, 0x0e390121, 0x0e390111, 0x0e3d0121, 0x0e3d0111, + 0x0e450121, 0x0e450111, 0x0e410121, 0x0e410111, 0x0e490121, 0x0e490111, 0x0e4d0121, 0x0e4d0111, + 0x0e510121, 0x0e510111, 0x0e550121, 0x0e550111, 0x0e590121, 0x0e590111, 0x0e5d0121, 0x0e5d0111, + 0x0dbd0121, 0x0dbd0111, 0x0ddd0121, 0x0ddd0111, 0x0dd90121, 0x0dd90111, 0x0dd50121, 0x0dd50111, + 0x0d810121, 0x0d810111, 0x030b0111, 0x00005411, 0x00005511, 0x00005611, 0x00005711, 0xffffffff, + 0x00000001, 0x00000001, 0xffffffff, 0xffffffff, 0x0e210121, 0x0e210111, 0x0d890121, 0x0d890111, + 0x0cd50141, 0x0cd50121, 0x0cd90121, 0x0cd90111, 0x0cdd0121, 0x0cdd0111, 0x0d050121, 0x0d050111, + 0x0ced0121, 0x0ced0111, 0x0d350121, 0x0d350111, 0x0d450121, 0x0d450111, 0x0d410121, 0x0d410111, + 0x0d3d0121, 0x0d3d0111, 0x0d590121, 0x0d590111, 0x0d610121, 0x0d610111, 0x0d7d0121, 0x0d7d0111, + 0x0e610121, 0x0e610111, 0x0d910121, 0x0d910111, 0x0d990121, 0x0d990111, 0x0db50121, 0x0db50111, + 0x0db90121, 0x0db90111, 0x0dc90121, 0x0dc90111, 0x0de50121, 0x0de50111, 0x0df10121, 0x0df10111, + 0x0df90121, 0x0df90111, 0x0dcd0121, 0x0dcd0111, 0x0dfd0121, 0x0dfd0111, 0x0e010121, 0x0e010111, + 0x0e650111, 0x0cfd0121, 0x0cfd0111, 0x0d390121, 0x0d390111, 0xffffffff, 0xffffffff, 0x0d5d0121, + 0x0d5d0111, 0xffffffff, 0xffffffff, 0x0df50121, 0x0df50111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0cb90121, 0x0cb90111, 0x0cbd0121, 0x0cbd0111, 0x0cc90121, 0x0cc90111, 0x0cf50121, 0x0cf50111, + 0x0cc10121, 0x0cc10111, 0x0cc50121, 0x0cc50111, 0x0d010121, 0x0d010111, 0x0d0d0121, 0x0d0d0111, + 0x0d150121, 0x0d150111, 0x0d190121, 0x0d190111, 0x0d1d0121, 0x0d1d0111, 0x0d6d0121, 0x0d6d0111, + 0x0d710121, 0x0d710111, 0x0d750121, 0x0d750111, 0x0e2d0121, 0x0e2d0111, 0x0da50121, 0x0da50111, + 0x0dad0121, 0x0dad0111, 0x0db10121, 0x0db10111, 0x0ded0121, 0x0ded0111, 0xffffffff, 0xffffffff, + 0x0e190121, 0x0e190111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0500 .. 0x05ff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x0e900121, 0x0e910121, 0x0e920121, 0x0e930121, 0x0e940131, 0x0e950121, 0x0e960121, + 0x0e970121, 0x0e980121, 0x0e990121, 0x0e9a0121, 0x0e9b0121, 0x0e9c0121, 0x0e9d0121, 0x0e9e0121, + 0x0e9f0121, 0x0ea00121, 0x0ea10121, 0x0ea20121, 0x0ea30131, 0x0ea40121, 0x0ea50121, 0x0ea60121, + 0x0ea70121, 0x0ea80121, 0x0ea90121, 0x0eaa0121, 0x0eab0121, 0x0eac0121, 0x0ead0131, 0x0eae0121, + 0x0eaf0121, 0x0eb00121, 0x0eb10121, 0x0eb20121, 0x0eb30121, 0x0eb40121, 0x0eb50121, 0xffffffff, + 0xffffffff, 0x0eb60111, 0x02bf0111, 0x02c00111, 0x024d0111, 0x022e0111, 0x02500111, 0x02c10111, + 0xffffffff, 0x0e900111, 0x0e910111, 0x0e920111, 0x0e930111, 0x0e940111, 0x0e950111, 0x0e960111, + 0x0e970111, 0x0e980111, 0x0e990111, 0x0e9a0111, 0x0e9b0111, 0x0e9c0111, 0x0e9d0111, 0x0e9e0111, + 0x0e9f0111, 0x0ea00111, 0x0ea10111, 0x0ea20111, 0x0ea30111, 0x0ea40111, 0x0ea50111, 0x0ea60111, + 0x0ea70111, 0x0ea80111, 0x0ea90111, 0x0eaa0111, 0x0eab0111, 0x0eac0111, 0x0ead0111, 0x0eae0111, + 0x0eaf0111, 0x0eb00111, 0x0eb10111, 0x0eb20111, 0x0eb30111, 0x0eb40111, 0x0eb50111, 0x0e940121, + 0xffffffff, 0x02380111, 0x02220111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x00000001, 0x00000001, 0xffffffff, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, + 0x00005811, 0x00005911, 0x00005a11, 0x00005b11, 0x00005c11, 0x00005d11, 0x00005e11, 0x00005f11, + 0x00006011, 0x00006111, 0xffffffff, 0x00006211, 0x00006311, 0x00000001, 0x02c20111, 0x00006411, + 0x02c30111, 0x00006511, 0x00006611, 0x02c40111, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0x0ebe0111, + 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0x0ec30131, 0x0ec30111, 0x0ec40121, + 0x0ec40111, 0x0ec50111, 0x0ec60111, 0x0ec70121, 0x0ec70111, 0x0ec80121, 0x0ec80111, 0x0ec90111, + 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0ebc0121, 0x0ebc0121, 0x0ec00121, 0x02c50111, 0x02c60111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0600 .. 0x06ff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x022f0111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x02360111, 0xffffffff, 0xffffffff, 0xffffffff, 0x02510111, + 0xffffffff, 0x0ecd0111, 0x0ece0111, 0x0ecf0111, 0x0ed20111, 0x0ed30111, 0x0ed50111, 0x0ed60111, + 0x0ed70111, 0x0edb0111, 0x0edc0111, 0x0edd0111, 0x0ee30111, 0x0ee90111, 0x0eea0111, 0x0eee0111, + 0x0eef0111, 0x0ef90111, 0x0efa0111, 0x0f040111, 0x0f050111, 0x0f0a0111, 0x0f0b0111, 0x0f0f0111, + 0x0f100111, 0x0f120111, 0x0f130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x020b0111, 0x0f160111, 0x0f1d0111, 0x0f200111, 0x0f2d0111, 0x0f320111, 0x0f330111, 0x0f390111, + 0x0f3e0111, 0x0f480111, 0x0f490111, 0x00006811, 0x00006911, 0x00006a11, 0x00006b11, 0x00006c11, + 0x00006d11, 0x00006e11, 0x00006f11, 0x00007011, 0x00007111, 0x00007211, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x02ab0111, 0x02300111, 0x02310111, 0x02a30111, 0xffffffff, 0xffffffff, + 0x00007311, 0x0ed10111, 0x0ed00111, 0x0ed40111, 0x0ecd0111, 0x0ed60121, 0x0f3e0121, 0x0f420121, + 0x0f490121, 0x0ede0111, 0x0edf0111, 0x0ed80111, 0x0ee00111, 0x0ee10111, 0x0ed90111, 0x0ee20111, + 0x0eda0111, 0x0eeb0111, 0x0eec0111, 0x0ee40111, 0x0ee50111, 0x0eed0111, 0x0ee60111, 0x0ee80111, + 0x0ef00111, 0x0ef10111, 0x0ef20111, 0x0ef30111, 0x0ef40111, 0x0ef50111, 0x0ef60111, 0x0ef70111, + 0x0ef80111, 0x0efb0111, 0x0efc0111, 0x0efd0111, 0x0efe0111, 0x0eff0111, 0x0f000111, 0x0f010111, + 0x0f020111, 0x0f030111, 0x0f060111, 0x0f070111, 0x0f080111, 0x0f0c0111, 0x0f0d0111, 0x0f110111, + 0x0f140111, 0x0f170111, 0x0f180111, 0x0f190111, 0x0f1a0111, 0x0f1b0111, 0x0f1c0111, 0x0f1e0111, + 0x0f1f0111, 0x0f210111, 0x0f220111, 0x0f230111, 0x0f240111, 0x0f250111, 0x0f260111, 0x0f270111, + 0x0f280111, 0x0f290111, 0x0f2a0111, 0x0f2b0111, 0x0f2c0111, 0x0f2e0111, 0x0f2f0111, 0x0f300111, + 0x0f310111, 0x0f380111, 0x0f340111, 0x0f350111, 0x0f360111, 0x0f370111, 0x0f3a0111, 0x0ee70111, + 0x0f3d0111, 0x0f3b0111, 0x0f3b0111, 0x0f3c0111, 0x0f3f0111, 0x0f400111, 0x0f410111, 0x0f420111, + 0x0f430111, 0x0f440111, 0x0f450111, 0x0f460111, 0x0f4a0111, 0x0f4b0111, 0x0f4c0111, 0x0f470111, + 0x0f4d0111, 0x0f4e0111, 0x0f4f0111, 0x0f4f0111, 0x02570111, 0x0f3d0111, 0x00007411, 0x00007511, + 0x00007611, 0x00007711, 0x00007811, 0x00007911, 0x00007a11, 0x00000001, 0x00000001, 0x00000001, + 0x00000001, 0x00007b11, 0x00007c11, 0x00007d11, 0x00007e11, 0x0f3e0121, 0x0f490121, 0x00007f11, + 0x00008011, 0x030c0111, 0x00000001, 0x00000001, 0x00000001, 0x00008111, 0xffffffff, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x0f090111, 0x0f0e0111, 0x0f150111, 0x0ecd0121, 0x0f320121, 0xffffffff, + /* 0x0700 .. 0x07ff */ + 0x02660111, 0x02580111, 0x02590111, 0x02390111, 0x023a0111, 0x023b0111, 0x023c0111, 0x023d0111, + 0x023e0111, 0x02520111, 0x02c70111, 0x02c80111, 0x02c90111, 0x02ca0111, 0xffffffff, 0x00000000, + 0x0f500111, 0x00008211, 0x0f510111, 0x0f520111, 0x0f520121, 0x0f530111, 0x0f540111, 0x0f550111, + 0x0f560111, 0x0f570111, 0x0f580111, 0x0f590111, 0x0f590121, 0x0f5a0111, 0x0f5b0111, 0x0f5c0111, + 0x0f5d0111, 0x0f5e0111, 0x0f5f0111, 0x0f600111, 0x0f600121, 0x0f610111, 0x0f620111, 0x0f620121, + 0x0f630111, 0x0f640111, 0x0f650111, 0x0f660111, 0x0f670111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x00008311, 0x00008411, 0x00008511, 0x00008611, 0x00008711, 0x00008811, 0x00008911, 0x00008a11, + 0x00008b11, 0x00008c11, 0x00008d11, 0x00008e11, 0x00008f11, 0x00009011, 0x00009111, 0x00009211, + 0x00009311, 0x00009411, 0x00009511, 0x00009611, 0x00009711, 0x00009811, 0x00009911, 0x00009a11, + 0x00009b11, 0x00009c11, 0x00009d11, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0f680111, 0x0f6b0111, 0x0f6c0111, 0x0f6d0111, 0x0f6f0111, 0x0f700111, 0x0f710111, 0x0f720111, + 0x0f750111, 0x0f770111, 0x0f780111, 0x0f790111, 0x0f7b0111, 0x0f7f0111, 0x0f800111, 0x0f820111, + 0x0f830111, 0x0f870111, 0x0f880111, 0x0f890111, 0x0f8a0111, 0x0f8b0111, 0x0f8c0111, 0x0f8d0111, + 0x0f7c0111, 0x0f690111, 0x0f6a0111, 0x0f7a0111, 0x0f6e0111, 0x0f840111, 0x0f850111, 0x0f860111, + 0x0f7d0111, 0x0f7e0111, 0x0f730111, 0x0f740111, 0x0f810111, 0x0f760111, 0x0f8e0111, 0x0f8f0111, + 0x0f900111, 0x0f910111, 0x0f920111, 0x0f930111, 0x0f940111, 0x0f950111, 0x0f960111, 0x0f970111, + 0x0f980111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0900 .. 0x09ff */ + 0xffffffff, 0x00009f11, 0x0000a011, 0x0000a111, 0xffffffff, 0x10d70111, 0x10d80111, 0x10d90111, + 0x10da0111, 0x10db0111, 0x10dc0111, 0x10dd0111, 0x10df0111, 0x10e10111, 0x10e20111, 0x10e30111, + 0x10e40111, 0x10e50111, 0x10e60111, 0x10e70111, 0x10e80111, 0x10e90111, 0x10ea0111, 0x10eb0111, + 0x10ec0111, 0x10ed0111, 0x10ee0111, 0x10ef0111, 0x10f00111, 0x10f10111, 0x10f20111, 0x10f30111, + 0x10f40111, 0x10f50111, 0x10f60111, 0x10f70111, 0x10f80111, 0x10f90111, 0x10fa0111, 0x10fb0111, + 0x10fc0111, 0x10fc0111, 0x10fd0111, 0x10fe0111, 0x10ff0111, 0x11000111, 0x11010111, 0x11020111, + 0x11030111, 0x11030111, 0x11040111, 0x11050111, 0x11050111, 0x11060111, 0x11070111, 0x11080111, + 0x11090111, 0x110a0111, 0xffffffff, 0xffffffff, 0x00009e11, 0x110b0111, 0x110c0111, 0x110d0111, + 0x110e0111, 0x110f0111, 0x11100111, 0x11110111, 0x11120111, 0x11150111, 0x11160111, 0x11170111, + 0x11180111, 0x11190111, 0x111a0111, 0x111b0111, 0x111c0111, 0x111d0111, 0xffffffff, 0xffffffff, + 0x10d60111, 0x0000a211, 0x0000a311, 0x0000a411, 0x0000a511, 0xffffffff, 0xffffffff, 0xffffffff, + 0x10e90111, 0x10ea0111, 0x10eb0111, 0x10f00111, 0x10f50111, 0x10f60111, 0x10fe0111, 0x11020111, + 0x10de0111, 0x10e00111, 0x11130111, 0x11140111, 0x02600111, 0x02610111, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0x02cd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x0000a711, 0x0000a811, 0x0000a911, 0xffffffff, 0x111e0111, 0x111f0111, 0x11200111, + 0x11210111, 0x11220111, 0x11230111, 0x11240111, 0x11260111, 0xffffffff, 0xffffffff, 0x11280111, + 0x11290111, 0xffffffff, 0xffffffff, 0x112a0111, 0x112b0111, 0x112c0111, 0x112d0111, 0x112e0111, + 0x112f0111, 0x11300111, 0x11310111, 0x11320111, 0x11330111, 0x11340111, 0x11350111, 0x11360111, + 0x11370111, 0x11380111, 0x11390111, 0x113a0111, 0x113b0111, 0x113c0111, 0x113d0111, 0x113e0111, + 0x113f0111, 0xffffffff, 0x11400111, 0x11410111, 0x11420111, 0x11430111, 0x11440111, 0x11450111, + 0x11460111, 0xffffffff, 0x11480111, 0xffffffff, 0xffffffff, 0xffffffff, 0x114a0111, 0x114b0111, + 0x114c0111, 0x114d0111, 0xffffffff, 0xffffffff, 0x0000a611, 0xffffffff, 0x114e0111, 0x114f0111, + 0x11500111, 0x11510111, 0x11520111, 0x11530111, 0x11540111, 0xffffffff, 0xffffffff, 0x11570111, + 0x11580111, 0xffffffff, 0xffffffff, 0x11590111, 0x115a0111, 0x115b0111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x115c0111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11380111, 0x11390111, 0xffffffff, 0x11450111, + 0x11250111, 0x11270111, 0x11550111, 0x11560111, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0x11470111, 0x11490111, 0x09e30111, 0x09e40111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, + 0x09c10111, 0x09c20111, 0x030d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0a00 .. 0x0aff */ + 0xffffffff, 0xffffffff, 0x0000ab11, 0xffffffff, 0xffffffff, 0x11620111, 0x11630111, 0x11670111, + 0x11680111, 0x115f0111, 0x11600111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11690111, + 0x11640111, 0xffffffff, 0xffffffff, 0x11610111, 0x11650111, 0x116c0111, 0x116d0111, 0x116e0111, + 0x116f0111, 0x11700111, 0x11710111, 0x11720111, 0x11730111, 0x11740111, 0x11750111, 0x11760111, + 0x11770111, 0x11780111, 0x11790111, 0x117a0111, 0x117b0111, 0x117c0111, 0x117d0111, 0x117e0111, + 0x117f0111, 0xffffffff, 0x11800111, 0x11810111, 0x11820111, 0x11830111, 0x11840111, 0x11850111, + 0x11860111, 0xffffffff, 0x11870111, 0x11870111, 0xffffffff, 0x11880111, 0x116a0111, 0xffffffff, + 0x116a0111, 0x116b0111, 0xffffffff, 0xffffffff, 0x0000aa11, 0xffffffff, 0x118a0111, 0x118b0111, + 0x118c0111, 0x118d0111, 0x118e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x118f0111, + 0x11900111, 0xffffffff, 0xffffffff, 0x11910111, 0x11920111, 0x11930111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x116d0111, 0x116e0111, 0x11730111, 0x11890111, 0xffffffff, 0x11810111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0x0000ac11, 0x0000ad11, 0x11660111, 0x115e0111, 0x115d0111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x0000af11, 0x0000b011, 0x0000b111, 0xffffffff, 0x11950111, 0x11960111, 0x11970111, + 0x11980111, 0x11990111, 0x119a0111, 0x119b0111, 0xffffffff, 0x119d0111, 0xffffffff, 0x119e0111, + 0x119f0111, 0x11a00111, 0xffffffff, 0x11a10111, 0x11a20111, 0x11a30111, 0x11a40111, 0x11a50111, + 0x11a60111, 0x11a70111, 0x11a80111, 0x11a90111, 0x11aa0111, 0x11ab0111, 0x11ac0111, 0x11ad0111, + 0x11ae0111, 0x11af0111, 0x11b00111, 0x11b10111, 0x11b20111, 0x11b30111, 0x11b40111, 0x11b50111, + 0x11b60111, 0xffffffff, 0x11b70111, 0x11b80111, 0x11b90111, 0x11ba0111, 0x11bb0111, 0x11bc0111, + 0x11bd0111, 0xffffffff, 0x11be0111, 0x11bf0111, 0xffffffff, 0x11c00111, 0x11c10111, 0x11c20111, + 0x11c30111, 0x11c40111, 0xffffffff, 0xffffffff, 0x0000ae11, 0x11c50111, 0x11c60111, 0x11c70111, + 0x11c80111, 0x11c90111, 0x11ca0111, 0x11cb0111, 0x11cc0111, 0x11cd0111, 0xffffffff, 0x11ce0111, + 0x11cf0111, 0x11d00111, 0xffffffff, 0x11d10111, 0x11d20111, 0x11d30111, 0xffffffff, 0xffffffff, + 0x11940111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x119c0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0b00 .. 0x0bff */ + 0xffffffff, 0x0000b311, 0x0000b411, 0x0000b511, 0xffffffff, 0x11d40111, 0x11d50111, 0x11d60111, + 0x11d70111, 0x11d80111, 0x11d90111, 0x11da0111, 0x11dc0111, 0xffffffff, 0xffffffff, 0x11de0111, + 0x11df0111, 0xffffffff, 0xffffffff, 0x11e00111, 0x11e10111, 0x11e20111, 0x11e30111, 0x11e40111, + 0x11e50111, 0x11e60111, 0x11e70111, 0x11e80111, 0x11e90111, 0x11ea0111, 0x11eb0111, 0x11ec0111, + 0x11ed0111, 0x11ee0111, 0x11ef0111, 0x11f00111, 0x11f10111, 0x11f20111, 0x11f30111, 0x11f40111, + 0x11f50111, 0xffffffff, 0x11f60111, 0x11f70111, 0x11f80111, 0x11f90111, 0x11fa0111, 0x11fb0111, + 0x11fd0111, 0xffffffff, 0x11fe0111, 0x11ff0111, 0xffffffff, 0xffffffff, 0x12000111, 0x12010111, + 0x12020111, 0x12030111, 0xffffffff, 0xffffffff, 0x0000b211, 0x12040111, 0x12050111, 0x12060111, + 0x12070111, 0x12080111, 0x12090111, 0x120a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0x120b0111, + 0x120c0111, 0xffffffff, 0xffffffff, 0x120d0111, 0x120e0111, 0x120f0111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12100111, 0x12110111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x11ee0111, 0x11ef0111, 0xffffffff, 0x11fc0111, + 0x11db0111, 0x11dd0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0x030e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x0000b611, 0x12120111, 0xffffffff, 0x12130111, 0x12140111, 0x12150111, + 0x12160111, 0x12170111, 0x12180111, 0xffffffff, 0xffffffff, 0xffffffff, 0x12190111, 0x121a0111, + 0x121b0111, 0xffffffff, 0x121c0111, 0x121d0111, 0x121e0111, 0x121f0111, 0xffffffff, 0xffffffff, + 0xffffffff, 0x12200111, 0x12210111, 0xffffffff, 0x12220111, 0xffffffff, 0x12230111, 0x12240111, + 0xffffffff, 0xffffffff, 0xffffffff, 0x12250111, 0x12260111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x12270111, 0x12280111, 0x12290111, 0xffffffff, 0xffffffff, 0xffffffff, 0x122a0111, 0x122b0111, + 0x122c0111, 0x122d0111, 0x122e0111, 0x122f0111, 0x12300111, 0x12310111, 0xffffffff, 0x12320111, + 0x12330111, 0x12340111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12350111, 0x12360111, + 0x12370111, 0x12380111, 0x12390111, 0xffffffff, 0xffffffff, 0xffffffff, 0x123a0111, 0x123b0111, + 0x123c0111, 0xffffffff, 0x123d0111, 0x123e0111, 0x123f0111, 0x12400111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12410111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0x09c30111, 0x09c40111, 0x09c50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0c00 .. 0x0cff */ + 0xffffffff, 0x0000b711, 0x0000b811, 0x0000b911, 0xffffffff, 0x12420111, 0x12430111, 0x12440111, + 0x12450111, 0x12460111, 0x12470111, 0x12480111, 0x124a0111, 0xffffffff, 0x124c0111, 0x124d0111, + 0x124e0111, 0xffffffff, 0x124f0111, 0x12500111, 0x12510111, 0x12520111, 0x12530111, 0x12540111, + 0x12550111, 0x12560111, 0x12570111, 0x12580111, 0x12590111, 0x125a0111, 0x125b0111, 0x125c0111, + 0x125d0111, 0x125e0111, 0x125f0111, 0x12600111, 0x12610111, 0x12620111, 0x12630111, 0x12640111, + 0x12650111, 0xffffffff, 0x12660111, 0x12670111, 0x12680111, 0x12690111, 0x126a0111, 0x126b0111, + 0x126c0111, 0x126d0111, 0x126e0111, 0x126f0111, 0xffffffff, 0x12700111, 0x12710111, 0x12720111, + 0x12730111, 0x12740111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12750111, 0x12760111, + 0x12770111, 0x12780111, 0x12790111, 0x127a0111, 0x127b0111, 0xffffffff, 0x127c0111, 0x127d0111, + 0x127e0111, 0xffffffff, 0x127f0111, 0x12800111, 0x12810111, 0x12820111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12830111, 0x12840111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x12490111, 0x124b0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x0000ba11, 0x0000bb11, 0xffffffff, 0x12850111, 0x12860111, 0x12870111, + 0x12880111, 0x12890111, 0x128a0111, 0x128b0111, 0x128d0111, 0xffffffff, 0x128f0111, 0x12900111, + 0x12910111, 0xffffffff, 0x12920111, 0x12930111, 0x12940111, 0x12950111, 0x12960111, 0x12970111, + 0x12980111, 0x12990111, 0x129a0111, 0x129b0111, 0x129c0111, 0x129d0111, 0x129e0111, 0x129f0111, + 0x12a00111, 0x12a10111, 0x12a20111, 0x12a30111, 0x12a40111, 0x12a50111, 0x12a60111, 0x12a70111, + 0x12a80111, 0xffffffff, 0x12a90111, 0x12aa0111, 0x12ab0111, 0x12ac0111, 0x12ad0111, 0x12ae0111, + 0x12af0111, 0x12b00111, 0x12b10111, 0x12b70111, 0xffffffff, 0x12b20111, 0x12b30111, 0x12b40111, + 0x12b50111, 0x12b60111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b90111, 0x12ba0111, + 0x12bb0111, 0x12bc0111, 0x12bd0111, 0x12be0111, 0x12bf0111, 0xffffffff, 0x12c00111, 0x12c10111, + 0x12c20111, 0xffffffff, 0x12c30111, 0x12c40111, 0x12c50111, 0x12c60111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12c70111, 0x12c80111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12b80111, 0xffffffff, + 0x128c0111, 0x128e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0d00 .. 0x0dff */ + 0xffffffff, 0xffffffff, 0x0000bc11, 0x0000bd11, 0xffffffff, 0x12c90111, 0x12ca0111, 0x12cb0111, + 0x12cc0111, 0x12cd0111, 0x12ce0111, 0x12cf0111, 0x12d10111, 0xffffffff, 0x12d30111, 0x12d40111, + 0x12d50111, 0xffffffff, 0x12d60111, 0x12d70111, 0x12d80111, 0x12d90111, 0x12da0111, 0x12db0111, + 0x12dc0111, 0x12dd0111, 0x12de0111, 0x12df0111, 0x12e00111, 0x12e10111, 0x12e20111, 0x12e30111, + 0x12e40111, 0x12e50111, 0x12e60111, 0x12e70111, 0x12e80111, 0x12e90111, 0x12ea0111, 0x12eb0111, + 0x12ec0111, 0xffffffff, 0x12ed0111, 0x12ee0111, 0x12ef0111, 0x12f00111, 0x12f10111, 0x12f20111, + 0x12f30111, 0x12f40111, 0x12f50111, 0x12f60111, 0x12f70111, 0x12f80111, 0x12f90111, 0x12fa0111, + 0x12fb0111, 0x12fc0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x12fd0111, 0x12fe0111, + 0x12ff0111, 0x13000111, 0x13010111, 0x13020111, 0xffffffff, 0xffffffff, 0x13030111, 0x13040111, + 0x13050111, 0xffffffff, 0x13060111, 0x13070111, 0x13080111, 0x13090111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x130a0111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x12d00111, 0x12d20111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0b0111, 0x0a0c0111, + 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, 0x0a130111, 0x0a140111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x0000be11, 0x0000bf11, 0xffffffff, 0x130b0111, 0x130c0111, 0x130d0111, + 0x130e0111, 0x130f0111, 0x13100111, 0x13110111, 0x13120111, 0x13130111, 0x13140111, 0x13150111, + 0x13160111, 0x13170111, 0x13180111, 0x13190111, 0x131a0111, 0x131b0111, 0x131c0111, 0xffffffff, + 0xffffffff, 0xffffffff, 0x131d0111, 0x131e0111, 0x131f0111, 0x13200111, 0x13210111, 0x13220111, + 0x13230111, 0x13240111, 0x13250111, 0x13260111, 0x13270111, 0x13280111, 0x13290111, 0x132a0111, + 0x132b0111, 0x132c0111, 0x132d0111, 0x132e0111, 0x132f0111, 0x13300111, 0x13310111, 0x13320111, + 0x13330111, 0x13340111, 0xffffffff, 0x13350111, 0x13360111, 0x13370111, 0x13380111, 0x13390111, + 0x133a0111, 0x133b0111, 0x133c0111, 0x133d0111, 0xffffffff, 0x133e0111, 0xffffffff, 0xffffffff, + 0x133f0111, 0x13400111, 0x13410111, 0x13420111, 0x13430111, 0x13440111, 0x13450111, 0xffffffff, + 0xffffffff, 0xffffffff, 0x13460111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13470111, + 0x13480111, 0x13490111, 0x134a0111, 0x134b0111, 0x134c0111, 0xffffffff, 0x134d0111, 0xffffffff, + 0x134e0111, 0x134f0111, 0x13500111, 0x13510111, 0x13520111, 0x13530111, 0x13540111, 0x13550111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x13560111, 0x13570111, 0x02ce0111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0e00 .. 0x0eff */ + 0xffffffff, 0x13580111, 0x13590111, 0x135a0111, 0x135b0111, 0x135c0111, 0x135d0111, 0x135e0111, + 0x135f0111, 0x13600111, 0x13610111, 0x13620111, 0x13630111, 0x13640111, 0x13650111, 0x13660111, + 0x13670111, 0x13680111, 0x13690111, 0x136a0111, 0x136b0111, 0x136c0111, 0x136d0111, 0x136e0111, + 0x136f0111, 0x13700111, 0x13710111, 0x13720111, 0x13730111, 0x13740111, 0x13750111, 0x13760111, + 0x13770111, 0x13780111, 0x13790111, 0x137a0111, 0x137b0111, 0x137c0111, 0x137d0111, 0x137e0111, + 0x137f0111, 0x13800111, 0x13810111, 0x13820111, 0x13830111, 0x13840111, 0x13850111, 0x13860111, + 0x13870111, 0x13880111, 0x13890111, 0x138a0111, 0x138b0111, 0x138c0111, 0x138d0111, 0x138e0111, + 0x138f0111, 0x13900111, 0x13910111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x09e50111, + 0x13920111, 0x13930111, 0x13940111, 0x13950111, 0x13960111, 0x13970111, 0x09d50111, 0x0000c011, + 0x0000c111, 0x0000c211, 0x0000c311, 0x0000c411, 0x13980111, 0x13990111, 0x00000001, 0x030f0111, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x02cf0111, 0x02d00111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x139a0111, 0x139b0111, 0xffffffff, 0x139c0111, 0xffffffff, 0xffffffff, 0x139d0111, + 0x139e0111, 0xffffffff, 0x139f0111, 0xffffffff, 0xffffffff, 0x13a00111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x13a10111, 0x13a20111, 0x13a30111, 0x13a40111, + 0xffffffff, 0x13a50111, 0x13a60111, 0x13a70111, 0x13a80111, 0x13a90111, 0x13aa0111, 0x13ab0111, + 0xffffffff, 0x13ac0111, 0x13ad0111, 0x13ae0111, 0xffffffff, 0x13af0111, 0xffffffff, 0x13b00111, + 0xffffffff, 0xffffffff, 0x13b10111, 0x13b20111, 0xffffffff, 0x13b30111, 0x13b40111, 0x13b50111, + 0x13b60111, 0x13b70111, 0x13b80111, 0x13b90111, 0x13ba0111, 0x13bb0111, 0x13bc0111, 0x13bd0111, + 0x13be0111, 0x13bf0111, 0xffffffff, 0x13c00111, 0x13c10111, 0x13c20111, 0xffffffff, 0xffffffff, + 0x13c30111, 0x13c40111, 0x13c50111, 0x13c60111, 0x13c70111, 0xffffffff, 0x09d60111, 0xffffffff, + 0x0000c511, 0x0000c611, 0x0000c711, 0x0000c811, 0x13c80111, 0x13c90111, 0xffffffff, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0x13b20121, 0x13b20121, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x0f00 .. 0x0fff */ + 0x140e0121, 0x03100111, 0x03110111, 0x03120111, 0x02d10111, 0x02d20111, 0x02d30111, 0x02d40111, + 0x02d50111, 0x02d60111, 0x02d70111, 0x02d80111, 0x02d80121, 0x02d90111, 0x02da0111, 0x02db0111, + 0x02dc0111, 0x02dd0111, 0x02de0111, 0x03130111, 0x02460111, 0x03140111, 0x03150111, 0x03160111, + 0x00000001, 0x00000001, 0x03170111, 0x03180111, 0x03190111, 0x031a0111, 0x031b0111, 0x031c0111, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, + 0x0a120111, 0x0a130111, 0x0a140111, 0x0a0b0111, 0x031d0111, 0x00000001, 0x031e0111, 0x00000001, + 0x031f0111, 0x0000c911, 0x02800111, 0x02810111, 0x02820111, 0x02830111, 0x03200111, 0x03210111, + 0x13ca0111, 0x13cc0111, 0x13ce0111, 0x13ce0111, 0x13d00111, 0x13d20111, 0x13d40111, 0x13d60111, + 0xffffffff, 0x13d80111, 0x13da0111, 0x13dc0111, 0x13de0111, 0x13de0111, 0x13e00111, 0x13e20111, + 0x13e40111, 0x13e60111, 0x13e60111, 0x13e80111, 0x13ea0111, 0x13ec0111, 0x13ee0111, 0x13ee0111, + 0x13f00111, 0x13f20111, 0x13f40111, 0x13f60111, 0x13f60111, 0x13f80111, 0x13fa0111, 0x13fc0111, + 0x13fe0111, 0x14000111, 0x14020111, 0x14040111, 0x14060111, 0x14080111, 0x140a0111, 0x140c0111, + 0x140e0111, 0x13ca0111, 0x14020121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x14140111, 0x14150111, 0x14160111, 0x14190111, 0x141a0111, 0x141b0111, 0x141c0111, + 0x141d0111, 0x141e0111, 0x141f0111, 0x14200111, 0x14210111, 0x14220111, 0x0000ca11, 0x0000cb11, + 0x14170111, 0x14180111, 0x00000001, 0x00000001, 0x14230111, 0x02df0111, 0x00000001, 0x00000001, + 0x14100111, 0x14110111, 0x14120111, 0x14130111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x13cb0111, 0x13cd0111, 0x13cf0111, 0x13cf0111, 0x13d10111, 0x13d30111, 0x13d50111, 0x13d70111, + 0xffffffff, 0x13d90111, 0x13db0111, 0x13dd0111, 0x13df0111, 0x13df0111, 0x13e10111, 0x13e30111, + 0x13e50111, 0x13e70111, 0x13e70111, 0x13e90111, 0x13eb0111, 0x13ed0111, 0x13ef0111, 0x13ef0111, + 0x13f10111, 0x13f30111, 0x13f50111, 0x13f70111, 0x13f70111, 0x13f90111, 0x13fb0111, 0x13fd0111, + 0x13ff0111, 0x14010111, 0x14030111, 0x14050111, 0x14070111, 0x14090111, 0x140b0111, 0x140d0111, + 0x140f0111, 0x13cb0111, 0x13f90121, 0x14010121, 0x14030121, 0xffffffff, 0x03220111, 0x03230111, + 0x03240111, 0x03250111, 0x03260111, 0x03270111, 0x03280111, 0x03290111, 0x00000001, 0x032a0111, + 0x032b0111, 0x032c0111, 0x032d0111, 0x032e0111, 0x032f0111, 0xffffffff, 0xffffffff, 0x03300111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1000 .. 0x10ff */ + 0x14240111, 0x14250111, 0x14260111, 0x14270111, 0x14280111, 0x14290111, 0x142a0111, 0x142b0111, + 0x142c0111, 0x142d0111, 0x142e0111, 0x142f0111, 0x14300111, 0x14310111, 0x14320111, 0x14330111, + 0x14340111, 0x14350111, 0x14360111, 0x14370111, 0x14380111, 0x14390111, 0x143a0111, 0x143b0111, + 0x143c0111, 0x143d0111, 0x143e0111, 0x143f0111, 0x14400111, 0x14410111, 0x14440111, 0x14450111, + 0x14460111, 0x14470111, 0xffffffff, 0x14480111, 0x14490111, 0x144a0111, 0x144b0111, 0x144c0111, + 0xffffffff, 0x144d0111, 0x144e0111, 0xffffffff, 0x14530111, 0x14540111, 0x14550111, 0x14560111, + 0x14570111, 0x14580111, 0x14590111, 0xffffffff, 0xffffffff, 0xffffffff, 0x0000cc11, 0x0000cd11, + 0x0000ce11, 0x145e0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x02620111, 0x02630111, 0x02e00111, 0x02e10111, 0x02e20111, 0x02e30111, + 0x14420111, 0x14430111, 0x144f0111, 0x14500111, 0x14510111, 0x14520111, 0x145a0111, 0x145b0111, + 0x145c0111, 0x145d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0e690121, 0x0e6a0121, 0x0e6b0121, 0x0e6c0121, 0x0e6d0121, 0x0e6e0121, 0x0e6f0121, 0x0e710121, + 0x0e720121, 0x0e730121, 0x0e740121, 0x0e750121, 0x0e760121, 0x0e780121, 0x0e790121, 0x0e7a0121, + 0x0e7b0121, 0x0e7c0121, 0x0e7d0121, 0x0e7f0121, 0x0e800121, 0x0e810121, 0x0e820121, 0x0e830121, + 0x0e840121, 0x0e850121, 0x0e860121, 0x0e870121, 0x0e880121, 0x0e890121, 0x0e8a0121, 0x0e8c0121, + 0x0e8d0121, 0x0e700121, 0x0e770121, 0x0e7e0121, 0x0e8b0121, 0x0e8e0121, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0e690111, 0x0e6a0111, 0x0e6b0111, 0x0e6c0111, 0x0e6d0111, 0x0e6e0111, 0x0e6f0111, 0x0e710111, + 0x0e720111, 0x0e730111, 0x0e740111, 0x0e750111, 0x0e760111, 0x0e780111, 0x0e790111, 0x0e7a0111, + 0x0e7b0111, 0x0e7c0111, 0x0e7d0111, 0x0e7f0111, 0x0e800111, 0x0e810111, 0x0e820111, 0x0e830111, + 0x0e840111, 0x0e850111, 0x0e860111, 0x0e870111, 0x0e880111, 0x0e890111, 0x0e8a0111, 0x0e8c0111, + 0x0e8d0111, 0x0e700111, 0x0e770111, 0x0e7e0111, 0x0e8b0111, 0x0e8e0111, 0x0e8f0111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x02670111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1100 .. 0x11ff */ + 0x18310111, 0x18320111, 0x18330111, 0x18340111, 0x18350111, 0x18360111, 0x18370111, 0x18380111, + 0x18390111, 0x183a0111, 0x183b0111, 0x183c0111, 0x183d0111, 0x183e0111, 0x183f0111, 0x18400111, + 0x18410111, 0x18420111, 0x18430111, 0x18440111, 0x18450111, 0x18460111, 0x18470111, 0x18480111, + 0x18490111, 0x184a0111, 0x184b0111, 0x184c0111, 0x184d0111, 0x184e0111, 0x184f0111, 0x18500111, + 0x18510111, 0x18520111, 0x18530111, 0x18540111, 0x18550111, 0x18560111, 0x18570111, 0x18580111, + 0x18590111, 0x185a0111, 0x185b0111, 0x185c0111, 0x185d0111, 0x185e0111, 0x185f0111, 0x18600111, + 0x18610111, 0x18620111, 0x18630111, 0x18640111, 0x18650111, 0x18660111, 0x18670111, 0x18680111, + 0x18690111, 0x186a0111, 0x186b0111, 0x186c0111, 0x186d0111, 0x186e0111, 0x186f0111, 0x18700111, + 0x18710111, 0x18720111, 0x18730111, 0x18740111, 0x18750111, 0x18760111, 0x18770111, 0x18780111, + 0x18790111, 0x187a0111, 0x187b0111, 0x187c0111, 0x187d0111, 0x187e0111, 0x187f0111, 0x18800111, + 0x18810111, 0x18820111, 0x18830111, 0x18840111, 0x18850111, 0x18860111, 0x18870111, 0x18880111, + 0x18890111, 0x188a0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x188b0111, + 0x188c0111, 0x188d0111, 0x188e0111, 0x188f0111, 0x18900111, 0x18910111, 0x18920111, 0x18930111, + 0x18940111, 0x18950111, 0x18960111, 0x18970111, 0x18980111, 0x18990111, 0x189a0111, 0x189b0111, + 0x189c0111, 0x189d0111, 0x189e0111, 0x189f0111, 0x18a00111, 0x18a10111, 0x18a20111, 0x18a30111, + 0x18a40111, 0x18a50111, 0x18a60111, 0x18a70111, 0x18a80111, 0x18a90111, 0x18aa0111, 0x18ab0111, + 0x18ac0111, 0x18ad0111, 0x18ae0111, 0x18af0111, 0x18b00111, 0x18b10111, 0x18b20111, 0x18b30111, + 0x18b40111, 0x18b50111, 0x18b60111, 0x18b70111, 0x18b80111, 0x18b90111, 0x18ba0111, 0x18bb0111, + 0x18bc0111, 0x18bd0111, 0x18be0111, 0x18bf0111, 0x18c00111, 0x18c10111, 0x18c20111, 0x18c30111, + 0x18c40111, 0x18c50111, 0x18c60111, 0x18c70111, 0x18c80111, 0x18c90111, 0x18ca0111, 0x18cb0111, + 0x18cc0111, 0x18cd0111, 0x18ce0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x18cf0111, 0x18d00111, 0x18d10111, 0x18d20111, 0x18d30111, 0x18d40111, 0x18d50111, 0x18d60111, + 0x18d70111, 0x18d80111, 0x18d90111, 0x18da0111, 0x18db0111, 0x18dc0111, 0x18dd0111, 0x18de0111, + 0x18df0111, 0x18e00111, 0x18e10111, 0x18e20111, 0x18e30111, 0x18e40111, 0x18e50111, 0x18e60111, + 0x18e70111, 0x18e80111, 0x18e90111, 0x18ea0111, 0x18eb0111, 0x18ec0111, 0x18ed0111, 0x18ee0111, + 0x18ef0111, 0x18f00111, 0x18f10111, 0x18f20111, 0x18f30111, 0x18f40111, 0x18f50111, 0x18f60111, + 0x18f70111, 0x18f80111, 0x18f90111, 0x18fa0111, 0x18fb0111, 0x18fc0111, 0x18fd0111, 0x18fe0111, + 0x18ff0111, 0x19000111, 0x19010111, 0x19020111, 0x19030111, 0x19040111, 0x19050111, 0x19060111, + 0x19070111, 0x19080111, 0x19090111, 0x190a0111, 0x190b0111, 0x190c0111, 0x190d0111, 0x190e0111, + 0x190f0111, 0x19100111, 0x19110111, 0x19120111, 0x19130111, 0x19140111, 0x19150111, 0x19160111, + 0x19170111, 0x19180111, 0x19190111, 0x191a0111, 0x191b0111, 0x191c0111, 0x191d0111, 0x191e0111, + 0x191f0111, 0x19200111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1200 .. 0x12ff */ + 0x0f990111, 0x0f9a0111, 0x0f9b0111, 0x0f9c0111, 0x0f9d0111, 0x0f9e0111, 0x0f9f0111, 0xffffffff, + 0x0fa00111, 0x0fa10111, 0x0fa20111, 0x0fa30111, 0x0fa40111, 0x0fa50111, 0x0fa60111, 0x0fa70111, + 0x0fa80111, 0x0fa90111, 0x0faa0111, 0x0fab0111, 0x0fac0111, 0x0fad0111, 0x0fae0111, 0x0faf0111, + 0x0fb00111, 0x0fb10111, 0x0fb20111, 0x0fb30111, 0x0fb40111, 0x0fb50111, 0x0fb60111, 0x0fb70111, + 0x0fb80111, 0x0fb90111, 0x0fba0111, 0x0fbb0111, 0x0fbc0111, 0x0fbd0111, 0x0fbe0111, 0x0fbf0111, + 0x0fc00111, 0x0fc10111, 0x0fc20111, 0x0fc30111, 0x0fc40111, 0x0fc50111, 0x0fc60111, 0x0fc70111, + 0x0fc80111, 0x0fc90111, 0x0fca0111, 0x0fcb0111, 0x0fcc0111, 0x0fcd0111, 0x0fce0111, 0x0fcf0111, + 0x0fd00111, 0x0fd10111, 0x0fd20111, 0x0fd30111, 0x0fd40111, 0x0fd50111, 0x0fd60111, 0x0fd70111, + 0x0fd80111, 0x0fd90111, 0x0fda0111, 0x0fdb0111, 0x0fdc0111, 0x0fdd0111, 0x0fde0111, 0xffffffff, + 0x0fdf0111, 0xffffffff, 0x0fe00111, 0x0fe10111, 0x0fe20111, 0x0fe30111, 0xffffffff, 0xffffffff, + 0x0fe40111, 0x0fe50111, 0x0fe60111, 0x0fe70111, 0x0fe80111, 0x0fe90111, 0x0fea0111, 0xffffffff, + 0x0feb0111, 0xffffffff, 0x0fec0111, 0x0fed0111, 0x0fee0111, 0x0fef0111, 0xffffffff, 0xffffffff, + 0x0ff00111, 0x0ff10111, 0x0ff20111, 0x0ff30111, 0x0ff40111, 0x0ff50111, 0x0ff60111, 0x0ff70111, + 0x0ff80111, 0x0ff90111, 0x0ffa0111, 0x0ffb0111, 0x0ffc0111, 0x0ffd0111, 0x0ffe0111, 0x0fff0111, + 0x10000111, 0x10010111, 0x10020111, 0x10030111, 0x10040111, 0x10050111, 0x10060111, 0x10070111, + 0x10080111, 0x10090111, 0x100a0111, 0x100b0111, 0x100c0111, 0x100d0111, 0x100e0111, 0x100f0111, + 0x10100111, 0x10110111, 0x10120111, 0x10130111, 0x10140111, 0x10150111, 0x10160111, 0xffffffff, + 0x10170111, 0xffffffff, 0x10180111, 0x10190111, 0x101a0111, 0x101b0111, 0xffffffff, 0xffffffff, + 0x101c0111, 0x101d0111, 0x101e0111, 0x101f0111, 0x10200111, 0x10210111, 0x10220111, 0x10230111, + 0x10240111, 0x10250111, 0x10260111, 0x10270111, 0x10280111, 0x10290111, 0x102a0111, 0x102b0111, + 0x102c0111, 0x102d0111, 0x102e0111, 0x102f0111, 0x10300111, 0x10310111, 0x10320111, 0x10330111, + 0x10340111, 0x10350111, 0x10360111, 0x10370111, 0x10380111, 0x10390111, 0x103a0111, 0xffffffff, + 0x103b0111, 0xffffffff, 0x103c0111, 0x103d0111, 0x103e0111, 0x103f0111, 0xffffffff, 0xffffffff, + 0x10400111, 0x10410111, 0x10420111, 0x10430111, 0x10440111, 0x10450111, 0x10460111, 0xffffffff, + 0x10470111, 0xffffffff, 0x10480111, 0x10490111, 0x104a0111, 0x104b0111, 0xffffffff, 0xffffffff, + 0x104c0111, 0x104d0111, 0x104e0111, 0x104f0111, 0x10500111, 0x10510111, 0x10520111, 0xffffffff, + 0x10530111, 0x10540111, 0x10550111, 0x10560111, 0x10570111, 0x10580111, 0x10590111, 0xffffffff, + 0x105a0111, 0x105b0111, 0x105c0111, 0x105d0111, 0x105e0111, 0x105f0111, 0x10600111, 0x10610111, + 0x10620111, 0x10630111, 0x10640111, 0x10650111, 0x10660111, 0x10670111, 0x10680111, 0x10690111, + 0x106a0111, 0x106b0111, 0x106c0111, 0x106d0111, 0x106e0111, 0x106f0111, 0x10700111, 0xffffffff, + 0x10710111, 0x10720111, 0x10730111, 0x10740111, 0x10750111, 0x10760111, 0x10770111, 0x10780111, + 0x10790111, 0x107a0111, 0x107b0111, 0x107c0111, 0x107d0111, 0x107e0111, 0x107f0111, 0x10800111, + /* 0x1300 .. 0x13ff */ + 0x10810111, 0x10820111, 0x10830111, 0x10840111, 0x10850111, 0x10860111, 0x10870111, 0x10880111, + 0x10890111, 0x108a0111, 0x108b0111, 0x108c0111, 0x108d0111, 0x108e0111, 0x108f0111, 0xffffffff, + 0x10900111, 0xffffffff, 0x10910111, 0x10920111, 0x10930111, 0x10940111, 0xffffffff, 0xffffffff, + 0x10950111, 0x10960111, 0x10970111, 0x10980111, 0x10990111, 0x109a0111, 0x109b0111, 0xffffffff, + 0x109c0111, 0x109d0111, 0x109e0111, 0x109f0111, 0x10a00111, 0x10a10111, 0x10a20111, 0x10a30111, + 0x10a40111, 0x10a50111, 0x10a60111, 0x10a70111, 0x10a80111, 0x10a90111, 0x10aa0111, 0x10ab0111, + 0x10ac0111, 0x10ad0111, 0x10ae0111, 0x10af0111, 0x10b00111, 0x10b10111, 0x10b20111, 0x10b30111, + 0x10b40111, 0x10b50111, 0x10b60111, 0x10b70111, 0x10b80111, 0x10b90111, 0x10ba0111, 0x10bb0111, + 0x10bc0111, 0x10bd0111, 0x10be0111, 0x10bf0111, 0x10c00111, 0x10c10111, 0x10c20111, 0xffffffff, + 0x10c30111, 0x10c40111, 0x10c50111, 0x10c60111, 0x10c70111, 0x10c80111, 0x10c90111, 0x10ca0111, + 0x10cb0111, 0x10cc0111, 0x10cd0111, 0x10ce0111, 0x10cf0111, 0x10d00111, 0x10d10111, 0x10d20111, + 0x10d30111, 0x10d40111, 0x10d50111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x023f0111, 0x025a0111, 0x02400111, 0x02410111, 0x02420111, 0x02430111, 0x02530111, + 0x02680111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x09c60111, 0x09c70111, 0x09c80111, 0x09c90111, 0x09ca0111, 0x09cb0111, + 0x09cc0111, 0x09cd0111, 0x09ce0111, 0x09cf0111, 0x09d00111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x15280111, 0x15290111, 0x152a0111, 0x152b0111, 0x152c0111, 0x152d0111, 0x152e0111, 0x152f0111, + 0x15300111, 0x15310111, 0x15320111, 0x15330111, 0x15340111, 0x15350111, 0x15360111, 0x15370111, + 0x15380111, 0x15390111, 0x153a0111, 0x153b0111, 0x153c0111, 0x153d0111, 0x153e0111, 0x153f0111, + 0x15400111, 0x15410111, 0x15420111, 0x15430111, 0x15440111, 0x15450111, 0x15460111, 0x15470111, + 0x15480111, 0x15490111, 0x154a0111, 0x154b0111, 0x154c0111, 0x154d0111, 0x154e0111, 0x154f0111, + 0x15500111, 0x15510111, 0x15520111, 0x15530111, 0x15540111, 0x15550111, 0x15560111, 0x15570111, + 0x15580111, 0x15590111, 0x155a0111, 0x155b0111, 0x155c0111, 0x155d0111, 0x155e0111, 0x155f0111, + 0x15600111, 0x15610111, 0x15620111, 0x15630111, 0x15640111, 0x15650111, 0x15660111, 0x15670111, + 0x15680111, 0x15690111, 0x156a0111, 0x156b0111, 0x156c0111, 0x156d0111, 0x156e0111, 0x156f0111, + 0x15700111, 0x15710111, 0x15720111, 0x15730111, 0x15740111, 0x15750111, 0x15760111, 0x15770111, + 0x15780111, 0x15790111, 0x157a0111, 0x157b0111, 0x157c0111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1400 .. 0x14ff */ + 0xffffffff, 0x157d0111, 0x157e0111, 0x157f0111, 0x15800111, 0x15810111, 0x15820111, 0x15830111, + 0x15840111, 0x15850111, 0x15860111, 0x15870111, 0x15880111, 0x15890111, 0x158a0111, 0x158b0111, + 0x158c0111, 0x158d0111, 0x158e0111, 0x158f0111, 0x15900111, 0x15910111, 0x15920111, 0x15930111, + 0x15940111, 0x15950111, 0x15960111, 0x15970111, 0x15980111, 0x15990111, 0x159a0111, 0x159b0111, + 0x159c0111, 0x159d0111, 0x159e0111, 0x159f0111, 0x15a00111, 0x15a10111, 0x15a20111, 0x15a30111, + 0x15a40111, 0x15a50111, 0x15a60111, 0x15a70111, 0x15a80111, 0x15a90111, 0x15aa0111, 0x15ab0111, + 0x15ac0111, 0x15ad0111, 0x15ae0111, 0x15af0111, 0x15b00111, 0x15b10111, 0x15b20111, 0x15b30111, + 0x15b40111, 0x15b50111, 0x15b60111, 0x15b70111, 0x15b80111, 0x15b90111, 0x15ba0111, 0x15bb0111, + 0x15bc0111, 0x15bd0111, 0x15be0111, 0x15bf0111, 0x15c00111, 0x15c10111, 0x15c20111, 0x15c30111, + 0x15c40111, 0x15c50111, 0x15c60111, 0x15c70111, 0x15c80111, 0x15c90111, 0x15ca0111, 0x15cb0111, + 0x15cc0111, 0x15cd0111, 0x15ce0111, 0x15cf0111, 0x15d00111, 0x15d10111, 0x15d20111, 0x15d30111, + 0x15d40111, 0x15d50111, 0x15d60111, 0x15d70111, 0x15d80111, 0x15d90111, 0x15da0111, 0x15db0111, + 0x15dc0111, 0x15dd0111, 0x15de0111, 0x15df0111, 0x15e00111, 0x15e10111, 0x15e20111, 0x15e30111, + 0x15e40111, 0x15e50111, 0x15e60111, 0x15e70111, 0x15e80111, 0x15e90111, 0x15ea0111, 0x15eb0111, + 0x15ec0111, 0x15ed0111, 0x15ee0111, 0x15ef0111, 0x15f00111, 0x15f10111, 0x15f20111, 0x15f30111, + 0x15f40111, 0x15f50111, 0x15f60111, 0x15f70111, 0x15f80111, 0x15f90111, 0x15fa0111, 0x15fb0111, + 0x15fc0111, 0x15fd0111, 0x15fe0111, 0x15ff0111, 0x16000111, 0x16010111, 0x16020111, 0x16030111, + 0x16040111, 0x16050111, 0x16060111, 0x16070111, 0x16080111, 0x16090111, 0x160a0111, 0x160b0111, + 0x160c0111, 0x160d0111, 0x160e0111, 0x160f0111, 0x16100111, 0x16110111, 0x16120111, 0x16130111, + 0x16140111, 0x16150111, 0x16160111, 0x16170111, 0x16180111, 0x16190111, 0x161a0111, 0x161b0111, + 0x161c0111, 0x161d0111, 0x161e0111, 0x161f0111, 0x16200111, 0x16210111, 0x16220111, 0x16230111, + 0x16240111, 0x16250111, 0x16260111, 0x16270111, 0x16280111, 0x16290111, 0x162a0111, 0x162b0111, + 0x162c0111, 0x162d0111, 0x162e0111, 0x162f0111, 0x16300111, 0x16310111, 0x16320111, 0x16330111, + 0x16340111, 0x16350111, 0x16360111, 0x16370111, 0x16380111, 0x16390111, 0x163a0111, 0x163b0111, + 0x163c0111, 0x163d0111, 0x163e0111, 0x163f0111, 0x16400111, 0x16410111, 0x16420111, 0x16430111, + 0x16440111, 0x16450111, 0x16460111, 0x16470111, 0x16480111, 0x16490111, 0x164a0111, 0x164b0111, + 0x164c0111, 0x164d0111, 0x164e0111, 0x164f0111, 0x16500111, 0x16510111, 0x16520111, 0x16530111, + 0x16540111, 0x16550111, 0x16560111, 0x16570111, 0x16580111, 0x16590111, 0x165a0111, 0x165b0111, + 0x165c0111, 0x165d0111, 0x165e0111, 0x165f0111, 0x16600111, 0x16610111, 0x16620111, 0x16630111, + 0x16640111, 0x16650111, 0x16660111, 0x16670111, 0x16680111, 0x16690111, 0x166a0111, 0x166b0111, + 0x166c0111, 0x166d0111, 0x166e0111, 0x166f0111, 0x16700111, 0x16710111, 0x16720111, 0x16730111, + 0x16740111, 0x16750111, 0x16760111, 0x16770111, 0x16780111, 0x16790111, 0x167a0111, 0x167b0111, + /* 0x1500 .. 0x15ff */ + 0x167c0111, 0x167d0111, 0x167e0111, 0x167f0111, 0x16800111, 0x16810111, 0x16820111, 0x16830111, + 0x16840111, 0x16850111, 0x16860111, 0x16870111, 0x16880111, 0x16890111, 0x168a0111, 0x168b0111, + 0x168c0111, 0x168d0111, 0x168e0111, 0x168f0111, 0x16900111, 0x16910111, 0x16920111, 0x16930111, + 0x16940111, 0x16950111, 0x16960111, 0x16970111, 0x16980111, 0x16990111, 0x169a0111, 0x169b0111, + 0x169c0111, 0x169d0111, 0x169e0111, 0x169f0111, 0x16a00111, 0x16a10111, 0x16a20111, 0x16a30111, + 0x16a40111, 0x16a50111, 0x16a60111, 0x16a70111, 0x16a80111, 0x16a90111, 0x16aa0111, 0x16ab0111, + 0x16ac0111, 0x16ad0111, 0x16ae0111, 0x16af0111, 0x16b00111, 0x16b10111, 0x16b20111, 0x16b30111, + 0x16b40111, 0x16b50111, 0x16b60111, 0x16b70111, 0x16b80111, 0x16b90111, 0x16ba0111, 0x16bb0111, + 0x16bc0111, 0x16bd0111, 0x16be0111, 0x16bf0111, 0x16c00111, 0x16c10111, 0x16c20111, 0x16c30111, + 0x16c40111, 0x16c50111, 0x16c60111, 0x16c70111, 0x16c80111, 0x16c90111, 0x16ca0111, 0x16cb0111, + 0x16cc0111, 0x16cd0111, 0x16ce0111, 0x16cf0111, 0x16d00111, 0x16d10111, 0x16d20111, 0x16d30111, + 0x16d40111, 0x16d50111, 0x16d60111, 0x16d70111, 0x16d80111, 0x16d90111, 0x16da0111, 0x16db0111, + 0x16dc0111, 0x16dd0111, 0x16de0111, 0x16df0111, 0x16e00111, 0x16e10111, 0x16e20111, 0x16e30111, + 0x16e40111, 0x16e50111, 0x16e60111, 0x16e70111, 0x16e80111, 0x16e90111, 0x16ea0111, 0x16eb0111, + 0x16ec0111, 0x16ed0111, 0x16ee0111, 0x16ef0111, 0x16f00111, 0x16f10111, 0x16f20111, 0x16f30111, + 0x16f40111, 0x16f50111, 0x16f60111, 0x16f70111, 0x172a0111, 0x16f80111, 0x16fa0111, 0x16fb0111, + 0x16fc0111, 0x16fd0111, 0x16fe0111, 0x16ff0111, 0x17000111, 0x17010111, 0x17020111, 0x17030111, + 0x17040111, 0x17050111, 0x17060111, 0x17070111, 0x17080111, 0x17090111, 0x170b0111, 0x170c0111, + 0x170d0111, 0x170e0111, 0x170f0111, 0x17100111, 0x17110111, 0x17120111, 0x17190111, 0x171a0111, + 0x171b0111, 0x171c0111, 0x171d0111, 0x171e0111, 0x171f0111, 0x17200111, 0x17210111, 0x17220111, + 0x17230111, 0x17240111, 0x17250111, 0x17260111, 0x17270111, 0x17280111, 0x17290111, 0x172b0111, + 0x172c0111, 0x172d0111, 0x172e0111, 0x172f0111, 0x17300111, 0x17310111, 0x17320111, 0x17330111, + 0x17340111, 0x17350111, 0x17360111, 0x17370111, 0x17380111, 0x17390111, 0x173a0111, 0x173b0111, + 0x173c0111, 0x173d0111, 0x173e0111, 0x173f0111, 0x17400111, 0x17410111, 0x17420111, 0x17430111, + 0x17440111, 0x17450111, 0x17460111, 0x17470111, 0x17480111, 0x17490111, 0x174a0111, 0x174b0111, + 0x174c0111, 0x174d0111, 0x174e0111, 0x174f0111, 0x17500111, 0x17510111, 0x17520111, 0x17530111, + 0x17540111, 0x17550111, 0x17560111, 0x17570111, 0x17580111, 0x17590111, 0x175a0111, 0x175b0111, + 0x175c0111, 0x175d0111, 0x175e0111, 0x175f0111, 0x17600111, 0x17610111, 0x17620111, 0x17630111, + 0x17640111, 0x17650111, 0x17660111, 0x17670111, 0x17680111, 0x17690111, 0x176a0111, 0x176b0111, + 0x176c0111, 0x176d0111, 0x176e0111, 0x176f0111, 0x17700111, 0x17710111, 0x17720111, 0x17730111, + 0x17740111, 0x17750111, 0x17760111, 0x17770111, 0x17780111, 0x17790111, 0x177a0111, 0x177b0111, + 0x177c0111, 0x177d0111, 0x177e0111, 0x177f0111, 0x17800111, 0x17810111, 0x17820111, 0x17830111, + /* 0x1600 .. 0x16ff */ + 0x17840111, 0x17850111, 0x17860111, 0x17870111, 0x17880111, 0x17890111, 0x178a0111, 0x178b0111, + 0x178c0111, 0x178d0111, 0x178e0111, 0x178f0111, 0x17900111, 0x17910111, 0x17920111, 0x17930111, + 0x17940111, 0x17950111, 0x17960111, 0x17970111, 0x17980111, 0x17990111, 0x179a0111, 0x179b0111, + 0x179c0111, 0x179d0111, 0x179e0111, 0x179f0111, 0x17a00111, 0x17a10111, 0x17a20111, 0x17a30111, + 0x17a40111, 0x17a50111, 0x17a60111, 0x17a70111, 0x17a80111, 0x17a90111, 0x17aa0111, 0x17ab0111, + 0x17ac0111, 0x17ad0111, 0x17ae0111, 0x17af0111, 0x17b00111, 0x17b10111, 0x17b20111, 0x17b30111, + 0x17b40111, 0x17b50111, 0x17b60111, 0x17b70111, 0x17b80111, 0x17b90111, 0x17ba0111, 0x17bb0111, + 0x17bc0111, 0x17bd0111, 0x17be0111, 0x17bf0111, 0x17c00111, 0x17c10111, 0x17c20111, 0x17c30111, + 0x17c40111, 0x17c50111, 0x17c60111, 0x17c70111, 0x17c80111, 0x17c90111, 0x17ca0111, 0x17cb0111, + 0x17cc0111, 0x17cd0111, 0x17ce0111, 0x17cf0111, 0x17d00111, 0x17d10111, 0x17d20111, 0x17d30111, + 0x17d40111, 0x17d50111, 0x17d60111, 0x17d70111, 0x17d80111, 0x17d90111, 0x17da0111, 0x17db0111, + 0x17dc0111, 0x17dd0111, 0x17de0111, 0x17df0111, 0x17e00111, 0x17e10111, 0x17e20111, 0x17e30111, + 0x17e40111, 0x17e50111, 0x17e60111, 0x17e70111, 0x17e80111, 0x17e90111, 0x17ea0111, 0x17eb0111, + 0x17ec0111, 0x17ed0111, 0x17ee0111, 0x17ef0111, 0x17f00111, 0x03310111, 0x025d0111, 0x16f90111, + 0x170a0111, 0x17130111, 0x17140111, 0x17150111, 0x17160111, 0x17170111, 0x17180111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x020a0111, 0x17f10111, 0x17f20111, 0x17f30111, 0x17f40111, 0x17f50111, 0x17f60111, 0x17f70111, + 0x17f80111, 0x17f90111, 0x17fa0111, 0x17fb0111, 0x17fc0111, 0x17fd0111, 0x17fe0111, 0x17ff0111, + 0x18000111, 0x18010111, 0x18020111, 0x18030111, 0x18040111, 0x18050111, 0x18060111, 0x18070111, + 0x18080111, 0x18090111, 0x180a0111, 0x02840111, 0x02850111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x180b0111, 0x180b0121, 0x180c0111, 0x18280111, 0x180c0121, 0x180c0121, 0x180d0111, 0x180d0121, + 0x180e0111, 0x180e0121, 0x18260111, 0x18270111, 0x180e0121, 0x180e0121, 0x180e0121, 0x180f0111, + 0x18100111, 0x18110111, 0x18120111, 0x18120121, 0x18120121, 0x18120121, 0x18120121, 0x18130111, + 0x182b0111, 0x18140111, 0x18150111, 0x18150121, 0x18150121, 0x18150121, 0x18160111, 0x18160121, + 0x18160121, 0x18170111, 0x18170121, 0x18180111, 0x18180121, 0x18190111, 0x18190121, 0x181a0111, + 0x181b0111, 0x181c0111, 0x181d0111, 0x181d0121, 0x181d0121, 0x181d0121, 0x181d0121, 0x181e0111, + 0x181e0121, 0x181e0121, 0x181f0111, 0x181f0121, 0x181f0121, 0x181b0121, 0x18200111, 0x18210111, + 0x18210121, 0x18210121, 0x18220111, 0x18220121, 0x18230111, 0x18230121, 0x18240111, 0x18250111, + 0x18290111, 0x182d0111, 0x182e0111, 0x182a0111, 0x182c0111, 0x182f0111, 0x18300111, 0x18300121, + 0x18300121, 0x18140121, 0x181d0121, 0x02480111, 0x02490111, 0x024a0111, 0x18190121, 0x18210121, + 0x180d0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1700 .. 0x17ff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x145f0111, 0x14600111, 0x14610111, 0x14620111, 0x14630111, 0x14640111, 0x14650111, 0x14660111, + 0x14670111, 0x14680111, 0x14690111, 0x146a0111, 0x146b0111, 0x146c0111, 0x146d0111, 0x146e0111, + 0x146f0111, 0x14700111, 0x14710111, 0x14720111, 0x14730111, 0x14740111, 0x14750111, 0x14760111, + 0x14770111, 0x14780111, 0x14790111, 0x147a0111, 0x147b0111, 0x147c0111, 0x147d0111, 0x147e0111, + 0x147f0111, 0x14800111, 0x14810111, 0x14820111, 0x14830111, 0x14840111, 0x14850111, 0x14860111, + 0x14870111, 0x14880111, 0x14890111, 0x148a0111, 0x148b0111, 0x148c0111, 0x148d0111, 0x148e0111, + 0x148f0111, 0x14900111, 0x14910111, 0x14920111, 0x14930111, 0x14940111, 0x14950111, 0x14960111, + 0x14970111, 0x14980111, 0x14990111, 0x149a0111, 0x149b0111, 0x149c0111, 0x149d0111, 0x149e0111, + 0x149f0111, 0x14a00111, 0x14a10111, 0x14a20111, 0x14a30111, 0x14a40111, 0x0000cf11, 0x0000d011, + 0x0000d111, 0x0000d211, 0x0000d311, 0x0000d411, 0x0000d511, 0x0000d611, 0x0000d711, 0x0000d811, + 0x0000d911, 0x0000da11, 0x14a50111, 0x0000db11, 0x02640111, 0x02650111, 0x02470111, 0x02e40111, + 0x02e50111, 0x02e60111, 0x02e70111, 0x09e60111, 0x02e80111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1800 .. 0x18ff */ + 0x02cb0111, 0x02560111, 0x02320111, 0x025b0111, 0x02440111, 0x02450111, 0x02230111, 0x02240111, + 0x02330111, 0x025c0111, 0x02cc0111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, + 0x0a0b0111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x14ae0111, 0x14b00111, 0x14b30111, 0x14b90111, 0x14bb0111, 0x14be0111, 0x14c00111, 0x14c30111, + 0x14c40111, 0x14c50111, 0x14ca0111, 0x14cc0111, 0x14cf0111, 0x14d10111, 0x14d60111, 0x14d80111, + 0x14d90111, 0x14da0111, 0x14e10111, 0x14e40111, 0x14e70111, 0x14ec0111, 0x14f00111, 0x14f30111, + 0x14f50111, 0x14f70111, 0x14fa0111, 0x14ff0111, 0x15000111, 0x15030111, 0x15070111, 0x150a0111, + 0x150b0111, 0x150c0111, 0x150d0111, 0x14ad0111, 0x14b10111, 0x14b40111, 0x14ba0111, 0x14bc0111, + 0x14bf0111, 0x14c10111, 0x14c60111, 0x14cb0111, 0x14cd0111, 0x14d00111, 0x14d20111, 0x14d70111, + 0x14e20111, 0x14e50111, 0x14e80111, 0x14ed0111, 0x15010111, 0x14f10111, 0x14f60111, 0x14fb0111, + 0x15050111, 0x15080111, 0x150e0111, 0x150f0111, 0x14ea0111, 0x14b20111, 0x14b50111, 0x14b80111, + 0x14c20111, 0x14bd0111, 0x14c70111, 0x14fc0111, 0x14d30111, 0x14d50111, 0x14ce0111, 0x14db0111, + 0x14e30111, 0x14e60111, 0x14ee0111, 0x14f80111, 0x15060111, 0x15090111, 0x15020111, 0x15040111, + 0x15100111, 0x14e90111, 0x14f20111, 0x14b60111, 0x14fd0111, 0x14f40111, 0x14f90111, 0x14ef0111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x14a60111, 0x14a70111, 0x14a80111, 0x14a90111, 0x14aa0111, 0x14ab0111, 0x14ac0111, 0x14af0111, + 0x14b70111, 0x14fe0111, 0x14c80111, 0x14eb0111, 0x15110111, 0x15130111, 0x15140111, 0x15160111, + 0x15170111, 0x151a0111, 0x151c0111, 0x151d0111, 0x151f0111, 0x15210111, 0x15230111, 0x15240111, + 0x15180111, 0x15220111, 0x14d40111, 0x14c90111, 0x14dc0111, 0x14dd0111, 0x15120111, 0x15150111, + 0x15190111, 0x151b0111, 0x14de0111, 0x15200111, 0x14df0111, 0x14e00111, 0x15250111, 0x15260111, + 0x151e0111, 0x15270111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1e00 .. 0x1eff */ + 0x0a150151, 0x0a150111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, 0x0a290141, 0x0a290111, + 0x0a3d0151, 0x0a3d0111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, + 0x0a490151, 0x0a490111, 0x0a490151, 0x0a490111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, + 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a910151, 0x0a910111, + 0x0a990151, 0x0a990111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, + 0x0ab90151, 0x0ab90111, 0x0ab90151, 0x0ab90111, 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, + 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0af70141, 0x0af70111, 0x0b030161, 0x0b030111, + 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b030161, 0x0b030111, 0x0b2b0151, 0x0b2b0111, + 0x0b2b0151, 0x0b2b0111, 0x0b2b0151, 0x0b2b0111, 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, + 0x0b330151, 0x0b330111, 0x0b330151, 0x0b330111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b670141, 0x0b670111, 0x0b670141, 0x0b670111, + 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, 0x0b7f0141, 0x0b7f0111, + 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, 0x0ba70151, 0x0ba70111, + 0x0ba70151, 0x0ba70111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, 0x0bbf0151, 0x0bbf0111, + 0x0bbf0151, 0x0bbf0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, + 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bef0151, 0x0bef0111, 0x0bef0151, 0x0bef0111, + 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, 0x0bfb0141, 0x0bfb0111, + 0x0bfb0141, 0x0bfb0111, 0x0c030151, 0x0c030111, 0x0c030151, 0x0c030111, 0x0c070141, 0x0c070111, + 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0c130141, 0x0c130111, 0x0ab90111, 0x0bbf0111, + 0x0bfb0111, 0x0c070111, 0x0a150131, 0x0ba70131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, + 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, + 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, 0x0a150151, 0x0a150111, + 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, + 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, 0x0a650151, 0x0a650111, + 0x0ad30161, 0x0ad30111, 0x0ad30161, 0x0ad30111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, + 0x0b4b0161, 0x0b4b0111, 0x0b4b0161, 0x0b4b0111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, + 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, 0x0bd70141, 0x0bd70111, + 0x0bd70141, 0x0bd70111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, 0x0c070141, 0x0c070111, + 0x0c070141, 0x0c070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x1f00 .. 0x1fff */ + 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, + 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, + 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0x0c950111, 0xffffffff, 0xffffffff, + 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0x0c950131, 0xffffffff, 0xffffffff, + 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, + 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, + 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, + 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, + 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0x0ca20111, 0xffffffff, 0xffffffff, + 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0x0ca20121, 0xffffffff, 0xffffffff, + 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, + 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, 0xffffffff, 0x0ca80121, + 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, + 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, + 0x0c910111, 0x0c910111, 0x0c950111, 0x0c950111, 0x0c990111, 0x0c990111, 0x0c9b0111, 0x0c9b0111, + 0x0ca20111, 0x0ca20111, 0x0ca80111, 0x0ca80111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0xffffffff, + 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, + 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, + 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, 0x0c990111, + 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, 0x0c990121, + 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0x0cac0111, + 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x0cac0121, + 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0x0c910111, 0xffffffff, 0x0c910111, 0x0c910111, + 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x0c910121, 0x02170111, 0x0c9b0111, 0x02170111, + 0x021d0111, 0x02140111, 0x0c990111, 0x0c990111, 0x0c990111, 0xffffffff, 0x0c990111, 0x0c990111, + 0x0c950131, 0x0c950131, 0x0c990121, 0x0c990121, 0x0c990121, 0x02170111, 0x02170111, 0x02170111, + 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0x0c9b0111, 0xffffffff, 0xffffffff, 0x0c9b0111, 0x0c9b0111, + 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0x0c9b0121, 0xffffffff, 0x02180111, 0x02180111, 0x02180111, + 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca80111, 0x0ca50111, 0x0ca50111, 0x0ca80111, 0x0ca80111, + 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca80121, 0x0ca50131, 0x02140111, 0x02140111, 0x020c0111, + 0xffffffff, 0xffffffff, 0x0cac0111, 0x0cac0111, 0x0cac0111, 0xffffffff, 0x0cac0111, 0x0cac0111, + 0x0ca20121, 0x0ca20121, 0x0cac0121, 0x0cac0121, 0x0cac0121, 0x020d0111, 0x02180111, 0xffffffff, + /* 0x2000 .. 0x20ff */ + 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090131, 0x02090141, + 0x02090131, 0x02090131, 0x02090131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x02250111, 0x02250121, 0x02260111, 0x02270111, 0x02280111, 0x02290111, 0x03a90111, 0x021c0111, + 0x026a0111, 0x026b0111, 0x026c0111, 0x026d0111, 0x02710111, 0x02720111, 0x02730111, 0x02740111, + 0x02ae0111, 0x02af0111, 0x02b00111, 0x02b10111, 0x02550131, 0x02550131, 0x02550131, 0x02b20111, + 0x02070111, 0x02080111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02090141, + 0x02ac0111, 0x02ad0111, 0x02b60111, 0x02b60121, 0x02b60121, 0x02b70111, 0x02b70121, 0x02b70121, + 0x02b90111, 0x026e0111, 0x026f0111, 0x02ba0111, 0x024b0131, 0x02540111, 0x02110111, 0x02bb0111, + 0x02bc0111, 0x02bd0111, 0x02be0111, 0x02b30111, 0x02a50111, 0x02860111, 0x02870111, 0xffffffff, + 0x024e0131, 0x024b0131, 0x02a80111, 0x029e0111, 0x02b40111, 0x02b50111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x0a0b0151, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0f0151, 0x0a100151, 0x0a110151, 0x0a120151, + 0x0a130151, 0x0a140151, 0x039f0151, 0x03ab0121, 0x03a40141, 0x027a0151, 0x027b0141, 0x0b3301a1, + 0x0a0b0161, 0x0a0c0161, 0x0a0d0161, 0x0a0e0161, 0x0a0f0161, 0x0a100161, 0x0a110161, 0x0a120161, + 0x0a130161, 0x0a140161, 0x039f0161, 0x03ab0131, 0x03a40151, 0x027a0161, 0x027b0151, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x09e70111, 0x09e80111, 0x09e90111, 0x09ea0111, 0x09eb0111, 0x09ec0111, 0x09ed0111, 0x09ee0111, + 0x0b7f0161, 0x09ef0111, 0x09f00111, 0x09f10111, 0x09f20111, 0x09f30111, 0x09f40111, 0x09f50111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0000e411, 0x0000e511, 0x0000e611, 0x0000e711, 0x0000e811, 0x0000e911, 0x0000ea11, 0x0000eb11, + 0x0000ec11, 0x0000ed11, 0x0000ee11, 0x0000ef11, 0x0000f011, 0x0000f111, 0x0000f211, 0x0000f311, + 0x0000f411, 0x0000f511, 0x0000f611, 0x0000f711, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2100 .. 0x21ff */ + 0x0a150131, 0x0a150131, 0x0a3d0181, 0x030a0121, 0x09f60111, 0x0a3d0131, 0x0a3d0131, 0x0a710131, + 0x09f70111, 0x030a0121, 0x0a990131, 0x0ab90171, 0x0ab90171, 0x0ab90171, 0x0ab90131, 0x0ac50121, + 0x0ad30191, 0x0ad30191, 0x0b030191, 0x0b030141, 0x09f80111, 0x0b330181, 0x0b330171, 0x09f90111, + 0x09fa0111, 0x0b670161, 0x0b730161, 0x0b7f0171, 0x0b7f0171, 0x0b7f0171, 0x09fb0111, 0x09fc0111, + 0x0ba70181, 0x0bbf0171, 0x0bbf0191, 0x09fd0111, 0x0c130161, 0x09fe0111, 0x0cac0121, 0x09ff0111, + 0x0c130161, 0x0a000111, 0x0af70141, 0x0a150151, 0x0a290161, 0x0a3d0181, 0x0a010111, 0x0a650131, + 0x0a650171, 0x0a910171, 0x0a020111, 0x0b2b0181, 0x0b4b0141, 0x0eb70121, 0x0eb80121, 0x0eb90121, + 0x0eba0121, 0x0ad30141, 0x0a030111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0171, 0x0a0d0171, 0x0a0c0171, 0x0a0d0171, 0x0a0e0171, + 0x0a0f0171, 0x0a0c0171, 0x0a100171, 0x0a0c0171, 0x0a0e0171, 0x0a100171, 0x0a120171, 0x0a0c0171, + 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0ad30181, 0x0bef0171, 0x0bef0171, 0x0bef0171, 0x0bef0171, + 0x0ad30181, 0x0c030171, 0x0c030171, 0x0c030171, 0x0b030181, 0x0a3d0171, 0x0a490171, 0x0b2b0171, + 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0ad30131, 0x0bef0131, 0x0bef0131, 0x0bef0131, 0x0bef0131, + 0x0ad30131, 0x0c030131, 0x0c030131, 0x0c030131, 0x0b030131, 0x0a3d0131, 0x0a490131, 0x0b2b0131, + 0x0a040111, 0x0a050111, 0x0a060111, 0x0a070111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x03320111, 0x03340111, 0x03330111, 0x03350111, 0x03360111, 0x03370111, 0x03380111, 0x03390111, + 0x033a0111, 0x033b0111, 0x03320111, 0x03330111, 0x033c0111, 0x033d0111, 0x033e0111, 0x033f0111, + 0x03400111, 0x03410111, 0x03420111, 0x03430111, 0x03440111, 0x03450111, 0x03460111, 0x03470111, + 0x03480111, 0x03490111, 0x034a0111, 0x034b0111, 0x034c0111, 0x034d0111, 0x03360111, 0x034e0111, + 0x034f0111, 0x03500111, 0x03510111, 0x03520111, 0x03530111, 0x03540111, 0x03550111, 0x03560111, + 0x03570111, 0x03580111, 0x03590111, 0x035a0111, 0x035b0111, 0x035c0111, 0x035d0111, 0x035e0111, + 0x035f0111, 0x03600111, 0x03610111, 0x03620111, 0x03630111, 0x03640111, 0x03650111, 0x03660111, + 0x03670111, 0x03680111, 0x03690111, 0x036a0111, 0x036b0111, 0x036c0111, 0x03700111, 0x036e0111, + 0x036c0111, 0x036d0111, 0x036e0111, 0x036f0111, 0x03700111, 0x03710111, 0x03720111, 0x03730111, + 0x03740111, 0x03750111, 0x03760111, 0x03770111, 0x03780111, 0x03790111, 0x037a0111, 0x037b0111, + 0x037c0111, 0x037d0111, 0x037e0111, 0x037f0111, 0x03800111, 0x03810111, 0x03820111, 0x03830111, + 0x03840111, 0x03850111, 0x03860111, 0x03870111, 0x03880111, 0x03890111, 0x038a0111, 0x038b0111, + 0x038c0111, 0x038d0111, 0x038e0111, 0x038f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2200 .. 0x22ff */ + 0x03900111, 0x03910111, 0x03920111, 0x03930111, 0x03930111, 0x03940111, 0x03950111, 0x03960111, + 0x03970111, 0x03970111, 0x03980111, 0x03990111, 0x03990111, 0x039a0111, 0x039b0111, 0x039c0111, + 0x039d0111, 0x039e0111, 0x03ab0111, 0x03ac0111, 0x03ad0111, 0x03ae0111, 0x03af0111, 0x03b00111, + 0x03b10111, 0x03b20111, 0x03b30111, 0x03b40111, 0x03b50111, 0x03b60111, 0x03b70111, 0x03b80111, + 0x03b90111, 0x03ba0111, 0x03bb0111, 0x03bc0111, 0x03bc0111, 0x03bd0111, 0x03bd0111, 0x03be0111, + 0x03bf0111, 0x03c00111, 0x03c10111, 0x03c20111, 0x03c20121, 0x03c20121, 0x03c30111, 0x03c30121, + 0x03c30121, 0x03c40111, 0x03c50111, 0x03c60111, 0x03c70111, 0x03c80111, 0x03c90111, 0x03ca0111, + 0x03cb0111, 0x03cc0111, 0x03cd0111, 0x03ce0111, 0x03cf0111, 0x03d00111, 0x03d10111, 0x03d20111, + 0x03d30111, 0x03cf0111, 0x03d40111, 0x03d50111, 0x03d50111, 0x03d60111, 0x03d70111, 0x03d60111, + 0x03d80111, 0x03d80111, 0x03d90111, 0x03da0111, 0x03db0111, 0x03dc0111, 0x03dd0111, 0x03de0111, + 0x03df0111, 0x03e00111, 0x03e10111, 0x03e20111, 0x03e30111, 0x03e40111, 0x03e50111, 0x03e60111, + 0x03e70111, 0x03e80111, 0x03e90111, 0x03ea0111, 0x03eb0111, 0x03ec0111, 0x03ed0111, 0x03ee0111, + 0x03a40111, 0x03ef0111, 0x03ef0111, 0x03f00111, 0x03f10111, 0x03f20111, 0x03f30111, 0x03f40111, + 0x03f50111, 0x03f60111, 0x03f70111, 0x03f80111, 0x03f90111, 0x03dc0111, 0x03a30111, 0x03a50111, + 0x03f10111, 0x03f20111, 0x03fa0111, 0x03fb0111, 0x03fa0111, 0x03fb0111, 0x03fc0111, 0x03fd0111, + 0x03fc0111, 0x03fd0111, 0x03fe0111, 0x03ff0111, 0x04000111, 0x04010111, 0x04020111, 0x04030111, + 0x03fe0111, 0x03ff0111, 0x04040111, 0x04050111, 0x04040111, 0x04050111, 0x04060111, 0x04070111, + 0x04060111, 0x04070111, 0x04080111, 0x04090111, 0x040a0111, 0x040b0111, 0x040c0111, 0x040d0111, + 0x040e0111, 0x040f0111, 0x04100111, 0x04110111, 0x04120111, 0x04130111, 0x04140111, 0x04150111, + 0x04160111, 0x04170111, 0x04180111, 0x04190111, 0x041a0111, 0x041b0111, 0x041c0111, 0x041d0111, + 0x041e0111, 0x041f0111, 0x04200111, 0x04210111, 0x04220111, 0x04230111, 0x04240111, 0x04250111, + 0x04260111, 0x04270111, 0x04280111, 0x04290111, 0x04200111, 0x04260111, 0x04270111, 0x04290111, + 0x042a0111, 0x042b0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04300111, 0x04310111, + 0x04320111, 0x04330111, 0x04340111, 0x04350111, 0x04360111, 0x04370111, 0x04380111, 0x04390111, + 0x043a0111, 0x043b0111, 0x043c0111, 0x043d0111, 0x043e0111, 0x043f0111, 0x04400111, 0x04410111, + 0x04420111, 0x04430111, 0x04440111, 0x04450111, 0x04460111, 0x04470111, 0x04480111, 0x04490111, + 0x044a0111, 0x044b0111, 0x044c0111, 0x044d0111, 0x044e0111, 0x044f0111, 0x04500111, 0x04510111, + 0x04520111, 0x04530111, 0x04540111, 0x04550111, 0x04560111, 0x04570111, 0x04580111, 0x04590111, + 0x04000111, 0x04010111, 0x040f0111, 0x04100111, 0x045a0111, 0x045b0111, 0x045c0111, 0x045d0111, + 0x045e0111, 0x045f0111, 0x042c0111, 0x042d0111, 0x042e0111, 0x042f0111, 0x04600111, 0x04610111, + 0x04620111, 0x04630111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2300 .. 0x23ff */ + 0x04640111, 0x04650111, 0x04660111, 0x04670111, 0x04680111, 0x04690111, 0x046a0111, 0x046b0111, + 0x046c0111, 0x046d0111, 0x046e0111, 0x046f0111, 0x04700111, 0x04710111, 0x04720111, 0x04730111, + 0x04740111, 0x04750111, 0x04760111, 0x04770111, 0x04780111, 0x04790111, 0x047a0111, 0x047b0111, + 0x047c0111, 0x047d0111, 0x047e0111, 0x047f0111, 0x04800111, 0x04810111, 0x04820111, 0x04830111, + 0x04840111, 0x04850111, 0x04860111, 0x04870111, 0x04880111, 0x04890111, 0x048a0111, 0x048b0111, + 0x048c0111, 0x02880111, 0x02890111, 0x048d0111, 0x048e0111, 0x048f0111, 0x04900111, 0x04910111, + 0x04920111, 0x04930111, 0x04940111, 0x04950111, 0x04960111, 0x04970111, 0x04980111, 0x04990111, + 0x049a0111, 0x049b0111, 0x049c0111, 0x049d0111, 0x049e0111, 0x049f0111, 0x04a00111, 0x04a10111, + 0x04a20111, 0x04a30111, 0x04a40111, 0x04a50111, 0x04a60111, 0x04a70111, 0x04a80111, 0x04a90111, + 0x04aa0111, 0x04ab0111, 0x04ac0111, 0x04ad0111, 0x04ae0111, 0x04af0111, 0x04b00111, 0x04b10111, + 0x04b20111, 0x04b30111, 0x04b40111, 0x04b50111, 0x04b60111, 0x04b70111, 0x04b80111, 0x04b90111, + 0x04ba0111, 0x04bb0111, 0x04bc0111, 0x04bd0111, 0x04be0111, 0x04bf0111, 0x04c00111, 0x04c10111, + 0x04c20111, 0x04c30111, 0x04c40111, 0x04c50111, 0x04c60111, 0x04c70111, 0x04c80111, 0x04c90111, + 0x04ca0111, 0x04cb0111, 0x04cc0111, 0x04cd0111, 0x04ce0111, 0x04cf0111, 0x04d00111, 0x04d10111, + 0x04d20111, 0x04d30111, 0x04d40111, 0x04d50111, 0x04d60111, 0x04d70111, 0x04d80111, 0x04d90111, + 0x04da0111, 0x04db0111, 0x04dc0111, 0x04dd0111, 0xffffffff, 0x04de0111, 0x04df0111, 0x04e00111, + 0x04e10111, 0x04e20111, 0x04e30111, 0x04e40111, 0x04e50111, 0x04e60111, 0x04e70111, 0x04e80111, + 0x04e90111, 0x04ea0111, 0x04eb0111, 0x04ec0111, 0x04ed0111, 0x04ee0111, 0x04ef0111, 0x04f00111, + 0x04f10111, 0x04f20111, 0x04f30111, 0x04f40111, 0x04f50111, 0x04f60111, 0x04f70111, 0x04f80111, + 0x04f90111, 0x04fa0111, 0x04fb0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2400 .. 0x24ff */ + 0x04fc0111, 0x04fd0111, 0x04fe0111, 0x04ff0111, 0x05000111, 0x05010111, 0x05020111, 0x05030111, + 0x05040111, 0x05050111, 0x05060111, 0x05070111, 0x05080111, 0x05090111, 0x050a0111, 0x050b0111, + 0x050c0111, 0x050d0111, 0x050e0111, 0x050f0111, 0x05100111, 0x05110111, 0x05120111, 0x05130111, + 0x05140111, 0x05150111, 0x05160111, 0x05170111, 0x05180111, 0x05190111, 0x051a0111, 0x051b0111, + 0x051c0111, 0x051d0111, 0x051e0111, 0x051f0111, 0x05200111, 0x05210111, 0x05220111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x05230111, 0x05240111, 0x05250111, 0x05260111, 0x05270111, 0x05280111, 0x05290111, 0x052a0111, + 0x052b0111, 0x052c0111, 0x052d0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, + 0x0a140141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, + 0x0a0c0141, 0x0a0c0141, 0x0a0c0141, 0x0a0d0141, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, + 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, + 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x0a150171, 0x0a290171, + 0x0a3d0191, 0x0a490181, 0x0a650181, 0x0a910181, 0x0a990171, 0x0ab90181, 0x0ad301a1, 0x0ae70161, + 0x0af70161, 0x0b0301a1, 0x0b2b0191, 0x0b330191, 0x0b4b0191, 0x0b670171, 0x0b730171, 0x0b7f0181, + 0x0ba70171, 0x0bbf0181, 0x0bd70161, 0x0bef0181, 0x0bfb0161, 0x0c030181, 0x0c070161, 0x0c130171, + 0x0a150141, 0x0a290131, 0x0a3d0141, 0x0a490141, 0x0a650141, 0x0a910141, 0x0a990141, 0x0ab90141, + 0x0ad30151, 0x0ae70131, 0x0af70131, 0x0b030151, 0x0b2b0141, 0x0b330141, 0x0b4b0151, 0x0b670131, + 0x0b730131, 0x0b7f0131, 0x0ba70141, 0x0bbf0141, 0x0bd70131, 0x0bef0141, 0x0bfb0131, 0x0c030141, + 0x0c070131, 0x0c130131, 0x0a0b0141, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2500 .. 0x25ff */ + 0x052e0111, 0x052f0111, 0x05300111, 0x05310111, 0x05320111, 0x05330111, 0x05340111, 0x05350111, + 0x05360111, 0x05370111, 0x05380111, 0x05390111, 0x053a0111, 0x053b0111, 0x053c0111, 0x053d0111, + 0x053e0111, 0x053f0111, 0x05400111, 0x05410111, 0x05420111, 0x05430111, 0x05440111, 0x05450111, + 0x05460111, 0x05470111, 0x05480111, 0x05490111, 0x054a0111, 0x054b0111, 0x054c0111, 0x054d0111, + 0x054e0111, 0x054f0111, 0x05500111, 0x05510111, 0x05520111, 0x05530111, 0x05540111, 0x05550111, + 0x05560111, 0x05570111, 0x05580111, 0x05590111, 0x055a0111, 0x055b0111, 0x055c0111, 0x055d0111, + 0x055e0111, 0x055f0111, 0x05600111, 0x05610111, 0x05620111, 0x05630111, 0x05640111, 0x05650111, + 0x05660111, 0x05670111, 0x05680111, 0x05690111, 0x056a0111, 0x056b0111, 0x056c0111, 0x056d0111, + 0x056e0111, 0x056f0111, 0x05700111, 0x05710111, 0x05720111, 0x05730111, 0x05740111, 0x05750111, + 0x05760111, 0x05770111, 0x05780111, 0x05790111, 0x057a0111, 0x057b0111, 0x057c0111, 0x057d0111, + 0x057e0111, 0x057f0111, 0x05800111, 0x05810111, 0x05820111, 0x05830111, 0x05840111, 0x05850111, + 0x05860111, 0x05870111, 0x05880111, 0x05890111, 0x058a0111, 0x058b0111, 0x058c0111, 0x058d0111, + 0x058e0111, 0x058f0111, 0x05900111, 0x05910111, 0x05920111, 0x05930111, 0x05940111, 0x05950111, + 0x05960111, 0x05970111, 0x05980111, 0x05990111, 0x059a0111, 0x059b0111, 0x059c0111, 0x059d0111, + 0x059e0111, 0x059f0111, 0x05a00111, 0x05a10111, 0x05a20111, 0x05a30111, 0x05a40111, 0x05a50111, + 0x05a60111, 0x05a70111, 0x05a80111, 0x05a90111, 0x05aa0111, 0x05ab0111, 0x05ac0111, 0x05ad0111, + 0x05ae0111, 0x05af0111, 0x05b00111, 0x05b10111, 0x05b20111, 0x05b30111, 0x05b40111, 0x05b50111, + 0x05b60111, 0x05b70111, 0x05b80111, 0x05b90111, 0x05ba0111, 0x05bb0111, 0x05bc0111, 0x05bd0111, + 0x05be0111, 0x05bf0111, 0x05c00111, 0x05c10111, 0x05c20111, 0x05c30111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x05c40111, 0x05c50111, 0x05c60111, 0x05c70111, 0x05c80111, 0x05c90111, 0x05ca0111, 0x05cb0111, + 0x05cc0111, 0x05cd0111, 0x05ce0111, 0x05cf0111, 0x05d00111, 0x05d10111, 0x05d20111, 0x05d30111, + 0x05d40111, 0x05d50111, 0x05d60111, 0x05d70111, 0x05d80111, 0x05d90111, 0x05da0111, 0x05db0111, + 0x05dc0111, 0x05dd0111, 0x05de0111, 0x05df0111, 0x05e00111, 0x05e10111, 0x05e20111, 0x05e30111, + 0x05e40111, 0x05e50111, 0x05e60111, 0x05e70111, 0x05e80111, 0x05e90111, 0x05ea0111, 0x05eb0111, + 0x05ec0111, 0x05ed0111, 0x05ee0111, 0x05ef0111, 0x05f00111, 0x05f10111, 0x05f20111, 0x05f30111, + 0x05f40111, 0x05f50111, 0x05f60111, 0x05f70111, 0x05f80111, 0x05f90111, 0x05fa0111, 0x05fb0111, + 0x05fc0111, 0x05fd0111, 0x05fe0111, 0x05ff0111, 0x06000111, 0x06010111, 0x06020111, 0x06030111, + 0x06040111, 0x06050111, 0x06060111, 0x06070111, 0x06080111, 0x06090111, 0x060a0111, 0x060b0111, + 0x060c0111, 0x060d0111, 0x060e0111, 0x060f0111, 0x06100111, 0x06110111, 0x06120111, 0x06130111, + 0x06140111, 0x06150111, 0x06160111, 0x06170111, 0x06180111, 0x06190111, 0x061a0111, 0x061b0111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2600 .. 0x26ff */ + 0x061c0111, 0x061d0111, 0x061e0111, 0x061f0111, 0x06200111, 0x06210111, 0x06220111, 0x06230111, + 0x06240111, 0x06250111, 0x06260111, 0x06270111, 0x06280111, 0x06290111, 0x062a0111, 0x062b0111, + 0x062c0111, 0x062d0111, 0x062e0111, 0x062f0111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x06300111, 0x06310111, 0x06320111, 0x06330111, 0x06340111, 0x06350111, 0x06360111, + 0x06370111, 0x06380111, 0x06390111, 0x063a0111, 0x063b0111, 0x063c0111, 0x063d0111, 0x063e0111, + 0x063f0111, 0x06400111, 0x06410111, 0x06420111, 0x06430111, 0x06440111, 0x06450111, 0x06460111, + 0x06470111, 0x06480111, 0x06490111, 0x064a0111, 0x064b0111, 0x064c0111, 0x064d0111, 0x064e0111, + 0x064f0111, 0x06500111, 0x06510111, 0x06520111, 0x06530111, 0x06540111, 0x06550111, 0x06560111, + 0x06570111, 0x06580111, 0x06590111, 0x065a0111, 0x065b0111, 0x065c0111, 0x065d0111, 0x065e0111, + 0x065f0111, 0x06600111, 0x06610111, 0x06620111, 0x06630111, 0x06640111, 0x06650111, 0x06660111, + 0x06670111, 0x06680111, 0x06690111, 0x066a0111, 0x066b0111, 0x066c0111, 0x066d0111, 0x066e0111, + 0x066f0111, 0x06700111, 0x06710111, 0x06720111, 0x06730111, 0x06740111, 0x06750111, 0x06760111, + 0x06770111, 0x06780111, 0x06790111, 0x067a0111, 0x067b0111, 0x067c0111, 0x067d0111, 0x067e0111, + 0x067f0111, 0x06800111, 0x06810111, 0x06820111, 0x06830111, 0x0a080111, 0x0a090111, 0x0a0a0111, + 0x06840111, 0x06850111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2700 .. 0x27ff */ + 0xffffffff, 0x06860111, 0x06870111, 0x06880111, 0x06890111, 0xffffffff, 0x068a0111, 0x068b0111, + 0x068c0111, 0x068d0111, 0xffffffff, 0xffffffff, 0x068e0111, 0x068f0111, 0x06900111, 0x06910111, + 0x06920111, 0x06930111, 0x06940111, 0x06950111, 0x06960111, 0x06970111, 0x06980111, 0x06990111, + 0x069a0111, 0x069b0111, 0x069c0111, 0x069d0111, 0x069e0111, 0x069f0111, 0x06a00111, 0x06a10111, + 0x06a20111, 0x06a30111, 0x06a40111, 0x06a50111, 0x06a60111, 0x06a70111, 0x06a80111, 0x06a90111, + 0xffffffff, 0x06aa0111, 0x06ab0111, 0x06ac0111, 0x06ad0111, 0x06ae0111, 0x06af0111, 0x06b00111, + 0x06b10111, 0x06b20111, 0x06b30111, 0x06b40111, 0x06b50111, 0x06b60111, 0x06b70111, 0x06b80111, + 0x06b90111, 0x06ba0111, 0x06bb0111, 0x06bc0111, 0x06bd0111, 0x06be0111, 0x06bf0111, 0x06c00111, + 0x06c10111, 0x06c20111, 0x06c30111, 0x06c40111, 0x06c50111, 0x06c60111, 0x06c70111, 0x06c80111, + 0x06c90111, 0x06ca0111, 0x06cb0111, 0x06cc0111, 0xffffffff, 0x06cd0111, 0xffffffff, 0x06ce0111, + 0x06cf0111, 0x06d00111, 0x06d10111, 0xffffffff, 0xffffffff, 0xffffffff, 0x06d20111, 0xffffffff, + 0x06d30111, 0x06d40111, 0x06d50111, 0x06d60111, 0x06d70111, 0x06d80111, 0x06d90111, 0xffffffff, + 0xffffffff, 0x06da0111, 0x06db0111, 0x06dc0111, 0x06dd0111, 0x06de0111, 0x06df0111, 0x06e00111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0a0c0141, 0x0a0d0141, + 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, 0x0a140141, 0x06e10111, + 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, 0x0a120141, 0x0a130141, + 0x0a140141, 0x06e20111, 0x0a0c0141, 0x0a0d0141, 0x0a0e0141, 0x0a0f0141, 0x0a100141, 0x0a110141, + 0x0a120141, 0x0a130141, 0x0a140141, 0x06e30111, 0x06e40111, 0xffffffff, 0xffffffff, 0xffffffff, + 0x06e50111, 0x06e60111, 0x06e70111, 0x06e80111, 0x06e90111, 0x06ea0111, 0x06eb0111, 0x06ec0111, + 0x06ed0111, 0x06ee0111, 0x06ef0111, 0x06f00111, 0x06f10111, 0x06f20111, 0x06f30111, 0x06f40111, + 0x06f50111, 0x06f60111, 0x06f70111, 0x06f80111, 0x06f90111, 0x06fa0111, 0x06fb0111, 0x06fc0111, + 0xffffffff, 0x06fd0111, 0x06fe0111, 0x06ff0111, 0x07000111, 0x07010111, 0x07020111, 0x07030111, + 0x07040111, 0x07050111, 0x07060111, 0x07070111, 0x07080111, 0x07090111, 0x070a0111, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2800 .. 0x28ff */ + 0x070b0111, 0x070c0111, 0x070d0111, 0x070e0111, 0x070f0111, 0x07100111, 0x07110111, 0x07120111, + 0x07130111, 0x07140111, 0x07150111, 0x07160111, 0x07170111, 0x07180111, 0x07190111, 0x071a0111, + 0x071b0111, 0x071c0111, 0x071d0111, 0x071e0111, 0x071f0111, 0x07200111, 0x07210111, 0x07220111, + 0x07230111, 0x07240111, 0x07250111, 0x07260111, 0x07270111, 0x07280111, 0x07290111, 0x072a0111, + 0x072b0111, 0x072c0111, 0x072d0111, 0x072e0111, 0x072f0111, 0x07300111, 0x07310111, 0x07320111, + 0x07330111, 0x07340111, 0x07350111, 0x07360111, 0x07370111, 0x07380111, 0x07390111, 0x073a0111, + 0x073b0111, 0x073c0111, 0x073d0111, 0x073e0111, 0x073f0111, 0x07400111, 0x07410111, 0x07420111, + 0x07430111, 0x07440111, 0x07450111, 0x07460111, 0x07470111, 0x07480111, 0x07490111, 0x074a0111, + 0x074b0111, 0x074c0111, 0x074d0111, 0x074e0111, 0x074f0111, 0x07500111, 0x07510111, 0x07520111, + 0x07530111, 0x07540111, 0x07550111, 0x07560111, 0x07570111, 0x07580111, 0x07590111, 0x075a0111, + 0x075b0111, 0x075c0111, 0x075d0111, 0x075e0111, 0x075f0111, 0x07600111, 0x07610111, 0x07620111, + 0x07630111, 0x07640111, 0x07650111, 0x07660111, 0x07670111, 0x07680111, 0x07690111, 0x076a0111, + 0x076b0111, 0x076c0111, 0x076d0111, 0x076e0111, 0x076f0111, 0x07700111, 0x07710111, 0x07720111, + 0x07730111, 0x07740111, 0x07750111, 0x07760111, 0x07770111, 0x07780111, 0x07790111, 0x077a0111, + 0x077b0111, 0x077c0111, 0x077d0111, 0x077e0111, 0x077f0111, 0x07800111, 0x07810111, 0x07820111, + 0x07830111, 0x07840111, 0x07850111, 0x07860111, 0x07870111, 0x07880111, 0x07890111, 0x078a0111, + 0x078b0111, 0x078c0111, 0x078d0111, 0x078e0111, 0x078f0111, 0x07900111, 0x07910111, 0x07920111, + 0x07930111, 0x07940111, 0x07950111, 0x07960111, 0x07970111, 0x07980111, 0x07990111, 0x079a0111, + 0x079b0111, 0x079c0111, 0x079d0111, 0x079e0111, 0x079f0111, 0x07a00111, 0x07a10111, 0x07a20111, + 0x07a30111, 0x07a40111, 0x07a50111, 0x07a60111, 0x07a70111, 0x07a80111, 0x07a90111, 0x07aa0111, + 0x07ab0111, 0x07ac0111, 0x07ad0111, 0x07ae0111, 0x07af0111, 0x07b00111, 0x07b10111, 0x07b20111, + 0x07b30111, 0x07b40111, 0x07b50111, 0x07b60111, 0x07b70111, 0x07b80111, 0x07b90111, 0x07ba0111, + 0x07bb0111, 0x07bc0111, 0x07bd0111, 0x07be0111, 0x07bf0111, 0x07c00111, 0x07c10111, 0x07c20111, + 0x07c30111, 0x07c40111, 0x07c50111, 0x07c60111, 0x07c70111, 0x07c80111, 0x07c90111, 0x07ca0111, + 0x07cb0111, 0x07cc0111, 0x07cd0111, 0x07ce0111, 0x07cf0111, 0x07d00111, 0x07d10111, 0x07d20111, + 0x07d30111, 0x07d40111, 0x07d50111, 0x07d60111, 0x07d70111, 0x07d80111, 0x07d90111, 0x07da0111, + 0x07db0111, 0x07dc0111, 0x07dd0111, 0x07de0111, 0x07df0111, 0x07e00111, 0x07e10111, 0x07e20111, + 0x07e30111, 0x07e40111, 0x07e50111, 0x07e60111, 0x07e70111, 0x07e80111, 0x07e90111, 0x07ea0111, + 0x07eb0111, 0x07ec0111, 0x07ed0111, 0x07ee0111, 0x07ef0111, 0x07f00111, 0x07f10111, 0x07f20111, + 0x07f30111, 0x07f40111, 0x07f50111, 0x07f60111, 0x07f70111, 0x07f80111, 0x07f90111, 0x07fa0111, + 0x07fb0111, 0x07fc0111, 0x07fd0111, 0x07fe0111, 0x07ff0111, 0x08000111, 0x08010111, 0x08020111, + 0x08030111, 0x08040111, 0x08050111, 0x08060111, 0x08070111, 0x08080111, 0x08090111, 0x080a0111, + /* 0x2e00 .. 0x2eff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, + 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, + 0xfb400111, 0xfb400111, 0xffffffff, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400111, 0xfb400121, + 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400111, 0xfb400121, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410121, + 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, + 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, + 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410111, 0xfb410111, 0xfb410121, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, 0xfb410111, 0xfb410121, + 0xfb410111, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x2f00 .. 0x2fff */ + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, + 0xfb400121, 0xfb400121, 0xfb400121, 0xfb400121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, + 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xfb410121, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x09a90111, 0x09aa0111, 0x09ab0111, 0x09ac0111, 0x09ad0111, 0x09ae0111, 0x09af0111, 0x09b00111, + 0x09b10111, 0x09b20111, 0x09b30111, 0x09b40111, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x3000 .. 0x30ff */ + 0x02090121, 0x02340111, 0x025e0111, 0x02b80111, 0x09b50111, 0x09d70111, 0x192c0111, 0x0a0b0111, + 0x02880111, 0x02890111, 0x028a0111, 0x028b0111, 0x028c0111, 0x028d0111, 0x028e0111, 0x028f0111, + 0x02900111, 0x02910111, 0x09b60111, 0x09b70111, 0x02920111, 0x02930111, 0x02940111, 0x02950111, + 0x02960111, 0x02970111, 0x02980111, 0x02990111, 0x022a0111, 0x02750111, 0x02760111, 0x02770111, + 0x09b80111, 0x0a0c0111, 0x0a0d0111, 0x0a0e0111, 0x0a0f0111, 0x0a100111, 0x0a110111, 0x0a120111, + 0x0a130111, 0x0a140111, 0x0000dc11, 0x0000dd11, 0x0000de11, 0x0000df11, 0x0000e011, 0x0000e111, + 0x022b0111, 0x09d80111, 0x09d80111, 0x09d90111, 0x09d90111, 0x09da0111, 0x09b60121, 0x09b90111, + 0xfb400121, 0xfb400121, 0xfb400121, 0xffffffff, 0xffffffff, 0xffffffff, 0x09ba0111, 0x09bb0111, + 0xffffffff, 0x19210111, 0x19210121, 0x19220111, 0x19220121, 0x19230111, 0x19230121, 0x19240111, + 0x19240121, 0x19250111, 0x19250121, 0x19260111, 0x19260111, 0x19270111, 0x19270111, 0x19280111, + 0x19280111, 0x19290111, 0x19290111, 0x192a0111, 0x192a0111, 0x192b0111, 0x192b0111, 0x192c0121, + 0x192c0121, 0x192d0111, 0x192d0111, 0x192e0111, 0x192e0111, 0x192f0111, 0x192f0111, 0x19300111, + 0x19300111, 0x19310111, 0x19310111, 0x19320111, 0x19320121, 0x19320121, 0x19330111, 0x19330111, + 0x19340111, 0x19340111, 0x19350111, 0x19360111, 0x19370111, 0x19380111, 0x19390111, 0x193a0111, + 0x193a0111, 0x193a0111, 0x193b0111, 0x193b0111, 0x193b0111, 0x193c0111, 0x193c0111, 0x193c0111, + 0x193d0111, 0x193d0111, 0x193d0111, 0x193e0111, 0x193e0111, 0x193e0111, 0x193f0111, 0x19400111, + 0x19410111, 0x19420111, 0x19430111, 0x19440111, 0x19440121, 0x19450111, 0x19450121, 0x19460111, + 0x19460121, 0x19470111, 0x19480111, 0x19490111, 0x194a0111, 0x194b0111, 0x194c0111, 0x194c0121, + 0x194d0111, 0x194e0111, 0x194f0111, 0x19500111, 0x19230121, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x0000e211, 0x0000e311, 0x021e0111, 0x021f0111, 0x09db0111, 0x09db0111, 0xffffffff, + 0xffffffff, 0x19210131, 0x19210151, 0x19220131, 0x19220151, 0x19230131, 0x19230151, 0x19240131, + 0x19240151, 0x19250131, 0x19250151, 0x19260131, 0x19260131, 0x19270121, 0x19270121, 0x19280121, + 0x19280121, 0x19290131, 0x19290131, 0x192a0121, 0x192a0121, 0x192b0121, 0x192b0121, 0x192c0131, + 0x192c0131, 0x192d0121, 0x192d0121, 0x192e0121, 0x192e0121, 0x192f0121, 0x192f0121, 0x19300121, + 0x19300121, 0x19310121, 0x19310121, 0x19320131, 0x19320151, 0x19320151, 0x19330121, 0x19330121, + 0x19340121, 0x19340121, 0x19350121, 0x19360121, 0x19370121, 0x19380121, 0x19390121, 0x193a0121, + 0x193a0121, 0x193a0121, 0x193b0121, 0x193b0121, 0x193b0121, 0x193c0121, 0x193c0121, 0x193c0121, + 0x193d0121, 0x193d0121, 0x193d0121, 0x193e0121, 0x193e0121, 0x193e0121, 0x193f0121, 0x19400121, + 0x19410121, 0x19420121, 0x19430121, 0x19440131, 0x19440151, 0x19450131, 0x19450151, 0x19460131, + 0x19460151, 0x19470121, 0x19480121, 0x19490121, 0x194a0121, 0x194b0121, 0x194c0131, 0x194c0141, + 0x194d0121, 0x194e0121, 0x194f0121, 0x19500121, 0x19230151, 0x19260121, 0x19290121, 0x194c0141, + 0x194d0121, 0x194e0121, 0x194f0121, 0x022c0111, 0x09dc0111, 0x09dd0111, 0x09dd0111, 0xffffffff, + /* 0x3100 .. 0x31ff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x19510111, 0x19520111, 0x19530111, + 0x19540111, 0x19560111, 0x19570111, 0x19580111, 0x19590111, 0x195a0111, 0x195b0111, 0x195e0111, + 0x195f0111, 0x19600111, 0x19610111, 0x19630111, 0x19640111, 0x19650111, 0x19660111, 0x19670111, + 0x19680111, 0x19690111, 0x196a0111, 0x196b0111, 0x196d0111, 0x196e0111, 0x19700111, 0x19710111, + 0x19720111, 0x19730111, 0x19740111, 0x19750111, 0x19760111, 0x19780111, 0x197c0111, 0x197d0111, + 0x197e0111, 0x197f0111, 0x19550111, 0x195c0111, 0x19620111, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x18310121, 0x18320121, 0x18d10121, 0x18330121, 0x18d30121, 0x18d40121, 0x18340121, + 0x18350121, 0x18360121, 0x18d70121, 0x18d80121, 0x18d90121, 0x18da0121, 0x18db0121, 0x18dc0121, + 0x184b0121, 0x18370121, 0x18380121, 0x18390121, 0x18520121, 0x183a0121, 0x183b0121, 0x183c0121, + 0x183d0121, 0x183e0121, 0x183f0121, 0x18400121, 0x18410121, 0x18420121, 0x18430121, 0x188d0121, + 0x188e0121, 0x188f0121, 0x18900121, 0x18910121, 0x18920121, 0x18930121, 0x18940121, 0x18950121, + 0x18960121, 0x18970121, 0x18980121, 0x18990121, 0x189a0121, 0x189b0121, 0x189c0121, 0x189d0121, + 0x189e0121, 0x189f0121, 0x18a00121, 0x18a10121, 0x188c0121, 0x18450121, 0x18460121, 0x18ee0121, + 0x18ef0121, 0x18f30121, 0x18f50121, 0x18fa0121, 0x18fe0121, 0x19000121, 0x184d0121, 0x19040121, + 0x19060121, 0x184e0121, 0x184f0121, 0x18510121, 0x18530121, 0x18540121, 0x18580121, 0x185a0121, + 0x185c0121, 0x185d0121, 0x185e0121, 0x185f0121, 0x18600121, 0x18630121, 0x18670121, 0x18710121, + 0x18780121, 0x187d0121, 0x19180121, 0x19190121, 0x18880121, 0x18890121, 0x188a0121, 0x18b00121, + 0x18b10121, 0x18b40121, 0x18bd0121, 0x18be0121, 0x18c00121, 0x18ca0121, 0x18cd0121, 0xffffffff, + 0x09bc0111, 0x09bd0111, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, + 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, 0xfb400141, + 0x19510121, 0x19670121, 0x195f0121, 0x195a0121, 0x196f0111, 0x196f0121, 0x196c0111, 0x196b0121, + 0x197e0121, 0x196a0121, 0x197d0121, 0x197e0121, 0x197b0111, 0x195d0111, 0x19700121, 0x19720121, + 0x19790111, 0x197a0111, 0x19770111, 0x197d0131, 0x19520121, 0x19570121, 0x195b0121, 0x195e0121, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0x3200 .. 0x32ff */ + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, + 0x027a0131, 0x027a0131, 0x027a0131, 0x027a0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x18310131, 0x18330131, 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, + 0x183d0131, 0x183f0131, 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0x18310131, 0x18330131, + 0x18340131, 0x18360131, 0x18370131, 0x18380131, 0x183a0131, 0x183c0131, 0x183d0131, 0x183f0131, + 0x18400131, 0x18410131, 0x18420131, 0x18430131, 0xffffffff, 0xffffffff, 0xffffffff, 0x09be0111, + 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, + 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, + 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, + 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, + 0xfb410131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, + 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb400131, 0xfb410131, 0xfb400131, + 0xfb400131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, + 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x19210171, 0x19220171, 0x19230171, 0x19240171, 0x19250171, 0x19260151, 0x19270141, 0x19280141, + 0x19290151, 0x192a0141, 0x192b0141, 0x192c0151, 0x192d0141, 0x192e0141, 0x192f0141, 0x19300141, + 0x19310141, 0x19320171, 0x19330141, 0x19340141, 0x19350141, 0x19360141, 0x19370141, 0x19380141, + 0x19390141, 0x193a0141, 0x193b0141, 0x193c0141, 0x193d0141, 0x193e0141, 0x193f0141, 0x19400141, + 0x19410141, 0x19420141, 0x19430141, 0x19440171, 0x19450171, 0x19460171, 0x19470141, 0x19480141, + 0x19490141, 0x194a0141, 0x194b0141, 0x194c0161, 0x194d0131, 0x194e0131, 0x194f0141, 0xffffffff, + /* 0x3300 .. 0x33ff */ + 0x19210181, 0x19210181, 0x19210181, 0x19210181, 0x19220181, 0x19220181, 0x19230181, 0x19240181, + 0x19240181, 0x19250181, 0x19250181, 0x19260161, 0x19260161, 0x19260161, 0x19260161, 0x19260161, + 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, 0x19270151, + 0x19280151, 0x19280151, 0x19280151, 0x19280151, 0x19290161, 0x192a0151, 0x192a0151, 0x192b0151, + 0x192b0151, 0x192c0161, 0x192e0151, 0x192e0151, 0x19300151, 0x19330151, 0x19340151, 0x19340151, + 0x19350151, 0x19390151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193a0151, 0x193b0151, 0x193b0151, + 0x193b0151, 0x193b0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193c0151, 0x193d0151, 0x193d0151, + 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193d0151, 0x193e0151, 0x193e0151, 0x193e0151, + 0x193e0151, 0x193e0151, 0x193e0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, 0x193f0151, + 0x19400151, 0x19400151, 0x19400151, 0x19420151, 0x19420151, 0x19420151, 0x19440181, 0x19440181, + 0x19450181, 0x19480151, 0x19480151, 0x19490151, 0x19490151, 0x194a0151, 0x194a0151, 0x194c0171, + 0x0a0b0131, 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, + 0x0a130131, 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, + 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, + 0x0a0d0131, 0x0ab901a1, 0x0a490191, 0x0a1501a1, 0x0a290181, 0x0b4b01b1, 0x0b670181, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, 0xfb400151, + 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0af70181, 0x0b2b01b1, 0x0a990181, + 0x0a3d01a1, 0x0af70171, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, + 0x0ab901b1, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0bbf01a1, 0x0c9f0141, 0x0b2b01a1, 0x0a490191, + 0x0af70171, 0x0a910191, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0a3d01a1, 0x0af70171, 0x0b2b01a1, + 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, 0x0a3d01a1, 0x0b2b01a1, 0x0af70171, 0x0b2b01a1, + 0x0b2b01a1, 0x0b670191, 0x0af70171, 0x0b2b01b1, 0x0a990181, 0x0b7f01a1, 0x0b7f01a1, 0x0b7f01a1, + 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, + 0x0af70171, 0x0b2b01b1, 0x0b670181, 0x0b3301b1, 0x0c9f0141, 0x0b2b01a1, 0x0af70171, 0x0b2b01b1, + 0x0af70171, 0x0b2b01b1, 0x0a150191, 0x0a290191, 0x0a3d01a1, 0x0a3d01a1, 0x0a3d01b1, 0x0a3d01b1, + 0x0a490191, 0x0a990181, 0x0ab901a1, 0x0ab901b1, 0x0ad301b1, 0x0af70181, 0x0af70181, 0x0af70171, + 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b0301c1, 0x0b2b01a1, 0x0b2b01a1, 0x0b2b01a1, 0x0b670191, + 0x0b670181, 0x0b670191, 0x0b670191, 0x0ba70191, 0x0ba701a1, 0x0bfb0181, 0xffffffff, 0xffffffff, + 0x0a0c0131, 0x0a0d0131, 0x0a0e0131, 0x0a0f0131, 0x0a100131, 0x0a110131, 0x0a120131, 0x0a130131, + 0x0a140131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, + 0x0a0c0131, 0x0a0c0131, 0x0a0c0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, + 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0d0131, 0x0a0e0131, 0x0a0e0131, 0xffffffff, + /* 0xf900 .. 0xf9ff */ + 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, + 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb400111, + /* 0xfa00 .. 0xfaff */ + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb410111, + 0xfb400111, 0xfb410111, 0xfb400111, 0xfb410111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb400111, + 0xfb400111, 0xfb400111, 0xfb400111, 0xfb400111, 0xfb410111, 0xfb400111, 0xfb400111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, + 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xfb410111, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0xfb00 .. 0xfbff */ + 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0a910131, 0x0ba70131, 0x0ba70131, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x0ea30121, 0x0ea30121, 0x0ea30121, 0x0ead0121, 0x0ea30121, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0ec00111, 0x00006711, 0x0ec00121, + 0x0ec60121, 0x0eb70131, 0x0eba0131, 0x0ebb0121, 0x0ec10121, 0x0ec20121, 0x0ec30121, 0x0eca0121, + 0x0ecc0121, 0x039f0131, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0ecb0111, 0x0eb70111, 0x0eb70111, + 0x0eb70111, 0x0eb80111, 0x0eb90111, 0x0eba0111, 0x0ebb0111, 0x0ebc0111, 0x0ebd0111, 0xffffffff, + 0x0ebf0111, 0x0ec00111, 0x0ec10131, 0x0ec10111, 0x0ec20111, 0xffffffff, 0x0ec30111, 0xffffffff, + 0x0ec40111, 0x0ec50111, 0xffffffff, 0x0ec70121, 0x0ec70111, 0xffffffff, 0x0ec80111, 0x0ec90111, + 0x0eca0111, 0x0ecb0111, 0x0ecc0111, 0x0ebc0111, 0x0eb80111, 0x0ec10111, 0x0ec70111, 0x0eb70121, + 0x0ed10131, 0x0ed10121, 0x0ed80151, 0x0ed80141, 0x0ed80121, 0x0ed80131, 0x0ed90151, 0x0ed90141, + 0x0ed90121, 0x0ed90131, 0x0eda0151, 0x0eda0141, 0x0eda0121, 0x0eda0131, 0x0edf0151, 0x0edf0141, + 0x0edf0121, 0x0edf0131, 0x0ee20151, 0x0ee20141, 0x0ee20121, 0x0ee20131, 0x0ede0151, 0x0ede0141, + 0x0ede0121, 0x0ede0131, 0x0f1a0151, 0x0f1a0141, 0x0f1a0121, 0x0f1a0131, 0x0f1c0151, 0x0f1c0141, + 0x0f1c0121, 0x0f1c0131, 0x0ee50151, 0x0ee50141, 0x0ee50121, 0x0ee50131, 0x0ee40151, 0x0ee40141, + 0x0ee40121, 0x0ee40131, 0x0ee60151, 0x0ee60141, 0x0ee60121, 0x0ee60131, 0x0ee80151, 0x0ee80141, + 0x0ee80121, 0x0ee80131, 0x0ef50131, 0x0ef50121, 0x0ef40131, 0x0ef40121, 0x0ef60131, 0x0ef60121, + 0x0ef00131, 0x0ef00121, 0x0f020131, 0x0f020121, 0x0efb0131, 0x0efb0121, 0x0f210151, 0x0f210141, + 0x0f210121, 0x0f210131, 0x0f270151, 0x0f270141, 0x0f270121, 0x0f270131, 0x0f2b0151, 0x0f2b0141, + 0x0f2b0121, 0x0f2b0131, 0x0f290151, 0x0f290141, 0x0f290121, 0x0f290131, 0x0f340131, 0x0f340121, + 0x0f350151, 0x0f350141, 0x0f350121, 0x0f350131, 0x0f3d0131, 0x0f3d0121, 0x0f3b0151, 0x0f3b0141, + 0x0f3b0121, 0x0f3b0131, 0x0f3a0151, 0x0f3a0141, 0x0f3a0121, 0x0f3a0131, 0x0f4f0131, 0x0f4f0121, + 0x0f4f0131, 0x0f4f0121, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x0f250151, 0x0f250141, 0x0f250121, 0x0f250131, 0x0f420141, + 0x0f420131, 0x0f410131, 0x0f410121, 0x0f430131, 0x0f430121, 0x0f420141, 0x0f460131, 0x0f460121, + 0x0f400131, 0x0f400121, 0x0f440131, 0x0f440121, 0x0f4d0151, 0x0f4d0141, 0x0f4d0121, 0x0f4d0131, + 0x0f480121, 0x0f480131, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, + 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, 0x0ed50151, 0x0ed50141, + 0x0ed50121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0f4a0151, 0x0f4a0141, 0x0f4a0121, 0x0f4a0131, + /* 0xfc00 .. 0xfcff */ + 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed50151, 0x0ed70151, 0x0ed70151, 0x0ed70151, + 0x0ed70151, 0x0ed70151, 0x0ed70151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, 0x0edc0151, + 0x0edc0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0edd0151, 0x0ee30151, 0x0ee30151, 0x0ee90151, + 0x0ee90151, 0x0eea0151, 0x0eea0151, 0x0eea0151, 0x0f040151, 0x0f040151, 0x0f040151, 0x0f040151, + 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0b0151, 0x0f0f0151, 0x0f0f0151, + 0x0f100151, 0x0f120151, 0x0f120151, 0x0f130151, 0x0f130151, 0x0f160151, 0x0f160151, 0x0f160151, + 0x0f160151, 0x0f160151, 0x0f160151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f1d0151, 0x0f200151, + 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f200151, 0x0f2d0151, + 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f2d0151, 0x0f320161, 0x0f320161, 0x0f320161, + 0x0f320161, 0x0f320161, 0x0f320161, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, 0x0f330151, + 0x0f330151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f390151, 0x0f490161, 0x0f490161, 0x0f490161, + 0x0f490161, 0x0f490161, 0x0f490161, 0x0eef0131, 0x0ef90131, 0x0f480151, 0x00006e31, 0x00006e31, + 0x00006e31, 0x00006e31, 0x00006e31, 0x00006e31, 0x0ed50141, 0x0ed50141, 0x0ed50141, 0x0ed50141, + 0x0ed50141, 0x0ed50141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, 0x0ed70141, + 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edd0141, 0x0edd0141, + 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0edd0141, 0x0f160141, 0x0f160141, 0x0f1d0141, 0x0f1d0141, + 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f200141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, + 0x0f320151, 0x0f320151, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f330141, + 0x0f480141, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0f490151, 0x0ed50121, + 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed50121, 0x0ed70121, 0x0ed70121, 0x0ed70121, 0x0ed70121, + 0x0ed70121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edd0121, 0x0ee30121, + 0x0ee30121, 0x0ee90121, 0x0ee90121, 0x0eea0121, 0x0eea0121, 0x0f040121, 0x0f040121, 0x0f040121, + 0x0f040121, 0x0f0a0121, 0x0f0a0121, 0x0f0a0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, 0x0f0b0121, + 0x0f0f0121, 0x0f100121, 0x0f120121, 0x0f120121, 0x0f130121, 0x0f130121, 0x0f160121, 0x0f160121, + 0x0f160121, 0x0f160121, 0x0f1d0121, 0x0f1d0121, 0x0f200121, 0x0f200121, 0x0f200121, 0x0f200121, + 0x0f200121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f2d0121, 0x0f320131, 0x0f320131, + 0x0f320131, 0x0f320131, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f330121, 0x0f390121, + 0x0f390121, 0x0f390121, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0f490131, 0x0ed50131, + 0x0ed50131, 0x0ed70131, 0x0ed70131, 0x0edc0131, 0x0edc0131, 0x0edd0131, 0x0edd0131, 0x0f040131, + 0x0f040131, 0x0f050131, 0x0f050131, 0x0f200131, 0x0f200131, 0x0f2d0131, 0x0f330131, 0x0f330131, + 0x0f490141, 0x0f490141, 0x00006e21, 0x00006e21, 0x00006e21, 0x0f0f0151, 0x0f0f0151, 0x0f120151, + 0x0f120151, 0x0f130151, 0x0f130151, 0x0f040151, 0x0f040151, 0x0f050151, 0x0f050151, 0x0ee90151, + /* 0xfd00 .. 0xfdff */ + 0x0ee90151, 0x0ee30151, 0x0ee30151, 0x0eea0151, 0x0eea0151, 0x0f0a0151, 0x0f0a0151, 0x0f0b0151, + 0x0f0b0151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f050151, 0x0f040151, 0x0f0a0151, + 0x0f0b0151, 0x0f0f0141, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f130141, 0x0f130141, 0x0f040141, + 0x0f040141, 0x0f050141, 0x0f050141, 0x0ee90141, 0x0ee90141, 0x0ee30141, 0x0ee30141, 0x0eea0141, + 0x0eea0141, 0x0f0a0141, 0x0f0a0141, 0x0f0b0141, 0x0f0b0141, 0x0f050141, 0x0f050141, 0x0f050141, + 0x0f050141, 0x0f050141, 0x0f040141, 0x0f0a0141, 0x0f0b0141, 0x0f050121, 0x0f050121, 0x0f050121, + 0x0f050121, 0x0f040121, 0x0f050121, 0x0f0f0121, 0x0f040131, 0x0f040131, 0x0f040131, 0x0f050131, + 0x0f050131, 0x0f050131, 0x0f0f0131, 0x0f100131, 0x0ed60131, 0x0ed60141, 0x029a0111, 0x029b0111, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0edc0121, 0x0edc0141, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, 0x0edc0121, + 0x0ee30141, 0x0ee30121, 0x0ee90141, 0x0ee90141, 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040141, + 0x0f040121, 0x0f040121, 0x0f040141, 0x0f040121, 0x0f0a0141, 0x0f0a0121, 0x0f0a0141, 0x0f050141, + 0x0f050121, 0x0f050141, 0x0f050141, 0x0f050121, 0x0f050141, 0x0f050121, 0x0f0b0141, 0x0f0b0141, + 0x0f0b0121, 0x0f0f0141, 0x0f0f0121, 0x0f0f0121, 0x0f0f0141, 0x0f120141, 0x0f120141, 0x0f120121, + 0x0f120141, 0x0f130141, 0x0f130141, 0x0f130141, 0x0f160141, 0x0f160121, 0x0f1d0141, 0x0f1d0141, + 0x0f2d0141, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, 0x0f2d0141, 0x0f2d0121, 0x0f2d0141, + 0x0f2d0121, 0x0f320131, 0x0f320131, 0x0f320151, 0x0f320131, 0x0f320131, 0x0f320131, 0x0f320131, + 0xffffffff, 0xffffffff, 0x0f320131, 0x0f390121, 0x0f390121, 0x0f330121, 0x0f330141, 0x0f330141, + 0x0f330121, 0x0f330141, 0x0f330141, 0x0f330141, 0x0f490151, 0x0f490131, 0x0ed70141, 0x0edc0141, + 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0edc0141, 0x0ee30141, 0x0ee30141, 0x0ee30141, + 0x0f040141, 0x0f0a0141, 0x0f050141, 0x0f0b0141, 0x0f2d0141, 0x0f2d0141, 0x0f490151, 0x0f490151, + 0x0f490151, 0x0f320151, 0x0f1d0141, 0x0f330141, 0x0f1d0121, 0x0f2d0121, 0x0f120141, 0x0f200141, + 0x0f330121, 0x0f320151, 0x0f2d0121, 0x0f200141, 0x0f2d0141, 0x0f330141, 0x0ee30141, 0x0ee90141, + 0x0f320151, 0x0f160141, 0x0ed70141, 0x0f200121, 0x0f120121, 0x0f0a0121, 0x0f040141, 0x0f330141, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x0f0a0151, 0x0f1d0151, 0x0ed60141, 0x0ed60141, 0x0f320161, 0x0f0a0151, 0x0ef90131, 0x0f120151, + 0x0f3e0141, 0x0f0a0151, 0x0f0a0151, 0x0ee30151, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + /* 0xfe00 .. 0xfeff */ + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x00005011, 0x00005111, 0x00005211, 0x00005311, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x02550151, 0x02280131, 0x02270121, 0x021b0141, 0x021b0141, 0x027a0171, 0x027b0161, 0x027e0141, + 0x027f0141, 0x02920131, 0x02930131, 0x02900121, 0x02910121, 0x028a0121, 0x028b0121, 0x02880121, + 0x02890121, 0x028c0131, 0x028d0131, 0x028e0121, 0x028f0121, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x02110121, 0x02110121, 0x02110121, 0x02110121, 0x021b0131, 0x021b0131, 0x021b0131, + 0x022d0131, 0x02340121, 0x02550141, 0xffffffff, 0x02350131, 0x02370131, 0x024e0141, 0x024b0141, + 0x02280121, 0x027a0141, 0x027b0131, 0x027e0131, 0x027f0131, 0x02920121, 0x02930121, 0x02a90131, + 0x02a70131, 0x02a20131, 0x039f0141, 0x02210131, 0x03a30131, 0x03a50131, 0x03a40131, 0xffffffff, + 0x02a60131, 0x09e00131, 0x02aa0131, 0x02a10131, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0x00006831, 0x00006821, 0x00006921, 0xffffffff, 0x00006a21, 0xffffffff, 0x00006b31, 0x00006b21, + 0x00006c31, 0x00006c21, 0x00006d31, 0x00006d21, 0x00006e31, 0x00006e21, 0x00006f31, 0x00006f21, + 0x0ecd0131, 0x0ece0131, 0x0ece0121, 0x0ecf0131, 0x0ecf0121, 0x0ed20131, 0x0ed20121, 0x0ed30131, + 0x0ed30121, 0x0ed50151, 0x0ed50141, 0x0ed50121, 0x0ed50131, 0x0ed60141, 0x0ed60131, 0x0ed70151, + 0x0ed70141, 0x0ed70121, 0x0ed70131, 0x0edb0131, 0x0edb0121, 0x0edc0151, 0x0edc0141, 0x0edc0121, + 0x0edc0131, 0x0edd0151, 0x0edd0141, 0x0edd0121, 0x0edd0131, 0x0ee30151, 0x0ee30141, 0x0ee30121, + 0x0ee30131, 0x0ee90151, 0x0ee90141, 0x0ee90121, 0x0ee90131, 0x0eea0151, 0x0eea0141, 0x0eea0121, + 0x0eea0131, 0x0eee0131, 0x0eee0121, 0x0eef0131, 0x0eef0121, 0x0ef90131, 0x0ef90121, 0x0efa0131, + 0x0efa0121, 0x0f040151, 0x0f040141, 0x0f040121, 0x0f040131, 0x0f050151, 0x0f050141, 0x0f050121, + 0x0f050131, 0x0f0a0151, 0x0f0a0141, 0x0f0a0121, 0x0f0a0131, 0x0f0b0151, 0x0f0b0141, 0x0f0b0121, + 0x0f0b0131, 0x0f0f0151, 0x0f0f0141, 0x0f0f0121, 0x0f0f0131, 0x0f100151, 0x0f100141, 0x0f100121, + 0x0f100131, 0x0f120151, 0x0f120141, 0x0f120121, 0x0f120131, 0x0f130151, 0x0f130141, 0x0f130121, + 0x0f130131, 0x0f160151, 0x0f160141, 0x0f160121, 0x0f160131, 0x0f1d0151, 0x0f1d0141, 0x0f1d0121, + 0x0f1d0131, 0x0f200151, 0x0f200141, 0x0f200121, 0x0f200131, 0x0f2d0151, 0x0f2d0141, 0x0f2d0121, + 0x0f2d0131, 0x0f320161, 0x0f320151, 0x0f320131, 0x0f320141, 0x0f330151, 0x0f330141, 0x0f330121, + 0x0f330131, 0x0f390151, 0x0f390141, 0x0f390121, 0x0f390131, 0x0f3e0141, 0x0f3e0131, 0x0f480151, + 0x0f480141, 0x0f490161, 0x0f490151, 0x0f490131, 0x0f490141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, + 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0x0f2d0151, 0x0f2d0141, 0xffffffff, 0xffffffff, 0x00000000, + /* 0xff00 .. 0xffff */ + 0xffffffff, 0x024b0121, 0x02700121, 0x02a90121, 0x09e00121, 0x02aa0121, 0x02a70121, 0x02690121, + 0x027a0121, 0x027b0121, 0x02a20121, 0x039f0121, 0x022d0121, 0x02210121, 0x02550121, 0x02a40121, + 0x0a0b0121, 0x0a0c0121, 0x0a0d0121, 0x0a0e0121, 0x0a0f0121, 0x0a100121, 0x0a110121, 0x0a120121, + 0x0a130121, 0x0a140121, 0x02370121, 0x02350121, 0x03a30121, 0x03a40121, 0x03a50121, 0x024e0121, + 0x02a10121, 0x0a150161, 0x0a290151, 0x0a3d0161, 0x0a490161, 0x0a650161, 0x0a910161, 0x0a990161, + 0x0ab90161, 0x0ad30171, 0x0ae70151, 0x0af70151, 0x0b030171, 0x0b2b0161, 0x0b330161, 0x0b4b0171, + 0x0b670151, 0x0b730151, 0x0b7f0151, 0x0ba70161, 0x0bbf0161, 0x0bd70151, 0x0bef0161, 0x0bfb0151, + 0x0c030161, 0x0c070151, 0x0c130151, 0x027c0121, 0x02a60121, 0x027d0121, 0x020f0121, 0x021b0121, + 0x020c0121, 0x0a150121, 0x0a290121, 0x0a3d0121, 0x0a490121, 0x0a650121, 0x0a910121, 0x0a990121, + 0x0ab90121, 0x0ad30121, 0x0ae70121, 0x0af70121, 0x0b030121, 0x0b2b0121, 0x0b330121, 0x0b4b0121, + 0x0b670121, 0x0b730121, 0x0b7f0121, 0x0ba70121, 0x0bbf0121, 0x0bd70121, 0x0bef0121, 0x0bfb0121, + 0x0c030121, 0x0c070121, 0x0c130121, 0x027e0121, 0x03a70121, 0x027f0121, 0x03aa0121, 0xffffffff, + 0xffffffff, 0x025e0121, 0x028c0121, 0x028d0121, 0x02340131, 0x022c0121, 0x194f0131, 0x19210141, + 0x19220141, 0x19230141, 0x19240141, 0x19250141, 0x19440141, 0x19450141, 0x19460141, 0x19320141, + 0x09dc0121, 0x19210161, 0x19220161, 0x19230161, 0x19240161, 0x19250161, 0x19260141, 0x19270131, + 0x19280131, 0x19290141, 0x192a0131, 0x192b0131, 0x192c0141, 0x192d0131, 0x192e0131, 0x192f0131, + 0x19300131, 0x19310131, 0x19320161, 0x19330131, 0x19340131, 0x19350131, 0x19360131, 0x19370131, + 0x19380131, 0x19390131, 0x193a0131, 0x193b0131, 0x193c0131, 0x193d0131, 0x193e0131, 0x193f0131, + 0x19400131, 0x19410131, 0x19420131, 0x19430131, 0x19440161, 0x19450161, 0x19460161, 0x19470131, + 0x19480131, 0x19490131, 0x194a0131, 0x194b0131, 0x194c0151, 0x19500131, 0x0000e221, 0x0000e321, + 0x188c0131, 0x18310141, 0x18320131, 0x18d10131, 0x18330141, 0x18d30131, 0x18d40131, 0x18340141, + 0x18350131, 0x18360141, 0x18d70131, 0x18d80131, 0x18d90131, 0x18da0131, 0x18db0131, 0x18dc0131, + 0x184b0131, 0x18370141, 0x18380141, 0x18390131, 0x18520131, 0x183a0141, 0x183b0131, 0x183c0141, + 0x183d0141, 0x183e0131, 0x183f0141, 0x18400141, 0x18410141, 0x18420141, 0x18430141, 0xffffffff, + 0xffffffff, 0xffffffff, 0x188d0131, 0x188e0131, 0x188f0131, 0x18900131, 0x18910131, 0x18920131, + 0xffffffff, 0xffffffff, 0x18930131, 0x18940131, 0x18950131, 0x18960131, 0x18970131, 0x18980131, + 0xffffffff, 0xffffffff, 0x18990131, 0x189a0131, 0x189b0131, 0x189c0131, 0x189d0131, 0x189e0131, + 0xffffffff, 0xffffffff, 0x189f0131, 0x18a00131, 0x18a10131, 0xffffffff, 0xffffffff, 0xffffffff, + 0x09df0121, 0x09e10121, 0x03a60121, 0x02100121, 0x03a80121, 0x09e20121, 0x09ef0121, 0xffffffff, + 0x05300121, 0x03320121, 0x03340121, 0x03330121, 0x03350121, 0x05c40121, 0x05ef0121, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, + 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x09bf0111, 0x09c00111, 0xffffffff, 0xffffffff }; diff --git a/apilibs/kexbases/Kernel32/locale_fold.c b/apilibs/kexbases/Kernel32/locale_fold.c index 7269df3..7db2af7 100755 --- a/apilibs/kexbases/Kernel32/locale_fold.c +++ b/apilibs/kexbases/Kernel32/locale_fold.c @@ -22,177 +22,177 @@ static inline WCHAR to_unicode_digit( WCHAR ch ) { - extern const WCHAR wine_digitmap[]; - return ch + wine_digitmap[wine_digitmap[ch >> 8] + (ch & 0xff)]; + extern const WCHAR wine_digitmap[]; + return ch + wine_digitmap[wine_digitmap[ch >> 8] + (ch & 0xff)]; } static inline WCHAR to_unicode_native( WCHAR ch ) { - extern const WCHAR wine_compatmap[]; - return ch + wine_compatmap[wine_compatmap[ch >> 8] + (ch & 0xff)]; + extern const WCHAR wine_compatmap[]; + return ch + wine_compatmap[wine_compatmap[ch >> 8] + (ch & 0xff)]; } static const WCHAR wine_ligatures[] = { - 0x00c6, 0x00de, 0x00df, 0x00e6, 0x00fe, 0x0132, 0x0133, 0x0152, - 0x0153, 0x01c4, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 0x01ca, - 0x01cb, 0x01cc, 0x01e2, 0x01e3, 0x01f1, 0x01f2, 0x01f3, 0x01fc, - 0x01fd, 0x05f0, 0x05f1, 0x05f2, 0xfb00, 0xfb01, 0xfb02, 0xfb03, - 0xfb04, 0xfb05, 0xfb06 + 0x00c6, 0x00de, 0x00df, 0x00e6, 0x00fe, 0x0132, 0x0133, 0x0152, + 0x0153, 0x01c4, 0x01c5, 0x01c6, 0x01c7, 0x01c8, 0x01c9, 0x01ca, + 0x01cb, 0x01cc, 0x01e2, 0x01e3, 0x01f1, 0x01f2, 0x01f3, 0x01fc, + 0x01fd, 0x05f0, 0x05f1, 0x05f2, 0xfb00, 0xfb01, 0xfb02, 0xfb03, + 0xfb04, 0xfb05, 0xfb06 }; /* Unicode expanded ligatures */ static const WCHAR wine_expanded_ligatures[][4] = { - { 'A','E','\0',1 }, - { 'T','H','\0',1 }, - { 's','s','\0',1 }, - { 'a','e','\0',1 }, - { 't','h','\0',1 }, - { 'I','J','\0',1 }, - { 'i','j','\0',1 }, - { 'O','E','\0',1 }, - { 'o','e','\0',1 }, - { 'D',0x017d,'\0',1 }, - { 'D',0x017e,'\0',1 }, - { 'd',0x017e,'\0',1 }, - { 'L','J','\0',1 }, - { 'L','j','\0',1 }, - { 'l','j','\0',1 }, - { 'N','J','\0',1 }, - { 'N','j','\0',1 }, - { 'n','j','\0',1 }, - { 0x0100,0x0112,'\0',1 }, - { 0x0101,0x0113,'\0',1 }, - { 'D','Z','\0',1 }, - { 'D','z','\0',1 }, - { 'd','z','\0',1 }, - { 0x00c1,0x00c9,'\0',1 }, - { 0x00e1,0x00e9,'\0',1 }, - { 0x05d5,0x05d5,'\0',1 }, - { 0x05d5,0x05d9,'\0',1 }, - { 0x05d9,0x05d9,'\0',1 }, - { 'f','f','\0',1 }, - { 'f','i','\0',1 }, - { 'f','l','\0',1 }, - { 'f','f','i',2 }, - { 'f','f','l',2 }, - { 0x017f,'t','\0',1 }, - { 's','t','\0',1 } + { 'A','E','\0',1 }, + { 'T','H','\0',1 }, + { 's','s','\0',1 }, + { 'a','e','\0',1 }, + { 't','h','\0',1 }, + { 'I','J','\0',1 }, + { 'i','j','\0',1 }, + { 'O','E','\0',1 }, + { 'o','e','\0',1 }, + { 'D',0x017d,'\0',1 }, + { 'D',0x017e,'\0',1 }, + { 'd',0x017e,'\0',1 }, + { 'L','J','\0',1 }, + { 'L','j','\0',1 }, + { 'l','j','\0',1 }, + { 'N','J','\0',1 }, + { 'N','j','\0',1 }, + { 'n','j','\0',1 }, + { 0x0100,0x0112,'\0',1 }, + { 0x0101,0x0113,'\0',1 }, + { 'D','Z','\0',1 }, + { 'D','z','\0',1 }, + { 'd','z','\0',1 }, + { 0x00c1,0x00c9,'\0',1 }, + { 0x00e1,0x00e9,'\0',1 }, + { 0x05d5,0x05d5,'\0',1 }, + { 0x05d5,0x05d9,'\0',1 }, + { 0x05d9,0x05d9,'\0',1 }, + { 'f','f','\0',1 }, + { 'f','i','\0',1 }, + { 'f','l','\0',1 }, + { 'f','f','i',2 }, + { 'f','f','l',2 }, + { 0x017f,'t','\0',1 }, + { 's','t','\0',1 } }; static inline int get_ligature_len( WCHAR wc ) { - int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; - while (low <= high) - { - int pos = (low + high) / 2; - if (wine_ligatures[pos] < wc) - low = pos + 1; - else if (wine_ligatures[pos] > wc) - high = pos - 1; - else - return wine_expanded_ligatures[pos][3]; - } - return 0; + int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; + while (low <= high) + { + int pos = (low + high) / 2; + if (wine_ligatures[pos] < wc) + low = pos + 1; + else if (wine_ligatures[pos] > wc) + high = pos - 1; + else + return wine_expanded_ligatures[pos][3]; + } + return 0; } static inline const WCHAR* get_ligature( WCHAR wc ) { - static const WCHAR empty_ligature[] = { '\0','\0','\0', 0 }; - int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; - while (low <= high) - { - int pos = (low + high) / 2; - if (wine_ligatures[pos] < wc) - low = pos + 1; - else if (wine_ligatures[pos] > wc) - high = pos - 1; - else - return wine_expanded_ligatures[pos]; - } - return empty_ligature; + static const WCHAR empty_ligature[] = { '\0','\0','\0', 0 }; + int low = 0, high = sizeof(wine_ligatures)/sizeof(WCHAR) -1; + while (low <= high) + { + int pos = (low + high) / 2; + if (wine_ligatures[pos] < wc) + low = pos + 1; + else if (wine_ligatures[pos] > wc) + high = pos - 1; + else + return wine_expanded_ligatures[pos]; + } + return empty_ligature; } /* fold a unicode string */ int wine_fold_string( int flags, const WCHAR *src, int srclen, WCHAR *dst, int dstlen ) { - WCHAR *dstbase = dst; - const WCHAR *expand; - int i; + WCHAR *dstbase = dst; + const WCHAR *expand; + int i; - if (srclen == -1) - srclen = strlenW(src) + 1; /* Include terminating NUL in count */ + if (srclen == -1) + srclen = strlenW(src) + 1; /* Include terminating NUL in count */ - if (!dstlen) - { - /* Calculate the required size for dst */ - dstlen = srclen; + if (!dstlen) + { + /* Calculate the required size for dst */ + dstlen = srclen; - if (flags & MAP_EXPAND_LIGATURES) - { - while (srclen--) - { - dstlen += get_ligature_len(*src); - src++; - } - } - else if (flags & MAP_COMPOSITE) - { - /* FIXME */ - } - else if (flags & MAP_PRECOMPOSED) - { - /* FIXME */ - } - return dstlen; - } + if (flags & MAP_EXPAND_LIGATURES) + { + while (srclen--) + { + dstlen += get_ligature_len(*src); + src++; + } + } + else if (flags & MAP_COMPOSITE) + { + /* FIXME */ + } + else if (flags & MAP_PRECOMPOSED) + { + /* FIXME */ + } + return dstlen; + } - if (srclen > dstlen) - return 0; + if (srclen > dstlen) + return 0; - dstlen -= srclen; + dstlen -= srclen; - /* Actually perform the mapping(s) specified */ - for (i = 0; i < srclen; i++) - { - WCHAR ch = *src; + /* Actually perform the mapping(s) specified */ + for (i = 0; i < srclen; i++) + { + WCHAR ch = *src; - if (flags & MAP_EXPAND_LIGATURES) - { - expand = get_ligature(ch); - if (expand[0]) - { - if (!dstlen--) - return 0; - dst[0] = expand[0]; - if (expand[2]) - { - if (!dstlen--) - return 0; - *++dst = expand[1]; - ch = expand[2]; - } - else - ch = expand[1]; - dst++; - } - } - else if (flags & MAP_COMPOSITE) - { - /* FIXME */ - } - else if (flags & MAP_PRECOMPOSED) - { - /* FIXME */ - } - if (flags & MAP_FOLDDIGITS) - ch = to_unicode_digit(ch); - if (flags & MAP_FOLDCZONE) - ch = to_unicode_native(ch); + if (flags & MAP_EXPAND_LIGATURES) + { + expand = get_ligature(ch); + if (expand[0]) + { + if (!dstlen--) + return 0; + dst[0] = expand[0]; + if (expand[2]) + { + if (!dstlen--) + return 0; + *++dst = expand[1]; + ch = expand[2]; + } + else + ch = expand[1]; + dst++; + } + } + else if (flags & MAP_COMPOSITE) + { + /* FIXME */ + } + else if (flags & MAP_PRECOMPOSED) + { + /* FIXME */ + } + if (flags & MAP_FOLDDIGITS) + ch = to_unicode_digit(ch); + if (flags & MAP_FOLDCZONE) + ch = to_unicode_native(ch); - *dst++ = ch; - src++; - } - return dst - dstbase; + *dst++ = ch; + src++; + } + return dst - dstbase; } diff --git a/apilibs/kexbases/Kernel32/locale_sortkey.c b/apilibs/kexbases/Kernel32/locale_sortkey.c index e6445c7..acb7550 100755 --- a/apilibs/kexbases/Kernel32/locale_sortkey.c +++ b/apilibs/kexbases/Kernel32/locale_sortkey.c @@ -29,322 +29,322 @@ extern const unsigned int collation_table[]; */ int wine_get_sortkey(int flags, const WCHAR *src, int srclen, BYTE *dst, int dstlen) { - WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ - int key_len[4]; - BYTE *key_ptr[4]; - const WCHAR *src_save = src; - int srclen_save = srclen; + WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ + int key_len[4]; + BYTE *key_ptr[4]; + const WCHAR *src_save = src; + int srclen_save = srclen; - key_len[0] = key_len[1] = key_len[2] = key_len[3] = 0; - for (; srclen; srclen--, src++) - { - int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ - dummy[0] = *src; - if (decomposed_len) - { - int i; - for (i = 0; i < decomposed_len; i++) - { - WCHAR wch = dummy[i]; - unsigned int ce; + key_len[0] = key_len[1] = key_len[2] = key_len[3] = 0; + for (; srclen; srclen--, src++) + { + int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ + dummy[0] = *src; + if (decomposed_len) + { + int i; + for (i = 0; i < decomposed_len; i++) + { + WCHAR wch = dummy[i]; + unsigned int ce; - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; + /* tests show that win2k just ignores NORM_IGNORENONSPACE, + * and skips white space and punctuation characters for + * NORM_IGNORESYMBOLS. + */ + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; - if (flags & NORM_IGNORECASE) wch = tolowerW(wch); + if (flags & NORM_IGNORECASE) wch = tolowerW(wch); - ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; - if (ce != (unsigned int)-1) - { - if (ce >> 16) key_len[0] += 2; - if ((ce >> 8) & 0xff) key_len[1]++; - if ((ce >> 4) & 0x0f) key_len[2]++; - if (ce & 1) - { - if (wch >> 8) key_len[3]++; - key_len[3]++; - } - } - else - { - key_len[0] += 2; - if (wch >> 8) key_len[0]++; - if (wch & 0xff) key_len[0]++; + ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; + if (ce != (unsigned int)-1) + { + if (ce >> 16) key_len[0] += 2; + if ((ce >> 8) & 0xff) key_len[1]++; + if ((ce >> 4) & 0x0f) key_len[2]++; + if (ce & 1) + { + if (wch >> 8) key_len[3]++; + key_len[3]++; + } + } + else + { + key_len[0] += 2; + if (wch >> 8) key_len[0]++; + if (wch & 0xff) key_len[0]++; } - } - } - } + } + } + } - if (!dstlen) /* compute length */ - /* 4 * '\1' + 1 * '\0' + key length */ - return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1; + if (!dstlen) /* compute length */ + /* 4 * '\1' + 1 * '\0' + key length */ + return key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1; - if (dstlen < key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1) - return 0; /* overflow */ + if (dstlen < key_len[0] + key_len[1] + key_len[2] + key_len[3] + 4 + 1) + return 0; /* overflow */ - src = src_save; - srclen = srclen_save; + src = src_save; + srclen = srclen_save; - key_ptr[0] = dst; - key_ptr[1] = key_ptr[0] + key_len[0] + 1; - key_ptr[2] = key_ptr[1] + key_len[1] + 1; - key_ptr[3] = key_ptr[2] + key_len[2] + 1; + key_ptr[0] = dst; + key_ptr[1] = key_ptr[0] + key_len[0] + 1; + key_ptr[2] = key_ptr[1] + key_len[1] + 1; + key_ptr[3] = key_ptr[2] + key_len[2] + 1; - for (; srclen; srclen--, src++) - { - int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ - dummy[0] = *src; - if (decomposed_len) - { - int i; - for (i = 0; i < decomposed_len; i++) - { - WCHAR wch = dummy[i]; - unsigned int ce; + for (; srclen; srclen--, src++) + { + int decomposed_len = 1;/*get_decomposition(*src, dummy, 4);*/ + dummy[0] = *src; + if (decomposed_len) + { + int i; + for (i = 0; i < decomposed_len; i++) + { + WCHAR wch = dummy[i]; + unsigned int ce; - /* tests show that win2k just ignores NORM_IGNORENONSPACE, - * and skips white space and punctuation characters for - * NORM_IGNORESYMBOLS. - */ - if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) - continue; + /* tests show that win2k just ignores NORM_IGNORENONSPACE, + * and skips white space and punctuation characters for + * NORM_IGNORESYMBOLS. + */ + if ((flags & NORM_IGNORESYMBOLS) && (get_char_typeW(wch) & (C1_PUNCT | C1_SPACE))) + continue; - if (flags & NORM_IGNORECASE) wch = tolowerW(wch); + if (flags & NORM_IGNORECASE) wch = tolowerW(wch); - ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; - if (ce != (unsigned int)-1) - { - WCHAR key; - if ((key = ce >> 16)) - { - *key_ptr[0]++ = key >> 8; - *key_ptr[0]++ = key & 0xff; - } - /* make key 1 start from 2 */ - if ((key = (ce >> 8) & 0xff)) *key_ptr[1]++ = key + 1; - /* make key 2 start from 2 */ - if ((key = (ce >> 4) & 0x0f)) *key_ptr[2]++ = key + 1; - /* key 3 is always a character code */ - if (ce & 1) - { - if (wch >> 8) *key_ptr[3]++ = wch >> 8; - if (wch & 0xff) *key_ptr[3]++ = wch & 0xff; - } - } - else - { - *key_ptr[0]++ = 0xff; - *key_ptr[0]++ = 0xfe; - if (wch >> 8) *key_ptr[0]++ = wch >> 8; - if (wch & 0xff) *key_ptr[0]++ = wch & 0xff; - } - } - } - } + ce = collation_table[collation_table[wch >> 8] + (wch & 0xff)]; + if (ce != (unsigned int)-1) + { + WCHAR key; + if ((key = ce >> 16)) + { + *key_ptr[0]++ = key >> 8; + *key_ptr[0]++ = key & 0xff; + } + /* make key 1 start from 2 */ + if ((key = (ce >> 8) & 0xff)) *key_ptr[1]++ = key + 1; + /* make key 2 start from 2 */ + if ((key = (ce >> 4) & 0x0f)) *key_ptr[2]++ = key + 1; + /* key 3 is always a character code */ + if (ce & 1) + { + if (wch >> 8) *key_ptr[3]++ = wch >> 8; + if (wch & 0xff) *key_ptr[3]++ = wch & 0xff; + } + } + else + { + *key_ptr[0]++ = 0xff; + *key_ptr[0]++ = 0xfe; + if (wch >> 8) *key_ptr[0]++ = wch >> 8; + if (wch & 0xff) *key_ptr[0]++ = wch & 0xff; + } + } + } + } - *key_ptr[0] = '\1'; - *key_ptr[1] = '\1'; - *key_ptr[2] = '\1'; - *key_ptr[3]++ = '\1'; - *key_ptr[3] = 0; + *key_ptr[0] = '\1'; + *key_ptr[1] = '\1'; + *key_ptr[2] = '\1'; + *key_ptr[3]++ = '\1'; + *key_ptr[3] = 0; - return key_ptr[3] - dst; + return key_ptr[3] - dst; } static inline int compare_unicode_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) + const WCHAR *str2, int len2) { - unsigned int ce1, ce2; - int ret; + unsigned int ce1, ce2; + int ret; - /* 32-bit collation element table format: - * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, - * case weight - high 4 bit of low 8 bit. - */ - while (len1 > 0 && len2 > 0) - { - if (flags & NORM_IGNORESYMBOLS) - { - int skip = 0; - /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) - { - str1++; - len1--; - skip = 1; - } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) - { - str2++; - len2--; - skip = 1; - } - if (skip) continue; - } + /* 32-bit collation element table format: + * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, + * case weight - high 4 bit of low 8 bit. + */ + while (len1 > 0 && len2 > 0) + { + if (flags & NORM_IGNORESYMBOLS) + { + int skip = 0; + /* FIXME: not tested */ + if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) + { + str1++; + len1--; + skip = 1; + } + if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) + { + str2++; + len2--; + skip = 1; + } + if (skip) continue; + } - /* hyphen and apostrophe are treated differently depending on - * whether SORT_STRINGSORT specified or not - */ - if (!(flags & SORT_STRINGSORT)) - { - if (*str1 == '-' || *str1 == '\'') - { - if (*str2 != '-' && *str2 != '\'') - { - str1++; - len1--; - continue; - } - } - else if (*str2 == '-' || *str2 == '\'') - { - str2++; - len2--; - continue; - } - } + /* hyphen and apostrophe are treated differently depending on + * whether SORT_STRINGSORT specified or not + */ + if (!(flags & SORT_STRINGSORT)) + { + if (*str1 == '-' || *str1 == '\'') + { + if (*str2 != '-' && *str2 != '\'') + { + str1++; + len1--; + continue; + } + } + else if (*str2 == '-' || *str2 == '\'') + { + str2++; + len2--; + continue; + } + } - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; + ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; + ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = (ce1 >> 16) - (ce2 >> 16); - else - ret = *str1 - *str2; + if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) + ret = (ce1 >> 16) - (ce2 >> 16); + else + ret = *str1 - *str2; - if (ret) return ret; + if (ret) return ret; - str1++; - str2++; - len1--; - len2--; - } - return len1 - len2; + str1++; + str2++; + len1--; + len2--; + } + return len1 - len2; } static inline int compare_diacritic_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) + const WCHAR *str2, int len2) { - unsigned int ce1, ce2; - int ret; + unsigned int ce1, ce2; + int ret; - /* 32-bit collation element table format: - * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, - * case weight - high 4 bit of low 8 bit. - */ - while (len1 > 0 && len2 > 0) - { - if (flags & NORM_IGNORESYMBOLS) - { - int skip = 0; - /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) - { - str1++; - len1--; - skip = 1; - } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) - { - str2++; - len2--; - skip = 1; - } - if (skip) continue; - } + /* 32-bit collation element table format: + * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, + * case weight - high 4 bit of low 8 bit. + */ + while (len1 > 0 && len2 > 0) + { + if (flags & NORM_IGNORESYMBOLS) + { + int skip = 0; + /* FIXME: not tested */ + if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) + { + str1++; + len1--; + skip = 1; + } + if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) + { + str2++; + len2--; + skip = 1; + } + if (skip) continue; + } - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; + ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; + ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = ((ce1 >> 8) & 0xff) - ((ce2 >> 8) & 0xff); - else - ret = *str1 - *str2; + if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) + ret = ((ce1 >> 8) & 0xff) - ((ce2 >> 8) & 0xff); + else + ret = *str1 - *str2; - if (ret) return ret; + if (ret) return ret; - str1++; - str2++; - len1--; - len2--; - } - return len1 - len2; + str1++; + str2++; + len1--; + len2--; + } + return len1 - len2; } static inline int compare_case_weights(int flags, const WCHAR *str1, int len1, - const WCHAR *str2, int len2) + const WCHAR *str2, int len2) { - unsigned int ce1, ce2; - int ret; + unsigned int ce1, ce2; + int ret; - /* 32-bit collation element table format: - * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, - * case weight - high 4 bit of low 8 bit. - */ - while (len1 > 0 && len2 > 0) - { - if (flags & NORM_IGNORESYMBOLS) - { - int skip = 0; - /* FIXME: not tested */ - if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) - { - str1++; - len1--; - skip = 1; - } - if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) - { - str2++; - len2--; - skip = 1; - } - if (skip) continue; - } + /* 32-bit collation element table format: + * unicode weight - high 16 bit, diacritic weight - high 8 bit of low 16 bit, + * case weight - high 4 bit of low 8 bit. + */ + while (len1 > 0 && len2 > 0) + { + if (flags & NORM_IGNORESYMBOLS) + { + int skip = 0; + /* FIXME: not tested */ + if (get_char_typeW(*str1) & (C1_PUNCT | C1_SPACE)) + { + str1++; + len1--; + skip = 1; + } + if (get_char_typeW(*str2) & (C1_PUNCT | C1_SPACE)) + { + str2++; + len2--; + skip = 1; + } + if (skip) continue; + } - ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; - ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; + ce1 = collation_table[collation_table[*str1 >> 8] + (*str1 & 0xff)]; + ce2 = collation_table[collation_table[*str2 >> 8] + (*str2 & 0xff)]; - if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) - ret = ((ce1 >> 4) & 0x0f) - ((ce2 >> 4) & 0x0f); - else - ret = *str1 - *str2; + if (ce1 != (unsigned int)-1 && ce2 != (unsigned int)-1) + ret = ((ce1 >> 4) & 0x0f) - ((ce2 >> 4) & 0x0f); + else + ret = *str1 - *str2; - if (ret) return ret; + if (ret) return ret; - str1++; - str2++; - len1--; - len2--; - } - return len1 - len2; + str1++; + str2++; + len1--; + len2--; + } + return len1 - len2; } static inline int real_length(const WCHAR *str, int len) { - while (len && !str[len - 1]) len--; - return len; + while (len && !str[len - 1]) len--; + return len; } int wine_compare_string(int flags, const WCHAR *str1, int len1, const WCHAR *str2, int len2) { - int ret; + int ret; - len1 = real_length(str1, len1); - len2 = real_length(str2, len2); + len1 = real_length(str1, len1); + len2 = real_length(str2, len2); - ret = compare_unicode_weights(flags, str1, len1, str2, len2); - if (!ret) - { - if (!(flags & NORM_IGNORENONSPACE)) - ret = compare_diacritic_weights(flags, str1, len1, str2, len2); - if (!ret && !(flags & NORM_IGNORECASE)) - ret = compare_case_weights(flags, str1, len1, str2, len2); - } - return ret; + ret = compare_unicode_weights(flags, str1, len1, str2, len2); + if (!ret) + { + if (!(flags & NORM_IGNORENONSPACE)) + ret = compare_diacritic_weights(flags, str1, len1, str2, len2); + if (!ret && !(flags & NORM_IGNORECASE)) + ret = compare_case_weights(flags, str1, len1, str2, len2); + } + return ret; } diff --git a/apilibs/kexbases/Kernel32/locale_unicode.h b/apilibs/kexbases/Kernel32/locale_unicode.h index 60f2175..6e78703 100755 --- a/apilibs/kexbases/Kernel32/locale_unicode.h +++ b/apilibs/kexbases/Kernel32/locale_unicode.h @@ -62,37 +62,37 @@ typedef unsigned long ULONG_PTR; /* code page info common to SBCS and DBCS */ struct cp_info { - unsigned int codepage; /* codepage id */ - unsigned int char_size; /* char size (1 or 2 bytes) */ - WCHAR def_char; /* default char value (can be double-byte) */ - WCHAR def_unicode_char; /* default Unicode char value */ - const char *name; /* code page name */ + unsigned int codepage; /* codepage id */ + unsigned int char_size; /* char size (1 or 2 bytes) */ + WCHAR def_char; /* default char value (can be double-byte) */ + WCHAR def_unicode_char; /* default Unicode char value */ + const char *name; /* code page name */ }; struct sbcs_table { - struct cp_info info; - const WCHAR *cp2uni; /* code page -> Unicode map */ - const WCHAR *cp2uni_glyphs; /* code page -> Unicode map with glyph chars */ - const unsigned char *uni2cp_low; /* Unicode -> code page map */ - const unsigned short *uni2cp_high; + struct cp_info info; + const WCHAR *cp2uni; /* code page -> Unicode map */ + const WCHAR *cp2uni_glyphs; /* code page -> Unicode map with glyph chars */ + const unsigned char *uni2cp_low; /* Unicode -> code page map */ + const unsigned short *uni2cp_high; }; struct dbcs_table { - struct cp_info info; - const WCHAR *cp2uni; /* code page -> Unicode map */ - const unsigned char *cp2uni_leadbytes; - const unsigned short *uni2cp_low; /* Unicode -> code page map */ - const unsigned short *uni2cp_high; - unsigned char lead_bytes[12]; /* lead bytes ranges */ + struct cp_info info; + const WCHAR *cp2uni; /* code page -> Unicode map */ + const unsigned char *cp2uni_leadbytes; + const unsigned short *uni2cp_low; /* Unicode -> code page map */ + const unsigned short *uni2cp_high; + unsigned char lead_bytes[12]; /* lead bytes ranges */ }; union cptable { - struct cp_info info; - struct sbcs_table sbcs; - struct dbcs_table dbcs; + struct cp_info info; + struct sbcs_table sbcs; + struct dbcs_table dbcs; }; extern const union cptable *wine_cp_get_table( unsigned int codepage ); @@ -127,21 +127,21 @@ extern int vsnprintfW( WCHAR *str, size_t len, const WCHAR *format, va_list vali WINE_UNICODE_INLINE int wine_is_dbcs_leadbyte( const union cptable *table, unsigned char ch ); WINE_UNICODE_INLINE int wine_is_dbcs_leadbyte( const union cptable *table, unsigned char ch ) { - return (table->info.char_size == 2) && (table->dbcs.cp2uni_leadbytes[ch]); + return (table->info.char_size == 2) && (table->dbcs.cp2uni_leadbytes[ch]); } WINE_UNICODE_INLINE WCHAR tolowerW( WCHAR ch ); WINE_UNICODE_INLINE WCHAR tolowerW( WCHAR ch ) { - extern WINE_UNICODE_API const WCHAR wine_casemap_lower[]; - return ch + wine_casemap_lower[wine_casemap_lower[ch >> 8] + (ch & 0xff)]; + extern WINE_UNICODE_API const WCHAR wine_casemap_lower[]; + return ch + wine_casemap_lower[wine_casemap_lower[ch >> 8] + (ch & 0xff)]; } WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ); WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ) { - extern WINE_UNICODE_API const WCHAR wine_casemap_upper[]; - return ch + wine_casemap_upper[wine_casemap_upper[ch >> 8] + (ch & 0xff)]; + extern WINE_UNICODE_API const WCHAR wine_casemap_upper[]; + return ch + wine_casemap_upper[wine_casemap_upper[ch >> 8] + (ch & 0xff)]; } /* the character type contains the C1_* flags in the low 12 bits */ @@ -149,74 +149,74 @@ WINE_UNICODE_INLINE WCHAR toupperW( WCHAR ch ) WINE_UNICODE_INLINE unsigned short get_char_typeW( WCHAR ch ); WINE_UNICODE_INLINE unsigned short get_char_typeW( WCHAR ch ) { - extern WINE_UNICODE_API const unsigned short wine_wctype_table[]; - return wine_wctype_table[wine_wctype_table[ch >> 8] + (ch & 0xff)]; + extern WINE_UNICODE_API const unsigned short wine_wctype_table[]; + return wine_wctype_table[wine_wctype_table[ch >> 8] + (ch & 0xff)]; } WINE_UNICODE_INLINE int iscntrlW( WCHAR wc ); WINE_UNICODE_INLINE int iscntrlW( WCHAR wc ) { - return get_char_typeW(wc) & C1_CNTRL; + return get_char_typeW(wc) & C1_CNTRL; } WINE_UNICODE_INLINE int ispunctW( WCHAR wc ); WINE_UNICODE_INLINE int ispunctW( WCHAR wc ) { - return get_char_typeW(wc) & C1_PUNCT; + return get_char_typeW(wc) & C1_PUNCT; } WINE_UNICODE_INLINE int isspaceW( WCHAR wc ); WINE_UNICODE_INLINE int isspaceW( WCHAR wc ) { - return get_char_typeW(wc) & C1_SPACE; + return get_char_typeW(wc) & C1_SPACE; } WINE_UNICODE_INLINE int isdigitW( WCHAR wc ); WINE_UNICODE_INLINE int isdigitW( WCHAR wc ) { - return get_char_typeW(wc) & C1_DIGIT; + return get_char_typeW(wc) & C1_DIGIT; } WINE_UNICODE_INLINE int isxdigitW( WCHAR wc ); WINE_UNICODE_INLINE int isxdigitW( WCHAR wc ) { - return get_char_typeW(wc) & C1_XDIGIT; + return get_char_typeW(wc) & C1_XDIGIT; } WINE_UNICODE_INLINE int islowerW( WCHAR wc ); WINE_UNICODE_INLINE int islowerW( WCHAR wc ) { - return get_char_typeW(wc) & C1_LOWER; + return get_char_typeW(wc) & C1_LOWER; } WINE_UNICODE_INLINE int isupperW( WCHAR wc ); WINE_UNICODE_INLINE int isupperW( WCHAR wc ) { - return get_char_typeW(wc) & C1_UPPER; + return get_char_typeW(wc) & C1_UPPER; } WINE_UNICODE_INLINE int isalnumW( WCHAR wc ); WINE_UNICODE_INLINE int isalnumW( WCHAR wc ) { - return get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER); + return get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER); } WINE_UNICODE_INLINE int isalphaW( WCHAR wc ); WINE_UNICODE_INLINE int isalphaW( WCHAR wc ) { - return get_char_typeW(wc) & (C1_ALPHA|C1_LOWER|C1_UPPER); + return get_char_typeW(wc) & (C1_ALPHA|C1_LOWER|C1_UPPER); } WINE_UNICODE_INLINE int isgraphW( WCHAR wc ); WINE_UNICODE_INLINE int isgraphW( WCHAR wc ) { - return get_char_typeW(wc) & (C1_ALPHA|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); + return get_char_typeW(wc) & (C1_ALPHA|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); } WINE_UNICODE_INLINE int isprintW( WCHAR wc ); WINE_UNICODE_INLINE int isprintW( WCHAR wc ) { - return get_char_typeW(wc) & (C1_ALPHA|C1_BLANK|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); + return get_char_typeW(wc) & (C1_ALPHA|C1_BLANK|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); } /* some useful string manipulation routines */ @@ -224,17 +224,17 @@ WINE_UNICODE_INLINE int isprintW( WCHAR wc ) WINE_UNICODE_INLINE unsigned int strlenW( const WCHAR *str ); WINE_UNICODE_INLINE unsigned int strlenW( const WCHAR *str ) { - const WCHAR *s = str; - while (*s) s++; - return s - str; + const WCHAR *s = str; + while (*s) s++; + return s - str; } WINE_UNICODE_INLINE WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ); WINE_UNICODE_INLINE WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ) { - WCHAR *p = dst; - while ((*p++ = *src++)); - return dst; + WCHAR *p = dst; + while ((*p++ = *src++)); + return dst; } /* strncpy doesn't do what you think, don't use it */ @@ -243,106 +243,106 @@ WINE_UNICODE_INLINE WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ) WINE_UNICODE_INLINE int strcmpW( const WCHAR *str1, const WCHAR *str2 ); WINE_UNICODE_INLINE int strcmpW( const WCHAR *str1, const WCHAR *str2 ) { - while (*str1 && (*str1 == *str2)) { str1++; str2++; } - return *str1 - *str2; + while (*str1 && (*str1 == *str2)) { str1++; str2++; } + return *str1 - *str2; } WINE_UNICODE_INLINE int strncmpW( const WCHAR *str1, const WCHAR *str2, int n ); WINE_UNICODE_INLINE int strncmpW( const WCHAR *str1, const WCHAR *str2, int n ) { - if (n <= 0) return 0; - while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; } - return *str1 - *str2; + if (n <= 0) return 0; + while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; } + return *str1 - *str2; } WINE_UNICODE_INLINE WCHAR *strcatW( WCHAR *dst, const WCHAR *src ); WINE_UNICODE_INLINE WCHAR *strcatW( WCHAR *dst, const WCHAR *src ) { - strcpyW( dst + strlenW(dst), src ); - return dst; + strcpyW( dst + strlenW(dst), src ); + return dst; } WINE_UNICODE_INLINE WCHAR *strchrW( const WCHAR *str, WCHAR ch ); WINE_UNICODE_INLINE WCHAR *strchrW( const WCHAR *str, WCHAR ch ) { - do { if (*str == ch) return (WCHAR *)(ULONG_PTR)str; } while (*str++); - return NULL; + do { if (*str == ch) return (WCHAR *)(ULONG_PTR)str; } while (*str++); + return NULL; } WINE_UNICODE_INLINE WCHAR *strrchrW( const WCHAR *str, WCHAR ch ); WINE_UNICODE_INLINE WCHAR *strrchrW( const WCHAR *str, WCHAR ch ) { - WCHAR *ret = NULL; - do { if (*str == ch) ret = (WCHAR *)(ULONG_PTR)str; } while (*str++); - return ret; + WCHAR *ret = NULL; + do { if (*str == ch) ret = (WCHAR *)(ULONG_PTR)str; } while (*str++); + return ret; } WINE_UNICODE_INLINE WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept ); WINE_UNICODE_INLINE WCHAR *strpbrkW( const WCHAR *str, const WCHAR *accept ) { - for ( ; *str; str++) if (strchrW( accept, *str )) return (WCHAR *)(ULONG_PTR)str; - return NULL; + for ( ; *str; str++) if (strchrW( accept, *str )) return (WCHAR *)(ULONG_PTR)str; + return NULL; } WINE_UNICODE_INLINE size_t strspnW( const WCHAR *str, const WCHAR *accept ); WINE_UNICODE_INLINE size_t strspnW( const WCHAR *str, const WCHAR *accept ) { - const WCHAR *ptr; - for (ptr = str; *ptr; ptr++) if (!strchrW( accept, *ptr )) break; - return ptr - str; + const WCHAR *ptr; + for (ptr = str; *ptr; ptr++) if (!strchrW( accept, *ptr )) break; + return ptr - str; } WINE_UNICODE_INLINE size_t strcspnW( const WCHAR *str, const WCHAR *reject ); WINE_UNICODE_INLINE size_t strcspnW( const WCHAR *str, const WCHAR *reject ) { - const WCHAR *ptr; - for (ptr = str; *ptr; ptr++) if (strchrW( reject, *ptr )) break; - return ptr - str; + const WCHAR *ptr; + for (ptr = str; *ptr; ptr++) if (strchrW( reject, *ptr )) break; + return ptr - str; } WINE_UNICODE_INLINE WCHAR *strlwrW( WCHAR *str ); WINE_UNICODE_INLINE WCHAR *strlwrW( WCHAR *str ) { - WCHAR *ret = str; - while ((*str = tolowerW(*str))) str++; - return ret; + WCHAR *ret = str; + while ((*str = tolowerW(*str))) str++; + return ret; } WINE_UNICODE_INLINE WCHAR *struprW( WCHAR *str ); WINE_UNICODE_INLINE WCHAR *struprW( WCHAR *str ) { - WCHAR *ret = str; - while ((*str = toupperW(*str))) str++; - return ret; + WCHAR *ret = str; + while ((*str = toupperW(*str))) str++; + return ret; } WINE_UNICODE_INLINE WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n ); WINE_UNICODE_INLINE WCHAR *memchrW( const WCHAR *ptr, WCHAR ch, size_t n ) { - const WCHAR *end; - for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) return (WCHAR *)(ULONG_PTR)ptr; - return NULL; + const WCHAR *end; + for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) return (WCHAR *)(ULONG_PTR)ptr; + return NULL; } WINE_UNICODE_INLINE WCHAR *memrchrW( const WCHAR *ptr, WCHAR ch, size_t n ); WINE_UNICODE_INLINE WCHAR *memrchrW( const WCHAR *ptr, WCHAR ch, size_t n ) { - const WCHAR *end; - WCHAR *ret = NULL; - for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) ret = (WCHAR *)(ULONG_PTR)ptr; - return ret; + const WCHAR *end; + WCHAR *ret = NULL; + for (end = ptr + n; ptr < end; ptr++) if (*ptr == ch) ret = (WCHAR *)(ULONG_PTR)ptr; + return ret; } /*WINE_UNICODE_INLINE long int atolW( const WCHAR *str ); WINE_UNICODE_INLINE long int atolW( const WCHAR *str ) { - return strtolW( str, (WCHAR **)0, 10 ); + return strtolW( str, (WCHAR **)0, 10 ); } WINE_UNICODE_INLINE int atoiW( const WCHAR *str ); WINE_UNICODE_INLINE int atoiW( const WCHAR *str ) { - return (int)atolW( str ); + return (int)atolW( str ); }*/ #undef WINE_UNICODE_INLINE diff --git a/apilibs/kexbases/Kernel32/locale_wctype.c b/apilibs/kexbases/Kernel32/locale_wctype.c index 2546938..2a526d6 100755 --- a/apilibs/kexbases/Kernel32/locale_wctype.c +++ b/apilibs/kexbases/Kernel32/locale_wctype.c @@ -4,2054 +4,2054 @@ extern const unsigned short wine_wctype_table[]; const unsigned short wine_wctype_table[16384] = { - /* offsets */ - 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, - 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x1000, - 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, - 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x0900, 0x1d00, 0x1e00, 0x1f00, - 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, - 0x2800, 0x2500, 0x2500, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, - 0x2e00, 0x2f00, 0x3000, 0x3100, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3200, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3300, - 0x3400, 0x1600, 0x1600, 0x1600, 0x3500, 0x0900, 0x0900, 0x3600, - 0x3700, 0x0900, 0x0900, 0x0900, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, - 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3800, - 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, - 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, - 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, - 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, - 0x3900, 0x1600, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, - /* values */ - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x9068, 0x8028, 0x9028, 0xa028, 0x8028, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x8020, 0x8020, 0x9020, - 0xa048, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x4010, 0x7010, 0x4010, 0x7010, 0x7010, - 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, - 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x8028, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x7048, 0xb010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x1102, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, - 0x5010, 0x5010, 0x3010, 0x3010, 0xb010, 0x1102, 0xb010, 0xb010, - 0xb010, 0x3010, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, - 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, - 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, - 0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, - 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1101, 0x1102, 0x1102, 0x1100, 0x1101, 0x1102, 0x1102, 0x1102, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1103, 0x1102, 0x1101, - 0x1103, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1100, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0112, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1010, 0x1102, 0x1102, 0x1102, 0xb010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1101, 0xb010, - 0x1101, 0x1101, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x1101, - 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, - 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0xb010, 0x1101, - 0x1102, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, - 0x0010, 0x0010, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, - 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x0000, 0x1010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x0010, - 0x2010, 0x0010, 0x0010, 0x2010, 0x0010, 0x0010, 0x2010, 0x0010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2010, 0x7010, 0x2010, 0xb010, 0xb010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2010, 0x0000, 0x0000, 0x2010, 0x2010, - 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, - 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, - 0x6004, 0x6004, 0x5010, 0x6010, 0x6010, 0x2010, 0x2100, 0x2100, - 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0x2100, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x6000, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x2010, 0x0010, - 0x0010, 0xb010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2100, 0x2100, - 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, - 0x3004, 0x3004, 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x2100, - 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, - 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x0000, 0x0020, - 0x2100, 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, - 0x2004, 0x2004, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x2010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x2010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x0010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, - 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0010, 0x0010, 0x1010, 0x1010, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, - 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, - 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1100, 0x1100, 0x5010, 0x5010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, - 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x0000, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, - 0x0010, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x0010, 0x0010, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, - 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, - 0x0010, 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, - 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x0000, 0x5010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, - 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x0010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x1010, - 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1010, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0010, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, - 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, - 0x0010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, - 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x5010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, - 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0010, 0x0010, - 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, - 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x0000, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, 0x1010, - 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, - 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x5010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, - 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, - 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1010, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, 0x0010, - 0x1010, 0x0010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x0010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, - 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x1100, 0x1100, 0x0000, 0x1010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, - 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, - 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xa008, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, - 0x1100, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1000, 0x1000, 0x1010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x5010, 0x1100, 0x0010, 0x0000, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0030, 0x0030, 0x0030, 0xa028, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, - 0x0010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x1010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, - 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0x1102, 0xb010, - 0xb010, 0xb010, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, - 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0xb010, 0xb010, 0xb010, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, - 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0x0000, - 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, - 0xa008, 0xa008, 0xa008, 0x0000, 0x0020, 0x0020, 0x1020, 0x2020, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xa008, 0x8008, 0xb020, 0xb020, 0xb020, 0xb020, 0xb020, 0x7008, - 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x7010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xa008, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, - 0x3010, 0x1102, 0x0000, 0x0000, 0x3010, 0x3010, 0x3010, 0x3010, - 0x3010, 0x3010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x1102, - 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, - 0x3010, 0x3010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, - 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, - 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, - 0xb010, 0xb010, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1102, 0xb010, 0x1101, 0xb010, 0xb010, - 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0xb010, 0x1101, 0xb010, - 0x1101, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x5010, 0x1102, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1102, 0xb010, 0xb010, 0x1102, 0x1102, 0x1101, 0x1101, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0x1102, 0x1102, - 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x1102, 0x0000, - 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, - 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1010, 0x1010, 0x1010, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x4010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, - 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, - 0x3010, 0x3010, 0x3010, 0x3010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1111, 0x1111, - 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, - 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, - 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, - 0x1112, 0x1112, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, - 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0x0000, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, - 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, - 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, - 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1101, 0x1102, 0x1102, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, - 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0xa048, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1100, 0x1010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1100, 0xb010, 0xb010, 0xb010, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0010, 0x0010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1100, - 0xb010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0xb010, 0x1010, 0x1010, 0x1010, 0x1100, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, - 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x0010, 0x0010, 0x1010, - 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0xb010, 0xb010, 0xb010, 0xb010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x0010, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x4010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x0000, - 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0xb010, 0xb010, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0xb010, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0x7010, 0xb010, 0x7010, 0x0000, 0xb010, 0x7010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, - 0xb010, 0xb010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x0000, - 0xb010, 0x5010, 0x5010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, - 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0060, - 0x0000, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0x4010, 0x7010, 0x4010, 0x7010, 0x7010, - 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, - 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, - 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, - 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, - 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, - 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, - 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x5010, 0x5010, 0x0000, - 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0xb020, 0xb020, 0xb020, 0xb010, 0xb010, 0x0000, 0x0000 + /* offsets */ + 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, + 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x1000, + 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, + 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x0900, 0x1d00, 0x1e00, 0x1f00, + 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, + 0x2800, 0x2500, 0x2500, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, + 0x2e00, 0x2f00, 0x3000, 0x3100, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3200, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3300, + 0x3400, 0x1600, 0x1600, 0x1600, 0x3500, 0x0900, 0x0900, 0x3600, + 0x3700, 0x0900, 0x0900, 0x0900, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, + 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x3800, + 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, + 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, + 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, + 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, 0x3900, + 0x3900, 0x1600, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, + /* values */ + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x9068, 0x8028, 0x9028, 0xa028, 0x8028, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x8020, 0x8020, 0x9020, + 0xa048, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x4010, 0x7010, 0x4010, 0x7010, 0x7010, + 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, + 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x8028, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x7048, 0xb010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x1102, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, + 0x5010, 0x5010, 0x3010, 0x3010, 0xb010, 0x1102, 0xb010, 0xb010, + 0xb010, 0x3010, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, + 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, + 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, + 0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, + 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1101, 0x1102, 0x1102, 0x1100, 0x1101, 0x1102, 0x1102, 0x1102, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1103, 0x1102, 0x1101, + 0x1103, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1100, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0112, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1010, 0x1102, 0x1102, 0x1102, 0xb010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1101, 0xb010, + 0x1101, 0x1101, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x1101, + 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, + 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0xb010, 0x1101, + 0x1102, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, + 0x0010, 0x0010, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, + 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x0000, 0x1010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x0010, + 0x2010, 0x0010, 0x0010, 0x2010, 0x0010, 0x0010, 0x2010, 0x0010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2010, 0x7010, 0x2010, 0xb010, 0xb010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2010, 0x0000, 0x0000, 0x2010, 0x2010, + 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, + 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, + 0x6004, 0x6004, 0x5010, 0x6010, 0x6010, 0x2010, 0x2100, 0x2100, + 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0x2100, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x6000, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x2010, 0x0010, + 0x0010, 0xb010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2100, 0x2100, + 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, + 0x3004, 0x3004, 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x2100, + 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, + 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x0000, 0x0020, + 0x2100, 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, 0x2004, + 0x2004, 0x2004, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x2010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x2010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, + 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0010, 0x0010, 0x1010, 0x1010, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, + 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, + 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1100, 0x1100, 0x5010, 0x5010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, + 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x0000, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, + 0x0010, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x0010, 0x0010, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, + 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, + 0x0010, 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, + 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x0000, 0x5010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, + 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x0010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x1010, + 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1010, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0010, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, + 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, + 0x0010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, + 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x5010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, + 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0010, 0x0010, + 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, + 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x0000, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, 0x1010, + 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, + 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x5010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, + 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, + 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1010, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, 0x0010, + 0x1010, 0x0010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x0010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, + 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x1100, 0x1100, 0x0000, 0x1010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, + 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, + 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xa008, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, + 0x1100, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1000, 0x1000, 0x1010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x5010, 0x1100, 0x0010, 0x0000, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0030, 0x0030, 0x0030, 0xa028, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, + 0x0010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x1010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, + 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0x1102, 0xb010, + 0xb010, 0xb010, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, + 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0xb010, 0xb010, 0xb010, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, + 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0x0000, + 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, + 0xa008, 0xa008, 0xa008, 0x0000, 0x0020, 0x0020, 0x1020, 0x2020, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xa008, 0x8008, 0xb020, 0xb020, 0xb020, 0xb020, 0xb020, 0x7008, + 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x7010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xa008, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x3010, 0x1102, 0x0000, 0x0000, 0x3010, 0x3010, 0x3010, 0x3010, + 0x3010, 0x3010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x1102, + 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, + 0x3010, 0x3010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, + 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, + 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, + 0xb010, 0xb010, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1102, 0xb010, 0x1101, 0xb010, 0xb010, + 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0xb010, 0x1101, 0xb010, + 0x1101, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x5010, 0x1102, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1102, 0xb010, 0xb010, 0x1102, 0x1102, 0x1101, 0x1101, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0x1102, 0x1102, + 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x1102, 0x0000, + 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, + 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, + 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, + 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, + 0x1010, 0x1010, 0x1010, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x4010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, + 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, + 0x3010, 0x3010, 0x3010, 0x3010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1111, 0x1111, + 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, + 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, + 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, + 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, + 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, + 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, + 0x1112, 0x1112, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, + 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0x0000, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, + 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, + 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, + 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1101, 0x1102, 0x1102, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, + 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0xa048, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1100, 0x1010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1100, 0xb010, 0xb010, 0xb010, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0010, 0x0010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1100, + 0xb010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0xb010, 0x1010, 0x1010, 0x1010, 0x1100, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, + 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x0010, 0x0010, 0x1010, + 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0xb010, 0xb010, 0xb010, 0xb010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x0010, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x4010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x0000, + 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0xb010, 0xb010, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0xb010, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0x7010, 0xb010, 0x7010, 0x0000, 0xb010, 0x7010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, + 0xb010, 0xb010, 0x4010, 0x4010, 0xb010, 0xb010, 0xb010, 0x0000, + 0xb010, 0x5010, 0x5010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, + 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0060, + 0x0000, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0x4010, 0x7010, 0x4010, 0x7010, 0x7010, + 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, + 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, + 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, + 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, + 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, + 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, + 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x5010, 0x5010, 0x0000, + 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0xb020, 0xb020, 0xb020, 0xb010, 0xb010, 0x0000, 0x0000 }; diff --git a/apilibs/kexbases/Kernel32/pointer.c b/apilibs/kexbases/Kernel32/pointer.c index a9a403f..4411779 100755 --- a/apilibs/kexbases/Kernel32/pointer.c +++ b/apilibs/kexbases/Kernel32/pointer.c @@ -25,17 +25,17 @@ BOOL WINAPI SystemFunction036_new(PVOID pbBuffer, ULONG dwLen); static LONG get_pointer_obfuscator(void) { - static LONG obfuscator; + static LONG obfuscator; - if (obfuscator == 0) - { + if (obfuscator == 0) + { LONG rand; SystemFunction036_new(&rand, sizeof(rand)); rand |= 0xc0000000; InterlockedCompareExchange(&obfuscator, rand, 0); - } + } - return obfuscator; + return obfuscator; } /* FIXME: EncodePointer/DecodePointer should use per-process obfuscator */ @@ -46,6 +46,6 @@ static LONG get_pointer_obfuscator(void) /* MAKE_EXPORT XorPointer=DecodeSystemPointer */ PVOID WINAPI XorPointer(PVOID ptr) { - LONG ptrval = (LONG) ptr; - return (PVOID)(ptrval ^ get_pointer_obfuscator()); + LONG ptrval = (LONG) ptr; + return (PVOID)(ptrval ^ get_pointer_obfuscator()); } diff --git a/apilibs/kexbases/Kernel32/time.c b/apilibs/kexbases/Kernel32/time.c index c1ac9fb..ed77753 100755 --- a/apilibs/kexbases/Kernel32/time.c +++ b/apilibs/kexbases/Kernel32/time.c @@ -23,21 +23,21 @@ #include "common.h" #define LL2FILETIME( ll, pft )\ - (pft)->dwLowDateTime = (UINT)(ll); \ - (pft)->dwHighDateTime = (UINT)((ll) >> 32); + (pft)->dwLowDateTime = (UINT)(ll); \ + (pft)->dwHighDateTime = (UINT)((ll) >> 32); #define FILETIME2LL( pft, ll) \ - ll = (((LONGLONG)((pft)->dwHighDateTime))<<32) + (pft)-> dwLowDateTime ; + ll = (((LONGLONG)((pft)->dwHighDateTime))<<32) + (pft)-> dwLowDateTime ; static const int MonthLengths[2][12] = { - { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, - { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } + { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, + { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; static inline int IsLeapYear(int Year) { - return Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 1 : 0; + return Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0) ? 1 : 0; } @@ -58,48 +58,48 @@ static inline int IsLeapYear(int Year) * -2 if an error occurs */ static int TIME_DayLightCompareDate( const SYSTEMTIME *date, - const SYSTEMTIME *compareDate ) + const SYSTEMTIME *compareDate ) { - int limit_day, dayinsecs; + int limit_day, dayinsecs; - if (date->wMonth < compareDate->wMonth) - return -1; /* We are in a month before the date limit. */ + if (date->wMonth < compareDate->wMonth) + return -1; /* We are in a month before the date limit. */ - if (date->wMonth > compareDate->wMonth) - return 1; /* We are in a month after the date limit. */ + if (date->wMonth > compareDate->wMonth) + return 1; /* We are in a month after the date limit. */ - /* if year is 0 then date is in day-of-week format, otherwise - * it's absolute date. - */ - if (compareDate->wYear == 0) - { - WORD First; - /* compareDate->wDay is interpreted as number of the week in the month - * 5 means: the last week in the month */ - int weekofmonth = compareDate->wDay; - /* calculate the day of the first DayOfWeek in the month */ - First = ( 6 + compareDate->wDayOfWeek - date->wDayOfWeek + date->wDay - ) % 7 + 1; - limit_day = First + 7 * (weekofmonth - 1); - /* check needed for the 5th weekday of the month */ - if(limit_day > MonthLengths[date->wMonth==2 && IsLeapYear(date->wYear)] - [date->wMonth - 1]) - limit_day -= 7; - } - else - { - limit_day = compareDate->wDay; - } + /* if year is 0 then date is in day-of-week format, otherwise + * it's absolute date. + */ + if (compareDate->wYear == 0) + { + WORD First; + /* compareDate->wDay is interpreted as number of the week in the month + * 5 means: the last week in the month */ + int weekofmonth = compareDate->wDay; + /* calculate the day of the first DayOfWeek in the month */ + First = ( 6 + compareDate->wDayOfWeek - date->wDayOfWeek + date->wDay + ) % 7 + 1; + limit_day = First + 7 * (weekofmonth - 1); + /* check needed for the 5th weekday of the month */ + if(limit_day > MonthLengths[date->wMonth==2 && IsLeapYear(date->wYear)] + [date->wMonth - 1]) + limit_day -= 7; + } + else + { + limit_day = compareDate->wDay; + } - /* convert to seconds */ - limit_day = ((limit_day * 24 + compareDate->wHour) * 60 + - compareDate->wMinute ) * 60; - dayinsecs = ((date->wDay * 24 + date->wHour) * 60 + - date->wMinute ) * 60 + date->wSecond; - /* and compare */ - return dayinsecs < limit_day ? -1 : - dayinsecs > limit_day ? 1 : - 0; /* date is equal to the date limit. */ + /* convert to seconds */ + limit_day = ((limit_day * 24 + compareDate->wHour) * 60 + + compareDate->wMinute ) * 60; + dayinsecs = ((date->wDay * 24 + date->wHour) * 60 + + date->wMinute ) * 60 + date->wSecond; + /* and compare */ + return dayinsecs < limit_day ? -1 : + dayinsecs > limit_day ? 1 : + 0; /* date is equal to the date limit. */ } /*********************************************************************** @@ -119,74 +119,74 @@ static int TIME_DayLightCompareDate( const SYSTEMTIME *date, * TIME_ZONE_ID_DAYLIGHT Current time is daylight savings time */ static DWORD TIME_CompTimeZoneID ( const TIME_ZONE_INFORMATION *pTZinfo, - FILETIME *lpFileTime, BOOL islocal ) + FILETIME *lpFileTime, BOOL islocal ) { - int ret; - BOOL beforeStandardDate, afterDaylightDate; - DWORD retval = TIME_ZONE_ID_INVALID; - LONGLONG llTime = 0; /* initialized to prevent gcc complaining */ - SYSTEMTIME SysTime; - FILETIME ftTemp; + int ret; + BOOL beforeStandardDate, afterDaylightDate; + DWORD retval = TIME_ZONE_ID_INVALID; + LONGLONG llTime = 0; /* initialized to prevent gcc complaining */ + SYSTEMTIME SysTime; + FILETIME ftTemp; - if (pTZinfo->DaylightDate.wMonth != 0) - { - /* if year is 0 then date is in day-of-week format, otherwise - * it's absolute date. - */ - if (pTZinfo->StandardDate.wMonth == 0 || - (pTZinfo->StandardDate.wYear == 0 && - (pTZinfo->StandardDate.wDay<1 || - pTZinfo->StandardDate.wDay>5 || - pTZinfo->DaylightDate.wDay<1 || - pTZinfo->DaylightDate.wDay>5))) - { - SetLastError(ERROR_INVALID_PARAMETER); - return TIME_ZONE_ID_INVALID; - } + if (pTZinfo->DaylightDate.wMonth != 0) + { + /* if year is 0 then date is in day-of-week format, otherwise + * it's absolute date. + */ + if (pTZinfo->StandardDate.wMonth == 0 || + (pTZinfo->StandardDate.wYear == 0 && + (pTZinfo->StandardDate.wDay<1 || + pTZinfo->StandardDate.wDay>5 || + pTZinfo->DaylightDate.wDay<1 || + pTZinfo->DaylightDate.wDay>5))) + { + SetLastError(ERROR_INVALID_PARAMETER); + return TIME_ZONE_ID_INVALID; + } - if (!islocal) { - FILETIME2LL( lpFileTime, llTime ); - llTime -= ( pTZinfo->Bias + pTZinfo->DaylightBias ) - * (LONGLONG)600000000; - LL2FILETIME( llTime, &ftTemp) - lpFileTime = &ftTemp; - } + if (!islocal) { + FILETIME2LL( lpFileTime, llTime ); + llTime -= ( pTZinfo->Bias + pTZinfo->DaylightBias ) + * (LONGLONG)600000000; + LL2FILETIME( llTime, &ftTemp) + lpFileTime = &ftTemp; + } - FileTimeToSystemTime(lpFileTime, &SysTime); - - /* check for daylight savings */ - ret = TIME_DayLightCompareDate( &SysTime, &pTZinfo->StandardDate); - if (ret == -2) - return TIME_ZONE_ID_INVALID; + FileTimeToSystemTime(lpFileTime, &SysTime); + + /* check for daylight savings */ + ret = TIME_DayLightCompareDate( &SysTime, &pTZinfo->StandardDate); + if (ret == -2) + return TIME_ZONE_ID_INVALID; - beforeStandardDate = ret < 0; + beforeStandardDate = ret < 0; - if (!islocal) { - llTime -= ( pTZinfo->StandardBias - pTZinfo->DaylightBias ) - * (LONGLONG)600000000; - LL2FILETIME( llTime, &ftTemp) - FileTimeToSystemTime(lpFileTime, &SysTime); - } + if (!islocal) { + llTime -= ( pTZinfo->StandardBias - pTZinfo->DaylightBias ) + * (LONGLONG)600000000; + LL2FILETIME( llTime, &ftTemp) + FileTimeToSystemTime(lpFileTime, &SysTime); + } - ret = TIME_DayLightCompareDate( &SysTime, &pTZinfo->DaylightDate); - if (ret == -2) - return TIME_ZONE_ID_INVALID; + ret = TIME_DayLightCompareDate( &SysTime, &pTZinfo->DaylightDate); + if (ret == -2) + return TIME_ZONE_ID_INVALID; - afterDaylightDate = ret >= 0; + afterDaylightDate = ret >= 0; - retval = TIME_ZONE_ID_STANDARD; - if( pTZinfo->DaylightDate.wMonth < pTZinfo->StandardDate.wMonth ) { - /* Northern hemisphere */ - if( beforeStandardDate && afterDaylightDate ) - retval = TIME_ZONE_ID_DAYLIGHT; - } else /* Down south */ - if( beforeStandardDate || afterDaylightDate ) - retval = TIME_ZONE_ID_DAYLIGHT; - } else - /* No transition date */ - retval = TIME_ZONE_ID_UNKNOWN; - - return retval; + retval = TIME_ZONE_ID_STANDARD; + if( pTZinfo->DaylightDate.wMonth < pTZinfo->StandardDate.wMonth ) { + /* Northern hemisphere */ + if( beforeStandardDate && afterDaylightDate ) + retval = TIME_ZONE_ID_DAYLIGHT; + } else /* Down south */ + if( beforeStandardDate || afterDaylightDate ) + retval = TIME_ZONE_ID_DAYLIGHT; + } else + /* No transition date */ + retval = TIME_ZONE_ID_UNKNOWN; + + return retval; } /*********************************************************************** @@ -204,19 +204,19 @@ static DWORD TIME_CompTimeZoneID ( const TIME_ZONE_INFORMATION *pTZinfo, * TRUE when the time zone bias was calculated. */ static BOOL TIME_GetTimezoneBias( const TIME_ZONE_INFORMATION *pTZinfo, - FILETIME *lpFileTime, BOOL islocal, LONG *pBias ) + FILETIME *lpFileTime, BOOL islocal, LONG *pBias ) { - LONG bias = pTZinfo->Bias; - DWORD tzid = TIME_CompTimeZoneID( pTZinfo, lpFileTime, islocal); + LONG bias = pTZinfo->Bias; + DWORD tzid = TIME_CompTimeZoneID( pTZinfo, lpFileTime, islocal); - if( tzid == TIME_ZONE_ID_INVALID) - return FALSE; - if (tzid == TIME_ZONE_ID_DAYLIGHT) - bias += pTZinfo->DaylightBias; - else if (tzid == TIME_ZONE_ID_STANDARD) - bias += pTZinfo->StandardBias; - *pBias = bias; - return TRUE; + if( tzid == TIME_ZONE_ID_INVALID) + return FALSE; + if (tzid == TIME_ZONE_ID_DAYLIGHT) + bias += pTZinfo->DaylightBias; + else if (tzid == TIME_ZONE_ID_STANDARD) + bias += pTZinfo->StandardBias; + *pBias = bias; + return TRUE; } /*********************************************************************** @@ -236,34 +236,34 @@ static BOOL TIME_GetTimezoneBias( const TIME_ZONE_INFORMATION *pTZinfo, /* MAKE_EXPORT SystemTimeToTzSpecificLocalTime_new=SystemTimeToTzSpecificLocalTime */ BOOL WINAPI SystemTimeToTzSpecificLocalTime_new( - const TIME_ZONE_INFORMATION *lpTimeZoneInformation, - const SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime ) + const TIME_ZONE_INFORMATION *lpTimeZoneInformation, + const SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime ) { - FILETIME ft; - LONG lBias; - LONGLONG llTime; - TIME_ZONE_INFORMATION tzinfo; + FILETIME ft; + LONG lBias; + LONGLONG llTime; + TIME_ZONE_INFORMATION tzinfo; - if (lpTimeZoneInformation != NULL) - { - tzinfo = *lpTimeZoneInformation; - } - else - { - if (GetTimeZoneInformation(&tzinfo) == TIME_ZONE_ID_INVALID) - return FALSE; - } + if (lpTimeZoneInformation != NULL) + { + tzinfo = *lpTimeZoneInformation; + } + else + { + if (GetTimeZoneInformation(&tzinfo) == TIME_ZONE_ID_INVALID) + return FALSE; + } - if (!SystemTimeToFileTime(lpUniversalTime, &ft)) - return FALSE; - FILETIME2LL( &ft, llTime) - if (!TIME_GetTimezoneBias(&tzinfo, &ft, FALSE, &lBias)) - return FALSE; - /* convert minutes to 100-nanoseconds-ticks */ - llTime -= (LONGLONG)lBias * 600000000; - LL2FILETIME( llTime, &ft) + if (!SystemTimeToFileTime(lpUniversalTime, &ft)) + return FALSE; + FILETIME2LL( &ft, llTime) + if (!TIME_GetTimezoneBias(&tzinfo, &ft, FALSE, &lBias)) + return FALSE; + /* convert minutes to 100-nanoseconds-ticks */ + llTime -= (LONGLONG)lBias * 600000000; + LL2FILETIME( llTime, &ft) - return FileTimeToSystemTime(&ft, lpLocalTime); + return FileTimeToSystemTime(&ft, lpLocalTime); } @@ -284,31 +284,31 @@ BOOL WINAPI SystemTimeToTzSpecificLocalTime_new( /* MAKE_EXPORT TzSpecificLocalTimeToSystemTime_new=TzSpecificLocalTimeToSystemTime */ BOOL WINAPI TzSpecificLocalTimeToSystemTime_new( - const TIME_ZONE_INFORMATION *lpTimeZoneInformation, - const SYSTEMTIME *lpLocalTime, LPSYSTEMTIME lpUniversalTime) + const TIME_ZONE_INFORMATION *lpTimeZoneInformation, + const SYSTEMTIME *lpLocalTime, LPSYSTEMTIME lpUniversalTime) { - FILETIME ft; - LONG lBias; - LONGLONG t; - TIME_ZONE_INFORMATION tzinfo; + FILETIME ft; + LONG lBias; + LONGLONG t; + TIME_ZONE_INFORMATION tzinfo; - if (lpTimeZoneInformation != NULL) - { - tzinfo = *lpTimeZoneInformation; - } - else - { - if (GetTimeZoneInformation(&tzinfo) == TIME_ZONE_ID_INVALID) - return FALSE; - } + if (lpTimeZoneInformation != NULL) + { + tzinfo = *lpTimeZoneInformation; + } + else + { + if (GetTimeZoneInformation(&tzinfo) == TIME_ZONE_ID_INVALID) + return FALSE; + } - if (!SystemTimeToFileTime(lpLocalTime, &ft)) - return FALSE; - FILETIME2LL( &ft, t) - if (!TIME_GetTimezoneBias(&tzinfo, &ft, TRUE, &lBias)) - return FALSE; - /* convert minutes to 100-nanoseconds-ticks */ - t += (LONGLONG)lBias * 600000000; - LL2FILETIME( t, &ft) - return FileTimeToSystemTime(&ft, lpUniversalTime); + if (!SystemTimeToFileTime(lpLocalTime, &ft)) + return FALSE; + FILETIME2LL( &ft, t) + if (!TIME_GetTimezoneBias(&tzinfo, &ft, TRUE, &lBias)) + return FALSE; + /* convert minutes to 100-nanoseconds-ticks */ + t += (LONGLONG)lBias * 600000000; + LL2FILETIME( t, &ft) + return FileTimeToSystemTime(&ft, lpUniversalTime); } diff --git a/apilibs/kexbases/Kernel32/uilang.c b/apilibs/kexbases/Kernel32/uilang.c index 77702d0..1c10cbe 100755 --- a/apilibs/kexbases/Kernel32/uilang.c +++ b/apilibs/kexbases/Kernel32/uilang.c @@ -113,24 +113,24 @@ BOOL WINAPI EnumUILanguagesA_new(UILANGUAGE_ENUMPROCA pUILangEnumProc, DWORD dwF char buf[10]; LANGID lid; - if (!pUILangEnumProc) + if (!pUILangEnumProc) { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } - if (dwFlags) + if (dwFlags) { - SetLastError(ERROR_INVALID_FLAGS); - return FALSE; - } + SetLastError(ERROR_INVALID_FLAGS); + return FALSE; + } lid = GetSystemDefaultUILanguage_new(); dword_to_hexstr(lid, buf, FALSE); pUILangEnumProc(buf, lParam); - return TRUE; + return TRUE; } /* MAKE_EXPORT EnumUILanguagesW_new=EnumUILanguagesW */ @@ -139,22 +139,22 @@ BOOL WINAPI EnumUILanguagesW_new(UILANGUAGE_ENUMPROCW pUILangEnumProc, DWORD dwF WCHAR buf[10]; LANGID lid; - if (!pUILangEnumProc) + if (!pUILangEnumProc) { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } - if (dwFlags) + if (dwFlags) { - SetLastError(ERROR_INVALID_FLAGS); - return FALSE; - } + SetLastError(ERROR_INVALID_FLAGS); + return FALSE; + } lid = GetSystemDefaultUILanguage_new(); dword_to_hexstr(lid, buf, TRUE); pUILangEnumProc(buf, lParam); - return TRUE; + return TRUE; } diff --git a/apilibs/kexbases/Kernel32/unikernel32.c b/apilibs/kexbases/Kernel32/unikernel32.c index 83ad730..aaa1132 100755 --- a/apilibs/kexbases/Kernel32/unikernel32.c +++ b/apilibs/kexbases/Kernel32/unikernel32.c @@ -29,78 +29,9 @@ ATOM WINAPI AddAtomW_new(LPCWSTR strW) { ALLOC_WtoA(str); - return AddAtomA(strA); + return AddAtomA(strA); } -/* something seems to be wrong with this and I don't know what -INT WINAPI CompareStringW_new(LCID lcid, DWORD style, - LPCWSTR str1, INT len1, LPCWSTR str2, INT len2) -{ - CHAR buf1A[BUFSIZE]; - CHAR buf2A[BUFSIZE]; - LPSTR str1A, str2A; - INT len1A, len2A, ret; - UINT locale_cp = CP_ACP; - int lasterr; - - DBGMSGW((L"CompareStringW(0x%1!x!,0x%2!x!,%3!s!,%4!d!,%5!s!,%6!d!)\n",lcid,style,str1,len1,str2,len2)); - - lasterr = GetLastError(); - if (lcid == LANG_INVARIANT) lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); - - if (!str1 || !str2) - { - SetLastError(ERROR_INVALID_PARAMETER); - return 0; - } - - if (!(style & LOCALE_USE_CP_ACP)) - if (!GetLocaleInfoA(lcid, LOCALE_IDEFAULTANSICODEPAGE|LOCALE_RETURN_NUMBER, - (CHAR *)&locale_cp, sizeof(locale_cp)/sizeof(CHAR))) locale_cp = 0; - - str1A = buf1A; - if (len1 != 0) - { - len1A = WideCharToMultiByte(locale_cp, 0, str1, len1, buf1A, BUFSIZE, NULL, NULL); - if (!len1A) - { - len1A = WideCharToMultiByte(locale_cp, 0, str1, len1, NULL, 0, NULL, NULL); - str1A = HeapAlloc(GetProcessHeap(), 0, len1A); - if (!str1A) - { - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - WideCharToMultiByte(locale_cp, 0, str1, len1, str1A, len1A, NULL, NULL); - } - } - str2A = buf2A; - if (len2 != 0) - { - len2A = WideCharToMultiByte(locale_cp, 0, str2, len2, buf2A, BUFSIZE, NULL, NULL); - if (!len2A) - { - len2A = WideCharToMultiByte(locale_cp, 0, str2, len2, NULL, 0, NULL, NULL); - str2A = HeapAlloc(GetProcessHeap(), 0, len2A); - if (!str2A) - { - if (str1A != buf1A) HeapFree(GetProcessHeap(), 0, str1A); - SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return 0; - } - WideCharToMultiByte(locale_cp, 0, str2, len2, str2A, len2A, NULL, NULL); - } - } - SetLastError(lasterr); - - ret = CompareStringA(lcid, style, str1A, len1A, str2A, len2A); - - if (str1A != buf1A) HeapFree(GetProcessHeap(), 0, str1A); - if (str2A != buf2A) HeapFree(GetProcessHeap(), 0, str2A); - return ret; -} -*/ - //MAKE_EXPORT CopyFileExW_new=CopyFileExW BOOL WINAPI CopyFileExW_new(LPCWSTR lpExistingFileNameW, LPCWSTR lpNewFileNameW, LPPROGRESS_ROUTINE lpProgressRoutine, LPVOID lpData, LPBOOL pbCancel, DWORD dwCopyFlags) { @@ -167,8 +98,8 @@ BOOL WINAPI DeleteFileW_new(LPCWSTR lpFileNameW) //MAKE_EXPORT FindAtomW_new=FindAtomW ATOM WINAPI FindAtomW_new(LPCWSTR strW) { - ALLOC_WtoA(str); - return FindAtomA(strA); + ALLOC_WtoA(str); + return FindAtomA(strA); } //MAKE_EXPORT FindFirstChangeNotificationW_new=FindFirstChangeNotificationW @@ -245,7 +176,7 @@ HRSRC WINAPI FindResourceExW_new(HMODULE hModule, LPCWSTR typeW, LPCWSTR nameW, //MAKE_EXPORT FindResourceW_new=FindResourceW HRSRC WINAPI FindResourceW_new(HINSTANCE hModule, LPCWSTR name, LPCWSTR type) { - return FindResourceExW_new(hModule, type, name, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)); + return FindResourceExW_new(hModule, type, name, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL)); } //MAKE_EXPORT FreeEnvironmentStringsW_new=FreeEnvironmentStringsW @@ -259,11 +190,11 @@ UINT WINAPI GetAtomNameW_new(ATOM atom, LPWSTR bufferW, int size) { UINT ret; ALLOC_A(buffer, size * acp_mcs); - ret = GetAtomNameA(atom, bufferA, size * acp_mcs); - if (ret) + ret = GetAtomNameA(atom, bufferA, size * acp_mcs); + if (ret) ret = ABUFtoW(buffer, ret + 1, size); if (ret) ret--; - return ret; + return ret; } //MAKE_EXPORT GetCurrentDirectoryW_new=GetCurrentDirectoryW @@ -569,15 +500,15 @@ UINT WINAPI GetWindowsDirectoryW_new(LPWSTR lpBufferW, UINT uSize) //MAKE_EXPORT GlobalAddAtomW_new=GlobalAddAtomW ATOM WINAPI GlobalAddAtomW_new(LPCWSTR strW) { - ALLOC_WtoA(str); - return GlobalAddAtomA(strA); + ALLOC_WtoA(str); + return GlobalAddAtomA(strA); } //MAKE_EXPORT GlobalFindAtomW_new=GlobalFindAtomW ATOM WINAPI GlobalFindAtomW_new(LPCWSTR strW) { - ALLOC_WtoA(str); - return GlobalFindAtomA(strA); + ALLOC_WtoA(str); + return GlobalFindAtomA(strA); } //MAKE_EXPORT GlobalGetAtomNameW_new=GlobalGetAtomNameW @@ -585,11 +516,11 @@ UINT WINAPI GlobalGetAtomNameW_new(ATOM atom, LPWSTR bufferW, int size) { UINT ret; ALLOC_A(buffer, size * acp_mcs); - ret = GlobalGetAtomNameA(atom, bufferA, size * acp_mcs); - if (ret) + ret = GlobalGetAtomNameA(atom, bufferA, size * acp_mcs); + if (ret) ret = ABUFtoW(buffer, ret + 1, size); if (ret) ret--; - return ret; + return ret; } //MAKE_EXPORT LoadLibraryW_new=LoadLibraryW @@ -613,27 +544,27 @@ BOOL WINAPI Module32FirstW_new(HANDLE hSnapshot, LPMODULEENTRY32W lpmeW) { BOOL ret; char szModuleA[MAX_MODULE_NAME32 + 1]; - char szExePathA[MAX_PATH]; + char szExePathA[MAX_PATH]; WCHAR* szModuleW = lpmeW->szModule; WCHAR* szExePathW = lpmeW->szExePath; if (lpmeW->dwSize < sizeof(MODULEENTRY32W)) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } - - lpmeW->dwSize = sizeof(MODULEENTRY32); - - if ((ret = Module32First(hSnapshot, (LPMODULEENTRY32)lpmeW)) != FALSE) - { + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + lpmeW->dwSize = sizeof(MODULEENTRY32); + + if ((ret = Module32First(hSnapshot, (LPMODULEENTRY32)lpmeW)) != FALSE) + { strcpy(szModuleA, ((LPMODULEENTRY32)lpmeW)->szModule); strcpy(szExePathA, ((LPMODULEENTRY32)lpmeW)->szExePath); AtoW(szModule, sizeof(lpmeW->szModule) / sizeof(WCHAR)); AtoW(szExePath, sizeof(lpmeW->szExePath) / sizeof(WCHAR)); - } - lpmeW->dwSize = sizeof(MODULEENTRY32W); - return ret; + } + lpmeW->dwSize = sizeof(MODULEENTRY32W); + return ret; } //MAKE_EXPORT Module32NextW_new=Module32NextW @@ -641,27 +572,27 @@ BOOL WINAPI Module32NextW_new(HANDLE hSnapshot, LPMODULEENTRY32W lpmeW) { BOOL ret; char szModuleA[MAX_MODULE_NAME32 + 1]; - char szExePathA[MAX_PATH]; + char szExePathA[MAX_PATH]; WCHAR* szModuleW = lpmeW->szModule; WCHAR* szExePathW = lpmeW->szExePath; if (lpmeW->dwSize < sizeof(MODULEENTRY32W)) - { - SetLastError(ERROR_INVALID_DATA); - return FALSE; - } + { + SetLastError(ERROR_INVALID_DATA); + return FALSE; + } lpmeW->dwSize = sizeof(MODULEENTRY32); if ((ret = Module32Next(hSnapshot, (LPMODULEENTRY32)lpmeW)) != FALSE) - { + { strcpy(szModuleA, ((LPMODULEENTRY32)lpmeW)->szModule); strcpy(szExePathA, ((LPMODULEENTRY32)lpmeW)->szExePath); AtoW(szModule, sizeof(lpmeW->szModule) / sizeof(WCHAR)); AtoW(szExePath, sizeof(lpmeW->szExePath) / sizeof(WCHAR)); - } - lpmeW->dwSize = sizeof(MODULEENTRY32W); - return ret; + } + lpmeW->dwSize = sizeof(MODULEENTRY32W); + return ret; } //MAKE_EXPORT MoveFileExW_new=MoveFileExW @@ -790,8 +721,8 @@ DWORD WINAPI SearchPathW_new(LPCWSTR lpPathW, LPCWSTR lpFileNameW, LPCWSTR lpExt //MAKE_EXPORT SetConsoleTitleW_new=SetConsoleTitleW BOOL WINAPI SetConsoleTitleW_new(LPCWSTR strW) { - ALLOC_WtoA(str); - return SetConsoleTitleA(strA); + ALLOC_WtoA(str); + return SetConsoleTitleA(strA); } //MAKE_EXPORT SetCurrentDirectoryW_new=SetCurrentDirectoryW diff --git a/apilibs/kexbases/Kernel32/version.c b/apilibs/kexbases/Kernel32/version.c index 65981e8..401d2b9 100755 --- a/apilibs/kexbases/Kernel32/version.c +++ b/apilibs/kexbases/Kernel32/version.c @@ -24,88 +24,88 @@ /* special structure used internally to save some space */ typedef struct { - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR* lpszCSDVersion; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; + DWORD dwMajorVersion; + DWORD dwMinorVersion; + DWORD dwBuildNumber; + DWORD dwPlatformId; + CHAR* lpszCSDVersion; + WORD wServicePackMajor; + WORD wServicePackMinor; + WORD wSuiteMask; + BYTE wProductType; + BYTE wReserved; } OSVERSIONINFOEXA_PRIV; typedef enum { - WIN95, /* Windows 95 */ - WIN98, /* Windows 98 */ - WINME, /* Windows Me */ - NT40, /* Windows NT 4.0 */ - NT2K, /* Windows 2000 */ - WINXP, /* Windows XP */ - WIN2K3, /* Windows 2003 */ - VISTA, /* Windows Vista */ - WIN2K8, /* Windows 2008 */ - NB_WINDOWS_VERSIONS + WIN95, /* Windows 95 */ + WIN98, /* Windows 98 */ + WINME, /* Windows Me */ + NT40, /* Windows NT 4.0 */ + NT2K, /* Windows 2000 */ + WINXP, /* Windows XP */ + WIN2K3, /* Windows 2003 */ + VISTA, /* Windows Vista */ + WIN2K8, /* Windows 2008 */ + NB_WINDOWS_VERSIONS } WINDOWS_VERSION; static const OSVERSIONINFOEXA_PRIV VersionData[NB_WINDOWS_VERSIONS] = { - /* WIN95 */ - { - 4, 0, 0x40003B6, VER_PLATFORM_WIN32_WINDOWS, - "", - 0, 0, 0, 0, 0 - }, - /* WIN98 (second edition) */ - { - 4, 10, 0x40A08AE, VER_PLATFORM_WIN32_WINDOWS, - " A ", - 0, 0, 0, 0, 0 - }, - /* WINME */ - { - 4, 90, 0x45A0BB8, VER_PLATFORM_WIN32_WINDOWS, - " ", - 0, 0, 0, 0, 0 - }, - /* NT40 */ - { - 4, 0, 0x565, VER_PLATFORM_WIN32_NT, - "Service Pack 6a", - 6, 0, 0, VER_NT_WORKSTATION, 0 - }, - /* NT2K */ - { - 5, 0, 0x893, VER_PLATFORM_WIN32_NT, - "Service Pack 4", - 4, 0, 0, VER_NT_WORKSTATION, 30 - }, - /* WINXP */ - { - 5, 1, 0xA28, VER_PLATFORM_WIN32_NT, - "Service Pack 2", - 2, 0, VER_SUITE_SINGLEUSERTS, VER_NT_WORKSTATION, 30 - }, - /* WIN2K3 */ - { - 5, 2, 0xECE, VER_PLATFORM_WIN32_NT, - "Service Pack 1", - 1, 0, VER_SUITE_SINGLEUSERTS, VER_NT_SERVER, 0 - }, - /* WINVISTA */ - { - 6, 0, 0x1770, VER_PLATFORM_WIN32_NT, - " ", - 0, 0, VER_SUITE_SINGLEUSERTS, VER_NT_WORKSTATION, 0 - }, - /* WIN2K8 */ - { - 6, 0, 0x1771, VER_PLATFORM_WIN32_NT, - "Service Pack 1", - 0, 0, VER_SUITE_SINGLEUSERTS, VER_NT_SERVER, 0 - } + /* WIN95 */ + { + 4, 0, 0x40003B6, VER_PLATFORM_WIN32_WINDOWS, + "", + 0, 0, 0, 0, 0 + }, + /* WIN98 (second edition) */ + { + 4, 10, 0x40A08AE, VER_PLATFORM_WIN32_WINDOWS, + " A ", + 0, 0, 0, 0, 0 + }, + /* WINME */ + { + 4, 90, 0x45A0BB8, VER_PLATFORM_WIN32_WINDOWS, + " ", + 0, 0, 0, 0, 0 + }, + /* NT40 */ + { + 4, 0, 0x565, VER_PLATFORM_WIN32_NT, + "Service Pack 6a", + 6, 0, 0, VER_NT_WORKSTATION, 0 + }, + /* NT2K */ + { + 5, 0, 0x893, VER_PLATFORM_WIN32_NT, + "Service Pack 4", + 4, 0, 0, VER_NT_WORKSTATION, 30 + }, + /* WINXP */ + { + 5, 1, 0xA28, VER_PLATFORM_WIN32_NT, + "Service Pack 2", + 2, 0, VER_SUITE_SINGLEUSERTS, VER_NT_WORKSTATION, 30 + }, + /* WIN2K3 */ + { + 5, 2, 0xECE, VER_PLATFORM_WIN32_NT, + "Service Pack 1", + 1, 0, VER_SUITE_SINGLEUSERTS, VER_NT_SERVER, 0 + }, + /* WINVISTA */ + { + 6, 0, 0x1770, VER_PLATFORM_WIN32_NT, + " ", + 0, 0, VER_SUITE_SINGLEUSERTS, VER_NT_WORKSTATION, 0 + }, + /* WIN2K8 */ + { + 6, 0, 0x1771, VER_PLATFORM_WIN32_NT, + "Service Pack 1", + 0, 0, VER_SUITE_SINGLEUSERTS, VER_NT_SERVER, 0 + } }; static BOOL original_GetVersionEx(void* buf, BOOL unicode) @@ -173,9 +173,9 @@ static DWORD common_GetVersion(WINDOWS_VERSION version) result = MAKELONG(MAKEWORD(osv->dwMajorVersion, osv->dwMinorVersion), (osv->dwPlatformId ^ 2) << 14); - if (osv->dwPlatformId == VER_PLATFORM_WIN32_NT) - result |= LOWORD(osv->dwBuildNumber) << 16; - return result; + if (osv->dwPlatformId == VER_PLATFORM_WIN32_NT) + result |= LOWORD(osv->dwBuildNumber) << 16; + return result; } static BOOL common_GetVersionEx(WINDOWS_VERSION version, void* buf, BOOL unicode) @@ -234,111 +234,112 @@ static BOOL common_GetVersionEx(WINDOWS_VERSION version, void* buf, BOOL unicode static DWORD version_compare_values(ULONG left, ULONG right, UCHAR condition) { - switch (condition) { - case VER_EQUAL: - if (left != right) return ERROR_OLD_WIN_VERSION; - break; - case VER_GREATER: - if (left <= right) return ERROR_OLD_WIN_VERSION; - break; - case VER_GREATER_EQUAL: - if (left < right) return ERROR_OLD_WIN_VERSION; - break; - case VER_LESS: - if (left >= right) return ERROR_OLD_WIN_VERSION; - break; - case VER_LESS_EQUAL: - if (left > right) return ERROR_OLD_WIN_VERSION; - break; - default: - return ERROR_OLD_WIN_VERSION; - } - return ERROR_SUCCESS; + switch (condition) + { + case VER_EQUAL: + if (left != right) return ERROR_OLD_WIN_VERSION; + break; + case VER_GREATER: + if (left <= right) return ERROR_OLD_WIN_VERSION; + break; + case VER_GREATER_EQUAL: + if (left < right) return ERROR_OLD_WIN_VERSION; + break; + case VER_LESS: + if (left >= right) return ERROR_OLD_WIN_VERSION; + break; + case VER_LESS_EQUAL: + if (left > right) return ERROR_OLD_WIN_VERSION; + break; + default: + return ERROR_OLD_WIN_VERSION; + } + return ERROR_SUCCESS; } static DWORD common_VerifyVersionInfo(WINDOWS_VERSION version, const OSVERSIONINFOEXA* info, DWORD dwTypeMask, DWORDLONG dwlConditionMask) { const OSVERSIONINFOEXA_PRIV* osv = &VersionData[version]; - DWORD status; + DWORD status; - if (!(dwTypeMask && dwlConditionMask)) return ERROR_BAD_ARGUMENTS; + if (!(dwTypeMask && dwlConditionMask)) return ERROR_BAD_ARGUMENTS; - if (dwTypeMask & VER_PRODUCT_TYPE) - { - status = version_compare_values(osv->wProductType, info->wProductType, (UCHAR)(dwlConditionMask >> 7*3 & 0x07)); - if (status != ERROR_SUCCESS) - return status; - } - if (dwTypeMask & VER_SUITENAME) - switch(dwlConditionMask >> 6*3 & 0x07) - { - case VER_AND: - if ((info->wSuiteMask & osv->wSuiteMask) != info->wSuiteMask) - return ERROR_OLD_WIN_VERSION; - break; - case VER_OR: - if (!(info->wSuiteMask & osv->wSuiteMask) && info->wSuiteMask) - return ERROR_OLD_WIN_VERSION; - break; - default: - return ERROR_BAD_ARGUMENTS; - } - if (dwTypeMask & VER_PLATFORMID) - { - status = version_compare_values(osv->dwPlatformId, info->dwPlatformId, (UCHAR)(dwlConditionMask >> 3*3 & 0x07)); - if (status != ERROR_SUCCESS) - return status; - } - if (dwTypeMask & VER_BUILDNUMBER) - { - status = version_compare_values(osv->dwBuildNumber, info->dwBuildNumber, (UCHAR)(dwlConditionMask >> 2*3 & 0x07)); - if (status != ERROR_SUCCESS) - return status; - } + if (dwTypeMask & VER_PRODUCT_TYPE) + { + status = version_compare_values(osv->wProductType, info->wProductType, (UCHAR)(dwlConditionMask >> 7*3 & 0x07)); + if (status != ERROR_SUCCESS) + return status; + } + if (dwTypeMask & VER_SUITENAME) + switch(dwlConditionMask >> 6*3 & 0x07) + { + case VER_AND: + if ((info->wSuiteMask & osv->wSuiteMask) != info->wSuiteMask) + return ERROR_OLD_WIN_VERSION; + break; + case VER_OR: + if (!(info->wSuiteMask & osv->wSuiteMask) && info->wSuiteMask) + return ERROR_OLD_WIN_VERSION; + break; + default: + return ERROR_BAD_ARGUMENTS; + } + if (dwTypeMask & VER_PLATFORMID) + { + status = version_compare_values(osv->dwPlatformId, info->dwPlatformId, (UCHAR)(dwlConditionMask >> 3*3 & 0x07)); + if (status != ERROR_SUCCESS) + return status; + } + if (dwTypeMask & VER_BUILDNUMBER) + { + status = version_compare_values(osv->dwBuildNumber, info->dwBuildNumber, (UCHAR)(dwlConditionMask >> 2*3 & 0x07)); + if (status != ERROR_SUCCESS) + return status; + } - if (dwTypeMask & (VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR)) - { - UCHAR condition = 0; - BOOL do_next_check = TRUE; + if (dwTypeMask & (VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR|VER_SERVICEPACKMINOR)) + { + UCHAR condition = 0; + BOOL do_next_check = TRUE; - if (dwTypeMask & VER_MAJORVERSION) - condition = (UCHAR)(dwlConditionMask >> 1*3 & 0x07); - else if (dwTypeMask & VER_MINORVERSION) - condition = (UCHAR)(dwlConditionMask >> 0*3 & 0x07); - else if (dwTypeMask & VER_SERVICEPACKMAJOR) - condition = (UCHAR)(dwlConditionMask >> 5*3 & 0x07); - else if (dwTypeMask & VER_SERVICEPACKMINOR) - condition = (UCHAR)(dwlConditionMask >> 4*3 & 0x07); + if (dwTypeMask & VER_MAJORVERSION) + condition = (UCHAR)(dwlConditionMask >> 1*3 & 0x07); + else if (dwTypeMask & VER_MINORVERSION) + condition = (UCHAR)(dwlConditionMask >> 0*3 & 0x07); + else if (dwTypeMask & VER_SERVICEPACKMAJOR) + condition = (UCHAR)(dwlConditionMask >> 5*3 & 0x07); + else if (dwTypeMask & VER_SERVICEPACKMINOR) + condition = (UCHAR)(dwlConditionMask >> 4*3 & 0x07); - if (dwTypeMask & VER_MAJORVERSION) - { - status = version_compare_values(osv->dwMajorVersion, info->dwMajorVersion, condition); - do_next_check = (osv->dwMajorVersion == info->dwMajorVersion) && - ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); - } - if ((dwTypeMask & VER_MINORVERSION) && do_next_check) - { - status = version_compare_values(osv->dwMinorVersion, info->dwMinorVersion, condition); - do_next_check = (osv->dwMinorVersion == info->dwMinorVersion) && - ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); - } - if ((dwTypeMask & VER_SERVICEPACKMAJOR) && do_next_check) - { - status = version_compare_values(osv->wServicePackMajor, info->wServicePackMajor, condition); - do_next_check = (osv->wServicePackMajor == info->wServicePackMajor) && - ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); - } - if ((dwTypeMask & VER_SERVICEPACKMINOR) && do_next_check) - { - status = version_compare_values(osv->wServicePackMinor, info->wServicePackMinor, condition); - } + if (dwTypeMask & VER_MAJORVERSION) + { + status = version_compare_values(osv->dwMajorVersion, info->dwMajorVersion, condition); + do_next_check = (osv->dwMajorVersion == info->dwMajorVersion) && + ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); + } + if ((dwTypeMask & VER_MINORVERSION) && do_next_check) + { + status = version_compare_values(osv->dwMinorVersion, info->dwMinorVersion, condition); + do_next_check = (osv->dwMinorVersion == info->dwMinorVersion) && + ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); + } + if ((dwTypeMask & VER_SERVICEPACKMAJOR) && do_next_check) + { + status = version_compare_values(osv->wServicePackMajor, info->wServicePackMajor, condition); + do_next_check = (osv->wServicePackMajor == info->wServicePackMajor) && + ((condition != VER_EQUAL) || (status == ERROR_SUCCESS)); + } + if ((dwTypeMask & VER_SERVICEPACKMINOR) && do_next_check) + { + status = version_compare_values(osv->wServicePackMinor, info->wServicePackMinor, condition); + } - if (status != ERROR_SUCCESS) - return status; - } + if (status != ERROR_SUCCESS) + return status; + } - return ERROR_SUCCESS; + return ERROR_SUCCESS; } static BOOL WINAPI common_VerifyVersionInfoA(WINDOWS_VERSION version, @@ -382,29 +383,29 @@ static BOOL WINAPI common_VerifyVersionInfoW(WINDOWS_VERSION version, ULONGLONG WINAPI VerSetConditionMask_new(ULONGLONG dwlConditionMask, DWORD dwTypeBitMask, BYTE dwConditionMask) { - if (dwTypeBitMask == 0) + if (dwTypeBitMask == 0) return dwlConditionMask; - dwConditionMask &= 0x07; - if (dwConditionMask == 0) + dwConditionMask &= 0x07; + if (dwConditionMask == 0) return dwlConditionMask; - if (dwTypeBitMask & VER_PRODUCT_TYPE) + if (dwTypeBitMask & VER_PRODUCT_TYPE) dwlConditionMask |= dwConditionMask << 7*3; - else if (dwTypeBitMask & VER_SUITENAME) + else if (dwTypeBitMask & VER_SUITENAME) dwlConditionMask |= dwConditionMask << 6*3; - else if (dwTypeBitMask & VER_SERVICEPACKMAJOR) + else if (dwTypeBitMask & VER_SERVICEPACKMAJOR) dwlConditionMask |= dwConditionMask << 5*3; - else if (dwTypeBitMask & VER_SERVICEPACKMINOR) + else if (dwTypeBitMask & VER_SERVICEPACKMINOR) dwlConditionMask |= dwConditionMask << 4*3; - else if (dwTypeBitMask & VER_PLATFORMID) + else if (dwTypeBitMask & VER_PLATFORMID) dwlConditionMask |= dwConditionMask << 3*3; - else if (dwTypeBitMask & VER_BUILDNUMBER) + else if (dwTypeBitMask & VER_BUILDNUMBER) dwlConditionMask |= dwConditionMask << 2*3; - else if (dwTypeBitMask & VER_MAJORVERSION) + else if (dwTypeBitMask & VER_MAJORVERSION) dwlConditionMask |= dwConditionMask << 1*3; - else if (dwTypeBitMask & VER_MINORVERSION) + else if (dwTypeBitMask & VER_MINORVERSION) dwlConditionMask |= dwConditionMask << 0*3; - return dwlConditionMask; + return dwlConditionMask; } /* MAKE_EXPORT GetVersion_WIN95=GetVersion */ diff --git a/apilibs/kexbases/Kernel32/volume.c b/apilibs/kexbases/Kernel32/volume.c index ab2b949..6baf71f 100755 --- a/apilibs/kexbases/Kernel32/volume.c +++ b/apilibs/kexbases/Kernel32/volume.c @@ -25,17 +25,17 @@ BOOL WINAPI GetVolumePathNameA_new(LPCSTR filename, LPSTR volumepathname, DWORD buflen) { //semi-stub - doesn't work with UNC - const char *p = filename; + const char *p = filename; - if (p && tolower(p[0]) >= 'a' && tolower(p[0]) <= 'z' && p[1] ==':' && p[2] == '\\' && buflen >= 4) - { - volumepathname[0] = p[0]; - volumepathname[1] = ':'; - volumepathname[2] = '\\'; - volumepathname[3] = 0; - return TRUE; - } - return FALSE; + if (p && tolower(p[0]) >= 'a' && tolower(p[0]) <= 'z' && p[1] ==':' && p[2] == '\\' && buflen >= 4) + { + volumepathname[0] = p[0]; + volumepathname[1] = ':'; + volumepathname[2] = '\\'; + volumepathname[3] = 0; + return TRUE; + } + return FALSE; } /* MAKE_EXPORT GetVolumePathNameW_new=GetVolumePathNameW */ diff --git a/apilibs/kexbases/Kernel32/widecharconv.c b/apilibs/kexbases/Kernel32/widecharconv.c index d8eca87..b42f2f1 100755 --- a/apilibs/kexbases/Kernel32/widecharconv.c +++ b/apilibs/kexbases/Kernel32/widecharconv.c @@ -32,15 +32,15 @@ /* MAKE_EXPORT WideCharToMultiByte_new=WideCharToMultiByte */ int WINAPI WideCharToMultiByte_new( - UINT CodePage, - DWORD dwFlags, - LPCWSTR lpWideCharStr, - int cchWideChar, - LPSTR lpMultiByteStr, - int cchMultiByte, - LPCSTR lpDefaultChar, - LPBOOL lpUsedDefaultChar - ) + UINT CodePage, + DWORD dwFlags, + LPCWSTR lpWideCharStr, + int cchWideChar, + LPSTR lpMultiByteStr, + int cchMultiByte, + LPCSTR lpDefaultChar, + LPBOOL lpUsedDefaultChar + ) { if (CodePage == CP_THREAD_ACP) CodePage = CP_ACP; @@ -52,13 +52,13 @@ int WINAPI WideCharToMultiByte_new( /* MAKE_EXPORT MultiByteToWideChar_new=MultiByteToWideChar */ int WINAPI MultiByteToWideChar_new( - UINT CodePage, - DWORD dwFlags, - LPCSTR lpMultiByteStr, - int cchMultiByte, - LPWSTR lpWideCharStr, - int cchWideChar - ) + UINT CodePage, + DWORD dwFlags, + LPCSTR lpMultiByteStr, + int cchMultiByte, + LPWSTR lpWideCharStr, + int cchWideChar + ) { if (CodePage == CP_THREAD_ACP) CodePage = CP_ACP; diff --git a/apilibs/kexbases/User32/ForegroundWindow.c b/apilibs/kexbases/User32/ForegroundWindow.c index 776662d..a5dc4e9 100755 --- a/apilibs/kexbases/User32/ForegroundWindow.c +++ b/apilibs/kexbases/User32/ForegroundWindow.c @@ -24,11 +24,11 @@ /* MAKE_EXPORT AllowSetForegroundWindow_98=AllowSetForegroundWindow */ BOOL WINAPI AllowSetForegroundWindow_98(DWORD procid) { - return TRUE; + return TRUE; } /* MAKE_EXPORT LockSetForegroundWindow_98=LockSetForegroundWindow */ BOOL WINAPI LockSetForegroundWindow_98(UINT lockcode) { - return TRUE; + return TRUE; } diff --git a/apilibs/kexbases/User32/GetNextDlgTabItem_fix.c b/apilibs/kexbases/User32/GetNextDlgTabItem_fix.c index 147a8eb..d257146 100755 --- a/apilibs/kexbases/User32/GetNextDlgTabItem_fix.c +++ b/apilibs/kexbases/User32/GetNextDlgTabItem_fix.c @@ -21,23 +21,23 @@ #include -/* Here we have fix for retarded situation. - * 9x stucks trying to get next control in dialog to tab - * when there is only one control on dialog, and it has tab-able +/* Here we have fix for retarded situation. + * 9x stucks trying to get next control in dialog to tab + * when there is only one control on dialog, and it has tab-able * child windows (WS_EX_CONTROLPARENT), and if it's disabled or hidden, - * user.exe crashes with stack overflow, silently or soundly. - * More proper fix would be to scan whole dialog and enable/show at least - * one such window, since GetNextDlgTabItem also happens internally. - * However, likely it won't be this function and our case works for - * Winamp ML. + * user.exe crashes with stack overflow, silently or soundly. + * More proper fix would be to scan whole dialog and enable/show at least + * one such window, since GetNextDlgTabItem also happens internally. + * However, likely it won't be this function and our case works for + * Winamp ML. */ /* MAKE_EXPORT GetNextDlgTabItem_fix=GetNextDlgTabItem */ HWND WINAPI GetNextDlgTabItem_fix( - HWND hDlg, // handle to dialog box - HWND hCtl, // handle to known control - BOOL bPrevious // direction flag + HWND hDlg, // handle to dialog box + HWND hCtl, // handle to known control + BOOL bPrevious // direction flag ) { HWND hTestCtl = hCtl; diff --git a/apilibs/kexbases/User32/MapVirtualKey_fix.c b/apilibs/kexbases/User32/MapVirtualKey_fix.c index 69e34a5..7023ffb 100755 --- a/apilibs/kexbases/User32/MapVirtualKey_fix.c +++ b/apilibs/kexbases/User32/MapVirtualKey_fix.c @@ -1,6 +1,7 @@ /* * KernelEx * Copyright (C) 2008, Xeno86 + * Copyright (C) 2010, Tihiy * * This file is part of KernelEx source code. * @@ -28,22 +29,109 @@ #define MAPVK_VSC_TO_VK_EX 3 #define MAPVK_VK_TO_VSC_EX 4 +/* Scan codes for standard keyboard */ +#define VSC_LSHIFT 0x002A +#define VSC_RSHIFT 0x0036 +#define VSC_LALT 0x0038 +#define VSC_RALT 0xE038 +#define VSC_LCONTROL 0x001D +#define VSC_RCONTROL 0xE01D + +/* + From MS keyboard docs: + Under all Microsoft operating systems, all keyboards actually transmit Scan Code Set 2 values down + the wire from the keyboard to the keyboard port. These values are translated to Scan Code Set 1 by + the i8042 port chip. + The rest of the operating system, and all applications that handle scan codes + expect the values to be from Scan Code Set 1. + From other MS docs about USB keyboards: + The mapper driver translates the Keyboard Page HID usages to PS/2 Set 1 scan codes and forwards them + to the keyboard class driver. + Nice link btw: http://www.microsoft.com/taiwan/whdc/archive/w2kbd.mspx + + So we have guarantee AT set (Set 1) will be in scancode. +*/ + +static inline int NoLeftRightVK(int nVirtKey) +{ + switch(nVirtKey) + { + case VK_LSHIFT: + case VK_RSHIFT: + nVirtKey = VK_SHIFT; + break; + case VK_LCONTROL: + case VK_RCONTROL: + nVirtKey = VK_CONTROL; + break; + case VK_LMENU: + case VK_RMENU: + nVirtKey = VK_MENU; + break; + } + return nVirtKey; +} + /* MAKE_EXPORT MapVirtualKeyA_new=MapVirtualKeyA */ UINT WINAPI MapVirtualKeyA_new(UINT uCode, UINT uMapType) { - if (uMapType == MAPVK_VK_TO_VSC_EX) - uMapType = MAPVK_VK_TO_VSC; - else if (uMapType == MAPVK_VSC_TO_VK_EX) - uMapType = MAPVK_VSC_TO_VK; - return MapVirtualKeyA(uCode, uMapType); + switch(uMapType) { + case MAPVK_VK_TO_VSC_EX: + if ( uCode == VK_RCONTROL ) return VSC_RCONTROL; + if ( uCode == VK_RMENU ) return VSC_RALT; + //fall down + case MAPVK_VK_TO_VSC: + if ( uCode == VK_RSHIFT ) return VSC_RSHIFT; //separate scan code + return MapVirtualKeyA(NoLeftRightVK(uCode),MAPVK_VK_TO_VSC); + case MAPVK_VSC_TO_VK_EX: + switch(uCode) { + case VSC_RSHIFT: + return VK_RSHIFT; + case VSC_LSHIFT: + return VK_LSHIFT; + case VSC_LCONTROL: + return VK_LCONTROL; + case VSC_RCONTROL: + return VK_RCONTROL; + case VSC_LALT: + return VK_LMENU; + case VSC_RALT: + return VK_RMENU; + default: + uMapType = MAPVK_VSC_TO_VK; + } + } + return MapVirtualKeyA(uCode,uMapType); } /* MAKE_EXPORT MapVirtualKeyExA_new=MapVirtualKeyExA */ UINT WINAPI MapVirtualKeyExA_new(UINT uCode, UINT uMapType, HKL dwhkl) { - if (uMapType == MAPVK_VK_TO_VSC_EX) - uMapType = MAPVK_VK_TO_VSC; - else if (uMapType == MAPVK_VSC_TO_VK_EX) - uMapType = MAPVK_VSC_TO_VK; - return MapVirtualKeyExA(uCode, uMapType, dwhkl); + switch(uMapType) { + case MAPVK_VK_TO_VSC_EX: + if ( uCode == VK_RCONTROL ) return VSC_RCONTROL; + if ( uCode == VK_RMENU ) return VSC_RALT; + //fall down + case MAPVK_VK_TO_VSC: + if ( uCode == VK_RSHIFT ) return VSC_RSHIFT; //separate scan code + return MapVirtualKeyExA(NoLeftRightVK(uCode),MAPVK_VK_TO_VSC,dwhkl); + case MAPVK_VSC_TO_VK_EX: + switch(uCode) { + case VSC_RSHIFT: + return VK_RSHIFT; + case VSC_LSHIFT: + return VK_LSHIFT; + case VSC_LCONTROL: + return VK_LCONTROL; + case VSC_RCONTROL: + return VK_RCONTROL; + case VSC_LALT: + return VK_LMENU; + case VSC_RALT: + return VK_RMENU; + default: + uMapType = MAPVK_VSC_TO_VK; + } + } + return MapVirtualKeyExA(uCode,uMapType,dwhkl); } diff --git a/apilibs/kexbases/User32/SetParent_fix.c b/apilibs/kexbases/User32/SetParent_fix.c index aacd9d1..b4c1887 100755 --- a/apilibs/kexbases/User32/SetParent_fix.c +++ b/apilibs/kexbases/User32/SetParent_fix.c @@ -20,25 +20,7 @@ */ #include -#include "k32ord.h" -#include "hwnd9x.h" - -static DWORD g_UserBase; -static HTOP_API HWNDtoPWND; - -//those are in thunilay -void GrabWin16Lock(); -void ReleaseWin16Lock(); - -#define REBASEUSER(x) ((x) != 0 ? g_UserBase + (DWORD)(x) : 0) - -BOOL SetParent_fix_init() -{ - g_UserBase = MapSL(LoadLibrary16("user") << 16); - /* IsWindow returns PWND */ - HWNDtoPWND = (HTOP_API)IsWindow; - return (g_UserBase != 0 && HWNDtoPWND != 0); -} +#include "thuni_layer.h" /* returns TRUE if hwnd is a parent of hwndNewParent */ static BOOL WINAPI TestChild(HWND hwnd, HWND hwndNewParent) diff --git a/apilibs/kexbases/User32/SystemParametersInfo_fix.c b/apilibs/kexbases/User32/SystemParametersInfo_fix.c index b91be64..ec52e0b 100755 --- a/apilibs/kexbases/User32/SystemParametersInfo_fix.c +++ b/apilibs/kexbases/User32/SystemParametersInfo_fix.c @@ -44,5 +44,15 @@ BOOL WINAPI SystemParametersInfoA_fix( ret = TRUE; } + if (ret && uiAction == SPI_GETCARETWIDTH && pvParam) + { + //there's a bug in USER: default caret width is 0 + //(should be 1). although NT can be forced to set + //caret width to 0, it's not sane so we fix this. + DWORD* pCaretWidth = (DWORD*)pvParam; + if (*pCaretWidth == 0) + *pCaretWidth = 1; + } + return ret; } diff --git a/apilibs/kexbases/User32/UpdateLayeredWindow.c b/apilibs/kexbases/User32/UpdateLayeredWindow.c index 082f483..87ffadc 100755 --- a/apilibs/kexbases/User32/UpdateLayeredWindow.c +++ b/apilibs/kexbases/User32/UpdateLayeredWindow.c @@ -24,15 +24,15 @@ /* MAKE_EXPORT UpdateLayeredWindow_new=UpdateLayeredWindow */ BOOL WINAPI UpdateLayeredWindow_new( - HWND hwnd, // handle to layered window - HDC hdcDst, // handle to screen DC - POINT *pptDst, // new screen position - SIZE *psize, // new size of the layered window - HDC hdcSrc, // handle to surface DC - POINT *pptSrc, // layer position - COLORREF crKey, // color key - BLENDFUNCTION *pblend, // blend function - DWORD dwFlags // options + HWND hwnd, // handle to layered window + HDC hdcDst, // handle to screen DC + POINT *pptDst, // new screen position + SIZE *psize, // new size of the layered window + HDC hdcSrc, // handle to surface DC + POINT *pptSrc, // layer position + COLORREF crKey, // color key + BLENDFUNCTION *pblend, // blend function + DWORD dwFlags // options ) { BOOL ret = FALSE; diff --git a/apilibs/kexbases/User32/_user32_apilist.c b/apilibs/kexbases/User32/_user32_apilist.c index f13a2ea..d245dbf 100755 --- a/apilibs/kexbases/User32/_user32_apilist.c +++ b/apilibs/kexbases/User32/_user32_apilist.c @@ -38,7 +38,7 @@ BOOL init_user32() GetMouseMovePoints_pfn = (GetMouseMovePoints_t)kexGetProcAddress(hUser32, "GetMouseMovePoints"); return IsHungThread_pfn && DrawCaptionTempA_pfn && GetMouseMovePoints_pfn - && InitUniThunkLayer() && SetParent_fix_init(); + && InitUniThunkLayer(); } /* APIs which don't require Unicode implementations in thuni model diff --git a/apilibs/kexbases/User32/hwnd9x.h b/apilibs/kexbases/User32/hwnd9x.h index a6f3ac2..fcac9fd 100755 --- a/apilibs/kexbases/User32/hwnd9x.h +++ b/apilibs/kexbases/User32/hwnd9x.h @@ -65,17 +65,16 @@ typedef struct _WND WORD classAtom; // 56h See also offs. 2 in the field 24 struct ptr } WND, *PWND; - typedef struct _MSGQUEUE { WORD nextQueue; // 00h next queue in the list WORD hTask; // 02h Task that this queue is associated with WORD headMsg; // 04h Near ptr to head of linked list of QUEUEMSGs WORD tailMsg; // 06h Near ptr to end of list of QUEUEMSGs - WORD lastMsg; // 08h Near ptr to last msg retrieved (not really!) - WORD cMsgs; // 0Ah Number of messages (not really for win98?) + WORD cMsgs; // 08h Number of posted messages (98,Me) + WORD nilword; // 0Ah ??? BYTE un1; // 0Ch ??? - BYTE sig[3]; // 0Dh "MJT" (Jon Thomason?) + BYTE sig[3]; // 0Dh "MJT" (Michael Jackson ..??) WORD npPerQueue; // 10h 16 bit offset in USER DGROUP to PERQUEUEDATA // type == LT_USER_VWININFO??? WORD un2; // 12h ??? @@ -87,7 +86,9 @@ typedef struct _MSGQUEUE WORD un4; // 2Ch ??? (seems to always be 0) WORD lastMsg2; // 2Eh Near ptr to last retrieved QUEUEMSG DWORD extraInfo; // 30h returned by GetMessageExtraInfo() - DWORD un5[2]; // 34h ??? + DWORD un5; // 34h ??? + WORD cQuit; // 38h PostQuitMessage + WORD exitCode; // 3Ah same DWORD threadId; // 3Ch See GetWindowProcessThreadId WORD un6; // 40h ?? WORD expWinVer; // 42h Version of Windows this app expects @@ -98,7 +99,8 @@ typedef struct _MSGQUEUE // waiting for WORD un8; // 4Eh ??? WORD hQueueSend; // 50h App that's in SendMessage to this queue - DWORD un9; // 52h ??? + WORD hSMS; // 52h SMS (inter-thread sendmessage) struct ptr + WORD dunno; // 54h ??? WORD sig2; // 56h "HQ" HKL hkl; // 58h current thread HKL (keyboard layout) DWORD un10[3]; // 5Ch ??? filler @@ -107,8 +109,38 @@ typedef struct _MSGQUEUE DWORD un12[3]; // 5Eh+0Ah+4 ??? filler WORD block2; // 5Eh+1Ah block for SendMessageA (event?) } MSGQUEUE, *PMSGQUEUE; + +typedef struct _PERQUEUEDATA +{ + WORD npNext; // 00h a USER heap handle (type == LT_USER_VWININFO) + WORD un2; // 02h + WORD wSumFlags; // 04h + WORD npQMsg; // 06h type == LT_USER_QMSG + WORD un5; // 08h + WORD un6; // 0Ah + WORD un7; // 0Ch + WORD un8; // 0Eh + WORD un9; // 10h + WORD un10; // 12h + WORD somehQueue1; // 14h a msg queue handle + WORD somehQueue2; // 16h a msg queue handle + DWORD hWndCapture; // 18h + DWORD hWndFocus; // 1Ch + DWORD hWndActive; // 20h + BYTE filler[0x34]; // 24h + DWORD keysbuffer; // 58h 16:16 keyboard state ptr +} PERQUEUEDATA, *PPERQUEUEDATA; + +typedef struct _QUEUEKEYBUFFER +{ + BYTE filler[0x20]; // 00h sth + BYTE keystate[0xFF]; // 20h keys state (0x80-pressed, 0x1-toggled) +} QUEUEKEYBUFFER, *PQUEUEKEYBUFFER; + + #pragma pack() -typedef PWND (WINAPI *HTOP_API) (HWND hwnd); +/* IsWindow returns PWND */ +#define HWNDtoPWND(hwnd) (PWND)IsWindow(hwnd) #endif diff --git a/apilibs/kexbases/User32/lstr.c b/apilibs/kexbases/User32/lstr.c index f1299cb..5cd5d78 100755 --- a/apilibs/kexbases/User32/lstr.c +++ b/apilibs/kexbases/User32/lstr.c @@ -36,8 +36,8 @@ /* MAKE_EXPORT CharNextExW_new=CharNextExW */ LPWSTR WINAPI CharNextExW_new( WORD codepage, LPCWSTR ptr, DWORD flags ) { - /* doesn't make sense, there are no codepages for Unicode */ - return NULL; + /* doesn't make sense, there are no codepages for Unicode */ + return NULL; } @@ -47,9 +47,9 @@ LPWSTR WINAPI CharNextExW_new( WORD codepage, LPCWSTR ptr, DWORD flags ) /* MAKE_EXPORT CharNextW_new=CharNextW */ LPWSTR WINAPI CharNextW_new(LPCWSTR x) { - if (*x) x++; + if (*x) x++; - return (LPWSTR)x; + return (LPWSTR)x; } @@ -59,8 +59,8 @@ LPWSTR WINAPI CharNextW_new(LPCWSTR x) /* MAKE_EXPORT CharPrevExW_new=CharPrevExW */ LPSTR WINAPI CharPrevExW_new( WORD codepage, LPCWSTR start, LPCWSTR ptr, DWORD flags ) { - /* doesn't make sense, there are no codepages for Unicode */ - return NULL; + /* doesn't make sense, there are no codepages for Unicode */ + return NULL; } @@ -70,8 +70,8 @@ LPSTR WINAPI CharPrevExW_new( WORD codepage, LPCWSTR start, LPCWSTR ptr, DWORD f /* MAKE_EXPORT CharPrevW_new=CharPrevW */ LPWSTR WINAPI CharPrevW_new(LPCWSTR start,LPCWSTR x) { - if (x>start) return (LPWSTR)(x-1); - else return (LPWSTR)x; + if (x>start) return (LPWSTR)(x-1); + else return (LPWSTR)x; } @@ -81,9 +81,9 @@ LPWSTR WINAPI CharPrevW_new(LPCWSTR start,LPCWSTR x) /* MAKE_EXPORT CharToOemBuffW_new=CharToOemBuffW */ BOOL WINAPI CharToOemBuffW_new( LPCWSTR s, LPSTR d, DWORD len ) { - if ( !s || !d ) return TRUE; - WideCharToMultiByte( CP_OEMCP, 0, s, len, d, len, NULL, NULL ); - return TRUE; + if ( !s || !d ) return TRUE; + WideCharToMultiByte( CP_OEMCP, 0, s, len, d, len, NULL, NULL ); + return TRUE; } @@ -93,7 +93,7 @@ BOOL WINAPI CharToOemBuffW_new( LPCWSTR s, LPSTR d, DWORD len ) /* MAKE_EXPORT CharToOemW_new=CharToOemW */ BOOL WINAPI CharToOemW_new( LPCWSTR s, LPSTR d ) { - return CharToOemBuffW_new( s, d, strlenW( s ) + 1 ); + return CharToOemBuffW_new( s, d, strlenW( s ) + 1 ); } @@ -103,8 +103,8 @@ BOOL WINAPI CharToOemW_new( LPCWSTR s, LPSTR d ) /* MAKE_EXPORT OemToCharBuffW_new=OemToCharBuffW */ BOOL WINAPI OemToCharBuffW_new( LPCSTR s, LPWSTR d, DWORD len ) { - MultiByteToWideChar( CP_OEMCP, 0, s, len, d, len ); - return TRUE; + MultiByteToWideChar( CP_OEMCP, 0, s, len, d, len ); + return TRUE; } @@ -114,7 +114,7 @@ BOOL WINAPI OemToCharBuffW_new( LPCSTR s, LPWSTR d, DWORD len ) /* MAKE_EXPORT OemToCharW_new=OemToCharW */ BOOL WINAPI OemToCharW_new( LPCSTR s, LPWSTR d ) { - return OemToCharBuffW_new( s, d, strlen( s ) + 1 ); + return OemToCharBuffW_new( s, d, strlen( s ) + 1 ); } @@ -124,8 +124,8 @@ BOOL WINAPI OemToCharW_new( LPCSTR s, LPWSTR d ) /* MAKE_EXPORT CharLowerW_new=CharLowerW */ LPWSTR WINAPI CharLowerW_new(LPWSTR x) { - if (HIWORD(x)) return strlwrW(x); - else return (LPWSTR)((UINT_PTR)tolowerW(LOWORD(x))); + if (HIWORD(x)) return strlwrW(x); + else return (LPWSTR)((UINT_PTR)tolowerW(LOWORD(x))); } @@ -135,8 +135,8 @@ LPWSTR WINAPI CharLowerW_new(LPWSTR x) /* MAKE_EXPORT CharUpperW_new=CharUpperW */ LPWSTR WINAPI CharUpperW_new(LPWSTR x) { - if (HIWORD(x)) return struprW(x); - else return (LPWSTR)((UINT_PTR)toupperW(LOWORD(x))); + if (HIWORD(x)) return struprW(x); + else return (LPWSTR)((UINT_PTR)toupperW(LOWORD(x))); } @@ -146,10 +146,10 @@ LPWSTR WINAPI CharUpperW_new(LPWSTR x) /* MAKE_EXPORT CharLowerBuffW_new=CharLowerBuffW */ DWORD WINAPI CharLowerBuffW_new( LPWSTR str, DWORD len ) { - DWORD ret = len; - if (!str) return 0; /* YES */ - for (; len; len--, str++) *str = tolowerW(*str); - return ret; + DWORD ret = len; + if (!str) return 0; /* YES */ + for (; len; len--, str++) *str = tolowerW(*str); + return ret; } @@ -159,10 +159,10 @@ DWORD WINAPI CharLowerBuffW_new( LPWSTR str, DWORD len ) /* MAKE_EXPORT CharUpperBuffW_new=CharUpperBuffW */ DWORD WINAPI CharUpperBuffW_new( LPWSTR str, DWORD len ) { - DWORD ret = len; - if (!str) return 0; /* YES */ - for (; len; len--, str++) *str = toupperW(*str); - return ret; + DWORD ret = len; + if (!str) return 0; /* YES */ + for (; len; len--, str++) *str = toupperW(*str); + return ret; } @@ -172,7 +172,7 @@ DWORD WINAPI CharUpperBuffW_new( LPWSTR str, DWORD len ) /* MAKE_EXPORT IsCharLowerW_new=IsCharLowerW */ BOOL WINAPI IsCharLowerW_new(WCHAR x) { - return (get_char_typeW(x) & C1_LOWER) != 0; + return (get_char_typeW(x) & C1_LOWER) != 0; } @@ -182,7 +182,7 @@ BOOL WINAPI IsCharLowerW_new(WCHAR x) /* MAKE_EXPORT IsCharUpperW_new=IsCharUpperW */ BOOL WINAPI IsCharUpperW_new(WCHAR x) { - return (get_char_typeW(x) & C1_UPPER) != 0; + return (get_char_typeW(x) & C1_UPPER) != 0; } @@ -192,7 +192,7 @@ BOOL WINAPI IsCharUpperW_new(WCHAR x) /* MAKE_EXPORT IsCharAlphaNumericW_new=IsCharAlphaNumericW */ BOOL WINAPI IsCharAlphaNumericW_new(WCHAR x) { - return (get_char_typeW(x) & (C1_ALPHA|C1_DIGIT)) != 0; + return (get_char_typeW(x) & (C1_ALPHA|C1_DIGIT)) != 0; } @@ -202,5 +202,5 @@ BOOL WINAPI IsCharAlphaNumericW_new(WCHAR x) /* MAKE_EXPORT IsCharAlphaW_new=IsCharAlphaW */ BOOL WINAPI IsCharAlphaW_new(WCHAR x) { - return (get_char_typeW(x) & C1_ALPHA) != 0; + return (get_char_typeW(x) & C1_ALPHA) != 0; } diff --git a/apilibs/kexbases/User32/thuni_conv.c b/apilibs/kexbases/User32/thuni_conv.c index 5b7e3c3..1388601 100755 --- a/apilibs/kexbases/User32/thuni_conv.c +++ b/apilibs/kexbases/User32/thuni_conv.c @@ -26,47 +26,6 @@ #include "thuni_macro.h" #include "thuni_thunk.h" - -__declspec(naked) -LRESULT WINAPI CallWindowProc_stdcall( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) -{ -__asm { - push ebp - mov ebp, esp - push edi - push esi - push ebx - sub esp, 12 - push [ebp+24] - push [ebp+20] - push [ebp+16] - push [ebp+12] - mov eax, [ebp+8] - call eax - lea esp, [ebp-12] - pop ebx - pop esi - pop edi - leave - ret 20 - } -} - -int GetCPFromLocale(LCID Locale) -{ - int cp; - Locale = LOWORD(Locale); - if (GetLocaleInfoA(Locale,LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER,(LPSTR)&cp,sizeof(int))) - return cp; - else - return CP_ACP; -} - -static UINT GetCurrentKeyboardCP() -{ - return GetCPFromLocale((LCID)GetKeyboardLayout(0)); -} - WPARAM wparam_AtoW( HWND hwnd, UINT message, WPARAM wParam, BOOL messDBCS ) { WPARAM newwParam = wParam; @@ -441,4 +400,3 @@ LRESULT WINAPI CallProcUnicodeWithAnsi( WNDPROC callback, HWND hwnd, UINT msg, W } return CallWindowProc_stdcall(callback,hwnd,msg,wParam,lParam); } - diff --git a/apilibs/kexbases/User32/thuni_layer.c b/apilibs/kexbases/User32/thuni_layer.c index 8c34b3f..7e99875 100755 --- a/apilibs/kexbases/User32/thuni_layer.c +++ b/apilibs/kexbases/User32/thuni_layer.c @@ -22,45 +22,18 @@ #include #include -#include "k32ord.h" #include "thuni_thunk.h" #include "thuni_layer.h" #include "thuni_macro.h" -static GCQ_API GetCurrentThreadQueue; -static HTOP_API HWNDtoPWND; - -static LPCRITICAL_SECTION pWin16Mutex; static CRITICAL_SECTION wndproc_cs; -static HMODULE g_hUser32; - -#define SetWinCreateEvent(proc) SetWinEventHook(EVENT_OBJECT_CREATE, EVENT_OBJECT_CREATE, g_hUser32, \ - (WINEVENTPROC)(proc), GetCurrentProcessId(), GetCurrentThreadId(), WINEVENT_INCONTEXT) - BOOL InitUniThunkLayer() -{ - g_hUser32 = GetModuleHandleA("user32"); - /* Returns current thread hQueue 32-bit pointer */ - GetCurrentThreadQueue = (GCQ_API) RELTOABS( (DWORD)GetMessageExtraInfo + 7 ); - /* IsWindow returns PWND */ - HWNDtoPWND = (HTOP_API)IsWindow; - - _GetpWin16Lock( &pWin16Mutex ); +{ InitializeCriticalSection( &wndproc_cs ); MakeCriticalSectionGlobal( &wndproc_cs ); - return TRUE; -} - -void GrabWin16Lock() -{ - _EnterSysLevel(pWin16Mutex); -} - -void ReleaseWin16Lock() -{ - _LeaveSysLevel(pWin16Mutex); + return InitUniThunkLayerStuff(); } static WNDPROC WINAPI _GetWindowProc32(PWND pwnd) diff --git a/apilibs/kexbases/User32/thuni_layer.h b/apilibs/kexbases/User32/thuni_layer.h index a768fa5..984e5eb 100755 --- a/apilibs/kexbases/User32/thuni_layer.h +++ b/apilibs/kexbases/User32/thuni_layer.h @@ -1,14 +1,9 @@ +#include "k32ord.h" #include "hwnd9x.h" static const char c_szDBCSProp[]="kexDBCS"; - -static DWORD GetWindowProcessId( HWND hwnd ) -{ - DWORD procID = 0; - GetWindowThreadProcessId( hwnd, &procID ); - return procID; -} +#define REBASEUSER(x) ((x) != 0 ? g_UserBase + (DWORD)(x) : 0) #define ISOURPROCESSHWND(hwnd) ( GetWindowProcessId(hwnd) == GetCurrentProcessId() ) #define IS_SHARED(x) (((DWORD)x) & 0x80000000) @@ -20,29 +15,41 @@ static DWORD GetWindowProcessId( HWND hwnd ) #define IS32BITWIN(pwnd) (pwnd->dwFlags & WF_EX_WIN32) #define ISDIALOG(pwnd) (pwnd->moreFlags & WF_M_DIALOG) -typedef PMSGQUEUE (WINAPI *GCQ_API) (); - -#define RELTOABS(x) ( (DWORD)(x) + *(DWORD*)(x) + 4 ) - -int GetCPFromLocale(LCID Locale); +#define SetWinCreateEvent(proc) SetWinEventHook(EVENT_OBJECT_CREATE, EVENT_OBJECT_CREATE, g_hUser32, \ + (WINEVENTPROC)(proc), GetCurrentProcessId(), GetCurrentThreadId(), WINEVENT_INCONTEXT) +//stuff +extern DWORD g_UserBase; +extern HMODULE g_hUser32; +BOOL InitUniThunkLayerStuff(); +void GrabWin16Lock(); +void ReleaseWin16Lock(); +DWORD GetWindowProcessId( HWND hwnd ); LRESULT WINAPI CallWindowProc_stdcall( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); +int GetCPFromLocale(LCID Locale); +UINT GetCurrentKeyboardCP(); +PMSGQUEUE GetCurrentThreadQueue(); +void UpdateLRKeyState(LPMSG msg); +//conv WPARAM wparam_AtoW( HWND hwnd, UINT message, WPARAM wParam, BOOL messDBCS ); WPARAM wparam_WtoA( UINT message, WPARAM wParam ); - LRESULT WINAPI CallProcUnicodeWithAnsi( WNDPROC callback, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); LRESULT WINAPI CallProcAnsiWithUnicode( WNDPROC callback, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); +//proc LRESULT WINAPI DefWindowProcW_NEW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); LRESULT WINAPI DefDlgProcW_NEW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); LRESULT WINAPI DefMDIChildProcW_NEW( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); + +//layer BOOL IsWindowReallyUnicode(HWND hwnd); BOOL WINAPI IsWindowUnicode_NEW( HWND hWnd ); +BOOL InitUniThunkLayer(); +//sendmessage_fix LRESULT WINAPI SendMessageA_fix(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); -BOOL InitUniThunkLayer(); #ifdef __cplusplus extern "C" diff --git a/apilibs/kexbases/User32/thuni_proc.c b/apilibs/kexbases/User32/thuni_proc.c index 08b19c8..1c7053a 100755 --- a/apilibs/kexbases/User32/thuni_proc.c +++ b/apilibs/kexbases/User32/thuni_proc.c @@ -1,7 +1,7 @@ /* * KernelEx * - * Copyright (C) 2009, Tihiy + * Copyright (C) 2009-2010, Tihiy * * This file is part of KernelEx source code. * @@ -119,7 +119,10 @@ BOOL WINAPI GetMessageA_NEW( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wM if ( !lpMsg ) return -1; //9x fails to check that ret = GetMessageA( lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax ); if ( ret && ((lpMsg->message>=WM_KEYFIRST && lpMsg->message<=WM_KEYLAST)||(lpMsg->message>=WM_MOUSEFIRST && lpMsg->message<=WM_MOUSELAST)) ) + { g_LastInputTime = GetTickCount(); + UpdateLRKeyState(lpMsg); + } return ret; } @@ -130,7 +133,10 @@ BOOL WINAPI PeekMessageA_NEW( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT w if ( !lpMsg ) return FALSE; //9x fails to check that ret = PeekMessageA( lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg ); if ( ret && ((lpMsg->message>=WM_KEYFIRST && lpMsg->message<=WM_KEYLAST)||(lpMsg->message>=WM_MOUSEFIRST && lpMsg->message<=WM_MOUSELAST)) ) + { g_LastInputTime = GetTickCount(); + UpdateLRKeyState(lpMsg); + } return ret; } diff --git a/apilibs/kexbases/User32/thuni_stuff.c b/apilibs/kexbases/User32/thuni_stuff.c new file mode 100755 index 0000000..ff8bf27 --- /dev/null +++ b/apilibs/kexbases/User32/thuni_stuff.c @@ -0,0 +1,165 @@ +/* + * KernelEx + * + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* various thuni routines here */ + +#include +#include "thuni_layer.h" + +static LPCRITICAL_SECTION pWin16Mutex; +DWORD g_UserBase; +HMODULE g_hUser32; + +BOOL InitUniThunkLayerStuff() +{ + _GetpWin16Lock( &pWin16Mutex ); + g_UserBase = MapSL(LoadLibrary16("user") << 16); + g_hUser32 = GetModuleHandleA("user32"); + + return (g_UserBase && g_hUser32); +} + +void GrabWin16Lock() +{ + _EnterSysLevel(pWin16Mutex); +} + +void ReleaseWin16Lock() +{ + _LeaveSysLevel(pWin16Mutex); +} + +DWORD GetWindowProcessId( HWND hwnd ) +{ + DWORD procID = 0; + GetWindowThreadProcessId( hwnd, &procID ); + return procID; +} + +__declspec(naked) +LRESULT WINAPI CallWindowProc_stdcall( WNDPROC lpPrevWndFunc, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) +{ +__asm { + push ebp + mov ebp, esp + push edi + push esi + push ebx + sub esp, 12 + push [ebp+24] + push [ebp+20] + push [ebp+16] + push [ebp+12] + mov eax, [ebp+8] + call eax + lea esp, [ebp-12] + pop ebx + pop esi + pop edi + leave + ret 20 + } +} + +int GetCPFromLocale(LCID Locale) +{ + int cp; + Locale = LOWORD(Locale); + if (GetLocaleInfoA(Locale,LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER,(LPSTR)&cp,sizeof(int))) + return cp; + else + return CP_ACP; +} + +UINT GetCurrentKeyboardCP() +{ + return GetCPFromLocale((LCID)GetKeyboardLayout(0)); +} + +#pragma warning (disable:4035) +static inline +WORD GetCurrentThreadhQueue() +{ + __asm mov ax, fs:[28h] +} +#pragma warning (default:4035) + +PMSGQUEUE GetCurrentThreadQueue() +{ + return (PMSGQUEUE)MapSL( GetCurrentThreadhQueue() << 16 ); +} + +//per-thread keyboard state +static PQUEUEKEYBUFFER GetCurrentThreadKeyBuffer() +{ + PMSGQUEUE msgq = GetCurrentThreadQueue(); + if (!msgq) return NULL; + PPERQUEUEDATA queuedata = (PPERQUEUEDATA)REBASEUSER(msgq->npPerQueue); + if (!queuedata) return NULL; + return (PQUEUEKEYBUFFER)MapSL(queuedata->keysbuffer); +} + +void UpdateLRKeyState(LPMSG msg) +{ + switch(msg->message) { + case WM_KEYDOWN: + case WM_KEYUP: + case WM_SYSKEYDOWN: + case WM_SYSKEYUP: + if (msg->wParam == VK_SHIFT) + { + PQUEUEKEYBUFFER keybuffer = GetCurrentThreadKeyBuffer(); + if (keybuffer) + { + BYTE scancode = LOBYTE(HIWORD(msg->lParam)); + if ( scancode == MapVirtualKey(VK_SHIFT,0) ) //left shift + keybuffer->keystate[VK_LSHIFT] = keybuffer->keystate[VK_SHIFT]; + else + keybuffer->keystate[VK_RSHIFT] = keybuffer->keystate[VK_SHIFT]; + } + } + else if (msg->wParam == VK_CONTROL) + { + PQUEUEKEYBUFFER keybuffer = GetCurrentThreadKeyBuffer(); + if (keybuffer) + { + if ( msg->lParam & 0x1000000 ) //extended bit -> right + keybuffer->keystate[VK_RCONTROL] = keybuffer->keystate[VK_CONTROL]; + else + keybuffer->keystate[VK_LCONTROL] = keybuffer->keystate[VK_CONTROL]; + } + } + else if (msg->wParam == VK_MENU) + { + PQUEUEKEYBUFFER keybuffer = GetCurrentThreadKeyBuffer(); + if (keybuffer) + { + if ( msg->lParam & 0x1000000 ) //extended bit -> right + keybuffer->keystate[VK_RMENU] = keybuffer->keystate[VK_MENU]; + else + keybuffer->keystate[VK_LMENU] = keybuffer->keystate[VK_MENU]; + } + } + break; + } +} + diff --git a/apilibs/kexbases/User32/uniuser32.c b/apilibs/kexbases/User32/uniuser32.c index 26b2d46..ad6e979 100755 --- a/apilibs/kexbases/User32/uniuser32.c +++ b/apilibs/kexbases/User32/uniuser32.c @@ -26,8 +26,8 @@ /* MAKE_EXPORT DrawCaptionTempW_new=DrawCaptionTempW */ BOOL WINAPI DrawCaptionTempW_new(HWND hwnd, HDC hdc, const RECT *rect, HFONT hFont, HICON hIcon, LPCWSTR strW, UINT uFlags) { - if (!(uFlags & DC_TEXT) || !strW) - return DrawCaptionTempA_pfn(hwnd, hdc, rect, hFont, hIcon, (LPCSTR)strW, uFlags); + if (!(uFlags & DC_TEXT) || !strW) + return DrawCaptionTempA_pfn(hwnd, hdc, rect, hFont, hIcon, (LPCSTR)strW, uFlags); else { ALLOC_WtoA(str); diff --git a/apilibs/kexbases/comctl32/syslink.c b/apilibs/kexbases/comctl32/syslink.c index a5b046a..b00145b 100755 --- a/apilibs/kexbases/comctl32/syslink.c +++ b/apilibs/kexbases/comctl32/syslink.c @@ -58,15 +58,15 @@ int WINAPI StrCmpNIW(LPCWSTR lpStr1,LPCWSTR lpStr2,int nChar) static CC361 StrCmpNIW_dld; if (!StrCmpNIW_dld) - StrCmpNIW_dld = (CC361)kexGetProcAddress(GetModuleHandle("COMCTL32.DLL"),(LPSTR)361); + StrCmpNIW_dld = (CC361) kexGetProcAddress(GetModuleHandle("COMCTL32.DLL"),(LPSTR)361); return StrCmpNIW_dld(lpStr1,lpStr2,nChar); } -BOOL WINAPI GetTextExtentExPointW_lame( HDC hdc, LPCWSTR lpszStr, int cchString, int nMaxExtent, - LPINT lpnFit, LPINT alpDx, LPSIZE lpSize) +BOOL WINAPI GetTextExtentExPointW_lame (HDC hdc, LPCWSTR lpszStr, int cchString, int nMaxExtent, + LPINT lpnFit, LPINT alpDx, LPSIZE lpSize) { - if ( GetTextExtentPointW(hdc,lpszStr,cchString,lpSize) ) + if (GetTextExtentPointW(hdc,lpszStr,cchString,lpSize)) { if (lpnFit) { @@ -75,7 +75,7 @@ BOOL WINAPI GetTextExtentExPointW_lame( HDC hdc, LPCWSTR lpszStr, int cchString, while (dummy.cx>nMaxExtent && cchString>0) { cchString--; - GetTextExtentPointW(hdc,lpszStr,cchString,&dummy); + GetTextExtentPointW(hdc,lpszStr,cchString,&dummy); } *lpnFit = cchString; } @@ -96,9 +96,9 @@ BOOL WINAPI GetTextExtentExPointW_lame( HDC hdc, LPCWSTR lpszStr, int cchString, typedef struct { - int nChars; - int nSkip; - RECT rc; + int nChars; + int nSkip; + RECT rc; } DOC_TEXTBLOCK, *PDOC_TEXTBLOCK; #define LIF_FLAGSMASK (LIF_STATE | LIF_ITEMID | LIF_URL) @@ -106,48 +106,48 @@ typedef struct typedef enum { - slText = 0, - slLink + slText = 0, + slLink } SL_ITEM_TYPE; typedef struct _DOC_ITEM { - struct _DOC_ITEM *Next; /* Address to the next item */ - UINT nText; /* Number of characters of the text */ - SL_ITEM_TYPE Type; /* type of the item */ - PDOC_TEXTBLOCK Blocks; /* Array of text blocks */ - union - { - struct - { - UINT state; /* Link state */ - WCHAR *szID; /* Link ID string */ - WCHAR *szUrl; /* Link URL string */ - } Link; - struct - { - UINT Dummy; - } Text; - } u; - WCHAR Text[1]; /* Text of the document item */ + struct _DOC_ITEM *Next; /* Address to the next item */ + UINT nText; /* Number of characters of the text */ + SL_ITEM_TYPE Type; /* type of the item */ + PDOC_TEXTBLOCK Blocks; /* Array of text blocks */ + union + { + struct + { + UINT state; /* Link state */ + WCHAR *szID; /* Link ID string */ + WCHAR *szUrl; /* Link URL string */ + } Link; + struct + { + UINT Dummy; + } Text; + } u; + WCHAR Text[1]; /* Text of the document item */ } DOC_ITEM, *PDOC_ITEM; typedef struct { - HWND Self; /* The window handle for this control */ - HWND Notify; /* The parent handle to receive notifications */ - DWORD Style; /* Styles for this control */ - PDOC_ITEM Items; /* Address to the first document item */ - BOOL HasFocus; /* Whether the control has the input focus */ - int MouseDownID; /* ID of the link that the mouse button first selected */ - HFONT Font; /* Handle to the font for text */ - HFONT LinkFont; /* Handle to the font for links */ - COLORREF TextColor; /* Color of the text */ - COLORREF LinkColor; /* Color of links */ - COLORREF VisitedColor; /* Color of visited links */ - COLORREF BackColor; /* Background color, set on creation */ - WCHAR BreakChar; /* Break Character for the current font */ - BOOL IgnoreReturn; /* (infoPtr->Style & LWS_IGNORERETURN) on creation */ + HWND Self; /* The window handle for this control */ + HWND Notify; /* The parent handle to receive notifications */ + DWORD Style; /* Styles for this control */ + PDOC_ITEM Items; /* Address to the first document item */ + BOOL HasFocus; /* Whether the control has the input focus */ + int MouseDownID; /* ID of the link that the mouse button first selected */ + HFONT Font; /* Handle to the font for text */ + HFONT LinkFont; /* Handle to the font for links */ + COLORREF TextColor; /* Color of the text */ + COLORREF LinkColor; /* Color of links */ + COLORREF VisitedColor; /* Color of visited links */ + COLORREF BackColor; /* Background color, set on creation */ + WCHAR BreakChar; /* Break Character for the current font */ + BOOL IgnoreReturn; /* (infoPtr->Style & LWS_IGNORERETURN) on creation */ } SYSLINK_INFO; static const WCHAR SL_LINKOPEN[] = { '<','a', 0 }; @@ -168,16 +168,16 @@ static const WCHAR SL_LINKCLOSE[] = { '<','/','a','>',0 }; */ static VOID SYSLINK_FreeDocItem (PDOC_ITEM DocItem) { - if(DocItem->Type == slLink) - { - Free(DocItem->u.Link.szID); - Free(DocItem->u.Link.szUrl); - } + if(DocItem->Type == slLink) + { + Free(DocItem->u.Link.szID); + Free(DocItem->u.Link.szUrl); + } - /* we don't free Text because it's just a pointer to a character in the - entire window text string */ + /* we don't free Text because it's just a pointer to a character in the + entire window text string */ - Free(DocItem); + Free(DocItem); } /*********************************************************************** @@ -187,33 +187,33 @@ static VOID SYSLINK_FreeDocItem (PDOC_ITEM DocItem) static PDOC_ITEM SYSLINK_AppendDocItem (SYSLINK_INFO *infoPtr, LPCWSTR Text, UINT textlen, SL_ITEM_TYPE type, PDOC_ITEM LastItem) { - PDOC_ITEM Item; + PDOC_ITEM Item; - textlen = min(textlen, (UINT)lstrlenW(Text)); - Item = (PDOC_ITEM)Alloc(FIELD_OFFSET(DOC_ITEM, Text[textlen + 1])); - if(Item == NULL) - { - ERR("Failed to alloc DOC_ITEM structure!\n"); - return NULL; - } + textlen = min(textlen, (UINT)lstrlenW(Text)); + Item = (PDOC_ITEM)Alloc(FIELD_OFFSET(DOC_ITEM, Text[textlen + 1])); + if(Item == NULL) + { + ERR("Failed to alloc DOC_ITEM structure!\n"); + return NULL; + } - Item->Next = NULL; - Item->nText = textlen; - Item->Type = type; - Item->Blocks = NULL; - - if(LastItem != NULL) - { - LastItem->Next = Item; - } - else - { - infoPtr->Items = Item; - } - - lstrcpynW(Item->Text, Text, textlen + 1); - - return Item; + Item->Next = NULL; + Item->nText = textlen; + Item->Type = type; + Item->Blocks = NULL; + + if(LastItem != NULL) + { + LastItem->Next = Item; + } + else + { + infoPtr->Items = Item; + } + + lstrcpynW(Item->Text, Text, textlen + 1); + + return Item; } /*********************************************************************** @@ -222,17 +222,17 @@ static PDOC_ITEM SYSLINK_AppendDocItem (SYSLINK_INFO *infoPtr, LPCWSTR Text, UIN */ static VOID SYSLINK_ClearDoc (SYSLINK_INFO *infoPtr) { - PDOC_ITEM Item, Next; - - Item = infoPtr->Items; - while(Item != NULL) - { - Next = Item->Next; - SYSLINK_FreeDocItem(Item); - Item = Next; - } - - infoPtr->Items = NULL; + PDOC_ITEM Item, Next; + + Item = infoPtr->Items; + while(Item != NULL) + { + Next = Item->Next; + SYSLINK_FreeDocItem(Item); + Item = Next; + } + + infoPtr->Items = NULL; } /*********************************************************************** @@ -242,283 +242,283 @@ static VOID SYSLINK_ClearDoc (SYSLINK_INFO *infoPtr) */ static UINT SYSLINK_ParseText (SYSLINK_INFO *infoPtr, LPCWSTR Text) { - LPCWSTR current, textstart = NULL, linktext = NULL, firsttag = NULL; - int taglen = 0, textlen = 0, linklen = 0, docitems = 0; - PDOC_ITEM Last = NULL; - SL_ITEM_TYPE CurrentType = slText; - LPCWSTR lpID, lpUrl; - UINT lenId, lenUrl; + LPCWSTR current, textstart = NULL, linktext = NULL, firsttag = NULL; + int taglen = 0, textlen = 0, linklen = 0, docitems = 0; + PDOC_ITEM Last = NULL; + SL_ITEM_TYPE CurrentType = slText; + LPCWSTR lpID, lpUrl; + UINT lenId, lenUrl; - TRACE("(%p %s)\n", infoPtr, debugstr_w(Text)); + TRACE("(%p %s)\n", infoPtr, debugstr_w(Text)); - for(current = Text; *current != 0;) - { - if(*current == '<') - { - if(!StrCmpNIW(current, SL_LINKOPEN, 2) && (CurrentType == slText)) - { - BOOL ValidParam = FALSE, ValidLink = FALSE; + for(current = Text; *current != 0;) + { + if(*current == '<') + { + if(!StrCmpNIW(current, SL_LINKOPEN, 2) && (CurrentType == slText)) + { + BOOL ValidParam = FALSE, ValidLink = FALSE; - if(*(current + 2) == '>') - { - /* we just have to deal with a tag */ - taglen = 3; - ValidLink = TRUE; - ValidParam = TRUE; - firsttag = current; - linklen = 0; - lpID = NULL; - lpUrl = NULL; - } - else if(*(current + 2) == infoPtr->BreakChar) - { - /* we expect parameters, parse them */ - LPCWSTR *CurrentParameter = NULL, tmp; - UINT *CurrentParameterLen = NULL; + if(*(current + 2) == '>') + { + /* we just have to deal with a tag */ + taglen = 3; + ValidLink = TRUE; + ValidParam = TRUE; + firsttag = current; + linklen = 0; + lpID = NULL; + lpUrl = NULL; + } + else if(*(current + 2) == infoPtr->BreakChar) + { + /* we expect parameters, parse them */ + LPCWSTR *CurrentParameter = NULL, tmp; + UINT *CurrentParameterLen = NULL; - taglen = 3; - tmp = current + taglen; - lpID = NULL; - lpUrl = NULL; - + taglen = 3; + tmp = current + taglen; + lpID = NULL; + lpUrl = NULL; + CheckParameter: - /* compare the current position with all known parameters */ - if(!StrCmpNIW(tmp, SL_HREF, 6)) - { - taglen += 6; - ValidParam = TRUE; - CurrentParameter = &lpUrl; - CurrentParameterLen = &lenUrl; - } - else if(!StrCmpNIW(tmp, SL_ID, 4)) - { - taglen += 4; - ValidParam = TRUE; - CurrentParameter = &lpID; - CurrentParameterLen = &lenId; - } - else - { - ValidParam = FALSE; - } - - if(ValidParam) - { - /* we got a known parameter, now search until the next " character. - If we can't find a " character, there's a syntax error and we just assume it's text */ - ValidParam = FALSE; - *CurrentParameter = current + taglen; - *CurrentParameterLen = 0; + /* compare the current position with all known parameters */ + if(!StrCmpNIW(tmp, SL_HREF, 6)) + { + taglen += 6; + ValidParam = TRUE; + CurrentParameter = &lpUrl; + CurrentParameterLen = &lenUrl; + } + else if(!StrCmpNIW(tmp, SL_ID, 4)) + { + taglen += 4; + ValidParam = TRUE; + CurrentParameter = &lpID; + CurrentParameterLen = &lenId; + } + else + { + ValidParam = FALSE; + } + + if(ValidParam) + { + /* we got a known parameter, now search until the next " character. + If we can't find a " character, there's a syntax error and we just assume it's text */ + ValidParam = FALSE; + *CurrentParameter = current + taglen; + *CurrentParameterLen = 0; - for(tmp = *CurrentParameter; *tmp != 0; tmp++) - { - taglen++; - if(*tmp == '\"') - { - ValidParam = TRUE; - tmp++; - break; - } - (*CurrentParameterLen)++; - } - } - if(ValidParam) - { - /* we're done with this parameter, now there are only 2 possibilities: - * 1. another parameter is coming, so expect a ' ' (space) character - * 2. the tag is being closed, so expect a '<' character - */ - if(*tmp == infoPtr->BreakChar) - { - /* we expect another parameter, do the whole thing again */ - taglen++; - tmp++; - goto CheckParameter; - } - else if(*tmp == '>') - { - /* the tag is being closed, we're done */ - ValidLink = TRUE; - taglen++; - } - } - } - - if(ValidLink && ValidParam) - { - /* the tag appears to be valid. save all information - so we can add the link if we find a valid tag later */ - CurrentType = slLink; - linktext = current + taglen; - linklen = 0; - firsttag = current; - } - else - { - taglen = 1; - lpID = NULL; - lpUrl = NULL; - if(textstart == NULL) - { - textstart = current; - } - } - } - else if(!StrCmpNIW(current, SL_LINKCLOSE, 4) && (CurrentType == slLink) && firsttag) - { - /* there's a tag opened, first add the previous text, if present */ - if(textstart != NULL && textlen > 0 && firsttag > textstart) - { - Last = SYSLINK_AppendDocItem(infoPtr, textstart, firsttag - textstart, slText, Last); - if(Last == NULL) - { - ERR("Unable to create new document item!\n"); - return docitems; - } - docitems++; - textstart = NULL; - textlen = 0; - } - - /* now it's time to add the link to the document */ - current += 4; - if(linktext != NULL && linklen > 0) - { - Last = SYSLINK_AppendDocItem(infoPtr, linktext, linklen, slLink, Last); - if(Last == NULL) - { - ERR("Unable to create new document item!\n"); - return docitems; - } - docitems++; - if(CurrentType == slLink) - { - int nc; + for(tmp = *CurrentParameter; *tmp != 0; tmp++) + { + taglen++; + if(*tmp == '\"') + { + ValidParam = TRUE; + tmp++; + break; + } + (*CurrentParameterLen)++; + } + } + if(ValidParam) + { + /* we're done with this parameter, now there are only 2 possibilities: + * 1. another parameter is coming, so expect a ' ' (space) character + * 2. the tag is being closed, so expect a '<' character + */ + if(*tmp == infoPtr->BreakChar) + { + /* we expect another parameter, do the whole thing again */ + taglen++; + tmp++; + goto CheckParameter; + } + else if(*tmp == '>') + { + /* the tag is being closed, we're done */ + ValidLink = TRUE; + taglen++; + } + } + } + + if(ValidLink && ValidParam) + { + /* the tag appears to be valid. save all information + so we can add the link if we find a valid tag later */ + CurrentType = slLink; + linktext = current + taglen; + linklen = 0; + firsttag = current; + } + else + { + taglen = 1; + lpID = NULL; + lpUrl = NULL; + if(textstart == NULL) + { + textstart = current; + } + } + } + else if(!StrCmpNIW(current, SL_LINKCLOSE, 4) && (CurrentType == slLink) && firsttag) + { + /* there's a tag opened, first add the previous text, if present */ + if(textstart != NULL && textlen > 0 && firsttag > textstart) + { + Last = SYSLINK_AppendDocItem(infoPtr, textstart, firsttag - textstart, slText, Last); + if(Last == NULL) + { + ERR("Unable to create new document item!\n"); + return docitems; + } + docitems++; + textstart = NULL; + textlen = 0; + } + + /* now it's time to add the link to the document */ + current += 4; + if(linktext != NULL && linklen > 0) + { + Last = SYSLINK_AppendDocItem(infoPtr, linktext, linklen, slLink, Last); + if(Last == NULL) + { + ERR("Unable to create new document item!\n"); + return docitems; + } + docitems++; + if(CurrentType == slLink) + { + int nc; - if(!(infoPtr->Style & WS_DISABLED)) - { - Last->u.Link.state |= LIS_ENABLED; - } - /* Copy the tag parameters */ - if(lpID != NULL) - { - nc = min(lenId, (UINT)lstrlenW(lpID)); - nc = min(nc, MAX_LINKID_TEXT - 1); - Last->u.Link.szID = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); - if(Last->u.Link.szID != NULL) - { - lstrcpynW(Last->u.Link.szID, lpID, nc + 1); - } - } - else - Last->u.Link.szID = NULL; - if(lpUrl != NULL) - { - nc = min(lenUrl, (UINT)lstrlenW(lpUrl)); - nc = min(nc, L_MAX_URL_LENGTH - 1); - Last->u.Link.szUrl = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); - if(Last->u.Link.szUrl != NULL) - { - lstrcpynW(Last->u.Link.szUrl, lpUrl, nc + 1); - } - } - else - Last->u.Link.szUrl = NULL; - } - linktext = NULL; - } - CurrentType = slText; - firsttag = NULL; - textstart = NULL; - continue; - } - else - { - /* we don't know what tag it is, so just continue */ - taglen = 1; - linklen++; - if(CurrentType == slText && textstart == NULL) - { - textstart = current; - } - } - - textlen += taglen; - current += taglen; - } - else - { - textlen++; - linklen++; + if(!(infoPtr->Style & WS_DISABLED)) + { + Last->u.Link.state |= LIS_ENABLED; + } + /* Copy the tag parameters */ + if(lpID != NULL) + { + nc = min(lenId, (UINT)lstrlenW(lpID)); + nc = min(nc, MAX_LINKID_TEXT - 1); + Last->u.Link.szID = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); + if(Last->u.Link.szID != NULL) + { + lstrcpynW(Last->u.Link.szID, lpID, nc + 1); + } + } + else + Last->u.Link.szID = NULL; + if(lpUrl != NULL) + { + nc = min(lenUrl, (UINT)lstrlenW(lpUrl)); + nc = min(nc, L_MAX_URL_LENGTH - 1); + Last->u.Link.szUrl = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); + if(Last->u.Link.szUrl != NULL) + { + lstrcpynW(Last->u.Link.szUrl, lpUrl, nc + 1); + } + } + else + Last->u.Link.szUrl = NULL; + } + linktext = NULL; + } + CurrentType = slText; + firsttag = NULL; + textstart = NULL; + continue; + } + else + { + /* we don't know what tag it is, so just continue */ + taglen = 1; + linklen++; + if(CurrentType == slText && textstart == NULL) + { + textstart = current; + } + } + + textlen += taglen; + current += taglen; + } + else + { + textlen++; + linklen++; - /* save the pointer of the current text item if we couldn't find a tag */ - if(textstart == NULL && CurrentType == slText) - { - textstart = current; - } - - current++; - } - } - - if(textstart != NULL && textlen > 0) - { - Last = SYSLINK_AppendDocItem(infoPtr, textstart, textlen, CurrentType, Last); - if(Last == NULL) - { - ERR("Unable to create new document item!\n"); - return docitems; - } - if(CurrentType == slLink) - { - int nc; + /* save the pointer of the current text item if we couldn't find a tag */ + if(textstart == NULL && CurrentType == slText) + { + textstart = current; + } + + current++; + } + } - if(!(infoPtr->Style & WS_DISABLED)) - { - Last->u.Link.state |= LIS_ENABLED; - } - /* Copy the tag parameters */ - if(lpID != NULL) - { - nc = min(lenId, (UINT)lstrlenW(lpID)); - nc = min(nc, MAX_LINKID_TEXT - 1); - Last->u.Link.szID = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); - if(Last->u.Link.szID != NULL) - { - lstrcpynW(Last->u.Link.szID, lpID, nc + 1); - } - } - else - Last->u.Link.szID = NULL; - if(lpUrl != NULL) - { - nc = min(lenUrl, (UINT)lstrlenW(lpUrl)); - nc = min(nc, L_MAX_URL_LENGTH - 1); - Last->u.Link.szUrl = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); - if(Last->u.Link.szUrl != NULL) - { - lstrcpynW(Last->u.Link.szUrl, lpUrl, nc + 1); - } - } - else - Last->u.Link.szUrl = NULL; - } - docitems++; - } + if(textstart != NULL && textlen > 0) + { + Last = SYSLINK_AppendDocItem(infoPtr, textstart, textlen, CurrentType, Last); + if(Last == NULL) + { + ERR("Unable to create new document item!\n"); + return docitems; + } + if(CurrentType == slLink) + { + int nc; - if(linktext != NULL && linklen > 0) - { - /* we got an unclosed link, just display the text */ - Last = SYSLINK_AppendDocItem(infoPtr, linktext, linklen, slText, Last); - if(Last == NULL) - { - ERR("Unable to create new document item!\n"); - return docitems; - } - docitems++; - } + if(!(infoPtr->Style & WS_DISABLED)) + { + Last->u.Link.state |= LIS_ENABLED; + } + /* Copy the tag parameters */ + if(lpID != NULL) + { + nc = min(lenId, (UINT)lstrlenW(lpID)); + nc = min(nc, MAX_LINKID_TEXT - 1); + Last->u.Link.szID = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); + if(Last->u.Link.szID != NULL) + { + lstrcpynW(Last->u.Link.szID, lpID, nc + 1); + } + } + else + Last->u.Link.szID = NULL; + if(lpUrl != NULL) + { + nc = min(lenUrl, (UINT)lstrlenW(lpUrl)); + nc = min(nc, L_MAX_URL_LENGTH - 1); + Last->u.Link.szUrl = (WCHAR*)Alloc((nc + 1) * sizeof(WCHAR)); + if(Last->u.Link.szUrl != NULL) + { + lstrcpynW(Last->u.Link.szUrl, lpUrl, nc + 1); + } + } + else + Last->u.Link.szUrl = NULL; + } + docitems++; + } - return docitems; + if(linktext != NULL && linklen > 0) + { + /* we got an unclosed link, just display the text */ + Last = SYSLINK_AppendDocItem(infoPtr, linktext, linklen, slText, Last); + if(Last == NULL) + { + ERR("Unable to create new document item!\n"); + return docitems; + } + docitems++; + } + + return docitems; } /*********************************************************************** @@ -527,27 +527,27 @@ CheckParameter: */ static VOID SYSLINK_RepaintLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *DocItem) { - PDOC_TEXTBLOCK bl; - int n; + PDOC_TEXTBLOCK bl; + int n; - if(DocItem->Type != slLink) - { - ERR("DocItem not a link!\n"); - return; - } - - bl = DocItem->Blocks; - if (bl != NULL) - { - n = DocItem->nText; - - while(n > 0) - { - InvalidateRect(infoPtr->Self, &bl->rc, TRUE); - n -= bl->nChars + bl->nSkip; - bl++; - } - } + if(DocItem->Type != slLink) + { + ERR("DocItem not a link!\n"); + return; + } + + bl = DocItem->Blocks; + if (bl != NULL) + { + n = DocItem->nText; + + while(n > 0) + { + InvalidateRect(infoPtr->Self, &bl->rc, TRUE); + n -= bl->nChars + bl->nSkip; + bl++; + } + } } /*********************************************************************** @@ -556,17 +556,17 @@ static VOID SYSLINK_RepaintLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *Do */ static PDOC_ITEM SYSLINK_GetLinkItemByIndex (const SYSLINK_INFO *infoPtr, int iLink) { - PDOC_ITEM Current = infoPtr->Items; + PDOC_ITEM Current = infoPtr->Items; - while(Current != NULL) - { - if((Current->Type == slLink) && (iLink-- <= 0)) - { - return Current; - } - Current = Current->Next; - } - return NULL; + while(Current != NULL) + { + if((Current->Type == slLink) && (iLink-- <= 0)) + { + return Current; + } + Current = Current->Next; + } + return NULL; } /*********************************************************************** @@ -575,24 +575,24 @@ static PDOC_ITEM SYSLINK_GetLinkItemByIndex (const SYSLINK_INFO *infoPtr, int iL */ static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId) { - PDOC_ITEM Current = infoPtr->Items; - int id = 0; + PDOC_ITEM Current = infoPtr->Items; + int id = 0; - while(Current != NULL) - { - if((Current->Type == slLink)) - { - if(Current->u.Link.state & LIS_FOCUSED) - { - if(LinkId != NULL) - *LinkId = id; - return Current; - } - id++; - } - Current = Current->Next; - } - return NULL; + while(Current != NULL) + { + if((Current->Type == slLink)) + { + if(Current->u.Link.state & LIS_FOCUSED) + { + if(LinkId != NULL) + *LinkId = id; + return Current; + } + id++; + } + Current = Current->Next; + } + return NULL; } /*********************************************************************** @@ -601,16 +601,16 @@ static PDOC_ITEM SYSLINK_GetFocusLink (const SYSLINK_INFO *infoPtr, int *LinkId) */ static PDOC_ITEM SYSLINK_GetNextLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current) { - for(Current = (Current != NULL ? Current->Next : infoPtr->Items); - Current != NULL; - Current = Current->Next) - { - if(Current->Type == slLink) - { - return Current; - } - } - return NULL; + for(Current = (Current != NULL ? Current->Next : infoPtr->Items); + Current != NULL; + Current = Current->Next) + { + if(Current->Type == slLink) + { + return Current; + } + } + return NULL; } /*********************************************************************** @@ -619,38 +619,38 @@ static PDOC_ITEM SYSLINK_GetNextLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Cur */ static PDOC_ITEM SYSLINK_GetPrevLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Current) { - if(Current == NULL) - { - /* returns the last link */ - PDOC_ITEM Last = NULL; - - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - if(Current->Type == slLink) - { - Last = Current; - } - } - return Last; - } - else - { - /* returns the previous link */ - PDOC_ITEM Cur, Prev = NULL; - - for(Cur = infoPtr->Items; Cur != NULL; Cur = Cur->Next) - { - if(Cur == Current) - { - break; - } - if(Cur->Type == slLink) - { - Prev = Cur; - } - } - return Prev; - } + if(Current == NULL) + { + /* returns the last link */ + PDOC_ITEM Last = NULL; + + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + if(Current->Type == slLink) + { + Last = Current; + } + } + return Last; + } + else + { + /* returns the previous link */ + PDOC_ITEM Cur, Prev = NULL; + + for(Cur = infoPtr->Items; Cur != NULL; Cur = Cur->Next) + { + if(Cur == Current) + { + break; + } + if(Cur->Type == slLink) + { + Prev = Cur; + } + } + return Prev; + } } /*********************************************************************** @@ -660,36 +660,36 @@ static PDOC_ITEM SYSLINK_GetPrevLink (const SYSLINK_INFO *infoPtr, PDOC_ITEM Cur static BOOL SYSLINK_WrapLine (LPWSTR Text, WCHAR BreakChar, int *LineLen, int nFit, LPSIZE Extent) { - WCHAR *Current; + WCHAR *Current; - if(nFit == *LineLen) - { - return FALSE; - } + if(nFit == *LineLen) + { + return FALSE; + } - *LineLen = nFit; + *LineLen = nFit; - Current = Text + nFit; - - /* check if we're in the middle of a word */ - if((*Current) != BreakChar) - { - /* search for the beginning of the word */ - while(Current > Text && (*(Current - 1)) != BreakChar) - { - Current--; - (*LineLen)--; - } - - if((*LineLen) == 0) - { - Extent->cx = 0; - Extent->cy = 0; - } - return TRUE; - } + Current = Text + nFit; - return TRUE; + /* check if we're in the middle of a word */ + if((*Current) != BreakChar) + { + /* search for the beginning of the word */ + while(Current > Text && (*(Current - 1)) != BreakChar) + { + Current--; + (*LineLen)--; + } + + if((*LineLen) == 0) + { + Extent->cx = 0; + Extent->cy = 0; + } + return TRUE; + } + + return TRUE; } /*********************************************************************** @@ -698,179 +698,179 @@ static BOOL SYSLINK_WrapLine (LPWSTR Text, WCHAR BreakChar, int *LineLen, */ static VOID SYSLINK_Render (const SYSLINK_INFO *infoPtr, HDC hdc, PRECT pRect) { - RECT rc; - PDOC_ITEM Current; - HGDIOBJ hOldFont; - int x, y, LineHeight; - SIZE szDoc; + RECT rc; + PDOC_ITEM Current; + HGDIOBJ hOldFont; + int x, y, LineHeight; + SIZE szDoc; - szDoc.cx = szDoc.cy = 0; + szDoc.cx = szDoc.cy = 0; - rc = *pRect; - rc.right -= SL_RIGHTMARGIN; - rc.bottom -= SL_BOTTOMMARGIN; + rc = *pRect; + rc.right -= SL_RIGHTMARGIN; + rc.bottom -= SL_BOTTOMMARGIN; - if(rc.right - SL_LEFTMARGIN < 0) - rc.right = MAXLONG; - if (rc.bottom - SL_TOPMARGIN < 0) - rc.bottom = MAXLONG; - - hOldFont = SelectObject(hdc, infoPtr->Font); - - x = SL_LEFTMARGIN; - y = SL_TOPMARGIN; - LineHeight = 0; - - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - int n, nBlocks; - LPWSTR tx; - PDOC_TEXTBLOCK bl, cbl; - INT nFit; - SIZE szDim; + if(rc.right - SL_LEFTMARGIN < 0) + rc.right = MAXLONG; + if (rc.bottom - SL_TOPMARGIN < 0) + rc.bottom = MAXLONG; - if(Current->nText == 0) - { - continue; - } + hOldFont = SelectObject(hdc, infoPtr->Font); - tx = Current->Text; - n = Current->nText; + x = SL_LEFTMARGIN; + y = SL_TOPMARGIN; + LineHeight = 0; - Free(Current->Blocks); - Current->Blocks = NULL; - bl = NULL; - nBlocks = 0; + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + int n, nBlocks; + LPWSTR tx; + PDOC_TEXTBLOCK bl, cbl; + INT nFit; + SIZE szDim; - if(Current->Type == slText) - { - SelectObject(hdc, infoPtr->Font); - } - else if(Current->Type == slLink) - { - SelectObject(hdc, infoPtr->LinkFont); - } - - while(n > 0) - { - int SkipChars = 0; + if(Current->nText == 0) + { + continue; + } - /* skip break characters unless they're the first of the doc item */ - if(tx != Current->Text || x == SL_LEFTMARGIN) - { - while(n > 0 && (*tx) == infoPtr->BreakChar) - { - tx++; - SkipChars++; - n--; - } - } + tx = Current->Text; + n = Current->nText; - if((n == 0 && SkipChars != 0) || - GetTextExtentExPointW(hdc, tx, n, rc.right - x, &nFit, NULL, &szDim)) - { - int LineLen = n; - BOOL Wrap = FALSE; - PDOC_TEXTBLOCK nbl; - - if(n != 0) - { - Wrap = SYSLINK_WrapLine(tx, infoPtr->BreakChar, &LineLen, nFit, &szDim); + Free(Current->Blocks); + Current->Blocks = NULL; + bl = NULL; + nBlocks = 0; - if(LineLen == 0) - { - if(x > SL_LEFTMARGIN) - { - /* move one line down, the word didn't fit into the line */ - x = SL_LEFTMARGIN; - y += LineHeight; - LineHeight = 0; - continue; - } - else - { - /* the word starts at the beginning of the line and doesn't - fit into the line, so break it at the last character that fits */ - LineLen = max(nFit, 1); - } - } + if(Current->Type == slText) + { + SelectObject(hdc, infoPtr->Font); + } + else if(Current->Type == slLink) + { + SelectObject(hdc, infoPtr->LinkFont); + } + + while(n > 0) + { + int SkipChars = 0; - if(LineLen != n) - { - if(!GetTextExtentExPointW(hdc, tx, LineLen, rc.right - x, NULL, NULL, &szDim)) - { - if(bl != NULL) - { - Free(bl); - bl = NULL; - nBlocks = 0; - } - break; - } - } - } - - nbl = (PDOC_TEXTBLOCK)ReAlloc(bl, (nBlocks + 1) * sizeof(DOC_TEXTBLOCK)); - if (nbl != NULL) - { - bl = nbl; - nBlocks++; + /* skip break characters unless they're the first of the doc item */ + if(tx != Current->Text || x == SL_LEFTMARGIN) + { + while(n > 0 && (*tx) == infoPtr->BreakChar) + { + tx++; + SkipChars++; + n--; + } + } - cbl = bl + nBlocks - 1; - - cbl->nChars = LineLen; - cbl->nSkip = SkipChars; - cbl->rc.left = x; - cbl->rc.top = y; - cbl->rc.right = x + szDim.cx; - cbl->rc.bottom = y + szDim.cy; + if((n == 0 && SkipChars != 0) || + GetTextExtentExPointW(hdc, tx, n, rc.right - x, &nFit, NULL, &szDim)) + { + int LineLen = n; + BOOL Wrap = FALSE; + PDOC_TEXTBLOCK nbl; + + if(n != 0) + { + Wrap = SYSLINK_WrapLine(tx, infoPtr->BreakChar, &LineLen, nFit, &szDim); - if (cbl->rc.right > szDoc.cx) - szDoc.cx = cbl->rc.right; - if (cbl->rc.bottom > szDoc.cy) - szDoc.cy = cbl->rc.bottom; + if(LineLen == 0) + { + if(x > SL_LEFTMARGIN) + { + /* move one line down, the word didn't fit into the line */ + x = SL_LEFTMARGIN; + y += LineHeight; + LineHeight = 0; + continue; + } + else + { + /* the word starts at the beginning of the line and doesn't + fit into the line, so break it at the last character that fits */ + LineLen = max(nFit, 1); + } + } - if(LineLen != 0) - { - x += szDim.cx; - LineHeight = max(LineHeight, szDim.cy); + if(LineLen != n) + { + if(!GetTextExtentExPointW(hdc, tx, LineLen, rc.right - x, NULL, NULL, &szDim)) + { + if(bl != NULL) + { + Free(bl); + bl = NULL; + nBlocks = 0; + } + break; + } + } + } + + nbl = (PDOC_TEXTBLOCK)ReAlloc(bl, (nBlocks + 1) * sizeof(DOC_TEXTBLOCK)); + if (nbl != NULL) + { + bl = nbl; + nBlocks++; - if(Wrap) - { - x = SL_LEFTMARGIN; - y += LineHeight; - LineHeight = 0; - } - } - } - else - { - Free(bl); - bl = NULL; - nBlocks = 0; + cbl = bl + nBlocks - 1; + + cbl->nChars = LineLen; + cbl->nSkip = SkipChars; + cbl->rc.left = x; + cbl->rc.top = y; + cbl->rc.right = x + szDim.cx; + cbl->rc.bottom = y + szDim.cy; - ERR("Failed to alloc DOC_TEXTBLOCK structure!\n"); - break; - } - n -= LineLen; - tx += LineLen; - } - else - { - n--; - } - } + if (cbl->rc.right > szDoc.cx) + szDoc.cx = cbl->rc.right; + if (cbl->rc.bottom > szDoc.cy) + szDoc.cy = cbl->rc.bottom; - if(nBlocks != 0) - { - Current->Blocks = bl; - } - } - - SelectObject(hdc, hOldFont); + if(LineLen != 0) + { + x += szDim.cx; + LineHeight = max(LineHeight, szDim.cy); - pRect->right = pRect->left + szDoc.cx; - pRect->bottom = pRect->top + szDoc.cy; + if(Wrap) + { + x = SL_LEFTMARGIN; + y += LineHeight; + LineHeight = 0; + } + } + } + else + { + Free(bl); + bl = NULL; + nBlocks = 0; + + ERR("Failed to alloc DOC_TEXTBLOCK structure!\n"); + break; + } + n -= LineLen; + tx += LineLen; + } + else + { + n--; + } + } + + if(nBlocks != 0) + { + Current->Blocks = bl; + } + } + + SelectObject(hdc, hOldFont); + + pRect->right = pRect->left + szDoc.cx; + pRect->bottom = pRect->top + szDoc.cy; } /*********************************************************************** @@ -879,67 +879,67 @@ static VOID SYSLINK_Render (const SYSLINK_INFO *infoPtr, HDC hdc, PRECT pRect) */ static LRESULT SYSLINK_Draw (const SYSLINK_INFO *infoPtr, HDC hdc) { - RECT rc; - PDOC_ITEM Current; - HFONT hOldFont; - COLORREF OldTextColor, OldBkColor; + RECT rc; + PDOC_ITEM Current; + HFONT hOldFont; + COLORREF OldTextColor, OldBkColor; - hOldFont = (HFONT)SelectObject(hdc, infoPtr->Font); - OldTextColor = SetTextColor(hdc, infoPtr->TextColor); - OldBkColor = SetBkColor(hdc, infoPtr->BackColor); - - GetClientRect(infoPtr->Self, &rc); - rc.right -= SL_RIGHTMARGIN + SL_LEFTMARGIN; - rc.bottom -= SL_BOTTOMMARGIN + SL_TOPMARGIN; + hOldFont = (HFONT)SelectObject(hdc, infoPtr->Font); + OldTextColor = SetTextColor(hdc, infoPtr->TextColor); + OldBkColor = SetBkColor(hdc, infoPtr->BackColor); - if(rc.right < 0 || rc.bottom < 0) return 0; + GetClientRect(infoPtr->Self, &rc); + rc.right -= SL_RIGHTMARGIN + SL_LEFTMARGIN; + rc.bottom -= SL_BOTTOMMARGIN + SL_TOPMARGIN; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - int n; - LPWSTR tx; - PDOC_TEXTBLOCK bl; - - bl = Current->Blocks; - if(bl != NULL) - { - tx = Current->Text; - n = Current->nText; + if(rc.right < 0 || rc.bottom < 0) return 0; - if(Current->Type == slText) - { - SelectObject(hdc, infoPtr->Font); - SetTextColor(hdc, infoPtr->TextColor); - } - else - { - SelectObject(hdc, infoPtr->LinkFont); - SetTextColor(hdc, (!(Current->u.Link.state & LIS_VISITED) ? infoPtr->LinkColor : infoPtr->VisitedColor)); - } + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + int n; + LPWSTR tx; + PDOC_TEXTBLOCK bl; + + bl = Current->Blocks; + if(bl != NULL) + { + tx = Current->Text; + n = Current->nText; - while(n > 0) - { - tx += bl->nSkip; - ExtTextOutW(hdc, bl->rc.left, bl->rc.top, ETO_OPAQUE | ETO_CLIPPED, &bl->rc, tx, bl->nChars, NULL); - if((Current->Type == slLink) && (Current->u.Link.state & LIS_FOCUSED) && infoPtr->HasFocus) - { - COLORREF PrevTextColor; - PrevTextColor = SetTextColor(hdc, infoPtr->TextColor); - DrawFocusRect(hdc, &bl->rc); - SetTextColor(hdc, PrevTextColor); - } - tx += bl->nChars; - n -= bl->nChars + bl->nSkip; - bl++; - } - } - } + if(Current->Type == slText) + { + SelectObject(hdc, infoPtr->Font); + SetTextColor(hdc, infoPtr->TextColor); + } + else + { + SelectObject(hdc, infoPtr->LinkFont); + SetTextColor(hdc, (!(Current->u.Link.state & LIS_VISITED) ? infoPtr->LinkColor : infoPtr->VisitedColor)); + } - SetBkColor(hdc, OldBkColor); - SetTextColor(hdc, OldTextColor); - SelectObject(hdc, hOldFont); - - return 0; + while(n > 0) + { + tx += bl->nSkip; + ExtTextOutW(hdc, bl->rc.left, bl->rc.top, ETO_OPAQUE | ETO_CLIPPED, &bl->rc, tx, bl->nChars, NULL); + if((Current->Type == slLink) && (Current->u.Link.state & LIS_FOCUSED) && infoPtr->HasFocus) + { + COLORREF PrevTextColor; + PrevTextColor = SetTextColor(hdc, infoPtr->TextColor); + DrawFocusRect(hdc, &bl->rc); + SetTextColor(hdc, PrevTextColor); + } + tx += bl->nChars; + n -= bl->nChars + bl->nSkip; + bl++; + } + } + } + + SetBkColor(hdc, OldBkColor); + SetTextColor(hdc, OldTextColor); + SelectObject(hdc, hOldFont); + + return 0; } @@ -949,16 +949,16 @@ static LRESULT SYSLINK_Draw (const SYSLINK_INFO *infoPtr, HDC hdc) */ static LRESULT SYSLINK_Paint (const SYSLINK_INFO *infoPtr, HDC hdcParam) { - HDC hdc; - PAINTSTRUCT ps; + HDC hdc; + PAINTSTRUCT ps; - hdc = hdcParam ? hdcParam : BeginPaint (infoPtr->Self, &ps); - if (hdc) - { - SYSLINK_Draw (infoPtr, hdc); - if (!hdcParam) EndPaint (infoPtr->Self, &ps); - } - return 0; + hdc = hdcParam ? hdcParam : BeginPaint (infoPtr->Self, &ps); + if (hdc) + { + SYSLINK_Draw (infoPtr, hdc); + if (!hdcParam) EndPaint (infoPtr->Self, &ps); + } + return 0; } /*********************************************************************** @@ -967,15 +967,15 @@ static LRESULT SYSLINK_Paint (const SYSLINK_INFO *infoPtr, HDC hdcParam) */ static LRESULT SYSLINK_EraseBkgnd (const SYSLINK_INFO *infoPtr, HDC hdc) { - HBRUSH hbr; - RECT r; + HBRUSH hbr; + RECT r; - GetClientRect(infoPtr->Self, &r); - hbr = CreateSolidBrush(infoPtr->BackColor); - FillRect(hdc, &r, hbr); - DeleteObject(hbr); + GetClientRect(infoPtr->Self, &r); + hbr = CreateSolidBrush(infoPtr->BackColor); + FillRect(hdc, &r, hbr); + DeleteObject(hbr); - return 1; + return 1; } /*********************************************************************** @@ -984,50 +984,50 @@ static LRESULT SYSLINK_EraseBkgnd (const SYSLINK_INFO *infoPtr, HDC hdc) */ static HFONT SYSLINK_SetFont (SYSLINK_INFO *infoPtr, HFONT hFont, BOOL bRedraw) { - HDC hdc; - LOGFONTA lf; - TEXTMETRICA tm; - RECT rcClient; - HFONT hOldFont = infoPtr->Font; - infoPtr->Font = hFont; - - /* free the underline font */ - if(infoPtr->LinkFont != NULL) - { - DeleteObject(infoPtr->LinkFont); - infoPtr->LinkFont = NULL; - } + HDC hdc; + LOGFONTA lf; + TEXTMETRICA tm; + RECT rcClient; + HFONT hOldFont = infoPtr->Font; + infoPtr->Font = hFont; - /* Render text position and word wrapping in memory */ - if (GetClientRect(infoPtr->Self, &rcClient)) - { - hdc = GetDC(infoPtr->Self); - if(hdc != NULL) - { - /* create a new underline font */ - if(GetTextMetricsA(hdc, &tm) && - GetObjectA(infoPtr->Font, sizeof(LOGFONTA), &lf)) - { - lf.lfUnderline = TRUE; - infoPtr->LinkFont = CreateFontIndirectA(&lf); - infoPtr->BreakChar = tm.tmBreakChar; - } - else - { - ERR("Failed to create link font!\n"); - } + /* free the underline font */ + if(infoPtr->LinkFont != NULL) + { + DeleteObject(infoPtr->LinkFont); + infoPtr->LinkFont = NULL; + } - SYSLINK_Render(infoPtr, hdc, &rcClient); - ReleaseDC(infoPtr->Self, hdc); - } - } - - if(bRedraw) - { - RedrawWindow(infoPtr->Self, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); - } - - return hOldFont; + /* Render text position and word wrapping in memory */ + if (GetClientRect(infoPtr->Self, &rcClient)) + { + hdc = GetDC(infoPtr->Self); + if(hdc != NULL) + { + /* create a new underline font */ + if(GetTextMetricsA(hdc, &tm) && + GetObjectA(infoPtr->Font, sizeof(LOGFONTA), &lf)) + { + lf.lfUnderline = TRUE; + infoPtr->LinkFont = CreateFontIndirectA(&lf); + infoPtr->BreakChar = tm.tmBreakChar; + } + else + { + ERR("Failed to create link font!\n"); + } + + SYSLINK_Render(infoPtr, hdc, &rcClient); + ReleaseDC(infoPtr->Self, hdc); + } + } + + if(bRedraw) + { + RedrawWindow(infoPtr->Self, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW); + } + + return hOldFont; } /*********************************************************************** @@ -1036,34 +1036,34 @@ static HFONT SYSLINK_SetFont (SYSLINK_INFO *infoPtr, HFONT hFont, BOOL bRedraw) */ static LRESULT SYSLINK_SetText (SYSLINK_INFO *infoPtr, LPCWSTR Text) { - /* clear the document */ - SYSLINK_ClearDoc(infoPtr); + /* clear the document */ + SYSLINK_ClearDoc(infoPtr); - if(Text == NULL || *Text == 0) - { - return TRUE; - } + if(Text == NULL || *Text == 0) + { + return TRUE; + } - /* let's parse the string and create a document */ - if(SYSLINK_ParseText(infoPtr, Text) > 0) - { - RECT rcClient; + /* let's parse the string and create a document */ + if(SYSLINK_ParseText(infoPtr, Text) > 0) + { + RECT rcClient; - /* Render text position and word wrapping in memory */ - if (GetClientRect(infoPtr->Self, &rcClient)) - { - HDC hdc = GetDC(infoPtr->Self); - if (hdc != NULL) - { - SYSLINK_Render(infoPtr, hdc, &rcClient); - ReleaseDC(infoPtr->Self, hdc); + /* Render text position and word wrapping in memory */ + if (GetClientRect(infoPtr->Self, &rcClient)) + { + HDC hdc = GetDC(infoPtr->Self); + if (hdc != NULL) + { + SYSLINK_Render(infoPtr, hdc, &rcClient); + ReleaseDC(infoPtr->Self, hdc); - InvalidateRect(infoPtr->Self, NULL, TRUE); - } - } - } - - return TRUE; + InvalidateRect(infoPtr->Self, NULL, TRUE); + } + } + } + + return TRUE; } /*********************************************************************** @@ -1074,29 +1074,29 @@ static LRESULT SYSLINK_SetText (SYSLINK_INFO *infoPtr, LPCWSTR Text) */ static PDOC_ITEM SYSLINK_SetFocusLink (const SYSLINK_INFO *infoPtr, const DOC_ITEM *DocItem) { - PDOC_ITEM Current, PrevFocus = NULL; - - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - if(Current->Type == slLink) - { - if((PrevFocus == NULL) && (Current->u.Link.state & LIS_FOCUSED)) - { - PrevFocus = Current; - } - - if(Current == DocItem) - { - Current->u.Link.state |= LIS_FOCUSED; - } - else - { - Current->u.Link.state &= ~LIS_FOCUSED; - } - } - } - - return PrevFocus; + PDOC_ITEM Current, PrevFocus = NULL; + + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + if(Current->Type == slLink) + { + if((PrevFocus == NULL) && (Current->u.Link.state & LIS_FOCUSED)) + { + PrevFocus = Current; + } + + if(Current == DocItem) + { + Current->u.Link.state |= LIS_FOCUSED; + } + else + { + Current->u.Link.state &= ~LIS_FOCUSED; + } + } + } + + return PrevFocus; } /*********************************************************************** @@ -1105,88 +1105,88 @@ static PDOC_ITEM SYSLINK_SetFocusLink (const SYSLINK_INFO *infoPtr, const DOC_IT */ static LRESULT SYSLINK_SetItem (const SYSLINK_INFO *infoPtr, const LITEM *Item) { - PDOC_ITEM di; - int nc; - PWSTR szId = NULL; - PWSTR szUrl = NULL; - BOOL Repaint = FALSE; + PDOC_ITEM di; + int nc; + PWSTR szId = NULL; + PWSTR szUrl = NULL; + BOOL Repaint = FALSE; - if(!(Item->mask & LIF_ITEMINDEX) || !(Item->mask & (LIF_FLAGSMASK))) - { - ERR("Invalid Flags!\n"); - return FALSE; - } + if(!(Item->mask & LIF_ITEMINDEX) || !(Item->mask & (LIF_FLAGSMASK))) + { + ERR("Invalid Flags!\n"); + return FALSE; + } - di = SYSLINK_GetLinkItemByIndex(infoPtr, Item->iLink); - if(di == NULL) - { - ERR("Link %d couldn't be found\n", Item->iLink); - return FALSE; - } + di = SYSLINK_GetLinkItemByIndex(infoPtr, Item->iLink); + if(di == NULL) + { + ERR("Link %d couldn't be found\n", Item->iLink); + return FALSE; + } - if(Item->mask & LIF_ITEMID) - { - nc = min(lstrlenW(Item->szID), MAX_LINKID_TEXT - 1); - szId = (PWSTR)Alloc((nc + 1) * sizeof(WCHAR)); - if(szId) - { - lstrcpynW(szId, Item->szID, nc + 1); - } - else - { - ERR("Unable to allocate memory for link id\n"); - return FALSE; - } - } + if(Item->mask & LIF_ITEMID) + { + nc = min(lstrlenW(Item->szID), MAX_LINKID_TEXT - 1); + szId = (PWSTR)Alloc((nc + 1) * sizeof(WCHAR)); + if(szId) + { + lstrcpynW(szId, Item->szID, nc + 1); + } + else + { + ERR("Unable to allocate memory for link id\n"); + return FALSE; + } + } - if(Item->mask & LIF_URL) - { - nc = min(lstrlenW(Item->szUrl), L_MAX_URL_LENGTH - 1); - szUrl = (PWSTR)Alloc((nc + 1) * sizeof(WCHAR)); - if(szUrl) - { - lstrcpynW(szUrl, Item->szUrl, nc + 1); - } - else - { - Free(szId); + if(Item->mask & LIF_URL) + { + nc = min(lstrlenW(Item->szUrl), L_MAX_URL_LENGTH - 1); + szUrl = (PWSTR)Alloc((nc + 1) * sizeof(WCHAR)); + if(szUrl) + { + lstrcpynW(szUrl, Item->szUrl, nc + 1); + } + else + { + Free(szId); - ERR("Unable to allocate memory for link url\n"); - return FALSE; - } - } + ERR("Unable to allocate memory for link url\n"); + return FALSE; + } + } - if(Item->mask & LIF_ITEMID) - { - Free(di->u.Link.szID); - di->u.Link.szID = szId; - } + if(Item->mask & LIF_ITEMID) + { + Free(di->u.Link.szID); + di->u.Link.szID = szId; + } - if(Item->mask & LIF_URL) - { - Free(di->u.Link.szUrl); - di->u.Link.szUrl = szUrl; - } + if(Item->mask & LIF_URL) + { + Free(di->u.Link.szUrl); + di->u.Link.szUrl = szUrl; + } - if(Item->mask & LIF_STATE) - { - UINT oldstate = di->u.Link.state; - /* clear the masked bits */ - di->u.Link.state &= ~(Item->stateMask & LIS_MASK); - /* copy the bits */ - di->u.Link.state |= (Item->state & Item->stateMask) & LIS_MASK; - Repaint = (oldstate != di->u.Link.state); - - /* update the focus */ - SYSLINK_SetFocusLink(infoPtr, ((di->u.Link.state & LIS_FOCUSED) ? di : NULL)); - } - - if(Repaint) - { - SYSLINK_RepaintLink(infoPtr, di); - } - - return TRUE; + if(Item->mask & LIF_STATE) + { + UINT oldstate = di->u.Link.state; + /* clear the masked bits */ + di->u.Link.state &= ~(Item->stateMask & LIS_MASK); + /* copy the bits */ + di->u.Link.state |= (Item->state & Item->stateMask) & LIS_MASK; + Repaint = (oldstate != di->u.Link.state); + + /* update the focus */ + SYSLINK_SetFocusLink(infoPtr, ((di->u.Link.state & LIS_FOCUSED) ? di : NULL)); + } + + if(Repaint) + { + SYSLINK_RepaintLink(infoPtr, di); + } + + return TRUE; } /*********************************************************************** @@ -1195,56 +1195,56 @@ static LRESULT SYSLINK_SetItem (const SYSLINK_INFO *infoPtr, const LITEM *Item) */ static LRESULT SYSLINK_GetItem (const SYSLINK_INFO *infoPtr, PLITEM Item) { - PDOC_ITEM di; - - if(!(Item->mask & LIF_ITEMINDEX) || !(Item->mask & (LIF_FLAGSMASK))) - { - ERR("Invalid Flags!\n"); - return FALSE; - } - - di = SYSLINK_GetLinkItemByIndex(infoPtr, Item->iLink); - if(di == NULL) - { - ERR("Link %d couldn't be found\n", Item->iLink); - return FALSE; - } - - if(Item->mask & LIF_STATE) - { - Item->state = (di->u.Link.state & Item->stateMask); - if(!infoPtr->HasFocus) - { - /* remove the LIS_FOCUSED bit if the control doesn't have focus */ - Item->state &= ~LIS_FOCUSED; - } - } - - if(Item->mask & LIF_ITEMID) - { - if(di->u.Link.szID) - { - lstrcpyW(Item->szID, di->u.Link.szID); - } - else - { - Item->szID[0] = 0; - } - } - - if(Item->mask & LIF_URL) - { - if(di->u.Link.szUrl) - { - lstrcpyW(Item->szUrl, di->u.Link.szUrl); - } - else - { - Item->szUrl[0] = 0; - } - } - - return TRUE; + PDOC_ITEM di; + + if(!(Item->mask & LIF_ITEMINDEX) || !(Item->mask & (LIF_FLAGSMASK))) + { + ERR("Invalid Flags!\n"); + return FALSE; + } + + di = SYSLINK_GetLinkItemByIndex(infoPtr, Item->iLink); + if(di == NULL) + { + ERR("Link %d couldn't be found\n", Item->iLink); + return FALSE; + } + + if(Item->mask & LIF_STATE) + { + Item->state = (di->u.Link.state & Item->stateMask); + if(!infoPtr->HasFocus) + { + /* remove the LIS_FOCUSED bit if the control doesn't have focus */ + Item->state &= ~LIS_FOCUSED; + } + } + + if(Item->mask & LIF_ITEMID) + { + if(di->u.Link.szID) + { + lstrcpyW(Item->szID, di->u.Link.szID); + } + else + { + Item->szID[0] = 0; + } + } + + if(Item->mask & LIF_URL) + { + if(di->u.Link.szUrl) + { + lstrcpyW(Item->szUrl, di->u.Link.szUrl); + } + else + { + Item->szUrl[0] = 0; + } + } + + return TRUE; } /*********************************************************************** @@ -1253,26 +1253,26 @@ static LRESULT SYSLINK_GetItem (const SYSLINK_INFO *infoPtr, PLITEM Item) */ static BOOL SYSLINK_PtInDocItem (const DOC_ITEM *DocItem, POINT pt) { - PDOC_TEXTBLOCK bl; - int n; + PDOC_TEXTBLOCK bl; + int n; - bl = DocItem->Blocks; - if (bl != NULL) - { - n = DocItem->nText; + bl = DocItem->Blocks; + if (bl != NULL) + { + n = DocItem->nText; - while(n > 0) - { - if (PtInRect(&bl->rc, pt)) - { - return TRUE; - } - n -= bl->nChars + bl->nSkip; - bl++; - } - } - - return FALSE; + while(n > 0) + { + if (PtInRect(&bl->rc, pt)) + { + return TRUE; + } + n -= bl->nChars + bl->nSkip; + bl++; + } + } + + return FALSE; } /*********************************************************************** @@ -1281,42 +1281,42 @@ static BOOL SYSLINK_PtInDocItem (const DOC_ITEM *DocItem, POINT pt) */ static LRESULT SYSLINK_HitTest (const SYSLINK_INFO *infoPtr, PLHITTESTINFO HitTest) { - PDOC_ITEM Current; - int id = 0; + PDOC_ITEM Current; + int id = 0; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - if(Current->Type == slLink) - { - if(SYSLINK_PtInDocItem(Current, HitTest->pt)) - { - HitTest->item.mask = 0; - HitTest->item.iLink = id; - HitTest->item.state = 0; - HitTest->item.stateMask = 0; - if(Current->u.Link.szID) - { - lstrcpyW(HitTest->item.szID, Current->u.Link.szID); - } - else - { - HitTest->item.szID[0] = 0; - } - if(Current->u.Link.szUrl) - { - lstrcpyW(HitTest->item.szUrl, Current->u.Link.szUrl); - } - else - { - HitTest->item.szUrl[0] = 0; - } - return TRUE; - } - id++; - } - } - - return FALSE; + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + if(Current->Type == slLink) + { + if(SYSLINK_PtInDocItem(Current, HitTest->pt)) + { + HitTest->item.mask = 0; + HitTest->item.iLink = id; + HitTest->item.state = 0; + HitTest->item.stateMask = 0; + if(Current->u.Link.szID) + { + lstrcpyW(HitTest->item.szID, Current->u.Link.szID); + } + else + { + HitTest->item.szID[0] = 0; + } + if(Current->u.Link.szUrl) + { + lstrcpyW(HitTest->item.szUrl, Current->u.Link.szUrl); + } + else + { + HitTest->item.szUrl[0] = 0; + } + return TRUE; + } + id++; + } + } + + return FALSE; } /*********************************************************************** @@ -1325,27 +1325,27 @@ static LRESULT SYSLINK_HitTest (const SYSLINK_INFO *infoPtr, PLHITTESTINFO HitTe */ static LRESULT SYSLINK_GetIdealHeight (const SYSLINK_INFO *infoPtr) { - HDC hdc = GetDC(infoPtr->Self); - if(hdc != NULL) - { - LRESULT height; - TEXTMETRICA tm; - HGDIOBJ hOldFont = SelectObject(hdc, infoPtr->Font); - - if(GetTextMetricsA(hdc, &tm)) - { - height = tm.tmHeight; - } - else - { - height = 0; - } - SelectObject(hdc, hOldFont); - ReleaseDC(infoPtr->Self, hdc); - - return height; - } - return 0; + HDC hdc = GetDC(infoPtr->Self); + if(hdc != NULL) + { + LRESULT height; + TEXTMETRICA tm; + HGDIOBJ hOldFont = SelectObject(hdc, infoPtr->Font); + + if(GetTextMetricsA(hdc, &tm)) + { + height = tm.tmHeight; + } + else + { + height = 0; + } + SelectObject(hdc, hOldFont); + ReleaseDC(infoPtr->Self, hdc); + + return height; + } + return 0; } /*********************************************************************** @@ -1354,34 +1354,34 @@ static LRESULT SYSLINK_GetIdealHeight (const SYSLINK_INFO *infoPtr) */ static LRESULT SYSLINK_SendParentNotify (const SYSLINK_INFO *infoPtr, UINT code, const DOC_ITEM *Link, int iLink) { - NMLINK nml; + NMLINK nml; - nml.hdr.hwndFrom = infoPtr->Self; - nml.hdr.idFrom = GetWindowLongA(infoPtr->Self, GWLP_ID); - nml.hdr.code = code; + nml.hdr.hwndFrom = infoPtr->Self; + nml.hdr.idFrom = GetWindowLongA(infoPtr->Self, GWLP_ID); + nml.hdr.code = code; - nml.item.mask = 0; - nml.item.iLink = iLink; - nml.item.state = 0; - nml.item.stateMask = 0; - if(Link->u.Link.szID) - { - lstrcpyW(nml.item.szID, Link->u.Link.szID); - } - else - { - nml.item.szID[0] = 0; - } - if(Link->u.Link.szUrl) - { - lstrcpyW(nml.item.szUrl, Link->u.Link.szUrl); - } - else - { - nml.item.szUrl[0] = 0; - } + nml.item.mask = 0; + nml.item.iLink = iLink; + nml.item.state = 0; + nml.item.stateMask = 0; + if(Link->u.Link.szID) + { + lstrcpyW(nml.item.szID, Link->u.Link.szID); + } + else + { + nml.item.szID[0] = 0; + } + if(Link->u.Link.szUrl) + { + lstrcpyW(nml.item.szUrl, Link->u.Link.szUrl); + } + else + { + nml.item.szUrl[0] = 0; + } - return SendMessageA(infoPtr->Notify, WM_NOTIFY, nml.hdr.idFrom, (LPARAM)&nml); + return SendMessageA(infoPtr->Notify, WM_NOTIFY, nml.hdr.idFrom, (LPARAM)&nml); } /*********************************************************************** @@ -1390,19 +1390,19 @@ static LRESULT SYSLINK_SendParentNotify (const SYSLINK_INFO *infoPtr, UINT code, */ static LRESULT SYSLINK_SetFocus (SYSLINK_INFO *infoPtr) { - PDOC_ITEM Focus; - - infoPtr->HasFocus = TRUE; + PDOC_ITEM Focus; - /* We always select the first link, even if we activated the control using - SHIFT+TAB. This is the default behavior */ - Focus = SYSLINK_GetNextLink(infoPtr, NULL); - if(Focus != NULL) - { - SYSLINK_SetFocusLink(infoPtr, Focus); - SYSLINK_RepaintLink(infoPtr, Focus); - } - return 0; + infoPtr->HasFocus = TRUE; + + /* We always select the first link, even if we activated the control using + SHIFT+TAB. This is the default behavior */ + Focus = SYSLINK_GetNextLink(infoPtr, NULL); + if(Focus != NULL) + { + SYSLINK_SetFocusLink(infoPtr, Focus); + SYSLINK_RepaintLink(infoPtr, Focus); + } + return 0; } /*********************************************************************** @@ -1411,17 +1411,17 @@ static LRESULT SYSLINK_SetFocus (SYSLINK_INFO *infoPtr) */ static LRESULT SYSLINK_KillFocus (SYSLINK_INFO *infoPtr) { - PDOC_ITEM Focus; - - infoPtr->HasFocus = FALSE; - Focus = SYSLINK_GetFocusLink(infoPtr, NULL); - - if(Focus != NULL) - { - SYSLINK_RepaintLink(infoPtr, Focus); - } + PDOC_ITEM Focus; - return 0; + infoPtr->HasFocus = FALSE; + Focus = SYSLINK_GetFocusLink(infoPtr, NULL); + + if(Focus != NULL) + { + SYSLINK_RepaintLink(infoPtr, Focus); + } + + return 0; } /*********************************************************************** @@ -1430,24 +1430,24 @@ static LRESULT SYSLINK_KillFocus (SYSLINK_INFO *infoPtr) */ static PDOC_ITEM SYSLINK_LinkAtPt (const SYSLINK_INFO *infoPtr, const POINT *pt, int *LinkId, BOOL MustBeEnabled) { - PDOC_ITEM Current; - int id = 0; + PDOC_ITEM Current; + int id = 0; - for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) - { - if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) && - (!MustBeEnabled || (MustBeEnabled && (Current->u.Link.state & LIS_ENABLED)))) - { - if(LinkId != NULL) - { - *LinkId = id; - } - return Current; - } - id++; - } + for(Current = infoPtr->Items; Current != NULL; Current = Current->Next) + { + if((Current->Type == slLink) && SYSLINK_PtInDocItem(Current, *pt) && + (!MustBeEnabled || (MustBeEnabled && (Current->u.Link.state & LIS_ENABLED)))) + { + if(LinkId != NULL) + { + *LinkId = id; + } + return Current; + } + id++; + } - return NULL; + return NULL; } /*********************************************************************** @@ -1456,24 +1456,24 @@ static PDOC_ITEM SYSLINK_LinkAtPt (const SYSLINK_INFO *infoPtr, const POINT *pt, */ static LRESULT SYSLINK_LButtonDown (SYSLINK_INFO *infoPtr, const POINT *pt) { - PDOC_ITEM Current, Old; - int id; + PDOC_ITEM Current, Old; + int id; - Current = SYSLINK_LinkAtPt(infoPtr, pt, &id, TRUE); - if(Current != NULL) - { - SetFocus(infoPtr->Self); + Current = SYSLINK_LinkAtPt(infoPtr, pt, &id, TRUE); + if(Current != NULL) + { + SetFocus(infoPtr->Self); - Old = SYSLINK_SetFocusLink(infoPtr, Current); - if(Old != NULL && Old != Current) - { - SYSLINK_RepaintLink(infoPtr, Old); - } - infoPtr->MouseDownID = id; - SYSLINK_RepaintLink(infoPtr, Current); - } + Old = SYSLINK_SetFocusLink(infoPtr, Current); + if(Old != NULL && Old != Current) + { + SYSLINK_RepaintLink(infoPtr, Old); + } + infoPtr->MouseDownID = id; + SYSLINK_RepaintLink(infoPtr, Current); + } - return 0; + return 0; } /*********************************************************************** @@ -1482,21 +1482,21 @@ static LRESULT SYSLINK_LButtonDown (SYSLINK_INFO *infoPtr, const POINT *pt) */ static LRESULT SYSLINK_LButtonUp (SYSLINK_INFO *infoPtr, const POINT *pt) { - if(infoPtr->MouseDownID > -1) - { - PDOC_ITEM Current; - int id; - - Current = SYSLINK_LinkAtPt(infoPtr, pt, &id, TRUE); - if((Current != NULL) && (Current->u.Link.state & LIS_FOCUSED) && (infoPtr->MouseDownID == id)) - { - SYSLINK_SendParentNotify(infoPtr, NM_CLICK, Current, id); - } - } + if(infoPtr->MouseDownID > -1) + { + PDOC_ITEM Current; + int id; + + Current = SYSLINK_LinkAtPt(infoPtr, pt, &id, TRUE); + if((Current != NULL) && (Current->u.Link.state & LIS_FOCUSED) && (infoPtr->MouseDownID == id)) + { + SYSLINK_SendParentNotify(infoPtr, NM_CLICK, Current, id); + } + } - infoPtr->MouseDownID = -1; + infoPtr->MouseDownID = -1; - return 0; + return 0; } /*********************************************************************** @@ -1505,19 +1505,19 @@ static LRESULT SYSLINK_LButtonUp (SYSLINK_INFO *infoPtr, const POINT *pt) */ static BOOL SYSLINK_OnEnter (const SYSLINK_INFO *infoPtr) { - if(infoPtr->HasFocus && !infoPtr->IgnoreReturn) - { - PDOC_ITEM Focus; - int id; - - Focus = SYSLINK_GetFocusLink(infoPtr, &id); - if(Focus) - { - SYSLINK_SendParentNotify(infoPtr, NM_RETURN, Focus, id); - return TRUE; - } - } - return FALSE; + if(infoPtr->HasFocus && !infoPtr->IgnoreReturn) + { + PDOC_ITEM Focus; + int id; + + Focus = SYSLINK_GetFocusLink(infoPtr, &id); + if(Focus) + { + SYSLINK_SendParentNotify(infoPtr, NM_RETURN, Focus, id); + return TRUE; + } + } + return FALSE; } /*********************************************************************** @@ -1526,35 +1526,35 @@ static BOOL SYSLINK_OnEnter (const SYSLINK_INFO *infoPtr) */ static BOOL SYSKEY_SelectNextPrevLink (const SYSLINK_INFO *infoPtr, BOOL Prev) { - if(infoPtr->HasFocus) - { - PDOC_ITEM Focus; - int id; + if(infoPtr->HasFocus) + { + PDOC_ITEM Focus; + int id; - Focus = SYSLINK_GetFocusLink(infoPtr, &id); - if(Focus != NULL) - { - PDOC_ITEM NewFocus, OldFocus; + Focus = SYSLINK_GetFocusLink(infoPtr, &id); + if(Focus != NULL) + { + PDOC_ITEM NewFocus, OldFocus; - if(Prev) - NewFocus = SYSLINK_GetPrevLink(infoPtr, Focus); - else - NewFocus = SYSLINK_GetNextLink(infoPtr, Focus); + if(Prev) + NewFocus = SYSLINK_GetPrevLink(infoPtr, Focus); + else + NewFocus = SYSLINK_GetNextLink(infoPtr, Focus); - if(NewFocus != NULL) - { - OldFocus = SYSLINK_SetFocusLink(infoPtr, NewFocus); + if(NewFocus != NULL) + { + OldFocus = SYSLINK_SetFocusLink(infoPtr, NewFocus); - if(OldFocus && OldFocus != NewFocus) - { - SYSLINK_RepaintLink(infoPtr, OldFocus); - } - SYSLINK_RepaintLink(infoPtr, NewFocus); - return TRUE; - } - } - } - return FALSE; + if(OldFocus && OldFocus != NewFocus) + { + SYSLINK_RepaintLink(infoPtr, OldFocus); + } + SYSLINK_RepaintLink(infoPtr, NewFocus); + return TRUE; + } + } + } + return FALSE; } /*********************************************************************** @@ -1564,15 +1564,15 @@ static BOOL SYSKEY_SelectNextPrevLink (const SYSLINK_INFO *infoPtr, BOOL Prev) */ static BOOL SYSLINK_NoNextLink (const SYSLINK_INFO *infoPtr, BOOL Prev) { - PDOC_ITEM Focus, NewFocus; + PDOC_ITEM Focus, NewFocus; - Focus = SYSLINK_GetFocusLink(infoPtr, NULL); - if(Prev) - NewFocus = SYSLINK_GetPrevLink(infoPtr, Focus); - else - NewFocus = SYSLINK_GetNextLink(infoPtr, Focus); + Focus = SYSLINK_GetFocusLink(infoPtr, NULL); + if(Prev) + NewFocus = SYSLINK_GetPrevLink(infoPtr, Focus); + else + NewFocus = SYSLINK_GetNextLink(infoPtr, Focus); - return NewFocus == NULL; + return NewFocus == NULL; } /*********************************************************************** @@ -1581,25 +1581,25 @@ static BOOL SYSLINK_NoNextLink (const SYSLINK_INFO *infoPtr, BOOL Prev) */ static VOID SYSLINK_GetIdealSize (const SYSLINK_INFO *infoPtr, int cxMaxWidth, LPSIZE lpSize) { - RECT rc; - HDC hdc; + RECT rc; + HDC hdc; - rc.left = rc.top = rc.bottom = 0; - rc.right = cxMaxWidth; + rc.left = rc.top = rc.bottom = 0; + rc.right = cxMaxWidth; - hdc = GetDC(infoPtr->Self); - if (hdc != NULL) - { - HGDIOBJ hOldFont = SelectObject(hdc, infoPtr->Font); + hdc = GetDC(infoPtr->Self); + if (hdc != NULL) + { + HGDIOBJ hOldFont = SelectObject(hdc, infoPtr->Font); - SYSLINK_Render(infoPtr, hdc, &rc); + SYSLINK_Render(infoPtr, hdc, &rc); - SelectObject(hdc, hOldFont); - ReleaseDC(infoPtr->Self, hdc); + SelectObject(hdc, hOldFont); + ReleaseDC(infoPtr->Self, hdc); - lpSize->cx = rc.right; - lpSize->cy = rc.bottom; - } + lpSize->cx = rc.right; + lpSize->cy = rc.bottom; + } } /*********************************************************************** @@ -1608,228 +1608,228 @@ static VOID SYSLINK_GetIdealSize (const SYSLINK_INFO *infoPtr, int cxMaxWidth, L static LRESULT WINAPI SysLinkWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { - SYSLINK_INFO *infoPtr; + SYSLINK_INFO *infoPtr; - TRACE("hwnd=%p msg=%04x wparam=%lx lParam=%lx\n", hwnd, message, wParam, lParam); + TRACE("hwnd=%p msg=%04x wparam=%lx lParam=%lx\n", hwnd, message, wParam, lParam); - infoPtr = (SYSLINK_INFO *)GetWindowLongA(hwnd, 0); + infoPtr = (SYSLINK_INFO *)GetWindowLongA(hwnd, 0); - if (!infoPtr && message != WM_CREATE) - goto HandleDefaultMessage; + if (!infoPtr && message != WM_CREATE) + goto HandleDefaultMessage; - switch(message) { - case WM_PRINTCLIENT: - case WM_PAINT: - return SYSLINK_Paint (infoPtr, (HDC)wParam); + switch(message) { + case WM_PRINTCLIENT: + case WM_PAINT: + return SYSLINK_Paint (infoPtr, (HDC)wParam); - case WM_ERASEBKGND: - return SYSLINK_EraseBkgnd(infoPtr, (HDC)wParam); + case WM_ERASEBKGND: + return SYSLINK_EraseBkgnd(infoPtr, (HDC)wParam); - case WM_SETCURSOR: - { - LHITTESTINFO ht; - DWORD mp = GetMessagePos(); - - ht.pt.x = (short)LOWORD(mp); - ht.pt.y = (short)HIWORD(mp); - - ScreenToClient(infoPtr->Self, &ht.pt); - if(SYSLINK_HitTest (infoPtr, &ht)) - { - SetCursor(LoadCursorA(0, (LPCSTR)IDC_HAND)); - return TRUE; - } - /* let the default window proc handle this message */ - goto HandleDefaultMessage; - } + case WM_SETCURSOR: + { + LHITTESTINFO ht; + DWORD mp = GetMessagePos(); + + ht.pt.x = (short)LOWORD(mp); + ht.pt.y = (short)HIWORD(mp); + + ScreenToClient(infoPtr->Self, &ht.pt); + if(SYSLINK_HitTest (infoPtr, &ht)) + { + SetCursor(LoadCursorA(0, (LPCSTR)IDC_HAND)); + return TRUE; + } + /* let the default window proc handle this message */ + goto HandleDefaultMessage; + } - case WM_SIZE: - { - RECT rcClient; - if (GetClientRect(infoPtr->Self, &rcClient)) - { - HDC hdc = GetDC(infoPtr->Self); - if(hdc != NULL) - { - SYSLINK_Render(infoPtr, hdc, &rcClient); - ReleaseDC(infoPtr->Self, hdc); - } - } - return 0; - } + case WM_SIZE: + { + RECT rcClient; + if (GetClientRect(infoPtr->Self, &rcClient)) + { + HDC hdc = GetDC(infoPtr->Self); + if(hdc != NULL) + { + SYSLINK_Render(infoPtr, hdc, &rcClient); + ReleaseDC(infoPtr->Self, hdc); + } + } + return 0; + } - case WM_GETFONT: - return (LRESULT)infoPtr->Font; + case WM_GETFONT: + return (LRESULT)infoPtr->Font; - case WM_SETFONT: - return (LRESULT)SYSLINK_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam); + case WM_SETFONT: + return (LRESULT)SYSLINK_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam); - case WM_SETTEXT: - SYSLINK_SetText(infoPtr, (LPWSTR)lParam); - goto HandleDefaultMessage; + case WM_SETTEXT: + SYSLINK_SetText(infoPtr, (LPWSTR)lParam); + goto HandleDefaultMessage; - case WM_LBUTTONDOWN: - { - POINT pt; - pt.x = (short)LOWORD(lParam); - pt.y = (short)HIWORD(lParam); - return SYSLINK_LButtonDown(infoPtr, &pt); - } - case WM_LBUTTONUP: - { - POINT pt; - pt.x = (short)LOWORD(lParam); - pt.y = (short)HIWORD(lParam); - return SYSLINK_LButtonUp(infoPtr, &pt); - } - - case WM_KEYDOWN: - { - switch(wParam) - { - case VK_RETURN: - SYSLINK_OnEnter(infoPtr); - return 0; - case VK_TAB: - { - BOOL shift = GetKeyState(VK_SHIFT) & 0x8000; - SYSKEY_SelectNextPrevLink(infoPtr, shift); - return 0; - } - } - goto HandleDefaultMessage; - } - - case WM_GETDLGCODE: - { - LRESULT Ret = DLGC_HASSETSEL; - int vk = (lParam != 0 ? (int)((LPMSG)lParam)->wParam : 0); - switch(vk) - { - case VK_RETURN: - Ret |= DLGC_WANTMESSAGE; - break; - case VK_TAB: - { - BOOL shift = GetKeyState(VK_SHIFT) & 0x8000; - if(!SYSLINK_NoNextLink(infoPtr, shift)) - { - Ret |= DLGC_WANTTAB; - } - else - { - Ret |= DLGC_WANTCHARS; - } - break; - } - } - return Ret; - } - - case WM_NCHITTEST: - { - POINT pt; - RECT rc; - pt.x = (short)LOWORD(lParam); - pt.y = (short)HIWORD(lParam); - - GetClientRect(infoPtr->Self, &rc); - ScreenToClient(infoPtr->Self, &pt); - if(pt.x < 0 || pt.y < 0 || pt.x > rc.right || pt.y > rc.bottom) - { - return HTNOWHERE; - } + case WM_LBUTTONDOWN: + { + POINT pt; + pt.x = (short)LOWORD(lParam); + pt.y = (short)HIWORD(lParam); + return SYSLINK_LButtonDown(infoPtr, &pt); + } + case WM_LBUTTONUP: + { + POINT pt; + pt.x = (short)LOWORD(lParam); + pt.y = (short)HIWORD(lParam); + return SYSLINK_LButtonUp(infoPtr, &pt); + } - if(SYSLINK_LinkAtPt(infoPtr, &pt, NULL, FALSE)) - { - return HTCLIENT; - } - - return HTTRANSPARENT; - } + case WM_KEYDOWN: + { + switch(wParam) + { + case VK_RETURN: + SYSLINK_OnEnter(infoPtr); + return 0; + case VK_TAB: + { + BOOL shift = GetKeyState(VK_SHIFT) & 0x8000; + SYSKEY_SelectNextPrevLink(infoPtr, shift); + return 0; + } + } + goto HandleDefaultMessage; + } - case LM_HITTEST: - return SYSLINK_HitTest(infoPtr, (PLHITTESTINFO)lParam); + case WM_GETDLGCODE: + { + LRESULT Ret = DLGC_HASSETSEL; + int vk = (lParam != 0 ? (int)((LPMSG)lParam)->wParam : 0); + switch(vk) + { + case VK_RETURN: + Ret |= DLGC_WANTMESSAGE; + break; + case VK_TAB: + { + BOOL shift = GetKeyState(VK_SHIFT) & 0x8000; + if(!SYSLINK_NoNextLink(infoPtr, shift)) + { + Ret |= DLGC_WANTTAB; + } + else + { + Ret |= DLGC_WANTCHARS; + } + break; + } + } + return Ret; + } - case LM_SETITEM: - return SYSLINK_SetItem(infoPtr, (PLITEM)lParam); + case WM_NCHITTEST: + { + POINT pt; + RECT rc; + pt.x = (short)LOWORD(lParam); + pt.y = (short)HIWORD(lParam); + + GetClientRect(infoPtr->Self, &rc); + ScreenToClient(infoPtr->Self, &pt); + if(pt.x < 0 || pt.y < 0 || pt.x > rc.right || pt.y > rc.bottom) + { + return HTNOWHERE; + } - case LM_GETITEM: - return SYSLINK_GetItem(infoPtr, (PLITEM)lParam); + if(SYSLINK_LinkAtPt(infoPtr, &pt, NULL, FALSE)) + { + return HTCLIENT; + } + + return HTTRANSPARENT; + } - case LM_GETIDEALHEIGHT: - if (lParam) - { - /* LM_GETIDEALSIZE */ - SYSLINK_GetIdealSize(infoPtr, (int)wParam, (LPSIZE)lParam); - } - return SYSLINK_GetIdealHeight(infoPtr); + case LM_HITTEST: + return SYSLINK_HitTest(infoPtr, (PLHITTESTINFO)lParam); - case WM_SETFOCUS: - return SYSLINK_SetFocus(infoPtr); + case LM_SETITEM: + return SYSLINK_SetItem(infoPtr, (PLITEM)lParam); - case WM_KILLFOCUS: - return SYSLINK_KillFocus(infoPtr); + case LM_GETITEM: + return SYSLINK_GetItem(infoPtr, (PLITEM)lParam); - case WM_ENABLE: - infoPtr->Style &= ~WS_DISABLED; - infoPtr->Style |= (wParam ? 0 : WS_DISABLED); - InvalidateRect (infoPtr->Self, NULL, FALSE); - return 0; + case LM_GETIDEALHEIGHT: + if (lParam) + { + /* LM_GETIDEALSIZE */ + SYSLINK_GetIdealSize(infoPtr, (int)wParam, (LPSIZE)lParam); + } + return SYSLINK_GetIdealHeight(infoPtr); - case WM_STYLECHANGED: - if (wParam == GWL_STYLE) - { - infoPtr->Style = ((LPSTYLESTRUCT)lParam)->styleNew; + case WM_SETFOCUS: + return SYSLINK_SetFocus(infoPtr); - InvalidateRect(infoPtr->Self, NULL, TRUE); - } - return 0; + case WM_KILLFOCUS: + return SYSLINK_KillFocus(infoPtr); - case WM_CREATE: - /* allocate memory for info struct */ - infoPtr = (SYSLINK_INFO *)Alloc (sizeof(SYSLINK_INFO)); - if (!infoPtr) return -1; - SetWindowLongA(hwnd, 0, (DWORD_PTR)infoPtr); + case WM_ENABLE: + infoPtr->Style &= ~WS_DISABLED; + infoPtr->Style |= (wParam ? 0 : WS_DISABLED); + InvalidateRect (infoPtr->Self, NULL, FALSE); + return 0; - /* initialize the info struct */ - infoPtr->Self = hwnd; - infoPtr->Notify = ((LPCREATESTRUCTW)lParam)->hwndParent; - infoPtr->Style = ((LPCREATESTRUCTW)lParam)->style; - infoPtr->Font = 0; - infoPtr->LinkFont = 0; - infoPtr->Items = NULL; - infoPtr->HasFocus = FALSE; - infoPtr->MouseDownID = -1; - infoPtr->TextColor = GetSysColor(COLOR_WINDOWTEXT); - infoPtr->LinkColor = GetSysColor(COLOR_HIGHLIGHT); - infoPtr->VisitedColor = GetSysColor(COLOR_HIGHLIGHT); - infoPtr->BackColor = infoPtr->Style & LWS_TRANSPARENT ? - GetSysColor(COLOR_WINDOW) : GetSysColor(COLOR_BTNFACE); - infoPtr->BreakChar = ' '; - infoPtr->IgnoreReturn = infoPtr->Style & LWS_IGNORERETURN; - TRACE("SysLink Ctrl creation, hwnd=%p\n", hwnd); - SYSLINK_SetText(infoPtr, ((LPCREATESTRUCTW)lParam)->lpszName); - return 0; + case WM_STYLECHANGED: + if (wParam == GWL_STYLE) + { + infoPtr->Style = ((LPSTYLESTRUCT)lParam)->styleNew; - case WM_DESTROY: - TRACE("SysLink Ctrl destruction, hwnd=%p\n", hwnd); - SYSLINK_ClearDoc(infoPtr); - if(infoPtr->Font != 0) DeleteObject(infoPtr->Font); - if(infoPtr->LinkFont != 0) DeleteObject(infoPtr->LinkFont); - SetWindowLongA(hwnd, 0, 0); - Free (infoPtr); - return 0; + InvalidateRect(infoPtr->Self, NULL, TRUE); + } + return 0; - case WM_SYSCOLORCHANGE: - if (infoPtr->Style & LWS_TRANSPARENT) - infoPtr->BackColor = GetSysColor(COLOR_WINDOW); - return 0; + case WM_CREATE: + /* allocate memory for info struct */ + infoPtr = (SYSLINK_INFO *)Alloc (sizeof(SYSLINK_INFO)); + if (!infoPtr) return -1; + SetWindowLongA(hwnd, 0, (DWORD_PTR)infoPtr); - default: + /* initialize the info struct */ + infoPtr->Self = hwnd; + infoPtr->Notify = ((LPCREATESTRUCTW)lParam)->hwndParent; + infoPtr->Style = ((LPCREATESTRUCTW)lParam)->style; + infoPtr->Font = 0; + infoPtr->LinkFont = 0; + infoPtr->Items = NULL; + infoPtr->HasFocus = FALSE; + infoPtr->MouseDownID = -1; + infoPtr->TextColor = GetSysColor(COLOR_WINDOWTEXT); + infoPtr->LinkColor = GetSysColor(COLOR_HIGHLIGHT); + infoPtr->VisitedColor = GetSysColor(COLOR_HIGHLIGHT); + infoPtr->BackColor = infoPtr->Style & LWS_TRANSPARENT ? + GetSysColor(COLOR_WINDOW) : GetSysColor(COLOR_BTNFACE); + infoPtr->BreakChar = ' '; + infoPtr->IgnoreReturn = infoPtr->Style & LWS_IGNORERETURN; + TRACE("SysLink Ctrl creation, hwnd=%p\n", hwnd); + SYSLINK_SetText(infoPtr, ((LPCREATESTRUCTW)lParam)->lpszName); + return 0; + + case WM_DESTROY: + TRACE("SysLink Ctrl destruction, hwnd=%p\n", hwnd); + SYSLINK_ClearDoc(infoPtr); + if(infoPtr->Font != 0) DeleteObject(infoPtr->Font); + if(infoPtr->LinkFont != 0) DeleteObject(infoPtr->LinkFont); + SetWindowLongA(hwnd, 0, 0); + Free (infoPtr); + return 0; + + case WM_SYSCOLORCHANGE: + if (infoPtr->Style & LWS_TRANSPARENT) + infoPtr->BackColor = GetSysColor(COLOR_WINDOW); + return 0; + + default: HandleDefaultMessage: - return DefWindowProcW(hwnd, message, wParam, lParam); - } + return DefWindowProcW(hwnd, message, wParam, lParam); + } } @@ -1840,15 +1840,15 @@ HandleDefaultMessage: */ VOID SYSLINK_Register (void) { - WNDCLASSW wndClass; + WNDCLASSW wndClass; - ZeroMemory (&wndClass, sizeof(wndClass)); - wndClass.style = CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW; - wndClass.lpfnWndProc = SysLinkWindowProc; - wndClass.cbClsExtra = 0; - wndClass.cbWndExtra = sizeof (SYSLINK_INFO *); - wndClass.hCursor = LoadCursorA(NULL,(LPSTR)IDC_ARROW); - wndClass.lpszClassName = WC_LINK; + ZeroMemory (&wndClass, sizeof(wndClass)); + wndClass.style = CS_GLOBALCLASS | CS_VREDRAW | CS_HREDRAW; + wndClass.lpfnWndProc = SysLinkWindowProc; + wndClass.cbClsExtra = 0; + wndClass.cbWndExtra = sizeof (SYSLINK_INFO *); + wndClass.hCursor = LoadCursorA(NULL,(LPSTR)IDC_ARROW); + wndClass.lpszClassName = WC_LINK; - RegisterClassW(&wndClass); + RegisterClassW(&wndClass); } diff --git a/apilibs/kexbases/kexbases.dsp b/apilibs/kexbases/kexbases.dsp index 280d10b..bfd5b96 100755 --- a/apilibs/kexbases/kexbases.dsp +++ b/apilibs/kexbases/kexbases.dsp @@ -137,6 +137,10 @@ SOURCE=.\Kernel32\FileApis_fix.c # End Source File # Begin Source File +SOURCE=.\Kernel32\FindFirstFileEx.c +# End Source File +# Begin Source File + SOURCE=.\Kernel32\GetConsoleWindow.c # End Source File # Begin Source File @@ -317,10 +321,6 @@ SOURCE=.\User32\GetNextDlgTabItem_fix.c # End Source File # Begin Source File -SOURCE=.\User32\hwnd9x.h -# End Source File -# Begin Source File - SOURCE=.\User32\IsHungAppWindow.c # End Source File # Begin Source File @@ -377,6 +377,10 @@ SOURCE=.\User32\thuni_proc.c # End Source File # Begin Source File +SOURCE=.\User32\thuni_stuff.c +# End Source File +# Begin Source File + SOURCE=.\User32\thuni_thunk.c # End Source File # Begin Source File @@ -409,6 +413,10 @@ SOURCE=.\Gdi32\_gdi32_stubs.c # End Source File # Begin Source File +SOURCE=.\Gdi32\EnumFont.c +# End Source File +# Begin Source File + SOURCE=.\Gdi32\FontResourceEx.c # End Source File # Begin Source File @@ -668,6 +676,10 @@ SOURCE=..\..\common\common.h # End Source File # Begin Source File +SOURCE=.\User32\hwnd9x.h +# End Source File +# Begin Source File + SOURCE=..\..\common\k32ord.def # PROP Exclude_From_Build 1 # End Source File diff --git a/apilibs/kexbases/shell32/CommandLineToArgvW.c b/apilibs/kexbases/shell32/CommandLineToArgvW.c index 2000bf9..a7db84c 100755 --- a/apilibs/kexbases/shell32/CommandLineToArgvW.c +++ b/apilibs/kexbases/shell32/CommandLineToArgvW.c @@ -53,152 +53,152 @@ * '\\' == 0x005c */ -/* MAKE_EXPORT CommandLineToArgvW_new=CommandLineToArgvW */ +/* MAKE_EXPORT CommandLineToArgvW_new=CommandLineToArgvW */ LPWSTR* WINAPI CommandLineToArgvW_new(LPCWSTR lpCmdline, int* numargs) { - DWORD argc; - LPWSTR *argv; - LPCWSTR cs; - LPWSTR arg,s,d; - LPWSTR cmdline; - int in_quotes,bcount; + DWORD argc; + LPWSTR *argv; + LPCWSTR cs; + LPWSTR arg,s,d; + LPWSTR cmdline; + int in_quotes,bcount; - if (*lpCmdline==0) - { - /* Return the path to the executable */ - DWORD len, size=16; + if (*lpCmdline==0) + { + /* Return the path to the executable */ + DWORD len, size=16; - argv=(LPWSTR*)LocalAlloc(LMEM_FIXED, size); - for (;;) - { - len = GetModuleFileNameW_new(0, (LPWSTR)(argv+1), (size-sizeof(LPWSTR))/sizeof(WCHAR)); - if (!len) - { - LocalFree(argv); - return NULL; - } - if (len < size) break; - size*=2; - argv=(LPWSTR*)LocalReAlloc(argv, size, 0); - } - argv[0]=(LPWSTR)(argv+1); - if (numargs) - *numargs=2; + argv=(LPWSTR*)LocalAlloc(LMEM_FIXED, size); + for (;;) + { + len = GetModuleFileNameW_new(0, (LPWSTR)(argv+1), (size-sizeof(LPWSTR))/sizeof(WCHAR)); + if (!len) + { + LocalFree(argv); + return NULL; + } + if (len < size) break; + size*=2; + argv=(LPWSTR*)LocalReAlloc(argv, size, 0); + } + argv[0]=(LPWSTR)(argv+1); + if (numargs) + *numargs=2; - return argv; - } + return argv; + } - /* to get a writable copy */ - argc=0; - bcount=0; - in_quotes=0; - cs=lpCmdline; - while (1) - { - if (*cs==0 || ((*cs==0x0009 || *cs==0x0020) && !in_quotes)) - { - /* space */ - argc++; - /* skip the remaining spaces */ - while (*cs==0x0009 || *cs==0x0020) { - cs++; - } - if (*cs==0) - break; - bcount=0; - continue; - } - else if (*cs==0x005c) - { - /* '\', count them */ - bcount++; - } - else if ((*cs==0x0022) && ((bcount & 1)==0)) - { - /* unescaped '"' */ - in_quotes=!in_quotes; - bcount=0; - } - else - { - /* a regular character */ - bcount=0; - } - cs++; - } - /* Allocate in a single lump, the string array, and the strings that go with it. - * This way the caller can make a single GlobalFree call to free both, as per MSDN. - */ - argv=(LPWSTR*)LocalAlloc(LMEM_FIXED, argc*sizeof(LPWSTR)+(lstrlenW(lpCmdline)+1)*sizeof(WCHAR)); - if (!argv) - return NULL; - cmdline=(LPWSTR)(argv+argc); - lstrcpyW(cmdline, lpCmdline); + /* to get a writable copy */ + argc=0; + bcount=0; + in_quotes=0; + cs=lpCmdline; + while (1) + { + if (*cs==0 || ((*cs==0x0009 || *cs==0x0020) && !in_quotes)) + { + /* space */ + argc++; + /* skip the remaining spaces */ + while (*cs==0x0009 || *cs==0x0020) { + cs++; + } + if (*cs==0) + break; + bcount=0; + continue; + } + else if (*cs==0x005c) + { + /* '\', count them */ + bcount++; + } + else if ((*cs==0x0022) && ((bcount & 1)==0)) + { + /* unescaped '"' */ + in_quotes=!in_quotes; + bcount=0; + } + else + { + /* a regular character */ + bcount=0; + } + cs++; + } + /* Allocate in a single lump, the string array, and the strings that go with it. + * This way the caller can make a single GlobalFree call to free both, as per MSDN. + */ + argv=(LPWSTR*)LocalAlloc(LMEM_FIXED, argc*sizeof(LPWSTR)+(lstrlenW(lpCmdline)+1)*sizeof(WCHAR)); + if (!argv) + return NULL; + cmdline=(LPWSTR)(argv+argc); + lstrcpyW(cmdline, lpCmdline); - argc=0; - bcount=0; - in_quotes=0; - arg=d=s=cmdline; - while (*s) - { - if ((*s==0x0009 || *s==0x0020) && !in_quotes) - { - /* Close the argument and copy it */ - *d=0; - argv[argc++]=arg; + argc=0; + bcount=0; + in_quotes=0; + arg=d=s=cmdline; + while (*s) + { + if ((*s==0x0009 || *s==0x0020) && !in_quotes) + { + /* Close the argument and copy it */ + *d=0; + argv[argc++]=arg; - /* skip the remaining spaces */ - do { - s++; - } while (*s==0x0009 || *s==0x0020); + /* skip the remaining spaces */ + do { + s++; + } while (*s==0x0009 || *s==0x0020); - /* Start with a new argument */ - arg=d=s; - bcount=0; - } - else if (*s==0x005c) - { - /* '\\' */ - *d++=*s++; - bcount++; - } - else if (*s==0x0022) - { - /* '"' */ - if ((bcount & 1)==0) - { - /* Preceded by an even number of '\', this is half that - * number of '\', plus a quote which we erase. - */ - d-=bcount/2; - in_quotes=!in_quotes; - s++; - } - else - { - /* Preceded by an odd number of '\', this is half that - * number of '\' followed by a '"' - */ - d=d-bcount/2-1; - *d++='"'; - s++; - } - bcount=0; - } - else - { - /* a regular character */ - *d++=*s++; - bcount=0; - } - } - if (*arg) - { - *d='\0'; - argv[argc++]=arg; - } - if (numargs) - *numargs=argc; + /* Start with a new argument */ + arg=d=s; + bcount=0; + } + else if (*s==0x005c) + { + /* '\\' */ + *d++=*s++; + bcount++; + } + else if (*s==0x0022) + { + /* '"' */ + if ((bcount & 1)==0) + { + /* Preceded by an even number of '\', this is half that + * number of '\', plus a quote which we erase. + */ + d-=bcount/2; + in_quotes=!in_quotes; + s++; + } + else + { + /* Preceded by an odd number of '\', this is half that + * number of '\' followed by a '"' + */ + d=d-bcount/2-1; + *d++='"'; + s++; + } + bcount=0; + } + else + { + /* a regular character */ + *d++=*s++; + bcount=0; + } + } + if (*arg) + { + *d='\0'; + argv[argc++]=arg; + } + if (numargs) + *numargs=argc; - return argv; + return argv; } diff --git a/apilibs/settings.reg b/apilibs/settings.reg index 0bec73b..ba57388 100755 --- a/apilibs/settings.reg +++ b/apilibs/settings.reg @@ -43,6 +43,11 @@ REGEDIT4 ;-Office 2007 "*\\OFFICE12\\MSO.DLL"="NT2K" "*\\OFFICE12\\WORDCONV.EXE"="NT2K" +;-Google Earth setup +"%TEMP%\\GTAPI.DLL"="NT2K" +;-Windows Installer +"%WINDIR%\\SYSTEM\\MSI.DLL"="DCFG1" +"%WINDIR%\\SYSTEM\\MSIEXEC.EXE"="DCFG1" [HKEY_LOCAL_MACHINE\Software\KernelEx\AppSettings\Flags] ;DISABLE KERNELEX FOR: diff --git a/auxiliary/msimg32/msimg32.c b/auxiliary/msimg32/msimg32.c index aa15850..783dc81 100755 --- a/auxiliary/msimg32/msimg32.c +++ b/auxiliary/msimg32/msimg32.c @@ -33,9 +33,9 @@ #ifndef GRADIENT_FILL_RECT_H #define GRADIENT_FILL_RECT_H 0x00 -#define GRADIENT_FILL_RECT_V 0x01 -#define GRADIENT_FILL_TRIANGLE 0x02 -#define GRADIENT_FILL_OP_FLAG 0xff +#define GRADIENT_FILL_RECT_V 0x01 +#define GRADIENT_FILL_TRIANGLE 0x02 +#define GRADIENT_FILL_OP_FLAG 0xff #endif #ifndef AC_SRC_ALPHA @@ -44,23 +44,23 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - if (fdwReason == DLL_PROCESS_ATTACH) + if (fdwReason == DLL_PROCESS_ATTACH) DisableThreadLibraryCalls(hinstDLL); - return TRUE; + return TRUE; } BOOL WINAPI AlphaBlend_NEW( HDC hdcDest, // handle to destination DC - int nXOriginDest, // x-coord of upper-left corner - int nYOriginDest, // y-coord of upper-left corner - int nWidthDest, // destination width - int nHeightDest, // destination height - HDC hdcSrc, // handle to source DC - int nXOriginSrc, // x-coord of upper-left corner - int nYOriginSrc, // y-coord of upper-left corner - int nWidthSrc, // source width - int nHeightSrc, // source height - BLENDFUNCTION blendFunction // alpha-blending function + int nXOriginDest, // x-coord of upper-left corner + int nYOriginDest, // y-coord of upper-left corner + int nWidthDest, // destination width + int nHeightDest, // destination height + HDC hdcSrc, // handle to source DC + int nXOriginSrc, // x-coord of upper-left corner + int nYOriginSrc, // y-coord of upper-left corner + int nWidthSrc, // source width + int nHeightSrc, // source height + BLENDFUNCTION blendFunction // alpha-blending function ) { unsigned int srcalpha, dstalpha; @@ -160,10 +160,10 @@ BOOL WINAPI GradientFill_NEW( HDC hdc, TRIVERTEX *vert_array, ULONG nvert, unsigned int i; if ( !hdc || !vert_array || ! grad_array ) - { - SetLastError(ERROR_INVALID_PARAMETER); - return FALSE; - } + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } switch(mode) { @@ -275,7 +275,7 @@ BOOL WINAPI GradientFill_NEW( HDC hdc, TRIVERTEX *vert_array, ULONG nvert, int b2 = (v2->Blue * y2 + v-> Blue * (dy2 - y2)) / dy2; int x; - if (x1 < x2) + if (x1 < x2) { int dx = x2 - x1; for (x = 0; x < dx; x++) @@ -307,19 +307,19 @@ BOOL WINAPI GradientFill_NEW( HDC hdc, TRIVERTEX *vert_array, ULONG nvert, * GdiTransparentBlt [GDI32.@] */ BOOL WINAPI TransparentBlt_NEW( HDC hdcDest, int xDest, int yDest, int widthDest, int heightDest, - HDC hdcSrc, int xSrc, int ySrc, int widthSrc, int heightSrc, - UINT crTransparent ) + HDC hdcSrc, int xSrc, int ySrc, int widthSrc, int heightSrc, + UINT crTransparent ) { - BOOL ret = FALSE; - HDC hdcWork; - HBITMAP bmpWork; - HGDIOBJ oldWork; - HDC hdcMask = NULL; - HBITMAP bmpMask = NULL; - HBITMAP oldMask = NULL; - COLORREF oldBackground; - COLORREF oldForeground; - int oldStretchMode; + BOOL ret = FALSE; + HDC hdcWork; + HBITMAP bmpWork; + HGDIOBJ oldWork; + HDC hdcMask = NULL; + HBITMAP bmpMask = NULL; + HBITMAP oldMask = NULL; + COLORREF oldBackground; + COLORREF oldForeground; + int oldStretchMode; if ( !hdcDest || !hdcSrc ) { @@ -327,56 +327,56 @@ BOOL WINAPI TransparentBlt_NEW( HDC hdcDest, int xDest, int yDest, int widthDest return FALSE; } - if(widthDest < 0 || heightDest < 0 || widthSrc < 0 || heightSrc < 0) { - return FALSE; - } + if(widthDest < 0 || heightDest < 0 || widthSrc < 0 || heightSrc < 0) { + return FALSE; + } - oldBackground = SetBkColor(hdcDest, RGB(255,255,255)); - oldForeground = SetTextColor(hdcDest, RGB(0,0,0)); + oldBackground = SetBkColor(hdcDest, RGB(255,255,255)); + oldForeground = SetTextColor(hdcDest, RGB(0,0,0)); - /* Stretch bitmap */ - oldStretchMode = GetStretchBltMode(hdcSrc); - if(oldStretchMode == BLACKONWHITE || oldStretchMode == WHITEONBLACK) - SetStretchBltMode(hdcSrc, COLORONCOLOR); - hdcWork = CreateCompatibleDC(hdcDest); - bmpWork = CreateCompatibleBitmap(hdcDest, widthDest, heightDest); - oldWork = SelectObject(hdcWork, bmpWork); - if(!StretchBlt(hdcWork, 0, 0, widthDest, heightDest, hdcSrc, xSrc, ySrc, widthSrc, heightSrc, SRCCOPY)) goto error; - SetBkColor(hdcWork, crTransparent); + /* Stretch bitmap */ + oldStretchMode = GetStretchBltMode(hdcSrc); + if(oldStretchMode == BLACKONWHITE || oldStretchMode == WHITEONBLACK) + SetStretchBltMode(hdcSrc, COLORONCOLOR); + hdcWork = CreateCompatibleDC(hdcDest); + bmpWork = CreateCompatibleBitmap(hdcDest, widthDest, heightDest); + oldWork = SelectObject(hdcWork, bmpWork); + if(!StretchBlt(hdcWork, 0, 0, widthDest, heightDest, hdcSrc, xSrc, ySrc, widthSrc, heightSrc, SRCCOPY)) goto error; + SetBkColor(hdcWork, crTransparent); - /* Create mask */ - hdcMask = CreateCompatibleDC(hdcDest); - bmpMask = CreateCompatibleBitmap(hdcMask, widthDest, heightDest); - oldMask = SelectObject(hdcMask, bmpMask); - if(!BitBlt(hdcMask, 0, 0, widthDest, heightDest, hdcWork, 0, 0, SRCCOPY)) goto error; + /* Create mask */ + hdcMask = CreateCompatibleDC(hdcDest); + bmpMask = CreateCompatibleBitmap(hdcMask, widthDest, heightDest); + oldMask = SelectObject(hdcMask, bmpMask); + if(!BitBlt(hdcMask, 0, 0, widthDest, heightDest, hdcWork, 0, 0, SRCCOPY)) goto error; - /* Replace transparent color with black */ - SetBkColor(hdcWork, RGB(0,0,0)); - SetTextColor(hdcWork, RGB(255,255,255)); - if(!BitBlt(hdcWork, 0, 0, widthDest, heightDest, hdcMask, 0, 0, SRCAND)) goto error; + /* Replace transparent color with black */ + SetBkColor(hdcWork, RGB(0,0,0)); + SetTextColor(hdcWork, RGB(255,255,255)); + if(!BitBlt(hdcWork, 0, 0, widthDest, heightDest, hdcMask, 0, 0, SRCAND)) goto error; - /* Replace non-transparent area on destination with black */ - if(!BitBlt(hdcDest, xDest, yDest, widthDest, heightDest, hdcMask, 0, 0, SRCAND)) goto error; + /* Replace non-transparent area on destination with black */ + if(!BitBlt(hdcDest, xDest, yDest, widthDest, heightDest, hdcMask, 0, 0, SRCAND)) goto error; - /* Draw the image */ - if(!BitBlt(hdcDest, xDest, yDest, widthDest, heightDest, hdcWork, 0, 0, SRCPAINT)) goto error; + /* Draw the image */ + if(!BitBlt(hdcDest, xDest, yDest, widthDest, heightDest, hdcWork, 0, 0, SRCPAINT)) goto error; - ret = TRUE; + ret = TRUE; error: - SetStretchBltMode(hdcSrc, oldStretchMode); - SetBkColor(hdcDest, oldBackground); - SetTextColor(hdcDest, oldForeground); - if(hdcWork) { - SelectObject(hdcWork, oldWork); - DeleteDC(hdcWork); - } - if(bmpWork) DeleteObject(bmpWork); - if(hdcMask) { - SelectObject(hdcMask, oldMask); - DeleteDC(hdcMask); - } - if(bmpMask) DeleteObject(bmpMask); - return ret; + SetStretchBltMode(hdcSrc, oldStretchMode); + SetBkColor(hdcDest, oldBackground); + SetTextColor(hdcDest, oldForeground); + if(hdcWork) { + SelectObject(hdcWork, oldWork); + DeleteDC(hdcWork); + } + if(bmpWork) DeleteObject(bmpWork); + if(hdcMask) { + SelectObject(hdcMask, oldMask); + DeleteDC(hdcMask); + } + if(bmpMask) DeleteObject(bmpMask); + return ret; } void WINAPI vSetDdrawflag() diff --git a/auxiliary/pdh/pdh.c b/auxiliary/pdh/pdh.c index 51449a9..6d4fcc1 100755 --- a/auxiliary/pdh/pdh.c +++ b/auxiliary/pdh/pdh.c @@ -24,12 +24,12 @@ int WINAPI CommonUnimpStub(void); #ifdef __GNUC__ -#define UNIMPL_FUNC(name,params) \ - __asm__( ".text\n" \ - ".globl _" #name "@0\n" \ - "_" #name "_new@0:\n\t" \ - "xor %eax, %eax\n\t" \ - "movb $" #params ", %cl\n\t" \ +#define UNIMPL_FUNC(name,params) \ + __asm__( ".text\n" \ + ".globl _" #name "@0\n" \ + "_" #name "_new@0:\n\t" \ + "xor %eax, %eax\n\t" \ + "movb $" #params ", %cl\n\t" \ "jmp _CommonUnimpStub@0\n\t" \ ) #else @@ -44,24 +44,25 @@ int WINAPI CommonUnimpStub(void); BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - switch (fdwReason) { - case DLL_PROCESS_ATTACH: - { + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + { OSVERSIONINFO osv; osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&osv); if (osv.dwMajorVersion < 5) return FALSE; - DisableThreadLibraryCalls(hinstDLL); - break; - } - case DLL_PROCESS_DETACH: - { - break; - } - } + DisableThreadLibraryCalls(hinstDLL); + break; + } + case DLL_PROCESS_DETACH: + { + break; + } + } - return TRUE; + return TRUE; } UNIMPL_FUNC(PdhGetDllVersion, 1); diff --git a/auxiliary/userenv/userenv.c b/auxiliary/userenv/userenv.c index 70d7825..e0bdd7a 100755 --- a/auxiliary/userenv/userenv.c +++ b/auxiliary/userenv/userenv.c @@ -41,54 +41,54 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - TRACE("%p %d %p\n", hinstDLL, fdwReason, lpvReserved); + TRACE("%p %d %p\n", hinstDLL, fdwReason, lpvReserved); - switch (fdwReason) - { - case DLL_PROCESS_ATTACH: - DisableThreadLibraryCalls(hinstDLL); - break; - case DLL_PROCESS_DETACH: - break; - } - return TRUE; + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + break; + case DLL_PROCESS_DETACH: + break; + } + return TRUE; } BOOL WINAPI CreateEnvironmentBlock( LPVOID* lpEnvironment, HANDLE hToken, BOOL bInherit ) { - FIXME("%p %p %d\n", lpEnvironment, hToken, bInherit ); - return FALSE; + FIXME("%p %p %d\n", lpEnvironment, hToken, bInherit ); + return FALSE; } BOOL WINAPI DestroyEnvironmentBlock( LPVOID lpEnvironment ) { - FIXME("%p\n", lpEnvironment); + FIXME("%p\n", lpEnvironment); return FALSE; } BOOL WINAPI ExpandEnvironmentStringsForUserA( HANDLE hToken, LPCSTR lpSrc, LPSTR lpDest, DWORD dwSize ) { - BOOL ret; + BOOL ret; - TRACE("%p %s %p %d\n", hToken, debugstr_a(lpSrc), lpDest, dwSize); + TRACE("%p %s %p %d\n", hToken, debugstr_a(lpSrc), lpDest, dwSize); - ret = ExpandEnvironmentStringsA( lpSrc, lpDest, dwSize ); - TRACE("<- %s\n", debugstr_a(lpDest)); - return ret; + ret = ExpandEnvironmentStringsA( lpSrc, lpDest, dwSize ); + TRACE("<- %s\n", debugstr_a(lpDest)); + return ret; } BOOL WINAPI ExpandEnvironmentStringsForUserW( HANDLE hToken, LPCWSTR lpSrc, LPWSTR lpDest, DWORD dwSize ) { - BOOL ret; + BOOL ret; - TRACE("%p %s %p %d\n", hToken, debugstr_w(lpSrc), lpDest, dwSize); + TRACE("%p %s %p %d\n", hToken, debugstr_w(lpSrc), lpDest, dwSize); - ret = ExpandEnvironmentStringsW( lpSrc, lpDest, dwSize ); - TRACE("<- %s\n", debugstr_w(lpDest)); - return ret; + ret = ExpandEnvironmentStringsW( lpSrc, lpDest, dwSize ); + TRACE("<- %s\n", debugstr_w(lpDest)); + return ret; } static int getsubdirpath(int nFolder, LPSTR lpBuffer, LPSTR lpSubDir) @@ -154,49 +154,49 @@ int WINAPI GetAllUsersProfileDirectoryW( LPWSTR lpProfileDir, LPDWORD lpcchSize int WINAPI GetProfilesDirectoryA( LPSTR lpProfilesDir, LPDWORD lpcchSize ) { - return GetSpecialSubdirPathA(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize); + return GetSpecialSubdirPathA(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize); } int WINAPI GetProfilesDirectoryW( LPWSTR lpProfilesDir, LPDWORD lpcchSize ) { - return GetSpecialSubdirPathW(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize); + return GetSpecialSubdirPathW(CSIDL_APPDATA,"..\\..",lpProfilesDir,lpcchSize); } BOOL WINAPI GetProfileType( DWORD *pdwFlags ) { - FIXME("%p\n", pdwFlags ); - *pdwFlags = 0; - return TRUE; + FIXME("%p\n", pdwFlags ); + *pdwFlags = 0; + return TRUE; } BOOL WINAPI LoadUserProfileA( HANDLE hToken, LPPROFILEINFOA lpProfileInfo ) { - FIXME("%p %p\n", hToken, lpProfileInfo ); - lpProfileInfo->hProfile = HKEY_CURRENT_USER; - return TRUE; + FIXME("%p %p\n", hToken, lpProfileInfo ); + lpProfileInfo->hProfile = HKEY_CURRENT_USER; + return TRUE; } BOOL WINAPI LoadUserProfileW( HANDLE hToken, LPPROFILEINFOW lpProfileInfo ) { - FIXME("%p %p\n", hToken, lpProfileInfo ); - lpProfileInfo->hProfile = HKEY_CURRENT_USER; - return TRUE; + FIXME("%p %p\n", hToken, lpProfileInfo ); + lpProfileInfo->hProfile = HKEY_CURRENT_USER; + return TRUE; } BOOL WINAPI RegisterGPNotification( HANDLE event, BOOL machine ) { - FIXME("%p %d\n", event, machine ); - return TRUE; + FIXME("%p %d\n", event, machine ); + return TRUE; } BOOL WINAPI UnregisterGPNotification( HANDLE event ) { - FIXME("%p\n", event ); - return TRUE; + FIXME("%p\n", event ); + return TRUE; } BOOL WINAPI UnloadUserProfile( HANDLE hToken, HANDLE hProfile ) { - FIXME("(%p, %p): stub\n", hToken, hProfile); - return FALSE; + FIXME("(%p, %p): stub\n", hToken, hProfile); + return FALSE; } diff --git a/auxiliary/uxtheme/metric.c b/auxiliary/uxtheme/metric.c index 2b5257e..975c86a 100755 --- a/auxiliary/uxtheme/metric.c +++ b/auxiliary/uxtheme/metric.c @@ -36,14 +36,14 @@ */ BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID) { - SetLastError(0); - if(iBoolID == TMT_FLATMENUS) { - return FALSE; - } - else { - SetLastError(STG_E_INVALIDPARAMETER); - } - return FALSE; + SetLastError(0); + if(iBoolID == TMT_FLATMENUS) { + return FALSE; + } + else { + SetLastError(STG_E_INVALIDPARAMETER); + } + return FALSE; } /*********************************************************************** @@ -52,8 +52,8 @@ BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID) */ COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID) { - SetLastError(0); - return GetSysColor(iColorID - TMT_FIRSTCOLOR); + SetLastError(0); + return GetSysColor(iColorID - TMT_FIRSTCOLOR); } /*********************************************************************** @@ -62,7 +62,7 @@ COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID) */ HBRUSH WINAPI GetThemeSysColorBrush(HTHEME hTheme, int iColorID) { - return CreateSolidBrush(GetThemeSysColor(hTheme, iColorID)); + return CreateSolidBrush(GetThemeSysColor(hTheme, iColorID)); } /*********************************************************************** @@ -71,29 +71,29 @@ HBRUSH WINAPI GetThemeSysColorBrush(HTHEME hTheme, int iColorID) */ HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf) { - HRESULT hr = S_OK; + HRESULT hr = S_OK; - if(iFontID == TMT_ICONTITLEFONT) { - if(!SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(LOGFONTW), &plf, 0)) - return HRESULT_FROM_WIN32(GetLastError()); - } - else { - NONCLIENTMETRICSW ncm; - LOGFONTW *font = NULL; - ncm.cbSize = sizeof(NONCLIENTMETRICSW); - if(!SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &ncm, 0)) - return HRESULT_FROM_WIN32(GetLastError()); - switch(iFontID) { - case TMT_CAPTIONFONT: font = &ncm.lfCaptionFont; break; - case TMT_SMALLCAPTIONFONT: font = &ncm.lfSmCaptionFont; break; - case TMT_MENUFONT: font = &ncm.lfMenuFont; break; - case TMT_STATUSFONT: font = &ncm.lfStatusFont; break; - case TMT_MSGBOXFONT: font = &ncm.lfMessageFont; break; - } - if(font) *plf = *font; - else hr = STG_E_INVALIDPARAMETER; - } - return hr; + if(iFontID == TMT_ICONTITLEFONT) { + if(!SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(LOGFONTW), &plf, 0)) + return HRESULT_FROM_WIN32(GetLastError()); + } + else { + NONCLIENTMETRICSW ncm; + LOGFONTW *font = NULL; + ncm.cbSize = sizeof(NONCLIENTMETRICSW); + if(!SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &ncm, 0)) + return HRESULT_FROM_WIN32(GetLastError()); + switch(iFontID) { + case TMT_CAPTIONFONT: font = &ncm.lfCaptionFont; break; + case TMT_SMALLCAPTIONFONT: font = &ncm.lfSmCaptionFont; break; + case TMT_MENUFONT: font = &ncm.lfMenuFont; break; + case TMT_STATUSFONT: font = &ncm.lfStatusFont; break; + case TMT_MSGBOXFONT: font = &ncm.lfMessageFont; break; + } + if(font) *plf = *font; + else hr = STG_E_INVALIDPARAMETER; + } + return hr; } /*********************************************************************** @@ -102,7 +102,7 @@ HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf) */ HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue) { - return E_HANDLE; + return E_HANDLE; } /*********************************************************************** @@ -111,7 +111,7 @@ HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue) */ int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID) { - return GetSystemMetrics(iSizeID); + return GetSystemMetrics(iSizeID); } /*********************************************************************** @@ -121,5 +121,5 @@ int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID) HRESULT WINAPI GetThemeSysString(HTHEME hTheme, int iStringID, LPWSTR pszStringBuff, int cchMaxStringChars) { - return E_HANDLE; + return E_HANDLE; } diff --git a/auxiliary/uxtheme/uxtheme.c b/auxiliary/uxtheme/uxtheme.c index b7ba024..336943a 100755 --- a/auxiliary/uxtheme/uxtheme.c +++ b/auxiliary/uxtheme/uxtheme.c @@ -32,7 +32,7 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, BOOL bLoadStatic) { - if (fdwReason == DLL_PROCESS_ATTACH) + if (fdwReason == DLL_PROCESS_ATTACH) { if (!bLoadStatic) { @@ -44,7 +44,7 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, BOOL bLoadStatic) } DisableThreadLibraryCalls(hinstDLL); } - return TRUE; + return TRUE; } UNIMPL_FUNC(CloseThemeData, 1, _E_NOTIMPL); diff --git a/auxiliary/wtsapi32/wtsapi32.c b/auxiliary/wtsapi32/wtsapi32.c index 0fbd36f..ad69a3f 100755 --- a/auxiliary/wtsapi32/wtsapi32.c +++ b/auxiliary/wtsapi32/wtsapi32.c @@ -69,35 +69,36 @@ static HMODULE WTSAPI32_hModule = 0; BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { - TRACE("%p,%lx,%p\n", hinstDLL, fdwReason, lpvReserved); + TRACE("%p,%lx,%p\n", hinstDLL, fdwReason, lpvReserved); - switch (fdwReason) { - case DLL_PROCESS_ATTACH: - { - OSVERSIONINFO osv; - osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&osv); - if (osv.dwMajorVersion < 5) - return FALSE; - DisableThreadLibraryCalls(hinstDLL); - WTSAPI32_hModule = hinstDLL; - break; - } - case DLL_PROCESS_DETACH: - { - break; - } - } + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + { + OSVERSIONINFO osv; + osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&osv); + if (osv.dwMajorVersion < 5) + return FALSE; + DisableThreadLibraryCalls(hinstDLL); + WTSAPI32_hModule = hinstDLL; + break; + } + case DLL_PROCESS_DETACH: + { + break; + } + } - return TRUE; -} + return TRUE; + } /************************************************************ * WTSCloseServer (WTSAPI32.@) */ void WINAPI WTSCloseServer(HANDLE hServer) { - FIXME("Stub %p\n", hServer); + FIXME("Stub %p\n", hServer); } /************************************************************ @@ -105,110 +106,110 @@ void WINAPI WTSCloseServer(HANDLE hServer) */ BOOL WINAPI WTSDisconnectSession(HANDLE hServer, DWORD SessionId, BOOL bWait) { - FIXME("Stub %p 0x%08lx %d\n", hServer, SessionId, bWait); - return TRUE; + FIXME("Stub %p 0x%08lx %d\n", hServer, SessionId, bWait); + return TRUE; } /************************************************************ * WTSEnumerateProcessesA (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateProcessesA(HANDLE hServer, DWORD Reserved, DWORD Version, - PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount) + PWTS_PROCESS_INFOA* ppProcessInfo, DWORD* pCount) { - FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, - ppProcessInfo, pCount); + FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, + ppProcessInfo, pCount); - if (!ppProcessInfo || !pCount) return FALSE; + if (!ppProcessInfo || !pCount) return FALSE; - *pCount = 0; - *ppProcessInfo = NULL; + *pCount = 0; + *ppProcessInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ * WTSEnumerateProcessesW (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateProcessesW(HANDLE hServer, DWORD Reserved, DWORD Version, - PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount) + PWTS_PROCESS_INFOW* ppProcessInfo, DWORD* pCount) { - FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, - ppProcessInfo, pCount); + FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, + ppProcessInfo, pCount); - if (!ppProcessInfo || !pCount) return FALSE; + if (!ppProcessInfo || !pCount) return FALSE; - *pCount = 0; - *ppProcessInfo = NULL; + *pCount = 0; + *ppProcessInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ * WTSEnumerateServersA (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateServersA(LPSTR pDomainName, DWORD Reserved, DWORD Version, - PWTS_SERVER_INFOA* ppServerInfo, DWORD* pCount) + PWTS_SERVER_INFOA* ppServerInfo, DWORD* pCount) { - FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_a(pDomainName), Reserved, Version, - ppServerInfo, pCount); + FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_a(pDomainName), Reserved, Version, + ppServerInfo, pCount); - if (!ppServerInfo || !pCount) return FALSE; + if (!ppServerInfo || !pCount) return FALSE; - *pCount = 0; - *ppServerInfo = NULL; + *pCount = 0; + *ppServerInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ * WTSEnumerateServersW (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateServersW(LPWSTR pDomainName, DWORD Reserved, DWORD Version, - PWTS_SERVER_INFOW* ppServerInfo, DWORD* pCount) + PWTS_SERVER_INFOW* ppServerInfo, DWORD* pCount) { - FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_w(pDomainName), Reserved, Version, - ppServerInfo, pCount); + FIXME("Stub %s 0x%08lx 0x%08lx %p %p\n", debugstr_w(pDomainName), Reserved, Version, + ppServerInfo, pCount); - if (!ppServerInfo || !pCount) return FALSE; + if (!ppServerInfo || !pCount) return FALSE; - *pCount = 0; - *ppServerInfo = NULL; + *pCount = 0; + *ppServerInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ * WTSEnumerateEnumerateSessionsA (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateSessionsA(HANDLE hServer, DWORD Reserved, DWORD Version, - PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount) + PWTS_SESSION_INFOA* ppSessionInfo, DWORD* pCount) { - FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, - ppSessionInfo, pCount); + FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, + ppSessionInfo, pCount); - if (!ppSessionInfo || !pCount) return FALSE; + if (!ppSessionInfo || !pCount) return FALSE; - *pCount = 0; - *ppSessionInfo = NULL; + *pCount = 0; + *ppSessionInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ * WTSEnumerateEnumerateSessionsW (WTSAPI32.@) */ BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version, - PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount) + PWTS_SESSION_INFOW* ppSessionInfo, DWORD* pCount) { - FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, - ppSessionInfo, pCount); + FIXME("Stub %p 0x%08lx 0x%08lx %p %p\n", hServer, Reserved, Version, + ppSessionInfo, pCount); - if (!ppSessionInfo || !pCount) return FALSE; + if (!ppSessionInfo || !pCount) return FALSE; - *pCount = 0; - *ppSessionInfo = NULL; + *pCount = 0; + *ppSessionInfo = NULL; - return TRUE; + return TRUE; } /************************************************************ @@ -216,8 +217,8 @@ BOOL WINAPI WTSEnumerateSessionsW(HANDLE hServer, DWORD Reserved, DWORD Version, */ void WINAPI WTSFreeMemory(PVOID pMemory) { - FIXME("Stub %p\n", pMemory); - return; + FIXME("Stub %p\n", pMemory); + return; } /************************************************************ @@ -225,9 +226,9 @@ void WINAPI WTSFreeMemory(PVOID pMemory) */ HANDLE WINAPI WTSOpenServerA(LPSTR pServerName) { - FIXME("(%s) stub\n", debugstr_a(pServerName)); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return NULL; + FIXME("(%s) stub\n", debugstr_a(pServerName)); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return NULL; } /************************************************************ @@ -235,64 +236,72 @@ HANDLE WINAPI WTSOpenServerA(LPSTR pServerName) */ HANDLE WINAPI WTSOpenServerW(LPWSTR pServerName) { - FIXME("(%s) stub\n", debugstr_w(pServerName)); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return NULL; + FIXME("(%s) stub\n", debugstr_w(pServerName)); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return NULL; } /************************************************************ * WTSQuerySessionInformationA (WTSAPI32.@) */ BOOL WINAPI WTSQuerySessionInformationA( - HANDLE hServer, - DWORD SessionId, - WTS_INFO_CLASS WTSInfoClass, - LPSTR* Buffer, - DWORD* BytesReturned) + HANDLE hServer, + DWORD SessionId, + WTS_INFO_CLASS WTSInfoClass, + LPSTR* Buffer, + DWORD* BytesReturned) { - /* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */ - FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass, - Buffer, BytesReturned); + /* FIXME: Forward request to winsta.dll::WinStationQueryInformationA */ + FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass, + Buffer, BytesReturned); - return FALSE; + return FALSE; } /************************************************************ * WTSQuerySessionInformationW (WTSAPI32.@) */ BOOL WINAPI WTSQuerySessionInformationW( - HANDLE hServer, - DWORD SessionId, - WTS_INFO_CLASS WTSInfoClass, - LPWSTR* Buffer, - DWORD* BytesReturned) + HANDLE hServer, + DWORD SessionId, + WTS_INFO_CLASS WTSInfoClass, + LPWSTR* Buffer, + DWORD* BytesReturned) { - /* FIXME: Forward request to winsta.dll::WinStationQueryInformationW */ - FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass, - Buffer, BytesReturned); + /* FIXME: Forward request to winsta.dll::WinStationQueryInformationW */ + FIXME("Stub %p 0x%08lx %d %p %p\n", hServer, SessionId, WTSInfoClass, + Buffer, BytesReturned); - return FALSE; + return FALSE; } /************************************************************ * WTSQueryUserConfigA (WTSAPI32.@) */ -BOOL WINAPI WTSQueryUserConfigA(LPSTR pServerName, LPSTR pUserName, - WTS_CONFIG_CLASS WTSConfigClass, LPSTR* ppBuffer, DWORD* pBytesReturned) +BOOL WINAPI WTSQueryUserConfigA( + LPSTR pServerName, + LPSTR pUserName, + WTS_CONFIG_CLASS WTSConfigClass, + LPSTR* ppBuffer, + DWORD* pBytesReturned) { FIXME("Stub %s %s 0x%08lx %p %p\n", debugstr_a(pServerName), debugstr_a(pUserName), - WTSConfigClass, ppBuffer, pBytesReturned); + WTSConfigClass, ppBuffer, pBytesReturned); return FALSE; } /************************************************************ * WTSQueryUserConfigW (WTSAPI32.@) */ -BOOL WINAPI WTSQueryUserConfigW(LPWSTR pServerName, LPWSTR pUserName, - WTS_CONFIG_CLASS WTSConfigClass, LPWSTR* ppBuffer, DWORD* pBytesReturned) +BOOL WINAPI WTSQueryUserConfigW( + LPWSTR pServerName, + LPWSTR pUserName, + WTS_CONFIG_CLASS WTSConfigClass, + LPWSTR* ppBuffer, + DWORD* pBytesReturned) { FIXME("Stub %s %s 0x%08lx %p %p\n", debugstr_w(pServerName), debugstr_w(pUserName), - WTSConfigClass, ppBuffer, pBytesReturned); + WTSConfigClass, ppBuffer, pBytesReturned); return FALSE; } @@ -320,8 +329,8 @@ BOOL WINAPI WTSRegisterSessionNotification(HWND hWnd, DWORD dwFlags) BOOL WINAPI WTSTerminateProcess(HANDLE hServer, DWORD ProcessId, DWORD ExitCode) { FIXME("Stub %p 0x%08x 0x%08x\n", hServer, ProcessId, ExitCode); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; } /************************************************************ @@ -338,7 +347,7 @@ BOOL WINAPI WTSUnRegisterSessionNotification(HWND hWnd) */ BOOL WINAPI WTSWaitSystemEvent(HANDLE hServer, DWORD Mask, DWORD* Flags) { - /* FIXME: Forward request to winsta.dll::WinStationWaitSystemEvent */ - FIXME("Stub %p 0x%08lx %p\n", hServer, Mask, Flags); - return FALSE; + /* FIXME: Forward request to winsta.dll::WinStationWaitSystemEvent */ + FIXME("Stub %p 0x%08lx %p\n", hServer, Mask, Flags); + return FALSE; } diff --git a/auxiliary/wtsapi32/wtsapi32.h b/auxiliary/wtsapi32/wtsapi32.h index b0f5d71..f858233 100755 --- a/auxiliary/wtsapi32/wtsapi32.h +++ b/auxiliary/wtsapi32/wtsapi32.h @@ -28,74 +28,74 @@ extern "C" { typedef enum tagWTS_INFO_CLASS { - WTSInitialProgram, - WTSApplicationName, - WTSWorkingDirectory, - WTSOEMId, - WTSSessionId, - WTSUserName, - WTSWinStationName, - WTSDomainName, - WTSConnectState, - WTSClientBuildNumber, - WTSClientName, - WTSClientDirectory, - WTSClientProductId, - WTSClientHardwareId, - WTSClientAddress, - WTSClientDisplay, - WTSClientProtocolType, + WTSInitialProgram, + WTSApplicationName, + WTSWorkingDirectory, + WTSOEMId, + WTSSessionId, + WTSUserName, + WTSWinStationName, + WTSDomainName, + WTSConnectState, + WTSClientBuildNumber, + WTSClientName, + WTSClientDirectory, + WTSClientProductId, + WTSClientHardwareId, + WTSClientAddress, + WTSClientDisplay, + WTSClientProtocolType, } WTS_INFO_CLASS; typedef enum _WTS_CONNECTSTATE_CLASS { - WTSActive, - WTSConnected, - WTSConnectQuery, - WTSShadow, - WTSDisconnected, - WTSIdle, - WTSListen, - WTSReset, - WTSDown, - WTSInit + WTSActive, + WTSConnected, + WTSConnectQuery, + WTSShadow, + WTSDisconnected, + WTSIdle, + WTSListen, + WTSReset, + WTSDown, + WTSInit } WTS_CONNECTSTATE_CLASS; typedef enum _WTS_CONFIG_CLASS { - WTSUserConfigInitialProgram, - WTSUserConfigWorkingDirectory, - WTSUserConfigInheritInitialProgram, - WTSUserConfigAllowLogonTerminalServer, - WTSUserConfigTimeoutSettingsConnections, - WTSUserConfigTimeoutSettingsDisconnections, - WTSUserConfigTimeoutSettingsIdle, - WTSUserConfigDeviceClientDrives, - WTSUserConfigDeviceClientPrinters, - WTSUserConfigDeviceClientDefaultPrinter, - WTSUserConfigBrokenTimeoutSettings, - WTSUserConfigModemCallbackSettings, - WTSUserConfigModemCallbackPhoneNumber, - WTSUserConfigShadowSettings, - WTSUserConfigTerminalServerProfilePath, - WTSUserConfigTerminalServerHomeDirectory, - WTSUserConfigfTerminalServerRemoteHomeDir + WTSUserConfigInitialProgram, + WTSUserConfigWorkingDirectory, + WTSUserConfigInheritInitialProgram, + WTSUserConfigAllowLogonTerminalServer, + WTSUserConfigTimeoutSettingsConnections, + WTSUserConfigTimeoutSettingsDisconnections, + WTSUserConfigTimeoutSettingsIdle, + WTSUserConfigDeviceClientDrives, + WTSUserConfigDeviceClientPrinters, + WTSUserConfigDeviceClientDefaultPrinter, + WTSUserConfigBrokenTimeoutSettings, + WTSUserConfigModemCallbackSettings, + WTSUserConfigModemCallbackPhoneNumber, + WTSUserConfigShadowSettings, + WTSUserConfigTerminalServerProfilePath, + WTSUserConfigTerminalServerHomeDirectory, + WTSUserConfigfTerminalServerRemoteHomeDir } WTS_CONFIG_CLASS; typedef struct _WTS_PROCESS_INFOA { - DWORD SessionId; - DWORD ProcessId; - LPSTR pProcessName; - PSID pUserSid; + DWORD SessionId; + DWORD ProcessId; + LPSTR pProcessName; + PSID pUserSid; } WTS_PROCESS_INFOA, *PWTS_PROCESS_INFOA; typedef struct _WTS_PROCESS_INFOW { - DWORD SessionId; - DWORD ProcessId; - LPWSTR pProcessName; - PSID pUserSid; + DWORD SessionId; + DWORD ProcessId; + LPWSTR pProcessName; + PSID pUserSid; } WTS_PROCESS_INFOW, *PWTS_PROCESS_INFOW; DECL_WINELIB_TYPE_AW(WTS_PROCESS_INFO) @@ -103,16 +103,16 @@ DECL_WINELIB_TYPE_AW(PWTS_PROCESS_INFO) typedef struct _WTS_SESSION_INFOA { - DWORD SessionId; - LPSTR pWinStationName; - WTS_CONNECTSTATE_CLASS State; + DWORD SessionId; + LPSTR pWinStationName; + WTS_CONNECTSTATE_CLASS State; } WTS_SESSION_INFOA, *PWTS_SESSION_INFOA; typedef struct _WTS_SESSION_INFOW { - DWORD SessionId; - LPWSTR pWinStationName; - WTS_CONNECTSTATE_CLASS State; + DWORD SessionId; + LPWSTR pWinStationName; + WTS_CONNECTSTATE_CLASS State; } WTS_SESSION_INFOW, *PWTS_SESSION_INFOW; DECL_WINELIB_TYPE_AW(WTS_SESSION_INFO) @@ -120,12 +120,12 @@ DECL_WINELIB_TYPE_AW(PWTS_SESSION_INFO) typedef struct _WTS_SERVER_INFOA { - LPSTR pServerName; + LPSTR pServerName; } WTS_SERVER_INFOA, *PWTS_SERVER_INFOA; typedef struct _WTS_SERVER_INFOW { - LPWSTR pServerName; + LPWSTR pServerName; } WTS_SERVER_INFOW, *PWTS_SERVER_INFOW; DECL_WINELIB_TYPE_AW(WTS_SERVER_INFO) diff --git a/common/version.h b/common/version.h index e611240..5541b7d 100755 --- a/common/version.h +++ b/common/version.h @@ -22,9 +22,9 @@ #ifndef __VERSION_H #define __VERSION_H -#define VERSION_STR "4.5 RC 5" -#define VERSION_CODE 0x0405000F -#define RCVERSION 4, 5, 1, 5 -#define _RCVERSION_ "4, 5, 1, 5" +#define VERSION_STR "4.5 Final" +#define VERSION_CODE 0x04050065 +#define RCVERSION 4, 5, 10, 1 +#define _RCVERSION_ "4, 5, 10, 1" #endif diff --git a/core/apiconfmgr.cpp b/core/apiconfmgr.cpp index 56e469d..3b23eca 100755 --- a/core/apiconfmgr.cpp +++ b/core/apiconfmgr.cpp @@ -23,6 +23,7 @@ #include #include #include "debug.h" +#include "SettingsDB.h" #include "internals.h" #include "resolver.h" #include "apiconfmgr.h" @@ -174,6 +175,9 @@ __error: DBGPRINTF(("Default api configuration is: %s\n", default_apiconf->get_name())); DBGPRINTF(("API extensions are by default: %s\n", disable_extensions ? "disabled" : "enabled")); + + SettingsDB::instance.flush_all(); + return true; } diff --git a/core/internals.cpp b/core/internals.cpp index b63a75e..6a6ce3d 100755 --- a/core/internals.cpp +++ b/core/internals.cpp @@ -72,6 +72,24 @@ void ShowError(UINT id, ...) MessageBox(NULL, out, "KernelEx Core", MB_OK | MB_ICONERROR); } +bool rerun_setup() +{ + char cmd[MAX_PATH]; + STARTUPINFO si; + PROCESS_INFORMATION pi; + + strcpy(cmd, "\""); + strcat(cmd, kernelex_dir); + strcat(cmd, "setupkex.exe\" /R"); + + GetStartupInfo(&si); + if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) + return false; + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + return true; +} + DWORD* find_unique_pattern(void* start, int size, const short* pattern, int pat_len, const char* pat_name) { unsigned char* pos = (unsigned char*) start; diff --git a/core/internals.h b/core/internals.h index ca5d6a5..862892c 100755 --- a/core/internals.h +++ b/core/internals.h @@ -44,6 +44,7 @@ extern sstring kernelex_dir; extern sstring own_path; void ShowError(UINT id, ...); +bool rerun_setup(); bool isWinMe(); typedef MODREF* (__stdcall *MRFromHLib_t)(HMODULE); diff --git a/core/main.cpp b/core/main.cpp index 18de143..b1975ec 100755 --- a/core/main.cpp +++ b/core/main.cpp @@ -1,6 +1,6 @@ /* * KernelEx - * Copyright (C) 2008-2009, Xeno86 + * Copyright (C) 2008-2010, Xeno86 * * This file is part of KernelEx source code. * @@ -53,12 +53,12 @@ int kexInit() if (!internals_init()) goto __error1; - if (!apiconfmgr.load_api_configurations()) - goto __error2; - if (!resolver_init()) goto __error2; + if (!apiconfmgr.load_api_configurations()) + goto __error3; + resolver_hook(); #ifdef _DEBUG @@ -68,6 +68,8 @@ int kexInit() DBGPRINTF(("Initialized successfully\n")); return ++init_count; +__error3: + resolver_uninit(); __error2: internals_uninit(); __error1: diff --git a/core/resolver.cpp b/core/resolver.cpp index 75b44e0..d1325e7 100755 --- a/core/resolver.cpp +++ b/core/resolver.cpp @@ -879,7 +879,8 @@ int resolver_init() if (!dseg) { DBGPRINTF(("Signature not found\n")); - ShowError(IDS_NOTREADY); + if (!rerun_setup()) + ShowError(IDS_NOTREADY); return 0; } else @@ -889,7 +890,8 @@ int resolver_init() { DBGPRINTF(("Wrong stub version, expected: %d, got: %d\n", KEX_STUB_VER, dseg->version)); - ShowError(IDS_STUBMISMATCH, KEX_STUB_VER, dseg->version); + if (!rerun_setup()) + ShowError(IDS_STUBMISMATCH, KEX_STUB_VER, dseg->version); return 0; } @@ -899,8 +901,6 @@ int resolver_init() system_path_len = GetSystemDirectory(system_path, sizeof(system_path)); RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\KernelEx\\KnownDLLs", &known_dlls_key); - SettingsDB::instance.flush_all(); - return 1; } diff --git a/setup/loadstub.h b/setup/loadstub.h index 68fe6bf..527d6bc 100755 --- a/setup/loadstub.h +++ b/setup/loadstub.h @@ -24,7 +24,7 @@ #define KEX_SIGNATURE "KrnlEx" /* Update this whenever patching functions are changed. */ -#define KEX_STUB_VER 9 +#define KEX_STUB_VER 10 #define JTAB_SIZE 8 #define JTAB_EFO_DYN 0 diff --git a/setup/patch.cpp b/setup/patch.cpp new file mode 100755 index 0000000..3b6ed27 --- /dev/null +++ b/setup/patch.cpp @@ -0,0 +1,577 @@ +/* + * KernelEx + * Copyright (C) 2010, Xeno86 + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include "patch.h" +#include "debug.h" +#include "loadstub.h" +#include "pemanip.h" +#include "resource.h" + +#define CODE_SEG ".text" +#define DATA_SEG ".data" +#define INIT_SEG "_INIT" + +void ShowError(UINT id, ...); + + +Patch::Patch(PEmanip& pem) : pefile(pem) +{ +} + +void Patch::apply() +{ + find_ExportFromX(); + find_IsKnownDLL(); + find_FLoadTreeNotify1(); + find_FLoadTreeNotify2(); + prepare_subsystem_check(); + find_resource_check1(); + find_resource_check2(); + disable_named_and_rcdata_resources_mirroring(); + mod_imte_alloc(); + mod_mr_alloc(); + mod_pdb_alloc(); + + KernelEx_codeseg* cseg; + KernelEx_dataseg* dseg; + if (!pefile.AllocSectionSpace(CODE_SEG, + sizeof(KernelEx_codeseg), (void**) &cseg, sizeof(DWORD))) + ShowError(IDS_FAILSEC, CODE_SEG); + if (!pefile.AllocSectionSpace(DATA_SEG, + sizeof(KernelEx_dataseg), (void**) &dseg, sizeof(DWORD))) + ShowError(IDS_FAILSEC, DATA_SEG); + + memcpy(cseg->signature, "KrnlEx", 6); + cseg->version = KEX_STUB_VER; + for (int i = 0 ; i < JTAB_SIZE ; i++) + { + cseg->jmp_stub[i].opcode = 0x25ff; + cseg->jmp_stub[i].addr = (DWORD) + pefile.PointerToRva(&dseg->jtab[i]) + pefile.GetImageBase(); + cseg->jmp_stub[i].nop = 0x9090; + } + + memcpy(dseg->signature, "KrnlEx", 6); + dseg->version = KEX_STUB_VER; + dseg->jtab[JTAB_EFO_DYN] = _ExportFromOrdinal + pefile.GetImageBase(); + dseg->jtab[JTAB_EFO_STA] = _ExportFromOrdinal + pefile.GetImageBase(); + dseg->jtab[JTAB_EFN_DYN] = _ExportFromName + pefile.GetImageBase(); + dseg->jtab[JTAB_EFN_STA] = _ExportFromName + pefile.GetImageBase(); + dseg->jtab[JTAB_KNO_DLL] = _IsKnownDLL + pefile.GetImageBase(); + dseg->jtab[JTAB_FLD_TRN] = _FLoadTreeNotify + pefile.GetImageBase(); + dseg->jtab[JTAB_SYS_CHK] = _SubsysCheckPerform + pefile.GetImageBase(); + dseg->jtab[JTAB_RES_CHK] = _GetOrdinal + pefile.GetImageBase(); + + //exportfromx patch + DWORD code = (DWORD) pefile.GetSectionByName(CODE_SEG); + int code_size = pefile.GetSectionSize(CODE_SEG); + + int efo_cnt = 0; + int efn_cnt = 0; + + for (DWORD a = code ; a < code + code_size ; a++) + { + if (is_call_ref(a, _ExportFromOrdinal)) + { + DWORD file_loc = a; + if (a == EFN_EFO_call) + continue; + if (a == gpa_ExportFromOrdinal_call) + set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFO_DYN]); + else + set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFO_STA]); + DBGPRINTF(("%s: address 0x%08x\n", "EFO", pefile.PointerToRva((void*) a) + + pefile.GetImageBase())); + efo_cnt++; + } + else if (is_call_ref(a, _ExportFromName)) + { + DWORD file_loc = a; + if (is_fixupc(a)) + continue; + if (a == gpa_ExportFromName_call) + set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFN_DYN]); + else + set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFN_STA]); + DBGPRINTF(("%s: address 0x%08x\n", "EFN", pefile.PointerToRva((void*) a) + + pefile.GetImageBase())); + efn_cnt++; + } + } + + if (efo_cnt != 2 || efn_cnt != 2) + ShowError(IDS_ERRCHECK); + + //isknowndll patch + set_call_ref(IsKnownDLL_call, (DWORD) &cseg->jmp_stub[JTAB_KNO_DLL]); + DBGPRINTF(("%s: address 0x%08x\n", "KNO_DLL", pefile.PointerToRva((void*) IsKnownDLL_call) + + pefile.GetImageBase())); + + //FLoadTreeNotify patch + set_call_ref(FLoadTreeNotify_call1, (DWORD) &cseg->jmp_stub[JTAB_FLD_TRN]); + DBGPRINTF(("%s: address 0x%08x\n", "FLD_TRN1", pefile.PointerToRva((void*) FLoadTreeNotify_call1) + + pefile.GetImageBase())); + set_call_ref(FLoadTreeNotify_call2, (DWORD) &cseg->jmp_stub[JTAB_FLD_TRN]); + DBGPRINTF(("%s: address 0x%08x\n", "FLD_TRN2", pefile.PointerToRva((void*) FLoadTreeNotify_call2) + + pefile.GetImageBase())); + + //subsys check patch + set_jmp_ref(SubsysCheck_jmp, (DWORD) &cseg->jmp_stub[JTAB_SYS_CHK]); + DBGPRINTF(("%s: address 0x%08x\n", "SYS_CHK", pefile.PointerToRva((void*) SubsysCheck_jmp) + + pefile.GetImageBase())); + + //resource check patch + set_call_ref(GetOrdinal_call1, (DWORD) &cseg->jmp_stub[JTAB_RES_CHK]); + DBGPRINTF(("%s: address 0x%08x\n", "RES_CHK1", pefile.PointerToRva((void*) GetOrdinal_call1) + + pefile.GetImageBase())); + set_call_ref(GetOrdinal_call2, (DWORD) &cseg->jmp_stub[JTAB_RES_CHK]); + DBGPRINTF(("%s: address 0x%08x\n", "RES_CHK2", pefile.PointerToRva((void*) GetOrdinal_call2) + + pefile.GetImageBase())); +} + +int Patch::find_pattern(DWORD offset, int size, const short* pattern, + int pat_len, DWORD* found_loc) +{ + DWORD end_offset = offset + size - pat_len; + int found = 0; + + for (DWORD i = offset ; i <= end_offset ; i++) + { + if (pattern[0] < 0 || *(unsigned char*)i == pattern[0]) + { + int j; + for (j = 1 ; j < pat_len ; j++) + { + if (pattern[j] >= 0 && *(unsigned char*)(i + j) != pattern[j]) + break; + } + if (j == pat_len) //pattern found + { + *found_loc = i; + found++; + } + } + } + return found; +} + +void Patch::set_pattern(DWORD loc, const short* new_pattern, int pat_len) +{ + unsigned char* offset = (unsigned char*) loc; + const short* pat_ptr = new_pattern; + + while (pat_len--) + { + if (*pat_ptr != -1) + *offset = *pat_ptr & 0xff; + offset++; + pat_ptr++; + } +} + +void Patch::prepare_subsystem_check() +{ + static const short pattern[] = { + 0x66,0x8b,0x46,0x48,0x66,0x3d,0x04,0x00,0x0f,0x87,0x9c,0x01,0x00,0x00, + 0x75,0x0b,0x66,0x83,0x7e,0x4a,0x0a,0x0f,0x87,0x8f,0x01,0x00,0x00,0x66, + 0x81,0x7e,0x04,0x4c,0x01, + }; + static const short after[] = { + 0x66,0x83,0x7E,0x48,0x04,0x75,0x05,0x66,0x83,0x7E,0x4A,0x0A,0xE9,0x00, + 0x00,0x00,0x00,0x0F,0x87,0x93,0x01,0x00,0x00,0x90,0x90,0x90,0x90,0x66, + 0x81,0x7e,0x04,0x4c,0x01, + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size, pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "subsystem_check"); + else ShowError(IDS_MULPAT, "subsystem_check"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "subsystem_check", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + set_pattern(found_loc, after, length); + + SubsysCheck_jmp = found_loc + 12; + _SubsysCheckPerform = decode_jmp(SubsysCheck_jmp, 5); +} + +void Patch::find_resource_check1() +{ + static const short pattern[] = { + 0x6A,0x00,0x8D,0x45,0xE0,0x50,0xFF,0x75,0xA4,0xFF,0x75,0xD0,0x8D,0x45, + 0xCC,0x50,0xFF,0x75,0x08,0xE8,-2,-2,-2,-2,0x85,0xC0 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "resource_check1"); + else ShowError(IDS_MULPAT, "resource_check1"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "resource_check1", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + GetOrdinal_call1 = found_loc + 19; + _GetOrdinal = decode_call(GetOrdinal_call1, 5); +} + +void Patch::find_resource_check2() +{ + static const short pattern[] = { + 0x66,0x8B,0x45,0xE0,0x66,0x2D,0x06,0x80,0x66,0x3D,0x01,0x00,0x1B,0xC0, + 0xF7,0xD8,0x50,0x8D,0x45,0xDE,0x50,0xFF,0x75, -1,0xFF,0x75,0xD0,0x8D, + 0x45,0xCC,0x50,0xFF,0x75,0x08,0xE8, -2, -2, -2, -2,0x85,0xC0 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "resource_check2"); + else ShowError(IDS_MULPAT, "resource_check2"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "resource_check2", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + GetOrdinal_call2 = found_loc + 34; +} + +//no named/rcdata resource types mirroring +void Patch::disable_named_and_rcdata_resources_mirroring() +{ + static const short pattern[] = { + 0x66,0x8B,0x40,0x0E,0x66,0x89,0x45,0xDA,0x8B,0x45, -1,0x66,0x8B,0x48, + 0x0C,0x66,0x89,0x4D,0xD8,0x66,0x8B,0x45,0xE0,0x8B,0x4D,0xD4,0x66,0x89, + 0x01,0x83,0x45,0xD4,0x02,0x66,0x8B,0x45,0xDA,0x66,0x03,0x45,0xD8,0x66, + 0x89,0x45,0x8C,0x8B,0x4D,0xD4,0x66,0x89,0x01,0x83,0x45,0xD4,0x02 + }; + static const short after[] = { + 0x66,0x8B,0x48,0x0E,0x66,0x03,0x48,0x0C,0x66,0x89,0x4D,0x8C,0x8B,0x45, + 0xA4,0x83,0x38,0x0A,0x74,0x40,0x83,0x38,0x00,0x79,0x04,0x3B,0xC0,0xEB, + 0x37,0x66,0x8B,0x45,0xE0,0x8B,0x4D,0xD4,0x66,0x89,0x01,0x83,0xC1,0x02, + 0x66,0x8B,0x45,0x8C,0x66,0x89,0x01,0x83,0xC1,0x02,0x89,0x4D,0xD4 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size, pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "disable_named_and_rcdata_resources_mirroring"); + else ShowError(IDS_MULPAT, "disable_named_and_rcdata_resources_mirroring"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "disable_named_and_rcdata_resources_mirroring", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + set_pattern(found_loc, after, length); +} + +void Patch::mod_imte_alloc() +{ + //VA BFF8745C, RVA 1745C, file 15A5C, sec E45C + static const short pattern[] = { + 0x66,0xff,0x05,-1,-1,-1,0xbf,0x6a,0x3c,0xe8, + }; + static const short after[] = { + 0x66,0xff,0x05,-1,-1,-1,0xbf,0x6a,0x40,0xe8, + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size, pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "mod_imte_alloc"); + else ShowError(IDS_MULPAT, "mod_imte_alloc"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_imte_alloc", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + set_pattern(found_loc, after, length); +} + +void Patch::mod_mr_alloc() +{ + static const short pattern[] = { + 0x75,0xF6,0x8D,0x04,-1,0x1C,0x00,0x00,0x00,0x50 + }; + static const short after[] = { + 0x75,0xF6,0x8D,0x04,-1,0x24,0x00,0x00,0x00,0x50 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size, pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "mod_mr_alloc"); + else ShowError(IDS_MULPAT, "mod_mr_alloc"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_mr_alloc", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + set_pattern(found_loc, after, length); +} + +void Patch::mod_pdb_alloc() +{ + static const short pattern[] = { + 0x53,0x56,0x57,0x6A,0x06,0x68,0xC4,0x00,0x00,0x00,0xE8 + }; + static const short after[] = { + 0x53,0x56,0x57,0x6A,0x06,0x68,0xC8,0x00,0x00,0x00,0xE8 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size, pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "mod_pdb_alloc"); + else ShowError(IDS_MULPAT, "mod_pdb_alloc"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_pdb_alloc", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + set_pattern(found_loc, after, length); +} + +void Patch::find_ExportFromX() +{ + static const short pattern[] = { + 0x8B,0x0D,-1,-1,-1,-1,0x0F,0xBF,0x40,0x10,0x8B,0x14,0x81,0x8B,0x44, + 0x24,0x14,0x3D,0x00,0x00,0x01,0x00,0x8B,0x4A,0x04,0x73,0x15,-1,0x1D, + -1,-1,-1,-1,0x75,0x04,0x6A,0x32,0xEB,0x3E,0x50,0x51,0xE8,-2,-2,-2,-2, + 0xEB,0x0C,0xFF,0x74,0x24,0x14,0x6A,0x00,0x51,0xE8,-2,-2,-2,-2,0x83, + 0x7F,0x54,0x00,0x8B,0xF0 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "exportfromX"); + else ShowError(IDS_MULPAT, "exportfromX"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "exportfromX", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + gpa_ExportFromOrdinal_call = found_loc + 0x29; + gpa_ExportFromName_call = found_loc + 0x37; + _ExportFromOrdinal = decode_call(gpa_ExportFromOrdinal_call, 5); + _ExportFromName = decode_call(gpa_ExportFromName_call, 5); + DWORD start = (DWORD) pefile.RvaToPointer(_ExportFromName); + for (DWORD a = start ; a < start + 0x100 ; a++) + if (is_call_ref(a, _ExportFromOrdinal)) + EFN_EFO_call = a; +} + +void Patch::find_IsKnownDLL() +{ + static const short pattern[] = { + 0xFF,0x75,0xFC,0x8D,0x8D,0xF0,0xFE,0xFF,0xFF,0x51,0xE8,-2,-2,-2,-2, + 0x85,0xC0,0x75,0x1E,0x8D,0x85,0xE8,0xFD,0xFF,0xFF, + 0x8D,0x8D,0xF0,0xFE,0xFF,0xFF,0x50,0x51 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "IsKnownDLL"); + else ShowError(IDS_MULPAT, "IsKnownDLL"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "IsKnownDLL", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + IsKnownDLL_call = found_loc + 10; + _IsKnownDLL = decode_call(IsKnownDLL_call, 5); +} + +void Patch::find_FLoadTreeNotify1() +{ + static const short pattern[] = { + 0x56,0xA1,-1,-1,-1,-1,0x6A,0x01,0x8B,0x08,0xFF,0xB1,0x98,0x00,0x00, + 0x00,0xE8,-2,-2,-2,-2,0x83,0xF8,0x01,0x1B,0xF6,0xF7,0xDE + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "FLoadTreeNotify1"); + else ShowError(IDS_MULPAT, "FLoadTreeNotify1"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "FLoadTreeNotify1", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + FLoadTreeNotify_call1 = found_loc + 16; + _FLoadTreeNotify = decode_call(FLoadTreeNotify_call1, 5); +} + +void Patch::find_FLoadTreeNotify2() +{ + static const short pattern[] = { + 0x6A,0x00,0x57,0xE8,-1,-1,-1,-1,0x6A,0x00,0x56,0xE8,-2,-2,-2,-2, + 0x85,0xC0,0x74,0x12,0x56,0xE8,-1,-1,-1,-1,0x68,0x5A,0x04,0x00,0x00, + 0x33,0xF6,0xE8,-1,-1,-1,-1 + }; + + DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); + int size = pefile.GetSectionSize(CODE_SEG); + int length = sizeof(pattern) / sizeof(short); + DWORD found_loc; + int found = find_pattern(offset, size,pattern, length, &found_loc); + if (found != 1) + { + if (!found) ShowError(IDS_NOPAT, "FLoadTreeNotify2"); + else ShowError(IDS_MULPAT, "FLoadTreeNotify2"); + } + DBGPRINTF(("%s: pattern found @ 0x%08x\n", "FLoadTreeNotify2", + pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); + FLoadTreeNotify_call2 = found_loc + 11; +} + +DWORD Patch::decode_call(DWORD addr, int len) +{ + unsigned char* code = (unsigned char*)addr; + + /* CALL rel32 */ + if (code[0] == 0xe8) + { + if (len && len == 5 || !len) + return (DWORD)(pefile.PointerToRva(code) + 5 + *(INT32*)(code + 1)); + } + /* CALL imm32 */ + else if (code[0] == 0xff && code[1] == 0x15) + { + if (len && len == 6 || !len) + return *(DWORD*)(code + 2); + } + /* unmatched */ + return 0; +} + +DWORD Patch::decode_jmp(DWORD addr, int len) +{ + unsigned char* code = (unsigned char*)addr; + + /* JMP rel8 */ + if (code[0] == 0xeb) + { + if (len && len == 2 || !len) + return (DWORD)(pefile.PointerToRva(code) + 2 + *(INT8*)(code + 1)); + } + /* JMP rel32 */ + else if (code[0] == 0xe9) + { + if (len && len == 5 || !len) + return (DWORD)(pefile.PointerToRva(code) + 5 + *(INT32*)(code + 1)); + } + /* JMP imm32 */ + else if (code[0] == 0xff && code[1] == 0x25) + { + if (len && len == 6 || !len) + return *(DWORD*)(code + 2); + } + /* Jxx rel8 */ + else if (code[0] >= 0x70 && code[0] < 0x7f || code[0] == 0xe3) + { + if (len && len == 2 || !len) + return (DWORD)(pefile.PointerToRva(code) + 2 + *(INT8*)(code + 1)); + } + /* Jxx rel32 */ + else if (code[0] == 0x0f && code[1] >= 0x80 && code[1] <= 0x8f) + { + if (len && len == 6 || !len) + return (DWORD)(pefile.PointerToRva(code) + 6 + *(INT32*)(code + 2)); + } + /* unmatched */ + return 0; +} + +bool Patch::is_call_ref(DWORD loc, DWORD target) +{ + DWORD addr = decode_call(loc, 5); // size of call imm32 opcode + if (addr == target) + return true; + return false; +} + +// Both addresses have to be from the same section! +void Patch::set_call_ref(DWORD loc, DWORD target) +{ + DWORD rel; + + assert(*(BYTE*) loc == 0xe8); + + rel = target - (loc + 5); + *(DWORD*)(loc + 1) = rel; +} + +// Both addresses have to be from the same section! +void Patch::set_jmp_ref(DWORD loc, DWORD target) +{ + DWORD rel; + unsigned char* code = (unsigned char*)loc; + + if (code[0] == 0xe9) + { + rel = target - (loc + 5); + *(DWORD*)(loc + 1) = rel; + } + else if (code[0] == 0x0f && code[1] >= 0x80 && code[1] <= 0x8f) + { + rel = target - (loc + 6); + *(DWORD*)(loc + 2) = rel; + } + else assert(false); +} + +bool Patch::is_fixupc(DWORD addr) +{ + if (*(DWORD*)(addr - 5) == 0xDAC) + return true; + return false; +} + diff --git a/setup/patch.h b/setup/patch.h new file mode 100755 index 0000000..0fd3b64 --- /dev/null +++ b/setup/patch.h @@ -0,0 +1,72 @@ +/* + * KernelEx + * Copyright (C) 2010, Xeno86 + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef __PATCH_H +#define __PATCH_H + +class PEmanip; + +class Patch +{ +public: + Patch(PEmanip& pem); + void apply(); + +private: + int find_pattern(DWORD offset, int size, const short* pattern, int pat_len, DWORD* found_loc); + void set_pattern(DWORD loc, const short* new_pattern, int pat_len); + void prepare_subsystem_check(); + void find_resource_check1(); + void find_resource_check2(); + void disable_named_and_rcdata_resources_mirroring(); + void mod_imte_alloc(); + void mod_mr_alloc(); + void mod_pdb_alloc(); + void find_ExportFromX(); + void find_IsKnownDLL(); + void find_FLoadTreeNotify1(); + void find_FLoadTreeNotify2(); + DWORD decode_call(DWORD addr, int len = 0); + DWORD decode_jmp(DWORD addr, int len = 0); + bool is_call_ref(DWORD loc, DWORD target); + void set_call_ref(DWORD loc, DWORD target); + void set_jmp_ref(DWORD loc, DWORD target); + bool is_fixupc(DWORD addr); + + PEmanip& pefile; + DWORD _GetOrdinal; + DWORD _ExportFromOrdinal; + DWORD _ExportFromName; + DWORD _IsKnownDLL; + DWORD _FLoadTreeNotify; + DWORD _SubsysCheckPerform; + DWORD GetOrdinal_call1; + DWORD GetOrdinal_call2; + DWORD gpa_ExportFromOrdinal_call; + DWORD gpa_ExportFromName_call; + DWORD EFN_EFO_call; + DWORD IsKnownDLL_call; + DWORD FLoadTreeNotify_call1; + DWORD FLoadTreeNotify_call2; + DWORD SubsysCheck_jmp; +}; + +#endif diff --git a/setup/resource.h b/setup/resource.h index 861e6a9..1f4f369 100755 --- a/setup/resource.h +++ b/setup/resource.h @@ -12,6 +12,7 @@ #define IDS_FAILOPENBACKUP 8 #define IDS_WINVER 9 #define IDS_DOWNGRADE 10 +#define IDS_REBOOT 11 // Next default values for new objects // diff --git a/setup/setup.cpp b/setup/setup.cpp index 0af94a4..7e37f03 100755 --- a/setup/setup.cpp +++ b/setup/setup.cpp @@ -21,22 +21,37 @@ #include #include -#include #include #include #include "debug.h" -#include "pemanip.h" #include "loadstub.h" +#include "pemanip.h" #include "setup.h" #include "wininit.h" #include "version.h" #include "resource.h" +#include "patch.h" -#define CODE_SEG ".text" #define DATA_SEG ".data" -#define INIT_SEG "_INIT" +void ShowError(UINT id, ...) +{ + char format[512]; + char out[512]; + va_list vargs; + + va_start(vargs, id); + if (!LoadString(GetModuleHandle(NULL), id, format, sizeof(format))) + sprintf(out, "ERROR: Missing string resource %d", id); + else + _vsnprintf(out, sizeof(out), format, vargs); + va_end(vargs); + DBGPRINTF(("%s\n", out)); + MessageBox(NULL, out, "KernelEx Setup", MB_OK | MB_ICONERROR); + exit(id); +} + Setup::Setup(char* _backup_file) : backup_file(strupr(_backup_file)) { h_kernel32 = GetModuleHandle("KERNEL32"); @@ -44,10 +59,6 @@ Setup::Setup(char* _backup_file) : backup_file(strupr(_backup_file)) detect_old_version(); detect_downgrade(); - pemem.OpenMemory(h_kernel32); - if (!pemem.HasTarget()) - ShowError(IDS_FAILOPEN, "KERNEL32 memory image"); - version = get_signature_ver(); OSVERSIONINFOA osv; @@ -111,52 +122,17 @@ void Setup::detect_downgrade() ShowError(IDS_DOWNGRADE); } -int Setup::find_pattern(DWORD offset, int size, const short* pattern, - int pat_len, DWORD* found_loc) -{ - DWORD end_offset = offset + size - pat_len; - int found = 0; - - for (DWORD i = offset ; i <= end_offset ; i++) - { - if (pattern[0] < 0 || *(unsigned char*)i == pattern[0]) - { - int j; - for (j = 1 ; j < pat_len ; j++) - { - if (pattern[j] >= 0 && *(unsigned char*)(i + j) != pattern[j]) - break; - } - if (j == pat_len) //pattern found - { - *found_loc = i; - found++; - } - } - } - return found; -} - -void Setup::set_pattern(DWORD loc, const short* new_pattern, int pat_len) -{ - unsigned char* offset = (unsigned char*) loc; - const short* pat_ptr = new_pattern; - - while (pat_len--) - { - if (*pat_ptr != -1) - *offset = *pat_ptr & 0xff; - offset++; - pat_ptr++; - } -} - int Setup::get_signature_ver() { DWORD ptr; KernelEx_dataseg* dseg = NULL; DWORD sign_len = sizeof(KEX_SIGNATURE) - 1; + PEmanip pemem; + pemem.OpenMemory(h_kernel32); + if (!pemem.HasTarget()) + ShowError(IDS_FAILOPEN, "KERNEL32 memory image"); + DWORD data = (DWORD) pemem.GetSectionByName(DATA_SEG); int data_size = pemem.GetSectionSize(DATA_SEG); @@ -182,289 +158,6 @@ int Setup::get_signature_ver() return dseg->version; } -void Setup::prepare_subsystem_check() -{ - static const short pattern[] = { - 0x66,0x8b,0x46,0x48,0x66,0x3d,0x04,0x00,0x0f,0x87,0x9c,0x01,0x00,0x00, - 0x75,0x0b,0x66,0x83,0x7e,0x4a,0x0a,0x0f,0x87,0x8f,0x01,0x00,0x00,0x66, - 0x81,0x7e,0x04,0x4c,0x01, - }; - static const short after[] = { - 0x66,0x83,0x7E,0x48,0x04,0x75,0x05,0x66,0x83,0x7E,0x4A,0x0A,0xE9,0x00, - 0x00,0x00,0x00,0x0F,0x87,0x93,0x01,0x00,0x00,0x90,0x90,0x90,0x90,0x66, - 0x81,0x7e,0x04,0x4c,0x01, - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size, pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "subsystem_check"); - else ShowError(IDS_MULPAT, "subsystem_check"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "subsystem_check", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - set_pattern(found_loc, after, length); - - SubsysCheck_jmp = found_loc + 12; - _SubsysCheckPerform = decode_jmp(SubsysCheck_jmp, 5); -} - -void Setup::find_resource_check1() -{ - static const short pattern[] = { - 0x6A,0x00,0x8D,0x45,0xE0,0x50,0xFF,0x75,0xA4,0xFF,0x75,0xD0,0x8D,0x45, - 0xCC,0x50,0xFF,0x75,0x08,0xE8,-2,-2,-2,-2,0x85,0xC0 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "resource_check1"); - else ShowError(IDS_MULPAT, "resource_check1"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "resource_check1", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - GetOrdinal_call1 = found_loc + 19; - _GetOrdinal = decode_call(GetOrdinal_call1, 5); -} - -void Setup::find_resource_check2() -{ - static const short pattern[] = { - 0x66,0x8B,0x45,0xE0,0x66,0x2D,0x06,0x80,0x66,0x3D,0x01,0x00,0x1B,0xC0, - 0xF7,0xD8,0x50,0x8D,0x45,0xDE,0x50,0xFF,0x75, -1,0xFF,0x75,0xD0,0x8D, - 0x45,0xCC,0x50,0xFF,0x75,0x08,0xE8, -2, -2, -2, -2,0x85,0xC0 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "resource_check2"); - else ShowError(IDS_MULPAT, "resource_check2"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "resource_check2", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - GetOrdinal_call2 = found_loc + 34; -} - -//no named/rcdata resource types mirroring -void Setup::disable_named_and_rcdata_resources_mirroring() -{ - static const short pattern[] = { - 0x66,0x8B,0x40,0x0E,0x66,0x89,0x45,0xDA,0x8B,0x45, -1,0x66,0x8B,0x48, - 0x0C,0x66,0x89,0x4D,0xD8,0x66,0x8B,0x45,0xE0,0x8B,0x4D,0xD4,0x66,0x89, - 0x01,0x83,0x45,0xD4,0x02,0x66,0x8B,0x45,0xDA,0x66,0x03,0x45,0xD8,0x66, - 0x89,0x45,0x8C,0x8B,0x4D,0xD4,0x66,0x89,0x01,0x83,0x45,0xD4,0x02 - }; - static const short after[] = { - 0x66,0x8B,0x48,0x0E,0x66,0x03,0x48,0x0C,0x66,0x89,0x4D,0x8C,0x8B,0x45, - 0xA4,0x83,0x38,0x0A,0x74,0x40,0x83,0x38,0x00,0x79,0x04,0x3B,0xC0,0xEB, - 0x37,0x66,0x8B,0x45,0xE0,0x8B,0x4D,0xD4,0x66,0x89,0x01,0x83,0xC1,0x02, - 0x66,0x8B,0x45,0x8C,0x66,0x89,0x01,0x83,0xC1,0x02,0x89,0x4D,0xD4 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size, pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "disable_named_and_rcdata_resources_mirroring"); - else ShowError(IDS_MULPAT, "disable_named_and_rcdata_resources_mirroring"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "disable_named_and_rcdata_resources_mirroring", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - set_pattern(found_loc, after, length); -} - -void Setup::mod_imte_alloc() -{ - //VA BFF8745C, RVA 1745C, file 15A5C, sec E45C - static const short pattern[] = { - 0x66,0xff,0x05,-1,-1,-1,0xbf,0x6a,0x3c,0xe8, - }; - static const short after[] = { - 0x66,0xff,0x05,-1,-1,-1,0xbf,0x6a,0x40,0xe8, - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size, pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "mod_imte_alloc"); - else ShowError(IDS_MULPAT, "mod_imte_alloc"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_imte_alloc", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - set_pattern(found_loc, after, length); -} - -void Setup::mod_mr_alloc() -{ - static const short pattern[] = { - 0x75,0xF6,0x8D,0x04,-1,0x1C,0x00,0x00,0x00,0x50 - }; - static const short after[] = { - 0x75,0xF6,0x8D,0x04,-1,0x24,0x00,0x00,0x00,0x50 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size, pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "mod_mr_alloc"); - else ShowError(IDS_MULPAT, "mod_mr_alloc"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_mr_alloc", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - set_pattern(found_loc, after, length); -} - -void Setup::mod_pdb_alloc() -{ - static const short pattern[] = { - 0x53,0x56,0x57,0x6A,0x06,0x68,0xC4,0x00,0x00,0x00,0xE8 - }; - static const short after[] = { - 0x53,0x56,0x57,0x6A,0x06,0x68,0xC8,0x00,0x00,0x00,0xE8 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size, pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "mod_pdb_alloc"); - else ShowError(IDS_MULPAT, "mod_pdb_alloc"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "mod_pdb_alloc", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - set_pattern(found_loc, after, length); -} - -void Setup::find_ExportFromX() -{ - static const short pattern[] = { - 0x8B,0x0D,-1,-1,-1,-1,0x0F,0xBF,0x40,0x10,0x8B,0x14,0x81,0x8B,0x44, - 0x24,0x14,0x3D,0x00,0x00,0x01,0x00,0x8B,0x4A,0x04,0x73,0x15,-1,0x1D, - -1,-1,-1,-1,0x75,0x04,0x6A,0x32,0xEB,0x3E,0x50,0x51,0xE8,-2,-2,-2,-2, - 0xEB,0x0C,0xFF,0x74,0x24,0x14,0x6A,0x00,0x51,0xE8,-2,-2,-2,-2,0x83, - 0x7F,0x54,0x00,0x8B,0xF0 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "exportfromX"); - else ShowError(IDS_MULPAT, "exportfromX"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "exportfromX", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - gpa_ExportFromOrdinal_call = found_loc + 0x29; - gpa_ExportFromName_call = found_loc + 0x37; - _ExportFromOrdinal = decode_call(gpa_ExportFromOrdinal_call, 5); - _ExportFromName = decode_call(gpa_ExportFromName_call, 5); - DWORD start = (DWORD) pefile.RvaToPointer(_ExportFromName); - for (DWORD a = start ; a < start + 0x100 ; a++) - if (is_call_ref(a, _ExportFromOrdinal)) - EFN_EFO_call = a; -} - -void Setup::find_IsKnownDLL() -{ - static const short pattern[] = { - 0xFF,0x75,0xFC,0x8D,0x8D,0xF0,0xFE,0xFF,0xFF,0x51,0xE8,-2,-2,-2,-2, - 0x85,0xC0,0x75,0x1E,0x8D,0x85,0xE8,0xFD,0xFF,0xFF, - 0x8D,0x8D,0xF0,0xFE,0xFF,0xFF,0x50,0x51 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "IsKnownDLL"); - else ShowError(IDS_MULPAT, "IsKnownDLL"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "IsKnownDLL", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - IsKnownDLL_call = found_loc + 10; - _IsKnownDLL = decode_call(IsKnownDLL_call, 5); -} - -void Setup::find_FLoadTreeNotify1() -{ - static const short pattern[] = { - 0x56,0xA1,-1,-1,-1,-1,0x6A,0x01,0x8B,0x08,0xFF,0xB1,0x98,0x00,0x00, - 0x00,0xE8,-2,-2,-2,-2,0x83,0xF8,0x01,0x1B,0xF6,0xF7,0xDE - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "FLoadTreeNotify1"); - else ShowError(IDS_MULPAT, "FLoadTreeNotify1"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "FLoadTreeNotify1", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - FLoadTreeNotify_call1 = found_loc + 16; - _FLoadTreeNotify = decode_call(FLoadTreeNotify_call1, 5); -} - -void Setup::find_FLoadTreeNotify2() -{ - static const short pattern[] = { - 0x6A,0x00,0x57,0xE8,-1,-1,-1,-1,0x6A,0x00,0x56,0xE8,-2,-2,-2,-2, - 0x85,0xC0,0x74,0x12,0x56,0xE8,-1,-1,-1,-1,0x68,0x5A,0x04,0x00,0x00, - 0x33,0xF6,0xE8,-1,-1,-1,-1 - }; - - DWORD offset = (DWORD) pefile.GetSectionByName(CODE_SEG); - int size = pefile.GetSectionSize(CODE_SEG); - int length = sizeof(pattern) / sizeof(short); - DWORD found_loc; - int found = find_pattern(offset, size,pattern, length, &found_loc); - if (found != 1) - { - if (!found) ShowError(IDS_NOPAT, "FLoadTreeNotify2"); - else ShowError(IDS_MULPAT, "FLoadTreeNotify2"); - } - DBGPRINTF(("%s: pattern found @ 0x%08x\n", "FLoadTreeNotify2", - pefile.PointerToRva((void*) found_loc) + pefile.GetImageBase())); - FLoadTreeNotify_call2 = found_loc + 11; -} - void Setup::kill_process(const char* name) { PROCESSENTRY32 pe32; @@ -499,109 +192,6 @@ void Setup::kill_process(const char* name) CloseHandle(h); } -DWORD Setup::decode_call(DWORD addr, int len) -{ - unsigned char* code = (unsigned char*)addr; - - /* CALL rel32 */ - if (code[0] == 0xe8) - { - if (len && len == 5 || !len) - return (DWORD)(pefile.PointerToRva(code) + 5 + *(INT32*)(code + 1)); - } - /* CALL imm32 */ - else if (code[0] == 0xff && code[1] == 0x15) - { - if (len && len == 6 || !len) - return *(DWORD*)(code + 2); - } - /* unmatched */ - return 0; -} - -DWORD Setup::decode_jmp(DWORD addr, int len) -{ - unsigned char* code = (unsigned char*)addr; - - /* JMP rel8 */ - if (code[0] == 0xeb) - { - if (len && len == 2 || !len) - return (DWORD)(pefile.PointerToRva(code) + 2 + *(INT8*)(code + 1)); - } - /* JMP rel32 */ - else if (code[0] == 0xe9) - { - if (len && len == 5 || !len) - return (DWORD)(pefile.PointerToRva(code) + 5 + *(INT32*)(code + 1)); - } - /* JMP imm32 */ - else if (code[0] == 0xff && code[1] == 0x25) - { - if (len && len == 6 || !len) - return *(DWORD*)(code + 2); - } - /* Jxx rel8 */ - else if (code[0] >= 0x70 && code[0] < 0x7f || code[0] == 0xe3) - { - if (len && len == 2 || !len) - return (DWORD)(pefile.PointerToRva(code) + 2 + *(INT8*)(code + 1)); - } - /* Jxx rel32 */ - else if (code[0] == 0x0f && code[1] >= 0x80 && code[1] <= 0x8f) - { - if (len && len == 6 || !len) - return (DWORD)(pefile.PointerToRva(code) + 6 + *(INT32*)(code + 2)); - } - /* unmatched */ - return 0; -} - -bool Setup::is_call_ref(DWORD loc, DWORD target) -{ - DWORD addr = decode_call(loc, 5); // size of call imm32 opcode - if (addr == target) - return true; - return false; -} - -// Both addresses have to be from the same section! -void Setup::set_call_ref(DWORD loc, DWORD target) -{ - DWORD rel; - - assert(*(BYTE*) loc == 0xe8); - - rel = target - (loc + 5); - *(DWORD*)(loc + 1) = rel; -} - -// Both addresses have to be from the same section! -void Setup::set_jmp_ref(DWORD loc, DWORD target) -{ - DWORD rel; - unsigned char* code = (unsigned char*)loc; - - if (code[0] == 0xe9) - { - rel = target - (loc + 5); - *(DWORD*)(loc + 1) = rel; - } - else if (code[0] == 0x0f && code[1] >= 0x80 && code[1] <= 0x8f) - { - rel = target - (loc + 6); - *(DWORD*)(loc + 2) = rel; - } - else assert(false); -} - -bool Setup::is_fixupc(DWORD addr) -{ - if (*(DWORD*)(addr - 5) == 0xDAC) - return true; - return false; -} - sstring Setup::get_temp_file_name() { char tmpdir[MAX_PATH]; @@ -613,23 +203,6 @@ sstring Setup::get_temp_file_name() return target; } -void Setup::ShowError(UINT id, ...) -{ - char format[512]; - char out[512]; - va_list vargs; - - va_start(vargs, id); - if (!LoadString(GetModuleHandle(NULL), id, format, sizeof(format))) - sprintf(out, "ERROR: Missing string resource %d", id); - else - _vsnprintf(out, sizeof(out), format, vargs); - va_end(vargs); - DBGPRINTF(("%s\n", out)); - MessageBox(NULL, out, "KernelEx Setup", MB_OK | MB_ICONERROR); - exit(id); -} - void Setup::install() { upgrade = false; @@ -650,6 +223,7 @@ void Setup::install() char kernel32path[MAX_PATH]; GetModuleFileName(h_kernel32, kernel32path, sizeof(kernel32path)); + PEmanip pefile; pefile.OpenFile(upgrade ? backup_file : kernel32path, 0x10000); if (!pefile.HasTarget()) { @@ -659,113 +233,8 @@ void Setup::install() ShowError(IDS_FAILOPEN, kernel32path); } - find_ExportFromX(); - find_IsKnownDLL(); - find_FLoadTreeNotify1(); - find_FLoadTreeNotify2(); - prepare_subsystem_check(); - find_resource_check1(); - find_resource_check2(); - disable_named_and_rcdata_resources_mirroring(); - mod_imte_alloc(); - mod_mr_alloc(); - mod_pdb_alloc(); - - KernelEx_codeseg* cseg; - KernelEx_dataseg* dseg; - if (!pefile.AllocSectionSpace(CODE_SEG, - sizeof(KernelEx_codeseg), (void**) &cseg, sizeof(DWORD))) - ShowError(IDS_FAILSEC, CODE_SEG); - if (!pefile.AllocSectionSpace(DATA_SEG, - sizeof(KernelEx_dataseg), (void**) &dseg, sizeof(DWORD))) - ShowError(IDS_FAILSEC, DATA_SEG); - - memcpy(cseg->signature, "KrnlEx", 6); - cseg->version = KEX_STUB_VER; - for (int i = 0 ; i < JTAB_SIZE ; i++) - { - cseg->jmp_stub[i].opcode = 0x25ff; - cseg->jmp_stub[i].addr = (DWORD) - pefile.PointerToRva(&dseg->jtab[i]) + pefile.GetImageBase(); - cseg->jmp_stub[i].nop = 0x9090; - } - - memcpy(dseg->signature, "KrnlEx", 6); - dseg->version = KEX_STUB_VER; - dseg->jtab[JTAB_EFO_DYN] = _ExportFromOrdinal + pefile.GetImageBase(); - dseg->jtab[JTAB_EFO_STA] = _ExportFromOrdinal + pefile.GetImageBase(); - dseg->jtab[JTAB_EFN_DYN] = _ExportFromName + pefile.GetImageBase(); - dseg->jtab[JTAB_EFN_STA] = _ExportFromName + pefile.GetImageBase(); - dseg->jtab[JTAB_KNO_DLL] = _IsKnownDLL + pefile.GetImageBase(); - dseg->jtab[JTAB_FLD_TRN] = _FLoadTreeNotify + pefile.GetImageBase(); - dseg->jtab[JTAB_SYS_CHK] = _SubsysCheckPerform + pefile.GetImageBase(); - dseg->jtab[JTAB_RES_CHK] = _GetOrdinal + pefile.GetImageBase(); - - //exportfromx patch - DWORD code = (DWORD) pefile.GetSectionByName(CODE_SEG); - int code_size = pefile.GetSectionSize(CODE_SEG); - - int efo_cnt = 0; - int efn_cnt = 0; - - for (DWORD a = code ; a < code + code_size ; a++) - { - if (is_call_ref(a, _ExportFromOrdinal)) - { - DWORD file_loc = a; - if (a == EFN_EFO_call) - continue; - if (a == gpa_ExportFromOrdinal_call) - set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFO_DYN]); - else - set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFO_STA]); - DBGPRINTF(("%s: address 0x%08x\n", "EFO", pefile.PointerToRva((void*) a) - + pefile.GetImageBase())); - efo_cnt++; - } - else if (is_call_ref(a, _ExportFromName)) - { - DWORD file_loc = a; - if (is_fixupc(a)) - continue; - if (a == gpa_ExportFromName_call) - set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFN_DYN]); - else - set_call_ref(file_loc, (DWORD) &cseg->jmp_stub[JTAB_EFN_STA]); - DBGPRINTF(("%s: address 0x%08x\n", "EFN", pefile.PointerToRva((void*) a) - + pefile.GetImageBase())); - efn_cnt++; - } - } - - if (efo_cnt != 2 || efn_cnt != 2) - ShowError(IDS_ERRCHECK); - - //isknowndll patch - set_call_ref(IsKnownDLL_call, (DWORD) &cseg->jmp_stub[JTAB_KNO_DLL]); - DBGPRINTF(("%s: address 0x%08x\n", "KNO_DLL", pefile.PointerToRva((void*) IsKnownDLL_call) - + pefile.GetImageBase())); - - //FLoadTreeNotify patch - set_call_ref(FLoadTreeNotify_call1, (DWORD) &cseg->jmp_stub[JTAB_FLD_TRN]); - DBGPRINTF(("%s: address 0x%08x\n", "FLD_TRN1", pefile.PointerToRva((void*) FLoadTreeNotify_call1) - + pefile.GetImageBase())); - set_call_ref(FLoadTreeNotify_call2, (DWORD) &cseg->jmp_stub[JTAB_FLD_TRN]); - DBGPRINTF(("%s: address 0x%08x\n", "FLD_TRN2", pefile.PointerToRva((void*) FLoadTreeNotify_call2) - + pefile.GetImageBase())); - - //subsys check patch - set_jmp_ref(SubsysCheck_jmp, (DWORD) &cseg->jmp_stub[JTAB_SYS_CHK]); - DBGPRINTF(("%s: address 0x%08x\n", "SYS_CHK", pefile.PointerToRva((void*) SubsysCheck_jmp) - + pefile.GetImageBase())); - - //resource check patch - set_call_ref(GetOrdinal_call1, (DWORD) &cseg->jmp_stub[JTAB_RES_CHK]); - DBGPRINTF(("%s: address 0x%08x\n", "RES_CHK1", pefile.PointerToRva((void*) GetOrdinal_call1) - + pefile.GetImageBase())); - set_call_ref(GetOrdinal_call2, (DWORD) &cseg->jmp_stub[JTAB_RES_CHK]); - DBGPRINTF(("%s: address 0x%08x\n", "RES_CHK2", pefile.PointerToRva((void*) GetOrdinal_call2) - + pefile.GetImageBase())); + Patch patch(pefile); + patch.apply(); // backup original file if (!upgrade) @@ -802,14 +271,82 @@ void Setup::install() Wininit.save(); } +void Setup::set_reboot_flag() +{ + HKEY hkey; + if (RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\" + "CurrentVersion\\RunServicesOnce", &hkey) == ERROR_SUCCESS) + { + RegSetValueEx(hkey, "KexNeedsReboot", 0, REG_SZ, (const BYTE*) "", 1); + RegCloseKey(hkey); + } +} + +void Setup::register_verify() +{ + HKEY hkey; + DWORD type; + char verify_path[MAX_PATH]; + DWORD size = sizeof(verify_path); + LONG res; + + res = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\KernelEx", &hkey); + if (res != ERROR_SUCCESS) + return; + res = RegQueryValueEx(hkey, "InstallDir", 0, &type, (BYTE*) verify_path, &size); + RegCloseKey(hkey); + if (res != ERROR_SUCCESS) + return; + + strcat(verify_path, "\\verify.exe"); + + if (RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\" + "CurrentVersion\\Run", &hkey) == ERROR_SUCCESS) + { + RegSetValueEx(hkey, "KexVerify", 0, REG_SZ, (BYTE*) verify_path, + strlen(verify_path) + 1); + RegCloseKey(hkey); + } +} + +void Setup::reboot() +{ + char out[512]; + + if (!LoadString(GetModuleHandle(NULL), IDS_REBOOT, out, sizeof(out))) + sprintf(out, "ERROR: Missing string resource %d", IDS_REBOOT); + + int res = MessageBox(NULL, out, "KernelEx Setup", MB_OKCANCEL | MB_ICONQUESTION); + if (res == IDOK) + { + DBGPRINTF(("Rebooting...\n")); + ExitWindowsEx(EWX_REBOOT, 0); + } +} + int main(int argc, char** argv) { + bool reboot = false; DBGPRINTF(("KernelEx setup program running\n")); - if (argc != 2) + if (argc != 1 && argc != 2) return 1; + if (argc == 2 && !strcmp(argv[1], "/R")) + reboot = true; - Setup setup(argv[1]); + char backup_path[MAX_PATH]; + GetWindowsDirectory(backup_path, MAX_PATH); + if (backup_path[strlen(backup_path)-1] != '\\') + strcat(backup_path, "\\"); + strcat(backup_path, "SYSBCKUP\\KERNEL32.DLL"); + + Setup setup(backup_path); setup.install(); + DBGPRINTF(("Setup finished\n")); + if (reboot) + setup.reboot(); + + setup.set_reboot_flag(); + setup.register_verify(); return 0; } diff --git a/setup/setup.dsp b/setup/setup.dsp index dd0719b..67d462e 100755 --- a/setup/setup.dsp +++ b/setup/setup.dsp @@ -89,6 +89,10 @@ LINK32=link.exe # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File +SOURCE=.\patch.cpp +# End Source File +# Begin Source File + SOURCE=..\common\pemanip.cpp # End Source File # Begin Source File @@ -109,6 +113,10 @@ SOURCE=.\loadstub.h # End Source File # Begin Source File +SOURCE=.\patch.h +# End Source File +# Begin Source File + SOURCE=..\common\pemanip.h # End Source File # Begin Source File diff --git a/setup/setup.h b/setup/setup.h index 758ceb4..6644da5 100755 --- a/setup/setup.h +++ b/setup/setup.h @@ -24,62 +24,29 @@ #include "sstring.hpp" +void ShowError(UINT id, ...); + class Setup { public: Setup(char* _backup_file); int get_signature_ver(); void install(); + void set_reboot_flag(); + void register_verify(); + void reboot(); -protected: private: sstring backup_file; - DWORD _GetOrdinal; - DWORD _ExportFromOrdinal; - DWORD _ExportFromName; - DWORD _IsKnownDLL; - DWORD _FLoadTreeNotify; - DWORD _SubsysCheckPerform; HMODULE h_kernel32; - PEmanip pemem; - PEmanip pefile; - DWORD GetOrdinal_call1; - DWORD GetOrdinal_call2; - DWORD gpa_ExportFromOrdinal_call; - DWORD gpa_ExportFromName_call; - DWORD EFN_EFO_call; - DWORD IsKnownDLL_call; - DWORD FLoadTreeNotify_call1; - DWORD FLoadTreeNotify_call2; - DWORD SubsysCheck_jmp; int version; bool is_winme; bool upgrade; bool detect_old_version(); void detect_downgrade(); - int find_pattern(DWORD offset, int size, const short* pattern, int pat_len, DWORD* found_loc); - void set_pattern(DWORD loc, const short* new_pattern, int pat_len); - void prepare_subsystem_check(); - void find_resource_check1(); - void find_resource_check2(); - void disable_named_and_rcdata_resources_mirroring(); - void mod_imte_alloc(); - void mod_mr_alloc(); - void mod_pdb_alloc(); - void find_ExportFromX(); - void find_IsKnownDLL(); - void find_FLoadTreeNotify1(); - void find_FLoadTreeNotify2(); void kill_process(const char* name); - DWORD decode_call(DWORD addr, int len = 0); - DWORD decode_jmp(DWORD addr, int len = 0); - bool is_call_ref(DWORD loc, DWORD target); - void set_call_ref(DWORD loc, DWORD target); - void set_jmp_ref(DWORD loc, DWORD target); - bool is_fixupc(DWORD addr); sstring get_temp_file_name(); - void ShowError(UINT id, ...); }; #endif diff --git a/setup/setup.rc b/setup/setup.rc index f279be0..dda319f 100755 --- a/setup/setup.rc +++ b/setup/setup.rc @@ -38,6 +38,7 @@ BEGIN IDS_FAILOPENBACKUP "ERROR: Failed to open backup file %s.\nPossible causes: previous version not uninstalled correctly or file has been deleted.\nRestore %s manually from install media." IDS_WINVER "Incompatible Windows version" IDS_DOWNGRADE "Can't downgrade. Please uninstall currently installed version of KernelEx before continuing." + IDS_REBOOT "KernelEx has to restart this computer in order to complete setup.\nDo you wish to do this now?" END #endif // Neutral resources diff --git a/util/prep/prep.cpp b/util/prep/prep.cpp index 421ec68..620ae3a 100755 --- a/util/prep/prep.cpp +++ b/util/prep/prep.cpp @@ -1,6 +1,6 @@ /* * KernelEx - * Copyright (C) 2009, Xeno86 + * Copyright (C) 2009-2010, Xeno86 * * This file is part of KernelEx source code. * @@ -73,17 +73,26 @@ FileFinder::~FileFinder() } void FileFinder::search_for(const string& fn) +{ + search_for(&fn, 1); +} + +void FileFinder::search_for(const string fns[], int num) { WIN32_FIND_DATA find_data; files.clear(); pos = 0; - HANDLE h = FindFirstFile(fn.c_str(), &find_data); - if (h == INVALID_HANDLE_VALUE) - return; - do - files.push_back(find_data.cFileName); - while (FindNextFile(h, &find_data)); - CloseHandle(h); + for (int i = 0 ; i < num ; i++) + { + const string& fn = fns[i]; + HANDLE h = FindFirstFile(fn.c_str(), &find_data); + if (h == INVALID_HANDLE_VALUE) + continue; + do + files.push_back(find_data.cFileName); + while (FindNextFile(h, &find_data)); + FindClose(h); + } stable_sort(files.begin(), files.end()); } @@ -503,7 +512,8 @@ bool is_uptodate_dir(const string& path) FileFinder ff; struct _stat st; - ff.search_for(path + "*.c"); + string patterns[] = { path + "*.c", path + "*.cpp" }; + ff.search_for(patterns, sizeof(patterns)/sizeof(patterns[0])); while (!(file = ff.get_next_file()).empty()) { _stat((path + file).c_str(), &st); @@ -557,7 +567,8 @@ void work() continue; } - ff.search_for(path + "*.c"); + string patterns[] = { path + "*.c", path + "*.cpp" }; + ff.search_for(patterns, sizeof(patterns)/sizeof(patterns[0])); //read declarations while (!(file = ff.get_next_file()).empty()) diff --git a/util/prep/prep.dsp b/util/prep/prep.dsp index 6790182..5416183 100755 --- a/util/prep/prep.dsp +++ b/util/prep/prep.dsp @@ -50,7 +50,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /machine:I386 /OPT:NOWIN98 # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "prep - Win32 Debug" @@ -75,7 +75,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /OPT:NOWIN98 # SUBTRACT LINK32 /pdb:none !ENDIF diff --git a/util/prep/prep.h b/util/prep/prep.h index bcf7d6f..99ecf09 100755 --- a/util/prep/prep.h +++ b/util/prep/prep.h @@ -48,6 +48,7 @@ public: FileFinder(const string& fn); ~FileFinder(); void search_for(const string& fn); + void search_for(const string fns[], int num); string get_next_file(); private: diff --git a/util/sdbcreate/readme.txt b/util/sdbcreate/readme.txt new file mode 100755 index 0000000..df9681e --- /dev/null +++ b/util/sdbcreate/readme.txt @@ -0,0 +1 @@ +This program requires Windows NT 6.0 or higher to function. \ No newline at end of file diff --git a/util/sdbcreate/sdbapi.def b/util/sdbcreate/sdbapi.def new file mode 100755 index 0000000..68880c1 --- /dev/null +++ b/util/sdbcreate/sdbapi.def @@ -0,0 +1,17 @@ +LIBRARY APPHELP.DLL + +EXPORTS + SdbCreateDatabase + SdbDeclareIndex + SdbCloseDatabase + SdbCloseDatabaseWrite + SdbCommitIndexes + SdbStartIndexing + SdbStopIndexing + SdbBeginWriteListTag + SdbEndWriteListTag + SdbWriteBinaryTag + SdbWriteBinaryTagFromFile + SdbWriteStringTag + SdbWriteDWORDTag + SdbGUIDFromString diff --git a/util/sdbcreate/sdbapi.h b/util/sdbcreate/sdbapi.h new file mode 100755 index 0000000..43217db --- /dev/null +++ b/util/sdbcreate/sdbapi.h @@ -0,0 +1,113 @@ +/* + * KernelEx + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef __SDBAPI_H +#define __SDBAPI_H + +#include + +#ifdef SDBAPI_IMPLIB + +#ifdef _MSC_VER +#pragma warning(disable:4716) +#endif +#define MAKE_HEADER(decl) \ + __declspec(dllexport) decl {} + +#else + +#define MAKE_HEADER(decl) \ + __declspec(dllimport) decl ; + +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +//types +typedef PVOID PDB; +typedef DWORD INDEXID; +typedef DWORD TAGID; +typedef DWORD TAG; + +//enums +typedef enum _PATH_TYPE { + DOS_PATH, + NT_PATH +} PATH_TYPE; + +//tags +#define TAG_DWORD 0x4000 +#define TAG_MSI_TRANSFORM_TAGID 0x401B + +#define TAG_STRING 0x6000 +#define TAG_NAME 0x6001 +#define TAG_APP_NAME 0x6006 +#define TAG_MSI_TRANSFORM_FILE 0x601F +#define TAG_COMPILER_VERSION 0x6022 + +#define TAG_LIST 0x7000 +#define TAG_DATABASE 0x7001 +#define TAG_LIBRARY 0x7002 +#define TAG_FILE 0x700C +#define TAG_MSI_TRANSFORM 0x7010 +#define TAG_MSI_TRANSFORM_REF 0x7011 +#define TAG_MSI_PACKAGE 0x7012 + +#define TAG_BINARY 0x9000 +#define TAG_FILE_BITS 0x9003 +#define TAG_EXE_ID 0x9004 +#define TAG_MSI_PACKAGE_ID 0x9006 +#define TAG_DATABASE_ID 0x9007 + + + + +//functions +MAKE_HEADER(PDB WINAPI SdbCreateDatabase(LPCWSTR pwszPath, PATH_TYPE eType)) +MAKE_HEADER(void WINAPI SdbCloseDatabase(PDB pdb)) +MAKE_HEADER(void WINAPI SdbCloseDatabaseWrite(PDB pdb)) +MAKE_HEADER(BOOL WINAPI SdbDeclareIndex(PDB pdb,TAG tWhich,TAG tKey,DWORD dwEntries,BOOL bUniqueKey,INDEXID *piiIndex)) +MAKE_HEADER(BOOL WINAPI SdbCommitIndexes(PDB pdb)) +MAKE_HEADER(BOOL WINAPI SdbStartIndexing(PDB pdb,INDEXID iiWhich)) +MAKE_HEADER(BOOL WINAPI SdbStopIndexing(PDB pdb,INDEXID iiWhich)) +MAKE_HEADER(TAGID WINAPI SdbBeginWriteListTag(PDB pdb,TAG tTag)) +MAKE_HEADER(BOOL WINAPI SdbEndWriteListTag(PDB pdb,TAGID tiList)) +MAKE_HEADER(BOOL WINAPI SdbWriteBinaryTag(PDB pdb,TAG tTag,PBYTE pBuffer,DWORD dwSize)) +MAKE_HEADER(BOOL WINAPI SdbWriteBinaryTagFromFile(PDB pdb,TAG tTag,LPCWSTR pwszPath)) +MAKE_HEADER(BOOL WINAPI SdbWriteStringTag(PDB pdb,TAG tTag,LPCWSTR pwszData)) +MAKE_HEADER(BOOL WINAPI SdbWriteDWORDTag(PDB pdb,TAG tTag,DWORD dwData)) +MAKE_HEADER(BOOL WINAPI SdbGUIDFromString(LPWSTR str, GUID* guid)) +/* +MAKE_HEADER( +MAKE_HEADER( +MAKE_HEADER( +MAKE_HEADER( +MAKE_HEADER( +MAKE_HEADER(*/ + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/util/sdbcreate/sdbcreate.cpp b/util/sdbcreate/sdbcreate.cpp new file mode 100755 index 0000000..173fd92 --- /dev/null +++ b/util/sdbcreate/sdbcreate.cpp @@ -0,0 +1,284 @@ +/* + * KernelEx + * Copyright(C) 2010, Tihiy, Xeno86 + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include +#include +#include +#include +#include "sdbapi.h" +#include "wstring.hpp" + +using namespace std; + +typedef void (*STRPROC) (wchar_t*); + +static int sections; +static PDB pdb; +static wchar_t* sdbfile; +static wchar_t inifile[MAX_PATH]; +static FILE *regfilei; +static FILE *regfileu; +static map tagidmap; + +void fail() +{ + SdbCloseDatabase(pdb); + DeleteFileW(sdbfile); + exit(-1); +} + +void WriteTransform(wchar_t* section) +{ + //query file name + wchar_t filebuf[MAX_PATH]; + wchar_t filepath[MAX_PATH]; + wchar_t name[MAX_PATH]; + + if (!GetPrivateProfileStringW(section, L"Transform", NULL, filebuf, MAX_PATH, inifile)) + { + printf("Section %ls does not specify file!\n", section); + fail(); + } + + //build path to file relative to ini + lstrcpyW(filepath, inifile); + PathRemoveFileSpecW(filepath); + PathAppendW(filepath, filebuf); + + wchar_t* filename = PathFindFileNameW(filepath); + + lstrcpyW(name, filepath); + PathRemoveExtensionW(name); + PathStripPathW(name); + + if (tagidmap.count(name) > 0) + return; //already have it + + printf("Adding %ls...", filepath); + + //write FILE + TAGID filetagid = SdbBeginWriteListTag(pdb, TAG_FILE); + SdbWriteStringTag(pdb, TAG_NAME, filename); + if (SdbWriteBinaryTagFromFile(pdb, TAG_FILE_BITS, filepath)) + printf("Success!\n"); + else + { + printf("Failure!\n"); + fail(); + } + SdbEndWriteListTag(pdb, filetagid); + + //write MSI_TRANSFORM + TAGID transfid = SdbBeginWriteListTag(pdb, TAG_MSI_TRANSFORM); + SdbWriteStringTag(pdb, TAG_NAME, name); + SdbWriteStringTag(pdb, TAG_MSI_TRANSFORM_FILE, filename); + SdbWriteDWORDTag(pdb, TAG_MSI_TRANSFORM_TAGID, filetagid); + SdbEndWriteListTag(pdb, transfid); + + //add transform tagid to name - tagid map + tagidmap[name] = transfid; +} + +void WritePackage(wchar_t* section) +{ + //query file name + wchar_t filebuf[MAX_PATH]; + wchar_t filepath[MAX_PATH]; + wchar_t name[MAX_PATH]; + + GetPrivateProfileStringW(section, L"Transform", NULL, filebuf, MAX_PATH, inifile); + + //build path to file relative to ini + lstrcpyW(filepath, inifile); + PathRemoveFileSpecW(filepath); + PathAppendW(filepath, filebuf); + + wchar_t* filename = PathFindFileNameW(filepath); + + lstrcpyW(name, filepath); + PathRemoveExtensionW(name); + PathStripPathW(name); + + TAGID transfid = tagidmap[name]; + + //query attributes + wchar_t appname[200]; + wchar_t packagecode[100]; + GUID guid; + + GetPrivateProfileStringW(section, L"AppName", section, appname, 200, inifile); + GetPrivateProfileStringW(section, L"ProductCode", NULL, packagecode, 100, inifile); + if (!SdbGUIDFromString(packagecode, &guid)) + { + printf("Section %ls specifies invalid ProductCode!\n", section); + fail(); + } + + printf("Writing section %ls\n", section); + + //write MSI_PACKAGE + TAGID tagid = SdbBeginWriteListTag(pdb, TAG_MSI_PACKAGE); + SdbWriteStringTag(pdb, TAG_NAME, section); + SdbWriteStringTag(pdb, TAG_APP_NAME, appname); + SdbWriteBinaryTag(pdb, TAG_MSI_PACKAGE_ID,(PBYTE) & guid, sizeof(GUID)); + + //write MSI_TRANSFORM_REF + TAGID reftagid = SdbBeginWriteListTag(pdb, TAG_MSI_TRANSFORM_REF); + SdbWriteStringTag(pdb, TAG_NAME, name); + SdbWriteDWORDTag(pdb, TAG_MSI_TRANSFORM_TAGID, transfid); + SdbEndWriteListTag(pdb, reftagid); + SdbEndWriteListTag(pdb, tagid); + + //write registry + if (regfilei) + { + fprintf(regfilei, "[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\" + "CurrentVersion\\AppCompatFlags\\Custom\\%ls]\n", packagecode); + fprintf(regfilei, "\"%ls\"=\"%ls\"\n", PathFindFileNameW(sdbfile), appname); + fprintf(regfilei, "\n"); + } + + if (regfileu) + { + fprintf(regfileu, "[-HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\" + "CurrentVersion\\AppCompatFlags\\Custom\\%ls]\n\n", packagecode); + } +} + +void ForEachSection(STRPROC proc) +{ + wchar_t sections[0x10000] = { 0 }; + wchar_t* strW = sections; + + GetPrivateProfileSectionNamesW(strW, 0x10000, inifile); + for(; *strW; strW += lstrlenW(strW) + 1) + proc(strW); +} + +void CountSection(wchar_t* section) +{ + sections++; +} + +void WriteTransforms() +{ + TAGID tagid = SdbBeginWriteListTag(pdb, TAG_LIBRARY); + ForEachSection(WriteTransform); + SdbEndWriteListTag(pdb, tagid); +} + +void WritePackages() +{ + ForEachSection(WritePackage); +} + +void WriteDatabase() +{ + //count number of sections + sections = 0; + ForEachSection(CountSection); + sections = (sections + 15) & ~15; + + //create indexes + INDEXID idx1; + INDEXID idx2; + INDEXID idx3; + SdbDeclareIndex(pdb, TAG_MSI_TRANSFORM, TAG_NAME, sections, TRUE, &idx1); + SdbDeclareIndex(pdb, TAG_MSI_PACKAGE, TAG_MSI_PACKAGE_ID, sections, FALSE, &idx2); + SdbDeclareIndex(pdb, TAG_MSI_PACKAGE, TAG_EXE_ID, sections, TRUE, &idx3); + SdbCommitIndexes(pdb); + + //enable indexing + SdbStartIndexing(pdb, idx1); + SdbStartIndexing(pdb, idx2); + SdbStartIndexing(pdb, idx3); + + //create database + TAGID tagid = SdbBeginWriteListTag(pdb, TAG_DATABASE); + WriteTransforms(); + WritePackages(); + SdbEndWriteListTag(pdb, tagid); + + //disable indexing + SdbStopIndexing(pdb, idx1); + SdbStopIndexing(pdb, idx2); + SdbStopIndexing(pdb, idx3); +} + +int wmain(int argc, wchar_t* argv[]) +{ + if (argc != 3 && argc != 4) + { + printf("Usage: sdbcreate.exe dbspec.ini out.sdb [out.reg]\n"); + return 1; + } + + //check ini + GetFullPathNameW(argv[1], MAX_PATH, inifile, NULL); + if (GetFileAttributesW(inifile) == INVALID_FILE_ATTRIBUTES) + { + printf("Failed to open %ls!\n", inifile); + return 2; + } + + //create sdb + sdbfile = argv[2]; + printf("Creating %ls...\n", sdbfile); + pdb = SdbCreateDatabase(sdbfile, DOS_PATH); + if (!pdb) + { + printf("Failed to create database!\n"); + return 3; + } + + //create reg + if (argc == 4) + { + wchar_t regpath[MAX_PATH]; + + lstrcpyW(regpath, argv[3]); + PathRemoveExtensionW(regpath); + lstrcatW(regpath, L".i.reg"); + + regfilei = _wfopen(regpath, L"w"); + fprintf(regfilei, "REGEDIT4\n\n"); + + lstrcpyW(regpath, argv[3]); + PathRemoveExtensionW(regpath); + lstrcatW(regpath, L".u.reg"); + + regfileu = _wfopen(regpath, L"w"); + fprintf(regfileu, "REGEDIT4\n\n"); + } + + //write + WriteDatabase(); + + //close + SdbCloseDatabaseWrite(pdb); + if (regfilei) + fclose(regfilei); + if (regfileu) + fclose(regfilei); + + printf("Finished."); + return 0; +} diff --git a/util/sdbcreate/sdbcreate.dsp b/util/sdbcreate/sdbcreate.dsp new file mode 100755 index 0000000..4453f9b --- /dev/null +++ b/util/sdbcreate/sdbcreate.dsp @@ -0,0 +1,159 @@ +# Microsoft Developer Studio Project File - Name="sdbcreate" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=sdbcreate - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "sdbcreate.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "sdbcreate.mak" CFG="sdbcreate - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "sdbcreate - Win32 Release" (based on "Win32 (x86) Console Application") +!MESSAGE "sdbcreate - Win32 Debug" (based on "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "sdbcreate - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /W3 /GX /O2 /FI"../../common/msvc_quirks.h" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c +# ADD BASE RSC /l 0x419 /d "NDEBUG" +# ADD RSC /l 0x419 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 shlwapi.lib kernel32.lib shell32.lib /nologo /subsystem:console /machine:I386 +# Begin Special Build Tool +ProjDir=. +TargetPath=.\Release\sdbcreate.exe +SOURCE="$(InputPath)" +PostBuild_Cmds=$(TargetPath) $(ProjDir)\sdbdb\kexsdb.ini $(ProjDir)\sdbdb\KernelEx.sdb $(ProjDir)\sdbdb\kexsdb.reg +# End Special Build Tool + +!ELSEIF "$(CFG)" == "sdbcreate - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /FI"../../common/msvc_quirks.h" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c +# ADD BASE RSC /l 0x419 /d "_DEBUG" +# ADD RSC /l 0x419 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 shlwapi.lib kernel32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# Begin Special Build Tool +ProjDir=. +TargetPath=.\Debug\sdbcreate.exe +SOURCE="$(InputPath)" +PostBuild_Cmds=$(TargetPath) $(ProjDir)\sdbdb\kexsdb.ini $(ProjDir)\sdbdb\KernelEx.sdb $(ProjDir)\sdbdb\kexsdb.reg +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "sdbcreate - Win32 Release" +# Name "sdbcreate - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\sdbcreate.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\sdbapi.h + +!IF "$(CFG)" == "sdbcreate - Win32 Release" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build +OutDir=.\Release +ProjDir=. +InputPath=.\sdbapi.h + +"$(OutDir)\sdbapi.lib" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl /nologo /c /TC /DSDBAPI_IMPLIB /Fo$(OutDir)\sdbapi.obj "$(ProjDir)\sdbapi.h" + link /DLL /NOENTRY /NOLOGO /IGNORE:4070 /MACHINE:IX86 /DEF:"$(ProjDir)\sdbapi.def" /OUT:$(OutDir)\sdbapi.dll /IMPLIB:$(OutDir)\sdbapi.lib $(OutDir)\sdbapi.obj + del $(OutDir)\sdbapi.exp + del $(OutDir)\sdbapi.obj + del $(OutDir)\sdbapi.dll + +# End Custom Build + +!ELSEIF "$(CFG)" == "sdbcreate - Win32 Debug" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build +OutDir=.\Debug +ProjDir=. +InputPath=.\sdbapi.h + +"$(OutDir)\sdbapi.lib" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl /nologo /c /TC /DSDBAPI_IMPLIB /Fo$(OutDir)\sdbapi.obj "$(ProjDir)\sdbapi.h" + link /DLL /NOENTRY /NOLOGO /IGNORE:4070 /MACHINE:IX86 /DEF:"$(ProjDir)\sdbapi.def" /OUT:$(OutDir)\sdbapi.dll /IMPLIB:$(OutDir)\sdbapi.lib $(OutDir)\sdbapi.obj + del $(OutDir)\sdbapi.exp + del $(OutDir)\sdbapi.obj + del $(OutDir)\sdbapi.dll + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\wstring.hpp +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# End Target +# End Project diff --git a/util/sdbcreate/sdbdb/gearth.mst b/util/sdbcreate/sdbdb/gearth.mst new file mode 100755 index 0000000..96e1cbb Binary files /dev/null and b/util/sdbcreate/sdbdb/gearth.mst differ diff --git a/util/sdbcreate/sdbdb/kexsdb.ini b/util/sdbcreate/sdbdb/kexsdb.ini new file mode 100755 index 0000000..3a5c476 --- /dev/null +++ b/util/sdbcreate/sdbdb/kexsdb.ini @@ -0,0 +1,39 @@ +[office2007conv] +AppName=Office 2007 File Format Converters +ProductCode={90120000-0020-0409-0000-0000000FF1CE} +Transform=o12conv.mst + +[wordview2003] +AppName=Word Viewer 2003 +ProductCode={90850409-6000-11D3-8CFE-0150048383C9} +Transform=office2003.mst + +[xlview2003] +AppName=Excel Viewer 2003 +ProductCode={90840409-6000-11D3-8CFE-0150048383C9} +Transform=office2003.mst + +[office2003pro] +AppName=Office 2003 Professional +ProductCode={90110409-6000-11D3-8CFE-0150048383C9} +Transform=office2003.mst + +[gearth51] +AppName=Google Earth 5.1 +ProductCode={B59EF430-4849-11DF-B1EC-005056806466} +Transform=gearth.mst + +[gearth52] +AppName=Google Earth 5.2 +ProductCode={2EAF7E61-068E-11DF-953C-005056806466} +Transform=gearth.mst + +[gearth6] +AppName=Google Earth 6 beta +ProductCode={6DB7AD00-F781-11DF-9EEF-001279CD8240} +Transform=gearth.mst + +[acroread7] +AppName=Acrobat Reader 7 +ProductCode={AC76BA86-7AD7-1033-7B44-A70900000002} +Transform=reader7.mst diff --git a/util/sdbcreate/sdbdb/o12conv.mst b/util/sdbcreate/sdbdb/o12conv.mst new file mode 100755 index 0000000..fdab4a7 Binary files /dev/null and b/util/sdbcreate/sdbdb/o12conv.mst differ diff --git a/util/sdbcreate/sdbdb/office2003.mst b/util/sdbcreate/sdbdb/office2003.mst new file mode 100755 index 0000000..8a812a3 Binary files /dev/null and b/util/sdbcreate/sdbdb/office2003.mst differ diff --git a/util/sdbcreate/sdbdb/reader7.mst b/util/sdbcreate/sdbdb/reader7.mst new file mode 100755 index 0000000..2413a6b Binary files /dev/null and b/util/sdbcreate/sdbdb/reader7.mst differ diff --git a/util/sdbcreate/wstring.hpp b/util/sdbcreate/wstring.hpp new file mode 100755 index 0000000..a522619 --- /dev/null +++ b/util/sdbcreate/wstring.hpp @@ -0,0 +1,89 @@ +/* + * KernelEx + * Copyright (C) 2009, Xeno86 + * Copyright (C) 2010, Tihiy + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef __WSTRING_HPP +#define __WSTRING_HPP + +#include + +/** Simple string container class. */ +class wstring +{ +public: + wstring(const WCHAR* src) + { + len = lstrlenW(src); + storage = new WCHAR[len + 1]; + lstrcpyW(storage, src); + } + + wstring(const wstring& src) + { + len = src.len; + storage = new WCHAR[len + 1]; + lstrcpyW(storage, src.storage); + } + + ~wstring() + { + delete [] storage; + } + + wstring& operator=(const wstring& src) + { + len = src.len; + delete [] storage; + storage = new WCHAR[len + 1]; + lstrcpyW(storage, src.storage); + return *this; + } + + wstring& operator=(const WCHAR* src) + { + len = lstrlenW(src); + delete [] storage; + storage = new WCHAR[len + 1]; + lstrcpyW(storage, src); + return *this; + } + + bool operator<(const wstring& a) const + { + return lstrcmpiW(storage, a.storage) < 0; + } + + operator const WCHAR*() const + { + return storage; + } + + int length() const + { + return len; + } + +private: + int len; + WCHAR* storage; +}; + +#endif diff --git a/verify/main.c b/verify/main.c new file mode 100755 index 0000000..b9f2b31 --- /dev/null +++ b/verify/main.c @@ -0,0 +1,200 @@ +/* + * KernelEx + * Copyright (C) 2010, Xeno86 + * + * This file is part of KernelEx source code. + * + * KernelEx is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published + * by the Free Software Foundation; version 2 of the License. + * + * KernelEx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#define _WIN32_WINNT 0x0501 +#define _WIN32_IE 0x0500 +#include +#include +#include +#include "resource.h" + +/* Program used to verify KernelEx installation. + * If it annoys you add DWORD value "NoVerify" + * under HKLM\Software\KernelEx and set it to 1. + */ + +HINSTANCE hInstance; +unsigned long core_version; + +typedef unsigned long (*kexVersion_t)(); + +int snprintf(char*, size_t, const char*, ...); + +void install_failure() +{ + char msg[256]; + char title[100]; + + LoadString(hInstance, IDS_FAILURETITLE, title, sizeof(title)); + + LoadString(hInstance, IDS_FAILURE, msg, sizeof(msg)); + MessageBox(NULL, msg, title, MB_OK | MB_ICONERROR); +} + +void erase_from_startup() +{ + HKEY key; + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", + 0, KEY_ALL_ACCESS, &key) != ERROR_SUCCESS) + return; + + RegDeleteValue(key, "KexVerify"); + RegCloseKey(key); +} + +int is_disable_verify() +{ + HKEY key; + DWORD type; + DWORD data; + LONG ret; + DWORD size = sizeof(data); + + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\KernelEx", + 0, KEY_QUERY_VALUE, &key) != ERROR_SUCCESS) + return 0; + + ret = RegQueryValueEx(key, "NoVerify", NULL, &type, (BYTE*) &data, &size); + + RegCloseKey(key); + + if (ret != ERROR_SUCCESS || type != REG_DWORD || size != sizeof(DWORD) || data == 0) + return 0; + return 1; +} + +int test_core() +{ + HMODULE h = GetModuleHandle("KERNELEX.DLL"); + kexVersion_t getver = (kexVersion_t)GetProcAddress(h, "kexGetKEXVersion"); + + if (!getver) + return 0; + + core_version = getver(); + return 1; +} + +int test_apis() +{ + HMODULE h = GetModuleHandle("KERNEL32.DLL"); + PROC proc = GetProcAddress(h, "GetSystemWindowsDirectoryA"); + if (!proc) + return 0; + + h = LoadLibrary("GDI32.DLL"); + proc = GetProcAddress(h, "GetGlyphIndicesW"); + FreeLibrary(h); + + if (!proc) + return 0; + + return 1; +} + +BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_INITDIALOG: + { + char ver_s[32]; + snprintf(ver_s, sizeof(ver_s), "v%d.%d.%d", + core_version>>24, (core_version>>16) & 0xff, core_version & 0xffff); + SendMessage(GetDlgItem(hwnd, IDC_VERSION), WM_SETTEXT, 0, (LPARAM) ver_s); + return TRUE; + } + case WM_COMMAND: + case WM_CLOSE: + EndDialog(hwnd, 0); + return TRUE; + case WM_NOTIFY: + switch (((LPNMHDR)lParam)->code) + { + case NM_CLICK: + case NM_RETURN: + { + PNMLINK pNMLink = (PNMLINK)lParam; + LITEM item = pNMLink->item; + if (((LPNMHDR)lParam)->idFrom == IDC_LINK) + { + ShellExecuteW(NULL, L"open", item.szUrl, NULL, NULL, SW_SHOW); + return TRUE; + } + break; + } + } + break; + } + return FALSE; +} + +int are_extensions_enabled() +{ + HKEY key; + DWORD type, data, size = sizeof(data); + LONG res; + res = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\KernelEx", &key); + if (res != ERROR_SUCCESS) + return 1; + res = RegQueryValueEx(key, "DisableExtensions", NULL, &type, (char*)&data, &size); + if (res == ERROR_SUCCESS && type == REG_DWORD && size == sizeof(data) && data == 1) + return 0; + RegCloseKey(key); + return 1; +} + +__declspec(noreturn) +void entrypoint() +{ + INITCOMMONCONTROLSEX iccex; + + hInstance = GetModuleHandle(NULL); + + erase_from_startup(); + + if (!is_disable_verify()) + { + int okay = 0; + + if (test_core() && test_apis()) + { + iccex.dwSize = sizeof(iccex); + iccex.dwICC = ICC_LINK_CLASS; + if (InitCommonControlsEx(&iccex)) + { + int dialog; + if (are_extensions_enabled()) + dialog = IDD_DIALOG1; + else + dialog = IDD_DIALOG2; + if (!DialogBoxParam(hInstance, MAKEINTRESOURCE(dialog), NULL, DlgProc, 0)) + okay = 1; + } + } + + if (!okay) + install_failure(); + } + + + ExitProcess(0); +} diff --git a/verify/main.cpp b/verify/main.cpp deleted file mode 100755 index 7a21714..0000000 --- a/verify/main.cpp +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include "resource.h" - -/* Program used to verify KernelEx installation. - * If it annoys you add DWORD value "NoVerify" - * under HKLM\Software\KernelEx and set it to 1. - */ - -HINSTANCE hInstance; - -void install_success() -{ - char msg[256]; - char title[100]; - - LoadString(hInstance, IDS_TITLE, title, sizeof(title)); - - LoadString(hInstance, IDS_SUCCESS, msg, sizeof(msg)); - MessageBox(NULL, msg, title, MB_OK | MB_ICONINFORMATION); -} - -void install_failure() -{ - char msg[256]; - char title[100]; - - LoadString(hInstance, IDS_TITLE, title, sizeof(title)); - - LoadString(hInstance, IDS_FAILURE, msg, sizeof(msg)); - MessageBox(NULL, msg, title, MB_OK | MB_ICONERROR); -} - -void erase_from_startup() -{ - HKEY key; - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", - 0, KEY_ALL_ACCESS, &key) != ERROR_SUCCESS) - return; - - RegDeleteValue(key, "KexVerify"); - RegCloseKey(key); -} - -bool is_disable_verify() -{ - HKEY key; - if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\KernelEx", - 0, KEY_QUERY_VALUE, &key) != ERROR_SUCCESS) - return false; - - DWORD type; - DWORD data; - DWORD size = sizeof(data); - LONG ret = RegQueryValueEx(key, "NoVerify", NULL, &type, (BYTE*) &data, &size); - - RegCloseKey(key); - - if (ret != ERROR_SUCCESS || type != REG_DWORD || size != sizeof(DWORD) || data == 0) - return false; - return true; -} - -bool test_core() -{ - HMODULE h = LoadLibrary("KERNELEX.DLL"); - PROC proc = GetProcAddress(h, "kexGetKEXVersion"); - FreeLibrary(h); - - if (!proc) - return false; - - return true; -} - -bool test_apis() -{ - HMODULE h = GetModuleHandle("KERNEL32.DLL"); - PROC proc = GetProcAddress(h, "GetSystemWindowsDirectoryA"); - if (!proc) - return false; - - h = LoadLibrary("GDI32.DLL"); - proc = GetProcAddress(h, "GetGlyphIndicesW"); - FreeLibrary(h); - - if (!proc) - return false; - - return true; -} - -__declspec(noreturn) -void entrypoint() -{ - hInstance = GetModuleHandle(NULL); - - erase_from_startup(); - - if (!is_disable_verify()) - { - if (test_core() && test_apis()) - install_success(); - else - install_failure(); - } - - ExitProcess(0); -} diff --git a/verify/resource.h b/verify/resource.h index c34c3a6..904e379 100755 --- a/verify/resource.h +++ b/verify/resource.h @@ -2,17 +2,21 @@ // Microsoft Developer Studio generated include file. // Used by verify.rc // -#define IDS_SUCCESS 1 -#define IDS_FAILURE 2 -#define IDS_TITLE 3 +#define IDS_FAILURE 1 +#define IDS_FAILURETITLE 2 +#define IDD_DIALOG1 101 +#define IDD_DIALOG2 102 +#define IDC_CHECK1 1000 +#define IDC_LINK 1001 +#define IDC_VERSION 1003 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_RESOURCE_VALUE 104 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_CONTROL_VALUE 1004 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/verify/verify.dsp b/verify/verify.dsp index 76c4ee4..4be3025 100755 --- a/verify/verify.dsp +++ b/verify/verify.dsp @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib advapi32.lib libc.lib /nologo /entry:"entrypoint" /subsystem:windows /machine:I386 /nodefaultlib /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib advapi32.lib comctl32.lib shell32.lib ..\kexcrt\kexcrt.lib libc.lib /nologo /entry:"entrypoint" /subsystem:windows /machine:I386 /nodefaultlib /OPT:NOWIN98 # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "verify - Win32 Debug" @@ -80,7 +80,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib advapi32.lib libc.lib /nologo /entry:"entrypoint" /subsystem:windows /debug /machine:I386 /nodefaultlib /pdbtype:sept /OPT:NOWIN98 +# ADD LINK32 kernel32.lib user32.lib advapi32.lib comctl32.lib shell32.lib ..\kexcrt\kexcrt.lib libc.lib /nologo /entry:"entrypoint" /subsystem:windows /debug /machine:I386 /nodefaultlib /pdbtype:sept /OPT:NOWIN98 # SUBTRACT LINK32 /pdb:none !ENDIF @@ -94,20 +94,24 @@ LINK32=link.exe # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # Begin Source File -SOURCE=.\main.cpp -# End Source File -# Begin Source File - -SOURCE=.\verify.rc +SOURCE=.\main.c # End Source File # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\resource.h +# End Source File # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\verify.rc +# End Source File # End Group # End Target # End Project diff --git a/verify/verify.rc b/verify/verify.rc index ed6f396..c85b732 100755 --- a/verify/verify.rc +++ b/verify/verify.rc @@ -21,6 +21,67 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(1250) #endif //_WIN32 +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 296, 78 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "KernelEx" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,122,57,50,14 + ICON 32516,IDC_STATIC,7,7,20,20 + LTEXT "KernelEx has been successfully installed and is now enabled for all applications.\nTo make newer applications run or fix old applications crash, you may need to go to the KernelEx tab in the properties of application executable or its shortcut.", + IDC_STATIC,36,7,253,34 + CONTROL "To learn more about KernelEx, pay a visit to KernelEx Wiki", + IDC_LINK,"SysLink",WS_TABSTOP,36,39,253,10 + RTEXT "VERSIONSTR",IDC_VERSION,224,62,65,9,WS_DISABLED +END + +IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 296, 78 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "KernelEx" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "OK",IDOK,122,57,50,14 + ICON 32516,IDC_STATIC,7,7,20,20 + LTEXT "KernelEx has been successfully installed but is disabled by default and only enabled for some applications. To enable KernelEx for newer applications, go to the KernelEx tab in the properties of application executable or its shortcut.", + IDC_STATIC,36,7,253,34 + CONTROL "To learn more about KernelEx, pay a visit to KernelEx Wiki", + IDC_LINK,"SysLink",WS_TABSTOP,36,39,253,10 + RTEXT "VERSIONSTR",IDC_VERSION,224,62,65,9,WS_DISABLED +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + IDD_DIALOG1, DIALOG + BEGIN + LEFTMARGIN, 36 + RIGHTMARGIN, 289 + TOPMARGIN, 7 + BOTTOMMARGIN, 71 + END + + IDD_DIALOG2, DIALOG + BEGIN + LEFTMARGIN, 36 + RIGHTMARGIN, 289 + TOPMARGIN, 7 + BOTTOMMARGIN, 71 + END +END +#endif // APSTUDIO_INVOKED + + ///////////////////////////////////////////////////////////////////////////// // // String Table @@ -28,9 +89,8 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL STRINGTABLE DISCARDABLE BEGIN - IDS_SUCCESS "KernelEx installed successfully and functional." IDS_FAILURE "KernelEx has not been properly installed." - IDS_TITLE "KernelEx installation verify" + IDS_FAILURETITLE "KernelEx installation error" END #endif // Neutral resources @@ -40,7 +100,7 @@ END ///////////////////////////////////////////////////////////////////////////// // Polish resources -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_POL) +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PLK) #ifdef _WIN32 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT #pragma code_page(1250)