Jump to content
Sign in to follow this  
Zoldex

GUICtrlCreatePic strange behaviour

Recommended Posts

I'm trying to displaya picture on a gui but it doesn't work if I make some GDI+ operations just before creating the gui:

#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
#Include <Misc.au3>
#include <StaticConstants.au3>

Local $GUIimg_title,$GUIwidth,$GUIheight,$GUILeft,$GUITop

Local $filename = FileOpenDialog("Select image", @ScriptDir, "Image (*.jpg;*.bmp)", 3)

_GDIPlus_Startup()

Local $imagefromfile = _GDIPlus_ImageLoadFromFile($filename) ;Create an image object based on a file
Local $GUIwidth = _GDIPlus_ImageGetWidth($imagefromfile)
Local $GUIheight = _GDIPlus_ImageGetHeight($imagefromfile)


; Display image
$hBitmap_GUI = GUICreate("", $GUIwidth, $GUIheight)
$hPic = GUICtrlCreatePic($filename, 0, 0)

GUISetState()
_GDIPlus_Shutdown()


While 1

Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE;, $hCancel_Button
Exit
;~
EndSwitch

WEnd

Instead it works if I remove GDI+ ... Can't understand why!

#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
#Include <Misc.au3>
#include <StaticConstants.au3>
Local $GUIimg_title,$GUIwidth,$GUIheight,$GUILeft,$GUITop

Local $filename = FileOpenDialog("Select image", @ScriptDir, "Image (*.jpg;*.bmp)", 3)

;~ _GDIPlus_Startup()

;~ Local $imagefromfile = _GDIPlus_ImageLoadFromFile($filename) ;Create an image object based on a file
;~ Local $GUIwidth = _GDIPlus_ImageGetWidth($imagefromfile)
;~ Local $GUIheight = _GDIPlus_ImageGetHeight($imagefromfile)
;~ _GDIPlus_Shutdown()


; Display image
;$hBitmap_GUI = GUICreate("", $GUIwidth, $GUIheight)
$hBitmap_GUI = GUICreate("", 800, 800); <---- had to use fixed size...
$hPic = GUICtrlCreatePic($filename, 1, 1)

GUISetState()


While 1

Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE;, $hCancel_Button
Exit
;~
EndSwitch

WEnd

:huh2:

Any hints?

Edited by Zoldex

Share this post


Link to post
Share on other sites

Not sure why the GDI+ stuff is causing a problem, but if all you need it for is to get the dimensions of the file, you could do it this way.

#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>
#include <StaticConstants.au3>
#include <Array.au3>
Local $GUIimg_title, $GUIwidth, $GUIheight, $GUILeft, $GUITop

Local $filename = FileOpenDialog("Select image", @ScriptDir, "Image (*.jpg;*.bmp)", 3)

;~ _GDIPlus_Startup()

;~ Local $imagefromfile = _GDIPlus_ImageLoadFromFile($filename) ;Create an image object based on a file
;~ Local $GUIwidth = _GDIPlus_ImageGetWidth($imagefromfile)
;~ Local $GUIheight = _GDIPlus_ImageGetHeight($imagefromfile)

;~ _GDIPlus_Shutdown()

; Display image
$aDimensions = StringRegExp(_FileGetProperty($filename, "height"), "(d+)", 2)
$GUIheight = $aDimensions[0]
$aDimensions = StringRegExp(_FileGetProperty($filename, "width"), "(d+)", 2)
$GUIwidth = $aDimensions[0]
$hBitmap_GUI = GUICreate("", $GUIwidth, $GUIheight)
$hPic = GUICtrlCreatePic($filename, 0, 0, 0, 0)

GUISetState()

While 1

    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE;, $hCancel_Button
            Exit

    EndSwitch

WEnd
;===============================================================================
; Function Name.....: _FileGetProperty
; Description.......: Returns a property or all properties for a file.
; Version...........: 1.0.2
; Change Date.......: 05-16-2012
; AutoIt Version....: 3.2.12.1+
; Parameter(s)......: $S_PATH - String containing the file path to return the property from.
;                     $S_PROPERTY - [optional] String containing the name of the property to return. (default = "")
; Requirements(s)...: None
; Return Value(s)...: Success: Returns a string containing the property value.
;                       If $S_PROPERTY is empty, an two-dimensional array is returned:
;                         $av_array[0][0] = Number of properties.
;                         $av_array[1][0] = 1st property name.
;                         $as_array[1][1] = 1st property value.
;                         $av_array[n][0] = nth property name.
;                         $as_array[n][1] = nth property value.
;                     Failure: Returns 0 and sets @error to:
;                       1 = The folder $S_PATH does not exist.
;                       2 = The property $S_PROPERTY does not exist or the array could not be created.
;                       3 = Unable to create the "Shell.Application" object $objShell.
; Author(s).........: - Simucal <Simucal@gmail.com>
;                     - Modified by: Sean Hart <autoit@hartmail.ca>
;                     - Modified by: teh_hahn <sPiTsHiT@gmx.de>
;                     - Modified by: BrewManNH
; URL...............: http://www.autoitscript.com/forum/topic/34732-udf-getfileproperty/page__view__findpost__p__557571
; Note(s)...........: Modified the script that teh_hahn posted at the above link to include the properties that
;                     Vista and Win 7 include that Windows XP doesn't. Also removed the ReDims for the $av_ret array and
;                     replaced it with a single ReDim after it has found all the properties, this should speed things up.
;===============================================================================
Func _FileGetProperty($S_PATH, Const $S_PROPERTY = "")
    $S_PATH = StringRegExpReplace($S_PATH, '["'']', "") ; strip the quotes, if any from the incoming string
    If Not FileExists($S_PATH) Then Return SetError(1, 0, 0)
    Local Const $objShell = ObjCreate("Shell.Application")
    If @error Then Return SetError(3, 0, 0)
    Local $iPropertyCount = 300 ; arbitrary number used, Windows 7 only returns 289 properties, Windows XP only returns 38 (future proofing)
    Local Const $S_FILE = StringTrimLeft($S_PATH, StringInStr($S_PATH, "", 0, -1))
    Local Const $S_DIR = StringTrimRight($S_PATH, StringLen($S_FILE) + 1)
    Local Const $objFolder = $objShell.NameSpace($S_DIR)
    Local Const $objFolderItem = $objFolder.Parsename($S_FILE)
    If $S_PROPERTY Then
        For $I = -1 To $iPropertyCount + 1
            If $objFolder.GetDetailsOf($objFolder.Items, $I) = $S_PROPERTY Then
                Return $objFolder.GetDetailsOf($objFolderItem, $I)
            EndIf
        Next
        Return SetError(2, 0, 0)
    EndIf
    Local $av_ret[$iPropertyCount][2] = [[1]]
    For $I = 1 To $iPropertyCount + 1
        If $objFolder.GetDetailsOf($objFolder.Items, $I) Then
            $av_ret[$I][0] = $objFolder.GetDetailsOf($objFolder.Items, $I - 1)
            $av_ret[$I][1] = $objFolder.GetDetailsOf($objFolderItem, $I - 1)
            $av_ret[0][0] += 1
        EndIf
    Next
    ReDim $av_ret[$av_ret[0][0] + 1][2]
    If Not $av_ret[1][0] Then Return SetError(2, 0, 0)
    Return $av_ret
EndFunc   ;==>_FileGetProperty

I used the RegEx because the results on my computer returns ### pixels, where the ### is the dimension size and this will strip off anything not a number.

This works on Windows 7, XP does not have this information available, but does have the Dimensions property you could work with.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

It's because you do not dispose the image and is still in use. Try this:

#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <ScreenCapture.au3>
#Include <Misc.au3>
#include <StaticConstants.au3>

Local $GUIimg_title,$GUIwidth,$GUIheight,$GUILeft,$GUITop

Local $filename = FileOpenDialog("Select image", @ScriptDir, "Image (*.jpg;*.bmp)", 3)

_GDIPlus_Startup()

Local $imagefromfile = _GDIPlus_ImageLoadFromFile($filename) ;Create an image object based on a file
Local $GUIwidth = _GDIPlus_ImageGetWidth($imagefromfile)
Local $GUIheight = _GDIPlus_ImageGetHeight($imagefromfile)
_GDIPlus_ImageDispose($imagefromfile)
_GDIPlus_Shutdown()

; Display image
$hBitmap_GUI = GUICreate("", $GUIwidth, $GUIheight)
$hPic = GUICtrlCreatePic($filename, 0, 0, $GUIwidth, $GUIheight)

GUISetState()



While 1

Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE;, $hCancel_Button
Exit
;~
EndSwitch

WEnd

When the words fail... music speaks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By UEZ
      This project has been discontinued!
       
      Here a small tool I wrote to update my Sysinternal tools collection without the need to download always the whole package or visiting the site to check for updates. I know that there are several tools available (also some tools written in AutoIt) but here another one for the collection. It was good exercise for me to code it.
       
       
        
       
       
      Some files from cannot be downloaded although they are visible on the web site!
       
      Here the download link of the source code only:  AutoIt Sysinternal Tools Synchronizer v0.99.6 build 2020-09-21 beta.7z (1548 downloads previously)
      -=> Requires AutoIt version 3.3.13.20 or higher / tested on Win8.1 real machine and some VMs: Win7 / Vista / Win10
       
      Compiled exe only: @MediaFire
       
      Just select the Sysinternal Tools folder or create one and press the synchronize button to download the selected items. Click on AutoIt label (near to left upper corner) to open menu.
       
      Special thanks to LarsJ, Melba23 and mesale0077 for their help. 
       
      I've still some ideas to implement which are more gimmick related, so it is not finished yet...
      If you want to add your language please check out #Region Language. Thanks. 
       
      Please report any bug or if you have any suggestions.
       
      The language of the tool tip from each of the executable in the left list view were automatically created using Google translator and weren't checked for correctness.
       
      Br,
      UEZ
    • By zuladabef
      Hello,
      I have been using Image Search UDF 2.0.2.0 without any issue, but today when I went to run the script I have been using for a few months now, I received the following error.  How can I determine where the issues lies?  Any suggestions on what the issue might be?  As far as I can tell, the variable has been declared.  I included the function from the UDF.  Thanks!
      "c:\install\include\_ImageSearch_UDF.au3" (117) : ==> Variable used without being declared.: If (FileExists($ImageSearchDLL_Path) = 0) Then _ImageSearch_CheckDLL() If (FileExists(^ ERROR  
       
      #include-once ; #INDEX# ======================================================================================================================= ; Title .........: ImageSearch ; AutoIt Version : 3.x ; Language ......: English ; Description ...: Check image Appears or Not and Return the position of an image on the desktop ; Author(s) .....: Dao Van Trong - TRONG.LIVE ; =============================================================================================================================== ; #CURRENT# ===================================================================================================================== ; _ImageSearch($_ImagePath, $_Tolerance = 0, $_CenterPos = True) ; _ImageSearch_Area($_ImagePath, $P_x1 = 0, $P_y1 = 0, $P_x2 = @DesktopWidth, $P_y2 = @DesktopHeight, $_Tolerance = 0, $_CenterPos = True) ; _ImageSearch_Wait($_ImagePath, $_TimeOut, $_Tolerance = 0, $_CenterPos = True) ; _ImageSearch_WaitArea($_ImagePath, $_TimeOut, $P_x1, $P_y1, $P_x2 = @DesktopWidth, $P_y2 = @DesktopHeight, $_Tolerance = 0, $_CenterPos = True) ; =============================================================================================================================== ; #VARIABLE# =================================================================================================================== Global $ImageSearch_Debug = True Global Const $ImageSearch_SleepTime = 100 If $ImageSearch_Debug Then ConsoleWrite("--\\ ImageSearch //: DEBUG -- OSArch : " & @OSArch & " // AutoIT ver: " & @AutoItVersion & (@AutoItX64 = 1 ? " X64" : " x86") & @CRLF) Global $_ImageSearchDLL_Path = @TempDir & "\_ImageSearch.dll" If FileExists(@ScriptDir & "\_ImageSearch.dll") Then $_ImageSearchDLL_Path = @ScriptDir & "\_ImageSearch.dll" If @AutoItX64 Then $_ImageSearchDLL_Path = @TempDir & "\_ImageSearch_x64.dll" If FileExists(@ScriptDir & "\_ImageSearch_x64.dll") Then $_ImageSearchDLL_Path = @ScriptDir & "\_ImageSearch_x64.dll" EndIf Global Const $ImageSearchDLL_Path = $_ImageSearchDLL_Path ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== _ImageSearch_CheckDLL() ; =============================================================================================================================== ;=============================================================================== ; ; Author:...........: AutoIT VietNam : Dao Van Trong - TRONG.LIVE ; Description:......: Check image Appears or Not ; Find and return the position of an image on the desktop ; Syntax:........... _ImageSearch_Area, _ImageSearch ; Parameter(s):..... $_ImagePath: The image to locate on the desktop ; May be a list of image by delimited by "|" ; i.e: $_ImagePath = "image1.bmp|image2.bmp|image3.bmp" ; $P_x1 $P_y1: Position of 1st point ; $P_x2 $P_y2: Position of 2nd point - Default is last botton right of desktop ; $_Tolerance: 0 for no tolerance (0-255). Needed when colors of image differ from desktop. e.g GIF ; $_CenterPos: boolen. True will return $array[1] x $array[2] is center of image found. ; False will return top-left position ; Return Value(s):.. Return an array has 3 item ; On Success: $array[0] 1 ; On Failure: $array[0] 0 ; DLL not found or other error: $array[0] -1 ; $array[1] x $array[2]: position of image what found on desktop ; ; Note:............. Use _ImageSearch to search the entire desktop ; _ImageSearch_Area to specify a desktop region to search ; $_ImagePath with more item need more time appear on screen before function can detect. ; Decrease sleep time in the loop to detect faster. But less performance. I.e CPULoad increased ; ;=============================================================================== Func _ImageSearch($_ImagePath, $_Tolerance = 0, $_CenterPos = True) Return _ImageSearch_Area($_ImagePath, 0, 0, @DesktopWidth, @DesktopHeight, $_Tolerance, $_CenterPos) EndFunc ;==>_ImageSearch ; * -----:| Dao Van Trong - TRONG.LIVE Func _ImageSearch_Area($_ImagePath, $P_x1 = 0, $P_y1 = 0, $P_x2 = @DesktopWidth, $P_y2 = @DesktopHeight, $_Tolerance = 0, $_CenterPos = True) Local $_Return[3] = [0, 0, 0], $_TempVar, $i, $ImageSearchDLL_Path $_Return[0] = -1 If (FileExists($_ImagePath) = 0) And (StringInStr($_ImagePath, "|") = 0) Then If $ImageSearch_Debug Then ConsoleWrite("! Image file not found - Can't search !" & @CRLF & "! " & $_ImagePath & @CRLF) Return SetError(-1, 0, $_Return) EndIf If $P_x1 > $P_x2 Then ; change position to default top-left and botton-right $_TempVar = $P_x1 $P_x1 = $P_x2 $P_x2 = $_TempVar EndIf If $P_y1 > $P_y2 Then $_TempVar = $P_y1 $P_y1 = $P_y2 $P_y2 = $_TempVar EndIf Local $_Find_IMG_X, $_Find_IMG = StringSplit($_ImagePath, '|', 2) For $i = 0 To (UBound($_Find_IMG) - 1) Step +1 $_Find_IMG_X = $_Find_IMG[$i] If (FileExists($_Find_IMG_X) = 0) Then If $ImageSearch_Debug Then ConsoleWrite("! Image file not found !" & @CRLF & "! " & $_Find_IMG_X & @CRLF) ContinueLoop EndIf If $_Tolerance > 0 Then $_Find_IMG_X = "*" & $_Tolerance & " " & $_Find_IMG_X If (FileExists($ImageSearchDLL_Path) = 0) Then _ImageSearch_CheckDLL() Local $result = DllCall($ImageSearchDLL_Path, "str", "ImageSearch", "int", $P_x1, "int", $P_y1, "int", $P_x2, "int", $P_y2, "str", $_Find_IMG_X) If Not IsArray($result) Then ; dll not found or other error If $ImageSearch_Debug Then ConsoleWrite("! Dll not found or Call Dll error !" & @CRLF) $_Return[0] = -1 Return SetError(1, 0, $_Return) EndIf If Int($result[0]) = 0 Then ; search not found If $ImageSearch_Debug Then ConsoleWrite("! Search not found !" & @CRLF) $_Return[0] = 0 ContinueLoop Else $_Return[0] = 1 If $ImageSearch_Debug Then ConsoleWrite("+ Dll Return: " & $result[0] & @CRLF) Local $array = StringSplit($result[0], "|") If $_CenterPos Then $_Return[1] = Round(Number($array[2]) + (Number($array[4]) / 2)) $_Return[2] = Round(Number($array[3]) + (Number($array[5]) / 2)) If $ImageSearch_Debug Then ConsoleWrite("- CP: " & $_Return[1] & " " & $_Return[2] & @CRLF) Else $_Return[1] = Number($array[2]) $_Return[2] = Number($array[3]) If $ImageSearch_Debug Then ConsoleWrite("- : " & $_Return[1] & " " & $_Return[2] & @CRLF) EndIf ExitLoop EndIf Next Return $_Return EndFunc ;==>_ImageSearch_Area ; * -----:| Dao Van Trong - TRONG.LIVE ;=============================================================================== ; ; Description:......Wait for a specified number of milliseconds for an image to appear ; ; Syntax: _ImageSearch_Wait, _ImageSearch_WaitArea ; Author:...........This function copied from original UDF shared from autoitscript forum. ; I have rename them for easy to remember ; I dont know who are author. Please contact me if you are author of them. I will leave a copyright ; Parameter(s):.....$_ImagePath: The image to locate on the desktop ; May be a list of image by delimited by "|" ; i.e: $_ImagePath = "image1.bmp|image2.bmp|image3.bmp" ; $_TimeOut: Timeout wait after return "not found" result (in milliseconds) ; $P_x1 $P_y1: Position of first point ; $P_x2 $P_y2: Position of second point - Default is last botton right of desktop ; $_Tolerance: 0 for no tolerance (0-255). Needed when colors of image differ from desktop. e.g GIF ; $_CenterPos: boolen. True will return $array[1] x $array[2] is center of image found. False will return top-left position ; Return Value(s):..On Success: Returns 1 ; On Failure: Returns 0 ; $_ImagePath with more item need more time appear on screen before function can detect. ; Decrease sleep time in the loop to detect faster. But less performance. I.e CPULoad increased ; ;=============================================================================== Func _ImageSearch_Wait($_ImagePath, $_TimeOut, $_Tolerance = 0, $_CenterPos = True) Local $_Return[3] = [0, 0, 0] Local $_StartTime = TimerInit() While TimerDiff($_StartTime) < $_TimeOut Sleep($ImageSearch_SleepTime) $_Return = _ImageSearch_Area($_ImagePath, 0, 0, @DesktopWidth, @DesktopHeight, $_Tolerance, $_CenterPos) If $_Return[0] > 0 Then ExitLoop WEnd Return $_Return EndFunc ;==>_ImageSearch_Wait ; * -----:| Dao Van Trong - TRONG.LIVE Func _ImageSearch_WaitArea($_ImagePath, $_TimeOut, $P_x1, $P_y1, $P_x2 = @DesktopWidth, $P_y2 = @DesktopHeight, $_Tolerance = 0, $_CenterPos = True) Local $_Return[3] = [0, 0, 0] Local $_StartTime = TimerInit() While TimerDiff($_StartTime) < $_TimeOut Sleep($ImageSearch_SleepTime) $_Return = _ImageSearch_Area($_ImagePath, $P_x1, $P_y1, $P_x2, $P_y2, $_Tolerance, $_CenterPos) If $_Return[0] > 0 Then ExitLoop WEnd Return $_Return EndFunc ;==>_ImageSearch_WaitArea ; * -----:| Dao Van Trong - TRONG.LIVE Func _ImageSearch_CheckDLL() ; * -----:| ImageSearchDLL Binary Local $DllBinary = '0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000080100000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000D6EE294F928F471C928F471C928F471CD4DE9A1C908F471CD4DE981C968F471CD4DEA71C998F471CD4DEA61C908F471C9BF7C41C938F471C9BF7D41C9F8F471C928F461CD78F471C9FDDA21C918F471C9FDD9B1C938F471C9FDD9C1C938F471C9FDD991C938F471C52696368928F471C000000000000000000000000000000000000000000000000504500004C010500A488E25B0000000000000000E00002210B010C00002200000016000000000000FC290000001000000040000000000010001000000002000005000100000000000500010000000000008000000004000000000000020040010000100000100000000010000010000000000000100000006044000065000000C8440000A000000000600000E001000000000000000000000000000000000000007000005802000050410000380000000000000000000000000000000000000000000000000000001043000040000000000000000000000000400000300100000000000000000000000000000000000000000000000000002E74657874000000EB200000001000000022000000040000000000000000000000000000200000602E72646174610000320B000000400000000C000000260000000000000000000000000000400000402E64617461000000C8030000005000000002000000320000000000000000000000000000400000C02E72737263000000E0010000006000000002000000340000000000000000000000000000400000402E72656C6F6300005802000000700000000400000036000000000000000000000000000040000042000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' $DllBinary &= 'B801000000C20C00CCCCCCCCCCCCCCCC568BF185F60F8497010000803E000F848E010000578B3DA440001068A441001056FFD783C40885C075035F5EC368AC41001056FFD783C40885C075085FB8C0C0C0005EC368B441001056FFD783C40885C075085FB8808080005EC368BC41001056FFD783C40885C075085FB8FFFFFF005EC368C441001056FFD783C40885C075085FB8800000005EC368CC41001056FFD783C40885C075085FB8FF0000005EC368D041001056FFD783C40885C075085FB8800080005EC368D841001056FFD783C40885C075085FB8FF00FF005EC368E041001056FFD783C40885C075085FB8008000005EC368E841001056FFD783C40885C075085FB800FF00005EC368F041001056FFD783C40885C075085FB8808000005EC368F841001056FFD783C40885C075085FB8FFFF00005EC3680042001056FFD783C40885C075085FB8000080005EC3680842001056FFD783C40885C075085FB80000FF005EC3681042001056FFD783C40885C075085FB8008080005EC3681842001056FFD783C40885C075085FB800FFFF005EC3682042001056FFD783C408F7D81BC0257F7F7FFF5F05808080005EC383C8FF5EC3CCCCCCCCCCCCCCCCCC568BF18BC68A1080FA20740580FA09750340EBF18A0884C9743F80F92D740580F92B750140803830752F8A480180F978740580F95875220FBE400250FF15A840001083C40485C074106A106A0056FF15AC40001083C40C5EC356FF15B040001083C4045EC3CCCCCCCCCCCCCCCCCCCCCC558BEC81EC6C040000A10050001033C58945FC8B450C53568B7508578BF98985B8FBFFFF8B45105289BDB0FBFFFF89B5A4FBFFFF8985ACFBFFFFFF15184000108985A8FBFFFF85C00F844302000033C9C785C0FBFFFF280000005166898DCEFBFFFF33DB8D8DC0FBFFFF889DBFFBFFFF515353535750FF151440001085C00F84E6010000668BBDCEFBFFFF0FB7C73B45140F8CD30100008B8DACFBFFFF6683FF100F94C088018B8DB8FBFFFF8B85C4FBFFFF89068B85C8FBFFFF89018B068BB5C8FBFFFF0FAFC68985B4FBFFFFC1E002508985A0FBFFFFFF15B84000108BD883C404899DACFBFFFF85DB0F847A0100006683FF080F94C08885BEFBFFFF84C0750CB820000000668985CEFBFFFF8BBDA8FBFFFFF7DE89B5C8FBFFFF8BB5B0FBFFFF5657FF15104000106A0089859CFBFFFF8D85C0FBFFFF508B85B8FBFFFF53FF306A005657FF151440001085C00F840501000080BDBEFBFFFF000F84F1000000B800040000E8F61C00008BC45068000100006A0057898598FBFFFFFF150C4000108B95A4FBFFFF8B02250300008079054883C8FC407409BF040000002BF8EB0233FF8B85B8FBFFFF8D73FF89BDB0FBFFFF8B088BC10FAFC70385B4FBFFFF03F08B85A0FBFFFF83C0FC03D833C08985B4FB' $DllBinary &= 'FFFF85C97E6E8B8DB8FBFFFF8D49002BF733FF393A7E4CEB068D9B000000000FB606478B8D98FBFFFF4E8B14818BC2C1E8080FB6C80FB6C2C1E0080BC8C1EA10C1E1080FB6C28B95A4FBFFFF0BC8890B83EB043B3A7CC88B85B4FBFFFF8B8DB8FBFFFF8BBDB0FBFFFF408985B4FBFFFF3B017C9B8BBDA8FBFFFF8B9DACFBFFFFC685BFFBFFFF018B859CFBFFFF85C074085057FF1510400010FFB5A8FBFFFFFF150840001080BDBFFBFFFF00751085DB740C53FF15A040001083C40433DB8BC38DA588FBFFFF5F5E5B8B4DFC33CDE8D61200008BE55DC3CCCCCCCCCCCCCCCC558BEC81EC74020000A10050001033C58945FC8B450C538B5D088985E0FDFFFFC700FFFFFFFF33C056578B7D108995D4FDFFFF898DD8FDFFFFC785E8FDFFFF0000000038010F84F706000085FF6A2E0F48F85189BDDCFDFFFFFF15BC4000108BF083C40885F674014683FF018B3DA44000100F8F0E01000085F6745F682842001056FFD783C40885C00F84F7000000682C42001056FFD783C40885C00F84E4000000683042001056FFD783C40885C00F84D1000000683442001056FFD783C40885C00F84BE000000683842001056FFD783C40885C00F84AB0000008B85DCFDFFFFC685E7FDFFFF0085C07E178B8DE0FDFFFF8B85E8FDFFFFC70101000000E9CD00000085F67477683C42001056FFD783C40885C075178B8DE0FDFFFF8B85E8FDFFFFC70101000000E9A3000000684042001056FFD783C40885C0742E684442001056FFD783C40885C0741F684842001056FFD783C40885C075248B8DE0FDFFFF89018B85E8FDFFFFEB668B8DE0FDFFFF8B85E8FDFFFFC70102000000EB528B85E8FDFFFFEB448B85E0FDFFFFC685E7FDFFFF01C700010000008B85DCFDFFFF85C07E0348EB0233C050FFB5D8FDFFFFFF3554530010FF15F84000108985E8FDFFFF83F8020F824F0300008B8DE0FDFFFF8B95D4FDFFFF83FAFF740583FBFF750885D2741785DB741383FAFF740583FBFF7513C685EFFDFFFF01EB1133DB33D28995D4FDFFFFC685EFFDFFFF0085C00F85A40000008B0983F9FF0F8E990000003885EFFDFFFF740433D2EB028BC36810200000505251FFB5D8FDFFFF6A00FF15004100108985E8FDFFFF85C0741A80BDEFFDFFFF0075625F5E5B8B4DFC33CDE8671000008BE55DC3FFB5D8FDFFFFFF157440001083F8FF0F849D0200008B85DCFDFFFF85C07E2C4850FFB5D8FDFFFFFF3554530010FF15F84000108985E8FDFFFF83F8020F8270020000C685E7FDFFFF01EB068B85E8FDFFFFC785D0FDFFFF0000000085C00F85740100008B85E0FDFFFFC7000000000085F67439685442001056FFD783C40885C00F84E5010000685842001056FFD783C40885C00F84D2010000686042001056FFD783C40885C00F84BF010000684C420010FF157C4000108BF885FF' $DllBinary &= '0F84AA0100008B3570400010686442001057FFD66874420010578985CCFDFFFFFFD66884420010578985C4FDFFFFFFD668A0420010578985C0FDFFFFFFD668BC420010578985C8FDFFFFFFD68BF0C785ACFDFFFF010000008B85CCFDFFFFC785B0FDFFFF00000000C785B4FDFFFF00000000C785B8FDFFFF0000000085C00F848B0000006A008D8DACFDFFFF518D8DBCFDFFFF51FFD085C0757568040100008D85F0FDFFFF506AFFFFB5D8FDFFFF6A006A00FF156C4000108D85DCFDFFFF508D85F0FDFFFF50FF95C0FDFFFF85C0753368808080008D85E8FDFFFF50FFB5DCFDFFFFFF95C8FDFFFF8B8DE8FDFFFF33D2FFB5DCFDFFFF85C00F45CA898DE8FDFFFFFFD6FFB5BCFDFFFFFF95C4FDFFFF57FF15684000108B85E8FDFFFF80BDEFFDFFFF008BBDE0FDFFFF0F8470020000833F00741C8D8DA8FDFFFF5150FF152041001085C00F84710200008B85B4FDFFFF8D8D90FDFFFF516A1850FF151C40001083FBFF0F85950100008B8594FDFFFF85C00F84C7010000660F6E8D98FDFFFFF30FE6C9660F6EC0F30FE6C0F20F5EC8660F6E85D4FDFFFFF30FE6C0F20F59C8F20F580DF8420010F20F2CD9E98E0100006A006A006A036A006A006800000080FFB5D8FDFFFFFF15644000108BF883FFFF74256A0057FF1560400010506A028985DCFDFFFFFF155C4000108BF085F6751A57FF155840001033C05F5E5B8B4DFC33CDE8A20D00008BE55DC356FF155440001085C0752157FF155840001056FF153C40001033C05F5E5B8B4DFC33CDE8760D00008BE55DC36A008D8DDCFDFFFF51FFB5DCFDFFFF5057FF152C40001056FF153040001057FF15584000108D85CCFDFFFF506A0056FF152841001085C078AD8B85CCFDFFFF85C074A38D8DD0FDFFFF5168884100106A006A0050FF15F04000108B8DD0FDFFFF33D285C08B85CCFDFFFF500F48CA898DD0FDFFFF8B08FF510856FF153C4000108B8DD0FDFFFF85C90F8433FFFFFF8B018D95E8FDFFFF5251FF500C8B85E8FDFFFF85C00F853DFEFFFF8B85D0FDFFFF508B08FF510833C05F5E5B8B4DFC33CDE8AE0C00008BE55DC38B8598FDFFFF85C07436660F6E8D94FDFFFF660F6EC0F30FE6C9F30FE6C0F20F5EC8660F6EC3F30FE6C0F20F59C8F20F580DF8420010F20F2CC18985D4FDFFFF833F007456FFB5B8FDFFFF8B3504400010FFD6FFB5B4FDFFFFFFD680BDE7FDFFFF007537FFB5E8FDFFFFFF151C4100108B95D4FDFFFF6A105352FF37FFB5D8FDFFFF6A00FF15004100105F5E5B8B4DFC33CDE8130C00008BE55DC38B85E8FDFFFF83BDD0FDFFFF008B95D4FDFFFF745B85D2752885DB75248D4A04EB21FFB5E8FDFFFFFF151C41001033C05F5E5B8B4DFC33CDE8D20B00008BE55DC333C95153526A0050FF15184100108B8DD0FDFFFF8BF0518B11FF52088BC65F5E5B8B4DFC33CDE8' $DllBinary &= 'A30B00008BE55DC385D2750485DB740F6A0C5352FF3750FF15184100108BF08B4DFC5F5E33CD5BE87B0B00008BE55DC3CCCCCCCCCCCCCCCCCCCCCCCCCC558BEC83EC4CA10050001033C58945FC538BD9565785DB751333C05F5E5B8B4DFC33CDE8420B00008BE55DC333F656FF1514410010508945E8FF15184000108BF885FF0F84C90000008D45B45053FF152041001085C00F84AF0000008D45C8506A18FF75C4FF151C40001085C00F8486000000FF75D0FF75CCFF75E8FF15244000108BF08975E485F6746E5657FF15104000108945E085C0745F8B4DCC894DF48B4DD06880808000C745EC00000000C745F000000000894DF8FF15004000108BF08D45EC565057FF151041001056FF15044000106A036A006A00FF75D0FF75CC536A006A0057FF150C410010FF75E057FF15104000108B75E4FF75C4FF1504400010FF75C0FF150440001057FF1508400010FF75E86A00FF150441001053FF151C4100108B4DFC8BC65F5E33CD5BE8370A00008BE55DC3CCCCCCCCCCCCCCCCCC558BEC8B450803C05DC20400CCCCCCCC558BEC83E4F881ECB4000000A10050001033C4898424B00000005356578B7D180F57C06A2E33DBC74424180000000057F30F7F842494000000C7442438FFFFFFFFC744245800000000895C2428FF15BC4000108BF083C40885F6744C8B1DA440001046683C42001056FFD383C40885C0741E682842001056FFD383C40885C0740F682C42001056FFD383C40885C075168B35084100106A31FFD66A328BD8FFD689442420EB0233DB8BF78D9B000000008A063C2074043C09750346EBF3803E2A0F857B0200000FBE4601468B3DC440001050FF15C040001083C40483F8480F848401000083F8570F84150100006A0468D042001056FFD783C40C85C0751383C6048BCEE828F3FFFF89442450E9C50100006A0568D842001056FFD783C40C85C00F85A80000006A1F83C6058D8424A00000005650FF15B44000108A9424A80000008DBC24A800000083C40CC68424BB0000000084D27422B9E0420010B0208BFF3AD074128A41014184C075F48A57014784D275E3EB03C607008D8C249C000000E8FBF0FFFF8BC883F9FF751E6A108D8424A00000006A0050FF15AC40001083C40C89442430E92C0100008BC1C1E8080FB6D00FB6C1C1E0080BD0C1E910C1E2080FB6C10BD089542430E9080100008BCEE85BF2FFFF8944241485C0790DC744241400000000E9EC0000003DFF0000000F8EE1000000C7442414FF000000E9D40000008D7E018BC78A0880F920740580F909750340EBF18A0884C9744180F92D740580F92B75014080383075318A480180F978740580F95875240FBE400250FF15A840001083C40485C074126A106A0057FF15AC40001083C40C8BD8EB7957FF15B04000108BD8EB6B8D7E018BC78D49008A0880F9' $DllBinary &= '20740580F909750340EBF18A0884C9744380F92D740580F92B75014080383075338A480180F978740580F95875260FBE400250FF15A840001083C40485C074146A106A0057FF15AC40001083C40C89442420EB0E57FF15B04000108944242483C40485F60F84A00000008A1684D20F8496000000EB068D9B00000000B9E0420010B0203AD0742C8A41014184C075F48A56014684D275E5B8E44200105F5E5B8B8C24B000000033CCE8F90600008BE55DC214008D7E018BF78D6424008A063C2074083C090F857FFDFFFF46EBEF51FF7424548D4424488BD350FF74242C8BCFE8F8F3FFFF8BD883C410895C246485DB74196A00FF15144100108BF8897C245C85FF752353FF1504400010B8E44200105F5E5B8B8C24B000000033CCE8860600008BE55DC2140033C933F6837C244001894C2450894C241C894C2434894C2474884C241175658D4424785053FF152041001085C074408B8C24840000008D4424126A01508D4424288BD7508D44244450E8B8F0FFFF83C41089442434FFB42488000000FF1504400010FFB42484000000FF15044000108BCBE8A0FAFFFF8BD88944246485DB0F8460FFFFFF6A088D4424168BD7508D4424288BCB508D44244450E868F0FFFF83C4108944242485C00F84A90500008B75108B7D142B75082B7D0C46FF74245C47FF15184000108BD8895C241885DB0F847F0500005756FF742464FF15244000108944245085C00F84670500005053FF15104000108944247485C00F8453050000682000CC00FF750CFF7508FF74246857566A006A0053FF152040001085C00F842F0500008B4C24508D4424136A08508D4424688BD3508D44245850E8C7EFFFFF8BD083C4108954241C85D20F84020500008B74244C8BDE8B7C24380FAF7C24200FAF5C2460807C241200897C2454895C2458750B807C2413000F84CA0000008B44243083F8FF740925F8F8F8008944243033C985DB7E4E83FB0472398BC3250300008079054883C8FC40660F6F0D004300108BD32BD08B44241CF30F6F0083C1048D4010660FDBC1F30F7F40F03BCA7CE98B54241C3BCB7D0C81248AF8F8F800413BCB7CF433C985FF7E7583FF04723E8BC7250300008079054883C8FC40660F6F0D004300108BD72BD08B442424EB078DA42400000000F30F6F0083C1048D4010660FDBC1F30F7F40F03BCA7CE98B4424243BCF7D0D90812488F8F8F800413BCF7CF48B54241CEB048B44242485FF7E0F83C0038BCF90C600008D40044975F7837C2414010F8D0402000085DB7E118D42038BCB8D4900C600008D40044975F733DB895C242C395C24580F8EE60000008B4424248B08894C2428EB0B8DA424000000008D6424008D049D0000000089442448390C1074178B44243485C07405833800750A3B4C24300F858D0100008BC38B4C246099F7FE2BC8394C24' $DllBinary &= '200F8F700100008BC62BC2394424380F8F6201000033D2C64424110133FF8BC3897C2444395424547E708B7424348B4C24242BF1C644241101897424408B7C241C8B313934878B7C2444741D837C243400740C8B742440833C0E008B31750A3B7424300F8501010000423B5424387D0340EB158B74244C33D28D04B5000000000144244803DE8BC34783C104897C24443B7C24547CA78B5C242C8B742418FF74245C6A00FF1504410010FF7424648B3D04400010FFD785F674178B44247485C074085056FF151040001056FF15084000108B44245085C0740350FFD78B4424248B35A040001085C0740650FFD683C4048B44243485C0740650FFD683C4048B44241C85C0740650FFD683C404807C2411000F84F2FBFFFF8BC399F77C244CFF7424202B842494000000FF74243C03450C2B942494000000035508505268E84200106858530010E8400200008B8C24D400000083C418B8585300105F5E5B33CCE8410200008BE55DC214008B5C242C8B74244CC6442411008B4C24288B54241C43895C242C3B5C24580F8C3DFEFFFFE907FFFFFF33DB895C242C395C24580F8EF7FEFFFF8BC38B4C246099F7FE2BC8394C24200F8F4D0100008BC62BC2394424380F8F3F01000033C9C644241101894C2444894C2440895C244885FF0F8EB9FEFFFF8B4424248D0C9D00000000894C246C8B4C24342BC8C644241101895C247089442428894C24688D6424008A48028A58018A200FB6D18864243F395424147E07C644241200EB0A8AC12A442414884424120FB6F3397424147E07C644241300EB0A8AC32A442414884424130FB6FC397C24147E0432FFEB068AFC2A7C2414B8FF0000002BC28B5424143BD07E0580CEFFEB048AF202F18B4C2414B8FF0000002BC63BC87E0580CDFFEB048AE902EBB8FF0000002BC7394424147E0580C9FFEB088A4C2414024C243F8B7C24488B74241C8A54BE028A44BE018A1CBE3A54241272163AD677123A442413720C3AC577083ADF72043AD97642837C2434008B442428740A8B4C2468833C080075318B4C2430390874298B5C242C8B74244C8B7C2454C64424110043895C242C3B5C24580F8C8FFEFFFFE981FDFFFF8B4424288B74244446897424443B7424387D0747897C2448EB258B54244C33C98B7C2470894C24448D0C9500000000014C246C03FA8BCF897C2470894C24488B74244083C0044689442428897424403B7424540F8C99FEFFFFE91FFDFFFF8B7424188B5C2468E91AFDFFFFCCCCCCCCCCCCCC558BEC8D451050FF750C6A32FF7508FF15C840001083C4105DC33B0D005000107502F3C3E9D6030000566880000000FF1584400010598BF056FF154C400010A3C0530010A3BC53001085F6750533C0405EC3832600E88D07000068972F0010E8D2060000C70424C42F0010E8C60600005933C05EC355' $DllBinary &= '8BEC5151837D0C005356570F8529010000A12050001085C00F8E1501000048BBB4530010A32050001033FF64A118000000897DFC8B5004EB043BC2740E33C08BCAF00FB10B85C075F0EB07C745FC01000000833DB853001002740D6A1FE82804000059E982010000FF35C0530010FF15484000108BF089751085F60F849A000000FF35BC530010FF15484000108BD889750C895D0883EB043BDE725C393B74F557FF154C400010390374EAFF33FF1548400010578BF0FF154C4000108903FFD6FF35C05300108B3548400010FFD6FF35BC5300108945F8FFD68B4DF8394D0C75088B751039450874AC8BF1894D0C8975108BD8894508EB9D83FEFF740856FF15A04000105957FF154C400010A3BC530010BBB4530010A3C0530010893DB8530010397DFC0F85C000000033C08703E9B700000033C0E9B3000000837D0C010F85A600000064A11800000033FF8BF7BBB45300108B5004EB043BC2740E33C08BCAF00FB10B85C075F0EB0333F646393DB85300106A025F74096A1FE80B030000EB3568444100106838410010C705B853001001000000E81E060000595985C0759368344100106830410010E80306000059893DB85300105985F6750433C08703833DC453001000741C68C4530010E8180300005985C0740DFF751057FF7508FF15C4530010FF052050001033C0405F5E5B8BE55DC20C00558BEC837D0C017505E8D1040000FF7510FF750CFF7508E80700000083C40C5DC20C006A1068F8430010E8A505000033C0408BF08975E433DB895DFC8B7D0C893D105000108945FC85FF750C393D205000100F84D40000003BF8740583FF027538A19841001085C0740EFF751057FF7508FFD08BF08975E485F60F84B1000000FF751057FF7508E87DFDFFFF8BF08975E485F60F8498000000FF751057FF7508E85FE5FFFF8BF08975E483FF01752E85F6752AFF751053FF7508E845E5FFFFFF751053FF7508E83EFDFFFFA19841001085C07409FF751053FF7508FFD085FF740583FF03754BFF751057FF7508E817FDFFFFF7D81BC023F08975E47434A19841001085C0742BFF751057FF7508FFD08BF0EB1B8B4DEC8B018B008945E05150E86A0100005959C38B65E833DB8BF38975E4895DFCC745FCFEFFFFFFE80B0000008BC6E8D2040000C38B75E4C70510500010FFFFFFFFC3558BECFF15444000106A01A344530010E8E5040000FF7508E8E3040000833D4453001000595975086A01E8CB0400005968090400C0E8CC040000595DC3558BEC81EC240300006A17E8DD04000085C074056A0259CD29A328510010890D24510010891520510010891D1C510010893518510010893D14510010668C1540510010668C0D34510010668C1D10510010668C050C510010668C2508510010668C2D045100109C8F05385100108B4500A32C5100108B4504' $DllBinary &= 'A3305100108D4508A33C5100108B85DCFCFFFFC7057850001001000100A130510010A334500010C70528500010090400C0C7052C50001001000000C70538500010010000006A04586BC000C7803C500010020000006A04586BC0008B0D00500010894C05F86A0458C1E0008B0D04500010894C05F8689C410010E8CCFEFFFF8BE55DC3FF25CC400010FF25D0400010CCCCCCCCCCCCCCCCCCCC558BEC8B450833D25356578B483C03C80FB741140FB7590683C01803C185DB741B8B7D0C8B700C3BFE72098B480803CE3BF9720A4283C0283BD372E833C05F5E5B5DC3CCCCCCCCCCCCCCCCCCCCCCCCCC558BEC6AFE6820440010682930001064A1000000005083EC08535657A1005000103145F833C5508D45F064A3000000008965E8C745FC000000006800000010E87C00000083C40485C074548B45082D00000010506800000010E852FFFFFF83C40885C0743A8B4024C1E81FF7D083E001C745FCFEFFFFFF8B4DF064890D00000000595F5E5B8BE55DC38B45EC8B0033C98138050000C00F94C18BC1C38B65E8C745FCFEFFFFFF33C08B4DF064890D00000000595F5E5B8BE55DC3CCCCCCCCCCCC558BEC8B4508B94D5A0000663908740433C05DC38B483C03C833C0813950450000750CBA0B010000663951180F94C05DC3833DC053001000740333C0C3566A046A20FF159440001059598BF056FF154C400010A3C0530010A3BC53001085F675056A18585EC383260033C05EC36A146840440010E8A70100008365DC00FF35C05300108B3548400010FFD68945E483F8FF750CFF7508FF158C40001059EB656A08E808020000598365FC00FF35C0530010FFD68945E4FF35BC530010FFD68945E08D45E0508D45E450FF75088B354C400010FFD650E8E001000083C40C8BF8897DDCFF75E4FFD6A3C0530010FF75E0FFD6A3BC530010C745FCFEFFFFFFE80B0000008BC7E85C010000C38B7DDC6A08E8A001000059C3558BECFF7508E84CFFFFFFF7D8591BC0F7D8485DC3558BEC83EC148365F4008365F800A1005000105657BF4EE640BBBE0000FFFF3BC7740D85C67409F7D0A304500010EB668D45F450FF15504000108B45F83345F48945FCFF15344000103145FCFF15384000103145FC8D45EC50FF15784000108B4DF08D45FC334DEC334DFC33C83BCF7507B94FE640BBEB1085CE750C8BC10D11470000C1E0100BC8890D00500010F7D1890D045000105F5E8BE55DC35657BEE8430010BFE8430010EB0B8B0685C07402FFD083C6043BF772F15F5EC35657BEF0430010BFF0430010EB0B8B0685C07402FFD083C6043BF772F15F5EC3CCFF25D8400010FF25DC4000106848530010E8A200000059C3682930001064FF35000000008B442410896C24108D6C24102BE0535657A1005000103145FC33C5508965E8FF75F88B45FCC745FCFEFFFFFF' $DllBinary &= '8945F88D45F064A300000000C38B4DF064890D00000000595F5F5E5B8BE55D51C3558BECFF7514FF7510FF750CFF750868AA2700106800500010E82F00000083C4185DC3FF25E0400010FF25E4400010FF25D4400010FF259C400010FF2598400010FF2590400010FF2588400010FF25E8400010FF2540400010CCCCCCCCCCCCCCCCCCCCCCCCCCCC518D4C24082BC883E10F03C11BC90BC159E91A000000518D4C24082BC883E10703C11BC90BC159E904000000CCCCCCCC518D4C24042BC81BC0F7D023C88BC42500F0FFFF3BC8720A8BC159948B00890424C32D001000008500EBE900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000864800005C4800005048000036480000264800001A48000004480000F64700009A4800006C480000000000004847000054470000024B0000EC4A00003A470000B64A0000A24A0000924A0000824A0000184B00002C4700001E4700001047000002470000F4460000E6460000D0460000BE460000A8460000D24A000098460000000000009C490000444A00003A4A00002C4A00001E4A0000144A00000C4A0000FA480000024900000E4900001A490000244900002C49000036490000404900004A49000054490000604900007C4900008E490000F4490000AA490000B6490000C4490000DA490000684A000000000000A201008000000000AE4800000000000072470000CA470000D6470000BC470000B0470000A84700009C4700008E4700008047000000000000CA48000000000000000000000000000000000000B9270010E12D001000000000000000000000000000000000A488E25B000000000200000068000000584300005829000000000000A488E25B000000000C00000014000000C0430000C02900008009F87B32BF1A108BBB00AA00300CAB000000002850001078500010426C61636B00000053696C7665720000477261790000000057686974650000004D61726F6F6E000052656400507572706C6500004675636873696100477265656E0000004C696D65000000004F6C69766500000059656C6C6F7700004E6176790000000042' $DllBinary &= '6C7565000000005465616C00000000417175610000000044656661756C740065786500646C6C0069636C0063706C007363720069636F0063757200616E6900626D7000676469706C7573006A7067006A7065670000000067696600476469706C7573537461727475700000476469706C757353687574646F776E00476469704372656174654269746D617046726F6D46696C650000000047646970437265617465484249544D415046726F6D4269746D61700047646970446973706F7365496D6167650000000049636F6E000000005472616E730000002009000030000000317C25647C25647C25647C2564000000000000000000E03FF8F8F800F8F8F800F8F8F800F8F8F80048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500010E04300100100000052534453926C9C4BED0F06458B854963598D72DE01000000413A5C5F4175746F49745F5F5F5F5C5F50726F6A6563745F5F5F5C5F494D475365617263685C496D616765536561726368444C4C5C52656C656173655C496D616765536561726368444C4C2E706462000100000010000000100000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000FEFFFFFF00000000D0FFFFFF00000000FEFFFFFF00000000442B0010000000000F2B0010232B0010FEFFFFFF00000000D8FFFFFF00000000FEFFFFFF792D00108C2D001000000000FEFFFFFF00000000CCFFFFFF00000000FEFFFFFF00000000BA2E00100000000000000000A388E25B000000009C440000010000000200000002000000884400009044000098440000901D0000801D0000AF440000BB44000000000100496D616765536561726368444C4C2E646C6C00496D61676553656172636800496D6167655465737400000000944500000000000000000000644700002C400000684600000000000000000000EA47000000410000684500000000000000000000A448000000400000604600000000000000000000BE480000F8400000904600000000000000000000E248000028410000584600000000000000000000EC480000F0400000EC45000000000000000000006E490000844000000000000000000000000000000000000000000000864800005C4800005048000036480000264800001A48000004480000F64700009A4800006C480000000000004847000054470000024B0000EC4A00003A470000B64A0000A24A0000924A0000824A0000184B00002C4700001E4700001047000002470000F4460000E6460000D0460000BE460000A8460000D24A000098460000000000009C490000444A00003A4A00002C4A00001E4A0000144A00000C4A0000FA48' $DllBinary &= '0000024900000E4900001A490000244900002C49000036490000404900004A49000054490000604900007C4900008E490000F4490000AA490000B6490000C4490000DA490000684A000000000000A201008000000000AE4800000000000072470000CA470000D6470000BC470000B0470000A84700009C4700008E4700008047000000000000CA480000000000003C034C6F61644C696272617279410000E50147657446696C6541747472696275746573410000450247657450726F6341646472657373000067034D756C746942797465546F5769646543686172006201467265654C69627261727900880043726561746546696C654100F00147657446696C6553697A6500B302476C6F62616C416C6C6F63005200436C6F736548616E646C6500BE02476C6F62616C4C6F636B0000BA02476C6F62616C467265650000C0035265616446696C650000C502476C6F62616C556E6C6F636B00004B45524E454C33322E646C6C0000EE014C6F6164496D616765410000330147657449636F6E496E666F00A30044657374726F7949636F6E005400436F7079496D616765002101476574444300F60046696C6C526563740000C8004472617749636F6E45780000650252656C656173654443007E0147657453797374656D4D65747269637300005553455233322E646C6C0000FB014765744F626A6563744100003000437265617465436F6D70617469626C6544430000CA0147657444494269747300770253656C6563744F626A6563740000120247657453797374656D50616C65747465456E747269657300E30044656C65746544430000E60044656C6574654F626A65637400002F00437265617465436F6D70617469626C654269746D617000005400437265617465536F6C6964427275736800001300426974426C74000047444933322E646C6C0027004578747261637449636F6E4100005348454C4C33322E646C6C00860043726561746553747265616D4F6E48476C6F62616C006F6C6533322E646C6C004F4C4541555433322E646C6C00008306667265650000B2045F73747269636D700000B906697378646967697400004807737472746F6C0000EF0561746F6900003C077374726E63707900DB066D616C6C6F630000400773747272636872005D07746F757070657200BC045F7374726E69636D7000730776737072696E74665F7300004D535643523132302E646C6C00006F015F5F4370705863707446696C7465720017025F616D73675F657869740000A5035F6D616C6C6F635F637274000C035F696E69747465726D000D035F696E69747465726D5F650050025F6372745F64656275676765725F686F6F6B0000AC015F5F637274556E68616E646C6564457863657074696F6E00AB015F5F6372745465726D696E61746550726F63657373' $DllBinary &= '0094035F6C6F636B0004055F756E6C6F636B002E025F63616C6C6F635F63727400AE015F5F646C6C6F6E65786974003A045F6F6E65786974008C015F5F636C65616E5F747970655F696E666F5F6E616D65735F696E7465726E616C00007A025F6578636570745F68616E646C6572345F636F6D6D6F6E00EA00456E636F6465506F696E74657200CA004465636F6465506F696E7465720000034973446562756767657250726573656E74000403497350726F636573736F724665617475726550726573656E7400A7035175657279506572666F726D616E6365436F756E74657200C10147657443757272656E7450726F63657373496400C50147657443757272656E7454687265616449640000790247657453797374656D54696D65417346696C6554696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004EE640BBB119BF440000000000000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' $DllBinary &= '000001001800000018000080000000000000000000000000000001000200000030000080000000000000000000000000000001000904000048000000606000007D010000000000000000000000000000000000003C3F786D6C2076657273696F6E3D27312E302720656E636F64696E673D275554462D3827207374616E64616C6F6E653D27796573273F3E0D0A3C617373656D626C7920786D6C6E733D2775726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E763127206D616E696665737456657273696F6E3D27312E30273E0D0A20203C7472757374496E666F20786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E7633223E0D0A202020203C73656375726974793E0D0A2020202020203C72657175657374656450726976696C656765733E0D0A20202020202020203C726571756573746564457865637574696F6E4C6576656C206C6576656C3D276173496E766F6B6572272075694163636573733D2766616C736527202F3E0D0A2020202020203C2F72657175657374656450726976696C656765733E0D0A202020203C2F73656375726974793E0D0A20203C2F7472757374496E666F3E0D0A3C2F617373656D626C793E0D0A000000000000000000000000000000000000000000000000000000000000000000000000100000F800000027302C303E3055306C3083309A30B130C830DF30F6300D3124313B315231693180319731FE3110321C323A326C32A832093355337733AD339634A234B634EA343B354E355D35703583359635A935E8350E361D362C36913697361F374F3770377637BB37CE37E137F437FA370A380F381738253833384138B638143940395E39A539C939D939E839F5390F3A1A3A213A4B3A523A593A693A833A8E3AB43A323B4D3B6C3B863BC53BE63B1C3C473C713C7B3C903CA73CBE3CCF3CFB3C093D103D283D323D3E3D473D4E3D593D603D9D3DDF3DEE3DF43D033E123E223E5D3E643E803EA43EC63EE83E2A3FD03FE23FF03F002000002001000039304B305B3081309C30F9300A310F31513188319531EB31053219324132D7322B33AB34B534CB34D234E734423547355B35A137AC37C137CB37D037D537EB37F737183826382B385A387038763889388F38A938B538BE38C838CE38D63806390E39133918391D3923395539753988398D399339A739AC39B839C739CF39E639EC39223A3D3A4A3A5E3AC83AFA3A493B573B5E3B713BA93BAF3BB53BBB3BC13BC73BCE3BD53BDC3BE33BEA3BF13BF83B003C083C103C1C3C253C2A3C303C3A3C443C543C643C743C7D3C8C3C923CF63CFB3C0D3D2B3D3F3D453DE33DF43DFF3D043E093E203E2F3E353E483E5D3E683E7E3E983EA23EEA3E053F113F203F293F363F653F6D3F7A3F7F3F9A3F9F' $DllBinary &= '3FBA3FC03FC53FD13FEE3F003000002000000039303E304E3054305A30603066306C30723078307E30000000400000200000003C3140319C31A0314C335033103418341C3434343834583400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' ; * -----:| ImageSearchDLL Binary x64 Local $DllBinary_x64 = '0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000F80000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000FA7C1F43BE1D7110BE1D7110BE1D7110F84CAC10BC1D7110F84CAE10BF1D7110F84C9110B51D7110F84C9010BC1D7110B765F210BF1D7110B765E210B31D7110BE1D7010F91D7110B34F9410BD1D7110B34FAD10BF1D7110B34FAA10BF1D7110B34FAF10BF1D711052696368BE1D711000000000000000005045000064860600A689E25B0000000000000000F00022200B020C0000240000001E000000000000CC2C000000100000000000800100000000100000000200000500020000000000050002000000000000900000000400000000000002006001000010000000000000100000000000000000100000000000001000000000000000000000100000008047000065000000E8470000A000000000700000E0010000006000008C01000000000000000000000080000014000000A0420000380000000000000000000000000000000000000000000000000000008044000070000000000000000000000000400000680200000000000000000000000000000000000000000000000000002E74657874000000CB230000001000000024000000040000000000000000000000000000200000602E72646174610000A60F0000004000000010000000280000000000000000000000000000400000402E6461746100000070060000005000000002000000380000000000000000000000000000400000C02E706461746100008C0100000060000000020000003A0000000000000000000000000000400000402E72737263000000E00100000070000000020000003C0000000000000000000000000000400000402E72656C6F630000140000000080000000020000003E0000000000000000000000000000400000420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' $DllBinary_x64 &= 'B801000000C3CCCCCCCCCCCCCCCCCCCC40534883EC20803900488BD9750983C8FF4883C4205BC3488D15D2320000FF151431000085C075064883C4205BC3488D15C3320000488BCBFF15FA30000085C0750BB8C0C0C0004883C4205BC3488D15AC320000488BCBFF15DB30000085C0750BB8808080004883C4205BC3488D1595320000488BCBFF15BC30000085C0750BB8FFFFFF004883C4205BC3488D157E320000488BCBFF159D30000085C0750BB8800000004883C4205BC3488D1567320000488BCBFF157E30000085C0750BB8FF0000004883C4205BC3488D154C320000488BCBFF155F30000085C0750BB8800080004883C4205BC3488D1539320000488BCBFF154030000085C0750BB8FF00FF004883C4205BC3488D1522320000488BCBFF152130000085C0750BB8008000004883C4205BC3488D150B320000488BCBFF150230000085C0750BB800FF00004883C4205BC3488D15F4310000488BCBFF15E32F000085C0750BB8808000004883C4205BC3488D15DD310000488BCBFF15C42F000085C0750BB8FFFF00004883C4205BC3488D15C6310000488BCBFF15A52F000085C0750BB8000080004883C4205BC3488D15AF310000488BCBFF15862F000085C0750BB80000FF004883C4205BC3488D1598310000488BCBFF15672F000085C0750BB8008080004883C4205BC3488D1581310000488BCBFF15482F000085C0750BB800FFFF004883C4205BC3488D156A310000488BCBFF15292F000083C9FFBA8080800085C00F44CA8BC14883C4205BC3CCCCCCCCCCCCCCCCCCCCCCCC40534883EC20488BD9488BD10F1F40000FB6023C2074043C09750548FFC2EBF00FB60284C0743B2C2BA8FD750348FFC2803A30752D0FB642012C58A8DF75230FBE4A02FF150F2F000085C0741533D2488BCB448D42104883C4205B48FF25CE2E0000488BCB4883C4205B48FF25B72E0000CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC405553565741544155415641574881ECA8040000488D6C2440488B05203D00004833C54889855004000033FF488BDA488BC1488D551048894D08488B8DD8040000897C24304889542428498BF14D8BE0488BD04533C94533C048894D00448BF74532FFC745102800000066897D1E48897C2420FF150F2D000085C00F84A50100000FB77D1E3BBDD00400000F8C930100006683FF100F94C088068B45148B75188903418934248B030FAFC64C63E84A8D0CAD00000000FF15E42D00004C8BF04885C00F845C0100006683FF08400F94C74084FF7509B8200000006689451E488B4D00F7DE897518488B7508488BD6FF155C2C0000458B0C24488BD6488B750048894508488D4510C74424300000000048894424284533C0488BCE4C89742420FF15632C000085C00F84E20000004084FF0F84D60000008B0424B800040000482BE0' $DllBinary_x64 &= '488D7424408B06488B4D004C8BCE33D241B800010000FF150B2C00008B0325030000807D07FFC883C8FCFFC085C0740B41B804000000442BC0EB034533C0418B14244D8D5DFF33FF8BC24F8D1C9E410FAFC04863C8498D46FF4903CD4803C185D27E644D63F8660F1F8400000000004533D2492BC74439137E450F1F4400000FB60841FFC24983EB04448B048E48FFC8410FB7C866C1E908440FB6C9418BC8C1E91041C1E1080FB6D1410FB6C8C1E110440BCA440BC945894B04443B137CC0FFC7413B3C247CA8488B750041B701488B45084885C0740C488BD0488BCEFF152C2B000033FF488B4D00FF15102B00004584FF75134D85F6740E498BCEFF15552C0000488BC7EB03498BC6488B8D500400004833CDE8E6140000488DA568040000415F415E415D415C5F5E5B5DC3CCCC40555356574154415541564157488DAC2408FEFFFF4881ECF8020000488B05AD3A00004833C4488985E0010000448BAD6002000033FF448BF28D572E4585ED4D8BF9418BF04C8BE148894C2458440F48EF48897C2448FF15FC2B0000488BD84885C0740348FFC34183FD010F8FF20000004885DB7474488D15DB2D0000488BCBFF15922B000085C00F84D5000000488D15C72D0000488BCBFF157A2B000085C00F84BD000000488D15B32D0000488BCBFF15622B000085C00F84A5000000488D159F2D0000488BCBFF154A2B000085C00F848D000000488D158B2D0000488BCBFF15322B000085C0747940887C24404585ED0F8FA50000004885DB0F84A3000000488D15642D0000488BCBFF15072B000085C00F8484000000488D15502D0000488BCBFF15EF2A000085C0742D488D15402D0000488BCBFF15DB2A000085C07419488D15302D0000488BCBFF15C72A000085C0754F41893FEB4A41C70702000000EB41C64424400141C70701000000458D45FF4585ED7F03448BC7488B0D3E3F0000498BD4FF153D2B000048894424484883F802731333C0E92805000041C70701000000488B4424484183FEFF740583FEFF75094585F6741485F674104183FEFF740583FEFF750A41B401EB088BF7448BF74532E444886424414885C0754A458B074183F8FF7E414584E47407448BCF8BC7EB05458BCE8BC6488B54245833C9C74424281020000089442420FF15C62A000048894424484885C00F840A0200004584E40F849C0400004C8B64245848897C24504885C00F856901000041893F4885DB7448488D153D2C0000488BCBFF15C429000085C00F8421020000488D15292C0000488BCBFF15AC29000085C00F8409020000488D15192C0000488BCBFF159429000085C00F84F1010000488D0DED2B0000FF158F280000488BD84885C00F84D8010000488D15EC2B0000488BC8FF15C3280000488D15EC2B0000488BCB4C8BE8FF15B0280000488D15E92B0000488BCB' $DllBinary_x64 &= '48894590FF159C280000488D15F52B0000488BCB4889442468FF1587280000488D15002C0000488BCB488945A8FF1573280000C74424700100000048897C247848897D80488945984D85ED7478488D542470488D4DA04533C041FFD585C07565488D45D04183C9FF4D8BC433D233C9C7442428040100004889442420FF1534280000488D542460488D4DD0FF54246885C0752B488B4C2460488D54244841B880808000FF55A8488B4C244885C0480F45CF48894C2448488B4C2460FF5598488B4DA0FF5590488BCBFF1510280000488B44244840387C24410F84A302000041393F7419488D55B0488BC8FF153E29000085C00F84C3020000488B45C04C8D442470BA20000000488BC8FF151F27000083FEFF0F85E10100008B44247485C00F840C020000660F6E542478660F6EC066410F6ECEF30FE6D2F30FE6C0F30FE6C9F20F5ED0F20F59D1F20F5815172B0000F20F2CF2E9D80100004C8B642458498BCCFF156027000083F8FF0F8455FDFFFF4585ED7E2D488B0D733C0000458D45FF498BD4FF156E28000048894424484883F8020F822DFDFFFFC644244001E9BBFDFFFF488B442448E9B1FDFFFF48897C24304533C94533C0BA00000080498BCC897C2428C744242003000000FF15262700004C8BE04883F8FF0F84E7FCFFFF33D2488BC8FF15FE260000B9020000008BD089442460FF15D5260000488BD84885C07510498BCCFF155426000033C0E9E2010000488BC8FF15BC260000498BCC4885C07516FF1536260000488BCBFF154526000033C0E9BB010000448B4424604C8D4C2460488BD048897C2420FF156E260000488BCBFF1555260000498BCCFF15FC2500004C8D44246833D2488BCBFF15E427000085C078B2488B4C24684885C974A8488D4424504C8D0D4A2800004533C033D24889442420FF154A270000488B4C245085C0480F48CF48894C2450488B4C2468488B01FF5010488BCBFF15B6250000488B4C24504885C90F84F6FBFFFF488B01488D542448FF5018488B4424484885C00F85ECFDFFFF488B4C2450488B01FF501033C0E9FA0000008B44247885C0742F660F6E542474660F6EC0660F6ECEF30FE6D2F30FE6C0F30FE6C9F20F5ED0F20F59D1F20F58153B290000F2440F2CF241393F7447488B4DC8FF15C7240000488B4DC0FF15BD24000040387C2440752C488B4C2448FF15B3260000458B07488B542458458BCE33C9C74424281000000089742420FF158C260000EB77488B44244848397C245074424585F6750985F67505BF04000000448BCE458BC633D2488BC8897C2420FF157B260000488B4C2450488B11488BD8FF5210EB35488B4C2448FF154826000033C0EB294585F6750485F67420418B17448BCE458BC6488BC8C74424200C000000FF1539260000488BD8488BC3488B8DE00100004833CCE8FC0D00' $DllBinary_x64 &= '004881C4F8020000415F415E415D415C5F5E5B5DC3CCCCCCCCCCCCCCCC40554881ECD0000000488B05D03300004833C448898424A0000000488BE94885C9750733C0E9B60100004889B424F00000004889BC24C80000004C89A424C00000004533E433C94C89B424B8000000418BFCFF15C0250000488BC84C8BF0FF1594230000488BF04885C00F8439010000488D542470488BCDFF159225000085C00F841A010000488B8C24880000004C8D442450418D542420FF157223000085C00F84DE000000448B4424588B542454498BCEFF1548230000488BF84885C00F84C0000000488BD0488BCE4C89BC24B0000000FF15182300004C8BF84885C00F84980000008B4C245448899C24E80000004C89A42490000000898C24980000008B4C2458898C249C000000B980808000FF1503230000488D942490000000488BCE4C8BC0488BD8FF15D4240000488BCBFF15B32200008B442458C7442440030000004C896424384489642430894424288B4424544C8BCD4533C033D2488BCE89442420FF1590240000498BD7488BCEFF157C220000488B9C24E80000004C8BBC24B0000000488B8C2488000000FF1556220000488B8C2480000000FF1548220000488BCEFF1537220000498BD633C9FF156C240000488BCDFF15332400004C8BB424B80000004C8BA424C0000000488BB424F0000000488BC7488BBC24C8000000488B8C24A00000004833CCE8F00B00004881C4D00000005DC3CCCCCCCCCCCCCC8D0409C3CCCCCCCCCCCCCCCCCCCCCCCC4055535657415541564157488D6C24B04881EC50010000488B05B23100004833C448894538488BBDB0000000894D8433C90F57C08955888D512E894C2460F30F7F45E8488BCF44894C2458458BE8C7442454FFFFFFFF4533FF33F64533F6FF15F4220000488BD84885C0745A48FFC3488D15F6240000488BCBFF159922000085C07428488D15CE240000488BCBFF158522000085C07414488D15BE240000488BCBFF157122000085C0751BB931000000FF1562230000B9320000008BF0FF1555230000448BF0488BDF0F1F80000000000FB6033C2074043C09750548FFC3EBF0803B2A4C89A424480100000F85F80200000FBE4B0148FFC3FF156222000083F8480F84F801000083F8570F8488010000488D15F524000041B804000000488BCBFF15FA21000085C0756C4883C304488BCB0FB6013C2074043C09750548FFC1EBF00FB60184C0743D2C2BA8FD750348FFC1803930752F0FB641012C58A8DF75250FBE4902FF15FE21000085C0741733D2488BCB448D4210FF15C3210000448BF8E9DA010000488BCBFF15AA210000448BF8E9C9010000488D157724000041B805000000488BCBFF157421000085C00F85B00000004883C305448D401F488D4D18488BD3FF15872100000FB65518C64537004C8D45' $DllBinary_x64 &= '1884D274380F1F8000000000488D0D35240000B0200F1F80000000003AD074190FB6410148FFC184C075F1410FB6500149FFC084D275D5EB0441C60000488D4D18E8C6EFFFFF8BD083F8FF751933D2488D4D18448D4210FF150F21000089442454E92501000066C1E808440FB6E08BC2C1E81041C1E4080FB6C80FB6C2C1E010440BE1440BE04489642454E9FB000000488BCBE8A4F1FFFF8944246085C0790B33C9894C2460E9E00000003DFF0000000F8ED5000000B9FF000000894C2460E9C7000000488D4B010F1F40000FB6013C2074043C09750548FFC1EBF00FB60184C0743A2C2BA8FD750348FFC1803930752C0FB641012C58A8DF75220FBE4902FF158F20000085C0741433D2488D4B01448D4210FF15532000008BF0EB6E488D4B01FF153D2000008BF0EB60488D4B010FB6013C2074043C09750548FFC1EBF00FB60184C074382C2BA8FD750348FFC1803930752A0FB641012C58A8DF75200FBE4902FF152C20000085C0741233D2488D4B01448D4210FF15F01F0000EB0A488D4B01FF15DC1F0000448BF04885DB74360FB61384D2742F0F1F440000488D0DA5220000B0200F1F80000000003AD074430FB6410148FFC184C075F10FB6530148FFC384D275D6488D057F2200004C8BA42448010000488B4D384833CCE81B0800004881C450010000415F415E415D5F5E5B5DC3488D7B01488BDF66900FB6033C2074043C09750548FFC3EBF0803B2A0F8408FDFFFF803F00C7442478FFFFFFFF74A44C8D4C2478458BC68BD6488BCF44897C2420E8F3F2FFFF488BF8488945C84885C0748133C9FF15E71F00004C8BF8488945D84885C0750E488BCFFF15A21D0000E95FFFFFFF33C94533E44532F633F6837C24780148894DB848894C24704C8965A048894DC044887424507579488D55F8488BCFFF15911F000085C07450488B5D08498BCFFF15681D00004885C0742648894424284C8D4C24514C8D4580488D54245C488BCBC744242001000000E8E8EFFFFF4C8BE0488B4D104C8965A0FF151F1D0000488B4D08FF15151D0000488BCFE825F9FFFF488BF8488945C84885C00F84BFFEFFFF498BCFFF15041D00004885C0750F448B7C245833FF488BDEE9BC05000048894424284C8D4C24514C8D4580488D54245C488BCFC744242008000000E875EFFFFF488BF8488945984885C00F84570500008B5C2458442B6D84498BCF2B5D88FFC3FF15A71C0000488BF048894424684885C00F8421050000418D5501448BC3498BCFFF158E1C0000488945B84885C00F84F8040000488BD0488BCEFF15651C0000488945C04885C00F84DF0400008B4588C74424402000CC00458D4D01894424388B45844533C08944243033D2488BCE4C897C2428895C2420FF15571C000085C00F84A6040000488BCEFF151E1C00004885C0750C448B7C245833' $DllBinary_x64 &= 'DBE9D9040000488B4DB848894424284C8D4C24644C8D458C488D54247CC744242008000000E891EEFFFF488BD848894424704885C00F845C040000448B5C245C448B6C247C8B7580418BD3458BC5440FAF458C0FAFD6807C2451004C63CA44894424584D63F04C894DB0750B807C2464000F84E30000008B44245483F8FF740925F8F8F8008944245433C94585C07E494183F8047243418BC025030000807D07FFC883C8FCFFC0660F6F0DBC1F0000442BC0660F1F8400000000004863C183C104F30F6F0483660FDBC1F30F7F0483413BC87CE7448B4424584863C1493BC67D1966660F1F840000000000812483F8F8F80048FFC0493BC67CF133C985D27E4383FA04723E8BC225030000807D07FFC883C8FCFFC0660F6F0D4E1F00002BD00F1F40000F1F8400000000004863C183C104F30F6F0487660FDBC1F30F7F04873BCA7CE84863C1493BC17D0F812487F8F8F80048FFC0493BC17CF14D85C97E18488D4703498BC90F1F440000C60000488D400448FFC975F4448B5424604183FA010F8D300100004D85F67E1C488D4303498BCE660F1F840000000000C60000488D400448FFC975F44533FF4585C00F8E240300008B37448B44245433FF3934BB74154D85E4740741833C24007509413BF00F85C20000008B4D8C418BC79941F7FD2BC8394D800F8FAD000000418BC52BC2443BD80F8F9F0000004533C04533D2B001418BCF4D85C90F8EC0020000488B5D9888442450458BDF492BDC498BD44C8B6C2470448B0C134863C145394C8500448B6C247C74114D85E47405833A007507443B4C2454753841FFC0443B44245C7D04FFC1EB094533C04503DD418BCB49FFC24883C2044C3B55B07CB3488B5C2470440FB6742450488B7D98E95B0200004C8B4DB0448B5C245C488B5C2470448B44245432C08844245048FFC741FFC7493BFE0F8C15FFFFFF440FB6742450488B7D98E9240200004533FF44897C24784585C00F8E100200000F1F40008B4D8C418BC79941F7FD2BC83BF10F8F95010000418BC52BC2443BD80F8F870100004533ED41B60144897D904C896DD04D85C90F8E87010000488B45A0448874245044897DA8482BC74C8BE7488945E0418B0C24450FB64C2401450FB63C24C1E9100FB6D1443BD27E054532F6EB07440FB6F1452AF2450FB6C1453BD07E054032F6EB07410FB6F1412AF2410FB6DF443BD37E054032FFEB07410FB6FF412AFAB8FF0000002BC2443BD07E0541B3FFEB04468D1C11B8FF000000412BC0443BD07E0541B2FFEB034502D18B4C2460B8FF0000002BC33BC87E04B1FFEB034102CF48635D904C8B442470450FB64C9802410FB6549801450FB60498453ACE7219453ACB7714403AD6720F413AD2770A443AC77205443AC1761C48837DA000740B488B45E042833C2000750A8B442454413904247547448B' $DllBinary_x64 &= '5C245C41FFC5453BEB7D07FFC3895D90EB14448B55A84533ED440354247C448955A8448955904C8B45D04983C40449FFC04C8945D04C3B45B07D7B448B542460E9D5FEFFFF448B7C2478448B542460448B6C247C4C8B4DB0448B442458448B5C245C488B7D988B75804532F64488742450EB06440FB674245041FFC744897C2478453BF80F8C40FEFFFF488B5C2470EB48488B5C2470448B7C2458EB41488B5C2470448B7C2458488BF0EB32448B7C2458488BDEEB28448B7C2478488B5C2470440FB6742450488B7D98EB0D488B7D98440FB6F0EB034532F6488B742468488B55D833C9FF1550190000488B4DC8FF150E1700004885F6741E488B45C04885C0740C488BD0488BCEFF15FC160000488BCEFF15E3160000488B45B84885C07409488BC8FF15D91600004885FF7409488BCFFF151B180000488B45A04885C07409488BC8FF15091800004885DB7409488BCBFF15FB1700004584F60F8464F8FFFF448B4D88448B4584418BC7442B4DEC442B45E899F77C247C488D0D332C00004403C88B45804403C2894424288B44245C488D15BB1A000089442420E81A000000488D050B2C0000E91FF8FFFFCCCCCCCCCCCCCCCCCCCCCCCCCCCC48895424104C894424184C894C24204883EC284C8BC24C8D4C2440BA32000000FF15921700004883C428C3CCCCCCCCCCCCCCCCCCCCCC66660F1F840000000000483B0DF9250000751148C1C11066F7C1FFFF7502F3C348C1C910E971040000CC40534883EC20B900010000FF157F170000488BC8488BD8FF155B1600004889051C2C00004889050D2C00004885DB75058D4301EB2348832300E8A6070000488D0DD7070000E8D6060000488D0D0F080000E8CA06000033C04883C4205BC3CCCC488BC44889580848896810488978184C8960204155415641574883EC2033FF498BE84C8BF185D20F85350100008B056D25000085C00F8E20010000FFC8448BFF89055A25000065488B042530000000488B4808EB05483BC1740F33C0F0480FB10D632B000075EEEB0641BF010000008B055B2B000083F802740FB91F000000E864040000E99E010000488B0D502B0000FF157A150000488BE84885C00F849E000000488B0D2F2B0000FF15611500004C8BED4C8BE04C8BF04983EE084C3BF5725A49393E74F233C9FF154A15000049390674E5498B0EFF153415000033C9488BD8FF1531150000498906FFD3488B0DED2A0000FF1517150000488B0DD82A0000488BD8FF15071500004C3BEB75054C3BE074A54C8BEB488BEBEB974883FDFF7409488BCDFF15AE15000033C9FF15E61400004889059F2A0000488905A02A0000893D8A2A00004585FF0F85D800000048873D722A0000E9CC00000033C0E9CA00000083FA010F85BC00000065488B0425300000008BDF488B4808EB05483BC1740F33C0F0480FB1' $DllBinary_x64 &= '0D3C2A000075EEEB05BB010000008B05352A000085C0740CB91F000000E83F030000EB3E488D155E160000488D0D3F160000C7050D2A000001000000E83206000085C0758F488D151D160000488D0D0E160000E815060000C705E72900000200000085DB750A488BC7488705D129000048393DEA2900007421488D0DE1290000E83403000085C074114C8BC5BA02000000498BCEFF15C7290000FF0579230000B801000000488B5C2440488B6C2448488B7C24504C8B6424584883C420415F415E415DC3CC48895C24084889742410574883EC20498BF88BDA488BF183FA017505E86B0400004C8BC78BD3488BCE488B5C2430488B7424384883C4205FE903000000CCCCCC488BC448895808488970104889781841564883EC30498BF08BFA4C8BF1BB010000008958E88915D922000085D275123915DF220000750A33DB8958E8E9CB0000008D42FF83F8017737488B058C1500004885C07408FFD08BD88944242085DB0F84A70000004C8BC68BD7498BCEE802FDFFFF8BD88944242085C00F848C0000004C8BC68BD7498BCEE867E2FFFF8BD88944242083FF01753485C075304C8BC633D2498BCEE84BE2FFFF4C8BC633D2498BCEE8BEFCFFFF488B051F1500004885C0740A4C8BC633D2498BCEFFD085FF740583FF0375374C8BC68BD7498BCEE892FCFFFFF7D81BC923CB8BD9894C2420741C488B05E51400004885C074104C8BC68BD7498BCEFFD08BD889442420EB0633DB895C2420C705E6210000FFFFFFFF8BC3488B5C2440488B742448488B7C24504883C430415EC3CCCC40534883EC20488BD9FF1535120000B901000000890542270000E82F040000488BCBE82D040000833D2E27000000750AB901000000E814040000B9090400C04883C4205BE911040000CCCCCC48894C24084883EC38B917000000E81F04000085C07407B902000000CD29488D0D1B220000E8EA030000488B44243848890502230000488D4424384883C00848890592220000488B05EB2200004889055C210000488B44244048890560220000C70536210000090400C0C7053021000001000000C7053A21000001000000B808000000486BC000488D0D3221000048C7040102000000B808000000486BC000488B0DCA20000048894C0420B808000000486BC001488B0DBD20000048894C0420488D0D99130000E8E8FEFFFF4883C438C3CCFF2538120000FF253A120000CCCC4C63413C4533C94C8BD24C03C1410FB74014450FB758064883C0184903C04585DB741E8B500C4C3BD2720A8B480803CA4C3BD1720E41FFC14883C028453BCB72E233C0C3CCCCCCCCCCCCCCCCCCCCCCCC48895C2408574883EC20488BD9488D3D2CD0FFFF488BCFE83400000085C07422482BDF488BD3488BCFE882FFFFFF4885C0740F8B4024C1E81FF7D083E001EB0233C0488B5C243048' $DllBinary_x64 &= '83C4205FC3CCCCCC488BC1B94D5A0000663908740333C0C34863483C4803C833C0813950450000750CBA0B020000663951180F94C0C3CCCC40534883EC2048833D12260000007536BA080000008D4A18FF15CA100000488BC8488BD8FF152E100000488905EF250000488905E02500004885DB75058D4318EB064883230033C04883C4205BC3CCCC40534883EC20488BD9488B0DC0250000FF15EA0F000048894424384883F8FF750B488BCBFF155E100000EB7EB908000000E8E401000090488B0D92250000FF15BC0F00004889442438488B0D78250000FF15AA0F00004889442440488BCBFF15A40F0000488BC84C8D442440488D542438E8B0010000488BD8488B4C2438FF15840F000048890545250000488B4C2440FF15720F00004889052B250000B908000000E879010000488BC34883C4205BC34883EC28E847FFFFFF48F7D81BC0F7D8FFC84883C428C3CC48895C242055488BEC4883EC20488B05941E0000488365180048BB32A2DF2D992B0000483BC3756F488D4D18FF15160F0000488B451848894510FF15D00E00008BC048314510FF15CC0E0000488D4D208BC048314510FF153C0F00008B452048C1E020488D4D1048334520483345104833C148B9FFFFFFFFFFFF00004823C148B933A2DF2D992B0000483BC3480F44C1488905111E0000488B5C244848F7D04889050A1E00004883C4205DC348895C2408574883EC20488D1D63130000488D3D5C130000EB0E488B034885C07402FFD04883C308483BDF72ED488B5C24304883C4205FC348895C2408574883EC20488D1D3B130000488D3D34130000EB0E488B034885C07402FFD04883C308483BDF72ED488B5C24304883C4205FC3FF258E0E0000FF25380F0000488D0D21230000E930000000FF252E0F0000FF25300F0000FF25320F0000FF25340F0000FF25960E0000FF25880E0000FF257A0E0000FF25640E0000FF254E0E0000FF25B80D00004883EC284D8B4138488BCA498BD1E80D000000B8010000004883C428C3CCCCCC40534883EC20458B18488BDA4C8BC94183E3F841F600044C8BD17413418B40084D635004F7D84C03D14863C84C23D14963C34A8B1410488B43108B480848034B08F641030F740C0FB6410383E0F048984C03C84C33CA498BC94883C4205BE9B5F6FFFFCCCCCCCCCC40554883EC20488BEA488BD148894D28488B018B08894D24E8F5FBFFFF904883C4205DC3CC40554883EC20488BEAC705881C0000FFFFFFFF4883C4205DC3CCCC40554883EC20488BEA488B0133C98138050000C00F94C18BC14883C4205DC3CC40554883EC20488BEAB908000000E8EDFEFFFF904883C4205DC3CC0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E64C000000000000CA' $DllBinary_x64 &= '4C000000000000BA4C000000000000A44C0000000000008A4C000000000000704C000000000000624C0000000000004E4C000000000000F24C000000000000DA4C00000000000000000000000000009E4B000000000000AE4B000000000000764F000000000000604F000000000000904B0000000000002A4F000000000000164F000000000000064F000000000000F64E0000000000008C4F0000000000007E4B0000000000006E4B000000000000584B0000000000004C4B000000000000364B000000000000284B0000000000001A4B0000000000000C4B000000000000FE4A000000000000464F000000000000F04A0000000000000000000000000000024E000000000000D24E000000000000C84E000000000000BA4E000000000000AC4E000000000000A24E0000000000009A4E0000000000007C4E000000000000524D0000000000005E4D0000000000006A4D000000000000724D0000000000007C4D000000000000844D0000000000008E4D0000000000009C4D000000000000A64D000000000000B04D000000000000BA4D000000000000D44D000000000000E64D000000000000F44D0000000000000E4E0000000000001C4E000000000000344E0000000000004A4E000000000000644E0000000000000000000000000000A2010000000000800000000000000000064D0000000000000000000000000000D84B000000000000CA4B000000000000284C000000000000364C0000000000001C4C0000000000000E4C000000000000064C000000000000FA4B000000000000E64B0000000000000000000000000000224D0000000000000000000000000000000000000000000000000000000000000000000000000000202A00800100000040300080010000000000000000000000000000000000000000000000A689E25B000000000200000068000000F0440000F02C000000000000A689E25B000000000C0000001400000058450000582D00008009F87B32BF1A108BBB00AA00300CAB00000000000000003050008001000000D050008001000000426C61636B00000053696C7665720000477261790000000057686974650000004D61726F6F6E000052656400507572706C650000000000004675636873696100477265656E0000004C696D65000000004F6C69766500000059656C6C6F7700004E61767900000000426C7565000000005465616C00000000417175610000000044656661756C740065786500646C6C0069636C0063706C007363720069636F0063757200616E6900626D700000000000676469706C7573006A7067006A7065670000000067696600476469706C7573537461727475700000476469706C757353687574646F776E00476469704372656174654269746D617046726F6D46696C6500000000000000004764' $DllBinary_x64 &= '6970437265617465484249544D415046726F6D4269746D6170000000000047646970446973706F7365496D6167650000000049636F6E000000005472616E73000000200900003000000000000000317C25647C25647C25647C2564000000000000000000E03FF8F8F800F8F8F800F8F8F800F8F8F80070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005000800100000000000000000000000000000000000000525344533A83FEDCC8528745BD1E87B1E51E240C01000000413A5C5F4175746F49745F5F5F5F5C5F50726F6A6563745F5F5F5C5F494D475365617263685C496D616765536561726368444C4C5C52656C656173655C496D616765536561726368444C4C2E7064620000000000100000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106020006320230192A0B451943140195000DF00BE009D007C005700460033002500000C832000090040000192D0A001C015F000DF00BE009D007C00570046003300250C8320000E0020000191B030009011A0002500000C8320000A00000002125080025E4170018C418001074190008641E00201C00004A1C0000DC4500002108020008F416004A1C0000EA1C0000F04500002108020008341D00EA1C0000081D00001046000021000000EA1C0000081D000010460000210000004A1C0000EA1C0000F045000021000000201C00004A1C0000DC45000019EB0B00EBC4290017012A000BF009E007D005700460033002500000C83200003801000001130100134200000000000001000000011D0C001DC40B001D740A001D5409001D3408001D3219F017E015D01915080015740A001564090015340800155211E08C32000002000000372D00001A2E0000503300001A2E0000312D0000202E000075330000000000000106020006320250010F06000F6407000F3406000F320B700109010009620000090A04000A3406000A3206708C32000001000000CD2F0000003000009033000000300000010401000442000011060200063202308C32000001000000C73000002D310000B033000000000000010D04000D3409000D320650010A04000A3406000A320670000000000000000000000000A689E25B00000000BC470000010000000200000002000000A8470000B0470000B8470000301E0000201E0000CF470000DB47000000000100496D616765536561726368444C4C2E646C6C00496D61676553656172636800496D6167655465737400000000E04800000000000000000000BC4B000058400000904A00000000000000000000424C00' $DllBinary_x64 &= '0008420000884800000000000000000000FC4C000000400000804A00000000000000000000164D0000F8410000E04A000000000000000000003A4D000058420000704A00000000000000000000444D0000E8410000904900000000000000000000C64D0000084100000000000000000000000000000000000000000000E64C000000000000CA4C000000000000BA4C000000000000A44C0000000000008A4C000000000000704C000000000000624C0000000000004E4C000000000000F24C000000000000DA4C00000000000000000000000000009E4B000000000000AE4B000000000000764F000000000000604F000000000000904B0000000000002A4F000000000000164F000000000000064F000000000000F64E0000000000008C4F0000000000007E4B0000000000006E4B000000000000584B0000000000004C4B000000000000364B000000000000284B0000000000001A4B0000000000000C4B000000000000FE4A000000000000464F000000000000F04A0000000000000000000000000000024E000000000000D24E000000000000C84E000000000000BA4E000000000000AC4E000000000000A24E0000000000009A4E0000000000007C4E000000000000524D0000000000005E4D0000000000006A4D000000000000724D0000000000007C4D000000000000844D0000000000008E4D0000000000009C4D000000000000A64D000000000000B04D000000000000BA4D000000000000D44D000000000000E64D000000000000F44D0000000000000E4E0000000000001C4E000000000000344E0000000000004A4E000000000000644E0000000000000000000000000000A2010000000000800000000000000000064D0000000000000000000000000000D84B000000000000CA4B000000000000284C000000000000364C0000000000001C4C0000000000000E4C000000000000064C000000000000FA4B000000000000E64B0000000000000000000000000000224D0000000000000000000000000000880043726561746546696C654100F70147657446696C6553697A65006801467265654C69627261727900C602476C6F62616C4C6F636B0000BB02476C6F62616C416C6C6F6300EC0147657446696C6541747472696275746573410000C3035265616446696C65000069034D756C746942797465546F576964654368617200CD02476C6F62616C556E6C6F636B00004C0247657450726F63416464726573730000C202476C6F62616C4672656500003E034C6F61644C6962726172794100005200436C6F736548616E646C65004B45524E454C33322E646C6C0000A30044657374726F7949636F6E00F2014C6F6164496D616765410000800147657453797374656D4D6574726963730000690252656C65617365444300230147657444' $DllBinary_x64 &= '4300350147657449636F6E496E666F005400436F7079496D61676500C8004472617749636F6E45780000F60046696C6C5265637400005553455233322E646C6C00005400437265617465536F6C696442727573680000FB014765744F626A656374410000120247657453797374656D50616C65747465456E7472696573002F00437265617465436F6D70617469626C654269746D617000003000437265617465436F6D70617469626C6544430000770253656C6563744F626A6563740000E60044656C6574654F626A6563740000CA0147657444494269747300E30044656C657465444300001300426974426C74000047444933322E646C6C0027004578747261637449636F6E4100005348454C4C33322E646C6C008A0043726561746553747265616D4F6E48476C6F62616C006F6C6533322E646C6C004F4C4541555433322E646C6C000075045F73747269636D7000007F045F7374726E69636D70005006667265650000AA066D616C6C6F630000B60561746F6900001D07737472746F6C00004A0776737072696E74665F73000011077374726E63707900150773747272636872003407746F7570706572008606697378646967697400004D535643523132302E646C6C00005D015F5F4370705863707446696C74657200F2015F616D73675F6578697400006C035F6D616C6C6F635F63727400E1025F696E69747465726D00E2025F696E69747465726D5F65005C015F5F435F73706563696669635F68616E646C657200009D015F5F6372745F64656275676765725F686F6F6B009C015F5F637274556E68616E646C6564457863657074696F6E009B015F5F6372745465726D696E61746550726F63657373007E015F5F6372744361707475726550726576696F7573436F6E74657874005B035F6C6F636B00C7045F756E6C6F636B0009025F63616C6C6F635F637274009F015F5F646C6C6F6E657869740002045F6F6E65786974007B015F5F636C65616E5F747970655F696E666F5F6E616D65735F696E7465726E616C0000EE00456E636F6465506F696E74657200CB004465636F6465506F696E7465720002034973446562756767657250726573656E74000603497350726F636573736F724665617475726550726573656E7400A9035175657279506572666F726D616E6365436F756E74657200C70147657443757272656E7450726F63657373496400CB0147657443757272656E7454687265616449640000800247657453797374656D54696D65417346696C6554696D650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000032A2DF2D992B0000CD5D20D266' $DllBinary_x64 &= 'D4FFFFFFFFFFFF75980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100000341200009045000040120000B112000090450000C01200002E1500009845000030150000181C0000BC450000201C00004A1C0000DC4500004A1C0000EA1C0000F0450000EA1C0000081D000010460000081D00009C1D0000244600009C1D0000A41D000038460000A41D0000001E000048460000001E0000191E000058460000301E0000B229000068460000C0290000EB2900008C460000002A00001F2A000098460000202A00007E2A000090450000802A0000CB2C00009C460000CC2C0000092D0000FC4600000C2D0000422E0000B8460000442E00008D2E000090450000902E0000612F00000C470000C02F00000D30000014470000403000008E30000090450000903000004031000040470000403100005731000038470000583100000432000060470000043200003C3200006C4700003C320000743200006C470000C8320000E532000038470000E83200004B330000904500005033000075330000F4460000753300008F330000F446000090330000B0330000F4460000B0330000CB330000F446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' $DllBinary_x64 &= '01001800000018000080000000000000000000000000000001000200000030000080000000000000000000000000000001000904000048000000607000007D010000000000000000000000000000000000003C3F786D6C2076657273696F6E3D27312E302720656E636F64696E673D275554462D3827207374616E64616C6F6E653D27796573273F3E0D0A3C617373656D626C7920786D6C6E733D2775726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E763127206D616E696665737456657273696F6E3D27312E30273E0D0A20203C7472757374496E666F20786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E7633223E0D0A202020203C73656375726974793E0D0A2020202020203C72657175657374656450726976696C656765733E0D0A20202020202020203C726571756573746564457865637574696F6E4C6576656C206C6576656C3D276173496E766F6B6572272075694163636573733D2766616C736527202F3E0D0A2020202020203C2F72657175657374656450726976696C656765733E0D0A202020203C2F73656375726974793E0D0A20203C2F7472757374496E666F3E0D0A3C2F617373656D626C793E0D0A0000000000000000000000000000000000000000000000000000000000000000000000004000001400000080A288A2F0A2F8A2D8A40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' Local $ImageSearchDLL_Binary = $DllBinary If @AutoItX64 Then $ImageSearchDLL_Binary = $DllBinary_x64 Local $ImageSearchDLL_FileExists = FileExists($ImageSearchDLL_Path) Local $ImageSearchDLL_FileSize = FileGetSize($ImageSearchDLL_Path) / 1024 If (Not $ImageSearchDLL_FileExists) Or ($ImageSearchDLL_FileSize < 10 Or $ImageSearchDLL_FileSize > 20) Then If $ImageSearchDLL_FileExists Then If StringInStr(FileGetAttrib($ImageSearchDLL_Path), "D") Then FileSetAttrib($ImageSearchDLL_Path, "-RAHS", 1) DirRemove($ImageSearchDLL_Path) Else FileSetAttrib($ImageSearchDLL_Path, "-RAHS") FileDelete($ImageSearchDLL_Path) EndIf EndIf Local $hOpen = FileOpen($ImageSearchDLL_Path, 2 + 8 + 16) FileWrite($hOpen, $ImageSearchDLL_Binary) FileClose($hOpen) $ImageSearchDLL_FileExists = FileExists($ImageSearchDLL_Path) $ImageSearchDLL_FileSize = (FileGetSize($ImageSearchDLL_Path) / 1024) EndIf If $ImageSearch_Debug Then ConsoleWrite("-- WorkingDir : " & @WorkingDir & @CRLF) ConsoleWrite("-- ScriptFullPath : " & @ScriptFullPath & @CRLF) ConsoleWrite("-- ImageSearchDLL : " & $ImageSearchDLL_Path & " (" & $ImageSearchDLL_FileSize & "kb)" & @CRLF) EndIf If (Not $ImageSearchDLL_FileExists) Then If $ImageSearch_Debug Then ConsoleWrite("! ImageSearchDLL is Not Found or Can't Write" & @CRLF & "! " & $ImageSearchDLL_Path & @CRLF) ; MsgBox(16 + 262144, "ImageSearchDLL", "ImageSearchDLL is Not Found or Can't Write !" & @CRLF & $ImageSearchDLL_Path) Return SetError(1, 0, 0) EndIf Return 1 EndFunc ;==>_ImageSearch_CheckDLL ; * -----:| Dao Van Trong - TRONG.LIVE  
       
    • By tarretarretarre
      About AutoIt-DD
      AutoIt-DD is an carbon copy of Laravels dd helper. DD stands for "Dump and DIE" and is a great tool for debugging AutoIt variables
      Features
      Get useful information about any AutoIt variable Nested Arrays and Scripting dictionaries Multi DIM arrays Great structure and colored output Example
      In Example.au3 you can run a fully featured example, but I also provided a print screen for you lazy people
    • By CarlD
      This is a naive question, but here goes. If a variable contains sensitive information, like a password, is there any value to overwriting its contents before exiting the script? In other words, in the example below, would someone poking around in memory after the script finishes still be able to find the original value of variable $sPass? (Putting aside, for present purposes, the obvious fact that the script itself contains the sensitive information.) Is there a better way to cover one's tracks, as it were? Thanks in advance. 
      Local $sPass = "My password is 'very+very_strong'" ; Do something here, then overwrite $sPass: If Not _OverwriteVar("sPass") Then MsgBox(0, "", "Variable overwrite failed!") Else MsgBox(0, "", "'sPass' now overwritten with " & $sPass) EndIf Exit Func _OverwriteVar($sVarName, $sOverStrChar = "#") If IsDeclared($sVarName) <> 0 Then If Not IsString(Eval($sVarName)) Then Assign($sVarName, String(Eval($sVarName))) Assign($sVarName, StringRegExpReplace(Eval($sVarName), ".", $sOverStrChar)) Return 1 Else Return 0 EndIf EndFunc ;==>_OverwriteVar  
       
    • By UEZ
      Here another example to mark the desktop to get the marked region for capturing. This example is not perfect and not very fast (room for improvements).
      ;Coded by UEZ build 2020-08-07 beta ;Code cleanup up mLipok ; ;Short instruction: mark area on your desktop and press return key to capture. #include <APISysConstants.au3> #include <Array.au3> ;#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <ScreenCapture.au3> #include <WinAPIGdi.au3> #include <WinAPISysWin.au3> #include <WindowsConstants.au3> ; enum _PROCESS_DPI_AWARENESS -> https://msdn.microsoft.com/en-us/library/windows/desktop/dn280512(v=vs.85).aspx Global Enum $DPI_AWARENESS_INVALID = -1, $PROCESS_DPI_UNAWARE = 0, $PROCESS_SYSTEM_DPI_AWARE, $PROCESS_PER_MONITOR_DPI_AWARE ;https://docs.microsoft.com/en-us/windows/desktop/hidpi/dpi-awareness-context Global Enum $Context_UnawareGdiScaled = -5, $Context_PerMonitorAwareV2, $Context_PerMonitorAware, $Context_SystemAware, $Context_Unaware _WinAPI_SetProcessDpiAwarenessContext($Context_PerMonitorAware) Global $__g_hGUI_MarkArea, $__g_hGUI_Bg, $__g_iLabel_TL, $__g_iLabel_TM, $__g_iLabel_TR, $__g_iLabel_LM, $__g_iLabel_RM, $__g_iLabel_BL, $__g_iLabel_BM, _ $__g_iLabel_BR, $__g_iOldCursor, $__g_iW, $__g_iH, $__g_iColor_ResizeDots = 0xFFFFFF, $__g_iBorder = 4, $__g_bSelectionDone = False Global $aRect = _GDIPlus_MarkScreenRegionAnimated() Global $hImage_Capture = _ScreenCapture_Capture(@TempDir & "\Test.png", $aRect[0], $aRect[1], $aRect[0] + $aRect[2] - 1, $aRect[1] + $aRect[3] - 1, False) ShellExecute(@TempDir & "\Test.png") ;_ArrayDisplay($aRect, "Marked area coordinates") Func _GDIPlus_MarkScreenRegionAnimated($bAnim = True) _GDIPlus_Startup() Local Const $hFullScreen = WinGetHandle("[TITLE:Program Manager;CLASS:Progman]") Local Const $aFullScreen = WinGetPos($hFullScreen) $__g_hGUI_Bg = GUICreate("", $aFullScreen[2], $aFullScreen[3], $aFullScreen[0], $aFullScreen[1], BitOR($WS_CLIPCHILDREN, $WS_POPUP), $WS_EX_TOPMOST) ;to avoid cursor flickering and for proper control read WinSetTrans($__g_hGUI_Bg, "", 0x01) $__g_hGUI_MarkArea = GUICreate("", 1, 1, -1, -1, $bAnim ? $WS_POPUP : BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED), $__g_hGUI_Bg) GUISetBkColor(0xABCDEF, $__g_hGUI_MarkArea) If Not $bAnim Then $__g_iColor_ResizeDots = 0xFF0000 $__g_iLabel_TL = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;top left GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_TM = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;top mid GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_TR = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;top right GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_LM = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;left mid GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_RM = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;right mid GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_BL = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;bottom left GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_BM = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;bottom mid GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) $__g_iLabel_BR = GUICtrlCreateLabel("", 0, 0, $__g_iBorder, $__g_iBorder) ;bottom right GUICtrlSetResizing(-1, $GUI_DOCKSIZE) GUICtrlSetBkColor(-1, $__g_iColor_ResizeDots) GUISetState(@SW_SHOWNA, $__g_hGUI_Bg) GUISetState(@SW_SHOW, $__g_hGUI_MarkArea) $__g_iOldCursor = MouseGetCursor() GUISetCursor(3, 1, $__g_hGUI_Bg) GUISetCursor(3, 1, $__g_hGUI_MarkArea) _WinAPI_SetLayeredWindowAttributes($__g_hGUI_MarkArea, 0xABCDEF, 0xF0) Local $aMPos, $aPrevMPos[2] = [MouseGetPos(0) + 1, MouseGetPos(1) + 1], $iID, $aCI, $iX, $iY, $aOldWinPos, $aOldMPos, $bMoved Local $aGUIStartPos, $iKey_Exit = GUICtrlCreateButton("", $aFullScreen[0] - 10, $aFullScreen[1] - 10, 1, 1), $aAccelKeys[1][2] = [["{ENTER}", $iKey_Exit]] GUISetAccelerators($aAccelKeys, $__g_hGUI_Bg) GUISetAccelerators($aAccelKeys, $__g_hGUI_MarkArea) #forceref $bMoved Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $iKey_Exit If $bAnim Then GUIRegisterMsg($WM_TIMER, "") DllCall("user32.dll", "bool", "KillTimer", "hwnd", $__g_hGUI_MarkArea, "uint_ptr", $iID) GUIRegisterMsg($WM_ERASEBKGND, "") EndIf _GDIPlus_Shutdown() Local $aResult = WinGetPos($__g_hGUI_MarkArea) $aResult[2] = WinGetClientSize($__g_hGUI_MarkArea)[0] $aResult[3] = WinGetClientSize($__g_hGUI_MarkArea)[1] GUIDelete($__g_hGUI_MarkArea) GUIDelete($__g_hGUI_Bg) If Not $__g_bSelectionDone Then $aResult = 0 Return $aResult EndSwitch $aMPos = MouseGetPos() If ($aMPos[0] <> $aPrevMPos[0] Or $aMPos[1] <> $aPrevMPos[1]) And (Not $__g_bSelectionDone) Then WinMove($__g_hGUI_MarkArea, "", $aMPos[0], $aMPos[1]) $aPrevMPos = $aMPos EndIf $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) If $aCI[2] And (Not $__g_bSelectionDone) Then $aGUIStartPos = WinGetPos($__g_hGUI_MarkArea) If $bAnim Then GUIRegisterMsg($WM_ERASEBKGND, "WM_ERASEBKGND") GUIRegisterMsg($WM_TIMER, "PlayBorderAnim") $iID = DllCall("User32.dll", "uint_ptr", "SetTimer", "hwnd", $__g_hGUI_MarkArea, "uint_ptr", 1, "uint", 50, "ptr", 0)[0] EndIf While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) $aMPos = MouseGetPos() $__g_iW = Abs($aMPos[0] - $aGUIStartPos[0]) + 1 $__g_iH = Abs($aMPos[1] - $aGUIStartPos[1]) + 1 If $aMPos[0] < $aGUIStartPos[0] Then $iX = $aMPos[0] Else $iX = $aGUIStartPos[0] EndIf If $aMPos[1] < $aGUIStartPos[1] Then $iY = $aMPos[1] Else $iY = $aGUIStartPos[1] EndIf WinMove($__g_hGUI_MarkArea, "", $iX, $iY, $__g_iW, $__g_iH) UpdateCtrlPos($bAnim) WEnd $__g_bSelectionDone = True GUISetCursor(3, 1, $__g_hGUI_MarkArea) ElseIf $aCI[3] And $__g_bSelectionDone Then $aGUIStartPos = WinGetPos($__g_hGUI_MarkArea) If _WinAPI_PtInRectEx(MouseGetPos(0), MouseGetPos(1), $aGUIStartPos[0], $aGUIStartPos[1], $aGUIStartPos[0] + $aGUIStartPos[2], $aGUIStartPos[1] + $aGUIStartPos[3]) Then $aMPos = MouseGetPos() $aGUIStartPos = WinGetPos($__g_hGUI_MarkArea) While $aCI[3] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aGUIStartPos[0] - ($aMPos[0] - MouseGetPos(0)), $aGUIStartPos[1] - ($aMPos[1] - MouseGetPos(1)), $__g_iW, $__g_iH) GUISetCursor(0, 1, $__g_hGUI_Bg) GUISetCursor(0, 1, $__g_hGUI_MarkArea) WEnd GUISetCursor(3, 1, $__g_hGUI_Bg) GUISetCursor(3, 1, $__g_hGUI_MarkArea) EndIf EndIf If $__g_bSelectionDone Then $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) If @error Then ContinueLoop Switch $aCI[4] Case $__g_iLabel_TL GUISetCursor(12, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", MouseGetPos(0), MouseGetPos(1), $aOldWinPos[2] + ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3] + ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_BR GUISetCursor(12, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aOldWinPos[0], $aOldWinPos[1], $aOldWinPos[2] - ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3] - ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_TR GUISetCursor(10, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aOldWinPos[0], MouseGetPos(1), $aOldWinPos[2] - ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3] + ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_BL GUISetCursor(10, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", MouseGetPos(0), $aOldWinPos[1], $aOldWinPos[2] + ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3] - ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_LM GUISetCursor(13, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", MouseGetPos(0), $aOldWinPos[1], $aOldWinPos[2] + ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3]) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_RM GUISetCursor(13, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aOldWinPos[0], $aOldWinPos[1], $aOldWinPos[2] - ($aOldMPos[0] - MouseGetPos(0)), $aOldWinPos[3]) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_TM GUISetCursor(11, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aOldWinPos[0], MouseGetPos(1), $aOldWinPos[2], $aOldWinPos[3] + ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case $__g_iLabel_BM GUISetCursor(11, 1, $__g_hGUI_MarkArea) If $aCI[2] Then $aOldWinPos = WinGetPos($__g_hGUI_MarkArea) $aOldMPos = MouseGetPos() While $aCI[2] * Sleep(10) $aCI = GUIGetCursorInfo($__g_hGUI_MarkArea) WinMove($__g_hGUI_MarkArea, "", $aOldWinPos[0], $aOldWinPos[1], $aOldWinPos[2], $aOldWinPos[3] - ($aOldMPos[1] - MouseGetPos(1))) WEnd UpdateCtrlPos($bAnim) EndIf Case Else GUISetCursor(3, 1, $__g_hGUI_MarkArea) EndSwitch EndIf Until False EndFunc ;==>_GDIPlus_MarkScreenRegionAnimated Func UpdateCtrlPos($bAnim = True) Local Const $aGUIStartPos = WinGetPos($__g_hGUI_MarkArea) If $__g_bSelectionDone And $bAnim Then GUIRegisterMsg($WM_TIMER, "") $__g_iW = $aGUIStartPos[2] $__g_iH = $aGUIStartPos[3] ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_TL, 0, 0, $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_TM, ($__g_iW - $__g_iBorder) / 2, 0, $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_TR, ($__g_iW - $__g_iBorder - $__g_iBorder / 2), 0, $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_LM, 0, ($__g_iH - $__g_iBorder) / 2, $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_RM, ($__g_iW - $__g_iBorder - $__g_iBorder / 2), ($__g_iH - $__g_iBorder) / 2, $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_BL, 0, ($__g_iH - $__g_iBorder - $__g_iBorder / 2), $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_BM, ($__g_iW - $__g_iBorder) / 2, ($__g_iH - $__g_iBorder - $__g_iBorder / 2), $__g_iBorder, $__g_iBorder) ControlMove($__g_hGUI_MarkArea, "", $__g_iLabel_BR, ($__g_iW - $__g_iBorder - $__g_iBorder / 2), ($__g_iH - $__g_iBorder - $__g_iBorder / 2), $__g_iBorder, $__g_iBorder) If $__g_bSelectionDone And $bAnim Then GUIRegisterMsg($WM_TIMER, "PlayBorderAnim") EndFunc ;==>UpdateCtrlPos Func PlayBorderAnim() Local $aWinPos = WinGetClientSize($__g_hGUI_MarkArea), $iW = $aWinPos[0], $iH = $aWinPos[1] Local Static $fOffset = 0 Local Const $iSize = $__g_iBorder / 2 Local Const $hDC = _WinAPI_GetDC($__g_hGUI_MarkArea) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) Local Const $hPen = _GDIPlus_PenCreate(0xFF0178D7, $iSize), $hPen2 = _GDIPlus_PenCreate(0xFFFFFFFF, $iSize), _ $hBrush = _GDIPlus_BrushCreateSolid(0xFF000000 + $__g_iColor_ResizeDots), $hPen3 = _GDIPlus_PenCreate(0xFF000000) _GDIPlus_PenSetDashStyle($hPen, $GDIP_DASHSTYLEDASHDOT) _GDIPlus_GraphicsClear($hCanvas, 0xFFABCDEF) ;for faster performance direct dll calls DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen2, "float", 1 + $iSize, "float", 1 + $iSize, "float", $iW - 2 * $iSize - 2, "float", $iH - 2 * $iSize - 2) DllCall($__g_hGDIPDll, "int", "GdipSetPenDashOffset", "handle", $hPen, "float", $fOffset) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen, "float", 1 + $iSize, "float", 1 + $iSize, "float", $iW - 2 * $iSize - 2, "float", $iH - 2 * $iSize - 2) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", 0, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", 0, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", ($iW - $__g_iBorder) / 2, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", ($iW - $__g_iBorder) / 2, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", ($iW - $__g_iBorder) - 2, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", ($iW - $__g_iBorder) - 2, "float", 0, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", 0, "float", ($iH - $__g_iBorder) / 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", 0, "float", ($iH - $__g_iBorder) / 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", ($iW - $__g_iBorder) - 2, "float", ($iH - $__g_iBorder) / 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", ($iW - $__g_iBorder) - 2, "float", ($iH - $__g_iBorder) / 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", 0, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", 0, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", ($iW - $__g_iBorder) / 2, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", ($iW - $__g_iBorder) / 2, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush, "float", ($iW - $__g_iBorder) - 2, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) DllCall($__g_hGDIPDll, "int", "GdipDrawRectangle", "handle", $hCanvas, "handle", $hPen3, "float", ($iW - $__g_iBorder) - 2, "float", ($iH - $__g_iBorder) - 2, "float", $__g_iBorder + 1, "float", $__g_iBorder + 1) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) $fOffset += 0.5 _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($__g_hGUI_MarkArea, $hDC) _GDIPlus_PenDispose($hPen) _GDIPlus_PenDispose($hPen2) _GDIPlus_PenDispose($hPen3) _GDIPlus_BrushDispose($hBrush) EndFunc ;==>PlayBorderAnim Func WM_ERASEBKGND($hWnd, $iMsgm, $wParam, $lParam) ;suppress repainting to avoid flickering but causes some other side effects #forceref $iMsgm, $wParam, $lParam, $hWnd Local Const $hBrush = _WinAPI_CreateSolidBrush(0xEFCDAB) ;BGR format ;~ _WinAPI_RedrawWindow($__g_hGUI_MarkArea, 0, 0, BitOR($RDW_NOERASE, $RDW_NOCHILDREN, $RDW_NOFRAME, $RDW_VALIDATE)) _WinAPI_SetClassLongEx($__g_hGUI_MarkArea, $GCL_HBRBACKGROUND, $hBrush) _WinAPI_DeleteObject($hBrush) Return 0 EndFunc ;==>WM_ERASEBKGND ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext Func _WinAPI_SetProcessDpiAwarenessContext($DPIAwareContext = $Context_PerMonitorAware, $hGUI = 0, $iMode = 3) ;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setprocessdpiawarenesscontext $DPIAwareContext = ($DPIAwareContext < -5) ? -5 : ($DPIAwareContext > -1) ? -1 : $DPIAwareContext $iMode = ($iMode < 1) ? 1 : ($iMode > 3) ? 3 : $iMode Switch $iMode Case 1 Local $hDC = _WinAPI_GetDC($hGUI) Local $aResult1 = DllCall("user32.dll", "ptr", "GetDpiFromDpiAwarenessContext", "ptr", $hDC) If @error Or Not IsArray($aResult1) Then Return SetError(11, 0, 0) _WinAPI_ReleaseDC(0, $hDC) Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult1[0] + $DPIAwareContext) If @error Or Not IsArray($aResult) Then Return SetError(12, 0, 0) Case 2 ;~ If Not $hGUI Then $hGUI = WinGetHandle(AutoItWinGetTitle()) Local $aResult2 = DllCall("user32.dll", "int", "GetWindowDpiAwarenessContext", "ptr", $hGUI) If @error Or Not IsArray($aResult2) Then Return SetError(21, 0, 0) Local $aResult = DllCall("user32.dll", "Bool", "SetProcessDpiAwarenessContext", "int", $aResult2[0] + $DPIAwareContext) If @error Or Not IsArray($aResult) Then Return SetError(22, 0, 0) Case 3 Local $aResult31 = DllCall("user32.dll", "ptr", "GetThreadDpiAwarenessContext") If @error Or Not IsArray($aResult31) Then Return SetError(31, 0, 0) Local $aResult32 = DllCall("user32.dll", "ptr", "GetAwarenessFromDpiAwarenessContext", "ptr", $aResult31[0]) If @error Or Not IsArray($aResult32) Then Return SetError(32, 0, 0) Local $aResult = DllCall("user32.dll", "Bool", "SetThreadDpiAwarenessContext", "int", $aResult32[0] + $DPIAwareContext) If @error Or Not IsArray($aResult) Then Return SetError(33, 0, 0) EndSwitch Return 1 EndFunc ;==>_WinAPI_SetProcessDpiAwarenessContext  
      Just press the lmb and move your mouse. When lmb is released you can adjust the size of the window by dragging the white rectangle to any direction. Rmb will move the marked area.
      Press ESC to get the coordinates of the marked region.
      If you have any improvements, please post it here.
       
      Tested on Win10 x64 only.
       
×
×
  • Create New...