UEZ

ISO Creator v1.16 build 2015-07-13 beta

UEZ
Jun 17th, 2011
1,222
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #AutoIt3Wrapper_Res_RequestedExecutionLevel=RequireAdministrator
  2. #AutoIt3Wrapper_Icon=CD.ico
  3. #AutoIt3Wrapper_UseX64=n
  4. #AutoIt3Wrapper_Res_Description=Creates an ISO image from a standard CDs or DVDs
  5. #AutoIt3Wrapper_Res_Fileversion=1.1.6.0
  6. #AutoIt3Wrapper_Res_Language=1033
  7. #AutoIt3Wrapper_Res_Field=CompanyName|UEZ Software Development
  8. #AutoIt3Wrapper_Res_Field=ProductName|ISO Creator
  9. #AutoIt3Wrapper_Res_Field=Version|1.16
  10. #AutoIt3Wrapper_Res_Field=Build|2015-07-13 beta
  11. #AutoIt3Wrapper_Res_Field=Coded by|UEZ
  12. #AutoIt3Wrapper_Res_Field=Compile date|%longdate% %time%
  13. #AutoIt3Wrapper_Res_Field=ProductVersion|%AutoItVer%
  14. #AutoIt3Wrapper_Res_Field=URL|http://www.autoitscript.com/forum/index.php?showtopic=129859
  15. #AutoIt3Wrapper_UseUpx=n
  16. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 1,
  17. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 2,
  18. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICON, 3,
  19. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, MENU, 166,
  20. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, DIALOG, 1000,
  21. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 162,
  22. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 164,
  23. #AutoIt3Wrapper_Run_After=..\..\..\ResourceHacker\ResHacker.exe -delete %out%, %out%, ICONGROUP, 169,
  24. #AutoIt3Wrapper_Run_Au3Stripper=y
  25. #Au3Stripper_Parameters=/so /pe /rm
  26. #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3"
  27. ;~ #AutoIt3Wrapper_Run_After=upx.exe --ultra-brute --crp-ms=999999 --all-methods --all-filters "%out%"
  28. ;~ #AutoIt3Wrapper_Run_After=upx.exe --best --lzma "%out%"
  29. ;~ #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
  30. #include <Array.au3>
  31. #include <ButtonConstants.au3>
  32. #include <Constants.au3>
  33. #include <Date.au3>
  34. #include <GDIPlus.au3>
  35. #include <EditConstants.au3>
  36. #include <GuiComboBoxEx.au3>
  37. #include <GUIConstantsEx.au3>
  38. #include <GUIMenu.au3>
  39. #include <Memory.au3>
  40. #include <Misc.au3>
  41. #include <ProgressConstants.au3>
  42. #include <String.au3>
  43. #include <WindowsConstants.au3>
  44. #include <WinAPIFiles.au3>
  45. #include "AutoItObject.au3"
  46.  
  47. ;~ #NoTrayIcon
  48. Opt("TrayMenuMode", 1)
  49. Opt("MustDeclareVars", 1)
  50.  
  51. Global Const $hFullScreen = WinGetHandle("Program Manager")
  52. Global Const $aFullScreen = WinGetPos($hFullScreen)
  53. Global Const $STM_SETIMAGE = 0x0172
  54.  
  55. _GDIPlus_Startup()
  56. Global Const $ini_file = @ScriptDir & "\ISO Creator.ini"
  57. Global $bg_pic = "0"
  58. If FileExists($ini_file) Then
  59.     $bg_pic = IniRead($ini_file, "Settings", "Background_Pic", "0")
  60.     If $bg_pic <> "0" And Not FileExists($bg_pic) Then $bg_pic = "0"
  61. EndIf
  62. Global $ok = 0
  63. Global Const $w = 615
  64. Global Const $h = 157
  65. Global Const $prg_name = "ISO Creator v1.16"
  66. Global Const $title = $prg_name & " beta by UEZ 2011-2012"
  67. Global Const $build = " build 2015-07-13 beta"
  68. Global Const $ver = $prg_name & $build
  69.  
  70. Global Const $hGUI = GUICreate($title, $w, $h, -1, -1, Default, $WS_EX_TOPMOST)
  71. ;~ GUISetBkColor(0xABCDEF, $hGUI)
  72. Global $hGUI_Settings
  73. Global Const $idPic = GUICtrlCreatePic("", 0, 0, $w, $h)
  74. GUICtrlSetState(-1, $GUI_DISABLE)
  75. Global Const $idButton_Create = GUICtrlCreateButton("&Create" & @LF & "ISO", 528, 8, 75, 73, BitOR($BS_CENTER, $BS_VCENTER, $BS_MULTILINE))
  76. GUICtrlSetState(-1, $GUI_DISABLE)
  77. GUICtrlSetTip(-1, "Start creating ISO", "", 0, 1)
  78. GUICtrlSetFont(-1, 12, 400, 0, "Times New Roman")
  79. Global Const $idButton_Abort = GUICtrlCreateButton("A&bort", 528, 8, 75, 73, BitOR($BS_CENTER, $BS_VCENTER, $BS_MULTILINE))
  80. GUICtrlSetState(-1, $GUI_HIDE)
  81. GUICtrlSetTip(-1, "Abort the ISO creation", "", 0, 1)
  82. GUICtrlSetFont(-1, 14, 400, 0, "Times New Roman")
  83. Global Const $idProgressbar = GUICtrlCreateProgress(8, 93, 595, 27, $PBS_SMOOTH)
  84. Global Const $idInput_Filename = GUICtrlCreateInput("", 160, 31, 257, 24, $GUI_SS_DEFAULT_INPUT)
  85. GUICtrlSetFont(-1, 11, 600, 0, "Times New Roman", 5)
  86. GUICtrlSetTip(-1, "Click on the Save As button to create an iso file", "", 0, 1)
  87. Global Const $hInput_Filename = GUICtrlGetHandle($idInput_Filename)
  88. Global Const $idInput_Filename_Color = 0x002000
  89. Global Const $idLabel_filename = GUICtrlCreateLabel("Filename:", 96, 34, 60, 21)
  90. GUICtrlSetFont(-1, 11, 800, 0, "Times New Roman")
  91. GUICtrlSetBkColor(-1, -2)
  92. GUICtrlSetColor(-1, 0x101080)
  93. Global Const $idButton_Browse = GUICtrlCreateButton("&Save as", 426, 31, 75, 25)
  94. GUICtrlSetTip(-1, "Filename of ISO image", "", 0, 1)
  95. Global Const $idLabel_Drive = GUICtrlCreateLabel("Drive:", 8, 34, 37, 21)
  96. GUICtrlSetFont(-1, 11, 800, 0, "Times New Roman")
  97. GUICtrlSetBkColor(-1, -2)
  98. GUICtrlSetColor(-1, 0xF0F0FF)
  99. Global Const $idCB_MD5 = GUICtrlCreateCheckbox("", 8, 125, 12, 12)
  100. GUICtrlSetTip(-1, "Create MD5 checksum", "", 0, 1)
  101. Global Const $idLabel_MD5 = GUICtrlCreateLabel("Create MD5 checksum", 24, 125, 95, 18)
  102. GUICtrlSetTip(-1, "Create MD5 checksum after ISO has been created", "", 0, 1)
  103. GUICtrlSetFont(-1, 8, 800, 0, "Times New Roman")
  104. GUICtrlSetBkColor(-1, -2)
  105. GUICtrlSetColor(-1, 0x101060)
  106. Global Const $idCB_Eject = GUICtrlCreateCheckbox("", 8, 141, 12, 12)
  107. Global Const $idLabel_Eject = GUICtrlCreateLabel("Auto Eject Media", 24, 141, 95, 18)
  108. GUICtrlSetTip(-1, "Eject media automacally when process is finished", "", 0, 1)
  109. GUICtrlSetFont(-1, 8, 800, 0, "Times New Roman")
  110. GUICtrlSetBkColor(-1, -2)
  111. GUICtrlSetColor(-1, 0x101060)
  112.  
  113. Global Const $idPic_CD = GUICtrlCreatePic("", 574, 125, 28, 28)
  114. GUICtrlSetTip(-1, "Display sector read view on disc", "", 0, 1)
  115. GUICtrlSetCursor(-1, 2)
  116. Global Const $hHBITMAP_CD = _GDIPlus_BitmapCreateFromMemory(CDIcon(), True)
  117. _WinAPI_DeleteObject(GUICtrlSendMsg($idPic_CD, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_CD)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
  118. _WinAPI_DeleteObject($hHBITMAP_CD)
  119.  
  120. Global Const $sector = 2048
  121. #region Media Type
  122. Global $aMediaTypes[0x10000][2] ;media type, max. block size (approx.)
  123. $aMediaTypes[0x0000][0] = "No media"
  124. $aMediaTypes[0x0000][1] = 0
  125. $aMediaTypes[0x0008][0] = "CD-ROM"
  126. $aMediaTypes[0x0008][1] = 702 * 1024 ^ 2 / $sector
  127. $aMediaTypes[0x0009][0] = "CD-R"
  128. $aMediaTypes[0x0009][1] = 702 * 1024 ^ 2 / $sector
  129. $aMediaTypes[0x000A][0] = "CD-RW"
  130. $aMediaTypes[0x000A][1] = 702 * 1024 ^ 2 / $sector
  131. $aMediaTypes[0x0010][0] = "DVD-ROM"
  132. $aMediaTypes[0x0010][1] = 4481 * 1024 ^ 2 / $sector
  133. $aMediaTypes[0x0011][0] = "DVD-R Seq. Rec." ;Sequential Recording
  134. $aMediaTypes[0x0011][1] = 4481 * 1024 ^ 2 / $sector
  135. $aMediaTypes[0x0012][0] = "DVD-RAM"
  136. $aMediaTypes[0x0012][1] = 4481 * 1024 ^ 2 / $sector
  137. $aMediaTypes[0x0013][0] = "DVD-RW Restricted Overwrite"
  138. $aMediaTypes[0x0013][1] = 4481 * 1024 ^ 2 / $sector
  139. $aMediaTypes[0x0014][0] = "DVD-RW Seq. Rec." ;Sequential Recording
  140. $aMediaTypes[0x0014][1] = 4481 * 1024 ^ 2 / $sector
  141. $aMediaTypes[0x0015][0] = "DVD-R DL" ;Dual Layer
  142. $aMediaTypes[0x0015][1] = 8148 * 1024 ^ 2 / $sector
  143. $aMediaTypes[0x0016][0] = "DVD-R DL Jmp Rec." ;Dual Layer Jump Recording
  144. $aMediaTypes[0x0016][1] = 8148 * 1024 ^ 2 / $sector
  145. $aMediaTypes[0x0017][0] = "DVD-RW DL"
  146. $aMediaTypes[0x0017][1] = 8148 * 1024 ^ 2 / $sector
  147. $aMediaTypes[0x0018][0] = "DVD-Download Disc Rec."
  148. $aMediaTypes[0x0018][1] = 4481 * 1024 ^ 2 / $sector
  149. $aMediaTypes[0x001A][0] = "DVD+RW"
  150. $aMediaTypes[0x001A][1] = 4481 * 1024 ^ 2 / $sector
  151. $aMediaTypes[0x001B][0] = "DVD+R"
  152. $aMediaTypes[0x001B][1] = 4481 * 1024 ^ 2 / $sector
  153. $aMediaTypes[0x002A][0] = "DVD+RW DL"
  154. $aMediaTypes[0x002A][1] = 4481 * 1024 ^ 2 / $sector
  155. $aMediaTypes[0x002B][0] = "DVD+R DL" ;Dual Layer
  156. $aMediaTypes[0x002B][1] = 8148 * 1024 ^ 2 / $sector
  157. $aMediaTypes[0x0040][0] = "BD-ROM"
  158. $aMediaTypes[0x0040][1] = 23859 * 1024 ^ 2 / $sector
  159. $aMediaTypes[0x0041][0] = "BD-R SRM" ;Sequential Recording Mode
  160. $aMediaTypes[0x0041][1] = 23859 * 1024 ^ 2 / $sector
  161. $aMediaTypes[0x0042][0] = "BD-R RRM" ;Random Recording Mode (RRM)
  162. $aMediaTypes[0x0042][1] = 23859 * 1024 ^ 2 / $sector
  163. $aMediaTypes[0x0043][0] = "BD-RE"
  164. $aMediaTypes[0x0043][1] = 23859 * 1024 ^ 2 / $sector
  165. $aMediaTypes[0x0050][0] = "HD DVD-ROM"
  166. $aMediaTypes[0x0050][1] = 14300 * 1024 ^ 2 / $sector
  167. $aMediaTypes[0x0051][0] = "HD DVD-R"
  168. $aMediaTypes[0x0051][1] = 14300 * 1024 ^ 2 / $sector
  169. $aMediaTypes[0x0052][0] = "HD DVD-RAM"
  170. $aMediaTypes[0x0052][1] = 14300 * 1024 ^ 2 / $sector
  171. $aMediaTypes[0x0053][0] = "HD DVD-RW"
  172. $aMediaTypes[0x0053][1] = 14300 * 1024 ^ 2 / $sector
  173. $aMediaTypes[0x0058][0] = "HD DVD-R DL"
  174. $aMediaTypes[0x0058][1] = 28570 * 1024 ^ 2 / $sector
  175. $aMediaTypes[0x005A][0] = "HD DVD-RW DL"
  176. $aMediaTypes[0x005A][1] = 28570 * 1024 ^ 2 / $sector
  177. $aMediaTypes[0xFFFF][0] = "Unknown"
  178. $aMediaTypes[0xFFFF][1] = 0
  179. #endregion Media Type
  180.  
  181. Global $sDrives = GetDrivesInfo()
  182. Global $noDrv = False
  183.  
  184. If Not $sDrives Then
  185.     GUICtrlSetState($idButton_Browse, $GUI_DISABLE)
  186.     $sDrives = "0: [No drive found, , 0 MB]|"
  187.     $noDrv  = True
  188.     If Not $CmdLine[0] Then ErrorMsgBox("No CD/DVD drive found!")
  189. EndIf
  190. Global $drv_tmp = $sDrives
  191. Global $aInfo_o = StringSplit($sDrives, "|", 2)
  192. Global $combo_size = 38, $width = $combo_size + 1
  193. Global Const $combo_height = 28
  194. Global Const $idCombo = GUICtrlCreateCombo("", 48, 31, $combo_size, $combo_height, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $CBS_SORT, $CBS_UPPERCASE, $CBS_SORT), $WS_EX_TOPMOST)
  195. GUICtrlSetData(-1, $sDrives)
  196. GUICtrlSetTip(-1, "Select CD/DVD drive", "", 0, 1)
  197. GUICtrlSetFont(-1, 9, 800, 0, "Times New Roman")
  198. Global Const $hCombo = GUICtrlGetHandle($idCombo)
  199.  
  200. Global $saveas, $drv, $file, $pid, $aChild, $line, $aP, $po, $abort, $t, $i, $c, $fn, $td, $sek, $err, $mo, $dummy, $aM, $blocks
  201. Global $fs = False, $start_dummy = False, $combo_min = True, $started = False
  202. Global Const $perf = 250
  203. Global Const $dt = 1000 * 3600 ; if timer > 1h abort copy process
  204. Global $hHBITMAP
  205. If $bg_pic = "0" Then
  206.     $hHBITMAP = _GDIPlus_BitmapCreateFromMemory(BackgroundPic(), True)
  207.     _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
  208.     _WinAPI_DeleteObject($hHBITMAP)
  209. Else
  210.     Change_Background_Pic($bg_pic)
  211.     ControlFocus($hGUI, "", $idButton_Browse)
  212. EndIf
  213.  
  214. GUISetIcon(@SystemDir & "\Shell32.dll", 189, $hGUI)
  215.  
  216. Global Const $hBitmap = _GDIPlus_BitmapCreateFromMemory(Texture(), True)
  217. Global $aR = DllCall("Gdi32.dll", "Handle", "CreatePatternBrush", "Handle", $hBitmap) ;create background image of input box!
  218. Global $hBrush = $aR[0]
  219. Global $mco = MouseGetCursor()
  220. GUIRegisterMsg(0x0133, "WM_CTLCOLOREDIT") ;$WM_CTLCOLOREDIT = 0x0133
  221.  
  222. Global Const $AW_ACTIVATE = 0x00020000, $AW_BLEND = 0x00080000, $AW_HIDE = 0x00010000
  223. Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
  224. Global Const $sChkAero = DllStructCreate("int;")
  225. DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "ptr", DllStructGetPtr($sChkAero))
  226. Global Const $aero = DllStructGetData($sChkAero, 1)
  227. DllClose($hDwmApiDll)
  228.  
  229. If $aero Then
  230.     Global Const $TBPF_NOPROGRESS = 0
  231.     Global Const $TBPF_INDETERMINATE = 0x1
  232.     Global Const $TBPF_NORMAL = 0x2
  233.     Global Const $TBPF_ERROR = 0x4
  234.     Global Const $TBPF_PAUSED = 0x8
  235.     Global $CLSID_TaskBarlist, $CLSID_TaskBarlist, $IID_ITaskbarList3, $pTB3, $oTB3
  236.     Global $tagInterface = _
  237.     "QueryInterface long(ptr;ptr;ptr);" & _
  238.     "AddRef ulong();" & _
  239.     "Release ulong();" & _
  240.     "HrInit long();" & _
  241.     "AddTab long(hwnd);" & _
  242.     "DeleteTab long(hwnd);" & _
  243.     "ActivateTab long(hwnd);" & _
  244.     "SetActiveAlt long(hwnd);" & _
  245.     "MarkFullscreenWindow long(hwnd;int);" & _
  246.     "SetProgressValue long(hwnd;uint64;uint64);" & _
  247.     "SetProgressState long(hwnd;int);" & _
  248.     "RegisterTab long(hwnd;hwnd);" & _
  249.     "UnregisterTab long(hwnd);" & _
  250.     "SetTabOrder long(hwnd;hwnd);" & _
  251.     "SetTabActive long(hwnd;hwnd;dword);" & _
  252.     "ThumbBarAddButtons long(hwnd;uint;ptr);" & _
  253.     "ThumbBarUpdateButtons long(hwnd;uint;ptr);" & _
  254.     "ThumbBarSetImageList long(hwnd;ptr);" & _
  255.     "SetOverlayIcon long(hwnd;ptr;wstr);" & _
  256.     "SetThumbnailTooltip long(hwnd;wstr);" & _
  257.     "SetThumbnailClip long(hwnd;ptr);"
  258.     _AutoItObject_StartUp()
  259.     ; get interfaces
  260.     $CLSID_TaskBarlist = _AutoItObject_CLSIDFromString("{56FDF344-FD6D-11D0-958A-006097C9A090}")
  261.     ; ITaskbarList3:  http://msdn.microsoft.com/en-us/library/dd391692(VS.85).aspx
  262.     $IID_ITaskbarList3 = _AutoItObject_CLSIDFromString("{ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf}")
  263.     _AutoItObject_CoCreateInstance(DllStructGetPtr($CLSID_TaskBarlist), 0, 1, DllStructGetPtr($IID_ITaskbarList3), $pTB3)
  264.     $oTB3 = _AutoItObject_WrapperCreate($pTB3, $tagInterface)
  265.     $oTB3.HrInit()
  266.     $oTB3.SetProgressState($hGUI, $TBPF_NORMAL)
  267. EndIf
  268.  
  269. Global $auto_exit = False
  270. If $CmdLine[0] Then CheckCMDLine()
  271.  
  272. If Not $auto_exit Then
  273. ;~  _WinAPI_AnimateWindow($hGUI, BitOR($AW_BLEND, $AW_ACTIVATE), 500)
  274.     _GUICtrlComboBoxEx_SetCurSel($hCombo, 0)
  275.     ControlFocus($hGUI, "", $idButton_Browse)
  276.     GUICtrlSetPos($idCombo, 48, 31, $combo_size, $combo_height)
  277. EndIf
  278. GUISetState(@SW_SHOW, $hGUI)
  279.  
  280. ;~ Global Const $SND_SYNC = 0, $SND_ASYNC = 1, $SND_NODEFAULT = 2, $SND_MEMORY = 4, $SND_NOWAIT = 0x2000
  281.  
  282. Global $binCapture_snd_finished = Sound_Finished()
  283. Global $ByteStruct_snd_finished = DllStructCreate("byte[" & BinaryLen($binCapture_snd_finished) & "]")
  284. DllStructSetData($ByteStruct_snd_finished, 1, $binCapture_snd_finished)
  285. Global Const $BytePtr_snd_finished = DllStructGetPtr($ByteStruct_snd_finished)
  286.  
  287. Global $binCapture_snd_abort = Sound_Abort()
  288. Global $ByteStruct_snd_abort = DllStructCreate("byte[" & BinaryLen($binCapture_snd_abort) & "]")
  289. DllStructSetData($ByteStruct_snd_abort, 1, $binCapture_snd_abort)
  290. Global Const $BytePtr_snd_abort = DllStructGetPtr($ByteStruct_snd_abort)
  291.  
  292. Global Const $fuSound = BitOR($SND_MEMORY, $SND_ASYNC, $SND_NODEFAULT, $SND_NOWAIT)
  293. Global $hUser32DLL = DllOpen("user32.dll")
  294.  
  295. DllCall($hUser32DLL, 'int', 'HideCaret', 'hwnd', $hGUI)
  296. DllCall($hUser32DLL, 'int', 'DestroyCaret')
  297.  
  298. Global $_MD5_CodeBuffer, $_MD5_CodeBufferMemory
  299. Global $_MD5_InitOffset, $_MD5_InputOffset, $_MD5_ResultOffset
  300. Global $_HASH_MD5[4] = [16, 88, '_MD5_', '_MD5_']
  301.  
  302. Global Enum $idAbout = 1000, $idChangeBGPic, $idEjectMedia, $idLoadMedia, $idMD5, $idUpd, $idVisitWeb
  303. Global Const $hMenu = _GUICtrlMenu_GetSystemMenu($hGUI)
  304. _GUICtrlMenu_InsertMenuItem($hMenu, 5, 0, 0)
  305. _GUICtrlMenu_InsertMenuItem($hMenu, 6, "&About", $idAbout)
  306. _GUICtrlMenu_InsertMenuItem($hMenu, 7, 0, 0)
  307. _GUICtrlMenu_InsertMenuItem($hMenu, 8, "Change &Background Pic", $idChangeBGPic)
  308. _GUICtrlMenu_InsertMenuItem($hMenu, 9, "Create MD&5 checksum from ISO", $idMD5)
  309. _GUICtrlMenu_InsertMenuItem($hMenu, 10, "Check for &Updates", $idUpd)
  310. _GUICtrlMenu_InsertMenuItem($hMenu, 11, "Visit &Web Site", $idVisitWeb)
  311.  
  312. Global Const $hBmp_MD5 = _GDIPlus_BitmapCreateFromMemory(CDIcon())
  313. Global Const $hGraphic_MD5 = _GDIPlus_ImageGetGraphicsContext($hBmp_MD5)
  314. _GDIPlus_GraphicsDrawString($hGraphic_MD5, "MD5", 1, 6, "Tahoma", 11)
  315. Global Const $hHBmp_MD5 = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp_MD5)
  316. _GDIPlus_GraphicsDispose($hGraphic_MD5)
  317. _GDIPlus_BitmapDispose($hBmp_MD5)
  318. _GUICtrlMenu_SetItemBmp($hMenu, 9, $hHBmp_MD5)
  319.  
  320. Global Const $hBmp_About = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 221, 28, 28)
  321. _GUICtrlMenu_SetItemBmp($hMenu, 6, $hBmp_About)
  322. Global $Icon_ChP = 301
  323. If @OSBuild < 6000 Then $Icon_ChP = 117
  324. If @OSBuild > 7999 Then $Icon_ChP = 317
  325. Global Const $hBmp_ChangeBG = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", $Icon_ChP, 28, 28)
  326. _GUICtrlMenu_SetItemBmp($hMenu, 8, $hBmp_ChangeBG)
  327. Global Const $hBmp_Update = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 91, 28, 28)
  328. _GUICtrlMenu_SetItemBmp($hMenu, 10, $hBmp_Update)
  329. Global $hBMP_VisitWeb = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 13, 28, 28)
  330. _GUICtrlMenu_SetItemBmp($hMenu, 11, $hBMP_VisitWeb)
  331.  
  332. Global Const $hQMenu = _GUICtrlMenu_CreatePopup()
  333. _GUICtrlMenu_InsertMenuItem($hQMenu, 0, "Eject media from the device", $idEjectMedia)
  334. _GUICtrlMenu_InsertMenuItem($hQMenu, 1, "", 0)
  335. _GUICtrlMenu_InsertMenuItem($hQMenu, 2, "Load Media", $idLoadMedia)
  336.  
  337. Global Const $hBmp_EjectMedia = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 78, 32, 32)
  338. _GUICtrlMenu_SetItemBmp($hQMenu, 0, $hBmp_EjectMedia)
  339. ;~ Global Const $hBmp_LoadMedia = _WinAPI_CreateBitmapFromIcon(@SystemDir & "\Shell32.dll", 11, 32, 32)
  340. Global Const $hBmp_LoadMedia = _GDIPlus_BitmapCreateFromMemory(Icon_LM(), True)
  341. _GUICtrlMenu_SetItemBmp($hQMenu, 2, $hBmp_LoadMedia)
  342.  
  343. $dummy = GUICtrlCreateDummy()
  344.  
  345. Global $hGraphic_Disc, $hImage_Disc, $hBitmap_Disk, $hHBITMAP_Disc, $hBrush_Disc, $hGUI_Disc, $id_DiscPic
  346. Global $mbps, $MediaSize, $mem1, $mem2
  347. Global Const $deg = ACos(-1) / 180
  348. Global Const $disc_w = 172
  349. Global Const $disc_h = 172
  350. Global Const $w2 = $disc_w / 2
  351. Global Const $h2 = $disc_h / 2
  352. Global Const $wTitle = _WinAPI_GetSystemMetrics($SM_CYCAPTION)
  353. Global Const $wFrame = _WinAPI_GetSystemMetrics($SM_CXFRAME)
  354. Global Const $wFrameB = _WinAPI_GetSystemMetrics($SM_CYDLGFRAME)
  355. Global Const $wFrameF = _WinAPI_GetSystemMetrics($SM_CXDLGFRAME)
  356. Global $radius, $angel, $s
  357. Global $switch_view = True
  358.  
  359. $hGUI_Disc = GUICreate("Sector Reading View", $disc_w, $disc_h, $w + $wFrame, -$wFrameB, $WS_POPUP, $WS_EX_MDICHILD, $hGUI)
  360. $id_DiscPic = GUICtrlCreatePic("", 0, 0, $disc_w, $disc_h)
  361.  
  362. $hBrush_Disc = _GDIPlus_BrushCreateSolid(0x180000A0)
  363. $hImage_Disc = _GDIPlus_BitmapCreateFromMemory(DiskImage())
  364. $hBitmap_Disk = _GDIPlus_BitmapCreateFromScan0($disc_w,  $disc_h) ;DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $disc_w, "int", $disc_h, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  365. ;~ $hBitmap_Disk = $hBitmap_Disk[6]
  366. $hGraphic_Disc = _GDIPlus_ImageGetGraphicsContext($hBitmap_Disk)
  367. _GDIPlus_GraphicsDrawImageRect($hGraphic_Disc, $hImage_Disc, 0, 0, $disc_w, $disc_h)
  368. _GDIPlus_GraphicsSetSmoothingMode($hGraphic_Disc, 2)
  369. ;~ _GDIPlus_GraphicsSetSmoothingMode($hGraphic_Size, 2)
  370. ;~ DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hGraphic_Size, "int", 4)
  371.  
  372. $hHBITMAP_Disc = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage_Disc)
  373. _WinAPI_DeleteObject(GUICtrlSendMsg($id_DiscPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_Disc))
  374. _WinAPI_DeleteObject($hHBITMAP_Disc)
  375. GUISetState(@SW_HIDE)
  376.  
  377. Global $rgn = _WinAPI_CreateRoundRectRgn(0, 0, $disc_w, $disc_h, $disc_w, $disc_h)
  378. _WinAPI_SetWindowRgn($hGUI_Disc, $rgn)
  379.  
  380. Chk_Drive_Status()
  381. GetTextLength()
  382.  
  383. AdlibRegister("Chk_Drive_Status", 2000) ; checks every 2 seconds whether new media has been inserted to update combo box
  384.  
  385. GUIRegisterMsg(0x0112, "WM_SYSCOMMAND") ;$WM_SYSCOMMAND = 0x0112
  386. GUIRegisterMsg(0x0111, "WM_COMMAND") ;$WM_COMMAND = 0x0111
  387. GUIRegisterMsg(0x007B, "WM_CONTEXTMENU") ; $WM_CONTEXTMENU = 0x007B
  388. GUIRegisterMsg(0x0046, "WM_WINDOWPOSCHANGING") ;$WM_WINDOWPOSCHANGING = 0x0046
  389.  
  390.  
  391. While 1
  392.     Switch GUIGetMsg()
  393.         Case $GUI_EVENT_CLOSE
  394.             _Exit()
  395.         Case $idButton_Browse
  396.             $saveas = FileSaveDialog("Enter ISO file name", "", "ISO (*.iso)", 2, "", $hGUI)
  397.             If Not @error Then
  398.                 If StringRight($saveas, 4) <> ".iso" Then $saveas &= ".iso"
  399.                 GUICtrlSetData($idInput_Filename, $saveas)
  400.                 $ok += 1
  401.                 $fs = True
  402.             EndIf
  403.         Case $idButton_Create, $dummy
  404.             $fn = GUICtrlRead($idInput_Filename)
  405.             If FileExists($fn) Then
  406.                 $c = MsgBox(48 + 4, "Information", $fn & " already exists!" & @CRLF & @CRLF & "Overwrite?", 0, $hGUI)
  407.                 If $c = 6 Then
  408.                     If FileDelete($fn) Then
  409.                         Create_ISO()
  410.                     Else
  411.                         ErrorMsgBox("Unable to delete " & $fn)
  412.                     EndIf
  413.                 EndIf
  414.             Else
  415.                 Create_ISO()
  416.             EndIf
  417.         Case $idPic_CD
  418.             Switch_View()
  419.             CheckDiskPos()
  420. ;~          Draw_DiscView(1000)
  421.     EndSwitch
  422.  
  423.     If $ok > 0 Then
  424.         If BitAND(GUICtrlGetState($idButton_Create), $GUI_ENABLE) <> $GUI_ENABLE Then GUICtrlSetState($idButton_Create, $GUI_ENABLE)
  425.     Else
  426.         If BitAND(GUICtrlGetState($idButton_Create), $GUI_DISABLE) <> $GUI_DISABLE Then GUICtrlSetState($idButton_Create, $GUI_DISABLE)
  427.     EndIf
  428.  
  429.     If $start_dummy Then
  430.         GUICtrlSendToDummy($dummy)
  431.         $start_dummy = False
  432.     EndIf
  433.  
  434.     $aM = GUIGetCursorInfo($hGUI)
  435.     If Not @error Then
  436.         If $aM[4] = $idCombo Then
  437.             If Not $mem1 Then
  438.                 GUICtrlSetPos($idCombo, 48, 31, $width, $combo_height)
  439.                 If Not $aero Then _WinAPI_RedrawWindow($hGUI)
  440.                 $mem1 = True
  441.                 $mem2 = False
  442.             EndIf
  443.         Else
  444.             If Not $mem2 Then
  445.                 If $combo_min Then
  446.                     GUICtrlSetPos($idCombo, 48, 31, 38, $combo_height)
  447.                     $mem2 = True
  448.                     $mem1 = False
  449.                 EndIf
  450.             EndIf
  451.         EndIf
  452.     EndIf
  453. WEnd
  454.  
  455. Func Chk_Drive_Status()
  456.     Local $z, $info
  457.     Local $drv_info = GetDrivesInfo()
  458.     Local $aInfo_c = StringSplit($drv_info, "|", 2)
  459.     If UBound($aInfo_o) <> UBound($aInfo_c) Then $aInfo_o = $aInfo_c
  460.     Local $ci = _GUICtrlComboBox_GetCurSel($hCombo)
  461.     If $drv_info <> $drv_tmp Then
  462.         GUICtrlSetState($idCombo, $GUI_DISABLE)
  463.         _GUICtrlComboBox_ResetContent($hCombo)
  464.         GUICtrlSetData($idCombo, $drv_info)
  465.         _GUICtrlComboBoxEx_SetCurSel($hCombo, $ci)
  466.         GUICtrlSetState($idCombo, $GUI_ENABLE)
  467.         $drv_tmp = $drv_info
  468.         For $z = 0 To UBound($aInfo_c) - 1
  469.             If $aInfo_c[$z] <> $aInfo_o[$z] Then $info &= $aInfo_c[$z] & @CRLF
  470.         Next
  471.         TrayTip("Information", "CD/DVD media change detected:" & @CRLF & @CRLF & $info, 1, 1)
  472.         $aInfo_o = $aInfo_c
  473.         GetTextLength()
  474.     EndIf
  475. EndFunc   ;==>Chk_Drive_Status
  476.  
  477. Func GetTextLength()
  478.     Local $l, $max = 0
  479.     Local $elements = _GUICtrlComboBox_GetListArray($hCombo)
  480.     For $l = 1 To $elements[0]
  481.         If StringLen($elements[$l]) > $max Then $max = StringLen($elements[$l])
  482.     Next
  483.     $width = Max($combo_size + 1, $max * 7.5)
  484. EndFunc   ;==>GetTextLength
  485.  
  486. Func GetDrivesInfo()
  487.     Local $k
  488.     Local $aDrives = DriveGetDrive("CDROM")
  489.     If @error Then Return
  490.     For $k = 1 To $aDrives[0]
  491.         $aDrives[$k] = StringUpper($aDrives[$k])
  492.         $aDrives[$k] &= " [" & $aMediaTypes[_WinAPI_GetCDType($aDrives[$k])][0] & ", " & DriveGetLabel($aDrives[$k]) & ", " & Round(DriveSpaceTotal($aDrives[$k]), 2) & " MB]"
  493.     Next
  494.     Return _ArrayToString($aDrives, "|", 1)
  495. EndFunc   ;==>GetDrivesInfo
  496.  
  497. Func CheckCMDLine()
  498.     If $noDrv Then
  499.         ErrorMsgBox("No CD/DVD drive found!" & @LF & @LF & @LF  & "Terminating program!")
  500.         _Exit(True)
  501.     EndIf
  502.     Local $ps, $pd, $md5, $index, $sText, $exit, $aem, $help
  503.     $help = BitAND(_ArraySearch($CmdLine, "-?"), _ArraySearch($CmdLine, "/?"), _ArraySearch($CmdLine, "-h"), _ArraySearch($CmdLine, "/h"))
  504.  
  505.     If $help > 0 Then
  506.         MsgBox(64 + 262144, "Command line information", "Command line syntax:" & @CRLF & @CRLF & _
  507.                                                                                                                         "ISO Creator.exe"& @TAB & _
  508.                                                                                                                         "-s [source cd/dvd drive]"& @CRLF & @TAB & @TAB & _
  509.                                                                                                                         "-d [filename]" & @CRLF & @TAB & @TAB & _
  510.                                                                                                                         "(-md5)" & @CRLF & @TAB & @TAB & _
  511.                                                                                                                         "(-aem)" & @CRLF & @TAB & @TAB & _
  512.                                                                                                                         "(-exit)", 30)
  513.         _Exit(True)
  514.     EndIf
  515.     $index = _ArraySearch($CmdLine, "-s")
  516.     If @error Then Return
  517.     $ps = $CmdLine[$index + 1]
  518.     $index = _ArraySearch($CmdLine, "-d")
  519.     If @error Then Return
  520.     $md5 = _ArraySearch($CmdLine, "-md5")
  521.     $aem = _ArraySearch($CmdLine, "-aem")
  522.     $exit = _ArraySearch($CmdLine, "-exit")
  523.     $pd = $CmdLine[$index + 1]
  524.     If StringRight($pd, 4) <> ".iso" Then $pd &= ".iso"
  525.     If StringRegExp($ps, "(?i)\A[a-z]:", 0) And _GUICtrlComboBox_FindString($hCombo, $ps) > -1 And StringRegExp($pd, "((?<!.)([a-zA-Z]\:\\)(?!\s)(([\w-+.]*((?<!\s)(\s{1})(?!\\)|(?<!\\)(\\{1})(?!\s))*)*)(\\?)(?!.))", 0) Then
  526.         _GUICtrlComboBox_GetLBText($hCombo, _GUICtrlComboBox_FindString($hCombo, $ps), $sText)
  527.         GUICtrlSetData($idCombo, $sText)
  528.         GUICtrlSetData($idInput_Filename, $pd)
  529.         If $md5 > -1 Then GUICtrlSetState($idCB_MD5, $GUI_CHECKED)
  530.         If $aem > -1 Then GUICtrlSetState($idCB_Eject, $GUI_CHECKED)
  531.         If $exit > -1 Then $auto_exit = True
  532.         $ok = 2
  533.         $start_dummy = True
  534.     EndIf
  535. EndFunc   ;==>CheckCMDLine
  536.  
  537. Func ISO9660_Check($drv) ;good source http://www.tu-chemnitz.de/informatik/RA/news/stack/kompendium/vortraege_97/cdrom/Kapitel2.html (German only)
  538.     Local $nBytes, $tBuffer, $hFile, $id, $LogicalBlockSize, $BD = False
  539.     If StringRegExpReplace(GUICtrlRead($idCombo), "(?i).*\[(BD.*|HD.*),.*,.*\]", "") = "" Then $BD = True
  540.     If Not $BD Then
  541.                                                                                                                                     ;length -> position
  542.         $tBuffer = DllStructCreate( "byte Type;" & _                                                ;1
  543.                                                         "char Identifier[5];" & _                                   ;5 -> 6
  544.                                                         "byte Version;" & _                                         ;1 -> 7
  545.                                                         "byte Empty1;" & _                                          ;1 -> 8
  546.                                                         "char SystemID[32];" & _                                ;32 -> 40
  547.                                                         "char VolumeID[32];" & _                                ;32 -> 72
  548.                                                         "byte Empty2[8];" & _                                       ;8 -> 80
  549.                                                         "uint BlocksLE;" & _                                            ;4 -> 84
  550.                                                         "uint BlocksBE;" & _                                        ;4 -> 88
  551.                                                         "byte Empty3[32];" & _                                      ;32 -> 120
  552.                                                         "ushort VolumeSetSizeLE;" & _                       ;2 -> 122
  553.                                                         "ushort VolumeSetSizeBE;" & _                       ;2 -> 124
  554.                                                         "ushort VolumeSequenceNumberLE;" & _    ;2 -> 126
  555.                                                         "ushort VolumeSequenceNumberBE;" & _    ;2 -> 128
  556.                                                         "ushort LogicalBlockSizeLE;" & _                    ;2 -> 130
  557.                                                         "ushort LogicalBlockSizeBE;" & _                    ;2 -> 132
  558.                                                         "byte DataRest[1916]")
  559.                                                         ;LE = Little Endian (right to left)
  560.                                                         ;BE = Big Endian (left to right)
  561.         $hFile = _WinAPI_CreateFile("\\.\" & $drv, 2, 2, 2)
  562.         If Not $hFile Then Return SetError(1, 0, 0)
  563.         _WinAPI_SetFilePointer($hFile, 0x08000)
  564.         _WinAPI_ReadFile($hFile, DllStructGetPtr($tBuffer), DllStructGetSize($tBuffer), $nBytes)
  565.         _WinAPI_CloseHandle($hFile)
  566.         $id = DllStructGetData($tBuffer, "Identifier")
  567.         If Not StringInStr("CD001CDW02NSR02", $id) Then Return SetError(2, 0, 0)
  568.         $LogicalBlockSize = DllStructGetData($tBuffer, "LogicalBlockSizeLE")
  569.         If $LogicalBlockSize <> 0x0800 Then Return SetError(3, 0, 0)
  570.         $blocks = DllStructGetData($tBuffer, "BlocksLE")
  571.         $tBuffer = 0
  572.     Else
  573.         Return SetError(4, 0, 0) ;No BD / HD support yet
  574.     EndIf
  575.     Return True
  576. EndFunc   ;==>ISO9660_Check
  577.  
  578. Func Create_ISO()
  579.     Local $dl, $drvl, $p, $bytes, $speed, $aDrives, $error, $dd
  580.     $drvl = GUICtrlRead($idCombo)
  581.     $dl = StringLeft($drvl, 1) & ":"
  582.     If DriveSpaceFree(StringLeft(GUICtrlRead($idInput_Filename), 3)) < DriveSpaceTotal($dl) Then Return ErrorMsgBox("Not enough space on destination drive!")
  583.     If DriveStatus($dl) = "READY" And ISO9660_Check($dl) Then
  584.         AdlibUnRegister("Chk_Drive_Status")
  585.  
  586.         $abort = False
  587.         $started = True
  588.         GUICtrlSetState($idButton_Browse, $GUI_DISABLE)
  589. ;~      GUICtrlSetState($idCB_MD5, $GUI_DISABLE)
  590. ;~      GUICtrlSetState($idCB_Eject, $GUI_DISABLE)
  591.         GUICtrlSetState($idCombo, $GUI_DISABLE)
  592.         GUICtrlSetState($idButton_Create, $GUI_HIDE)
  593.         GUICtrlSetState($idButton_Abort, $GUI_SHOW)
  594.         _GUICtrlMenu_SetItemDisabled($hMenu, 6)
  595.         _GUICtrlMenu_SetItemDisabled($hMenu, 8)
  596.         _GUICtrlMenu_SetItemDisabled($hMenu, 9)
  597.         _GUICtrlMenu_SetItemDisabled($hMenu, 10)
  598.  
  599.         ControlFocus($hGUI, "", $idButton_Abort)
  600.         $mo = MouseGetCursor()
  601.         GUISetCursor(15, 1, $hGUI)
  602.         $drv = StringLeft($drvl, 1)
  603.         $MediaSize = Round(DriveSpaceTotal($dl), 2)
  604.  
  605.         Opt("GUIOnEventMode", 1)
  606.         GUICtrlSetOnEvent($idButton_Abort, "Abort_Ctrl")
  607.         GUICtrlSetOnEvent($idPic_CD, "Switch_View")
  608.  
  609.         Local $max_blocks = $aMediaTypes[_ArraySearch($aMediaTypes, StringRegExpReplace($drvl, "\w:..(.*),.*,.*", "$1"))][1]
  610.  
  611.         $t = TimerInit()
  612.         $err = TimerInit()
  613.  
  614.         Local $hFileRead = FileOpen("\\.\" & $dl, 16)
  615.         If $hFileRead = -1 Then Return ErrorMsgBox("Unable to open drive " & $dl)
  616.         Local $hFileSave = FileOpen($fn, 18)
  617.         If $hFileSave = -1 Then
  618.             FileClose($hFileRead)
  619.             Return ErrorMsgBox("Unable to create  " & $fn)
  620.         EndIf
  621.  
  622.         Local $sector_steps = Ceiling($max_blocks / 2824)
  623.         $radius = 32
  624.         $angel = 0
  625.         $s = 4
  626.         _GDIPlus_GraphicsDrawImageRect($hGraphic_Disc, $hImage_Disc, 0, 0, $disc_w, $disc_h)
  627.  
  628.         Local $block_count, $bench_timer, $ii
  629.         AdlibRegister("Progress", $perf)
  630.         $p = 0
  631.         _WinAPI_LockDevice($dl, 1)
  632.         FileSetPos($hFileRead, $p, $FILE_BEGIN)
  633.         $bench_timer = TimerInit()
  634.         For $ii = 0 To $blocks
  635.             $bytes = FileRead($hFileRead, $sector)
  636.             FileWrite($hFileSave, $bytes)
  637.             $p += $sector
  638.             FileSetPos($hFileRead, $p, $FILE_BEGIN)
  639.             If TimerDiff($bench_timer) > 999 Then
  640.                 $mbps = ($ii - $block_count) * 2048 / 1024 ^ 2
  641.                 $block_count = $ii
  642.                 $bench_timer = TimerInit()
  643.             EndIf
  644.             If Not Mod($ii, $sector_steps) Then
  645.                 Draw_DiscView($ii + 1)
  646.             EndIf
  647.             $po = Ceiling($ii / $blocks * 100)
  648.             If TimerDiff($t) > $dt Then $abort = True
  649.             If $abort Then ExitLoop
  650.         Next
  651.         If Mod($ii, $sector_steps) Then Draw_DiscView($ii + 1)
  652.         FileClose($hFileSave)
  653.         FileClose($hFileRead)
  654.         AdlibUnRegister("Progress")
  655.         _WinAPI_LockDevice($dl, 0)
  656.         Opt("GUIOnEventMode", 0)
  657.  
  658. ;~      If ProcessExists($pid) Then ProcessClose($pid)
  659.         AdlibRegister("Chk_Drive_Status", 2000)
  660.         GUISetState(@SW_DISABLE, $hGUI)
  661.         If $abort Then
  662.             sndPlaySound($BytePtr_snd_abort, $fuSound)
  663.             $c = MsgBox(4, "Information", "Process aborted!" & @CRLF & @CRLF & _
  664.                     "Delete incomplete iso file?", 0, $hGUI)
  665.             If $c = 6 Then
  666.                 If FileDelete($fn) Then
  667.                     MsgBox(64, "Information", $fn & " has been properly deleted!", 10, $hGUI)
  668.                 Else
  669.                     ErrorMsgBox("Unable to delete " & $fn)
  670.                 EndIf
  671.             EndIf
  672.         Else
  673.             If TimerDiff($err) < 500 Then
  674.                 FileDelete($fn)
  675.                 ErrorMsgBox("An unexpected error has occured :-(")
  676.             Else
  677.                 $speed = Round((FileGetSize($fn) / 1024 ^ 2) / $sek, 2) ;mb/s
  678.                 If BitAND(GUICtrlRead($idCB_MD5), $GUI_CHECKED) Then Create_MD5($fn)
  679.                 If BitAND(GUICtrlRead($idCB_Eject), $GUI_CHECKED) Then
  680.                     $dd = StringLeft($drvl, 1) & ":"
  681.                     If Not _WinAPI_IsDoorOpen($dd) Then _WinAPI_EjectMedia($dd)
  682.                 EndIf
  683.                 If Not $auto_exit Then
  684.                     sndPlaySound($BytePtr_snd_finished, $fuSound)
  685.                     MsgBox(0, "Information", "ISO file has been created successfully in " & $td & " (" & $speed & " mb/s)", 30, $hGUI)
  686.                 EndIf
  687.             EndIf
  688.         EndIf
  689.         If $aero Then $oTB3.SetProgressState($hGUI, $TBPF_NOPROGRESS)
  690.         $started = False
  691.         GUISetState(@SW_ENABLE, $hGUI)
  692.         _GUICtrlMenu_SetItemEnabled($hMenu, 6)
  693.         _GUICtrlMenu_SetItemEnabled($hMenu, 8)
  694.         _GUICtrlMenu_SetItemEnabled($hMenu, 9)
  695.         _GUICtrlMenu_SetItemEnabled($hMenu, 10)
  696.         GUICtrlSetState($idButton_Browse, $GUI_ENABLE)
  697. ;~      GUICtrlSetState($idCB_MD5, $GUI_ENABLE)
  698. ;~      GUICtrlSetState($idCB_Eject, $GUI_ENABLE)
  699.         GUICtrlSetState($idCombo, $GUI_ENABLE)
  700.         GUICtrlSetState($idButton_Create, $GUI_SHOW)
  701.         GUICtrlSetState($idButton_Abort, $GUI_HIDE)
  702.         GUICtrlSetData($idProgressbar, 0)
  703.         WinSetTitle($hGUI, "", $title)
  704.     Else
  705.         $error = @error
  706.         GUISetState(@SW_DISABLE, $hGUI)
  707.         $aDrives = DriveGetDrive("CDROM")
  708.         If DriveGetLabel($aDrives[_GUICtrlComboBox_GetCurSel($hCombo) + 1]) = "Audio CD" Then
  709.             ErrorMsgBox("Audio CD is not support yet!")
  710.         Else
  711.             If $error = 4 Then
  712.                 ErrorMsgBox("HD/BD discs are not supported yet!)")
  713.             Else
  714.                 ErrorMsgBox("Maybe no media is inserted to the drive or not an ISO9660 CD/DVD with 2048 bytes/sector !?!")
  715.             EndIf
  716.         EndIf
  717.         GUISetState(@SW_ENABLE, $hGUI)
  718.     EndIf
  719.     GUISetCursor($mo)
  720.     If $auto_exit Then _Exit()
  721. EndFunc   ;==>Create_ISO
  722.  
  723. Func Draw_DiscView($block)
  724.     _GDIPlus_GraphicsFillEllipse($hGraphic_Disc, -2 + $w2 + Cos($angel * $deg) * $radius, -2 + $h2 + Sin($angel * $deg) * $radius, 4, 4, $hBrush_Disc)
  725.     If Not $switch_view Then
  726.         _GDIPlus_GraphicsDrawImageRectRect($hGraphic_Disc, $hImage_Disc, 65, 65, 44, 44, 65, 65, 44, 44)
  727.         _GDIPlus_GraphicsDrawString($hGraphic_Disc, StringFormat("%.2f%s\n%.2f %s", $block * 2048 / 1024 ^ 2, " /", $MediaSize, " mb"), 66, 76, "Arial", 6)
  728.         $hHBITMAP_Disc = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap_Disk)
  729.         _WinAPI_DeleteObject(GUICtrlSendMsg($id_DiscPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP_Disc))
  730.         _WinAPI_DeleteObject($hHBITMAP_Disc)
  731.     EndIf
  732.     $angel += $s
  733.     If $angel > 359 Then
  734.         $angel = 0
  735.         $radius += 2.35
  736.         $s -= 0.1
  737.     EndIf
  738. EndFunc   ;==>Draw_DiscView
  739.  
  740. Func Progress()
  741.     $sek = Int(TimerDiff($t) / 1000)
  742.     $td = Sec_2_Time_Format($sek)
  743.     WinSetTitle($hGUI, "", $title & "  -  Created: " & $po & " % / Elapsed: " & $td & " (" & StringFormat("%05.2f %s", Round($mbps, 2), "mb/s") & ")")
  744.     GUICtrlSetData($idProgressbar, $po) ;slow down the whole copy process
  745.     If $aero Then $oTB3.SetProgressValue($hGUI, $po, 100)
  746. EndFunc   ;==>Progress
  747.  
  748. Func Switch_View()
  749.     If $switch_view Then
  750.         GUISetState(@SW_SHOW, $hGUI_Disc)
  751.         $switch_view = False
  752.     Else
  753.         GUISetState(@SW_HIDE, $hGUI_Disc)
  754.         $switch_view = True
  755.     EndIf
  756. EndFunc   ;==>Switch_View
  757.  
  758. Func Abort_Ctrl()
  759.     $abort = True
  760. EndFunc   ;==>Abort_Ctrl
  761.  
  762. Func Create_MD5($file)
  763.     Local $aWinPos = WinGetPos($hGUI)
  764.     Local Const $sw = 350
  765.     Local Const $sh = 45
  766.     Local Const $x = $aWinPos[0] + $aWinPos[2] / 2 - $sw / 2
  767.     Local Const $y = $aWinPos[1] + $aWinPos[3] / 2 - $sh / 2
  768.     GUISetState(@SW_MINIMIZE, $hGUI)
  769.     Local Const $txt = "Creating MD5 checksum "
  770.     Local Const $hSplash = SplashTextOn("MD5 Creation Process (ESC to abort)", $txt, $sw, $sh, $x, $y, 4 + 16, "Times New Roman", 16, 400)
  771.     TrayTip("MD5 Checksum", "Started with creation of MD5 checksum...", 3, 1)
  772.     Local $i, $j = 0
  773.     Local $t = TimerInit()
  774.     Local $BufferSize = 0x100000
  775.     Local $State = _MD5Init()
  776.     Local $hFile = FileOpen($file, 16)
  777.     Local $f = Ceiling(FileGetSize($file) / $BufferSize)
  778.     Local $dll = DllOpen("user32.dll")
  779.     Local $esc = False
  780.     For $i = 1 To $f
  781.         _MD5Input_Thread($State, FileRead($hFile, $BufferSize))
  782.         If TimerDiff($t) > 500 Then
  783.             ControlSetText($hSplash, "Creating MD5 checksum...", "Static1", $txt & "(" & StringFormat("%.2f", Round($i / $f * 100, 2)) & " %) " & _StringRepeat(".", Mod($j, 4)))
  784.             $t = TimerInit()
  785.             $j += 1
  786.         EndIf
  787.         If _IsPressed("1B", $dll) Then
  788.             If WinActive($hSplash) Then
  789.                 $esc = True
  790.                 ExitLoop
  791.             EndIf
  792.         EndIf
  793.     Next
  794.     FileClose($hFile)
  795.     DllClose($dll)
  796.     If Not $esc Then
  797.         Local $Hash = StringTrimLeft(_MD5Result($State), 2)
  798.         Local $fname = " *" & StringRegExpReplace($file, ".*\\(.*)", "$1")
  799.         Local $w = "# Generated on " & _Now() & " by " & $prg_name & @CRLF & @CRLF & $Hash & $fname
  800.         $hFile = FileOpen($file & ".md5", 2)
  801.         FileWrite($hFile, $w)
  802.         FileClose($hFile)
  803.         SplashOff()
  804.         TrayTip("MD5 Checksum", "MD5 checksum creation has been finished!", 2, 1)
  805.         GUISetState(@SW_RESTORE, $hGUI)
  806.         If Not $auto_exit Then MsgBox(64, "Information", "MD5 checksum creation has been finished!" & @CRLF & @CRLF & "File saved to '" & $file & ".md5' successfully!", 20, $hGUI)
  807.     Else
  808.         SplashOff()
  809.         TrayTip("MD5 Checksum", "MD5 checksum creation has been aborted!", 2, 2)
  810.         MsgBox(48 + 262144, "Warning", "MD5 checksum creation has been aborted!", 20)
  811.         GUISetState(@SW_RESTORE, $hGUI)
  812.     EndIf
  813. EndFunc   ;==>Create_MD5
  814.  
  815. Func ErrorMsgBox($message, $timer = 30)
  816.     Return MsgBox(16, "Error", "An error has occured." & @CRLF & @CRLF & $message, $timer, $hGUI)
  817. EndFunc   ;==>ErrorMsgBox
  818.  
  819. Func Sec_2_Time_Format($time)
  820.     Local $sec = Mod($time, 60)
  821.     Local $min = Mod(Int($time / 60), 60)
  822.     Local $hr = Int($time / 60 ^ 2)
  823.     Return StringFormat("%02i:%02i:%02i", $hr, $min, $sec)
  824. EndFunc   ;==>Sec_2_Time_Format
  825.  
  826. Func Max($a, $b)
  827.     If $a > $b Then Return $a
  828.     Return $b
  829. EndFunc   ;==>Max
  830.  
  831. Func _WinAPI_CreateBitmapFromIcon($file, $iIndex = 0, $iW = 16, $iH = 16)
  832.     If FileExists($file) Then
  833.         Local $aRet, $hIcon, $hBitmap
  834.         Local $hDC, $hBackDC, $hBackObj
  835.  
  836.         $aRet = DllCall("shell32", "long", "ExtractAssociatedIcon", "int", 0, "str", $file, "word*", $iIndex)
  837.         If @error Then Return SetError(@error, @extended, 0)
  838.         $hIcon = $aRet[0]
  839.  
  840.         $hDC = _WinAPI_GetDC(0)
  841.         $hBackDC = _WinAPI_CreateCompatibleDC($hDC)
  842.         $hBitmap = _WinAPI_CreateSolidBitmap(0, _WinAPI_GetSysColor($COLOR_MENU), $iW, $iH)
  843.         $hBackObj = _WinAPI_SelectObject($hBackDC, $hBitmap)
  844.         _WinAPI_DrawIconEx($hBackDC, 0, 0, $hIcon, $iW, $iH, 0, 0, 3)
  845.         _WinAPI_DestroyIcon($hIcon)
  846.  
  847.         _WinAPI_SelectObject($hBackDC, $hBackObj)
  848.         _WinAPI_ReleaseDC(0, $hDC)
  849.         _WinAPI_DeleteDC($hBackDC)
  850.         Return $hBitmap
  851.     Else
  852.         Return SetError(1, 0, 0)
  853.     EndIf
  854. EndFunc   ;==>_WinAPI_CreateBitmapFromIcon
  855.  
  856. Func Change_Background_Pic($new_pic)
  857.     Local Const $hImage = _GDIPlus_ImageLoadFromFile($new_pic)
  858.     If Not $hImage Then Return SetError(1, 0, 0)
  859. ;~  Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $w, "int", $h, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
  860.     Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0($w, $h) ;$aResult[6]
  861.     Local Const $hCtx = _GDIPlus_ImageGetGraphicsContext($hBmp)
  862.     _GDIPlus_GraphicsSetInterpolationMode($hCtx, 7)
  863. ;~  DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $hCtx, "int", 7)
  864.     _GDIPlus_GraphicsDrawImageRect($hCtx, $hImage, 0, 0, $w, $h)
  865.     Local Const $hHBMP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
  866.     _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBMP))
  867.     _WinAPI_DeleteObject($hHBMP)
  868.     _GDIPlus_ImageDispose($hImage)
  869.     _GDIPlus_BitmapDispose($hBmp)
  870.     _GDIPlus_GraphicsDispose($hCtx)
  871.     _WinAPI_RedrawWindow($hGUI)
  872.     Return 1
  873. EndFunc   ;==>Change_Background_Pic
  874.  
  875. Func Check4Update()
  876.     Local $iRead = InetRead("http://www.autoitscript.com/forum/index.php?showtopic=129859")
  877.     If @error Then Return MsgBox(16, "Error", "Unable to check online! Behind a firewall or proxy?", 30, $hGUI)
  878.     Local $aRegEx = StringRegExp(BinaryToString($iRead), "(?i)<title>ISO Creator\s*(v.+beta)\s*", 1)
  879.     If Not IsArray($aRegEx) Or @error Then Return MsgBox(16, "Error", "Unable to parse line!", 30, $hGUI)
  880.     Local $iVer = $aRegEx[0]
  881.     If $ver = "ISO Creator " & $iVer Then
  882.         MsgBox(64, "Update Information", "Web version: " & $iVer & @LF & @LF & "Your version is up-to-date! :-)", 15, $hGUI)
  883.     Else
  884.         Local $iChk = MsgBox(32 + 4 + 256, "Update Information", "Web version: " & $iVer & @LF & @LF & "Found a newer version. Visit web site?", 30, $hGUI)
  885.         If $iChk = 6 Then ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=129859")
  886.     EndIf
  887.     WinActivate($hGUI)
  888. EndFunc   ;==>Check4Update
  889.  
  890. Func _Exit($cmdl = False)
  891.     If Not $cmdl Then
  892.         $ByteStruct_snd_abort = 0
  893.         $ByteStruct_snd_finished = 0
  894.         $binCapture_snd_finished = 0
  895.         $binCapture_snd_abort = 0
  896.         _GDIPlus_BitmapDispose($hImage_Disc)
  897.         _GDIPlus_BitmapDispose($hBitmap_Disk)
  898.         _GDIPlus_BrushDispose($hBrush_Disc)
  899.         _GDIPlus_GraphicsDispose($hGraphic_Disc)
  900.         _WinAPI_DeleteObject($hBmp_About)
  901.         _WinAPI_DeleteObject($hBmp_ChangeBG)
  902.         _WinAPI_DeleteObject($hBmp_Update)
  903.         _WinAPI_DeleteObject($hBmp_MD5)
  904.         _WinAPI_DeleteObject($hBMP_VisitWeb)
  905.         _WinAPI_DeleteObject($hBmp_EjectMedia)
  906.         _WinAPI_DeleteObject($hBmp_LoadMedia)
  907.         GUISetCursor($mco, 1, $hGUI)
  908.         AdlibUnRegister("Chk_Drive_Status")
  909.  
  910.         GUIRegisterMsg(0x0111, "")
  911.         GUIRegisterMsg(0x0112, "")
  912.         GUIRegisterMsg(0x0133, "")
  913.         GUIRegisterMsg(0x0046, "")
  914.         GUIRegisterMsg(0x007B, "")
  915.         GUIDelete($hGUI_Disc)
  916.     EndIf
  917.     _WinAPI_DeleteObject($hBitmap)
  918.     DllCall("Gdi32.dll", "BOOL", "DeleteObject", "Handle", $hBrush)
  919.     If $aero Then
  920.         $oTB3.SetProgressState($hGUI, $TBPF_NOPROGRESS)
  921.         $oTB3 = 0
  922.         _AutoItObject_Shutdown()
  923.     EndIf
  924.     DllClose($hUser32DLL)
  925.     _GDIPlus_Shutdown()
  926.     If Not $auto_exit Then _WinAPI_AnimateWindow($hGUI, BitOR($AW_BLEND, $AW_HIDE), 750)
  927.     GUIDelete($hGUI)
  928.     Exit
  929. EndFunc   ;==>_Exit
  930.  
  931. Func CheckDiskPos()
  932. ;~  Local $stWINDOWPOS = DllStructCreate("int[6];uint", $lParam)
  933. ;~  Local $iX = DllStructGetData($stWINDOWPOS, 1, 3)
  934.     Local $aPos = WinGetPos($hGUI)
  935.     Local $iX = $aPos[0]
  936.     If Not @error Then
  937.         If $iX + $w + $disc_w + $wFrame > $aFullScreen[2] - Abs($aFullScreen[0]) Then WinMove($hGUI_Disc, "", $aPos[0] - $wFrame - $disc_w + $wFrameF, $aPos[1] + $wTitle)
  938.         If $iX - $disc_w - $wFrame < $aFullScreen[0] Then WinMove($hGUI_Disc, "", $aPos[0] + $w + $wFrame + $wFrameF, $aPos[1] + $wTitle)
  939.     EndIf
  940. ;~     Local $iY = DllStructGetData($stWINDOWPOS, 1, 4)
  941. ;~     Local $iW = DllStructGetData($stWINDOWPOS, 1, 5)
  942. ;~     Local $iH = DllStructGetData($stWINDOWPOS, 1, 6)
  943. ;~  $stWINDOWPOS = 0
  944. EndFunc
  945.  
  946. #region functions for base64 string decompression and decoding
  947. Func _Base64Decode($input_string)
  948.     Local $struct = DllStructCreate("int")
  949.     Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", 0, "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
  950.     If @error Or Not $a_Call[0] Then Return SetError(1, 0, "")
  951.     Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]")
  952.     $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", "str", $input_string, "int", 0, "int", 1, "ptr", DllStructGetPtr($a), "ptr", DllStructGetPtr($struct, 1), "ptr", 0, "ptr", 0)
  953.     If @error Or Not $a_Call[0] Then Return SetError(2, 0, "")
  954.     Return DllStructGetData($a, 1)
  955. EndFunc   ;==>_Base64Decode
  956.  
  957. Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize = 0x800000)
  958.     Local $tBuffer, $Ret
  959.     $tOutput = 0
  960.     $tBuffer = DllStructCreate('byte[' & $iBufferSize & ']')
  961.     If @error Then Return SetError(1, 0, 0)
  962.     $Ret = DllCall('ntdll.dll', 'uint', 'RtlDecompressBuffer', 'ushort', 0x0002, 'ptr', DllStructGetPtr($tBuffer), 'ulong', $iBufferSize, 'ptr', DllStructGetPtr($tInput), 'ulong', DllStructGetSize($tInput), 'ulong*', 0)
  963.     If @error Then Return SetError(2, 0, 0)
  964.     If $Ret[0] Then Return SetError(3, $Ret[0], 0)
  965.     $tOutput = DllStructCreate('byte[' & $Ret[6] & ']')
  966.     If Not _WinAPI_MoveMemory(DllStructGetPtr($tOutput), DllStructGetPtr($tBuffer), $Ret[6]) Then
  967.         $tOutput = 0
  968.         Return SetError(4, 0, 0)
  969.     EndIf
  970.     Return $Ret[6]
  971. EndFunc   ;==>_WinAPI_LZNTDecompress
  972. #endregion
  973.  
  974. ;http://msdn.microsoft.com/en-us/library/aa910369.aspx WAVE
  975. ;http://msdn.microsoft.com/en-us/library/aa909803.aspx
  976. #region play wave from memory by  wolf9228
  977. Func sndPlaySound($lpszSound, $fuSound)
  978.     Local $Type = "wstr", $aRes
  979.     If IsPtr($lpszSound) Then $Type = "ptr"
  980.     $aRes = DllCall("winmm.dll", "int", "sndPlaySound", $Type, $lpszSound, "dword", $fuSound)
  981.     If @error Then Return SetError(1, 0, 0)
  982.     Return $aRes[0]
  983. EndFunc   ;==>sndPlaySound
  984. #endregion play wave from memory by  wolf9228
  985.  
  986. #region Windows Message Code Section
  987. Func WM_WINDOWPOSCHANGING($hWnd, $iMsg, $wParam, $lParam)
  988.     #forceref $hWnd, $iMsg, $wParam, $lParam
  989.     If $hWnd <> $hGUI Then Return "GUI_RUNDEFMSG"
  990.     CheckDiskPos()
  991.     Return "GUI_RUNDEFMSG"
  992. EndFunc   ;==>WM_WINDOWPOSCHANGING
  993.  
  994. Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
  995.     #forceref $Msg
  996.     Local $hWndFrom, $iIDFrom, $iCode, $d
  997.     $hWndFrom = $lParam
  998.     $iIDFrom = BitAND($wParam, 0xFFFF)
  999.     $iCode = BitShift($wParam, 16)
  1000.     Switch $hWndFrom
  1001.         Case $hCombo
  1002.             Switch $iCode
  1003.                 Case $CBN_SELENDOK, $CBN_CLOSEUP
  1004.                     ControlFocus($hGUI, '', $idButton_Browse)
  1005.                     $combo_min = True
  1006.                 Case $CBN_DROPDOWN
  1007.                     $combo_min = False
  1008.             EndSwitch
  1009.     EndSwitch
  1010.  
  1011.     Switch $wParam
  1012.         Case $idEjectMedia
  1013.             $d = StringLeft(GUICtrlRead($idCombo), 1) & ":"
  1014.             If Not _WinAPI_IsDoorOpen($d) Then _WinAPI_EjectMedia($d)
  1015.  
  1016.         Case $idLoadMedia
  1017.             $d = StringLeft(GUICtrlRead($idCombo), 1) & ":"
  1018.             If _WinAPI_IsDoorOpen($d) Then _WinAPI_LoadMedia($d)
  1019.     EndSwitch
  1020.  
  1021.     Switch $iIDFrom
  1022.         Case $idInput_Filename
  1023.             DllCall('user32.dll', 'int', 'HideCaret', 'hwnd', $hWnd)
  1024.             DllCall('user32.dll', 'int', 'DestroyCaret')
  1025.             If Not $fs Then
  1026.                 If StringLen(GUICtrlRead($idInput_Filename)) < 2 Then GUICtrlSetData($idInput_Filename, "")
  1027.             Else
  1028.                 GUICtrlSetData($idInput_Filename, $saveas)
  1029.             EndIf
  1030.     EndSwitch
  1031.  
  1032.     Return "GUI_RUNDEFMSG"
  1033. EndFunc   ;==>WM_COMMAND
  1034.  
  1035. Func WM_CONTEXTMENU($hWnd, $Msg, $wParam, $lParam)
  1036.     #forceref $hWnd, $Msg, $wParam, $lParam
  1037.     Local $mi = GUIGetCursorInfo()
  1038.     If IsArray($mi) Then
  1039.         If $mi[4] = $idCombo And Not $started Then
  1040.             _GUICtrlMenu_TrackPopupMenu($hQMenu, $hWnd)
  1041.             Return True
  1042.         EndIf
  1043.     EndIf
  1044.     Return "GUI_RUNDEFMSG"
  1045. EndFunc   ;==>WM_CONTEXTMENU
  1046.  
  1047. Func WM_SYSCOMMAND($hGUI, $Msg, $wParam, $lParam)
  1048.     #forceref $hGUI, $Msg, $lParam
  1049.     Switch BitAND($wParam, 0xFFFF)
  1050.         Case $idAbout
  1051.             GUISetState(@SW_DISABLE, $hGUI)
  1052.             MsgBox(64, "About", $prg_name & $build & @LF & @LF & _
  1053.                     "Credits:" & @LF & _
  1054.                     "Main code by UEZ using AutoIt ;-)" & @LF & _
  1055.                     "MD5 checksum code by Ward" & @LF & _
  1056.                     "AutoItObject by AutoItObject-Team" & @LF & _
  1057.                     "WinAPIEx by Yashied" & @LF & @LF & _
  1058.                     "Thanks to smashly for pointing me to right direction ;-)" & @LF & _
  1059.                     "And smartee for his efforts on this little project :-)", 90, $hGUI)
  1060.             GUISetState(@SW_ENABLE, $hGUI)
  1061.  
  1062.         Case $idChangeBGPic
  1063.             Local $chk_bg = MsgBox(3 + 48 + 4096, "Setting", "Change default background picture?" & @CRLF & _
  1064.                     "(best resolution is 615x157)" & @CRLF & @CRLF & _
  1065.                     "Yes = Browse and select a new picture" & @CRLF & _
  1066.                     "No = Reset to default picture" & @CRLF & _
  1067.                     "Cancel = Cancel this operation", 0, $hGUI)
  1068.             Switch $chk_bg
  1069.                 Case 6
  1070.                     Local Const $new_pic = FileOpenDialog("Select an image (best dimension: 615x157)", "", "Images (*.jpg;*png;*.bmp;*.gif)", 3, "", $hGUI)
  1071.                     If @error Then Return 0
  1072.                     Local $Result = Change_Background_Pic($new_pic)
  1073.                     If $Result Then IniWrite($ini_file, "Settings", "Background_Pic", $new_pic)
  1074.                     ControlFocus($hGUI, "", $idButton_Browse)
  1075.                     Return 1
  1076.                 Case 7
  1077.                     Local Const $hHBITMAP = _GDIPlus_BitmapCreateFromMemory(BackgroundPic(), True)
  1078.                     _WinAPI_DeleteObject(GUICtrlSendMsg($idPic, $STM_SETIMAGE, $IMAGE_BITMAP, $hHBITMAP))
  1079.                     _WinAPI_DeleteObject($hHBITMAP)
  1080.                     _WinAPI_RedrawWindow($hGUI)
  1081.                     IniWrite($ini_file, "Settings", "Background_Pic", "0")
  1082.             EndSwitch
  1083.         Case $idMD5
  1084.             Local $file_MD5 = FileOpenDialog("Select an ISO to create MD5 checksum", "", "ISO (*.iso)", 11, "", $hGUI)
  1085.             If Not @error Then Create_MD5($file_MD5)
  1086.         Case $idUpd
  1087.             Check4Update()
  1088.         Case $idVisitWeb
  1089.             ShellExecute("http://www.autoitscript.com/forum/index.php?showtopic=129859")
  1090.     EndSwitch
  1091.     Return "GUI_RUNDEFMSG"
  1092. EndFunc   ;==>WM_SYSCOMMAND
  1093.  
  1094. Func WM_CTLCOLOREDIT($hGUI, $Msg, $wParam, $lParam)
  1095.     #forceref $hGUI, $Msg
  1096.     If $lParam = $hInput_Filename Then
  1097.         If Not $started Then GUISetCursor(2, 1, $hGUI)
  1098.         DllCall("Gdi32.dll", "uint", "SetTextColor", "handle", $wParam, "uint", $idInput_Filename_Color)
  1099.         DllCall("Gdi32.dll", "int", "SetBkMode", "handle", $wParam, "int", 1)
  1100.         Return $hBrush
  1101.     EndIf
  1102.     Return "GUI_RUNDEFMSG"
  1103. EndFunc   ;==>WM_CTLCOLOREDIT
  1104. #endregion Windows Message Code Section
  1105.  
  1106. ; #FUNCTION# ====================================================================================================================
  1107. ; Name...........: _WinAPI_AnimateWindow
  1108. ; Description....: Enables you to produce special effects when showing or hiding windows.
  1109. ; Syntax.........: _WinAPI_AnimateWindow ( $hWnd, $iFlags [, $iDuration] )
  1110. ; Parameters.....: $hWnd      - Handle to the window to animate.
  1111. ;                  $iFlags    - The flags that specify the type of animation. This parameter can be one or more of the following
  1112. ;                               values. Note that, by default, these flags take effect when showing a window. To take effect when
  1113. ;                               hiding a window, use AW_HIDE and a logical OR operator with the appropriate flags.
  1114. ;
  1115. ;                               $AW_SLIDE
  1116. ;                               $AW_ACTIVATE
  1117. ;                               $AW_BLEND
  1118. ;                               $AW_HIDE
  1119. ;                               $AW_CENTER
  1120. ;                               $AW_HOR_POSITIVE
  1121. ;                               $AW_HOR_NEGATIVE
  1122. ;                               $AW_VER_POSITIVE
  1123. ;                               $AW_VER_NEGATIVE
  1124. ;
  1125. ;                  $iDuration - Specifies how long it takes to play the animation, in milliseconds. Default is 1000.
  1126. ; Return values..: Success    - 1.
  1127. ;                  Failure    - 0 and sets the @error flag to non-zero.
  1128. ; Author.........: Yashied
  1129. ; Modified.......:
  1130. ; Remarks........: None
  1131. ; Related........:
  1132. ; Link...........: @@MsdnLink@@ AnimateWindow
  1133. ; Example........: Yes
  1134. ; ===============================================================================================================================
  1135. Func _WinAPI_AnimateWindow($hWnd, $iFlags, $iDuration = 1000)
  1136.     Local $Ret = DllCall('user32.dll', 'int', 'AnimateWindow', 'hwnd', $hWnd, 'dword', $iDuration, 'dword', $iFlags)
  1137.     If (@error) Or (Not $Ret[0]) Then Return SetError(1, 0, 0)
  1138.     Return 1
  1139. EndFunc   ;==>_WinAPI_AnimateWindow
  1140. #endregion WinAPIEx functions
  1141.  
  1142. #region MD5 checksum
  1143. Func _MD5Input_Thread(ByRef $Context, $Data)
  1144.     Local $Opcode
  1145.     If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
  1146.     If Not IsDllStruct($Context) Then Return SetError(1, 0, 0)
  1147.  
  1148.     $Data = Binary($Data)
  1149.     Local $InputLen = BinaryLen($Data)
  1150.     Local $Input = DllStructCreate("byte[" & $InputLen & "]")
  1151.     DllStructSetData($Input, 1, $Data)
  1152.  
  1153.     If @AutoItX64 Then
  1154.         $Opcode = Binary('0x4883EC084989C8488B5110498B004D8B4820488B49084D8B40184883C408FFE0')
  1155.     Else
  1156.         $Opcode = Binary('0x83EC1C8B4424208B50108954240C8B500C895424088B5008895424048B5004891424FF1083EC1083C41CC20400')
  1157.     EndIf
  1158.  
  1159.     Local $CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
  1160.     Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $CodeBufferMemory)
  1161.     DllStructSetData($CodeBuffer, 1, $Opcode)
  1162.  
  1163.     Local $ThreadParam = DllStructCreate("ptr addr; ptr var1; ptr var2; uint var3; int var4")
  1164.     DllStructSetData($ThreadParam, 'addr', DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InputOffset)
  1165.     DllStructSetData($ThreadParam, 'var1', DllStructGetPtr($Context))
  1166.     DllStructSetData($ThreadParam, 'var2', DllStructGetPtr($Input))
  1167.     DllStructSetData($ThreadParam, 'var3', $InputLen)
  1168.     DllStructSetData($ThreadParam, 'var4', 0)
  1169.  
  1170.     Local $Ret = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "uint", 0, "ptr", _
  1171.             DllStructGetPtr($CodeBuffer), "ptr", DllStructGetPtr($ThreadParam), "uint", 0, "uint", 0)
  1172.     Local $ThreadHandle = $Ret[0]
  1173.     Do
  1174.         Sleep(10)
  1175.         $Ret = DllCall("kernel32.dll", "int", "GetExitCodeThread", "hwnd", $ThreadHandle, "uint*", 0)
  1176.     Until $Ret[2] <> 259 ; STILL_ACTIVE
  1177. EndFunc   ;==>_MD5Input_Thread
  1178.  
  1179. Func _MD5_Exit()
  1180.     $_MD5_CodeBuffer = 0
  1181.     _MemVirtualFree($_MD5_CodeBufferMemory, 0, $MEM_RELEASE)
  1182. EndFunc   ;==>_MD5_Exit
  1183.  
  1184. Func _MD5_Startup()
  1185.     Local $Code
  1186.     If Not IsDllStruct($_MD5_CodeBuffer) Then
  1187.         If @AutoItX64 Then
  1188.             $Code = 'BQsAAIkO2+kECRwYhw5XCIPUBK4KD0GcnVYdVZxU/HcAU0iD7ChEiyHHBnoMZwKDWggZEnIECEkTWQMieRBBjbT4eKRqf9c/ifgGaRgx2C5jUV4h8PB8JBT3+PhHAY28OVa3x+j9bP0Q7AQG7t7BKPbBwAfYAfA9IcZ9d0EO94txCMPBxwx0FABEjawe23AgJDmJwzp0sxhQ82M2hCH7YBOKtDPuzjG9wdZcHcOwwxFG8CxjO977MdY+b+sKoIQ4rw98UPWLJNiKvonrxp7GFmo++0Wq7oSAriHzog0AhzcqxocoRwGfKYnzgAox64NGwxHANqwtE0YwUKi9HM2A3/oKjmjufURFDy7jlUb9Nijd6Tw2xRHmuP9We+OhBSBEcQJuXCQMgIwY2JiAVWmGo+t7hD+v94QWK3sgRw4VsVv/NXjb30L3eGzhuCyjcGXduQRDiR6+18+6+s7q74JsUv+mhUcwZSr3QYQiEZBrvzXIkhJ5NGBuiTwkpIkUk3GYunygjjHvdkEPwCHHRQrwCwwB/1A4rvgSRSH4QBI9jkN5ptk9pMVBukE8Avmb+aQy6UmQBtkI0UmbIELawGIlHmX2cs4ogYlm8abpSm/5DcLIi0xC9wSBBVj9D0Bys/iJ/5sy8YlQDc8Mag+8pA4EwScJAUZH7QpRWl4mmRzP1TGHN/fN16qStum'
  1189.             $Code &= 'NDu4TgA49zM1R+LQgQhi78jBdGxAv1hsyOv75FCw69/tRzyHPQJeMEVOYPWwCHfb4rIHRsO9jQCHvA9MFgeah2GUdLvlRfHTQbJCVihRxaIaBPsj70+ddeQlyAiMImnegBTjmzeFXIX9g/DnWBzdGw6Adhw0j1fTxDA8E7RRaRStRzwt9BAXp46ktCXYCRRiSe6ANOfij71L8g92gBC3ZAm9nOkhlg4pMKrV0i9KKHE16swz+JMjGfYJCOfr/Ac5EA6lFf02gMJo8FDiLRL+GxwTuBgGB9nGHiJJGknJd6A5t0jtT7wtE8YYFCyJhnW2sODTwwPE+DDjl/fTIx9bFiVzpELs+JCIG6r6k/9mDDMa7WmbbF0za321LsCijFG7YyeOpzyLeS9Bb5Y9ghrv2jbB4TQHBSXFUThYJcLy/vggYgYv4MaNQTA2HUonFhbn9CZQQLwYKzVgFiywkEmVR1IA8L4x+myhIzck4xSBrIPonoWbqXvUyJCwvcrQqiGsZCoUw79SyooRJ9X5SBEOoFMcL2YUB72SD2QvOoOkOBR2IUgSSVacxJQiHDGoO6kgUCIUmFx+BNTnQ1NmU5MaQZZr+kDcf5Zkk2+Zrtr0s7UZoGlXGjMD4fCSiH5lPzO5spAQlRCIp9JQFH5aoeokw77CDuqwvlxP/KkNQCWRJFDQQ8UC2MWVWrMSSz8D'
  1190.             $Code &= 'COKcjlKvVjQputcb31UJp8TIZ4wxWkyJJ1hsbCc45Kqb0RcbExAb0f8woCeXHSeA2GffQZu0lJYKtOaCT/IWjCkxG5Wzt3bCoxAOkHMNZW2UyIu98bGgAxw/JFAkGgOiuqicAoCuSzAxmj9IVjJAWCQnIicsPL0zTvMTzUKa8F30U9O//b2w640QkCeD7Irzu0RNdhIUVKPw2ENnTEwnriUoQ46qU35J3kg8GPE9+qG/T05Q2quEd+zHrjtmJ1Ggi00nOG0HOgfy0KODmLO6llxR21cgd4zHLwN6NnAcUQ/yjmIuQCmkK+KxwzOZNCVks4E6CoREITkD9AcOr/bHXwd0PULnzCdiQ7KongJcsgn5TUPekrAYuNfI6vd00id7uAZgJzzHfIncBvDO70tcqReQKhwaHhMgJxoCojTQu38k9fHTzJXIMg88cHwVPOZHThgDUwQMC99Hbw76QWggJTNnCAokCi0IEUDf+2Ni1EAiJfkoASIPEKFteX105QVxvCB28p8MYvEmJftVnVArMn8tMCfhmxR1NhcDBi3FQdF/w5j8DTI15QEG+nwwC6wANSQFcJFBIhR7/dEalo+T1KZdH6/A5+3YE9v372/vxM4rYhuq23ONgHEgGKd/osAJqBoP+QHXILGf6'
  1191.             $Code &= 'BuGRMPboMAH/41hGdVK6krPrhPRKSBiJ11YIzlPKaMOOjiBJgfh/dn5BkUFQ9OA/IHVHDGZAMe1A+cw+4szp30Q/m+h2r+WDOysGGvg/d+RENEPAOhvDXrtBYmcyVAeHhSbxAV5QkeMghcO9IdMpxUO06DMy75Drue7+u4gzorDx1cZ+NI0uoQtD6cZEUZcY6MejkXCHuFIHJAEjRWfrobCJq82blosgAxkI/ty6mAMRDHZUMhAbqkFAMG8rE5mXGEnYpRKGrCAKmCZmKArLBpB9aTAKAV44v4Cgq79/ZNpnxIFmwdP/mQrGIs1E8kTN99nkkNH10AEJwB74OEKIDBgDdnJIQbikz4H5Y6hqf5jUDSnAMdKaQYI/AUNL4j0W2ZRT9rdzDMMBujhRDzOFpQ1A+ccCkRSpiAQRsACJ0THAwekDKPbCzAzJ80irKq2LZBxRs0CD4gF0HybGBwoUGnIhOFDo0NAltQVDUIn2JXVMk8YOQw046Nb1+p4wQNxFMgxEBAQISBAIIExqDGIHT5CepARP8T9M0v9RKfTDxmADpI17AbIbN+lNhpBmxweohuoC0Da7GulGIwgQEhEEdCHpPmgPlUQykS8iP0hT7yTRbaxrKSAkW4nodBLNCqnfY+kmJhtWfpnPBtZAmsH88wqkX17DEETQMqpjogAA'
  1192.         Else
  1193.             $Code = 'XgsAAIkA24PsBItEJAjz26DoLgnhw/vE+cIQwYeRLxwbKIk3eRGKBCcgIVcICByJCR0PHxBhCqBVV1ZjU0JEix2EagxdMthaEHoEAIlMJDyNtDF4HqRq193px9kh+b7AAc6LSAQewcYHGP47OI0DrClWt8fo2Nkx+Tch8ULzTA2Ai2gIccE/DAF8Bpwd23Ag2kFc0fPZbOQ0MWH7Ngwhy5gOAyeNvAE97s69wYl8nT3PwMMRMfcBy8xLMEYQMyHfGgNhMfIurw/g9YlhdBbBxxbc3gHMMM5HLIAUIWb+FgMxAY2MKSrGh0dUiieTdfkQlYRkRygKGI9GAzGAhysTEEYwqJGXQYoEmRuBR/QKHIxwLwEZlUb9LSBWijLtWZYEkRCIjPDYmIBCaUGJFo7+g443YRxaSox4r/eQP4WMRBgIKHixW3H/hUQUCCx4vtfwiaSCiowzhSBHEFMwjMEiEZBrIhjaP42xCPZEIISN8PX8cBI0wcUKov2TPw6TcZjwkJBlYQgYhzY4IVLpjoAzjkN5polA0etUTg2Uiw71AZRA+4+eH96CWDyJyIrNnR/oM7TwQAydH+4IPrRJpsc+mzj5yvdgAAViACUe9on4MfAhb8gI70T8KoviwXjAJAH4EY5As16izMDBLRCZJLpl90BBw1FaXiabKzzz/AcJAU8izjHGrr+NAyNQBqr'
  1194.             $Code &= 'HtmnpQQbUfEEoxg6B8vcMMc8hxwgDwCONhChdEDAv1kEUiUSJx96Ii4RRA7Ej91MU4QIJAKIegeYpodiSoIeHgyF04Y10NUi4LKtpBPvI+9PnSBhIeNjmzX7hiQQagdYHN8OUQTB8R3XR+ASHDdX0SBzUCO0UWkWRCKgFEenjqSM0U/Cj7/zKQSCA1ArZAm9nfF6EbX31dM19LMqDDIyHikwqaRSE8DzxT4YDQjn6/4tDUIEmMWg9JigSkxwIdAROgYH2cYdJliQ3wcwxENYLmFTA9gYiYZ1tGYnoMTTI/camMSeSECBuBww4TOWkQcKTNPAoWheG9uobvqSJjCY0+FjkLAgEYKnP3kuE3Sk8XJVA3sE+Ac1pIIa/xdTnAA5gS0y7lEH4Zq9lMBQIau4OD3Blv77WyTSwnn0MUYvLZKoXiIQ4EsZ+m5M+QHQp0OeLIciQPGXiz0GL+ieh6lajNGz4wDEwoWn9AQaF6O/Uqusvva8EthI9JvrU0xgBeAUdiARMonSLQOSKwYZBGLni1Io5FdDU2aJmNPHAyjEMaSL0Ag3lmdvmia3QZHVMVjooBhj4fKIfyjIB+f/IGTQGzGDN/2VWrMSqlweB6PXGNq+9iegH7CIpYfQw99AJYrU/BNXWQBv'
  1195.             $Code &= 'ABgH98Iw5DZf/KkMhCZ0gJOkS99EJTQ0DGYHQPacjlKsxbsXXkuwKALkJzzHHjSR8PXdFKAmdDykGADw5oJP8izB4xi0M99ZcCfukgBHDWVtLZVtY7FQ32hXC+gH+CUcwsvz1D6GSzAyPRMtVme1IHc4UvZEKAZwZ4OYs/lC6ffTvSP+BakNTpA5SIH0G0V2ETIU+ajVvq20QHCYVD4CsNU9+qG+Yy4KQQAsJxqDSMf6zz7jBueykCU6o7hgLicPV99OS7pDYOxRDoqMuCAnmH/PBHB/Bww+BKiihEQhOsPQvLAHLyM3YRgfFwDYugn5T99rAN4V22ED2xjHejTRsN7s2KQI18jq9idkjNAFC92w2D9U2Biu70tcq7M03GOqh8mznkfKG6whowgMykWqJ4ItymAY5WgidSgyV3uMfiUKAg8REW15fH13DVQ/VV+PPVlMAoIPsTIXJi1DidBx5jUB+kuI/SXU8QMMc6z0ii1xWyTCuT4nHriUbA+JcoJlIUBFYAVSF/3RHvkCsJ6IBOf52AonSjy+S1lzmfvVRVPayd/TQehTyAttzJfDyg/oZQHWoFzxALeja93H/CjHS65eVEUyTiDIskopmSEFA2e38/n+okRwPOIaAVUTroEJQgwvgP3VEkPMx//bFsA1y2FzqpXl57zToi58P5jd/Rz936oBGwInCo86uWfZU'
  1196.             $Code &= 'ZBPqLlhhAXKhu3rrIeAslL+/gYnaKcdM6vk9AfsO/ujjeIrrop75zSqUbATChLIBBuu8cZhL0GA8Gum7UQasEEsHFI1QQMcuYQEjRWe9Du6lH5hCaqvNYO8OCP7cukCYDA12VDIQONYTeoiRcy4CCkS/1ETT5b5DccOydMbcSVBAQf2/jqjNkAr32SHRwJ4JR4gMA4LAAYDYOHZmupFyh8KNe4rqFQOeJAiZvMJCpiJQ8PqSEVR8ut/+e1H2o8zDATC6OD8PhZ7CDffHAqQMn0mJgNjAwekCOfbCmfOrJJ0VAC8BdCrGB6HpJaFmZiFjUe2EEY1DQIiUiyV7UAd90nBrVA+kDv0Dwed2CzsRgtRTPERq7kNQOIfoKPr1gf2ZWwYKRPxGBMgMSBAIIExJDNxkUnSiIFLLJkgDhsPGA7YDewGyN+lVcm4VZscHkhzqAuizK+lRELIbViFTMckgRBjZ+YwgbIGQmmLfpf7RCxggmBhbMelgG1ZXp78kgxCltCHm5C/8BIP5CHInggcBKQKWpElMEfQFEmalgwQLicqTEPPUhxnD4QO5pOu6FgZfXsNXd0QQMDEPttIMaSGHswOtCCF0AwUKqkkhCnX2Uj/8Qk0QQKpfYMMA'
  1197.         EndIf
  1198.         Local $Opcode = String(_MD5_CodeDecompress($Code))
  1199.         $_MD5_InitOffset = (StringInStr($Opcode, "89DB") - 3) / 2
  1200.         $_MD5_InputOffset = (StringInStr($Opcode, "87DB") - 3) / 2
  1201.         $_MD5_ResultOffset = (StringInStr($Opcode, "09DB") - 3) / 2
  1202.         $Opcode = Binary($Opcode)
  1203.  
  1204.         $_MD5_CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
  1205.         $_MD5_CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $_MD5_CodeBufferMemory)
  1206.         DllStructSetData($_MD5_CodeBuffer, 1, $Opcode)
  1207.         OnAutoItExitRegister("_MD5_Exit")
  1208.     EndIf
  1209. EndFunc   ;==>_MD5_Startup
  1210.  
  1211. Func _MD5Init()
  1212.     If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
  1213.     Local $Context = DllStructCreate("byte[" & $_HASH_MD5[1] & "]")
  1214.     DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InitOffset, _
  1215.             "ptr", DllStructGetPtr($Context), _
  1216.             "int", 0, _
  1217.             "int", 0, _
  1218.             "int", 0)
  1219.  
  1220.     Return $Context
  1221. EndFunc   ;==>_MD5Init
  1222.  
  1223. Func _MD5Input(ByRef $Context, $Data)
  1224.     If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
  1225.     If Not IsDllStruct($Context) Then Return SetError(1, 0, 0)
  1226.  
  1227.     $Data = Binary($Data)
  1228.     Local $InputLen = BinaryLen($Data)
  1229.     Local $Input = DllStructCreate("byte[" & $InputLen & "]")
  1230.     DllStructSetData($Input, 1, $Data)
  1231.     DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_InputOffset, _
  1232.             "ptr", DllStructGetPtr($Context), _
  1233.             "ptr", DllStructGetPtr($Input), _
  1234.             "uint", $InputLen, _
  1235.             "int", 0)
  1236. EndFunc   ;==>_MD5Input
  1237.  
  1238. Func _MD5Result(ByRef $Context)
  1239.     If Not IsDllStruct($_MD5_CodeBuffer) Then _MD5_Startup()
  1240.     If Not IsDllStruct($Context) Then Return SetError(1, 0, "")
  1241.  
  1242.     Local $Digest = DllStructCreate("byte[" & $_HASH_MD5[0] & "]")
  1243.     DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($_MD5_CodeBuffer) + $_MD5_ResultOffset, _
  1244.             "ptr", DllStructGetPtr($Context), _
  1245.             "ptr", DllStructGetPtr($Digest), _
  1246.             "int", 0, _
  1247.             "int", 0)
  1248.     Return DllStructGetData($Digest, 1)
  1249. EndFunc   ;==>_MD5Result
  1250.  
  1251. Func _MD5($Data)
  1252.     Local $Context = _MD5Init()
  1253.     _MD5Input($Context, $Data)
  1254.     Return _MD5Result($Context)
  1255. EndFunc   ;==>_MD5
  1256.  
  1257. Func _MD5_CodeDecompress($Code)
  1258.     Local $Opcode
  1259.     If @AutoItX64 Then
  1260.         $Opcode = '0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  1261.     Else
  1262.         $Opcode = '0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
  1263.     EndIf
  1264.     Local $AP_Decompress = (StringInStr($Opcode, "89C0") - 3) / 2
  1265.     Local $B64D_Init = (StringInStr($Opcode, "89D2") - 3) / 2
  1266.     Local $B64D_DecodeData = (StringInStr($Opcode, "89F6") - 3) / 2
  1267.     $Opcode = Binary($Opcode)
  1268.  
  1269.     Local $CodeBufferMemory = _MemVirtualAlloc(0, BinaryLen($Opcode), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
  1270.     Local $CodeBuffer = DllStructCreate("byte[" & BinaryLen($Opcode) & "]", $CodeBufferMemory)
  1271.     DllStructSetData($CodeBuffer, 1, $Opcode)
  1272.  
  1273.     Local $B64D_State = DllStructCreate("byte[16]")
  1274.     Local $Length = StringLen($Code)
  1275.     Local $Output = DllStructCreate("byte[" & $Length & "]")
  1276.  
  1277.     DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_Init, _
  1278.             "ptr", DllStructGetPtr($B64D_State), _
  1279.             "int", 0, _
  1280.             "int", 0, _
  1281.             "int", 0)
  1282.  
  1283.     DllCall("user32.dll", "int", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $B64D_DecodeData, _
  1284.             "str", $Code, _
  1285.             "uint", $Length, _
  1286.             "ptr", DllStructGetPtr($Output), _
  1287.             "ptr", DllStructGetPtr($B64D_State))
  1288.  
  1289.     Local $ResultLen = DllStructGetData(DllStructCreate("uint", DllStructGetPtr($Output)), 1)
  1290.     Local $Result = DllStructCreate("byte[" & ($ResultLen + 16) & "]")
  1291.  
  1292.     Local $Ret = DllCall("user32.dll", "uint", "CallWindowProc", "ptr", DllStructGetPtr($CodeBuffer) + $AP_Decompress, _
  1293.             "ptr", DllStructGetPtr($Output) + 4, _
  1294.             "ptr", DllStructGetPtr($Result), _
  1295.             "int", 0, _
  1296.             "int", 0)
  1297.  
  1298.     _MemVirtualFree($CodeBufferMemory, 0, $MEM_RELEASE)
  1299.     Return BinaryMid(DllStructGetData($Result, 1), 1, $Ret[0])
  1300. EndFunc   ;==>_MD5_CodeDecompress
  1301. #endregion MD5 checksum
  1302.  
  1303. #region binary strings
  1304. Func BackgroundPic()
  1305.     Local $BackgroundPic
  1306.     $BackgroundPic &= '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'
  1307.     $BackgroundPic &= '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'
  1308.     $BackgroundPic &= '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'
  1309.     $BackgroundPic &= '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'
  1310.     $BackgroundPic &= 'Daks6CbuRATb7GFCrSzbPiaAQWIbS9WN2Su8NWeDH5KJJ+BQ3iEeY53bhoWpRQPoImsJX5yXdz5rHwkrzoVsv2XxI4Q9KuH90d8KoQkT0vb7oirIGstBihMgEgp8SyL3bO7BTl/jBE2vZnkHOKm2nwCL3eLO+Dxn55jQdpWcjaQ9OEd3WJVSmPVlmaurRCANUR33jc8M1SURP4dUXYZaVTAZA1gCGpIOyu9W+3n1mMieZZRWGpzVqD+aK3IHYUT3tum3gshs191aCVF3zjfslFNpIYhGcDMVzdNuV/gs/q+YBAtuqEpSaouNZVJJJJkb2RSJJIPbuO1x+QdpnLpP/8QAHhEBAQEBAQEBAQEBAQAAAAAAAQARECAwIUAxQVD/2gAIAQMBAT8Q/rOESy8CWXzPSyebbLbL/wCJllln3GGXgRMx4nhBZJM2/TLLLP5ciHiMssss+Yw8yDjPRCSYi2WZ+OWRDyB4Z/CcJwsttvcssss+OwwdSSzhSQkiGWW34ZEOGc2223mcMZn0CKTJZZnxtvjOEs9kNvGyzgwySdX4BEONttt9DbxjX5A4BbLLMttvvY5kx9CIWWWWWcLZmZ9ZEJmSy2+tthhiLb/fkAcglnizFtttt7lngeManodyzjLJeFl9HDmWyz5bbbbbYYbfIPYhZJLkxmy8D3bbbfOw348EzwMogsssk4E+g4Gb/Jbbebbxttss8CE2IQhwZ9y3obLMZvO2922223wCH76h4EG3qR9A4GE19Yb5et4INsMMPD6fSxZZi8CExxt4G3i8bDyTSGeggsg6Iz5kzgzbfDbHlsss4oODDLPoZm7akyU2WRbkwY4lnB4rYhFwMngcDbbLbLKeiGHJZ4D4SzxvHmWR1LVHN85xnYdwzOE8UPWW2JJODKcGll0OWW2228TgOHJYcl5kHG2Huy29yIcAQx+zXsThBZEA4spJJ4ZJZH5E2Y8ETMlkpchJw8LLbxsMeEQ/JTtgsjjMNvG2RM6BZFkESyzxmI5sNvGbLLLJOHhk2WQcbJJOLgukPFZbbYYYfAb/AJOf2IHlIJOCEzwFkHdll5ssxbbbbbbMyWT5zh6M5nGySCcP54dlltthhiYxGX5De2WWWWWWWWWdyCJndtt8Mz08bbb1LLJLLPGWWWWeR/EeRnp0eTh/bJ5nkMssssg6BEy2229Zt49Iep3be5ZZZZZZZZZZZZZw4/kvBtlltthh4PAhtlggsOMsssskss5tttstvpltt8jDDxs8bbbb4yyyyyZeNi2W3m2zGPI4TmtttsWzCnBe7Lbbbbbb8GWX4bHMsknxtttttttvDFl7tvpJjyPhNttiHwNttt+qy/IiOM/DbbbbbftlllnM+O22222+j4LL6//EAB0RAQEBAQEBAQEBAQAAAAAAAAEAERAgMCFAMVD/2gAIAQIBAT8Q/nGHj1LIPb08nck97/zNtt5knGe3pxnhHX/ibbbbbb9TrPwW2HjZBZZ9tttttt/iWYttttsMNttvy22ySSyW23jPDwRPy2223zttttv12WW35bbbbb7LbeMvB87D3Ob7223znw2GH5MsvkILPhtsNtvnbeLPd4WWR8ltt/hGPistvAg4OjLPG29222H0sz3bYYssj3ssvCPOWQeBklnM4Me2WW2EQIhCZT3LLJ7llnB9sttvBhh+C2+COZZZZwWkx4GMSyzh7ZLIggteBmQJz0OEmZZZZZJP5D6SZlnNhhj0zB5AI4JzbeFbfkh6Kcyyz2ycEC2sY/JeCmDHQeBrhckIh8rLbb4GPK2wRCvZHHyXBDg/wRvRZihvAIhh4ZsQgSbOSSPKSTMsssgjwssd6gSJwww8b5DbDD1rbbfq+TGMXp8FmLhxB205Dg+Fn0MQ6wbzGfzpM8PLxttvDV2ZthjxlnFt4F/kZ7LbEstlkcSfsIIYZQ23IR4yyyyyzjDLjLHeX+cmLNkltvdiDm22zbwvCPBMrebDbDbwsMMttsMMtv1BnRlw'
  1311.     $BackgroundPic &= '/wB7WR18ZZJJBBxs5LOKmesxxsi222Xhi29IizhMlnnbbbbYbZsi3hbb0hiLsZLOvvIO5Zy5m7bLbbzLPG22zFtt8kQWTBJJPrbbbbYbfW92OsrwlkEnp4dCyHJm29Nttt8NttvMssss6QQWTEzJJ5yyzxsNttttttttvkss/YIWWWWuEggmILJJtnwWesssss9kRPA8ZJLLPOWWWWess5lkHTm2xF204nB4XNkxDbM2dHgHvbbfgEEEEphtt5k2/HfWWQWd3m2222w2EECzJgZRnJObbb04/fLLLIgcYvpmf7hbVq1a2tqX+oiOLL3/xAAhEAEBAQEBAQEBAQEAAwEAAAABABEhMUEQUWEgMEChcf/aAAgBAQABPxD/ANPYYm/lmB24OxaQfWHesrGxK4rgJ4/I6wS4W0uZwJcvEAxD2Pc2NLjZjrIuwNxlV+A9/AH483su/wDSnM/9bFhPkfzv8ZH5KPk4/wCd/Ahnmv7MycAzujGRs2dbCDYTAtp2Qcstp5FwlLySbkhSTsx/UJ1iEGbvbQ9nrPAEu2rVr9BfkJ8v8Z/hYfJIn/pr8XyfwDMdms4wn/CjOfIkT/jbUxCuwxNi9MZG2Y7GPYwzZdLgIZuxlIv47yzBdi121ZsqciJ2b72Qbt7BGrLv6nxfOZKY0ZIUsY/ANufLl+P/ADozPkuNI+QcIcJA/lt8nkXFQOxjcizk+fOef8YfnmZXqfrWznb6n4MoG3KPwewztx7EN5soy7boGed2z5sm+yCwvJX4J8vj2PMDYGGw2fggPi/yJ/lN+JM1IHcj6yL+XoH/AJEfkiOR8hGQecgDyAIEIQbDC/JHyd8mTUgI5G1kSeTfH6YlHZDizOwHjGgYAFYuBDnsfmi0rRw4FgeG3XZzA2yWbDZnPccWttisx5IGzQNmBDyA+RnyD/LNiQJEDA/JHyMYzciayK+SZ/4WZy3xSPnIDOQICQ9S+MgXxfMXx15wgv20nGBhfl8CNYbuRFyOPJM/NiOJUdh4sOAbfHb4bGnscfk+RooTg7aE2QZkuxo9v5s7/wCGXCUOXc2CkFOQEBALQvoXuC+GgnBLxkcQkfvgEfxAjyHuE7ckz/tY3TSIDkRnIi+3FsXoR5xW763vKZNUhg080wfj8F9CyykVEPIdgYpFHJV+jljE52ZHYvS1e3H21PYIj7bht7UjK2F7Yl4zL7/xhMh5IjYQbCDkIgQhekl8tBuCAXKwcrTivvMa+s562KKuLZlT0xB4szy9HJ25/wBeogjA5ABOSbparkRcUC/b5E+eRxxxHmWf9WfqkDVHht9q/OXHcT8yC9IV6WlmWCoTr8221Q4dkUlx2I+xZ7aE7sgNuNoWQj2A9l39RTM5FxSEPIz0hvF8ZfNQzlbuTUxX0Eh1ZRsuLZDk4IuRPgwt9kTVtsGBOkV8iHljrn/QHW6jLBe6kIR0ClvsocuIpHjkHTLAi27OfIIy4FvgxG9hmKvrLn6tfq4evzi9m2epQhj+srYa3l2MeyPsl9hZbTIxXZtY42/qKdRSD7IeMoeQP1OM+4m81eLrtvwzoYDFCTI//sJcgzyJgOzLeSeSPcbANnJ2xA6h3/z4QmbeinCESeyu1uOQc5GDkd+W/wAtkXPyJ8Qps53+wQ4lbmNMPxZ28GCeM55AtogsWhbUn63SXMmHJP5YHkh8tB2J9iS9YYv7oyRjn4p1B+LvjItRmHIb5OOkXObQzPJpTBlv5BDcdoeWnyHHkAPIMeSCwj/NbQWV7tLs9X/GXLeM2bBkILcvdLDOQAcjTyH+Raw+TK59gHSweWxT7QYCgelDG38UoJlhHISAxi75NJ4XshIv3ynckQsyHaSJanLQmBG0/WXy2bbqlqri5bTeT4uSn2f5t2hO8csgqbRgrKTk2mMgn+2qZNykG7M0Ez5GNS6sLxlwJOkE8lHp+IsJ5PmI8sb5DKGwUDE+kQ8sMGNC5WxZNyy8Wxt1UJR8jTyMXHsYnIHIfbkUizyD'
  1312.     $BackgroundPic &= 'vLq5KzlhjFpbXJPxSsw5cDlw8j/E/wCbf5E/I0eSmpK2/g1yRxy5kshhy6nIwORrz5M6H2IyUeWxhOQz5MnIsaXxkAYfYzXnI1r5BbRrI/IMwI9aR6Ql7P4Jc6T7wmVmcs5yIwPv6ljbwgzpfGXpCYy0OzFI9OSNGz1yx+X8l1gY5GLYCEufbL58ufluPLk8tNcnjjNprlqR7YnLMOXE5cPw/lPIOzlAmT7YcO6XIJEKWgcgByIIXMtkJ0R+CccheC2YIcsD5M4iqIyQpOGyBjRyecr/ADv4rMPIB8h1yKciHDkQHIM8hflk+QP5IDkVRcZDdsXljkqRnhJ6LXhPs4YA8iE5Bc0BMCwgMIeRI8n1Qi6ruZacdpqR4XAuMV/PwvSdrRvth3wfy33/ALGDlxQYfgJzyRwE6J86RikWkQeW5DDCyJAz8JS7EBO/ll+Wf5IPlm8ixi1+PRLmXEuH4a33HMdayZwhnbDlwdL2i9IEk8v4IscI3hZzG42AIFiZAQPMhO5CRl4f9gx/yzfI5H5NwhwhyyyMORYwpMnDZxOS4f5FG4MkxyGQi/2sDJhwgaBCdL5BAfIUj+MBoTbkVuGGCdRiyAkhcS42A3XYJHiHPxkMA/kifh/k6bCD8kjsA9Sc5B9XvkluF4xcfsMUsmk3C30lzvZywvsvBPhLltsrxcmWjB3aXbOTPJFOfYiUjc2/1v6ZI+xx7YPsD6wv26lWyw+yBjYPJDdwpMrGxLMZ3HqeDdMTS8rxCbewQYd/FLljLJ3aEOux5cNxYFmDfbP9hH2B9EH6X0ZLL2E56Qbv/ouSJNYLsGel/oXL0n+hYfS3+kW9uy0EIEY8tRl9r8tp5HcN/bb7I+r/AEu0aWX7bsjy7y5E0ZjJ+UEM/wCBPEWogbdQALAMYklz8PIW2/5bZaE7JNKuflqHk4BhBLPtl9u7seohpNsFzYWGBek6GkkQYe4B7KeTyI/6kfW5esQ9bQ9b+1knWV9sGz9YZqQ+EiLkZBFPV9WS/EzQ8gv7GInfzP8AME+QHywJlhIP7F/b/f8AAmRGD2LE22YQ7cowk0RBggj2GwCM/jvD+Zv4TYhkfyDPL+ZJ+bunN7MHtsdsPs/7+GKQrJ7DKu3+0+9YvX5BfZL7Kffyl00gHluPJ/jfZW5k3Oy3UeNiBuRxl8V/hBnSU+X8UT5AQB8/Nttn8HCz+2P2/wBY79gHsAwMQjt2XXbZzjJmf/UwC/8A2DxWSEP8MTWw9h5+kk4Hr9S6MJpwt/Z7/wANf7/0I+wvt/vP97/WX+wX24Tr/wBquWfjLQhmIibHLcllbbqzkkuWySzTlukZSXZbXZLrKr+f/9k='
  1313.     Return Binary(_Base64Decode($BackgroundPic))
  1314. EndFunc   ;==>BackgroundPic
  1315.  
  1316. Func Texture()
  1317.     Local $Texture
  1318.     $Texture &= 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWAQMAAAD+ev54AAAABlBMVEX58vL8/vwLi9S/AAAAHUlEQVR4Xo3DQREAAAABwWuifytBzFDBY6m5obwGWsMgvzLU9ywAAAAASUVORK5CYII='
  1319.     Return Binary(_Base64Decode($Texture))
  1320. EndFunc   ;==>Texture
  1321.  
  1322. Func Icon_LM()
  1323.     Local $Icon_LM
  1324.     $Icon_LM &= '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'
  1325.     $Icon_LM &= '1OS10Q5wcC5cjKUzaYCeIoaHD9Z66O96+aXNm38DBtHYhVw2zRYKqgqqrXe56qvRa71VPPb7R3q39VjM5ng8qigKiiIGA/X8i8/d5KF/Q1pXrvD5fJ9/9qWiqiiK7njowVAwAN0E1Rr8L1595Y2u7s1tbWtv1c1u069+WY1+U/wHkdDe883mV+YAAAAASUVORK5CYII='
  1326.     Return Binary(_Base64Decode($Icon_LM))
  1327. EndFunc   ;==>Icon_LM
  1328.  
  1329. Func DiskImage()
  1330.     Local $DiskImage
  1331.     $DiskImage &= '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'
  1332.     $DiskImage &= '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'
  1333.     $DiskImage &= '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'
  1334.     $DiskImage &= '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'
  1335.     $DiskImage &= 'Ulo2MHY4Q3wAcOvi9/wG/XisDkXkWW8IuZtW5SlssrM8kImSNFkBJrncTC0sVfNiHGQqUylVGoEC1MwlBgMog2UrIAJ83DBCpYWgeUMvP4NVgZ218x7SGTK6iADwATCzBszKkziZ9zGZlfzCczQ9ko4C7BE1BrDcdUJhTD4P/qYsXAuFAl10x8jcJaoA5FiYpvsrfAv45RTjBeej5JfuyWwCu0pgaQS42mUzULBGNSl1cezxFkPFGD2kOga3S/tlGVyKB+U/4jHF6D9If4Y9mRScrpmBFiULmIbYaoFcR4FEkEzOYa/J+BRhISQpyH5q4swfApWbR0MU1GmCXMlit4IlwDQ0vXmB9Tf6VAQNZp9jKKdpqaxDONSNj2hOllebd/8ATLExWMukV6uZLeI2tEd6qFnVxr0eDYjc7czSDMLY4nFgP7ueAjLlKCEfCMBx+YVEfuPkaozQNftgvChXbliu8wVVq4A5YF2cE/LSBCMUYzUex1DLiKPJesmWvhgdPLoI0n2TMke2M56gAgoC1KCMkDmbIa+kmmVNNUNH+IUwE3A1mct+45v9y4bcEqohC/Kv9QcNQGbAjptR+C/uBRCYEcVM8ctgh42ZQ4FUYy3KCrX6iPDEzT9SlsxLiZNxKECjgb/bAUAkcDWBmYJbtzC7ARDcCU15jHFWPKx/ZjgSqckBRRTbT/iBhBNjGqjodyo5rNxMAwc8sQg5Gu3H6n/SZzm/UAVlCOsAf8PxKXZqpZZTspoboJPmyUOoYcRBernU2RUFWxsVSJfWBzwj7MQCIDV5XK8kPC4sTLsxKLyfcBDUFquolyeiNd0DhMUmuiXU2gl1+kdv+kveEoXGYvUSgVpsk90JtNgryX6tPxFPNRHBV8TSkHiGgiucw+hU8TrSUOjpGMXZL8Pk6iro6UM9O/iV8I9tShLxkqxad7Ls/wDUPZncy+WK6MdQXOUOyWn/AIERdi4LxCLgwt0DK/RL0c8bON8Vf5lBNYRt+UfWlbspbq8QcQxxBgCOmKJVQbULJm5oISmARniinUKltqsIkdqWqr9wPYrmT0Q0og5i0oYzyXMC7ht4lMB+tlpC+0F+EY6q7Kja/cZXTNIqfZFxdwbfRZFTwI+ozEszMpZUtmBippm3R3lctJB8DLjfMzVxOD3LRagl4lN4ivU8MqALgCCdFZfiirdteFfnACSepbbgdPzaMBFGZQLKqZLE1LuWzce1pvlzzBgzd5Ur6l+3Z+KuXErXE34iLqDpI5eCj5zx5l666SRH5fyETD9CbEeEYVlYYGBTo0HaB2lFHCR3mbLczmNSwtxszidwYz9dOSm4DEuCHEDhEHUIQHINdHa0BlWOBXrQDr1itfRx/FfMC2Vns4TSQsD7AUZN2uwysmIiYtjLzMVuZvYzqsxy5goe5X6VLYupQbldKEuYJhz4BdF7WgMrG+eyHFBnH0nn+bMDEtLAZGGbRYH0UN3XLmoE2p1/IgiPYxc5lF5l7FGY9/irWfUtyyvd3EDOI5bFNbg7DoCMZMnq4Tq5cHAf1C3IqVcr3Z5deGVZZsh9RhfX2lZsS4dIpH4YocDyhHdIQJkYRh9CW13goiHtI6OrNvYE6z7sFteyz4iGHpifK4PBg/tX09/bwv8AJAdwGqe7Z9kAqJDWp0l+44o09sJJUll/5jmBouedbfEtuNTAeNEe4ZU1lXtRX+j/2Q=='
  1336.     Return Binary(_Base64Decode($DiskImage))
  1337. EndFunc   ;==>DiskImage
  1338.  
  1339. Func CDIcon()
  1340.     Local $CDIcon
  1341.     $CDIcon &= '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'
  1342.     $CDIcon &= '2YF0ACaB6zqGoCOFABpvoBzWsFJbAK3Nl+bPMwB6AHZ29n2v6S1eALMtdQ2UBq8JANR9g8DYcNIpAGRzOSQSCTeTAM3e2uKt4aWVAPJis+mLsNVKAAKmvxl3+xZqAFUihIDIROApAI5YLAbbZUjZAEn0ZXrw+sU3AKcXFv89QwHAAPd52N/fu2vsAMDo7sqKTcr1ABiklUQyk0E2AJtFPB5vc0EdANvOx93YVgIzABjx1hbfb6bzAPk88TxvQ9q0ANJrMkgIJDPwACjnx5777bGZAHPnJ+has2hRACpVxYHxu2+nAKyYisU70JFOACOdTsN13TUBAN/UvWEYkiAIAEhbpCmlYIx9AEoSlVLQWsMYAODc+fPvP//cAHNPc84X2uOgAOt1r6I1Kx4+APzNGzpSSZZKAKXgOFeuJGMMAKIo2nAhBHzfAEc+n0cQBNBaAENKiSiKYIyBAJCy/uyzzz5xAPHChb8CEPS/AIF0+PG56bnBAKGh6/fv3z/sADiO9UVbXggBAKUUpJRQWsJNALrwGwEsi0ApAAWldOu11177AP1bb00c01rXAD678Y0Qon7yANTJS1sHBrftANi+fQul1LraEJbfvEkgB0qBtwA4nJSCEApKGgCAEH9y8u0/vAD80p+ejKKoBABAX+2m0c1mcwDp7b9NnqeUdQCNjIxsicVijABsIrENKKXcAADTWkMpjSjicACLgaktqerx4wCvPH/8zy/9igBzPgNAfe4RBQBA+r6/NDHx5gDUv06f9np6+wB6+np7M+vZEgAp5VUBCYHhgQAMpk6dOvWbXwAfe+rdd975nQAQYg6A3Bz8fwDdjowQks3n8wC7xw8evOOeewDuuWV09+7hrgCu7nQylXSjMAC0ms2mXCmvtADm5uZrU1NTZwAmJt6cODs9PQDRarVmADTbZQD8soDt7zaAFACz7d5CPj+QLwAU+vP5fKdlWQAO5zyolCtL1QDqaqler5e01gBlAP56Cc3nBQD80sf4+klirwBTQdYzkOuurgCW0WftP3tKqyCAxDSxL6D6AEmARU5ErkJggi+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgP8vgC+AL4AvgC+AL4AvgC+A/y+AL4AvgC+AL4AvgC+AL4D/L4AvgC+AL4AvgC+AL4AvgAEogAawAE5ErkJggg=='
  1343.     $CDIcon = _Base64Decode($CDIcon)
  1344.     Local $tSource = DllStructCreate('byte[' & BinaryLen($CDIcon) & ']')
  1345.     DllStructSetData($tSource, 1, $CDIcon)
  1346.     Local $tDecompress
  1347.     _WinAPI_LZNTDecompress($tSource, $tDecompress)
  1348.     $tSource = 0
  1349.     Return Binary(DllStructGetData($tDecompress, 1))
  1350. EndFunc   ;==>CDIcon
  1351.  
  1352. Func Sound_Finished()
  1353.     Local $Sound_Finished
  1354.     $Sound_Finished &= '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'
  1355.     $Sound_Finished &= 'HP0hCI4BovfM/2AI2P7S93gCwgdG/N343gRTBhz6pfq+Bj4Ek/j4/OUHvAHW95f/NQgT//P3OgKpB4f86vicBFAGX/qc+n0GUATR+Nv8rAfiAQj4av8JCEj/F/j/AY8Hxvz7+FoESgai+pj6OgZgBBL5wfxvBwcCQPg7/9oHfv89+MQBdAcG/Qr5GQRFBuP6k/r5BW8EUfmo/DUHKAJ2+BH/qwev/2P4jAFXB0L9HfnaAz0GI/uQ+rsFfQSN+ZH8+wZKAqn45/5/B+D/iPhTATwHf/0w+ZkDNAZl+476eQWJBMv5e/zCBmkC2/jB/lMHDACu+CEBHwe1/UT5XwMqBqL7jvo9BZMEB/pm/IkGhwIP+Zv+JQc6ANT47AACB+/9WPkjAyAG3vuO+v8EngRC+lL8UgajAkP5dv73BmYA+vi7AOMGJf5t+ekCFQYa/I/6xQSkBHz6Q/waBr0CdflU/ssGjgAh+YwAxQZY/oL5tAIHBlL8lPqMBKkEtPo1/OYF0gKn+Tf+ngazAEj5YQClBon+m/l+AvcFivyb+lMErATs+ij8rwXpAtj5GP5yBtkAbfk2AIcGuf6w+UwC6wW+/J/6HgSxBB/7G/x+Bf0CBvr8/UkG+wCQ+Q0Aagbn/sf5GQLcBfL8pfrpA7QEVPsQ/EsFEQM3+uD9HAYfAbf55/9HBhX/3/noAcwFJ/2t+rMDtASL+wb8FgUiA2r6x/3uBT8B3/nA/yUGQf/7+bcBuAVb/bj6fgOyBL/7APzjBDADm/qx/cEFXAEJ+pr/AwZr/xb6iQGmBYv9wvpNA68E8fv7+7IEPQPI+p39lgV4AS76ev/jBZH/L/pfAZEFuv3Q+hoDqgQk/Pn7gARHA/j6iv1rBZIBVvpY/8EFuP9L+jQBfQXo/dz66wKmBFT89PtRBFQDJvt2/UAFrAF9+jj/nwXd/2j6CQFnBRX+6/q8Ap4EhPz0+yEEXANT+2f9FQXCAaP6Hf99Bf//gvrkAFQFPf73+pMCmASu/PT79gNjA3/7Wf3rBNcByfoC/1sFHACj+sAAOwVl/gn7ZgKPBNz89fvHA2oDrPtM/cAE6gHy+uf+OAU8AMH6mgAjBZD+Gvs4AoUEC/34+5kDbgPZ+z/9lQQAAhn7zP4UBV8A3vpzAAsFu/4r+wwCewQ5/fr7agN0Awb8Mv1rBBMCQPuz/vEEfQD8+lEA8wTh/jz75AFxBGP9/ftAA3cDMPwo/UIEJAJm+5z+0ASYABn7MQDdBAL/Tvu/AWQEiv0D/BkDdwNY/CL9HAQvAov7iv6uBLAAN/sTAMMEJv9h+5kBVwSy/Qr88AJ4A3/8G/32AzwCrvt3/o8EyQBS+/r/qgRF/3T7dgFLBNj9EPzIAnkDpvwU/c8DSwLS+2P+bATjAHD72v+TBGj/hftQAT8E//0W/KACeQPP/A39qANYAvf7T/5LBPwAjvu8/3kEiv+Z+ywBMQQl/h78egJ3A/b8B/2BA2UCGfxC/iYEEwGr+6P/XgSq/677CgEfBE/+JPxTAnQDHv0F/VkDbgJB/DH+AwQsAcT7kP87BNP/tfv5AAAEg/4V/E4CTQNr/dH8bwM4Aqj80P1HBMkAbPzM/vsE1f5S/U/8ugx1+Qr2rw9f9lsGdfqk/DgPLfD3BMEEdvg8CaHzUgkvA6fxug3F+ZgBxwFb9iYQB/Wi/WsKJPalCID39wGICmTvIgqd/x78lgbf800Np/xM9mMNKfdOBSv98PrCDmTxrwPyBfn3rggK9XAHtwRn8bsMMvs9AOACG/YJD/T2HPzqCoD2oAcd+VcAJAs38I0IDAEp++4GivSaC3r+dfUGDTX48QOg/gX6YQ7y8voB/Aaz9zkIWPakBfQFffGZC5v8+P7IAxT21g3K+MP6OgsB940GpPrv/oILLfH4BmMCXPoUB1X18QkZANn0ggxS+Z4C7f9W+dQNhPRiANgHn/egB6n3/AP4BsPxZAr5/dP9gAQ99pEMh/qc+VkLpfduBRT8'
  1356.     $Sound_Finished &= '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'
  1357.     $Sound_Finished &= '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'
  1358.     $Sound_Finished &= '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'
  1359.     $Sound_Finished &= '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'
  1360.     $Sound_Finished &= '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'
  1361.     $Sound_Finished &= 'CwCyAHX/w/+xAMX/T/8JAar/MP9SAU7/fP83AS3/y//YAHn/tv+hAOf/TP/PAAAAA/8pAbb/Iv9DAWz/ff/5AIv/nf+cAPv/V/+UAEIA+f7kABwA5/4oAcX/Lv8IAbH/d/+hAAQAaP9kAGgADv+SAHMA0P7rACcA8f77AO3/SP+mABEAb/9GAHcANP9DALAA3P6WAIYA0P7OADgAHP+fACoAa/83AHUAYP8EAMsACv82ANIA0f6EAIsA/f6FAFIAXf8vAHAAg//d/8kAR//h//4A9f4pANYA9/5TAIUAT/8kAHAAm//I/7UAif+d/wgBN//M/wcBEP8NALsASP8OAHwApf/C/5kAwv91//IAiP95/w=='
  1362.     Return Binary(_Base64Decode($Sound_Finished))
  1363. EndFunc   ;==>Sound_Finished
  1364.  
  1365. Func Sound_Abort()
  1366.     Local $Sound_Abort
  1367.     $Sound_Abort &= 'UklGRgQqAABXQVZFZm10IBAAAAABAAEAESsAABErAAABAAgAZGF0YeApAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgIGAgYCAgICBgYGAgYGBgICAgICBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAf39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+AgICAgICAgICAgICAgYJ9en+Eg4B4dYOJgXh6e4CGiomGgXdzeoWQjH1zbHeHh4GBgH2IjIqMe29rcYWJjY2Gf4B9eoaEhYl5d3x4f312dXV7jZWXj4JzaHV+g5OQhntubHiKkpN9X2NthJqfi3JeYW+HnZuLdGdqeoycn5J6XlVjhJykjWdSX3qVopeDcWt3foiWhnZrYW2Nm6WXdF5OYIijrpNnVlaBo6KQc2BsgI+Tjo5+bWloeqCpnHZPS2iSpqGAX2BqiaaolndpXGd/ipSSg3ZueJWsrZ1uUVBhfpOKe3lwc4iWkZF6eHF8i4eBd3d2iZmcmYd1bmZzf3hxcHB9gomMg396iol8d3Rwd4GBhJKhm39oU1V7kIiIgHN8iImKkIh0bXR0ho1+cHR5jZilnoN0V1pshYmEc2J0jJ+pmXl6dHaAfnp5e3p5hZGkpIduZnKFk4ZiTFZ1i6GXenFre5OUh3xqdI+bo5OHcF9SYoaQnoBRQEyHqrWidllec4WTh3t6dYCIk5qTfG9rh5yhiG1cVmmCk5mJfndwiY+Rh3yLnaGainlwfYqjm4NzWFNkf4eKf3d7gYB/cXJygpmfp6OJamhpk5+PfWJDV2p2i392d3lziYpyZmd2i52Xg25reZqqpJuDaXRtamRaXGaEpK2dh2dVZpSpqY1vX2mSp7yym3lkam6FhGlRTGmNmKGNdmNqfJKXk4d/f5Snr6KAXF5nd399YVhkdHtzfImOjYxzZnSDeYKKm7i6lWpWSmGCfGxmZ3NsdIiGjJmDd255h4KOk6CwqYdxcG5+g25gXWuDf4B/fYyQm5iPgW10jqW0vo9jVmR8h4l0TVBjcZCTj3ldaYqcl4dnYIetx7ODW1hpg5CJXkdIYHiKkZJ2cICMmpuFeICap7SVbWlveI2McmNvam10cHh9fJGKeX11hp+5t5p9XF99g4qBXFNkeoF9fHVreIyEeHBzgaSpt51zZXB0c2pdW2uFjm1haXeVt7KPcVVgfKG6uZlwXWt2hX1pV1p0gHZ0d4GSoKqikIuGhJaip5R3bnmLjn1qUk5ka2BvfIaSm5uamKSjmJ6em4JeVFFmeoF+a1RVV0lcg4yIj5eQlKCbqJqaoHtnaU1je3iEb1BcVFJ5g4CHloyRlpWqsrm5l29dUV9/j4RgWlRabHJzZHeaoqinkJKwtbWgd1ZQaYOem3pdODp8inl3ZW2Rl6SYl665pH9hUF9tfouMjXZjUUVkfXFyend/j5egub+pimBTanqHi350enRrVVBdcY+Wg3txdK3JxK11SlB5lp+JeGt1jIVmW0tilKKVinJqkbjGqnpgVXSUkIJ1do6XeGRQWY6fn4hodJSorpV0UFyBgn1+cWeGjoV/cWx7jIaGdWWHpp2PdWJdc3eBjIBje3pacI2AhpCRjXl6f3uFiYF5Z210fI+ZnZF/X1FbgaasnouHfZGvnnJqVkNTXHWioKKKe2p3kZaIjJOPenWEnJqPe15CXV1WVmiEkJKBcoOcqaqpoYx3bnVyiYdvXFFUcXF3b2ZvfH2Rl5+5xrOkm4+Mkn5nUEtTXnGBjWxdU2F3iKGuusash3+Dl7SdVDMwY4mei19IQlNjcHiQtcXTtH51fJ24rWI8KVuVqZtlQjhSX3N4jbPIuJuHdZC3roNNPUR4l6CFVUhNaXR7g5its5yJgY6xuohTM0aCp6yKYUpCSW6Iipyr'
  1368.     $Sound_Abort &= 'nH50eJuytJxeODh1mK6hemNTS1RthZ6qnnlqcpOrtpNgSD9hhpmkmIF2Yl5xh6SpnH9oa4ylpYtpWVRndI6Vkp2SfWVnh6ezr4pxcoONimpaT1ltdn6JhoaVk4iBj5+npJmEfIyUjG1GJzVTZ3x+bGt5gIqTrLazqZOKjoeimWlCJCBCXGxyXFxwfIaasrS0saKYm6WtoXtNLyhGZXJpVkJijJujtLWrqa6jmq+zsYxNKyVIgH1wVzU/gqGqq62RlKGanbKxtZFUNy1IfYJlTDs+iKq5uZp+eoebrbOxqHBKSE97hHZRKyRel7THwJ57bnqhu8Gsek07Voqkm2c5IDBymbjMtYp5bnapwrqCVDtDia+pfEopIVSLscq+nIRpeaW6rnhPOj16qqyHWj4lRH2pxb2df3N/p8K5g1E2Ll+Vn5lqRyo7bJ7AzrWNc26YusGfXz4tVZKqm25SLTRwn8C+pZd5fam2tphkUEdLeJKEaVdIQHelt6+Yk4uYu7Gce2BZaXF/fHFIQUJVhaixo4x8gaW9tpJrSldyh5KDdlE1NVSHrLStmn+Eqbi1k2VAWm2BmJBuW05EZImosqWYiZadrbGMZU1TaXp+elFMaGZ4nqunpJ2Rl56pmHZYSE1ucnVUL053fI+YmqaosaWfoaaLaFFCVWReUDk7V36SqKaoo6uvu7itpYJfYV9bZFUhFkR4j52xoYWara/Dzb2kcV9xZ31sNA4OP3WUsLSWjImZuM/NtolmcHV6bkwiFiZCdKW0s6OAdJe30M6rf29wcmtUNxgqQ1uCpq2wnYB/pcDMr4eFhYp3TykXQV1ripaboY+KkZq6xquGg4qSkHBAGyNEa5WqsaWDeX+gt7+kc258jKCHUSkcLVGCorO4lnuCj6e8nWlbbHqPlF81OiQ8bpqxtaCQmKq/wZhlWVlyg390SkBIRl9+l5yQoqy61Meuj3FnWV9bYGJdV1JnjJWHfHqRu8zMrIKBbmdpUE9VV2Nuh5WKeWdzm7bCtKeOjIllSz4xUHJ2fYyFiXx0i7PFvpR3apKenWA0GC56m5midlZoeJa+zMuodWxwhJRqRCY0Z5ajoolmY4Olv8axlYGHlY90SCEtXYaVlnpjZHSiwszAjGBfiKiue0YZKW2bq6l3UERZpMTOtnZVXoujl2EzKVmJnq6ng2pkW4yyw798aGlwiX5RLUaFmqiikYWSjoeDeZSSiod1YlhRSVN9i5aclYmds6+ef25teIeFbE45Nk16k6OcjXJ1nr7IoXVkWISJemI8NEFjf5SoppSCkbO8uI1tXYCAd2RCQ19seouiqoqQkbPGvJx1YnJ6a25LP2F6doeinoh/ham/wZdzW2VtZmNJUF6FhoWknoJ/j5art5Z0XVlXYktLX12Amae+t4Jrd5GuvJJlU1hbYUZCWGuDkKzGxpyAfo2jvJZaS1ZVZlNAQmOFmMnRwaSFe32lw7FnRj0+Y2lTPEt7mbvMwbOUiY+Vr5x6ZTouT1ZFR1mHq6exsJOnwbOhjl9ncDdDWjo+U1aQuq6poYqfwcevhFtqVDpBRFBja3WLrrO1qKSlssObYVJ2ZVdMNzpwgZKSg6GqsM3BsK2LW15PUkg9MEuGoqaMiI6hxtvApINqdGtdVTIvJkOSoqCOcGapzNSxnnpne3NUOTI7SHOOkYV2aZPFyMGthXuQi25GNThLe5WUjGpTZKTGyLmYd4GNhW5MNE5+mZaajVpchqKqtLOUfINvYlM+ZY2Ui4SCdXGUnXSInX6CkmpQVEVZiqWgjXl6jqGtelp7bnmTcT47UmaMrauWiIeZwb+QZmhmgHlmRDJVfJOhoo+PmqDP1qSKdmV+cVYyK0NlkaCciI+UmsvfvqFyYnZtekwrLTdrmIh6fW+PstDMv4pzbERdY1lOPE5xeX6Dh5CZvsK7r5t3VkpfX1dTXGlzi4B9lJ+uur+1gmhbUXtyYWFeT3+Xgo6nnZysrpt9b2pmfG9bUWNyiYqA'
  1369.     $Sound_Abort &= 'iKSxqLaicHltW3mIX19OTXeIiYmNlZ+gq512YHduhXxkUENcfX59laKcj5t8jZNwiIOOe2VWR2p4gouctKiWiFhrjYeZqYZ9d11jbGSCpqixsY9UYWx6hJqRfZGGbmhZW4a5uLKaWjxbeXePmGd1noBadVtYnbeqsndGQ2x3aX10fZKZel1OYpnBu6Z5SUJkiYZ2aWKCnZR/Uk2Qt87Di1A3UYKIfoFtgaijhVY5eb26yZ9eQ1t6f2l2boKvq6B2S1mrusSaZ0dTfY1nXU5xsLKrfFhZmrDDqGtLXW17cFRTZ5impIhzd5y1t5FzTmyJfGtaPWSSlpp+boCduMCVcFVsfnZvbz9ek390fmV/sMnDnn5TZn94aGhYZYyOenZSYrPCt6KDWW+QfWtZZIKLhIOEV3W0wZ2Ug1N6jG1gVnCQjod0c3SYtsyjfmtUa3pralZhiHx7hHmIrL23sYhYampXYVdoaHN5aHOBoLnGnaqUZGpuR1JacoJpV2RrdabTvoyflF93gFJIb4KUcFJdZYmz0rSFqJpmc2dFSnyFmoJQS2yRwdK8lqONf4JhSz9zhY2CUU1zmMXYxJeZj3V4Y0VHc3p8aExLeazEzcavkoF1al1GW2JlbmZLT3mqwMHEuIaNdlNdSFx3bF5UTlaBrMXEs6B9i3t5YT1PbW9naFtUe6rAx7yXf313hmJZYFxtb3FqZI6nvsCxjIaQf3l0Y1dgi3l+cmCaoaSkiHmYnJF2Y1hZZo51hYN9nqiVbVd8mMGhZlVDT4CDfnx+n7S3eFJMeJ3IkVZHP1iEgnN2krTBs2lPWYqpqXdOQ11ldXVqjMTPvJJaUF2atJ1vWFdxb35dYKXD06pdPUZ+tqiPcVRwgHp2WYi3w7NsOEJ5q6WQf2xud4ZnWJO2wbVtPDtukpp/eHZ8iIN0SH2/w7iDRzdjkZF5Z1Z6j4SIYGSxzcGOXURSiZuEXUxni4J7cVuYxs+iaFJSh5aPbUpag3p1blmaw86tdFFch5uNc2pagpRqX1CGt8u5flJSfZKah3RheIxtYlaOsceud0lRdIuXhoKIhJluXViNsLCddElOk4V3enOgrZt6Xk+PuLiLZU1UkJNrZF+OqaJyX1SUtbyDT0NakIh+ZlOEpqByWFOXusuOTDdCjJKFd1xvrKp4WU2GususW0M4hZqChHB7qqt/U1GDusSwZ0c8ZHeJhY2frqx2U1R+sbiqbU8/VmOGfYW4wqd2V06EsKmfckU5XGVucouxwbqBbVV8rK6aZUU1TGlfcIqrt7mSiXWBoKqKUD1GSHBtW5+dpbKklI6EmZ6KVSlQYGdwYJeknq66rZyQm6WMTSU8UHF4aoyblpuswq2Or6FwRCExSG9rZoqSj6myvLysrZ5vLh4zWnNra25whaXCsLOzpZViLSkvWXR2bm5bd6+7sLm1qo9QRU1BYmR9gWNig7i1oaqyp3NCUVhXcmSDkWZalsalqMKulE8nVFZ2hnqAdGR4prWqxMWyhjooQW+Gl3tyaGWMpJ2sw76ycjspN3SRmHZ2a2GRppy8vLSbUjgsQHaNhoF+dW2clKrVvK53PTBDYIWDdn9+eoqUjLfCua1nPzFFd4h/eGVocIeBlb7DwJpaPi5UhoaQgmBia26DpLvQuWlUQzd0mZKPhW9pblmEuLvKqV5ZSUd3o5mGiYZzYFODtbW7j1VRRF19npqDfJN7XmqSrrKobFlEPXCVlqaJepN5gJKToZJtXkxXYHaSmqmLfoyOkJeGhGdISVR5dHiAm6F+eqarm4p5Y0dBSWCOj3uClYVzoLW9snVqRzJUV2acqpiRjniDucDKrHpLMkVaWHuwxaGCgHaUsLetj24xQWhSWn6xwI1zfHmhqbOMgkInZGNXaYC5p2qAi4+nsJyBYydKaV5tdIa7gleNkKO6tIZ8TilPZll1iZCeZGKJqrjBpodiREteZ0t3oJZxdnSKtLy5qXpPbFdqbV6RoW5pe26iubOvnmRh'
  1370.     $Sound_Abort &= 'dnBwcX2He2RxaXqtrbmsd2ZxcXdyhHppa2lfaZCvuaaTjHNue3iHe2ZiZl5kbn+hpHeOnoGBeYyNYVdrZWhqcZSTaIuljJaLjZV7amRfb21neJhrapOYsaeJjJN/cWJ/bVlyiHFsepS2vqV7d4WHeomBWlJca3hrgbW/u5Rwdm1+pptwRj9KWHCIo7u4m318WWeXrZljRUZDX4qWsMCeeolwSnubpZ1nTk86cpCpxKJ3h4FWXIKZopNbQj1hkpnDt4B4cGVifpuajVsuRHqaoMG/mXhrcXCBio6DUS5YiZKbssKkf257eHZ0jo1CMHqVgIahwaaCeHt3gnV/hllBb6mNcoe8qHVze3qAcH+JWUtur59igLOHbYR9bXBxkntKbIqonGlqo4dwfG9zgXl3bWWHna6PdGuQh2htdoGFfGRLfp+qp411dpOJY291go12UkSSrrWhj4VvjIhncnuBiW5DQpy1uKaciGeDhXJybnOEVDJnrLKtoqF0bot+aXJ2emwzMnyspLuti3Rrh5R4f4FlQCpDjqmjxKuDal2Inn6JilclMGiooKrOl3h0comLlaB0PilFg6mgu8d3ZYN/jqOxjVQsLmWjqK7cpWBtcnigtLNsPRk/g6ivxceKXGFgdpmupVgpFFqYpLjVrm9UXFOHobWKSxgne5ae08qOeFZWWZGmr3M3EUWPkrfmrIpqTFV8maKZZCAiapur0dmygEdHbZmUnYM4E0yFoMHYwI1aSlORqpqJYhwuapC7y7OMcU1Pkb6kdmE8KlN7q9G4nX1jRoS8tnpXPEBXc6q9sa2OblNvprePWzAvam+TxcGmnXlnY5WjnHBFGlJ3irTQvqJ+a1qRpaF/WSI5a4ent8GtgW1bfqiphmQ2JVmNoaW2rXdSVH2hoo1rRihOiaWnr62EVzpoq6ukclA1UWWatp+lp3dMTpirp3lVOlRsgayimaaQXVqDq6eLXEZEcniZo4SIpnVng5ydm3FQOmuAlY1vepqGeJmPlKKHWz5Xh5OXbE52gnakq5KdjF5QUoianXtIUHd7nq6qnINUVWKMmJ+MVjpfiaSnqq6PQVOAlKGykmE8R3+nprGnfkxPeqCswJtZQ0ZvmK2um3ZMQ2yhs8ijW1FCUo61pox6VTZWl7XJsnRgSEyDqZx6ckwyXpiwxa56Y05gkKeScGY8KG2ntLenfmBhdJueiXBlRCtho7K7pXtsfYafmIFgV0tUZ5qmrKR1ZZWmsJ9tXUw0c5GhoZaSZFKgxr6acVk3LnWhqLOadllIkr7FoWVJJjd3kK7EnGlnUHyuwLBkQiY8e4muxplgaVhvs8GyZ0coUomRrryRaWhjYKu5tXVTLmGZnKirg1lgbl2jtrR8Ui5uoqOwo3NEWWZcsL6zelEtcKidsKxzO1NqZrK2rHRQMXaloKqicUFZcG6psap1TjBzpaOmk2RCVXOHuraocVE6gp2iroNBQltrl8nCqWpNOomkratzNjhPdqjRxaRiSTuIrb6uYjYtSIrA1MKLUjs2k7rGqmE6I1GeydDFeUItQpbC0athPCJeqsjUs2M7KE2aw9azZEMlWqnE1qlVLChaqcbaq1k3JXe0w9CTQCU5YK3H17NaOy6Ds76wdjUmUIizyM6ZUTs3ka6skFouNW+owr+rdkYvVqmrp3dLJ0yVv7m7j0w+OIuwsJdgKy9wssu7qWU1NWizt7R4SylJicfLuZBTOTmRtLufXzkycKXQyKdsTDJVsbrAh1IuTJ7B0L99Qzg7kL++t2pCM320v8OTRytBdLO9yY1FNEmiuMWkXSssX5/DxLVmPzlxucK9cEQiR4u6xayGQi89j7/ItmQ/I3Ctw76JTh0ybrzI0JlRLEGfsMKiXSIcTqDL0MVxPyhprrrCgTwVLHPC0dOdUTI4mLjFrmMnHEKez9TNekUlVK6+yplOISRmuszWr1o7L4Wzw8JyOSUsgsHP05BOODydsMSpWTsoRZbHyciDUTdhrK+v'
  1371.     $Sound_Abort &= 'cUs0SYnGxrudXUdElKiviVE7TYCsyraLZU5Gc56rol9FQXKew8SMYFRHcJyosHROSFqZtsqsZlFGZqCut45HQEyMscS8dUVCWJqytqhYN0NvrbvDiUo5VI+utK1tM0VXmLnErF5COnSmta6GPzZOjba6uHRFNGWnrZyPVihQjrq0sIJVN1+ms5OEYzVHh7qysINYQV+XrJp4Vz5Tgbi6spleQlCRqKiBWzRJg7vJsZxkOkeRqKyPYT5DhL3JtJNoQUmXp5qKZDhTiLPMv5hlSkSNpJ2AXi5SlqvIz5NWUz2DqqiCVi09kcLN1KBKRjV+s7OVXS8sbLvS0LxfPTFktbyidDkiVarY0cRxNzFcp7unf0QeTpTP1cuGOylSobKifEsWTJDL1s+VRydGmamWfFEcVqrIz8qOTic8haGLiVolW6rD0r6DWDVMeZd+glkzZqXDz8B2V0dllKNoX0NDgbbUxrhwTExwnLBqVSs7jrfdzqlsP0V/n654WSwvkMDa2KhsOUWNpa6CVCkqhrzW4LRxQjd+pKuBUiMjh8LU4LBgQD2OoaBxRxQwisvX3K5bPUeZpaZwQRAsfcfW2qxfPkSjsbJ9RRIlcLzW271lQTiPsLWRTBQgZq3S18NwSDuErrmVVBYoYZ3Pz8N7Tz+Ep7OXXBktZJrMz8R+VEB9orSWTxY2YZvMzrtyVlCIoKKIQBdPZKPNzqxjUmiVnY10NiBqfKPFx6FdWXKVnolkMS15nLDFvopVVYKbpIJVJEaMscnDqGtNUZaqqHdGHFibutm8glVAVaewqHBAGVufwt26dk0xVKexqXI+E1Sjwt/KeUgxTaOxqnI7GU+ewNvNfUk4SJ6yqXk/HFKlxNzSgkc3SJ2tp3Q8G2Kwy9/IfkM0U6Kqom07Im63ztmtaj42caaplF4vLH6709OdZT8xh6+mkl0rL4O908yQXTczjamkklcoNInA18mNWDQ9kKirklEtPI7D1MOOXzdEip2rkllCPIbEzr+TZDlYjJSpg1hLTJPIy7WRXTtufoyablZQZ6fNw52HWkOCb4KMWmBYda7RwIuHVlWKbIJnU2JakrjMuYxsSGqAf4tWXFNtpcLHs5VoTmtrfoBXXUJipLS6sZpuZ1tXhHp0e01wqMK3rI10Y0tLaGF3eVmBo7vGtJmQaDhPSEuMf2iGiJ2ysqelZUNRKFmhj4uIdoeeu8CqWEY5GXOsnKSIbnasy9KhVUYeH4GjoplyXm+l0MqKTzkQNYerr5BwXn273cB/USQkXJ29r4pzVJ3Y36xvORdHfbPEoXdbT7Xd0JxmIyFcibi6g2dSar7StXlADD5ql7ilZVtJhsTMpnIrG1FumrGRYFVdrsjIlmkgP26AoJ1vWGGYxM6qdkU2a4iQjXRNWZC9zsJ+UTximaOGfFM4ZbbE0pxePVSGt5xqWSs/l8THwHlFRn2ku31SMS2Dw8HAgU5AhKC7mlE1IVu0xMKUVjVxrbW+eD8gOIzBwqxrPkanvMaeSyYqesHIvHxJNHrBycJyNRxGpcfGnmAwU6LGyKRWKC99s8WwckI9erXEsnE8LWajtK96TEZun8GyhlM5T5Kpq41cR3KTtLSJYERRi6Sjg11Iep2rtoZbTVKHoaKGYD5rpa26k1hEWZKqrIpkNlSbsbujX0JNkK66jGE5PIOtuK5xSEaAqbqbaUI1a6S0uYhURG6kuK12TDNXi6q3nWZNWJi0tYdVM0+BmbKzeVdNh7G8jmU0Roabp7KFWliFrbmPaUJIhqSjo4BbV4iytpFpS06DqJ6Vd1RZgrO0lmpNUoKlpodkTlF7sr2haU9Mg5+phVlKT3WzwrF8VkqCpKqCWEJNeLDEs4NcUYKgqYlMN0Z1rcavflpQhqSsjk0vQG2nyLaHYU+Bp7GYUys3aaHCuI5oTHmmsqZhNC1gmreyjGpJd6axsnhDMViXsbCSbEZxobC5jFQzSYqqsJZuSGGds7qWXj1MkaiqimY/ZaKz'
  1372.     $Sound_Abort &= 't5RjQlGcqqaDWThknLG5m2lISpasp39XNVaTq7WdcVJDja6thlo1TY6ssZt2W0ePsbCEWDdWkK2vk3BdT5W0rYJdOluTral9amFYorezhlg8ZZGwpmpjX1KguL2QVzhejqmwa0pVVqS/wI5SNV6Xr7FqR0FWrMLImVYyUZOqunpJNk6lv8mnYThChqW3jlc4QJe9ybVuQTp2oLKWZD4/irnGv3tLRXKWrpBmRkSGtb28g01Ng4+fg2E9S5m1urmHU02OmZZ5WTxNobu/toZZSoyjh3ldMFOku7urflNKkaSGeFwwVqK6vah8UkuMpYl7XS1Un7m/onxXS4ekiHpiN1GYt76egWNOip5+eVs6V5O1xaeFc1J+pHh1XzdWkK/BsIlvXXegdnpaMFqOrMe7iGlodJZ/dU4xXJCoxLiBa2pvj4x3Uz1Xi6DAtHxpcGWDkXpaSFeDnL+/gXNuXoGUemNSTXiVu8CPfHNdd5iGY1pPc466ypeDfltwko9fWFV2h7HMkoiEW2+LjHNXTnKErciKjIRUcoqNglZCbIO3vomQf0prkZmNXkBgfrLBl5V2OGedk5V3SE93q8OcnnQ+VpSVl41TSmyXtJ+ldklIf5WXl2lOYImspKqFVz9ul5KhflRkhaSqtINbQ1yJjKmKWWqCk6WwfFxLXnuMq49odoGHo6ZwUVRlcZapinF9eIOqlWJMV2t3qK6EdHpthrOMa1BdZ3uzsIV4eWCGsol0UmJchbS1jnhvWIa0in9kYEmHtraUfGJOiKuXc2VcQ4u0rouAXE+QqpNnb04+lLSnj4BVUJeqjGp3RkKcr62XeUlemquNeHM9TaO4uKNvSVeJsZV7bjlYqb/ApWdKU4Gsmn5gNmqtvMGfXEdWhKKPflNBgrC+t4hOSVmPmod7TkuKtMKvgFRHYZCUlG5JToqxwa18UU90kouJXT5imLzBpHRWT4OUiX9KQnOYxr6fcllXiYqBe0lLd6DFwqt7WmGBdH9zOFqDo86ypHpdZ3pygmE2dJGuyqmPbmRtdWp6WESJk7PCmXV0eXZsb3JHVpubvLWDcHWGgmtzUztvpai7qndshYqEd2hDNWuhpreod2qQkYR0WUE7ep2it6FugaGKg3pIN0GBpKexnW6Kqo6DbjoxWI2kp6KQfp+njXdYKEB5lZ+VmnuOraiEX0QlUY+Xj4yNcqa0qHpVPC9hlpB/hoCFsbqfakY5SYSci3l9eqO7vZlkQDplnpuEem98sri8jVI2UoSZkItsZJqztK6BTz5znYh/gVFzuKyumWpLX5GdbG9cQae+n6F+UVWLn41dWDpiwLOgiWlAcamle1lCOZXHso93T0mau5hmVjFgssqidWVIc7K5eFhFOpjKu4hlU2Cdv6VdUjpltcetbl9Nfqm1hFVEQ5TDvJNlTU+bsqpwTjBhrsayfF9BZK64mmJCNIO3xJpmUUeMt617Vy9RocG5gVxFWaq8nGxLM32xyaRrS0SAuK+HXjlZocK5g1hBYqu1mnNJPo64vphsR1OdvKaBWThjpb6sdl9Jdq6ziWNGQ4y1tYttWGGitZ9uTEJppbehdWZVhrOriFk+UI2rro1pZG2atpd0UEBon6uZfnFohbWne188TYuvnoh6analuIVjQjloraaJgXRtjbWfaEU2VI6nlId8Y36jtIRVNUx8m5SLhW52lqudakFBdpeWjIR7eI+gpYVWP2GNk4qCgX6OnaORZ0lSgJiRg3uEjpyel39SRG6VkXp9goGdopaKZUNdkpd9c4B2k6ebi3FLT4iegG19doKnn4qFVUWCmodpfH54oaeHhmhEc56HbGyGeZqtjoZwQGmsg21zfHWPqZmGcUpXpIxrdoR0iKakh3FVUY2YfXCBeoKiqI19YEd4oYJogYx1mauQfmlHb5mGcXaLeIqonH5yUViVjXVrjHl6naSAiF9HiIxvbIaHcYmljY12THeTamyAlHp0k5yFgmlzkHFnfZyMd4aYhXx7'
  1373.     $Sound_Abort &= 'dIZ6aXGUmIN+j4Zze36AfHFvipuNfYWGenV8fnxzaoGYkH6BgHp2fIF6dmt4lZ2DeHx1dH+GfnhucIyej3l0dXV+i4N4dG2FnJqDc3VyeI2HcnZzfpSajXNyc3OMjm5yeH6Rnph+bXZveZN4Y3WCkJiciWlucnGOfGBzf5KbmoxuaXZuiIdaZoCTlpeReWV2d4yJXV96i5mbjX1oeXyJkGxVcoycoJCDZneCiJl7UWCHmaGVhGt3hYWbildYgZidl4dta36GnI9bT3qUnJ6TZ2B5hpqWa1F1lJmgk2RVbISdkHVlcY2WnphwWWd3k5R5aHeOkI6TdF9rdZGTdGJ9lZGGjXFhb4COjHhkdJKah4t3X296hpGFa2+LkYmOh2RpeIOQiXBxjJGFk41qZ3V/kY91coyNgZWVbWJqeZCQeXyKhH+ZnGlZZ2+Bl4Z5iYZ6k6FxU19qeJiOgpCFe5mdc1pgZnOTloyMfoKPlYBkY2JriZaUlHp/lI58cmtkZoKRkZ9+fZmTc3FxZl+AjoeiiXSdm3RrbmxgepGCno90nKB2Z2FkYXiMgJmVcpyqeWlcWltxjISVmHaXp31oWFZbco2CmZZ0mK6AcVxOWnOOiZaQe5irhnhnUVd0jYiTkXqTrox8bFJceImFkoR1m6+RgW1SWHmIhJF8bp+skINrUVl5iYWPeGySqpeJb1ZYdoqGkHprka2Xh3RTUnaOiJV7b5Srl4tzT091j4iXeG2QpZ2Qc1JUdI+GknpsjqmdjW9PUH2Vh5V1YY+tn5huT1N9kYiTdGKNqaCXbVVUfIuCmHNml5qZkWlZWH2MfZJzapmXmIpdX2F7iHuLcHKmoIuCWFxnh5J/eXJ6qqeIek5TdpeNhXtnf6ypi3hEUH2gmYdyZ36lq5BxREyDqZmHcmZ6pKmPa0RPiKediW5me6WqlWhEToWon4pnY3yhqJNmRk+GqJ+LZGWDpKyVY0RTiZ6cjWhihqmokGNJVoSdnYpnao2jo45eQFSMnJWIb3CPoqaHV0NdjJmah250jp+ih1hIYY2VlIhreZWfoYZYSmSMk42FaXmXnqCBU1Jri4+JgWN7o5+dfFFTb5KThHlge6WhoHlHUniSkIV7XnimqJx4Tld1kJOHeGF3oKaXdlJae5OQh3dngJyjmHFPYICTkId4Z3+dpphvT2B/j46IcWGIo6OWak5ef5GMhGxgiqWnmGdPYYGRiIdtX4+pqY9fVWiGj4iFamSWq6qJW1Rvh42GiGtqm66je1ZfeouNiIRqdZusnWxOZoCOjol+an2aqpRfS22GjYmEe2yBmqeIV090jomBgHlwhp2ghFpZdouJgIB0c4iZnYJfXnSMiYB6c3aKmp9/X2Z1ioh/e3F5jZadeFtrdoSIf350epGVmHNdcXmJiICBeXySkY5pX3WAg4KBfXyKkYyAYmd9hIWBenyCjY6JfGZufouCe3iBjJONg3Rte4WIfnlygJOUi3xseYSEhn91bYOaloh3aH2GhIN8dm+GnJGGcGCCi359gnRviZuRg2ljiIR+gnx2doqWiXtmbY2GfXx8c3yQk4V7X3STg3t9e3F/j5CEc12AlX56f3hug5SJfXNgi5l7dnl3comShX9rZZaTeXh/c3OKk4F3bm+WkHp8e3B5j5J+dmt7nop2fXl1gpGLeW9uhZqCeIB4fIeIhXdweZKSeHh+eIGKh3tycX+UkHp6fXmGiYJ6dHWFl4t3fn16h4eAeHJ9i5KFeX96foiFfHV1gYuOgHt+eYGFgHt2eYOIhn19fXqDg356d3yDhYF9fnx+g4B8eXl/g4J+fX59f4J9enp8gYSCfX6Af4GAfHt8f4KEgH1+f4CBf3x7fICEg399gICAgH19fH6Bg4J+fn9/gYB9fX1+f4GAf35+f4B9fn5+f4CAf35/gICAfn5+fYCBgH9+f36AgH9+f3+AgIGAgH+AgICBgICAgYGBgoKCgYGBgYGBgYGBgYCBgYGCgoGAgYCB'
  1374.     $Sound_Abort &= 'gYCAgIB/gICAfn9/fn9/f39/f35/f4CAf35/f4B/f4CAgIB/f4B/gH9/fn5/f4B/f39+fn9/f35+fX5+f35+fn1+fn9/f35/f35/f35+f39/f39+f4B/f39/f3+AgH9/f39/gH6Af39/f4B/gH+AgH6Af4B/f39/gICAf39/fn+AgH5/f39/f4B/fn9+f4CAgH9/f4CBgICAgICAgYB/gICAgYGAgICBgYGBgICBgYGBgYCAgICBgYCAgICAgYGBgICAgICAgICAgICAf4CAgIB/f39/f4CAf39+f4B/f39+fn9/f4B/fn5+f39/fnx9fn5+fn59fX5+fn5+fX1+fX5+fn5+fn5+'
  1375.     Return Binary(_Base64Decode($Sound_Abort))
  1376. EndFunc   ;==>Sound_Abort
  1377. #endregion binary strings
RAW Paste Data