1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. UEZ

Beiträge von UEZ

  • [Spiel] MicroTD

    • UEZ
    • 8. Juni 2011 um 22:56

    Irgendwie bekomme ich es nicht zum Laufen! Nachdem ich eine Zahl eingeben soll, blinkt kurz ein schwarzes Fenster auf und das war's.

    Gruß,
    UEZ

  • Daten aus einem String ausschneiden

    • UEZ
    • 8. Juni 2011 um 12:32

    Probiere es mal damit:

    [autoit]


    #include <Array.au3>
    $file = FileRead(@ScriptDir & "\test.txt")
    $aTemp = StringRegExp($file, ".*>(\d+)<.*", 3)
    _ArrayDisplay($aTemp)

    [/autoit]

    Gruß,
    UEZ

  • Active Directory Tools

    • UEZ
    • 7. Juni 2011 um 21:23

    Ich musste einige AD Tools für die Firma skripten und dachte mir, dass sie auch für andere von Nutzen sein könnten:

    • AD Computer Account Creator.au3 v0.91 Build 2011-09-19 beta
    • AD Object Mover.au3 v0.91 Build 2011-09-19 beta
    • AD User Account Creator.au3 v0.91 Build 2011-09-19 beta
    • AD User ID Attribute Remover.au3 v0.91 Build 2011-09-19 beta
    • AD User-Computer to Group v0.91 Build 2012-01-06 beta

    Hier eine Beschreibung der Tools, allerdings in Englisch. Wenn ich Zeit finde, werde ich den Text ins Deutsche übersetzen.

    Spoiler anzeigen

    Short information about the AD tools

    The delimiter character within the text file of all tools listed below is always the pipe char '|'.
    OUs are usually in distinguished name format, User IDs in sAM account name format.
    Each tool creates its own log file where you can read more detail about it.
    If log file exceeds the 10MB size limit a new log file created and the old log file will be renamed to
    YYYYMMDDHHMMSS_.au3 whereas the YYYYMMDDHHMMSS is the last modified
    date stamp of the file.


    1. AD Computer Account Creator.au3
    creates computer accounts in AD.

    You have to load a text file with following content: : |

    Example:
    Computer4|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer5|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer6|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer7|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer8|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer9|OU=Computers,OU=VM,DC=UEZ,DC=local
    Computer10|OU=Computers,OU=VM,DC=UEZ,DC=local


    2. AD Object Mover.au3
    move an object from source OU to a destination OU.

    You have to load a text file with following content: |


    Example:
    Computer10$|OU=Computers,OU=Win7,DC=UEZ,DC=local
    Test1|OU=Users,OU=Win7,DC=UEZ,DC=local

    Remark: if you want to move a computer account don't forget the $ at the end of the computer name!


    3. AD User Account Creator.au3
    creates user id accounts in AD at specified OU.

    You have to load a text file with following content: ||||||||||

    The tokens marked in red are mandatory. Also you must enter a default password with minimum of 8 characters length to proceed!

    The flag "User must change password..." will be set automatically.

    Example:
    uez|OU=Users,OU=Win7,DC=UEZ,DC=local|First Name|Last Name|+49123456789|City|Street


    4. AD User ID Attribute Remover.au3
    removes attributes from the user id in AD.

    You have to load a text file with following content:

    Example:
    User1
    User2
    User3
    User4

    Just select the attributes which should be removed from user's id.


    5. AD User-Computer to Group
    adds the user id or the computer account to a group.

    You have to load a text file with following content: |

    The groups are separated by a comma!

    Example:
    Computer10$|Group1,Group3
    User1|Group2,Group4

    Remark: computer names must have the $ suffix

    Für die Skripte wird die Active Directory UDF von Water benötigt! Vielen Dank dafür :thumbup: !

    Kompilierte Versionen: 4shared.com / MediaFire.com

    Bei Bugs bitte hier melden!

    Gruß,
    UEZ

    Dateien

    _AD Tools Short Documentation.7z 1,6 kB – 637 Downloads AD User-Computer to Group.au3 18,78 kB – 605 Downloads AD Computer Account Creator.au3 20,92 kB – 601 Downloads AD Object Mover.au3 18,96 kB – 584 Downloads AD User Account Creator.au3 50,83 kB – 641 Downloads AD User ID Attribute Remover.au3 26,99 kB – 599 Downloads
  • TXT-Datei nach Vergleich um nicht-vorhandene Zeilen ergänzen

    • UEZ
    • 7. Juni 2011 um 14:09

    Hier noch eine Variante:

    [autoit]


    #include <Array.au3>
    #Include <File.au3>
    Global $aAlt, $aNeu
    _FileReadToArray("alt.txt", $aAlt)
    _FileReadToArray("neu.txt", $aNeu)
    _ArrayDelete($aAlt, 0)
    _ArrayDelete($aNeu, 0)
    _ArrayConcatenate($aAlt, $aNeu)
    $aAlt = _ArrayUnique($aAlt)
    _ArraySort($aAlt)
    _ArrayDelete($aAlt, 0)
    _ArrayDisplay($aAlt)

    [/autoit]

    Gruß,
    UEZ

  • GDI+ Perfect Illusion

    • UEZ
    • 4. Juni 2011 um 08:36

    Danke für euer Feedback!

    eukalyptus: schön vom GDI+ Meister das zu hören :D

    @progandy: "good catch" - ansonsten muss die CPU mehr unnötig rechnen bei kleinem r :thumbup:
    Bei großem r ist das leider kontra produktiv, also Min(r, 128 ).

    Die Varianten sind so eine Art Historie, wie sich das Ganze entwickelt hat...

    Gruß,
    UEZ

  • Labyrinth-Spiel

    • UEZ
    • 3. Juni 2011 um 13:08

    Dann nimm für Bilder GdipSetInterpolationMode.

    Gruß,
    UEZ

  • Labyrinth-Spiel

    • UEZ
    • 3. Juni 2011 um 11:34

    Kann man nicht Funktionen aus den DLLs mit einbinden, so dass du keine DLLs mitgeben brauchst? Die erste AutoIt (AutoIt v3.3.7.0) Beta war nämlich genauso, dass er die DLLs benötigt hatte.

    Genau, SetSmoothingMode() einbauen, damit die Kugel schöner aussieht.

    Gruß,
    UEZ

  • Labyrinth-Spiel

    • UEZ
    • 3. Juni 2011 um 10:00

    Um das Spiel zu starten, benötige ich 2 DLLs -> msvcp100d.dll und msvcr100d.dll. Kann man diese nicht mit einbinden?

    Nachdem ich map10x10.txt geschafft habe und das Programm beenden wollte, habe ich folgende FM bekommen:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Kannst du noch ein Antialiasing einbauen?

    Gruß,
    UEZ

    Dateien

    Error.png 7,33 kB – 0 Downloads
  • GDI+ Perfect Illusion

    • UEZ
    • 2. Juni 2011 um 22:04

    Den Code hatte ich schon seit Monaten in der Schublade und nun ist es Zeit ihn zu veröffentlichen (hatte ich glatt vergessen). Vielleicht entwickelt sich daraus ja noch weitere Ideen...

    Danke an Ximorro für die ursprüngliche Idee ;)

    Variante1 / 2 / 3
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    GDI+ Perfect Illusion Variante 1:

    Spoiler anzeigen
    [autoit]


    ;coded by UEZ 2011 Build 2011-06-02
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_UPX_Parameters=--ultra-brute --crp-ms=999999 --all-methods --all-filters
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
    #include <GUIConstantsEx.au3>
    #include <GDIplus.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 800
    Global Const $width2 = $width / 2 - 50
    Global Const $height = 600
    Global Const $height2 = $height / 2 - 50
    Global Const $bs = 20
    Global Const $bs2 = $bs / 2
    Global Const $max_r = $height * 0.8

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGUI = GUICreate("GDI+ Perfect Illusion by UEZ 2011", $width, $height);, -1, -1, Default, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $screens = 8
    Global $screen_bitmap[$screens]
    Global $screen_context[$screens]
    Global Const $hBrush = _GDIPlus_BrushCreateSolid(0xFF404040)
    Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Global $i, $j, $m, $r, $dir

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To $screens - 1
    $screen_bitmap[$i] = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $screen_context[$i] = _GDIPlus_ImageGetGraphicsContext($screen_bitmap[$i])
    _GDIPlus_GraphicsFillRect($screen_context[$i], 0, 0, $width, $height, $hBrush)
    _GDIPlus_GraphicsSetSmoothingMode($screen_context[$i], 2)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    $dir = 1
    $i = 0
    $j = 0.05
    $m = 0
    $r = 1

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_BrushSetSolidColor($hBrush, 0xC00000FF)
    Do
    _GDIPlus_GraphicsFillEllipse($screen_context[$m], ($width2 - $bs2) - Cos(-$i) * $r, ($height2 - $bs2) - Sin(-$i) * $r, $r / 2, $r / 2, $hBrush)
    _GDIPlus_GraphicsDrawEllipse($screen_context[$m], ($width2 - $bs2) - Cos(-$i) * $r, ($height2 - $bs2) - Sin(-$i) * $r, $r / 2, $r / 2)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $screen_bitmap[$m], 0, 0, $width, $height)
    $m = Mod($m + 1, $screens)
    $i += $j
    If $r > $max_r Or $r < 1 Then $dir *= -1
    $r += (0.075 + Sin($i / 3.5) ) * $dir
    Until Not Sleep(30)

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    _GDIPlus_BrushDispose($hBrush)
    For $i = 0 To $screens - 1
    _GDIPlus_BitmapDispose($screen_bitmap[$i])
    _GDIPlus_GraphicsDispose($screen_context[$i])
    Next
    _GDIPlus_GraphicsDispose($hGraphic)
    GUIDelete($hGUI)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    GDI+ Perfect Illusion Variante 2:

    Spoiler anzeigen
    [autoit]


    ;coded by UEZ 2011 Build 2011-06-02
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_UPX_Parameters=--ultra-brute --crp-ms=999999 --all-methods --all-filters
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <Memory.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 800
    Global Const $width2 = $width / 2 - 50
    Global Const $height = 600
    Global Const $height2 = $height / 2 - 50
    Global Const $bs = 20
    Global Const $bs2 = $bs / 2
    Global Const $max_r = $height * 0.8

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGUI = GUICreate("GDI+ Perfect Illusion by UEZ 2011", $width, $height)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $screens = 6
    Global $screen_bitmap[$screens]
    Global $screen_context[$screens]
    Global Const $hBrush = _GDIPlus_BrushCreateSolid(0xFF202050)
    Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    Global Const $iInterpolationMode = 7
    Global $i, $j, $m, $r, $dir

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To $screens - 1
    $screen_bitmap[$i] = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $screen_context[$i] = _GDIPlus_ImageGetGraphicsContext($screen_bitmap[$i])
    _GDIPlus_GraphicsFillRect($screen_context[$i], 0, 0, $width, $height, $hBrush)
    DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $screen_context[$i], "int", $iInterpolationMode)
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    $dir = 1
    $i = 0
    $j = 0.05
    $m = 0
    $r = 1

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $hImage = Load_BMP_From_Mem(BinaryStringImage())
    Global Const $iW = _GDIPlus_ImageGetWidth($hImage)
    Global Const $iH = _GDIPlus_ImageGetHeight($hImage)
    Global Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
    Global Const $hCtx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    Global Const $hTextureBrush = _GDIPlus_TextureCreate2($hImage, 0, 0, $iW, $iH, 0)
    _GDIPlus_GraphicsFillEllipse($hCtx, 0, 0, $iW, $iH, $hTextureBrush)
    _GDIPlus_BrushDispose($hTextureBrush)
    _GDIPlus_GraphicsDispose($hCtx)
    _GDIPlus_ImageDispose($hImage)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    Do
    _GDIPlus_GraphicsDrawImageRect($screen_context[$m], $hBitmap, ($width2 - $bs2) - Cos($i) * $r, ($height2 - $bs2) - Sin($i) * $r, $r / 2, $r / 2)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $screen_bitmap[$m], 0, 0, $width, $height)
    $m = Mod($m + 1, $screens)
    $i += $j
    If $r > $max_r Or $r < 1 Then $dir *= -1
    $r += (0.2 + Sin($i / 3.5)) * $dir

    [/autoit] [autoit][/autoit] [autoit]

    Until Not Sleep(20)

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_BitmapDispose($hBitmap)
    For $i = 0 To $screens - 1
    _GDIPlus_BitmapDispose($screen_bitmap[$i])
    _GDIPlus_GraphicsDispose($screen_context[$i])
    Next
    _GDIPlus_GraphicsDispose($hGraphic)
    GUIDelete($hGUI)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func Load_BMP_From_Mem($mem_image) ;coded by UEZ - thanks to progandy for the MemGlobalAlloc and tVARIANT lines
    Local $memBitmap, $len, $tMem, $hData, $pData, $aBitmap, $aStream, $tVARIANT, $aCall
    $memBitmap = Binary($mem_image) ;load image saved in variable (memory) and convert it to binary
    $len = BinaryLen($memBitmap) ;get length of image
    $hData = _MemGlobalAlloc($len, $GMEM_MOVEABLE) ;allocates movable memory ($GMEM_MOVEABLE = 0x0002)
    $pData = _MemGlobalLock($hData) ;translate the handle into a pointer
    $tMem = DllStructCreate("byte[" & $len & "]", $pData) ;create struct
    DllStructSetData($tMem, 1, $memBitmap) ;fill struct with image data
    _MemGlobalUnlock($hData) ;decrements the lock count associated with a memory object that was allocated with GMEM_MOVEABLE
    $aStream = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "handle", $pData, "int", True, "ptr*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    $aBitmap = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromStream", "ptr", $aStream[3], "int*", 0) ;Creates a Bitmap object based on an IStream COM interface
    If @error Then Return SetError(@error, @extended, 0)
    $tVARIANT = DllStructCreate("word vt;word r1;word r2;word r3;ptr data; ptr")
    $aCall = DllCall("oleaut32.dll", "long", "DispCallFunc", "ptr", $aStream[3], "dword", 8 + 8 * @AutoItX64, _
    "dword", 4, "dword", 23, "dword", 0, "ptr", 0, "ptr", 0, "ptr", DllStructGetPtr($tVARIANT)) ;release memory from $hStream to avoid memory leak
    If @error Then Return SetError(@error, @extended, 0)
    $tMem = 0
    $tVARIANT = 0
    Return $aBitmap[2]
    EndFunc ;==>Load_BMP_From_Mem

    [/autoit] [autoit][/autoit] [autoit]

    Func _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight, $iStride = 0, $iPixelFormat = 0x0026200A, $pScan0 = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iWidth, "int", $iHeight, "int", $iStride, "int", $iPixelFormat, "ptr", $pScan0, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return $aResult[6]
    EndFunc ;==>_GDIPlus_BitmapCreateFromScan0

    [/autoit] [autoit][/autoit] [autoit]

    Func _GDIPlus_TextureCreate2($hImage, $nX, $nY, $nWidth, $nHeight, $iWrapMode = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateTexture2", "hwnd", $hImage, "int", $iWrapMode, "float", $nX, "float", $nY, "float", $nWidth, "float", $nHeight, "int*", 0)
    If @error Then Return SetError(@error, @extended, 0)
    Return SetError($aResult[0], 0, $aResult[7])
    EndFunc ;==>_GDIPlus_TextureCreate2

    [/autoit] [autoit][/autoit] [autoit]

    Func BinaryStringImage()
    Local _
    $BinaryString = '0x89504E470D0A1A0A0000000D49484452000001000000010008060000005C72A866000000097048597300000B1200000B1201D2DD7EFC000020004944415478DAED7D69902CD955DE5D32B3B2B6EEAEEED7EF753FADF366D768341A2D335A91D03212884080060511206C1988B009F02E23908C65106014326083ED70B0D93206041204186459129602A175642121248D469A190981E62DF3967EBDD49299F7FAC754BEB873E79C7BCFCDCAEAAEEE9737A2A2ABAAB3F63CDFF9CE77CE3D87B16635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB590BB378F3155C75BF3747EED7D3EBDAB8DEAC06009AB5F03F22E711E7BC25848885102D21C48A94724908D11542F4A5945D21442A84E870CE53C698E0FCD13FBDD69A33C60AADF54829B5A7941A1545B1AB94DA514A6D1745B1AD94BAA4941A2BA572ADF5486B9D37DF7E0300CDDA3F434F84101D2965378AA29349926CC6717C328EE313711C1F4F92E47814456B711C2F4B293B52CA4408914A2913CEB91442449C73A1B5E6FC1104D0060030CEB9D65A2BA554A1B5CE8BA2984C81605C14C55E966597F33C3F3F994CCE66597636CBB23359967D6332993C94E7F937A680B1A7B59E34'
    $BinaryString &= 'BF560300CD9A6D4552CA5E14454B49929C6AB55AA75AADD6A9344DAF69B55A4F68B55AC7E2385E8EE3B81745515B4A190921B81082092118E7FC519729809860623380C75CD75A3FEAA2942A2FBA288A22CFF3BD2CCB76B22CDB1A8FC7E7C7E3F1DF8C46A307C7E3F103E3F1F8C1C964F2409EE75B4551EC30C61AB6D00040B31C4B4829FB711C6FB45AAD1BDBEDF6CD9D4EE7E6344D6F48D3743D4DD3B5A9B1C7524A26A5BC62E8B6C19BB74D63AF0200261028A51E0308E5DFA2285851142CCFF33CCBB29DD168F4F068343A371A8DEEDBDBDBFBE27038FCE2783CFE529665678AA2B8CC1853CD4FDE00C0D54EE95B51142DA7697A4BBBDDBEBDD7EB3DADD3E9DCD26EB74FB65AAD419224ED288A9869F0A687370DDDE7F52110801664FC181B8080A0BC1880C02693C9683C1E9F1F0E870FEDEDED7D7E6767E7AF86C3E1A747A3D1E7F33CDFD65A8F9AB3A10180ABC3CD0BD18EE3F858BBDDBEBDDBEDDED1EBF59EDDED764FB5DBED8D24497A711C5F31F8D2E8216FEF33FE7903800B044C5660824151142CCB3236994C7686C3E1E9DDDDDD07767676EED9DDDDFDE47038FC4C9665E79452C3E62C6900E0C88977711CAFB4DBED3BFBFDFEF3FAFDFEF37ABDDE35ED76FB44922489E9E5216F0F797D1700D806EFA2FE180098468F01810F00EC8B0904063B980C87C3333B3B3B5FDDDEDEFEC8F6F6F64787C3E127B22CBB'
    $BinaryString &= 'D488890D001C6E152F8A56D234BDB5D7EBBD707979F9C5BD5EEFC66EB7BB9924496C7B7ADBDBFB00C015EF0B211E63F0141070E9008CB12BC64DD505301080C060CA0CF2DDDDDD87767676EEDDDADAFAD0CECECE8747A3D1E7F23CBFD49C4D0D001C9615B75AADE3DD6EF7C54B4B4B772D2F2FDFD9EBF59E94A6695A1ABDEDF14DC377C5FA14DA6F830195FABB4201571810CA064C00B08120CFF32B60301A8D863B3B3B7FB3B5B5F589CB972FBF6F7777F743E3F1F81C63AC61050D002C646CDF49D3F4C67EBF7FD7CACACA2B9797976FE9743AEB4992B0288AAE5C4C43F779FED2D029DE9F1AF7878600A1822064F810238000A0BC9DE7F995CB6432617B7B7B67B7B6B6BE70E9D2A5F76E6F6FBF7F341ADDAB94DA6BCEBA06000E7C4929FBED76FB19CBCBCBDFB2BABAFA8A7EBF7F7D9AA65DD3F04B438700C03478F3B66DFC14AF1F9AFAAB0A02BE8BCD066C10288DDDD6064C003059410904A3D168777B7BFBCB172E5C78DFD6D6D67B86C3E1A78BA2D86ECEC206000EC2F097BBDDEEB3575656BE7D3018BCACDFEF5FDB6AB512DBF03181CF17F3BB28BFCBF3FB4080AA01F88CDFC7047C69424A486082810904E3F178B2BDBDFDC0C58B17DF77E9D2A53FDEDDDDFD5451145BCD59D900C07E50FD5EB7DBBD633018BC663018BCBCDFEF9F4AD35462866F7B7DCCFBDB5E3FC4F84B832EC5BF7902402906626CC00502BE'
    $BinaryString &= '9000020313000046506C6F6FDF7FF1E2C50F5CBC78F1DDBBBBBBF728A51A46D000C05C0CBFDD6EB79F3E180C5EB3BABAFAAAA5A5A5EBD33495711CB3388E1F13E7BBE27D4CECE39C33296525E1CFC50066110143180045102C8A020405332CC074015B1FC8B2AC140C8BCB972F7FE5C2850B7F7AF1E2C5770F87C3CF341A410300B5B1FD344D6F1C0C0677AFADADBD667979F9E6344DE324499C868F193D25CD370BF5DF6F0D203414A0A40931307001C19411E45B5B5B5F387FFEFCBB2F5EBCF8AED168F425C658D19CC20D00545A711C1F5B5A5A7ACDFAFAFAEB5656566EEF743A1DD3F0CBBFA6C81745D1638CDDE5F97D8A3F64F426D5A7A6FEEA64001810D8D900574AD0A70940BA8052EA8AD19B809065D9A380606F6F6F78E9D2A5FF77EEDCB9DFBA7CF9F2BBB22C3BDF9CCD0D0084D0FD6EAFD77BC1B163C75EBFBABAFAD25EAF77ACD56A3DC6F0A1781F337EAAE197210035EDE7327C5F0D4079BF1DFBFB34005F1880A505CD10800A041808406CC00482F178CC767676CE5DB870E1830F3FFCF06FECECEC7CB8090B1A00F07E1F699A5E3B180CBE7F7D7DFDB5CBCBCB37A669CACA38DFF4F82510082198BD61A7AADAEFCA0094221F56F5775000805507DA8C0063005500C0F4FE4AA92B866F3202431FD05B5B5BF79D3B77EEF72E5EBCF88ED168743F6B3A1E3500F098405FCAE57EBFFF8AF5F5F51F5A5D5D7D6E'
    $BinaryString &= 'B7DBED9674DF8EF5EDFCBEAFA4D7A5FA43C25F48EC4F01803A43000A0050D3829820886901902660D70B4022E1643261BBBBBBBB172E5CF8D8B973E77E757B7BFBBDD32DC957FD8A9AAF80B156AB75DDDADADA0F4EBDFE35AD568BB98CDF3476C8FBCF1AF75755FF0F42039052066503CCEB4208940594DF8B79BBFC2BA57C94E1DB408B5CBAAD56EB659D4EE7D4B973E79E71FEFCF95F1D8FC7F7370CE0EA8EF5DBBD5EEFA5C78F1FFFD1B5B5B51774BBDD8E6DF890D2EFAAE7A7187E2800CC52FC43AD01800C9F1206849607870882AE1421B68F00CA10006C60EFFCF9F37F71F6ECD95FDED9D9F9B3AB790BF255CB00E2385E1B0C063F70E2C489D72F2F2FDF94A6E915AF6FD7EF63C53D55627E570830CB869F8308015C0020847894C197B7CDEB45513CEA7EEC2284B862F4E5F75214C5630AA74A3660DF0F84609D388EEF6AB7DB4F3C73E6CC6F5EBC78F1D7AFD64CC1D50800A2DD6EDFB6BEBEFE23C78F1FFFCE5EAF3748928495174CE5B7BDBF6B430FC5F86D4377D17F4C00B40DBF3C8E62FCAE96602E1028053E1F1098422064FCA531631A000602E65F1B08CCEF32CF73B0B2D2FC6DA228BAA9D56ABD314DD31BCF9D3BF72BC3E1F0B3EC2A6B55765501801022EDF57AAFD8D8D8F8176B6B6BCF69B7DB7169F8A6D26F1A3DA5A63FA4D82744F90FD9F88379FD3A4200F3BE12607CA9C0D2D031E337E3FB6947E2'
    $BinaryString &= '47DD075D38E7570CBEBC8D3182F27A0904D0FFA697411CC7AF4BD3F4FAD3A74FFFC2CECECE7B9552A306008E9ECABF32180CBE7F6363E31FADACAC3C8AF25368BF4BEDA70A7F90E1BB8CDFF6FC949D7FAE0E40B3540262713F0600361330053F53D0338DDB0504A6819BE1800D06906E02B1020B146229E50B9324593F7DFAF4132F5EBCF88EA2282E350070445692241B6B6B6BFF746363E3EFF7FBFD13AD568B95853D2EB18F1AF387C6FD2EC3C72AFF28E21F25F6AF2A02FAB20158CB30530BA0187C791D3268F3B118004021966BF394F55BDC14C7F14FC4717CF2FCF9F3BF34994C4E370070C8579AA6B71E3F7EFC0D274E9CF88E6EB7DB4F92A4B2F153453FEA4EBF2AEABF4DC57D3B0029F13F4507F0ED0C84B401D3EB9797F233D9A1800D0E2E166086022E30A87211429C88A2E887E3383E79F6ECD9B78F46A3BF6A00E09086FCDD6EF7F9274E9C78D3FAFAFA4B3A9D4E6CE7F7B11C3F96EE7379FF2A39FF5962FF901E00A11980904C80E94DA110C014FAECDB260BB00DB7BCDFBE40868F01032698BA00767ABB2F84F89E288A8E9F3973E6ADBBBBBB1F3DAAE2E0510580646969E9651B1B1B6F5E5B5BBBB3DD6E8BD2EBDB4ABF5DDE0B15FA608A7F99BEAB52F4334BFAAFEA1E802A1A808F0584760A2A8DDBBC5EBE37D3E83100803E330402983682754B068E8F8510774551B474FAF4E9B75EBE7CF903EC08F6'
    $BinaryString &= '233C7200C0394F9797975FBDB9B9F9E3ABABABB795F1BECFF3D729FA99A5BD58CACFB7EBAFEADEFFFD0E01427A0440DEDF8CE9CB3002020053E937C301F331A6E143B75DADD2110D85AFAFAF3F574AF9B34288FED6D6D61F1DB52126470A008410EDE5E5E5BB3737377F7C3018DC5C2AFDAE021F4A892FA5D26F9EA93F332B50750B701D854054EF5FDE67C6FF76CEDF3472D3D84DDDC0160031EF6F7F2F761810C284A0635757576FE39CFF1BCE79B2B5B5F5FB47294D181D21E3EFACACAC7CCFC993277F6C7979F986344D1F25F641453E3EC10F327E2CE60F69F431ABF78784BF83C802F85A85D9F1BF69D8B6F7B7A9BF4FCC833EA7EFB36160800185F91A83C1E06621C49B39E7C9A54B977EE7A86C2D8E8E88F177575656BEF7E4C9936F585959B9CE4EF361C68F193EA5D4D72EFCB1B500DBB8B1565FA1190008086C5030BDA77D229BC21D64FC66A10FA4EA431581367587D281B6E1DB866EFF35DF0366FC3E8A0F098250BC1F105EDEC0187B23632CBA74E9D26F29A5760FBBEDC8A310F30F0683EF9D7AFEEB30DAEF337ECA365F0824B05D68AE90C1174AD85A019446844A5BED634A60A01616853E062A5376B1126CEB32A5A80933643B3CF28541215D93A1FBA3285A4D92E4E62CCBB646A3D117D9211F7B1E1D72E36FADACAC7CF7E6E6E61B969696AEB58D1F13FBA8D4DF57E38F797E5FEA0F32349741D5B909'
    $BinaryString &= 'A8AE10C064133E11D0F4FC52CAC73080F27E3BD687AE438C061330EB488122C2E8B55AEB3768ADC7972E5DFA3DADF5B80180FD5FF1D2D2D2AB373737DF58C6FCF6861ED75E7EAC8D57D5525F7B822FD4E60BA2FF101050B6FF866402E69D06A40883B6F0671BBE4DF7CDDBA6F1DB2C00FB1F05E8A22822099FC8FF6ED05ABF512935DEDADAFA43C658D68400FB18F6F7FBFD576C6E6EBE653018DC9AA629335B77B9683F45F1F755FCB936FF40CF61824248ED008549B8748510717186CA3952C602622D76E18FA969B8C201572A2F840999464D11104D50628CB1288AD6A594374E2693AF4E269343D96AEC5032806EB7FBFC8D8D8D370F0683DB4ACFEFF2FA2EC377F5EDA794FBFA36FDF8C43FC880EC30008A75ABD400CC8301B8B202362B283DB6191AD82DC52016808981A1421EF4B9CCC786F4464C92A4CC0E3C4D29F526A5D4D6EEEEEE5F340C60CE2B4DD35B3736367EFAD8B163DF94A62937F7F2FB0A7D5CAA3F1406F8867A98B41F0202291FF97A43FB05605EDE953908A92DA07417F6796E97C05655E0B39FD36605F6FFA829C19062A84AB1681C3F8E31F6F8D168F4D93CCFCF360030AFA03F8E4F9C3871E22DEBEBEBDFD66EB7A392F643C65F25DF4FA5FC3EE3A7EE0FC08CDFD54034A4B6C054DF43B6179BC7DB29461F95B7D5F910800965332E10985510A4344C318EE3711C3F516BBD341C0E3F7698D283'
    $BinaryString &= '870600A4942BC78E1DFB57274E9C785DB7DBED40E5BDA165BEAE293E762D802BE6870C3974EC77C84C408C01F88E8340014AD5B9527794BA7A4A1A8ED2D094DAD6DCE7E5A1F89D62DC8119291945D1B54551C8E170F8A9C352327C2800609AEB7FFDC6C6C68FF47ABD3588F2538DDF97F233F3FB51145DF1C8BE4A40CCC86D95DFF6F214BA0F0D0D99A5B8080B0B2063F77968FB31AE5CBF4BBC33E371A8688942E3B1C7DB9B8CAAA6FF7C8F13422451145D9F65D9E5E936E2BC01807A14FF6FDDD8D8F8F1E5E5E527DB557ED0C00E8AF197713FA5F087DAEACB47EB4B03716D16820A7B2063B7C1C0070214FA8F951BFBD4753B44F0952ABBF481AAF49EC23E5C5A82ABDEC1C716AC6DD13D21C435E3F1F8C1C964F29545CF0C2C3C00A4697ADBE6E6E64FAFAEAE3E13A3FDBE4A3F3BE71F52F843A1FC90E142D41E336EAC8B8D6B131125B310220086161955E94B80814148EA0E53F06D03F5D5F6635E9C1AFBBB6A06A2283AC6397FDC7038FC749EE7A71B00A89AA38CA2B5F5F5F5371D3B76EC55699A4A4CE9A71A3F0402AEBDFE90920F19B24DE7B1FB7CA21DA609B8683CC5F8ABE6FF43043ADF269BD0FE05F6F176CEDE0E1B6C4334F7145076FFD94CC065E0588AD3BC2EA53CA9944A87C3E1471679EEC0C2028010A23D180CFEE1C6C6C60F763A9D1E16F7BB5A77633DFD42DB7CD91B7E2030C0E839A5A69FBA2538'
    $BinaryString &= '9401D49D06A418AD6B579EAB702744F57779F8102FEE3BCE55CFE0EB9D3015059F9C65D9DE6834FAB4D63A6F002040F79BB6EFFEB17EBFFF04DFA82EC8F07D937BA925BF25605449E755E9FFE79B2150350B50B5D310D548290CC0B7377F9666262EE53F44C8B31FEB6B93EEBA8F73DE16423C61341A7D79512B051712005AADD675C78F1F7FCB6030B8A3D56A71733437D6C6CB37BEAB34608AF7F7D5FCBB547C5F23108A118794DC528EDF8F102034DFEE13E8AA4C38A694F752BC38C5C0A92C414AB9A6B53E361C0E3F5614C5850600FCD47F796D6DED1FAFAFAFBFB6DD6E27D0061FAC7F1F96DF2FD379AE419EBE725FD7AEBF593C3FC5F87D1384AAC4FFBE2DBCB3840054E30F05012AB8B8E2799F119BFA0165FE810B58A67FB994F2649EE7D97038BC67D1760E2E1A00887EBFFFED274E9CF867FD7E7FDD35A813A3FB21D57EAEA21DD716E0BABAFE52438050259F12FF03C01B9C05A0D0F52A21400848F88CD925EA850043C84E411B2038E731E7FCF1E3F1F8ABE3F1F88B8B140A2C14004CA9FF4F0E06836798A21FB57B2FA591876DD8657CEFEAF31732EB8FDAFA2B84D253065D54092366D500AA32012A08841EE312E5209AEE6309D401A9BEE3A745422B5AEBC17038FC785114E71B0078AC07EA0E06831F5E5F5F7F6D9AA60934AC13EBE0E3EBE403E5E35D25BE2EC37775E0996708601B65685C1F7A3C45A9'
    $BinaryString &= 'AF9A6FAFAA035084419757A7C6FF980E40A90BF080C089C964B23B1A8D3EA9B5CE1A003056A7D379C9891327FE65BFDFDF7429FE546FEFF2D4D45E7FD40D3D21537FA8A5B9A1947E5683AFABF5F82C1B73EC2E3F21CC81120A508C17BBF88EA568059CF38473BE311C0EBF9065D9FD0D004C571CC76BC78E1DFB89D5D5D56F6AB55ADCA4FED0855AC28BF5EFF351FD90661DD4C19FB316E8CCE2C1EBCA00D42904FA8000DB1E5C350C70193CF6DC94C7DA43505DE0306501AB4551C4C3E1F0838B502074E000C0398FFBFDFEF7ADAFAFFF50A7D3E942713F65438FAB8087B2936F56E3B7EBFB43E8FFAC4659D5A36382DDAC750075EEB5C79E3F24C74F9D6BE04AE7517400ECB6D904E591B7CF3746A3D199F178FC5976C023C70E1C005AADD64DC78F1F7FF3F2F2F28D58992F65171F56C3EFDBC1E7DBCEBB1FF1BFA9C2BBF6E7530DDDE7BDABE4FE7DDEB94A0BF23A81C2A703848E37736903BE26A8E6F3DBC351A783503B5AEBC1DEDEDE478BA23877A0DADB010B7FED7EBF7F77BFDFBFCDF4F4BEF8DCB7D186126B87087175F4D27379516CCF3D949EF3D16C08584273F4D063B1F4E1BC3E57DDBD0A5DBF3555A70999FE8C9DC7E579DEEFF79FDEEFF7EF1642B4AF5A0068B55AB7AFACACDC9DA66917ABD0F379E72AC53455043457DA0E3230D7090F3DD66E8889E5E621A3B4FF42865CC58020A374BD669D9F0B0B59A0'
    $BinaryString &= 'EF9C9252A5FCD621E78F6DF494C630A62695A669776565E5EE56ABF5F4AB120084104B4B4B4BDFD5ED766FAABAF79EF2C384D6D257F1E818AD7715C460C665CF0E088DC7A9A0346B1841F1DCA6C1DBBF05C5E363CCC605C021EC20A428CBD7C8D597758280A0DBEDDEB4B4B4F41A21C4D2550700ED76FB99CBCBCBDF9624490C797F8AE1FB7AE6D545E37D22992B4F4FF5CA2E6A3DCBF65C974151FE37EB6B523E1B956D847CFFB38411AE8E499473CF0704250B4892245E5E5EFEB676BBFDCCAB0A00A494CBFD7EFFEE76BB7D1DD47B0F8AF97DFBE10F62838C6FDEBCCF93524F525FACEDBA9F62F0AEFFD7F99A55D806E5BB9CD5E8673D877CE729243C9720D06EB7AFEBF7FB774B2997AF1A0048D3F4594B4B4B2F4F9244520A6E284533750FBDF0C5A03E2AEFF2FE54CF8BE5D667ADD4A3D6E8CFEB3543D846C877E96B3936AF612814968015972549229796965E96A6E9B3AF0A0090522EF57ABDEF68B7DBA728CD354276C1B9E859882782D4F3598A65AA78E5AA31395594F4D1F279BEE62C9A4368C6C0FE2D43F59010CD8972BE424CA0DD6E5FDBEBF55E7D102C60DF01204992DBFBFDFE4BE33896BEF25D4ACBEC599B5EB84E4A576E9EEAF5428E0DF5C6D4A29C10CA3FAFD79CF5F3518FF565337CCCA6CA183497D7C798807989E358F6FBFD97264972DB9106002144A7D7EB7D6BA7D3B9164AF75194F950AF4E1D'
    $BinaryString &= '5BEDA3C4540A4D6508A19579BE029D10E3A1BE1EB5C26F5E9F2F54DC0BF9BDA8330C43D90235E36067053A9DCE75BD5EEF554288CE91058024496EEAF7FB77C5719CF836D754A1F2AEDC3C74B241C52875097355BC32A538C7A7C4CFF3F5425E7B3F5E6F96DF0C2B70F29D3F21E722354B30650171BFDFBF2B49921B8F240070CEE34EA7F3F276BB7D3D44FB7DAA2A852150D24C212041F58CA1C6486113D42DB655EBF2A9A93A6A08E07B8F753607A1FC16BE50C365DCBE346DD59A02AC80C8D002AEEF743A7771CEE323070051146DF67ABD572649D2C54A7BEB6A6851257F1EA28CFB4662F9D473AA97A4F6CF5FA410C0F7FE29DEBF4AE311AAE0489D7750474A915A45686404BABD5EEF5BA228DA386A00C0D3347D61A7D3B9C5EEC083E5F44385BC79F4B6F7DD3F8B6104B227D2F353876A84BE5E68E7DE3A3E631D7301A95B8DAB8040A88088D50ED8DDA73B9DCE2D699A7E13638C1F190090522EF77ABDBB5AADD63AA552CFD7138F82BA550A5942F2CA751AC62C747C1600A9F33175841DB3021DB56E83722EF89E27A4892B65F643794CABD55AEBF57A77ED574A705F002049925B3A9DCE9DA6F7B767DD857CB19493D4E55166DDC71EF2989094565511AD0E839FE773867CCEBABEDBD0C7F8B640539FAF4A1AD19A4ACD3B9DCE1D4992DC72240080731EB7DBED17A569FAC4D0821EEAC690D0F9763E5008F55655'
    $BinaryString &= '065AD4E595ABB4DEAACBE8ABF602ACF2DD54E9134815035DE704251CA06E00A31610A569FAA476BBFDA2FD1003E70E0052CA41B7DB7D711CC76D6AAB2C57AE1E4BDB503BD6508757867AAB7978E2595B6BCD11D4F7ED7D857EC7557EBFD0F30663A3AEB265970E60870B711CB7BBDDEE8BA59483430F00AD56EBCE344D6FA2F4BB0FC9DF8654B0CD63A805D66136B41B2EB442475A1D86E5FB4CA1DF1BF4FD87363C091185435AA9514302577D409AA637B55AAD3B0F350070CEDBED76FB7949926C62D57E14953FA4602744BDAFD323863EEF5134F2798143DD1A4968481372CE61E76CC80EC3694A70A3DD6E3F9773DE3EB4001045D1B176BBFDFC288AA2D0261C90F70EDD2EEAA3FAFBA992CFFBB929B3EB0EF23917EDFBA2A44CA90C31E49CA5960A475114B7DBED17445174ECD002409224B7A769FA647B5C36B5EA2D640E7D884015222051C3808332F283641275BD9F59C0C147FFAB0AB9A1CC20E49CF569036566204DD36B9224B9FD500200E73C4DD3F4D9711C6FBA3CBE0B1D7D681C82D0B31A6A9D86467DAEAAAFE99A5DB79FCFB11F9FB50A28CC024A21F52121456A102388E3F8449AA67770CED34307005114F5D334BD238AA2C865FCBE06901434AD4AED2151893A7D76DEB4963AE26AD6C72CDA6BCF13A0A163EB3E9F421C17B655B9B495288AE2344D9F1D4551FF3002C053D3343D65D27F4CD0F3EDC8AA'
    $BinaryString &= 'C3D8A8F3E366F56021C7871813A5D77D1DF47CBF5FDBF53DD4F11D57F99DEB3AD77C3B5131E1D00A034E4551F4D4C30600A2D56ADD1EC7F106B603CFBE0F42485FAEBECA0696AAB1B7FDB85063F21900369482FA3CD4635DF3EF0EE2B5AB7E6FAEDF22747210E55CA97A0E52DACB616DD239E72C8EE38D56AB75FBBC6C753E4F2A44BFD56A3D2D8AA2AEAB628A6AC4FBA126BBF2FB9888134A87678DC529E3AAAA18D022BD7695EF943A6874DEA11BF59CA514139597288ABAAD56EB694288FEA10180288A365BADD62D524AEECBEB5394558AF1D7599DE6F34E21A3A3AB8A6994D9F321064BA5DAD4B9F7A1AF5D97F0887DD7A1BFD9BCCE9FAA7B3FB0BA0129256FB55AB74451B4796800208EE31B9224D9A4EED4A3EEABAF434CC2064286AACBB3D061CA0CBA2A9E783F4380D0D7AEEB33FB584095DF34545B080917ABEE38356D274992CD388E6F3C2C0020E338BE398AA255576C5F653B685DC65FE76367A5C355E3E190D7AD4AC5E71502CCE333CFFB779E573860DB03040C5114AD4E01402E3C004829FBAD56EB6629651B9BE852E50BAC3A4D163B59CAE732E7BA8752D37951712A0DF71922F6DA1466E003825000AAEB33878404BE55FEF698C05B5548C4CE35EA396FB3002965BBD56A3D454AD95B780010420C9224B921B405F3ACDE9E72B26079E02AD4141B2F4DF5C2141AEE320ACAB86B1703A002828B2A5300'
    $BinaryString &= 'C80542BEB0C0077E3E46E07BFE903A903A8455CA9E02EC9824496E10420C161E00A2287A521445C75D935CE649F3670109AA41F8C4A95063A4B20E9FD1873080D0FF61DF910F8066153E7D404BD576EA4A75EE47780089E65114AD4751F4E4C30000A7A2285A73CD81AFF34BAB420F437E6C9707AE1A0BFB8438CCB0B1FF553158CA670B0D2928EF3D840550C31FCA67DBCF73A78EF3DC2E168AA2682D8AA2538B0E00491CC7D74829FBBE74DEBC3C7E9558914ABDA921012516F695CE5651C55DEC033370DFFBF23D6708E051749AAAE2E33C7ECB7909842E11100290693AB01FC7F129C65852ABC3AE39FEEFC4717C4A08213143AF23DEAFE229282724141B42026479DBF51712844C0DC2954A74691590E084BD661541AA6A2A30242CF1018F8F5950C120F477A7388DBAC3056ADD8010228AE3F81A2144472935595400684751F4446A49EF2C5EBDAA4A4EA589E649681B2EF6DC2E43840CDAF739EDC741068F29D02EF0A9AA41CC2A4452BF6F8A06E00A81A819882A422735D49855288404F3288A9E2884682BA52E2D240048291F1F45D1EA3C3AF15489174329AA6DF43E610F4B1F5535446CC312F47C54E631EB76E659409652FC43D12C42043E9748B99FE750DD2261A90348291F9FE7F9438B0A009B52CA151BB9EA8CE567090128229A1D0AD87F212640A1E02186A8B5664208345D89B187F2FB365F5329452ABA'
    $BinaryString &= 'C20CCB06308A280A19729973A70A811410A822145245CC3A438059D880694352CA1529E5C945D500441445278510BDFDA8DC0B0D01A8E000C5FBA621D8D729CA0380E200002000494441549EDF45D95D1EDF6621E6C98001930F9CCA65174061EFC53C8E229A85A62B5DDE393404A088A021E7C22C2140DDC2E1342BD09B8E0DE38C31BD5000C0398FA4942784106915FA4FDDE441A56F941FCE3464EC82197E0805C762FFD23B9B291FFB3D964C003372173840E084852F76559CEF3BA6FE26B6E7375F8F62A4216220152C7C0264E8B914FA9D84342FB134B696947283731E6BAD278B0600B194F204E73C9907FDF7558C55C9415335078C09D8277A59F3E032FEF2B1F68EC8120C4CEA5F52F8F23E9FA1436100163E609FDF0C1928E93CD7490F197F69F8F673D84CC3F5DB9AE051F76F5DA5162324A3304B18C0394FA494C71719008E87187DD51D6014E5375470823CBFCBC8300A6E0241791D327E97E25F454780B213944C03858D615A402845F6650620103041C4060F6AA8E7FBAD43CE9559C380597A2D4EEB0136EA9C18542700B48410AB5400A0082BB3FC60555463FBA2946252CAC718BEE9956DEFEF020ACCF82101B08EEDCFBE7A8390DF29644F82CB73FB7E574873805EDB66012638408C23B412912A1E869EAFB388895386B8CA396F2D2200AC082196AA7AFAD0FDDF54959FE279B01FD8A6E090A1DB460F'
    $BinaryString &= '51FF903E0275F53DA86BD59106F4A5E32834DE27E241C000010E35BD4CDDDB41610055CE79ECF984104B9CF315C6D899450380252144971A5353BEA42AE20D764C19DBDAAF5FDE6F0A722EF51F3BB1A178DDF4E4E5EDAAC67E50C050754B72486C0E312F481FF0B1089F23B041C2CE8440C0E13AA742818D1ADABA8E1142B439E7B5B507AB0D0084105DCE7952E5E4A2C48C94B80FFB9F49E56DC5DBA4E9D0FD50B6C0172743622126CC2D9AC7DF4F00A01E1FAAECBB4210C8B8A1FBED2C45C8795725840A0CB57B0B07009CF3A590010621B97A2ACA5390B70403E871988777A9FFB374C5A912CF57D501EAC8C6CC1A0284A8F6B35C426375286B41150FA9BB245D0E2E50084C39E74B8BC8003A3603A0EEABAFDAC0826290765A8B92FB37C3018AE7AF0200E66BECE768EF450280FDB8F85287AEDF17620BBECF1AD26085A22300D9A24408D15944069072CE651591858AA436AD375579D358CDDBD8FDAED783BC7DDD0050D573FBD27B58DAD04E5986640E28625528AD3F2820F09D6710F577651DA0C78430D750919A732EEB1C15562700B4A9CF17F20554A9DC3211DCE5FD43696A15003085415B0474A5016D83C4F62398F7B98A9042F406A84F621D1900EA7E80F2B890145E9DC0003187104D242424AD100644758E0CAF0B004A541255E93F3555632BEDB3E46643D34FB64143A1869D050831BEF231267051F61440'
    $BinaryString &= 'ECC035CD88D2F7AEEE5460080840BF3985CA57050C6A0E9F726E50CFE319C20061D89A5A1400D0D3E7E25401CFF5C1A1DCBB0F65ED745E1D2781EB7D40C8ED2B14A2A4FAECDD7B3EAF3F4BB8308B0E40A1B5B3840236AD860A7D288FAD934598E9430A3B856A12AA8601C6FF39ABB13D789DBB013535CF19221AD906041926E4E9427F58D373DBA183EB3D4300057D0F264370796F9FF1FB0C9C0A0E072D02BA803CD420AB1C5B0518ECEFC204251BA0A07D10D42229EAEFB16800E035429F70E42B11B5A9778876E02A36318D1FAA0084DE0364F8E67D98D7B7D57F2C13E0F3EAD47E0514EA4F39D1426B00EA14017D1E9DF27F8CE19597AA60800986A129C48012775E32ED4502006EFE0D694649514CF75345B6BD7FF963BAE83F66F854EAEFA3EE542F4ED5002030A8B299A58A065097F1FB8C1632ECFD101543320E940229E07BD7ACA65E00756B00D3F7E957567DE2DFBC8CDEA70F944542A6A787E2FAF23A85FEFBA87F6818501A2FB55B11E6F9ABB4CCAE92C60D39F1AB182B1497437A0135B3503748F8D86A28835AD81020A4C0078ABDA90CC175F260066ED26E170840D4DF27FE416000193DD4FCC3367A5718400D090E2204081502B1DF13333ECC93871AB38F9A53B20DAED7AC9259C2EA0E420B86162104509402119B16DBFF338D846AE450519059D76FFEB8E6F65E288300193FF41EEDB000A2FC580D80AF'
    $BinaryString &= '0AD0D5F8832A00FA4200BB50880A08FB1502601E1B8BF1EB008FF2F56C36E162195470B0F506AC6E853809A958340028B4D623AD75411DC28079D65051CF06842A21846DAC3ECA6F8705AEB81FDB854809017C7D00670901420DBF8A1058A716801920A4BEFB8C35B44780AB3EA16A0601CA18B86CC6B8AFD05A8FEAA801A83B04D8D35A17D08784D277BE021FEC3E57ADB74DF131B6602FD7EB622CC09701A0840036FDF7A5007D2DC131C3F7CD2308A1FF21C61F1A06847AF190FB5CCCC1950DA0804EA8A600150C41FA05624725002C9C0630D25AE7AE3C3B040494BCB02BAEAFFA7817ED848CDFA6FE54EFEF4B0586D0FF9089441803A8A308A82A0854F1FE941A7CF3AFEFF83AEA0CA84C20A47721C664804BA1B5DE5B4400D8D35A4FAA0C790C29CEC1BC3C757310C5F07D5580B6F19B1EDFF6FE98F887197D55FA5F4504F4DD3FEF3A809062205F3A90BA59870A0421C0E302215FE6816223161B186BAD870B07004AA9ED290B7814A58244376A5C6FC7CF21DE1E02016C514200D71E00AC06C01506F8A8BF69D4F698281F03B08DDA27F6559D845385FECF830184A4067D21008545846805D48C854B9BB2DED34829B5BD880C601B1A5A1812CF63693797D20F29FEB6D1CF1A02F86A0028222094FA73EDFAF3B10588F6635E7F160DA0EADE76A864DA6724BE9460080BC0EE0B0D017C59070AD898E742957D1096A3'
    $BinaryString &= '1D6BAD77161200B4D6BB98B8E7437E7B375DD54D3DBE346195102094FADB9FC5BCCF34545B0B308B8FEC9E0690B153637E6C3A900B00A0CC45C8709059770462A9C0D050A0AE10609622217BCF80EF79301D607AFF506B7D791143804B45516C57E9CB8EEDE3AFEAFD5DF7F94200130CECEBF6565D1F03288AE2316CC1E5D5A1FE05A6C163FFC3947E6CE72025EEC786A4FA8ABF7C956E21455DAEE21C976787E2718CDA534300D77D21A9C72AF6605E2F8A626B51A7038F9552E74368964BE8A3C4F53EEF6F02810F546C30300DDE362A9BA5D8866A7B69DB7343F1BF9D1AB4EFB34784B96AFCB1B982BE981F3AC6D7B8C2D58ACDA4BE50D117B52A2F745390CF3031C0F0097AA1D58754200909479452171863E3450C01B2A228CE4C3703F0903CA9690C1451CFB5F71FBB0F4A3B62D4DFF6FABEDD80AEFA7FFBBD6271BFDD9198737E8541946C0203188AC28F4D09C68CD9372390DA861BEBCD1F520E3CABD151BC78D510C0E7FD7DE263689FC2A98D658B1802644AA9B35AEB4C6B9DCCBAA9826AFC581AD0F46A76B8607B7A3B1CC0C200480BF0C5FDE66D7B7E1F5414647A7C338CC00C1B6A6D6EFE0F9AF547A90CC442005756C67E1E8C05F8F2DDE6F176284035348CFE6354DFBE0F3A3E9469D4B5C1C878FC4429751612DB172104C88AA2383D4D05262139FE50E377A50DA1D81F7A2D48F137F70350B500ECBAF95A'
    $BinaryString &= 'B67660170541E181EDFDAB8400B69068BF262504B053B150D96A48081052148455DC518440EC7A48668012F7D7B97D99508E3C2A8AE20C632C5F4400D045519C2E8A62278AA2A52AC66F6B00212100C4005C2220A4F843D57E902E501AA40B084C03766D09C64A7E6D10B0D98BFD9EEDE7C03A23BB180036221CDACF60EFA0B419964BF1F7D50560BBF87C2220740C1602F8044157A8404D4186800D254D5814C54E5114DF600BD80FA0FC00DF288A624B6B7D9292E283C4B4AA2180AFF8C7B527C08CC36D20304F609BCEFB8CDF0E01CC38BE3C164AF5419584762524E465ED4A49C85829E5C0D0E3EDEFD697A2B541C7B5D30D4A77858600544A4E291F76C5E994E70C15037DB70D00D8524A3D54A7CDD60D007FAB943A1F52FF5C55FCB30DD78C7921A3B7190066F4E5896F7A79AC5DB4CBF86D8F6BC7F2B6B007D508981EDFF6ACE6FBC2147E2876A70A81188860BBD55CA3BD7D541FA2F850B6800202BE621ECA5E02173B70690A55C5C08012E98795527FB7C800B05714C5DFCC1AFB8728FF3EB0B08DDEA4F545515C295536E97D393ACC3CF9A49457FE878500A6F197F797F7D95EDCD500C405062670D9E3C6A1F2616A0A100202A839AA1D0AF886AD5489FD7DA9408CEA97A05AFEB50DCF771F26148678F6AA210005D08AA2F8BA526A6F6101406B3DCAF3FCC1E9AEC0C8F692D4D89F3AF9078A3DEDAA3A28F6B745'
    $BinaryString &= 'ADD2C0CBFB6C03B7697DF978F338DBF8CDD7721502D9797FFB3636B9D804071B08A825BD1410C0D27D98E14361003478D3B721CC35E6DB040157BD808BE697864FDD1E8CFDAFEECD4876D8631C974F6D6BA101609CE7F9FDD38D410328C78B15C350EBFE299D7FA03E7ED08F63F6FF330D092A002A9FA764013E011213086DEF6EDEB6853B6C460054EC038120040C15581DA81D546901167ABF0B04100FF928F6E20382F23A04062182DE2C1D845CA063D9CE4E9EE7F76BAD270B0B0053EFF960511417A2281A54D908641B0396E387627F9B0D601B816CBA0F55FE419B80ECD72D81C0BC0EBD7FAC0A102AF32D9982C9066CDA6DB719333FA36DF058CA0F6B0FE66301102060DF3D26EAF90A838874D82C8E418B895CE9402C2C808CB4280A27A0542D47A6860245519C2F8AE2C1BAED751E00F0D53CCFCF2649722D75534F48FACF67FC50559FFD7A25B5B6293496F7B735004C99B7A9BBADE49BA5C4D0965FFBB3D8EFD5D6046C960231016C379F6DF0AE4A41AAE77789A5214D415D949ECA024CAFEE12EDAA6E0D0E0181AABB12CD63F23C3F5B14C5D7161E00945217F33CBF4F6BFD5CD71E7B2C0470D17FC8F86DB1CA8CCFB15E0498360115FF4025BD3EEF6F7B46DBBB9BC2A09DFAB337FAD8190FBB0AD00600EC7A68BCEF0200CA7E01D7986D57DB6EAAA1FB5800450BA07A66084C7CF506D40D4294BD095300F8D2'
    $BinaryString &= '741FC0C203C06E9EE75F504A8D84102925ED87D17F5BF5C68CDF34D0F244C0AAF24CFAEF2AFD855478A8C4D67EBF3618D8854576918F0D1A361BB1A9BFAB051875EFBF8B1950C20557F92F24BC9A8CC5FC0D296ABFCBE8439B81605EDB1506B88EF3C5FE9868E80B3780FB47799EDFAB94DA597800608CE5799EDF5B14C57929E5E342E27E97E28FD17ECCEBBB3401C8D821E32BF3F4767860D3792CF6B705444C60C3AAF8ECF767BFB6FD99A0B4A7AFE4771E00E00A11309A8FD58950CB85293BFE5CEA3DD58BBBD80065FB7195E62445519CCFF3FC8BACC676E0F3040096E7F97D799E3F14C7F1E3A83B0021AF8FFD0F336E282F6F9F64A6E1DB1ED40C05CC8C80E9796CA337DF2FA6F6BBC21E3BFE2F01CCD50A6CD10100CB0898C54F75350AC5547D281B00191FE4D54BC1CF65DCE63194CD43D44D48D025CFF36FE4797EDF3C6C752E00A0947A28CFF3CF2BA59EE5320A6A58E0DAF86383827902D89987F2C7B673FE663C5F2E934960ACC32ECEA1AAFDD8FD501310DBC0EB0000E87F215369AB32006AFD4048B75DDBD87DC741C66F1E838501B6E7F73105CA67A068024A29360DA94F1F2600D8CEB2ECAFB4D63B4AA99E2FE6A7A400A13CB79D0273C5FF98D887D5D1FBBA0151D37D1800626940BB3CD8FC8C5046A02E1190521E4C1504B166AED452E0AAADB9A8025FC8661F4C07A0E4F2A99902CFE7D9C9B2ECB375'
    $BinaryString &= '36029D3B0030C65496659FCEF3FCB410E23AAAE1DB1ED78EFD5D053F66610FD6E9C7160AED92E0D2F820EF0F1917B48780EAFD21AF6E4F1F8284C7902C000602D45163BE8A42571600EB02048980B3020046FD5DF1BBCD08CCDBBE3E001008F87481AA1B80F23C3F9D65D967E611FFCF13005851149FCFB2EC81388EAF0B29F7F5D5F243621F26EA61B4D73CD6A6F7F6F3D805375896023376D373FBBC3F9493877400A810C816317D2C002B98F20180AF10081AD64251F8311170964941D4F90194C6213E351F12076D9D20645B72793BCBB2078AA2F8EB79D9E9DC004029B59DE7F9279552DFCC398F5DCA3E160F6371BF69FC76FE1A12076D16609FE0A6D16045383E0130B4E2CF4CEB61FD00CCF7600A96D076603B84B09F2F84E6DBB501B6C1BBE63FDA3B00B14220280D88650CAA0EEDC05880AD05F8BC36F43F482F80AA05297B0D1C7A409EE7F93DF348FFCD1D00B4D6A32CCBEE298AE2B494F20994949F2FED07097E76B10FD693DDA6FCB6F7B373D52EBDC1344ADB8821E38726FFF880C4D70B901AFB878E06A7507DAA00E86B025AB51620B4DACE0E0DECE2213B04302F90178784654A3722CAAC03334D5A14C5E92CCB3E59E724A07D0300C618CBB2EC33799E7F358AA22740F13BD6E8028B63ED63A00A3D1B146C6377010A741D0B2D30A3B43DBB5DF4E3327ED3F0ED98DCA6FB904008797D2C7548317EDBFB'
    $BinaryString &= 'DBBB10A196E1D0E6A49001212EC0F0F503F06900D4B4A269FC3E63A730084A5A117A0F799E3F9865D95FCED346259BEF9A4829AF4992E4394208E96A9F6D1B962FDD05D15B48C8824E7A17C08428E8D85E7B0A9DB6BDB36D74D89659979161EF832ABAF976DF41C60955F561860D95046331B0AFACD7B5AD77D6EE40AEF000AB1B703DBE4AE190522A1B0E87EF9C4C26EF658C6587150072CE79278EE3174929977DF96D080CAA183F5670E3CB89BB8EA36CA9855A6161C7D9C6EF8AAFEDD7C77AEF61B5F6D07D218D38ED9E7B904153FAFCBB26E5B83CB5458B672A03C6F2F990F7C740C80702D4C6A4AEFBB22CFBC67038FCAF799E7FFE303300C618BB1445D1374551742DB5C88552E082ED93AF92FBA6F6CAF3E5C24380C2367E8C4EFB0674602C0002019B3E4305343648411ED9367A889ABB0C1103AC10C30ED1026CF12EA42518769FAF82902AFA61F78DC7E34F8E46A35F2EC7ED1D66009848294F2649F2BC321B1052D5E60A0FA84AB7EB7F90CA8D192325A71E0222589B2D97B8061910E4E53163B7537AD8B82F6C341764F41810B8420DECFD85000064CCAE58DD56EE31AF4DCD06F834010C80081D8B86C3E1F01D93C9E4CF1863EAB00380E29CB3388E5F248438364BFC8F095C7555BC615E194A83B98C9EB2D9C50E19A825B5180B7081804BA177A5DE5CC68FB5F9C23401ECB929C6E7D21A28FDFEA0949D8B'
    $BinaryString &= '2584D402D8F13FD66390A20318C53FF70F87C35F298AE2ABF336CEFD0000A6B5BE2C84B8358EE3DB7CF13EA6B463B729829D8FA653C5C390345968AA0CD210A0D6DA3E4FEB6202BEF81FD301A0BEFB2EEFEF02A52A2DB67CEDBA295D827D5A401510F06D140A0D03A6173D1C0EFFF7783C7E87D67A745400602C84E8C471FC422144D797D7F6E5D5AB14B9F8E83B65330CE578C8BBDB9E1F1BBDED1ABEE19BB88B8100347999A201D8DE19335E4C038080C7A5154039788825F82AFE202640A9E0C3B4825016406D40E260320F0F87C3FF9C65D9A7F6C33623B63F4B6759F6E759967D5E4AF9625703504A818B99EBC7E2582CEF8F550862A2A05D2568B7F9368FB72B07212661572D62397BDF3C401723B2EB1BB0F783F5288080C99572A44C12F6A522A1635CE102045E58C51F24D6D905405085A00B105C350214D680015A96655FC8B2ECCF598DD37F0E9C014CD74808B11EC7F11531907242FBE27EACD2CD35DDD697EAF3C5FF2E03A24CCD750DD87065045CA9BFD02A3C6A4F7E0A6DC73E13A5973F75E79C6F5FBFAF81075697EF9A241C3A5CD40E2B203DC0D3977077381CFE5A96651F98B7F87710005030C686D3306003ABA8A318BF4DA3A93BDB5C94DB574A4BD502A03A004C70F3A9FE55FAEF612100B5F126043094102074534E685C8F89862E26E0EB0F600E13F101806B80884B5BF0150999973CCFBF301C0E'
    $BinaryString &= '7FB1288ABFDB2FA3DC4F00605AEB2D21C4E3E238BE83732EA9F17F15E3774DC6B11F4FF1EE21B97F57FC4F4DFB519B66F840C00528D888AF2A83397D75EDBE5C3F961170650B6C91D2370D182AF4318DD4A7E8538B7C3081D153A23C190E87BF351E8FFF609E957F070A008CB18C739E4551F43C21C43A64F83E437719BF1DB7BB8C1F1B9E611F03010526E2F9EA0630A00949F961C6EB8BAD67C90250FBDA41DE38A4E0C6B507805A9B605FB7C300F3F1BEA220DF18311F08841421E579FEE5D168F44B45517C653F0D72BF018069AD2F0921AE89E3F8998C31E12A047229FD2E55DFE7FD5DC542B6F1438003C5E9AEE9392EEF4B29FEF1D5F987787F57AAAC4A0CEFCBF953CA7C7D3DF47C9B765CEF2DA409681516E0D3067C25C2D3E38AD168F4CEF178FCDB5AEBF151078031636C1245D1F385106BD442A0901C3D54FFEF2BBA71C5F7D8861FA8ED1556EDE72BFEA1EA062E63C55271A1022075269F4B900B31785F08E0120E438C3C447C0CE91C4CC9F9BB749169E1CFBFCFF3FCDEFDB6C7881DC0CAF3FC5393C9E4FD52CA534A29890DF274B5037319BFD91403D20F6C2031270099066A371029EF330781423DFFCC411F8F52418D8EB894166258EA0FCA98F80AA37CA1930D783E7602015DA858E9AB92A48C0883C000D30DA8F5019890073514A1029583D11493C9E4FD799E7FEA206C511EC48B6AADC75AEB511CC7'
    $BinaryString &= 'CF15421CC30C02AB00A414FC60EDC45C2733A433F834006A89AD4BE1F7C5FABE2C01D590B0F733CBC86A42534B52479FD03E7A1813C08A8A308611CA02A8054294412353A7F0E5BDBDBDB7174571EF41D8E2813080290BB8673299FC8910E25A2144644FE985043D9FF19BC33CEAF2FEE67C01FBBAD98FD0F4FA5063539311601EDF0498905160BEE2A3AA7B2528D98E905425F536643858BA8F2206D6CD027C65C2500310FBF1D3F7964D26933F3928EF7F600C60BA265AEBED288AEE14429CC03CB14DAD29EABF2B9B80C5D9907151BCBFAF5F1EA548C8976EAC4AAF5D0CA00ACDA67AB6908E3C14AF49DD5CE3CA0450BBF8F8BCBE8B05B8E60A40EF759AF77F5B5114F71F9411460708002CCFF3CF4C2693774B29AF154274A106A0768F7E4C03C06607D86081B5F8B2BD3FE4F1EDEBF6086FF3B5ED5E8190F7A7340EA5EA0107C500A8C0140A4EAE4E43BEBD041416E0327A7BC230D45BB06AA8627C86DDC964F2AE3CCF3F73903678900C8031C672ADF5B9288AEE10423C01A2EBD4BEF65806C0366AAAF8159AFFF765135C6DC2A8B5F5AEFF1F1403A054DD8594C3521986CBB352B4001723C08CDF950970A50BA1D83FCFF37B46A3D1CF2BA51EBA9A018029A52E72CEA3288A9EC339EF506A015C2A3694C7871E871919567054A572D027E2F904405F1C5D35CEAE32838F5AE013DA8F2F64EFBCAFF577280BA0A4FBEC'
    $BinaryString &= '2222EA70506C67E2F4BD3C3C1A8DFEC36432793FDBA79AFF85058047BE0FF5A094F22629E55318631C33584AFE1F6303584EBF8AF2EF031117CB08F5E621C65F97E1CFC2005C157E55B6CB86680DA12CC0351F1062011411D03739486BADB22CFB5FA3D1E8EDF36EF77558008069AD875AEB9D288AEEE09C1F73517B1F2084787F7BE34E1DDEDF45B95D6940DFF3F8984168AE3DD4E8A97DF74243839089BA146009610194A21E33F6A7F60E70A5478BA2B86F381CFEBBA2283EB708B6B71000303D394F73CE0751143D8B319640864B6DDB8D95ECFAC205E87F54EF8F796C574F3E4A4E7F5E59807932008A8AEF8BFF43076E5258809D2EF4D17AF3989072624715E0EE6834FAD5C964F23B6C1F37FC1C0A00608C655AEBBF8DA2E83621C429DF400BDB785D7BF8A13A7D4C2BC03AF7F8BC3FB5ACD89543AF0A02140650653350550630EB745C6A5BAF2A4541A11B94EC2A407BA30F366A0C11FE3E3C1A8D7E6E5EA3BE0F3B0030ADF525ADF5288AA26773CE5720AF0EED1AA434F970ED0B803A08558DFD7D990097C7AF5207306F1610DA8A9B220052EBF4A9E3BFABB20057DC6EE7F4A91D89A1CF3D7DED0787C3E1CFE779FE11B64FDD7E0E1D0030C6B452EAEB42888194F2198CB1D827F4D94540A68163DB71A154A1CBFB538C9DE27D5DD9802A0C20241340DDF5170A04214659B5F9A78F41F800A50A0B7031012C2DE8'
    $BinaryString &= 'F80EF72693C9AF8FC7E3FFC6181B2D92C12D1A0030C6D85829F53529E5538510D732C6B88FD6636942CC80B1D87F16EF4F9D0614524E5B97F1EF571A90BA232F440CA45404FAA8B72F1D08F50B08193E8ADD9E7EEF3ACFF30F8E46A39F39E89CFF6101803214B81045D133EDAC40D58D42AEFDFE3EEFEF2BFA09C90284160055B9EF2045C02AA93FD7F6626A6F00DF7387B0004A7A93F2DD4C5FF3BEE170F8D63CCF3FB188B6B690003005CEBF638C2551143D8B73DEA66602206DC0D71B802AFA51BAF550E27FDF7D3EC33D4C22A0AF4496B20B305410A4B000DFD04F8815B8660920DFF5C5F178FCCB5996FDEEA2A8FE870500CAACC0BD4288C70B216EC5DE2B65F8A70B1C28B49FE2FD7D06EB028C1031EF308980D4DEFCBE0A414AA38D5016608703D469C3585F00E037CFB22C7BE76432799B52EAF2A21AD92203405920F47529E5AD4288278518B52BEFEFCBF5D7E9FDA9625FDD1980BAE87FD5419CD4C7FA4A83E7CD025CB304A9D38521C02F8AE2A3A3D1E8A78AA27860916D6CA10160FA439DD55A9F8FA2E8E9BE2AC11020A080401DDE3FB4F1C7BC3200A1801012EFCE9209F001471D2C80D22FC0270242FBF91D3B19EF1D8D466FCDF37CDF067C1C590098EA015FE39C6B21C4ED8CB11E66C8AE70C035E46316EFEF0B177C543EA48C773F3300756502425382BE0D4055320221FD027C39FEF2FBC4AE6BADCF4C'
    $BinaryString &= '26935FCCB2EC9D8B1AF71F3600608CB15C29751FE7BC2FA5BC8D19A5C22E2D803AD29B1A2A500A7E28064C65153E316F96D8DFFE7F685BB0AA4A7AD5A21EEAD8702CC6B7BD3D35F687C203EC37668C6D6759F66B93C9E43F69AD770E83611D1600605AEB91D6FA739CF3C74B296F76BD77AA2048A915F08976A11E9BDAD7AFAA08781021C02CBB02A9ADBA421A7060F13FA53E21A497A1751E645996FDFE6432F929A5D4F9C36257870600A627F0AE52EA7E21C4F59CF353659110A4DE5799095887E7F7A9FD2102DE2C22E0BC42805944C0AA1581BECD465598003656CC373A1C19C1AE8AA2F8B3F178FC6F175DF43BD40030FDC1CE6AADBF2684B85908F1045FF18FB951880A0898A18778FE59E37F4A38503504C0FE576757A059CA81A98D40A84CC0E7E121FA0F0D3EC1C4DDA2283E3E1E8FFF7551149F3A6CF674E800608ABE7FCB187B288AA25B38E71B94541C35248042009B2560C64DB91F33F2909A82791601CD734760087084540AFA5A8FD92C609636E8E6657A8E7C763C1EBF25CFF30F2DBAE27F6400609A19F8AAD6FA6121C45339E7EB148AEE12FB7C62DC2C461FDAD4A36AFC5F7706601EC540BE987D16A3A7CE24B4A9BFA7838FEBB7F8C26432796B9EE7EF618CE587D1900E2B004C415D7D853176514AF914BB46C0D5B21B9BE507DD86A6FC52A6E6503A01CD33FE3F881060161DC0D71988A203B85A7F'
    $BinaryString &= '61A3CE5CAF0DA5F98CDFEEBEC964F2B35996FD81D67A72588DE8300300638C154AA9FB18633B51143D8531B6EADB9507A008BA6D18A3FE545A4FA1EE94E7A8A21DCC633760D58AC0D0E11C4EB9076300000A384944415494EEBAA1138BA078DE2CE7A57C1FC67970FF6432795B9665BFBBDFC33C1B00806B04BEA4B5DE9152DEC4185B7529FC5431D027F8F90C3E44440C0181C31002840EEAA40E05A1A4063106017D17D828725BE5B77ECBAF4C2693B76759F6DB5AEBE161379EA300008C319629A5BEC818DB1242DCC4395F836A027C068A7978AA77A0CE0598C57357AD03A082425D9980506A1FBA17C057264C51F129138BADDFED4B5996BD2DCBB2FFA9B5DE3B0A86735400C00481F35326B04E69D281EDFE731D0BED2508290CC2420DAAD1871AFFBC428059A93F9535604CA1F4D476AC4E317CD7B1F6F73BFDBDBF9865D9CF6659F6CEA3E0F9AF384876C416E73C8DE3F8DBE338FE09CEF96D949983E6FDE6482FFBF8B2ED986FC8A76FE457D571E036A3F1F546A83A12CC952275E92454013304C0A8694DD39821210F020F0A932B537D5996FD5C96657FA4B51E1D257B91ECE8ADBC288A2F33C61E10429C12423C1E02BA90EEBD5028E14A15529EAF4EC3A96A34B3D400D45113109273A76C05C6147EEA2E3E2003A494521FCFB2EC27B32CFB53C6D8E4C8394C7674978CA2E8794992BC8973FE12C6580C0D0081'
    $BinaryString &= '3CB7C9066C66607A066CE027E4E5ED63A1D79FD5F3CF8305CCD21A2D04C8ECFB7CD41C1A276EBE3656B64B09AFA6DF59A6B5FEBF93C9E467A69D7CD5513492A30C008FA08094B7C671FC0629E57732C67A9047F701C1F4791E35689442EFA1E731BB17579D06EC33FC901E893E4654379BF1D546D839772AFD37274BDB937C7D860F18FF7651147F9465D9DB1665824F0300332C21C4669224FF444AF9F718631BD0FE009711631E5F6BCDA494A841632C605EC6EF9A985C97F7AF8301848080CBE8197B64728F2DC4523C3E54FA3DFD9ECE1445F1DF2793C92F2ED2008F060066170757E2387E5D14453FCC18BB09AAF8838CD136608801D814DF068CBA8C3FC4EBD7250052BCFF2CF4DF07029041634CA164009E3DFB601A78FA7DDD9BE7F97FC9B2EC1D5AEB4B57855DB0AB6871CE5329E52BE338FEE79CF3E798BA00160E60C65982800908E66DCCD06D20A862FC94FBE7C500282DCEAA6A00B6E143B1BEE9EDCDDB58E8E07A2D2BDEFF789665BF5014C57B8F9AD2DF0080151148296F8BE3F8478410DFC9181BB82604FBC20017F5871EEF621A3EC33E4C0C8002083E2660CF7CA4345381E83FD6027EFA1D5D544AFD619665BF5214C5678FAAD8D700C0637581B5288A7E208AA27FC018BBD1410BD1BF36C5771D1F42F7A92040D501E6C50028E5CE3EAFEF0B0BB063ED1081C23A80EFF1DE3CCF7F33CFF35F3F4C5D7C'
    $BinaryString &= '1A00A82F24684B295F1AC7F18F32C65EC018EB406CC0E581A1D8DF0E0DECB0007A8EF2187B5E81CBB3436CC5FC1F755E820F047CE3D37D9D98EC2E4B50AC6E3FDEA6F7100B808C1F0313EBFB1C32C63E9C65D97F2C8AE28347A5ACB70180EA6CE0BA388E7F5008F1DD8CB1531436406106182850D80536C0D417264040601B01C5EB63F31529F312EDFB423A2D87183B655C3B00E00F2AA57E2FCBB25F9B6E27BFAA976CCC9F31ADF505A5D42719635FE39C0F38E72738E7094504C34EC8D2C3416062D7A1437FB1931F32044C11B7E3E5AAFB0220451EEBB7070972F6FE7CD75F684390CBF85D466F8567BB5AEB0F1745F1F35996FDA6D6FAA1E6CC6F180070AE8853711C7FBF10E2B58CB11BB4D6BC8A3EE062002E26607A723324B0454568B4D92C9E7F1626600B75F675D3AB63466B86051803A812E773CE3563ECBEA9D77F8752EA7E76085B773500B0BFDA405708F182288A5E2F847889D6DAB9B3905AAC630B7C101098F7D9C64D0101ECB543FB26BA46AC8718BF9DE2B39FD706079FE1533CBE61FCE794521FCCF3FC3794527FA1B5DE6DCEEE060042E8C03129E56BA494DFC7187B862D12BA0C0E13112191CF347A080020A3348FB701C8F7BE4218808B0D98AF0D19B77DDD3C06F3F4BE56ECAEF76500EC1E63EC2F8BA2F81F4551BC5B29F5707336370050754552CAEB8510DF2DA5BC9B3176B3D63AA2308210F1'
    $BinaryString &= '0EAA1B703103FB7FD07363F4DFD7DECCF578C8F8218D030303CCC87DF13DD1E3678CB17B8BA2789752EA5D45517C89315634A770030075AC8E94F2E952CAEF1242BC8A3176BDD65A52BA0B510B78B0222408186C40808EF1010135FEB7FF67EB0D765F455F38E04B1BFA0C1E30FC8231F665A5D49F1645F1074551FC257B24D5D7AC06006AD707FA52CA674B295FC3397F99D6FA5AADB5B4E3571708B86E87C4F9D01CC4D0612794F7EA0300BB76C2A70FF80C9FE2EDA7D70BCEF9FD5AEB0F1445F1EEA2283E795866F2350070F88160594AF92C21C4AB39E72F678C9D628C25F6DE74EC24868A745C853C585D00D6E30033266A1D80EFB97CBA00761B33764A6B36A3147BC218BB5F6BFD01A5D41F1745718FD67AAB392B1B003808205812423C5D4AF9AD9CF3574C43836E498D291E2DF43E97E20FBD0EE535A8350FAE89499432612A2B81365071CE7719635FD65AFF9FA228DEA394FA8CD6FA7273163600B00840D0E19CDF24A57CB910E2958CB1A7B0471A93F2904EC4AE125ED77E7F4A9C0F897994FF61FA00B5AD5A8897B762FBF27D9D658C7D5129F59EA2283EA0B5BEF76A2EDF6D0060B1572C84382E8478B110E22ECEF99D8CB1276AADDB94C94221465F358EAFB27C861B02062E56625C868CB1AF69AD3FA9947A9F52EA434AA9B38CB1AC39C51A00382CAC60450871AB10E2859CF36F668CDDC0183BA9B58E4A'
    $BinaryString &= 'E3A03416F5D1F0BA8DBD0A2850BDBBFD9E2D512F638C9D668CDDABB5FE9052EAC34AA9CF5D2DCD391A0038BA2B1142AC70CEEF14423C8F73FE7CC6D8358CB1E35AEBA43426533308F5C2FB0D02B3BC176BEB74C6183BC3187B406BFD11A5D4C7B4D69F504A5D6247B00B6F03000D2B6873CE8F71CE6FE79CDF218478367B2483B0598A87BEF1E287E033A2D47E7A7B67EAE91F504ADDA3B5BE476BFD69ADF5C34769E8460300CDF2AD9473DE1742DCC2397F06E7FC699CF35B18639B8CB135AD75EA1B28BA88460F74411A31C6CE33C61ED25A7F5E6BFD59ADF56794527F3D55F1C7CDA9D000C0D5BE04E7BCCF39DFE09CDF2884B89931763363EC06CEF9FA1410FA8CB188BA236EDEC68EFCCDA6E9BAF35AEBB38CB1FB18635F980E70BD576B7D5A6BBDCDAEB2D65B0D00342B7449CE798F73BEC218BB4608718A737E8A31F664C6D8131963C71863CB8CB11E63AC3D05068E3184AABB01110FAFD92335F67B8CB11DC6D81663EC61C6D8D719630F6AAD1F504A3D388DEBB7A6D57979F3933600D0ACD95632AD37E832C64E72CE3739E79B8CB10DCEF971C6D8F129302C4D41A1C5184B196309632C628F348011C6EFCED9A3F7C6EBA967CEA77FC78CB1D1F4EF1E63ECF294CA9F9D7AF7335AEB6F4C9B6B7C436BBD3BCDCF37E25D0300CDDAC71571CE53C6583C058915C6589F73DE9F32840EE7BCCD18EB4C41415AE7809E'
    $BinaryString &= 'FECD4B639FB6C6DE658CED4C29FBF6341D37618C4DB4D613D6E4E41B0068D6A1FBBD7DBFB9664DC79C6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CD6A56B39AD5AC6635AB59CDDAFFF5FF0171D7EFA1DC5E7B9F0000000049454E44AE426082'
    Return Binary($BinaryString)
    EndFunc ;==>BinaryStringImage

    [/autoit]

    GDI+ Perfect Illusion Variante 3 (GDIp.au3 wird dazu benötigt!):

    Spoiler anzeigen
    [autoit]


    ;coded by UEZ 2011 Build 2011-06-04
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_UPX_Parameters=--ultra-brute --crp-ms=999999 --all-methods --all-filters
    #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
    #include <GUIConstantsEx.au3>
    #include <GDIp.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global Const $width = 800
    Global Const $width2 = $width / 2 - 100
    Global Const $height = 600
    Global Const $height2 = $height / 2 - 100
    Global Const $bs = 20
    Global Const $bs2 = $bs / 2
    Global Const $max_r = $height * 0.7

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGUI = GUICreate("GDI+ Perfect Illusion by UEZ 2011", $width, $height);, -1, -1, Default, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $screens = 8
    Global $screen_bitmap[$screens]
    Global $screen_context[$screens]
    Global Const $hBrush_bg = _GDIPlus_BrushCreateSolid(0xFF101020)
    Global Const $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $iInterpolationMode = 7
    Global $i, $j, $m, $r, $dir, $red, $green, $blue, $z = 0

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To $screens - 1
    $screen_bitmap[$i] = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic)
    $screen_context[$i] = _GDIPlus_ImageGetGraphicsContext($screen_bitmap[$i])
    _GDIPlus_GraphicsFillRect($screen_context[$i], 0, 0, $width, $height, $hBrush_bg)
    DllCall($ghGDIPDll, "uint", "GdipSetInterpolationMode", "handle", $screen_context[$i], "int", $iInterpolationMode)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $iColor1 = 0xFFFFFFFF
    Global $hPath, $hBrush, $aColor[2], $iColor2, $hBmp
    $aColor[0] = 1

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

    [/autoit] [autoit][/autoit] [autoit]

    $dir = 1
    $i = 0
    $j = 0.05
    $m = 0
    $r = 1

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $red = Hex(((Sin(1 * $z / 1) + 1) / 2) * 0xFF, 2)
    $green = Hex(((Sin(2 * $z / 1) + 1) / 2) * 0xFF, 2)
    $blue = Hex(((Sin(3 * $z / 1) + 1) / 2) * 0xFF, 2)
    $z += 0.01
    $hBmp = CreateGlowingBall($hGraphic, Min($r, 128), $iColor1, "0xB0" & $red & $green & $blue)
    _GDIPlus_GraphicsDrawImageRect($screen_context[$m], $hBmp, ($width2 - $bs2) - Cos(-$i) * $r, ($height2 - $bs2) - Sin(-$i) * $r, $r, $r)
    _GDIPlus_BitmapDispose($hBmp)
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $screen_bitmap[$m], 0, 0, $width, $height)
    $m = Mod($m + 1, $screens)
    $i += $j
    If $r > $max_r Or $r < 1 Then $dir *= -1
    $r += (0.075 + Sin($i / 3.5) ) * $dir
    Until Not Sleep(20)

    [/autoit] [autoit][/autoit] [autoit]

    Func CreateGlowingBall($hGraphics, $iLS, $iColor1 = 0xFFFFFFFF, $iColor2 = 0xFF00FF00) ; thanks to Eukalyptus for this function ;)
    Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iLS * 2, $iLS * 2, $hGraphics)
    Local $hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hContext, 2)

    [/autoit] [autoit][/autoit] [autoit]

    $hPath = _GDIPlus_PathCreate()
    _GDIPlus_PathAddEllipse($hPath, 0, 0, $iLS * 2, $iLS * 2)
    $hBrush = _GDIPlus_PathBrushCreateFromPath($hPath)
    _GDIPlus_PathBrushSetSigmaBlend($hBrush, 0.4, 0.45)
    _GDIPlus_PathBrushSetCenterColor($hBrush, $iColor2)
    Local $aColor[2] = [1, BitAND($iColor1, 0x00FFFFFF)]
    _GDIPlus_PathBrushSetSurroundColorsWithCount($hBrush, $aColor)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_GraphicsFillEllipse($hContext, 0, 0, $iLS * 2, $iLS * 2, $hBrush)
    _GDIPlus_BrushDispose($hBrush)

    [/autoit] [autoit][/autoit] [autoit]

    $hPath = _GDIPlus_PathCreate()
    _GDIPlus_PathAddEllipse($hPath, $iLS / 2, $iLS / 2, $iLS, $iLS)
    $hBrush = _GDIPlus_PathBrushCreateFromPath($hPath)
    _GDIPlus_PathBrushSetSigmaBlend($hBrush, 1, 0.95)
    _GDIPlus_PathBrushSetGammaCorrection($hBrush, True)
    _GDIPlus_PathBrushSetCenterPoint($hBrush, $iLS, $iLS)
    _GDIPlus_PathBrushSetCenterColor($hBrush, $iColor1)
    Local $aColor[2] = [1, $iColor2]
    _GDIPlus_PathBrushSetSurroundColorsWithCount($hBrush, $aColor)
    _GDIPlus_PathDispose($hPath)
    _GDIPlus_GraphicsFillEllipse($hContext, $iLS / 2, $iLS / 2, $iLS, $iLS, $hBrush)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hContext)

    [/autoit] [autoit][/autoit] [autoit]

    Return $hBitmap
    EndFunc ;==>CreateGlowingBall

    [/autoit] [autoit][/autoit] [autoit]

    Func Min($a, $b)
    If $a > $b Then Return $b
    Return $a
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_BrushDispose($hBrush_bg)
    For $i = 0 To $screens - 1
    _GDIPlus_BitmapDispose($screen_bitmap[$i])
    _GDIPlus_GraphicsDispose($screen_context[$i])
    Next
    _GDIPlus_GraphicsDispose($hGraphic)
    GUIDelete($hGUI)
    _GDIPlus_Shutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]


    Viel Spaß und Gruß,
    UEZ

    Dateien

    Perfect Illusion1.jpg 7,59 kB – 0 Downloads Perfect Illusion2.jpg 7,54 kB – 0 Downloads Perfect Illusion Variant 1.au3 2,4 kB – 488 Downloads Perfect Illusion Variant 2.au3 44,47 kB – 479 Downloads Perfect Illusion3.jpg 7,59 kB – 0 Downloads Perfect Illusion Variant 3.au3 4,5 kB – 466 Downloads
  • dsktopauflösung ausgeben bei erweiterten desktop?

    • UEZ
    • 2. Juni 2011 um 18:58

    Schade. Ich hatte es auch mit einige Spielen probiert und ich konnte einen Screenshot erstellen.

    Danke für's Testen.

    Gruß,
    UEZ

  • dsktopauflösung ausgeben bei erweiterten desktop?

    • UEZ
    • 2. Juni 2011 um 18:49

    Mich würde mal interessieren, ob du es mit Ctrl+Alt+F12 versucht hast.

    Gruß,
    UEZ

  • dsktopauflösung ausgeben bei erweiterten desktop?

    • UEZ
    • 2. Juni 2011 um 16:37

    Wenn du willst, kann du mal in AutoIt Windows Screenshooter reinschauen. Dort habe ich einige Möglichkeiten implementiert, um Screenshots zu erstellen, sollte auch mit Spielen funzen :D

    Gruß,
    UEZ

  • Frage zu StringRegExpReplace

    • UEZ
    • 1. Juni 2011 um 20:19
    Zitat von shadow667

    Ganz so einfach scheint's dann auch net zu klappen...
    Kommazahlen z.B. 80.3 (wobei im NC-Programm das Komma nen Punkt is) werden auch geteilt dadurch

    So, hier für euch mal zum Testen ein Ausschnitt eines echten NC-Programmes:

    Was erwartest du, wenn du nur die Hälfte erwähnst?

    Gruß,
    UEZ

  • Frage zu StringRegExpReplace

    • UEZ
    • 1. Juni 2011 um 19:50

    Hier noch eine Variante:

    [autoit]


    $sSource = _
    "N5M6T1(BOHRER D10)" & @LF & _
    "N10G0G54X10Y30S500M3" & @LF & _
    "N15G0Z30" & @LF & _
    "N20G81R2Z-15F500" & @LF & _
    "N20G0G80Z300"
    $sNew = StringRegExpReplace($sSource, "(\w\d+)", "$1 ")
    MsgBox(0, "Test", $sNew)

    [/autoit]

    Gruß,
    UEZ

  • Obfuscator streikt bei zu vielen Zeichen...

    • UEZ
    • 1. Juni 2011 um 14:35

    Ich glaube die Länge des Strings darf höchstens 2048 Zeichen lang sein.

    Hier der Code, den ich benutze, um den Binärstring zu erzeugen:

    Spoiler anzeigen
    [autoit]


    ; ============================================================================================================================
    ; Purpose : Converts any file to HEX binary string
    ; Author : Ward / UEZ
    ; ============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Local $VarName = StringStripWS(InputBox("Convert to Binary String", "Select a name for the variable." & @CRLF & @CRLF & "$ will automatically added to the beginning of the variable!:", "BinaryString"), 3)
    If $VarName = "" Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    Local $FileName = FileOpenDialog("Open a file", @ScriptDir, "DLL file (*.*)")
    If $FileName = "" Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    Local $Handle = FileOpen($FileName, 16)
    Local $BinaryString = FileRead($Handle)
    FileClose($Handle)

    [/autoit] [autoit][/autoit] [autoit]

    Local $LineLen = 1024
    Local $DllString = String($BinaryString)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Script = "Func " & $VarName & "()" & @CRLF & @TAB & "Local _" & @CRLF & @TAB & "$" & $VarName & " = '" & StringLeft($DllString, $LineLen) & "'" & @CRLF
    $DllString = StringTrimLeft($DllString, $LineLen)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While StringLen($DllString) > $LineLen
    $Script &= " $" & $VarName & " &= '" & StringLeft($DllString, $LineLen) & "'" & @CRLF
    $DllString = StringTrimLeft($DllString, $LineLen)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    If StringLen($DllString) <> 0 Then $Script &= " $" & $VarName & " &= '" & $DllString & "'" & @CRLF
    $Script &= @TAB & "Return Binary($" & $VarName & ")" & @CRLF & "EndFunc"
    ClipPut($Script)

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(64, "Convert to Binary String", "The result is in the clipboard, you can paste it to your script.")

    [/autoit]

    Das Resultat ist eine Funktion mit dem String und es wird in den Zwischenspeicher kopiert.

    Gruß,
    UEZ

  • dsktopauflösung ausgeben bei erweiterten desktop?

    • UEZ
    • 1. Juni 2011 um 13:20

    Hier eine weitere Möglichkeit:

    [autoit]


    #include <Array.au3>
    $hFullScreen = WinGetHandle("Program Manager")
    $aFullScreen = WinGetPos($hFullScreen)
    _ArrayDisplay($aFullScreen)

    [/autoit]

    Gruß,
    UEZ

  • _WinGetControls() - Controls eines Fensters auslesen

    • UEZ
    • 31. Mai 2011 um 08:55

    Die MSDN scheint ja die Bibel der Coder zu sein. Man muss nur daran glauben, suchen, finden und verstehen - und alles wird gut.

    Danke,
    UEZ

  • Bild im GUI einfügen?

    • UEZ
    • 30. Mai 2011 um 14:42

    Hola,

    du könntest das Bild in ein Binärstring umwandeln und direkt vom Speicher darstellen. Beispiel hier: [ offen ] "Binärbild" mit GDI laden! (jetzt ohne Memory Leak Dank Progandy!)

    Wie kannst du ein Bild in ein Binärstring umwandeln? Schaue mal hier rein: http://www.autoitscript.com/forum/topic/12…post__p__879238

    Gruß,
    UEZ

  • _WinGetControls() - Controls eines Fensters auslesen

    • UEZ
    • 29. Mai 2011 um 12:02

    Du bist ja krass drauf 8o

    Da dies hier wunderbar hier rein passt passt, habe ich es in deinen Code mit eingebaut -> ist nicht vollständig, z.B. fehlen die statischen Controls, wie GUICtrlCreatePic, etc.

    _WinGetControls.au3

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <Constants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <WinAPI.au3>
    #include-once

    [/autoit] [autoit][/autoit] [autoit]

    ; #DEMOFUNCTION# ================================================================================================================
    ; Name...........: _WinGetControls
    ; Description ...: Liefert ein 2D-Array für die Controls eines Fensters.
    ; Das Array enhält für jedes Control die folgenden Informationen:
    ; |[0] HWND - HWND des Controls
    ; |[1] Class - Klasse des Controls
    ; |[2] NN - ClassNN des Controls
    ; |[3] ID - ID des Controls
    ; |[4] Visible - Sichtbar? 1 = ja, 0 = nein
    ; Das Feld Array[0][0] enthält die Anzahl der Controls.
    ; Syntax.........: _WinGetControls($hWnd)
    ; Parameters ....: $hWnd - HWND des Fensters (z.B. Rückgabewert von GUICreate)
    ; Return values .: Erfolg: Controlarray
    ; Fehler: False, @error = 1
    ; Author ........: Großvater (http://www.autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......:
    ; ===============================================================================================================================
    Func _WinGetControls($hWnd)
    Local $hCB
    If Not IsHWnd($hWnd) Then Return SetError(1, 0, False)
    __WinGetControlsAddControl("Init", 0)
    $hCB = DLLCallbackRegister("__WinGetControlsAddControl", "Int", "HWND;LPARAM")
    DllCall("User32.dll", "Int", "EnumChildWindows", "HWND", $hWnd, "Ptr", DllCallbackGetPtr($hCB), "LPARAM", $hWnd)
    If @error Then Return SetError(DllCallbackFree($hCB), 0, False)
    DllCallbackFree($hCB)
    Return __WinGetControlsAddControl("Result", 0)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ; #INTERNAL_USE_ONLY# ===========================================================================================================
    ; Name...........: __WinGetControlsAddControl
    ; Description ...: Callback-Funktion für DLLCall "EnumChildWindows" in _WinGetControls
    ; Remarks .......: Weil ich globale Variable für die Rückgabe von Funktionswerten nicht mag und die Implementierung
    ; der statischen Arrays recht rudimentär ist, sind die maximale Anzahl von Controls auf 1024
    ; und die maximale Anzahl von Klassen auf 256 begrenzt.
    ; ===============================================================================================================================
    Func __WinGetControlsAddControl($hWnd, $lParam)
    Local Static $UControls = 1024
    Local Static $UClasses = 256
    Local Static $aControls[$UControls + 1][6]
    Local Static $aClasses[$UClasses + 1][2]
    Local $aResult, $C, $Class, $ClassExist, $ID, $NN
    Switch $hWnd
    Case "Init"
    $aControls[0][0] = 0
    $aClasses[0][0] = 0
    Return
    Case "Result"
    $C = $aControls[0][0] + 1
    $aResult = $aControls
    Redim $aResult[$C][6]
    Return $aResult
    EndSwitch
    $aResult = DllCall("User32.dll", "Int", "GetClassNameW", "HWND", $hWnd, "WStr", "", "Int", 260)
    If @error Or $aResult[0] = 0 Then Return True
    $Class = $aResult[2]
    $aResult = DllCall("User32.dll", "Int", "GetDlgCtrlID", "HWND", $hWnd)
    If @error Or $aResult[0] = 0 Then Return True
    $ID = $aResult[0]
    $ClassExist = False
    $C = $aClasses[0][0]
    For $I = 1 To $C
    If $aClasses[$I][0] = $Class Then
    $NN = $aClasses[$I][1] + 1
    $aClasses[$I][1] = $NN
    $ClassExist = True
    ExitLoop
    EndIf
    Next
    If Not $ClassExist Then
    $NN = 1
    $C += 1
    If $C > $UClasses Then Return False
    $aClasses[0][0] = $C
    $aClasses[$C][0] = $Class
    $aClasses[$C][1] = $NN
    EndIf
    $C = $aControls[0][0] + 1
    If $C > $UControls Then Return False
    $aControls[0][0] = $C
    $aControls[$C][0] = $hWnd
    $aControls[$C][1] = $Class
    $aControls[$C][2] = $NN
    $aControls[$C][3] = $ID
    $aControls[$C][4] = ControlCommand(HWnd($lParam), "", $ID, "IsVisible", "")
    $aControls[$C][5] = __myCtrlGetClass($hWnd)
    Return True
    EndFunc
    ; ===============================================================================================================================

    [/autoit] [autoit][/autoit] [autoit]

    Func __myCtrlGetClass($hHandle) ;code by SmOke_N, modified by Guiness
    Local Const $GWL_STYLE = -16
    Local $iLong, $sClass
    If IsHWnd($hHandle) = 0 Then
    $hHandle = GUICtrlGetHandle($hHandle)
    If IsHWnd($hHandle) = 0 Then
    Return SetError(1, 0, "Unknown")
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sClass = _WinAPI_GetClassName($hHandle)
    If @error Then
    Return "Unknown"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $iLong = _WinAPI_GetWindowLong($hHandle, $GWL_STYLE)
    If @error Then
    Return SetError(2, 0, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Switch $sClass
    Case "Button"
    Select
    Case BitAND($iLong, $BS_GROUPBOX) = $BS_GROUPBOX
    Return "Group"
    Case BitAND($iLong, $BS_CHECKBOX) = $BS_CHECKBOX
    Return "Checkbox"
    Case BitAND($iLong, $BS_AUTOCHECKBOX) = $BS_AUTOCHECKBOX
    Return "Checkbox"
    Case BitAND($iLong, $BS_RADIOBUTTON) = $BS_RADIOBUTTON
    Return "Radio"
    Case BitAND($iLong, $BS_AUTORADIOBUTTON) = $BS_AUTORADIOBUTTON
    Return "Radio"
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    Case "Edit"
    Select
    Case BitAND($iLong, $ES_WANTRETURN) = $ES_WANTRETURN
    Return "Edit"
    Case Else
    Return "Input"
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    Case "Static"
    Select
    Case BitAND($iLong, $SS_BITMAP) = $SS_BITMAP
    Return "Pic"
    Case BitAND($iLong, $SS_ICON) = $SS_ICON
    Return "Icon"
    Case BitAND($iLong, $SS_LEFT) = $SS_LEFT
    If BitAND($iLong, $SS_NOTIFY) = $SS_NOTIFY Then
    Return "Label"
    EndIf
    Return "Graphic"
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    Case "ComboBox"
    Return "Combo"
    Case "ListBox"
    Return "List"
    Case "msctls_progress32"
    Return "Progress"
    Case "msctls_trackbar32"
    Return "Slider"
    Case "SysDateTimePick32"
    Return "Date"
    Case "SysListView32"
    Return "ListView"
    Case "SysMonthCal32"
    Return "MonthCal"
    Case "SysTabControl32"
    Return "Tab"
    Case "SysTreeView32"
    Return "TreeView"

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    Return $sClass
    EndFunc

    [/autoit]

    _WinGetControls Example 2.au3

    Spoiler anzeigen
    [autoit]


    #include "WinGetControls.au3"
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $sGUITitle1 = "Test Getting GUI Control Types"

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI1 = GUICreate($sGUITitle1, 400, 500, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    $x3 = GUICtrlCreateButton("button1", 10, 10, 60, 20) ; button, it's a Group
    $x4 = GUICtrlCreateButton("button2", 10, 40, 60, 20) ; button
    $x5 = GUICtrlCreateButton("button3", 10, 70, 60, 20) ; button
    $x6 = GUICtrlCreateEdit("Edit1", 10, 100, 60, 20) ; edit, it's a HScroll
    $x7 = GUICtrlCreateInput("Input1", 10, 130, 60, 20) ; edit
    $x8 = GUICtrlCreateLabel("Label1", 10, 160, 60, 20) ; static
    $x9 = GUICtrlCreateRadio("Radio1", 10, 190, 60, 20) ; button
    $x10 = GUICtrlCreateRadio("Radio2", 10, 220, 60, 20) ; button
    $x11 = GUICtrlCreateCheckbox("CheckBox1", 10, 250, 60, 20) ; button
    $x12 = GUICtrlCreateGroup("Group1", 10, 280, 80, 50) ; button, it's a Group
    $x13 = GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group, it's a Group
    $x14 = GUICtrlCreateCombo("", 10, 340, 60, 20) ; ComboBox
    GUICtrlSetData(-1, "ComboItem1|Comboitem2|Comboitem3", "Comboitem3")
    $x15 = GUICtrlCreateList("List1", 10, 370, 60, 20) ; ListBox
    GUICtrlSetData(-1, "ListItem1|Listitem2|Listitem3", "Listitem2")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $sGUITitle1)

    [/autoit] [autoit][/autoit] [autoit]

    Dim $aControls, $hWnd, $Title
    $Title = WinGetTitle($hGUI1 )
    $aControls = _WinGetControls($hGUI1)
    If Not IsArray($aControls) Then
    MsgBox(0, "ERROR", "Der Aufruf von _WinGetControls() ist fehlgeschlagen!")
    Else
    _ArrayDisplay($aControls, $Title, -1, 0, "", "|", "Zeile|HWND|Class|NN|ID|Visible|Controls")
    EndIf
    Sleep(1000)
    Exit

    [/autoit]

    Wie hast du das ganze Zeug gelernt?

    Gruß,
    UEZ

  • Bekomme es nicht hin >.>

    • UEZ
    • 28. Mai 2011 um 23:44

    Vielleicht so?

    [autoit]


    $min = 200 * 1024 ;200 kb = 200 * 1024 Bytes
    $datei = "Text1.txt"
    If FileExists($datei) And FileGetSize($datei) < $min Then MsgBox(0, "Info", "Datei ist kleiner als 200kb!")

    [/autoit]

    Gruß,
    UEZ

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™