sdl2-compat: updated sdl3_include_wrapper.h (e5cb1)

From e5cb146d2d4a7a4fb6cd775491df79917f7671c3 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 2 Mar 2023 23:33:32 +0300
Subject: [PATCH] updated sdl3_include_wrapper.h

---
 src/sdl3_include_wrapper.h | 4875 ++++++++++++++++++------------------
 1 file changed, 2436 insertions(+), 2439 deletions(-)

diff --git a/src/sdl3_include_wrapper.h b/src/sdl3_include_wrapper.h
index 1b8b59b..e826384 100644
--- a/src/sdl3_include_wrapper.h
+++ b/src/sdl3_include_wrapper.h
@@ -28,844 +28,843 @@
 #ifndef INCL_SDL3_INCLUDE_WRAPPER_H
 #define INCL_SDL3_INCLUDE_WRAPPER_H
 
-#define SDL_Init IGNORE_THIS_VERSION_OF_SDL_Init
-#define SDL_InitSubSystem IGNORE_THIS_VERSION_OF_SDL_InitSubSystem
-#define SDL_QuitSubSystem IGNORE_THIS_VERSION_OF_SDL_QuitSubSystem
-#define SDL_WasInit IGNORE_THIS_VERSION_OF_SDL_WasInit
-#define SDL_Quit IGNORE_THIS_VERSION_OF_SDL_Quit
-#define SDL_GetNumAudioDrivers IGNORE_THIS_VERSION_OF_SDL_GetNumAudioDrivers
-#define SDL_GetAudioDriver IGNORE_THIS_VERSION_OF_SDL_GetAudioDriver
-#define SDL_GetCurrentAudioDriver IGNORE_THIS_VERSION_OF_SDL_GetCurrentAudioDriver
-#define SDL_GetNumAudioDevices IGNORE_THIS_VERSION_OF_SDL_GetNumAudioDevices
-#define SDL_GetAudioDeviceName IGNORE_THIS_VERSION_OF_SDL_GetAudioDeviceName
-#define SDL_GetAudioDeviceSpec IGNORE_THIS_VERSION_OF_SDL_GetAudioDeviceSpec
-#define SDL_GetDefaultAudioInfo IGNORE_THIS_VERSION_OF_SDL_GetDefaultAudioInfo
-#define SDL_OpenAudioDevice IGNORE_THIS_VERSION_OF_SDL_OpenAudioDevice
-#define SDL_GetAudioDeviceStatus IGNORE_THIS_VERSION_OF_SDL_GetAudioDeviceStatus
-#define SDL_PauseAudioDevice IGNORE_THIS_VERSION_OF_SDL_PauseAudioDevice
-#define SDL_LoadWAV_RW IGNORE_THIS_VERSION_OF_SDL_LoadWAV_RW
-#define SDL_CreateAudioStream IGNORE_THIS_VERSION_OF_SDL_CreateAudioStream
-#define SDL_PutAudioStreamData IGNORE_THIS_VERSION_OF_SDL_PutAudioStreamData
-#define SDL_GetAudioStreamAvailable IGNORE_THIS_VERSION_OF_SDL_GetAudioStreamAvailable
-#define SDL_FlushAudioStream IGNORE_THIS_VERSION_OF_SDL_FlushAudioStream
-#define SDL_ClearAudioStream IGNORE_THIS_VERSION_OF_SDL_ClearAudioStream
-#define SDL_DestroyAudioStream IGNORE_THIS_VERSION_OF_SDL_DestroyAudioStream
-#define SDL_GetAudioStreamData IGNORE_THIS_VERSION_OF_SDL_GetAudioStreamData
-#define SDL_MixAudioFormat IGNORE_THIS_VERSION_OF_SDL_MixAudioFormat
-#define SDL_QueueAudio IGNORE_THIS_VERSION_OF_SDL_QueueAudio
-#define SDL_DequeueAudio IGNORE_THIS_VERSION_OF_SDL_DequeueAudio
-#define SDL_GetQueuedAudioSize IGNORE_THIS_VERSION_OF_SDL_GetQueuedAudioSize
-#define SDL_ClearQueuedAudio IGNORE_THIS_VERSION_OF_SDL_ClearQueuedAudio
-#define SDL_LockAudioDevice IGNORE_THIS_VERSION_OF_SDL_LockAudioDevice
-#define SDL_UnlockAudioDevice IGNORE_THIS_VERSION_OF_SDL_UnlockAudioDevice
-#define SDL_CloseAudioDevice IGNORE_THIS_VERSION_OF_SDL_CloseAudioDevice
-#define SDL_PlayAudioDevice IGNORE_THIS_VERSION_OF_SDL_PlayAudioDevice
-#define SDL_ConvertAudioSamples IGNORE_THIS_VERSION_OF_SDL_ConvertAudioSamples
-#define SDL_hid_init IGNORE_THIS_VERSION_OF_SDL_hid_init
-#define SDL_hid_exit IGNORE_THIS_VERSION_OF_SDL_hid_exit
-#define SDL_hid_device_change_count IGNORE_THIS_VERSION_OF_SDL_hid_device_change_count
-#define SDL_hid_enumerate IGNORE_THIS_VERSION_OF_SDL_hid_enumerate
-#define SDL_hid_free_enumeration IGNORE_THIS_VERSION_OF_SDL_hid_free_enumeration
-#define SDL_hid_open IGNORE_THIS_VERSION_OF_SDL_hid_open
-#define SDL_hid_open_path IGNORE_THIS_VERSION_OF_SDL_hid_open_path
-#define SDL_hid_write IGNORE_THIS_VERSION_OF_SDL_hid_write
-#define SDL_hid_read_timeout IGNORE_THIS_VERSION_OF_SDL_hid_read_timeout
-#define SDL_hid_read IGNORE_THIS_VERSION_OF_SDL_hid_read
-#define SDL_hid_set_nonblocking IGNORE_THIS_VERSION_OF_SDL_hid_set_nonblocking
-#define SDL_hid_send_feature_report IGNORE_THIS_VERSION_OF_SDL_hid_send_feature_report
-#define SDL_hid_get_feature_report IGNORE_THIS_VERSION_OF_SDL_hid_get_feature_report
-#define SDL_hid_close IGNORE_THIS_VERSION_OF_SDL_hid_close
-#define SDL_hid_get_manufacturer_string IGNORE_THIS_VERSION_OF_SDL_hid_get_manufacturer_string
-#define SDL_hid_get_product_string IGNORE_THIS_VERSION_OF_SDL_hid_get_product_string
-#define SDL_hid_get_serial_number_string IGNORE_THIS_VERSION_OF_SDL_hid_get_serial_number_string
-#define SDL_hid_get_indexed_string IGNORE_THIS_VERSION_OF_SDL_hid_get_indexed_string
-#define SDL_hid_ble_scan IGNORE_THIS_VERSION_OF_SDL_hid_ble_scan
-#define SDL_GetNumTouchDevices IGNORE_THIS_VERSION_OF_SDL_GetNumTouchDevices
-#define SDL_GetTouchDevice IGNORE_THIS_VERSION_OF_SDL_GetTouchDevice
-#define SDL_GetTouchName IGNORE_THIS_VERSION_OF_SDL_GetTouchName
-#define SDL_GetTouchDeviceType IGNORE_THIS_VERSION_OF_SDL_GetTouchDeviceType
-#define SDL_GetNumTouchFingers IGNORE_THIS_VERSION_OF_SDL_GetNumTouchFingers
-#define SDL_GetTouchFinger IGNORE_THIS_VERSION_OF_SDL_GetTouchFinger
-#define SDL_GetSensors IGNORE_THIS_VERSION_OF_SDL_GetSensors
-#define SDL_GetSensorInstanceName IGNORE_THIS_VERSION_OF_SDL_GetSensorInstanceName
-#define SDL_GetSensorInstanceType IGNORE_THIS_VERSION_OF_SDL_GetSensorInstanceType
-#define SDL_GetSensorInstanceNonPortableType IGNORE_THIS_VERSION_OF_SDL_GetSensorInstanceNonPortableType
-#define SDL_OpenSensor IGNORE_THIS_VERSION_OF_SDL_OpenSensor
-#define SDL_GetSensorFromInstanceID IGNORE_THIS_VERSION_OF_SDL_GetSensorFromInstanceID
-#define SDL_GetSensorName IGNORE_THIS_VERSION_OF_SDL_GetSensorName
-#define SDL_GetSensorType IGNORE_THIS_VERSION_OF_SDL_GetSensorType
-#define SDL_GetSensorNonPortableType IGNORE_THIS_VERSION_OF_SDL_GetSensorNonPortableType
-#define SDL_GetSensorInstanceID IGNORE_THIS_VERSION_OF_SDL_GetSensorInstanceID
-#define SDL_GetSensorData IGNORE_THIS_VERSION_OF_SDL_GetSensorData
-#define SDL_CloseSensor IGNORE_THIS_VERSION_OF_SDL_CloseSensor
-#define SDL_UpdateSensors IGNORE_THIS_VERSION_OF_SDL_UpdateSensors
-#define SDL_AddGamepadMapping IGNORE_THIS_VERSION_OF_SDL_AddGamepadMapping
-#define SDL_AddGamepadMappingsFromRW IGNORE_THIS_VERSION_OF_SDL_AddGamepadMappingsFromRW
-#define SDL_GetNumGamepadMappings IGNORE_THIS_VERSION_OF_SDL_GetNumGamepadMappings
-#define SDL_GetGamepadMappingForIndex IGNORE_THIS_VERSION_OF_SDL_GetGamepadMappingForIndex
-#define SDL_GetGamepadMappingForGUID IGNORE_THIS_VERSION_OF_SDL_GetGamepadMappingForGUID
-#define SDL_GetGamepadMapping IGNORE_THIS_VERSION_OF_SDL_GetGamepadMapping
-#define SDL_GetGamepads IGNORE_THIS_VERSION_OF_SDL_GetGamepads
-#define SDL_IsGamepad IGNORE_THIS_VERSION_OF_SDL_IsGamepad
-#define SDL_GetGamepadInstanceName IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceName
-#define SDL_GetGamepadInstancePath IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstancePath
-#define SDL_GetGamepadInstancePlayerIndex IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstancePlayerIndex
-#define SDL_GetGamepadInstanceGUID IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceGUID
-#define SDL_GetGamepadInstanceVendor IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceVendor
-#define SDL_GetGamepadInstanceProduct IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceProduct
-#define SDL_GetGamepadInstanceProductVersion IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceProductVersion
-#define SDL_GetGamepadInstanceType IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceType
-#define SDL_GetGamepadInstanceMapping IGNORE_THIS_VERSION_OF_SDL_GetGamepadInstanceMapping
-#define SDL_OpenGamepad IGNORE_THIS_VERSION_OF_SDL_OpenGamepad
-#define SDL_GetGamepadFromInstanceID IGNORE_THIS_VERSION_OF_SDL_GetGamepadFromInstanceID
-#define SDL_GetGamepadFromPlayerIndex IGNORE_THIS_VERSION_OF_SDL_GetGamepadFromPlayerIndex
-#define SDL_GetGamepadName IGNORE_THIS_VERSION_OF_SDL_GetGamepadName
-#define SDL_GetGamepadPath IGNORE_THIS_VERSION_OF_SDL_GetGamepadPath
-#define SDL_GetGamepadType IGNORE_THIS_VERSION_OF_SDL_GetGamepadType
-#define SDL_GetGamepadPlayerIndex IGNORE_THIS_VERSION_OF_SDL_GetGamepadPlayerIndex
-#define SDL_SetGamepadPlayerIndex IGNORE_THIS_VERSION_OF_SDL_SetGamepadPlayerIndex
-#define SDL_GetGamepadVendor IGNORE_THIS_VERSION_OF_SDL_GetGamepadVendor
-#define SDL_GetGamepadProduct IGNORE_THIS_VERSION_OF_SDL_GetGamepadProduct
-#define SDL_GetGamepadProductVersion IGNORE_THIS_VERSION_OF_SDL_GetGamepadProductVersion
-#define SDL_GetGamepadFirmwareVersion IGNORE_THIS_VERSION_OF_SDL_GetGamepadFirmwareVersion
-#define SDL_GetGamepadSerial IGNORE_THIS_VERSION_OF_SDL_GetGamepadSerial
-#define SDL_GamepadConnected IGNORE_THIS_VERSION_OF_SDL_GamepadConnected
-#define SDL_GetGamepadJoystick IGNORE_THIS_VERSION_OF_SDL_GetGamepadJoystick
-#define SDL_SetGamepadEventsEnabled IGNORE_THIS_VERSION_OF_SDL_SetGamepadEventsEnabled
-#define SDL_GamepadEventsEnabled IGNORE_THIS_VERSION_OF_SDL_GamepadEventsEnabled
-#define SDL_UpdateGamepads IGNORE_THIS_VERSION_OF_SDL_UpdateGamepads
-#define SDL_GetGamepadAxisFromString IGNORE_THIS_VERSION_OF_SDL_GetGamepadAxisFromString
-#define SDL_GetGamepadStringForAxis IGNORE_THIS_VERSION_OF_SDL_GetGamepadStringForAxis
-#define SDL_GetGamepadBindForAxis IGNORE_THIS_VERSION_OF_SDL_GetGamepadBindForAxis
-#define SDL_GamepadHasAxis IGNORE_THIS_VERSION_OF_SDL_GamepadHasAxis
-#define SDL_GetGamepadAxis IGNORE_THIS_VERSION_OF_SDL_GetGamepadAxis
-#define SDL_GetGamepadButtonFromString IGNORE_THIS_VERSION_OF_SDL_GetGamepadButtonFromString
-#define SDL_GetGamepadStringForButton IGNORE_THIS_VERSION_OF_SDL_GetGamepadStringForButton
-#define SDL_GetGamepadBindForButton IGNORE_THIS_VERSION_OF_SDL_GetGamepadBindForButton
-#define SDL_GamepadHasButton IGNORE_THIS_VERSION_OF_SDL_GamepadHasButton
-#define SDL_GetGamepadButton IGNORE_THIS_VERSION_OF_SDL_GetGamepadButton
-#define SDL_GetNumGamepadTouchpads IGNORE_THIS_VERSION_OF_SDL_GetNumGamepadTouchpads
-#define SDL_GetNumGamepadTouchpadFingers IGNORE_THIS_VERSION_OF_SDL_GetNumGamepadTouchpadFingers
-#define SDL_GetGamepadTouchpadFinger IGNORE_THIS_VERSION_OF_SDL_GetGamepadTouchpadFinger
-#define SDL_GamepadHasSensor IGNORE_THIS_VERSION_OF_SDL_GamepadHasSensor
-#define SDL_SetGamepadSensorEnabled IGNORE_THIS_VERSION_OF_SDL_SetGamepadSensorEnabled
-#define SDL_GamepadSensorEnabled IGNORE_THIS_VERSION_OF_SDL_GamepadSensorEnabled
-#define SDL_GetGamepadSensorDataRate IGNORE_THIS_VERSION_OF_SDL_GetGamepadSensorDataRate
-#define SDL_GetGamepadSensorData IGNORE_THIS_VERSION_OF_SDL_GetGamepadSensorData
-#define SDL_RumbleGamepad IGNORE_THIS_VERSION_OF_SDL_RumbleGamepad
-#define SDL_RumbleGamepadTriggers IGNORE_THIS_VERSION_OF_SDL_RumbleGamepadTriggers
-#define SDL_GamepadHasLED IGNORE_THIS_VERSION_OF_SDL_GamepadHasLED
-#define SDL_GamepadHasRumble IGNORE_THIS_VERSION_OF_SDL_GamepadHasRumble
-#define SDL_GamepadHasRumbleTriggers IGNORE_THIS_VERSION_OF_SDL_GamepadHasRumbleTriggers
-#define SDL_SetGamepadLED IGNORE_THIS_VERSION_OF_SDL_SetGamepadLED
-#define SDL_SendGamepadEffect IGNORE_THIS_VERSION_OF_SDL_SendGamepadEffect
-#define SDL_CloseGamepad IGNORE_THIS_VERSION_OF_SDL_CloseGamepad
-#define SDL_GetGamepadAppleSFSymbolsNameForButton IGNORE_THIS_VERSION_OF_SDL_GetGamepadAppleSFSymbolsNameForButton
-#define SDL_GetGamepadAppleSFSymbolsNameForAxis IGNORE_THIS_VERSION_OF_SDL_GetGamepadAppleSFSymbolsNameForAxis
-#define SDL_GUIDToString IGNORE_THIS_VERSION_OF_SDL_GUIDToString
-#define SDL_GUIDFromString IGNORE_THIS_VERSION_OF_SDL_GUIDFromString
-#define SDL_ReportAssertion IGNORE_THIS_VERSION_OF_SDL_ReportAssertion
-#define SDL_SetAssertionHandler IGNORE_THIS_VERSION_OF_SDL_SetAssertionHandler
-#define SDL_GetDefaultAssertionHandler IGNORE_THIS_VERSION_OF_SDL_GetDefaultAssertionHandler
-#define SDL_GetAssertionHandler IGNORE_THIS_VERSION_OF_SDL_GetAssertionHandler
-#define SDL_GetAssertionReport IGNORE_THIS_VERSION_OF_SDL_GetAssertionReport
-#define SDL_ResetAssertionReport IGNORE_THIS_VERSION_OF_SDL_ResetAssertionReport
-#define SDL_Metal_CreateView IGNORE_THIS_VERSION_OF_SDL_Metal_CreateView
-#define SDL_Metal_DestroyView IGNORE_THIS_VERSION_OF_SDL_Metal_DestroyView
-#define SDL_Metal_GetLayer IGNORE_THIS_VERSION_OF_SDL_Metal_GetLayer
-#define SDL_CreateMutex IGNORE_THIS_VERSION_OF_SDL_CreateMutex
-#define SDL_LockMutex IGNORE_THIS_VERSION_OF_SDL_LockMutex
-#define SDL_TryLockMutex IGNORE_THIS_VERSION_OF_SDL_TryLockMutex
-#define SDL_UnlockMutex IGNORE_THIS_VERSION_OF_SDL_UnlockMutex
-#define SDL_DestroyMutex IGNORE_THIS_VERSION_OF_SDL_DestroyMutex
-#define SDL_CreateSemaphore IGNORE_THIS_VERSION_OF_SDL_CreateSemaphore
-#define SDL_DestroySemaphore IGNORE_THIS_VERSION_OF_SDL_DestroySemaphore
-#define SDL_SemWait IGNORE_THIS_VERSION_OF_SDL_SemWait
-#define SDL_SemTryWait IGNORE_THIS_VERSION_OF_SDL_SemTryWait
-#define SDL_SemWaitTimeout IGNORE_THIS_VERSION_OF_SDL_SemWaitTimeout
-#define SDL_SemPost IGNORE_THIS_VERSION_OF_SDL_SemPost
-#define SDL_SemValue IGNORE_THIS_VERSION_OF_SDL_SemValue
-#define SDL_CreateCond IGNORE_THIS_VERSION_OF_SDL_CreateCond
-#define SDL_DestroyCond IGNORE_THIS_VERSION_OF_SDL_DestroyCond
-#define SDL_CondSignal IGNORE_THIS_VERSION_OF_SDL_CondSignal
-#define SDL_CondBroadcast IGNORE_THIS_VERSION_OF_SDL_CondBroadcast
-#define SDL_CondWait IGNORE_THIS_VERSION_OF_SDL_CondWait
-#define SDL_CondWaitTimeout IGNORE_THIS_VERSION_OF_SDL_CondWaitTimeout
-#define SDL_PumpEvents IGNORE_THIS_VERSION_OF_SDL_PumpEvents
-#define SDL_PeepEvents IGNORE_THIS_VERSION_OF_SDL_PeepEvents
-#define SDL_HasEvent IGNORE_THIS_VERSION_OF_SDL_HasEvent
-#define SDL_HasEvents IGNORE_THIS_VERSION_OF_SDL_HasEvents
-#define SDL_FlushEvent IGNORE_THIS_VERSION_OF_SDL_FlushEvent
-#define SDL_FlushEvents IGNORE_THIS_VERSION_OF_SDL_FlushEvents
-#define SDL_PollEvent IGNORE_THIS_VERSION_OF_SDL_PollEvent
-#define SDL_WaitEvent IGNORE_THIS_VERSION_OF_SDL_WaitEvent
-#define SDL_WaitEventTimeout IGNORE_THIS_VERSION_OF_SDL_WaitEventTimeout
-#define SDL_PushEvent IGNORE_THIS_VERSION_OF_SDL_PushEvent
-#define SDL_SetEventFilter IGNORE_THIS_VERSION_OF_SDL_SetEventFilter
-#define SDL_GetEventFilter IGNORE_THIS_VERSION_OF_SDL_GetEventFilter
-#define SDL_AddEventWatch IGNORE_THIS_VERSION_OF_SDL_AddEventWatch
-#define SDL_DelEventWatch IGNORE_THIS_VERSION_OF_SDL_DelEventWatch
-#define SDL_FilterEvents IGNORE_THIS_VERSION_OF_SDL_FilterEvents
-#define SDL_SetEventEnabled IGNORE_THIS_VERSION_OF_SDL_SetEventEnabled
-#define SDL_EventEnabled IGNORE_THIS_VERSION_OF_SDL_EventEnabled
-#define SDL_RegisterEvents IGNORE_THIS_VERSION_OF_SDL_RegisterEvents
-#define SDL_ShowMessageBox IGNORE_THIS_VERSION_OF_SDL_ShowMessageBox
-#define SDL_ShowSimpleMessageBox IGNORE_THIS_VERSION_OF_SDL_ShowSimpleMessageBox
+#define SDL_Log IGNORE_THIS_VERSION_OF_SDL_Log
+#define SDL_LogCritical IGNORE_THIS_VERSION_OF_SDL_LogCritical
+#define SDL_LogDebug IGNORE_THIS_VERSION_OF_SDL_LogDebug
+#define SDL_LogError IGNORE_THIS_VERSION_OF_SDL_LogError
+#define SDL_LogInfo IGNORE_THIS_VERSION_OF_SDL_LogInfo
+#define SDL_LogMessage IGNORE_THIS_VERSION_OF_SDL_LogMessage
+#define SDL_LogVerbose IGNORE_THIS_VERSION_OF_SDL_LogVerbose
+#define SDL_LogWarn IGNORE_THIS_VERSION_OF_SDL_LogWarn
+#define SDL_SetError IGNORE_THIS_VERSION_OF_SDL_SetError
+#define SDL_asprintf IGNORE_THIS_VERSION_OF_SDL_asprintf
+#define SDL_snprintf IGNORE_THIS_VERSION_OF_SDL_snprintf
+#define SDL_sscanf IGNORE_THIS_VERSION_OF_SDL_sscanf
+#define SDL_CreateThread IGNORE_THIS_VERSION_OF_SDL_CreateThread
+#define SDL_CreateThreadWithStackSize IGNORE_THIS_VERSION_OF_SDL_CreateThreadWithStackSize
+#define SDL_RegisterApp IGNORE_THIS_VERSION_OF_SDL_RegisterApp
+#define SDL_RenderGetD3D12Device IGNORE_THIS_VERSION_OF_SDL_RenderGetD3D12Device
 #define SDL_SetWindowsMessageHook IGNORE_THIS_VERSION_OF_SDL_SetWindowsMessageHook
+#define SDL_UnregisterApp IGNORE_THIS_VERSION_OF_SDL_UnregisterApp
+#define SDL_DXGIGetOutputInfo IGNORE_THIS_VERSION_OF_SDL_DXGIGetOutputInfo
 #define SDL_Direct3D9GetAdapterIndex IGNORE_THIS_VERSION_OF_SDL_Direct3D9GetAdapterIndex
-#define SDL_GetRenderD3D9Device IGNORE_THIS_VERSION_OF_SDL_GetRenderD3D9Device
 #define SDL_GetRenderD3D11Device IGNORE_THIS_VERSION_OF_SDL_GetRenderD3D11Device
-#define SDL_RenderGetD3D12Device IGNORE_THIS_VERSION_OF_SDL_RenderGetD3D12Device
-#define SDL_DXGIGetOutputInfo IGNORE_THIS_VERSION_OF_SDL_DXGIGetOutputInfo
+#define SDL_GetRenderD3D9Device IGNORE_THIS_VERSION_OF_SDL_GetRenderD3D9Device
+#define SDL_GDKGetTaskQueue IGNORE_THIS_VERSION_OF_SDL_GDKGetTaskQueue
+#define SDL_GDKSuspendComplete IGNORE_THIS_VERSION_OF_SDL_GDKSuspendComplete
+#define SDL_WinRTGetDeviceFamily IGNORE_THIS_VERSION_OF_SDL_WinRTGetDeviceFamily
+#define SDL_WinRTGetFSPathUNICODE IGNORE_THIS_VERSION_OF_SDL_WinRTGetFSPathUNICODE
+#define SDL_WinRTGetFSPathUTF8 IGNORE_THIS_VERSION_OF_SDL_WinRTGetFSPathUTF8
 #define SDL_LinuxSetThreadPriority IGNORE_THIS_VERSION_OF_SDL_LinuxSetThreadPriority
 #define SDL_LinuxSetThreadPriorityAndPolicy IGNORE_THIS_VERSION_OF_SDL_LinuxSetThreadPriorityAndPolicy
+#define SDL_OnApplicationDidChangeStatusBarOrientation IGNORE_THIS_VERSION_OF_SDL_OnApplicationDidChangeStatusBarOrientation
 #define SDL_iPhoneSetAnimationCallback IGNORE_THIS_VERSION_OF_SDL_iPhoneSetAnimationCallback
 #define SDL_iPhoneSetEventPump IGNORE_THIS_VERSION_OF_SDL_iPhoneSetEventPump
-#define SDL_AndroidGetJNIEnv IGNORE_THIS_VERSION_OF_SDL_AndroidGetJNIEnv
+#define SDL_AndroidBackButton IGNORE_THIS_VERSION_OF_SDL_AndroidBackButton
 #define SDL_AndroidGetActivity IGNORE_THIS_VERSION_OF_SDL_AndroidGetActivity
+#define SDL_AndroidGetExternalStoragePath IGNORE_THIS_VERSION_OF_SDL_AndroidGetExternalStoragePath
+#define SDL_AndroidGetExternalStorageState IGNORE_THIS_VERSION_OF_SDL_AndroidGetExternalStorageState
+#define SDL_AndroidGetInternalStoragePath IGNORE_THIS_VERSION_OF_SDL_AndroidGetInternalStoragePath
+#define SDL_AndroidGetJNIEnv IGNORE_THIS_VERSION_OF_SDL_AndroidGetJNIEnv
+#define SDL_AndroidRequestPermission IGNORE_THIS_VERSION_OF_SDL_AndroidRequestPermission
+#define SDL_AndroidSendMessage IGNORE_THIS_VERSION_OF_SDL_AndroidSendMessage
+#define SDL_AndroidShowToast IGNORE_THIS_VERSION_OF_SDL_AndroidShowToast
 #define SDL_GetAndroidSDKVersion IGNORE_THIS_VERSION_OF_SDL_GetAndroidSDKVersion
 #define SDL_IsAndroidTV IGNORE_THIS_VERSION_OF_SDL_IsAndroidTV
 #define SDL_IsChromebook IGNORE_THIS_VERSION_OF_SDL_IsChromebook
 #define SDL_IsDeXMode IGNORE_THIS_VERSION_OF_SDL_IsDeXMode
-#define SDL_AndroidBackButton IGNORE_THIS_VERSION_OF_SDL_AndroidBackButton
-#define SDL_AndroidGetInternalStoragePath IGNORE_THIS_VERSION_OF_SDL_AndroidGetInternalStoragePath
-#define SDL_AndroidGetExternalStorageState IGNORE_THIS_VERSION_OF_SDL_AndroidGetExternalStorageState
-#define SDL_AndroidGetExternalStoragePath IGNORE_THIS_VERSION_OF_SDL_AndroidGetExternalStoragePath
-#define SDL_AndroidRequestPermission IGNORE_THIS_VERSION_OF_SDL_AndroidRequestPermission
-#define SDL_AndroidShowToast IGNORE_THIS_VERSION_OF_SDL_AndroidShowToast
-#define SDL_AndroidSendMessage IGNORE_THIS_VERSION_OF_SDL_AndroidSendMessage
-#define SDL_WinRTGetFSPathUNICODE IGNORE_THIS_VERSION_OF_SDL_WinRTGetFSPathUNICODE
-#define SDL_WinRTGetFSPathUTF8 IGNORE_THIS_VERSION_OF_SDL_WinRTGetFSPathUTF8
-#define SDL_WinRTGetDeviceFamily IGNORE_THIS_VERSION_OF_SDL_WinRTGetDeviceFamily
-#define SDL_IsTablet IGNORE_THIS_VERSION_OF_SDL_IsTablet
-#define SDL_OnApplicationWillTerminate IGNORE_THIS_VERSION_OF_SDL_OnApplicationWillTerminate
-#define SDL_OnApplicationDidReceiveMemoryWarning IGNORE_THIS_VERSION_OF_SDL_OnApplicationDidReceiveMemoryWarning
-#define SDL_OnApplicationWillResignActive IGNORE_THIS_VERSION_OF_SDL_OnApplicationWillResignActive
-#define SDL_OnApplicationDidEnterBackground IGNORE_THIS_VERSION_OF_SDL_OnApplicationDidEnterBackground
-#define SDL_OnApplicationWillEnterForeground IGNORE_THIS_VERSION_OF_SDL_OnApplicationWillEnterForeground
-#define SDL_OnApplicationDidBecomeActive IGNORE_THIS_VERSION_OF_SDL_OnApplicationDidBecomeActive
-#define SDL_OnApplicationDidChangeStatusBarOrientation IGNORE_THIS_VERSION_OF_SDL_OnApplicationDidChangeStatusBarOrientation
-#define SDL_GDKGetTaskQueue IGNORE_THIS_VERSION_OF_SDL_GDKGetTaskQueue
-#define SDL_CreateSurface IGNORE_THIS_VERSION_OF_SDL_CreateSurface
-#define SDL_CreateSurfaceFrom IGNORE_THIS_VERSION_OF_SDL_CreateSurfaceFrom
-#define SDL_DestroySurface IGNORE_THIS_VERSION_OF_SDL_DestroySurface
-#define SDL_SetSurfacePalette IGNORE_THIS_VERSION_OF_SDL_SetSurfacePalette
-#define SDL_LockSurface IGNORE_THIS_VERSION_OF_SDL_LockSurface
-#define SDL_UnlockSurface IGNORE_THIS_VERSION_OF_SDL_UnlockSurface
-#define SDL_LoadBMP_RW IGNORE_THIS_VERSION_OF_SDL_LoadBMP_RW
-#define SDL_SaveBMP_RW IGNORE_THIS_VERSION_OF_SDL_SaveBMP_RW
-#define SDL_SetSurfaceRLE IGNORE_THIS_VERSION_OF_SDL_SetSurfaceRLE
-#define SDL_SurfaceHasRLE IGNORE_THIS_VERSION_OF_SDL_SurfaceHasRLE
-#define SDL_SetSurfaceColorKey IGNORE_THIS_VERSION_OF_SDL_SetSurfaceColorKey
-#define SDL_SurfaceHasColorKey IGNORE_THIS_VERSION_OF_SDL_SurfaceHasColorKey
-#define SDL_GetSurfaceColorKey IGNORE_THIS_VERSION_OF_SDL_GetSurfaceColorKey
-#define SDL_SetSurfaceColorMod IGNORE_THIS_VERSION_OF_SDL_SetSurfaceColorMod
-#define SDL_GetSurfaceColorMod IGNORE_THIS_VERSION_OF_SDL_GetSurfaceColorMod
-#define SDL_SetSurfaceAlphaMod IGNORE_THIS_VERSION_OF_SDL_SetSurfaceAlphaMod
-#define SDL_GetSurfaceAlphaMod IGNORE_THIS_VERSION_OF_SDL_GetSurfaceAlphaMod
-#define SDL_SetSurfaceBlendMode IGNORE_THIS_VERSION_OF_SDL_SetSurfaceBlendMode
-#define SDL_GetSurfaceBlendMode IGNORE_THIS_VERSION_OF_SDL_GetSurfaceBlendMode
-#define SDL_SetSurfaceClipRect IGNORE_THIS_VERSION_OF_SDL_SetSurfaceClipRect
-#define SDL_GetSurfaceClipRect IGNORE_THIS_VERSION_OF_SDL_GetSurfaceClipRect
-#define SDL_DuplicateSurface IGNORE_THIS_VERSION_OF_SDL_DuplicateSurface
-#define SDL_ConvertSurface IGNORE_THIS_VERSION_OF_SDL_ConvertSurface
-#define SDL_ConvertSurfaceFormat IGNORE_THIS_VERSION_OF_SDL_ConvertSurfaceFormat
-#define SDL_ConvertPixels IGNORE_THIS_VERSION_OF_SDL_ConvertPixels
-#define SDL_PremultiplyAlpha IGNORE_THIS_VERSION_OF_SDL_PremultiplyAlpha
-#define SDL_FillSurfaceRect IGNORE_THIS_VERSION_OF_SDL_FillSurfaceRect
-#define SDL_FillSurfaceRects IGNORE_THIS_VERSION_OF_SDL_FillSurfaceRects
-#define SDL_BlitSurface IGNORE_THIS_VERSION_OF_SDL_BlitSurface
-#define SDL_BlitSurfaceUnchecked IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceUnchecked
-#define SDL_SoftStretch IGNORE_THIS_VERSION_OF_SDL_SoftStretch
-#define SDL_SoftStretchLinear IGNORE_THIS_VERSION_OF_SDL_SoftStretchLinear
-#define SDL_BlitSurfaceScaled IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceScaled
-#define SDL_BlitSurfaceUncheckedScaled IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceUncheckedScaled
-#define SDL_SetYUVConversionMode IGNORE_THIS_VERSION_OF_SDL_SetYUVConversionMode
-#define SDL_GetYUVConversionMode IGNORE_THIS_VERSION_OF_SDL_GetYUVConversionMode
-#define SDL_GetYUVConversionModeForResolution IGNORE_THIS_VERSION_OF_SDL_GetYUVConversionModeForResolution
-#define SDL_NumHaptics IGNORE_THIS_VERSION_OF_SDL_NumHaptics
-#define SDL_HapticName IGNORE_THIS_VERSION_OF_SDL_HapticName
-#define SDL_HapticOpen IGNORE_THIS_VERSION_OF_SDL_HapticOpen
-#define SDL_HapticOpened IGNORE_THIS_VERSION_OF_SDL_HapticOpened
-#define SDL_HapticIndex IGNORE_THIS_VERSION_OF_SDL_HapticIndex
-#define SDL_MouseIsHaptic IGNORE_THIS_VERSION_OF_SDL_MouseIsHaptic
-#define SDL_HapticOpenFromMouse IGNORE_THIS_VERSION_OF_SDL_HapticOpenFromMouse
-#define SDL_JoystickIsHaptic IGNORE_THIS_VERSION_OF_SDL_JoystickIsHaptic
-#define SDL_HapticOpenFromJoystick IGNORE_THIS_VERSION_OF_SDL_HapticOpenFromJoystick
-#define SDL_HapticClose IGNORE_THIS_VERSION_OF_SDL_HapticClose
-#define SDL_HapticNumEffects IGNORE_THIS_VERSION_OF_SDL_HapticNumEffects
-#define SDL_HapticNumEffectsPlaying IGNORE_THIS_VERSION_OF_SDL_HapticNumEffectsPlaying
-#define SDL_HapticQuery IGNORE_THIS_VERSION_OF_SDL_HapticQuery
-#define SDL_HapticNumAxes IGNORE_THIS_VERSION_OF_SDL_HapticNumAxes
-#define SDL_HapticEffectSupported IGNORE_THIS_VERSION_OF_SDL_HapticEffectSupported
-#define SDL_HapticNewEffect IGNORE_THIS_VERSION_OF_SDL_HapticNewEffect
-#define SDL_HapticUpdateEffect IGNORE_THIS_VERSION_OF_SDL_HapticUpdateEffect
-#define SDL_HapticRunEffect IGNORE_THIS_VERSION_OF_SDL_HapticRunEffect
-#define SDL_HapticStopEffect IGNORE_THIS_VERSION_OF_SDL_HapticStopEffect
-#define SDL_HapticDestroyEffect IGNORE_THIS_VERSION_OF_SDL_HapticDestroyEffect
-#define SDL_HapticGetEffectStatus IGNORE_THIS_VERSION_OF_SDL_HapticGetEffectStatus
-#define SDL_HapticSetGain IGNORE_THIS_VERSION_OF_SDL_HapticSetGain
-#define SDL_HapticSetAutocenter IGNORE_THIS_VERSION_OF_SDL_HapticSetAutocenter
-#define SDL_HapticPause IGNORE_THIS_VERSION_OF_SDL_HapticPause
-#define SDL_HapticUnpause IGNORE_THIS_VERSION_OF_SDL_HapticUnpause
-#define SDL_HapticStopAll IGNORE_THIS_VERSION_OF_SDL_HapticStopAll
-#define SDL_HapticRumbleSupported IGNORE_THIS_VERSION_OF_SDL_HapticRumbleSupported
-#define SDL_HapticRumbleInit IGNORE_THIS_VERSION_OF_SDL_HapticRumbleInit
-#define SDL_HapticRumblePlay IGNORE_THIS_VERSION_OF_SDL_HapticRumblePlay
-#define SDL_HapticRumbleStop IGNORE_THIS_VERSION_OF_SDL_HapticRumbleStop
-#define SDL_GetPreferredLocales IGNORE_THIS_VERSION_OF_SDL_GetPreferredLocales
-#define SDL_GetBasePath IGNORE_THIS_VERSION_OF_SDL_GetBasePath
-#define SDL_GetPrefPath IGNORE_THIS_VERSION_OF_SDL_GetPrefPath
-#define SDL_GetVersion IGNORE_THIS_VERSION_OF_SDL_GetVersion
-#define SDL_GetRevision IGNORE_THIS_VERSION_OF_SDL_GetRevision
-#define SDL_GetPlatform IGNORE_THIS_VERSION_OF_SDL_GetPlatform
-#define SDL_AtomicTryLock IGNORE_THIS_VERSION_OF_SDL_AtomicTryLock
-#define SDL_AtomicLock IGNORE_THIS_VERSION_OF_SDL_AtomicLock
-#define SDL_AtomicUnlock IGNORE_THIS_VERSION_OF_SDL_AtomicUnlock
-#define SDL_MemoryBarrierReleaseFunction IGNORE_THIS_VERSION_OF_SDL_MemoryBarrierReleaseFunction
-#define SDL_MemoryBarrierAcquireFunction IGNORE_THIS_VERSION_OF_SDL_MemoryBarrierAcquireFunction
-#define SDL_AtomicCAS IGNORE_THIS_VERSION_OF_SDL_AtomicCAS
-#define SDL_AtomicSet IGNORE_THIS_VERSION_OF_SDL_AtomicSet
-#define SDL_AtomicGet IGNORE_THIS_VERSION_OF_SDL_AtomicGet
+#define SDL_AddEventWatch IGNORE_THIS_VERSION_OF_SDL_AddEventWatch
+#define SDL_AddGamepadMapping IGNORE_THIS_VERSION_OF_SDL_AddGamepadMapping
+#define SDL_AddGamepadMappingsFromRW IGNORE_THIS_VERSION_OF_SDL_AddGamepadMappingsFromRW
+#define SDL_AddHintCallback IGNORE_THIS_VERSION_OF_SDL_AddHintCallback
+#define SDL_AddTimer IGNORE_THIS_VERSION_OF_SDL_AddTimer
+#define SDL_CreateRW IGNORE_THIS_VERSION_OF_SDL_CreateRW
 #define SDL_AtomicAdd IGNORE_THIS_VERSION_OF_SDL_AtomicAdd
+#define SDL_AtomicCAS IGNORE_THIS_VERSION_OF_SDL_AtomicCAS
 #define SDL_AtomicCASPtr IGNORE_THIS_VERSION_OF_SDL_AtomicCASPtr
-#define SDL_AtomicSetPtr IGNORE_THIS_VERSION_OF_SDL_AtomicSetPtr
+#define SDL_AtomicGet IGNORE_THIS_VERSION_OF_SDL_AtomicGet
 #define SDL_AtomicGetPtr IGNORE_THIS_VERSION_OF_SDL_AtomicGetPtr
-#define SDL_RWFromFile IGNORE_THIS_VERSION_OF_SDL_RWFromFile
-#define SDL_RWFromMem IGNORE_THIS_VERSION_OF_SDL_RWFromMem
-#define SDL_RWFromConstMem IGNORE_THIS_VERSION_OF_SDL_RWFromConstMem
-#define SDL_CreateRW IGNORE_THIS_VERSION_OF_SDL_CreateRW
-#define SDL_DestroyRW IGNORE_THIS_VERSION_OF_SDL_DestroyRW
-#define SDL_RWsize IGNORE_THIS_VERSION_OF_SDL_RWsize
-#define SDL_RWseek IGNORE_THIS_VERSION_OF_SDL_RWseek
-#define SDL_RWtell IGNORE_THIS_VERSION_OF_SDL_RWtell
-#define SDL_RWread IGNORE_THIS_VERSION_OF_SDL_RWread
-#define SDL_RWwrite IGNORE_THIS_VERSION_OF_SDL_RWwrite
-#define SDL_RWclose IGNORE_THIS_VERSION_OF_SDL_RWclose
-#define SDL_LoadFile_RW IGNORE_THIS_VERSION_OF_SDL_LoadFile_RW
-#define SDL_LoadFile IGNORE_THIS_VERSION_OF_SDL_LoadFile
-#define SDL_ReadU8 IGNORE_THIS_VERSION_OF_SDL_ReadU8
-#define SDL_ReadLE16 IGNORE_THIS_VERSION_OF_SDL_ReadLE16
-#define SDL_ReadBE16 IGNORE_THIS_VERSION_OF_SDL_ReadBE16
-#define SDL_ReadLE32 IGNORE_THIS_VERSION_OF_SDL_ReadLE32
-#define SDL_ReadBE32 IGNORE_THIS_VERSION_OF_SDL_ReadBE32
-#define SDL_ReadLE64 IGNORE_THIS_VERSION_OF_SDL_ReadLE64
-#define SDL_ReadBE64 IGNORE_THIS_VERSION_OF_SDL_ReadBE64
-#define SDL_WriteU8 IGNORE_THIS_VERSION_OF_SDL_WriteU8
-#define SDL_WriteLE16 IGNORE_THIS_VERSION_OF_SDL_WriteLE16
-#define SDL_WriteBE16 IGNORE_THIS_VERSION_OF_SDL_WriteBE16
-#define SDL_WriteLE32 IGNORE_THIS_VERSION_OF_SDL_WriteLE32
-#define SDL_WriteBE32 IGNORE_THIS_VERSION_OF_SDL_WriteBE32
-#define SDL_WriteLE64 IGNORE_THIS_VERSION_OF_SDL_WriteLE64
-#define SDL_WriteBE64 IGNORE_THIS_VERSION_OF_SDL_WriteBE64
-#define SDL_GetNumRenderDrivers IGNORE_THIS_VERSION_OF_SDL_GetNumRenderDrivers
-#define SDL_GetRenderDriver IGNORE_THIS_VERSION_OF_SDL_GetRenderDriver
-#define SDL_CreateWindowAndRenderer IGNORE_THIS_VERSION_OF_SDL_CreateWindowAndRenderer
+#define SDL_AtomicLock IGNORE_THIS_VERSION_OF_SDL_AtomicLock
+#define SDL_AtomicSet IGNORE_THIS_VERSION_OF_SDL_AtomicSet
+#define SDL_AtomicSetPtr IGNORE_THIS_VERSION_OF_SDL_AtomicSetPtr
+#define SDL_AtomicTryLock IGNORE_THIS_VERSION_OF_SDL_AtomicTryLock
+#define SDL_AtomicUnlock IGNORE_THIS_VERSION_OF_SDL_AtomicUnlock
+#define SDL_AttachVirtualJoystick IGNORE_THIS_VERSION_OF_SDL_AttachVirtualJoystick
+#define SDL_AttachVirtualJoystickEx IGNORE_THIS_VERSION_OF_SDL_AttachVirtualJoystickEx
+#define SDL_BlitSurface IGNORE_THIS_VERSION_OF_SDL_BlitSurface
+#define SDL_BlitSurfaceScaled IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceScaled
+#define SDL_BlitSurfaceUnchecked IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceUnchecked
+#define SDL_BlitSurfaceUncheckedScaled IGNORE_THIS_VERSION_OF_SDL_BlitSurfaceUncheckedScaled
+#define SDL_CaptureMouse IGNORE_THIS_VERSION_OF_SDL_CaptureMouse
+#define SDL_ClearAudioStream IGNORE_THIS_VERSION_OF_SDL_ClearAudioStream
+#define SDL_ClearComposition IGNORE_THIS_VERSION_OF_SDL_ClearComposition
+#define SDL_ClearError IGNORE_THIS_VERSION_OF_SDL_ClearError
+#define SDL_ClearHints IGNORE_THIS_VERSION_OF_SDL_ClearHints
+#define SDL_ClearQueuedAudio IGNORE_THIS_VERSION_OF_SDL_ClearQueuedAudio
+#define SDL_CloseAudioDevice IGNORE_THIS_VERSION_OF_SDL_CloseAudioDevice
+#define SDL_CloseGamepad IGNORE_THIS_VERSION_OF_SDL_CloseGamepad
+#define SDL_CloseJoystick IGNORE_THIS_VERSION_OF_SDL_CloseJoystick
+#define SDL_CloseSensor IGNORE_THIS_VERSION_OF_SDL_CloseSensor
+#define SDL_ComposeCustomBlendMode IGNORE_THIS_VERSION_OF_SDL_ComposeCustomBlendMode
+#define SDL_CondBroadcast IGNORE_THIS_VERSION_OF_SDL_CondBroadcast
+#define SDL_CondSignal IGNORE_THIS_VERSION_OF_SDL_CondSignal
+#define SDL_CondWait IGNORE_THIS_VERSION_OF_SDL_CondWait
+#define SDL_CondWaitTimeout IGNORE_THIS_VERSION_OF_SDL_CondWaitTimeout
+#define SDL_ConvertPixels IGNORE_THIS_VERSION_OF_SDL_ConvertPixels
+#define SDL_ConvertSurface IGNORE_THIS_VERSION_OF_SDL_ConvertSurface
+#define SDL_ConvertSurfaceFormat IGNORE_THIS_VERSION_OF_SDL_ConvertSurfaceFormat
+#define SDL_CreateAudioStream IGNORE_THIS_VERSION_OF_SDL_CreateAudioStream
+#define SDL_CreateColorCursor IGNORE_THIS_VERSION_OF_SDL_CreateColorCursor
+#define SDL_CreateCond IGNORE_THIS_VERSION_OF_SDL_CreateCond
+#define SDL_CreateCursor IGNORE_THIS_VERSION_OF_SDL_CreateCursor
+#define SDL_CreateMutex IGNORE_THIS_VERSION_OF_SDL_CreateMutex
+#define SDL_CreatePalette IGNORE_THIS_VERSION_OF_SDL_CreatePalette
+#define SDL_CreatePixelFormat IGNORE_THIS_VERSION_OF_SDL_CreatePixelFormat
 #define SDL_CreateRenderer IGNORE_THIS_VERSION_OF_SDL_CreateRenderer
+#define SDL_CreateSemaphore IGNORE_THIS_VERSION_OF_SDL_CreateSemaphore
+#define SDL_CreateShapedWindow IGNORE_THIS_VERSION_OF_SDL_CreateShapedWindow
 #define SDL_CreateSoftwareRenderer IGNORE_THIS_VERSION_OF_SDL_CreateSoftwareRenderer
-#define SDL_GetRenderer IGNORE_THIS_VERSION_OF_SDL_GetRenderer
-#define SDL_GetRenderWindow IGNORE_THIS_VERSION_OF_SDL_GetRenderWindow
-#define SDL_GetRendererInfo IGNORE_THIS_VERSION_OF_SDL_GetRendererInfo
-#define SDL_GetRenderOutputSize IGNORE_THIS_VERSION_OF_SDL_GetRenderOutputSize
+#define SDL_CreateSurface IGNORE_THIS_VERSION_OF_SDL_CreateSurface
+#define SDL_CreateSurfaceFrom IGNORE_THIS_VERSION_OF_SDL_CreateSurfaceFrom
+#define SDL_CreateSystemCursor IGNORE_THIS_VERSION_OF_SDL_CreateSystemCursor
 #de

(Patch may be truncated, please check the link at the top of this post.)