Jump to content

CodeCrypter - Encrypt your Script


RTFC
 Share

Recommended Posts

Hi rootx,

I've tested your test script, but cannot reproduce your problem, unfortunately:(; it all works flawlessly for me  with and without encryption and/or obfuscation (on Win10/64Pro). Re the OS bitness (32/64) see posts #191 and following (Lucid's issue) in this thread. I would suggest you first test whether Ward's encryption UDF works for you (using Ward's own test scripts) on the system that's causing you issues. If so, you should probably replace the encryption algorithm with something that works on 64-bit OS/machines (see post #194 in this thread for the general steps; there' I'm using native encryption functions for ilustration purposes; but these may be too slow for you, esp. if you're running on virtual machines). Sorry I cannot provide an instant solution in this case, but I don't think Codecrypter itself is the problem here...

When I have some spare time, I'll look into replacing Ward's suite with an alternative machine-code encrpytion algo. I think Lucid tried to contact Ward to fix the 64bit problem in the assembly code, but I don't think a reply has been forthcoming yet.

 

Edited by RTFC
Link to comment
Share on other sites

23 hours ago, RTFC said:

Hi rootx,

I've tested your test script, but cannot reproduce your problem, unfortunately:(; it all works flawlessly for me  with and without encryption and/or obfuscation (on Win10/64Pro). Re the OS bitness (32/64) see posts #191 and following (Lucid's issue) in this thread. I would suggest you first test whether Ward's encryption UDF works for you (using Ward's own test scripts) on the system that's causing you issues. If so, you should probably replace the encryption algorithm with something that works on 64-bit OS/machines (see post #194 in this thread for the general steps; there' I'm using native encryption functions for ilustration purposes; but these may be too slow for you, esp. if you're running on virtual machines). Sorry I cannot provide an instant solution in this case, but I don't think Codecrypter itself is the problem here...

When I have some spare time, I'll look into replacing Ward's suite with an alternative machine-code encrpytion algo. I think Lucid tried to contact Ward to fix the 64bit problem in the assembly code, but I don't think a reply has been forthcoming yet.

 

:( I tried to follow the instructions.... use #include <Crypt.au3> in post #194, but the program does not start... It appears later in the process activity view, and then closes. What I do not understand is why I can not find any log in windows or windows defender, I also compiled on a machine windows 7 32bit, same result.

What do you advise me to obfuscate my code, thanks for your patience.

PS: the machine that does not work is Notebook intel core 2 p8400 Windows 10 Home 32bit

Link to comment
Share on other sites

@rootx: Sorry to hear you're still having trouble running your script.:(

9 hours ago, rootx said:

I tried to follow the instructions.... use #include <Crypt.au3>

Actually, the instructions in post #194 are rather more extensive than adding an extra #include <Crypt.au3>; you would need to edit your script, MCFinclude,au3, MCF.au3, and CodeScanner.au3, and change the encryption/decryption calls plus all associated includes. This is not a trivial exercise.

So did you test Ward's UDF on its own on the malfunctioning machine? Does Ward's machine code AES functions work there or not?:huh:

9 hours ago, rootx said:

Notebook intel core 2 p8400 Windows 10 Home 32bit

Okay, so this is a 64-bit CPU running a 32-bit OS; that may be part of your problem. I suppose you could try this (a long shot):

#AutoIt3Wrapper_UseX64=n

Just as a test, I generated an encrypted version of your test script on an old Core 2 Duo E8200 (desktop) with WinXP3Pro; works without a hitch. But I don't have any machines with Win10Home (I only have Pro versions) for testing. So I cannot help you any further at this point, because I cannot reproduce your problem/environment.

Here's an  encrypted version of your test script that queries for password 'test' at startup, and works fine anywhere I run it. I kinda suspect that won't work for you either, due to Ward's code having issues on a 64-bit system.

#pragma compile(inputboxres, true)

Global Const $GUI_EVENT_CLOSE = -3

Global Const $MEM_COMMIT = 0x00001000
Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
Global Const $MEM_RELEASE = 0x00008000

Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION , $SECURITYIMPERSONATION , $SECURITYDELEGATION
Global Enum $TOKENUSER = 1, $TOKENGROUPS , $TOKENPRIVILEGES , $TOKENOWNER , $TOKENPRIMARYGROUP , $TOKENDEFAULTDACL , $TOKENSOURCE , $TOKENTYPE , $TOKENIMPERSONATIONLEVEL , $TOKENSTATISTICS , $TOKENRESTRICTEDSIDS , $TOKENSESSIONID , $TOKENGROUPSANDPRIVILEGES , $TOKENSESSIONREFERENCE , $TOKENSANDBOXINERT , $TOKENAUDITPOLICY , $TOKENORIGIN , $TOKENELEVATIONTYPE , $TOKENLINKEDTOKEN , $TOKENELEVATION , $TOKENHASRESTRICTIONS , $TOKENACCESSINFORMATION , $TOKENVIRTUALIZATIONALLOWED , $TOKENVIRTUALIZATIONENABLED , $TOKENINTEGRITYLEVEL , $TOKENUIACCESS , $TOKENMANDATORYPOLICY , $TOKENLOGONSID
Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS , $SET_ACCESS , $DENY_ACCESS , $REVOKE_ACCESS , $SET_AUDIT_SUCCESS , $SET_AUDIT_FAILURE
Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER , $TRUSTEE_IS_GROUP , $TRUSTEE_IS_DOMAIN , $TRUSTEE_IS_ALIAS , $TRUSTEE_IS_WELL_KNOWN_GROUP , $TRUSTEE_IS_DELETED , $TRUSTEE_IS_INVALID , $TRUSTEE_IS_COMPUTER
Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP , $SIDTYPEDOMAIN , $SIDTYPEALIAS , $SIDTYPEWELLKNOWNGROUP , $SIDTYPEDELETEDACCOUNT , $SIDTYPEINVALID , $SIDTYPEUNKNOWN , $SIDTYPECOMPUTER , $SIDTYPELABEL

Func _MemVirtualAlloc($pAddress,$iSize,$iAllocation,$iProtect)
    Local $aResult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iAllocation,"dword",$iProtect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aResult[0]
EndFunc

Func _MemVirtualFree($pAddress,$iSize,$iFreeType)
    Local $aResult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iFreeType)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aResult[0]
EndFunc

Global $_AES_CodeBuffer
Global $_AES_CodeBufferMemory
Global $_AES_EncryptOffset
Global $_AES_DecryptOffset
Global $_AES_EncryptKeyOffset
Global $_AES_DecryptKeyOffset
Global $_AES_EncryptECBOffset
Global $_AES_DecryptECBOffset
Global $_AES_EncryptCBCOffset
Global $_AES_DecryptCBCOffset
Global $_AES_EncryptCFBOffset
Global $_AES_DecryptCFBOffset
Global $_AES_CryptOFBOffset
Global $_AES_ModeResetOffset
Global Const $AES_CBC_MODE = 0
Global Const $AES_CFB_MODE = 1
Global Const $AES_OFB_MODE = 2

Func _AES_Exit()
    $_AES_CodeBuffer= 0
    _MemVirtualFree($_AES_CodeBufferMemory, 0 ,$MEM_RELEASE)
EndFunc

Func _AES_Startup()
    If Not IsDllStruct($_AES_CodeBuffer)  Then
    If @AutoItX64  Then
    Beep( 1234 , 56 )
    Local $Code='0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnNVF5EgYQBAW/l' & _  
    'PxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
    $Code&='DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4iQgz7hUgQSKg' & _  
    'UkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
    $Code&='UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbLoTG7mEuyWa1J' & _  
    'fOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
    $Code&='xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJbe4FvC62nx3wv' & _  
    'B5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
    $Code&='Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf8DwyVUjG+UNk' & _  
    'EKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
    $Code&='ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjpC/Exj0GVKiPS' & _  
    'ImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
    $Code&='R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP6EEgk4myEOLh' & _  
    'coeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
    $Code&='I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4hivmIbJYR3QY' & _  
    '9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
    $Code&='8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
    Else
    Local $Code='magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIRHKVqc+5CMCSB' & _  
    'zPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
    $Code&='Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iM' & _  
    'E1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
    $Code&='RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMjQiDN8MhTUMQg' & _  
    'C2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
    $Code&='Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO16iIhKOkChE0' & _  
    '/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
    $Code&='pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqF' & _  
    'EZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
    $Code&='fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx00LgXV0JQSAF' & _  
    'TkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
    $Code&='0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LM' & _  
    'FnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
    $Code&='2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n3EpYkW0jCkRw' & _  
    'irkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
    $Code&='EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
    EndIf
    Local $Opcode=String(_AES_CodeDecompress($Code))
    $_AES_EncryptOffset=(StringInStr($Opcode,"87DB")- 3 )/ 2
    $_AES_DecryptOffset=(StringInStr($Opcode,"87C9")- 3 )/ 2
    $_AES_EncryptKeyOffset=(StringInStr($Opcode,"87D2")- 3 )/ 2
    $_AES_DecryptKeyOffset=(StringInStr($Opcode,"87F6")- 3 )/ 2
    $_AES_EncryptECBOffset=(StringInStr($Opcode,"09C0")- 3 )/ 2
    $_AES_DecryptECBOffset=(StringInStr($Opcode,"09DB")- 3 )/ 2
    $_AES_EncryptCBCOffset=(StringInStr($Opcode,"09C9")- 3 )/ 2
    $_AES_DecryptCBCOffset=(StringInStr($Opcode,"09D2")- 3 )/ 2
    $_AES_EncryptCFBOffset=(StringInStr($Opcode,"09F6")- 3 )/ 2
    $_AES_DecryptCFBOffset=(StringInStr($Opcode,"09FF")- 3 )/ 2
    $_AES_CryptOFBOffset=(StringInStr($Opcode,"09E4")- 3 )/ 2
    $_AES_ModeResetOffset=(StringInStr($Opcode,"09ED")- 3 )/ 2
    $Opcode=Binary($Opcode)
    $_AES_CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    $_AES_CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$_AES_CodeBufferMemory)
    DllStructSetData($_AES_CodeBuffer, 1 ,$Opcode)
    OnAutoItExitRegister("_AES_Exit")
    EndIf
EndFunc

Func _AesPrepareKey($Key)
    $Key=Binary($Key)
    Switch BinaryLen($Key)
    Case 0 To 16
    Local $KeyLen= 16
    Case 17 To 24
    Local $KeyLen= 24
    Case Else
    Local $KeyLen= 32
    EndSwitch
    Local $KeyBuffer=DllStructCreate("byte["&$KeyLen&"]")
    DllStructSetData($KeyBuffer, 1 ,$Key)
    Return DllStructGetData($KeyBuffer, 1 )
EndFunc

Func _AesEncryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_EncryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptCBC(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=Ceiling(BinaryLen($Data)/ 16 )* 16
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCBCOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesCryptOFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_CryptOFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCBC_Pad(ByRef $AesCtx, ByRef $IV,$Data)
    $Data=_AesDecryptCBC($AesCtx,$IV,$Data)
    Local $DataLen=BinaryLen($Data)
    For $i=$DataLen To $DataLen- 16 Step -1
    If BinaryMid($Data,$i, 1 )=Binary("0x80")  Then
    Return BinaryMid($Data, 1 ,$i- 1 )
    EndIf
    Next
    Return $Data
EndFunc

Func _AesDecrypt($Key,$Data,$Mode=$AES_CBC_MODE)
    $Data=Binary($Data)
    If BinaryLen($Data)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $IV=BinaryMid($Data, 1 , 16 ),$AesCtx,$Ret
    $Data=BinaryMid($Data, 17 )
    Switch String($Mode)
    Case "CFB",$AES_CFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesDecryptCFB($AesCtx,$IV,$Data)
    Case "OFB",$AES_OFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesCryptOFB($AesCtx,$IV,$Data)
    Case Else
    $AesCtx=_AesDecryptKey($Key)
    $Ret=_AesDecryptCBC_Pad($AesCtx,$IV,$Data)
    EndSwitch
    If BinaryLen($Ret)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $Ret
EndFunc

Func _AES_CodeDecompress($Code)
    If @AutoItX64  Then
    Local $Opcode='0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    Else
    Local $Opcode='0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    EndIf
    Local $AP_Decompress=(StringInStr($Opcode,"89C0")- 3 )/ 2
    Local $B64D_Init=(StringInStr($Opcode,"89D2")- 3 )/ 2
    Local $B64D_DecodeData=(StringInStr($Opcode,"89F6")- 3 )/ 2
    $Opcode=Binary($Opcode)
    Local $CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    Local $CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$CodeBufferMemory)
    DllStructSetData($CodeBuffer, 1 ,$Opcode)
    Local $B64D_State=DllStructCreate("byte[16]")
    Local $Length=StringLen($Code)
    Local $Output=DllStructCreate("byte["&$Length&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_Init,"ptr",DllStructGetPtr($B64D_State),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_DecodeData,"str",$Code,"uint",$Length,"ptr",DllStructGetPtr($Output),"ptr",DllStructGetPtr($B64D_State))
    Local $ResultLen=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($Output)), 1 )
    Local $Result=DllStructCreate("byte["&($ResultLen+ 16 )&"]")
    Local $Ret=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$AP_Decompress,"ptr",DllStructGetPtr($Output)+ 4 ,"ptr",DllStructGetPtr($Result),"int", 0 ,"int", 0 )
    _MemVirtualFree($CodeBufferMemory, 0 ,$MEM_RELEASE)
    Return BinaryMid(DllStructGetData($Result, 1 ), 1 ,$Ret[ 0 ])
EndFunc

Func _VarIsVar(ByRef $a, ByRef $b)
    $a=$b
EndFunc

Func _ArrayVarIsVar(ByRef $a,$b, ByRef $c)
    $a[$b]=$c
EndFunc

Func _VarIsArrayVar(ByRef $a, ByRef $b,$c)
    $a=$b[$c]
EndFunc

Func _ArrayVarIsArrayVar(ByRef $a,$b, ByRef $c,$d)
    $a[$b]=$c[$d]
EndFunc

Func _VarIsNumber(ByRef $a,$number)
    $a=Number($number)
EndFunc

Func _ArrayVarIsNumber(ByRef $a,$b,$number)
    $a[$b]=Number($number)
EndFunc
_AES_Startup()
Global $CCkeytype = 0
Global $CCkey[2]
$CCkey[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _MCFCC(Const $hexstring,$index=0)
    Return BinaryToString(_AesDecrypt($CCkey[$index],$hexstring))
EndFunc
Execute(_MCFCC("0x433D68EB4CE597844FC59F54B063B980238AF860D939790234FC2E7435C62A35013B61076B1FE02DA9C0BF6DCBFEE243"))

Func _dummyCalls()
    Execute(_MCFCC("0x9177D63C29A5F2A533568088F018577E4651FFFE7DEFACE3015746D47EA259B50EC0AA824CDAB1D8287AA820372D67D2"))
    Execute(_MCFCC("0x6C372792137C8082D0075A3F8B3716360E189DD2729EDE58BF0536D81DB7F445"))
    Local $a=0,$b=1
    Local $c[1]
    Execute(_MCFCC("0x7BCC877F9C423DFB19AD5826DC69D9DB4CAF94576DFED872C1611D774C248C328D468185994C57C311C66189877CBC78"))
    Execute(_MCFCC("0x1F2F790AFB5BBCB54A6F03BA6BA527205B41050CEC61C752786133E863025385A86085760F54A21507D1EFE6B2D7C9A478D106538188F55291FE3642076DE81F"))
    Execute(_MCFCC("0x4BD2210431607A0FA049CFD005D8EDB5C53F6ADBBEB7B179518ABA339F3EAC2706177B1B9FC710AA0FC11C9B04020A30"))
    Execute(_MCFCC("0x221E0A5CC85548C80A378B4018BD21746FAC5467582A86F795F096F35835E5FD5D13CDCFE699B41FB62ED0F5BAD21B6D8A3E80B849B93DC73EEDB527AAC7F753"))
    Execute(_MCFCC("0x6C858C368E2B0A0859AA73A7189B79CC047AD11EE0775F1A897BA9A0073C7FD620C4651120181E5487ECDA038B08F796"))
    Execute(_MCFCC("0x2B43828696AB416425F50CA344047F1B148C02BFE6047463DDD2E1D7988DA839D1F74E5E2A2C59B94F6B4F18048EFA2D2DF71FB4AC959E97493645BE487634F1"))
EndFunc

Func _MCFCC_Init($type=0,$query=True)
    ReDim $CCkey[8]
    If Execute(_MCFCC("0x7F4475D17CCC34B255E6E8523690B90C4D6AFF811BB8AE6C301F3674B2591C77F7FCED9EAFA09E95494A14A302AC3AB8")) Then
    $CCkey[1]=$cmdline[1]
    Else
    $CCkey[1]=_MCFCC("0x3B9E0FBF099FEA97DD1CF382366DFCA890BEBA7E5EE735E7FE050F425895EF65")
    EndIf
    $CCkey[2]=Execute(_MCFCC("0xCBC840382B272EBC83F53C2DB4B2D187B0C5F7CE3941944C0BB6DF1C23A96BDF38568E472431DC43A32B9DAC73072C82"))
    $CCkey[3]=Execute(_MCFCC("0x1D303BF7D766D6D27B57A6CA093D69CA0C35D0FFA6EA65E4FE1CB83C90C74188"))
    $CCkey[4]=Execute(_MCFCC("0x7CA5FF47D45EB50A3FBC2288D6477A85E173C7FB25532615D158ADDCBE4E6CA0"))
    $CCkey[ 5 ]=Execute(_MCFCC("0x4287A446FB64E98144A3EB458C4C15D2074B77593288FBB0E840FA8300C230AA8E29D7965D2DE0312EAB0FFCD29497C6"))
    $CCkey[6]=Execute(_MCFCC("0x1FCF02FF89DE51C614F34D84F8279ECFF8DDC4A471DE6FF813B63B65923753ECC6ACE35CA9A50094D2F895576BE44D17"))
    $CCkey[ 7 ]=Execute(_MCFCC("0xDFA5901797712B9DB8D2ED51181D9315CBA49A120A3E006C0449919AC0B1366B"))
    If Execute(_MCFCC("0x743266B05FC294D1521F1A2E5410F96B7C375460D15B187A29F62E9266572C5A")) Then $type=1
    If Execute(_MCFCC("0x3DB1B18FEF1BA5E330842A4103392E13570F9402C8FB483F1E8250FD7288FF858943A6F7AB26A1002A9C4FEC3A136B70E18E91868838BD294742AB0A8BF91359")) Then
    $CCkeytype=1
    $CCkey[$CCkeytype]=Execute(_MCFCC("0x5EC0472EDFDB51A0554AF2D5178FC8C732B6C08135B15EB1591CF8DF4548D847D6A2F1A40322D3C3E48E63C060A02427"))
    Return
    EndIf
    If Execute(_MCFCC("0xF1FABBC528B9569A9E982740003A9BE5AAD5967B1A904AC0F5403204F5E23B3CEE827EA65F09F43F3276A82B919020A6B7832F9BF987F47778324095D6B93FBC")) Then $CCkey[$type]=Execute(_MCFCC("0xCC7EC4948C1200BBF9958714AB932D9FE17FEFD39BCBA361E56925285E74C413B04FCEBDDFD3E6891ADA431CEA7E1C73CE9B79831CBDD809F34575556DBC969C0C44C2191CD3B0FFEF78E188B8DFC0151DD7073AABCF004ED7D64C67CADA409CF76725365B0006C3EBDDD320D4B32820"))
    $CCkeytype=$type
EndFunc

$Form1=Execute(_MCFCC("0x0624997B59E608320C2734570EE076018E4FB27EAA5ADB8739B8511F218364E2E84ED970750DAC6F8AC606D72A24FDD833856503560368936307ACAAE293647F7FC3DF8F45E9FC8DB2E13706C0D24B64",1))
$Button1=Execute(_MCFCC("0x3878F1F28E6AE6C6C9965929EECF7AECA63C8D9FA0CE1C087D03C641E3004E77092E515F17D825B2269C12749524FB8F33166D603BAB84D90864C8506C2777A72A82F30B541C8312A485DA26DEDF053A",1))
Execute(_MCFCC("0x82E855441D7305A4C19A670444E615A1729822776D2F3D8A9229370D55841FFE3F494CA426549E3663F683BC784C73C8",1))
While Execute(_MCFCC("0xC4ECAB59404F8C6A934CE1E9B4605FCEE766292727C4BBB47CEFF33E04A9DD81",1))
$nMsg=Execute(_MCFCC("0xBDB5738F8F6E299BC5652946574AFE762A416DEE707150B0C650ABB54DFB575762C9513BA0BEB33768DB926B5DDF0F37",1))
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Execute(_MCFCC("0x11544453910775787FA23AE560C741ACB51EDA34A41405E94A40D7CC4C2A3D33054E8055F7D6A8F04C11C6BC80976558",1))
EndSwitch
WEnd

So I would suggest you try this and test Ward's UDF on its own first, rather than attempting the rewrite I described in post #194. Best of luck.

Oh, and what you're doing is encryption, not obfuscation. Obfuscation should work without a problem anywhere, because it just replaces UDF and variable names with unintelligible ones (for humans), and does notcall encryption functions.

Link to comment
Share on other sites

I compiled  your encripted code and it works perfectly!!!

my code was another, and does not work :mad2:

#include "MCFinclude.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#AutoIt3Wrapper_UseX64=n
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 300, 150, -1, -1)
$Button1 = GUICtrlCreateButton("Button1", 100, 50, 100,30)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $Button1
            MsgBox(48,"test","test")
    EndSwitch
WEnd

encrypted

#pragma compile(inputboxres, true)

Global Const $MEM_COMMIT = 0x00001000
Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
Global Const $MEM_RELEASE = 0x00008000

Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION , $SECURITYIMPERSONATION , $SECURITYDELEGATION
Global Enum $TOKENUSER = 1, $TOKENGROUPS , $TOKENPRIVILEGES , $TOKENOWNER , $TOKENPRIMARYGROUP , $TOKENDEFAULTDACL , $TOKENSOURCE , $TOKENTYPE , $TOKENIMPERSONATIONLEVEL , $TOKENSTATISTICS , $TOKENRESTRICTEDSIDS , $TOKENSESSIONID , $TOKENGROUPSANDPRIVILEGES , $TOKENSESSIONREFERENCE , $TOKENSANDBOXINERT , $TOKENAUDITPOLICY , $TOKENORIGIN , $TOKENELEVATIONTYPE , $TOKENLINKEDTOKEN , $TOKENELEVATION , $TOKENHASRESTRICTIONS , $TOKENACCESSINFORMATION , $TOKENVIRTUALIZATIONALLOWED , $TOKENVIRTUALIZATIONENABLED , $TOKENINTEGRITYLEVEL , $TOKENUIACCESS , $TOKENMANDATORYPOLICY , $TOKENLOGONSID
Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS , $SET_ACCESS , $DENY_ACCESS , $REVOKE_ACCESS , $SET_AUDIT_SUCCESS , $SET_AUDIT_FAILURE
Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER , $TRUSTEE_IS_GROUP , $TRUSTEE_IS_DOMAIN , $TRUSTEE_IS_ALIAS , $TRUSTEE_IS_WELL_KNOWN_GROUP , $TRUSTEE_IS_DELETED , $TRUSTEE_IS_INVALID , $TRUSTEE_IS_COMPUTER
Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP , $SIDTYPEDOMAIN , $SIDTYPEALIAS , $SIDTYPEWELLKNOWNGROUP , $SIDTYPEDELETEDACCOUNT , $SIDTYPEINVALID , $SIDTYPEUNKNOWN , $SIDTYPECOMPUTER , $SIDTYPELABEL

Func _MemVirtualAlloc($pAddress,$iSize,$iAllocation,$iProtect)
    Local $aResult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iAllocation,"dword",$iProtect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aResult[0]
EndFunc

Func _MemVirtualFree($pAddress,$iSize,$iFreeType)
    Local $aResult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iFreeType)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aResult[0]
EndFunc

Global $_AES_CodeBuffer
Global $_AES_CodeBufferMemory
Global $_AES_EncryptOffset
Global $_AES_DecryptOffset
Global $_AES_EncryptKeyOffset
Global $_AES_DecryptKeyOffset
Global $_AES_EncryptECBOffset
Global $_AES_DecryptECBOffset
Global $_AES_EncryptCBCOffset
Global $_AES_DecryptCBCOffset
Global $_AES_EncryptCFBOffset
Global $_AES_DecryptCFBOffset
Global $_AES_CryptOFBOffset
Global $_AES_ModeResetOffset
Global Const $AES_CBC_MODE = 0
Global Const $AES_CFB_MODE = 1
Global Const $AES_OFB_MODE = 2

Func _AES_Exit()
    $_AES_CodeBuffer= 0
    _MemVirtualFree($_AES_CodeBufferMemory, 0 ,$MEM_RELEASE)
EndFunc

Func _AES_Startup()
    If Not IsDllStruct($_AES_CodeBuffer)  Then
    If @AutoItX64  Then
    Local $Code='0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnNVF5EgYQBAW/l' & _  
    'PxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
    $Code&='DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4iQgz7hUgQSKg' & _  
    'UkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
    $Code&='UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbLoTG7mEuyWa1J' & _  
    'fOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
    $Code&='xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJbe4FvC62nx3wv' & _  
    'B5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
    $Code&='Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf8DwyVUjG+UNk' & _  
    'EKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
    $Code&='ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjpC/Exj0GVKiPS' & _  
    'ImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
    $Code&='R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP6EEgk4myEOLh' & _  
    'coeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
    $Code&='I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4hivmIbJYR3QY' & _  
    '9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
    $Code&='8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
    Else
    Local $Code='magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIRHKVqc+5CMCSB' & _  
    'zPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
    $Code&='Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iM' & _  
    'E1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
    $Code&='RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMjQiDN8MhTUMQg' & _  
    'C2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
    $Code&='Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO16iIhKOkChE0' & _  
    '/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
    $Code&='pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqF' & _  
    'EZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
    $Code&='fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx00LgXV0JQSAF' & _  
    'TkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
    $Code&='0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LM' & _  
    'FnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
    $Code&='2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n3EpYkW0jCkRw' & _  
    'irkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
    $Code&='EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
    EndIf
    Local $Opcode=String(_AES_CodeDecompress($Code))
    $_AES_EncryptOffset=(StringInStr($Opcode,"87DB")- 3 )/ 2
    $_AES_DecryptOffset=(StringInStr($Opcode,"87C9")- 3 )/ 2
    $_AES_EncryptKeyOffset=(StringInStr($Opcode,"87D2")- 3 )/ 2
    $_AES_DecryptKeyOffset=(StringInStr($Opcode,"87F6")- 3 )/ 2
    $_AES_EncryptECBOffset=(StringInStr($Opcode,"09C0")- 3 )/ 2
    $_AES_DecryptECBOffset=(StringInStr($Opcode,"09DB")- 3 )/ 2
    $_AES_EncryptCBCOffset=(StringInStr($Opcode,"09C9")- 3 )/ 2
    $_AES_DecryptCBCOffset=(StringInStr($Opcode,"09D2")- 3 )/ 2
    $_AES_EncryptCFBOffset=(StringInStr($Opcode,"09F6")- 3 )/ 2
    $_AES_DecryptCFBOffset=(StringInStr($Opcode,"09FF")- 3 )/ 2
    $_AES_CryptOFBOffset=(StringInStr($Opcode,"09E4")- 3 )/ 2
    $_AES_ModeResetOffset=(StringInStr($Opcode,"09ED")- 3 )/ 2
    $Opcode=Binary($Opcode)
    $_AES_CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    $_AES_CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$_AES_CodeBufferMemory)
    DllStructSetData($_AES_CodeBuffer, 1 ,$Opcode)
    OnAutoItExitRegister("_AES_Exit")
    EndIf
EndFunc

Func _AesPrepareKey($Key)
    $Key=Binary($Key)
    Switch BinaryLen($Key)
    Case 0 To 16
    Local $KeyLen= 16
    Case 17 To 24
    Local $KeyLen= 24
    Case Else
    Local $KeyLen= 32
    EndSwitch
    Local $KeyBuffer=DllStructCreate("byte["&$KeyLen&"]")
    DllStructSetData($KeyBuffer, 1 ,$Key)
    Return DllStructGetData($KeyBuffer, 1 )
EndFunc

Func _AesEncryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_EncryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptCBC(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=Ceiling(BinaryLen($Data)/ 16 )* 16
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCBCOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesCryptOFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_CryptOFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCBC_Pad(ByRef $AesCtx, ByRef $IV,$Data)
    $Data=_AesDecryptCBC($AesCtx,$IV,$Data)
    Local $DataLen=BinaryLen($Data)
    For $i=$DataLen To $DataLen- 16 Step -1
    If BinaryMid($Data,$i, 1 )=Binary("0x80")  Then
    Return BinaryMid($Data, 1 ,$i- 1 )
    EndIf
    Next
    Return $Data
EndFunc

Func _AesDecrypt($Key,$Data,$Mode=$AES_CBC_MODE)
    $Data=Binary($Data)
    If BinaryLen($Data)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $IV=BinaryMid($Data, 1 , 16 ),$AesCtx,$Ret
    $Data=BinaryMid($Data, 17 )
    Switch String($Mode)
    Case "CFB",$AES_CFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesDecryptCFB($AesCtx,$IV,$Data)
    Case "OFB",$AES_OFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesCryptOFB($AesCtx,$IV,$Data)
    Case Else
    $AesCtx=_AesDecryptKey($Key)
    $Ret=_AesDecryptCBC_Pad($AesCtx,$IV,$Data)
    EndSwitch
    If BinaryLen($Ret)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $Ret
EndFunc

Func _AES_CodeDecompress($Code)
    If @AutoItX64  Then
    Local $Opcode='0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    Else
    Local $Opcode='0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    EndIf
    Local $AP_Decompress=(StringInStr($Opcode,"89C0")- 3 )/ 2
    Local $B64D_Init=(StringInStr($Opcode,"89D2")- 3 )/ 2
    Local $B64D_DecodeData=(StringInStr($Opcode,"89F6")- 3 )/ 2
    $Opcode=Binary($Opcode)
    Local $CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    Local $CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$CodeBufferMemory)
    DllStructSetData($CodeBuffer, 1 ,$Opcode)
    Local $B64D_State=DllStructCreate("byte[16]")
    Local $Length=StringLen($Code)
    Local $Output=DllStructCreate("byte["&$Length&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_Init,"ptr",DllStructGetPtr($B64D_State),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_DecodeData,"str",$Code,"uint",$Length,"ptr",DllStructGetPtr($Output),"ptr",DllStructGetPtr($B64D_State))
    Local $ResultLen=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($Output)), 1 )
    Local $Result=DllStructCreate("byte["&($ResultLen+ 16 )&"]")
    Local $Ret=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$AP_Decompress,"ptr",DllStructGetPtr($Output)+ 4 ,"ptr",DllStructGetPtr($Result),"int", 0 ,"int", 0 )
    _MemVirtualFree($CodeBufferMemory, 0 ,$MEM_RELEASE)
    Return BinaryMid(DllStructGetData($Result, 1 ), 1 ,$Ret[ 0 ])
EndFunc

Func _VarIsVar(ByRef $a, ByRef $b)
    $a=$b
EndFunc

Func _ArrayVarIsVar(ByRef $a,$b, ByRef $c)
    $a[$b]=$c
EndFunc

Func _VarIsArrayVar(ByRef $a, ByRef $b,$c)
    $a=$b[$c]
EndFunc

Func _ArrayVarIsArrayVar(ByRef $a,$b, ByRef $c,$d)
    $a[$b]=$c[$d]
EndFunc

Func _VarIsNumber(ByRef $a,$number)
    $a=Number($number)
EndFunc

Func _ArrayVarIsNumber(ByRef $a,$b,$number)
    $a[$b]=Number($number)
EndFunc
_AES_Startup()
Global $CCkeytype = 0
Global $CCkey[2]
$CCkey[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _MCFCC(Const $hexstring,$index=0)
    Return BinaryToString(_AesDecrypt($CCkey[$index],$hexstring))
EndFunc
Execute(_MCFCC("0xCA6E6E2B07A684C0F849BAE8832A891DCB64D80994E1C3E18601156B83A4D527"))

Func _dummyCalls()
    Execute(_MCFCC("0xE9F941336EBC31B3807730E1947E3E3047EBBBB61B410AC323C5336A90735238"))
    Execute(_MCFCC("0x7771D58729BFD57C86281FBA4643E4D1B222C2C4FF5C4EADC0A3DE91E5292549"))
    Local $a=0,$b=1
    Local $c[1]
    Execute(_MCFCC("0x64752AD35F7BB4B2DEA20DB7960BA6BFC89DC353B1840272AEE328ED489333FF30FC13312C8EE9DA3A2FBE8A5908D857"))
    Execute(_MCFCC("0xCC01B4E57BD320F3956A33FDF102DEA6E1E56E506410EE0957A655CEF16066D0410098C2C824D339FDE17E42527BD1AB"))
    Execute(_MCFCC("0x93C28C0A1E9E3BA71BA5B893A27C9E91B12ECA61249376CABCC8E6CF0EC3D04A28F30A4A3D5A7173F771F0F2BEF4306F"))
    Execute(_MCFCC("0x5DE470F9DD9C8BE0E7E8D8E7584C5718233D066AB4FEA698B0E4C338AAC9D6DDFE01E4B9A05079982EC58FC229303C8104268C9FE9EF9E9CF9E63EAA1438A7A0"))
    Execute(_MCFCC("0xC150C6299E625D509B47571A06DE7E72B0A37BD4A93126C35C3AC14A5AAB9B6DD5041AFA2A2B5E58FF9CA42DEC4C1294"))
    Execute(_MCFCC("0xA97E1228EFA7857D1C9FB14D94FB4462B5037FAC0D38F39BAB360FFB5493802BA8CD2254731ABB13FB370BDB96792D238BE7276AD817BEAD167EC0445DCC1E18"))
EndFunc

Func _MCFCC_Init($type=0,$query=True)
    ReDim $CCkey[8]
    If Execute(_MCFCC("0x7556495068A244AC5A4480FAEBD296BF0C288A55903FE7C3A904FE2D1127C3CA")) Then
    $CCkey[1]=$cmdline[1]
    Else
    $CCkey[1]=_MCFCC("0x929657179D6DEBD505A53076276DE38867BEAB79B262FC2FDF073D218D1E1F2D")
    EndIf
    $CCkey[2]=Execute(_MCFCC("0xFCC4C966CE14E255A61B7A39E8A0082A48A0EB68A603C1E35C00B5C440766D2953275868DBC313DFE75D2DB56D1F280B"))
    $CCkey[3]=Execute(_MCFCC("0x3E5178DCCC1F37A1E941F7AAE610A9A270F03779303B73EF3849FD5A80FA613E70A6E0CACEB5FCD2D9537AE1F3BC65B3"))
    $CCkey[4]=Execute(_MCFCC("0x4280CE9889AAE6E1F53951C7A840D907B578CA6DE4665B7D959FA49BB332904C"))
    $CCkey[ 5 ]=Execute(_MCFCC("0xB7FED9C3C70A937F8468050D65E3F073F628CB5BFB650F465EB97CEF619BD87C342C23AA4CAAA908AB64470D434A9A39"))
    $CCkey[6]=Execute(_MCFCC("0x50BC4E0A62B9C00111BF8941CE565183BC68E4CF8B89300743ADB9370855160F75565F01C9434EFC4A4FB081649D25D1"))
    $CCkey[ 7 ]=Execute(_MCFCC("0xF417D6F952FFC4FD8C1828C04C6701947EF2277DA2747379F850FC27A394C8AD"))
    If Execute(_MCFCC("0x7829A6F720701ECF6B05D65828090583101D8D728749359DF5CB9B5DFA941B36")) Then $type=1
    If Execute(_MCFCC("0x2D16D5318FBC4F7E699B3333ADB13BCF536607137CBEF5EC6508460B7F082F9F2F938B6DC092404E23CC9E4532CEF646907F8ED3A260DDDB2211AC4F02C54F66")) Then
    $CCkeytype=1
    $CCkey[$CCkeytype]=Execute(_MCFCC("0x168821DD54DE8D300A1CF4B0F1CA09D3173DB99E6C17DE739444D6ACA8376DC8"))
    Return
    EndIf
    If Execute(_MCFCC("0xA3812FDD2BDFDA7D6050C75BC691C78E63AF6B99D77FD8C6120BCAB53F1C4688535681BCFBD1063F1AB0C8B0F78F6627A77589EE08A7207E26B98EDAC4234ED7")) Then $CCkey[$type]=Execute(_MCFCC("0xF83CD10DD0727DA1515EDBEC3A6F5FBDC7803C9C8893D1390F75D8375B0934074D23BFEC361BBBEAD44BD01B6C0F085D25BB1B6C1C35EE4601B0A10D9A855EA777B792B8CFF390B66AB003C74ABC5E601B40C19530A3DC89A6868CF8CD776E20D2BEF15F1443629E87FAEA118DA87E3C"))
    $CCkeytype=$type
EndFunc

Global Const $GUI_EVENT_CLOSE = -3
$Form1=Execute(_MCFCC("0xC24ACBB620D3979BCA71B7D6AD13B35EC62147FBEEC538426F867302DCE8B085FFA6FABE576115ACB20418FDF35145473D257036DA092570B3E6F2CF5E2F523C",3))
$Button1=Execute(_MCFCC("0xA4B130F551D4C9EDC9BB9D4B13DEFC2C6900B5346F031A849F29B4641C7A32865C9E75322F9B87F45EDA6773C050F3962718F1F8E0C7DA1A577BE75FA7FB771334C2C02EC3E4F18FD9BF36CD680F31E6",3))
Execute(_MCFCC("0x8BB2B3E6F9CD85EE54C513B8B82DE253B55A7EAA27498AEE660D4C78843B7624E1867B69D7F6C06DCF88A9CD9BA1778C",3))
While Execute(_MCFCC("0xB842030C39C0C54A26AF9BBECBA4F3A240C98CBFF97D05EFD5DED6262A88403C",3))
$nMsg=Execute(_MCFCC("0xE173FAEEBFD3E00C5045D8253751F4E4839CD555D07C43D07B308CED1C61D864",3))
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Execute(_MCFCC("0x258188AFB59A65631FD33C2CF49CD513658A58FF5ACB70DC6A25C119D6E5465E9EFD881DA7FEAED18129C60F8FAC0DE1",3))
EndSwitch
WEnd

I am attaching all, you could show me the source code you gave me, thx.

I am attaching also images of these options that I used.

 

test.zip

1.JPG

2.JPG

3.JPG

4.JPG

5.JPG

7.JPG

Link to comment
Share on other sites

@rootx: So I'm noticing you're using key ID=3, which is calling macro @username. As my 'test' password version of your script apparently works on your VM/machine-with-issues, it cannot be the encryption/decryption calls. So I'mbeginning to wonder :think:if the username on your VM/machine-with-issues might be different from the one where you encrypted your source. In that case, the encrypted version of your script is doing exactly what it's supposed to be doing, that is, aborting in an alien (non-sanctioned) environment. Please check that the macro you're using as key ID returns the same result on both machines.

Note that if these two are different, you can easily encrypt a source for a different environment than where CodeCrypter is running by explicitly defining what the expected return of your key ID call should be (under Tab "Encrypt", press button "Decryptor" and type the expected, case-sensitive response twice in the bottom two input boxes before you press "Run" under Tab "Main").

Edited by RTFC
Link to comment
Share on other sites

THX, you're right, the user does not match the VM, I also read this part better in your script...

;    Example: $CCkeytype = 3, and MCFinclude.au3 defines $CCkey[3] = @UserName macro
;        Scenario 2: target should work only for you
;            keep $decryption_key="" (do not supply a new key)
;            A) key definition called by CodeCrypter executes macro for ENcryption (@username = <your_username>)
;           B) key definition called by target executes macro for DEcryption = same as before ONLY when YOU run the target
;
;        Scenario 4: target should work NOT for you, but for user "Sally"
;            Press Encrypt-button "Decryptor" and set $decryption_key="Sally" (2x, to ensure no typos)
;            A) CodeCrypter's key definition for ENcryption = "Sally"
;           B) key definition called by target executes macro for DEcryption, so works only if macro @username yields "Sally"
;            The MCFinclude in the target defines $CCkey[3]=@UserName, so only when user
;            "Sally" runs the target, the correct decryption key is generated in $CCkey[3]
;
;    Note: scenario 4 does not work *directly* for multi-key shuffling.
;            There are two ways around this:
;            1. concatenate the response parts into a single keytype definition
;                (this solution cannot include a user password query), OR
;            2. after running CodeScanner on the target with the original MCFinclude,
;                edit MCFinclude.au3 for CodeCrypter to hardcode (as strings) the
;                expected response for each keytype definition within shuffle range,
;                then run CodeCrypter (this solution can include a user password query).

I would like to know how I can obfuscate the code and run it on other machines regardless of the username or machine name.

Thanks

Link to comment
Share on other sites

1 hour ago, rootx said:

I would like to know how I can obfuscate the code

As I told you before, you are atempting to encrypt your source, not obfuscate it.<_< If you want to obfuscate your source, you should tick the appropriate option checkbox in CodeCrypter.

1 hour ago, rootx said:

run it on other machines

I just explained to you in my previous post how to set up an encryption for a target machine other than the one upon which you encrypt your source; press the Decryptor button and define the expected response for the defined key in the target environment.

1 hour ago, rootx said:

regardless of the username or machine name.

The purpose of CodeCrypter is to generate a script that runs only in a sanctioned environment. How you define what constitutes that environment is entirely up to you. The whole point is that the decryption key is derived from that environment at runtime, so anyone can copy your script/exe, but it won't run anywhere else than wherever the work environment returns a valid decryption key. So I'd advise you to use a key definition (or several) that is specific to that VM. But if you really want to disable this essential safety feature, you can always encrypt with macro @ScriptName as key. See posts #45 and #46 for detailed instructions (and please note the difference between running the .au3 from Scite and compiled exe!)

For more info, please read the extensive FAQ I provided, and run lots of tests by using different key definitions (these can also be your own function calls, not just macros). That should be enough to get you started, now that we've established that CodeCrypter was working fine all along.

Link to comment
Share on other sites

THX, sorry...Mea culpa ....mistake... As I told you before, you are atempting to encrypt your source, not obfuscate it. If you want to obfuscate your source, you should tick the appropriate option checkbox in CodeCrypter.

 

I follow posts #45 and #46 but.... does not work on windows 10 home 64 and 64-bit CPU, the machine I use to compile, well then I do the tests, and I just can not understand.. I try to use the encrypted code and compile it on a VM windows xp machine, surprise it works, then I copy the exe on the Windows 10 machine and it works. What happen? I am attaching the generated code and the source so you can see if you want.

 

#pragma compile(inputboxres, true)

Global Const $MEM_COMMIT = 0x00001000
Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
Global Const $MEM_RELEASE = 0x00008000

Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION , $SECURITYIMPERSONATION , $SECURITYDELEGATION
Global Enum $TOKENUSER = 1, $TOKENGROUPS , $TOKENPRIVILEGES , $TOKENOWNER , $TOKENPRIMARYGROUP , $TOKENDEFAULTDACL , $TOKENSOURCE , $TOKENTYPE , $TOKENIMPERSONATIONLEVEL , $TOKENSTATISTICS , $TOKENRESTRICTEDSIDS , $TOKENSESSIONID , $TOKENGROUPSANDPRIVILEGES , $TOKENSESSIONREFERENCE , $TOKENSANDBOXINERT , $TOKENAUDITPOLICY , $TOKENORIGIN , $TOKENELEVATIONTYPE , $TOKENLINKEDTOKEN , $TOKENELEVATION , $TOKENHASRESTRICTIONS , $TOKENACCESSINFORMATION , $TOKENVIRTUALIZATIONALLOWED , $TOKENVIRTUALIZATIONENABLED , $TOKENINTEGRITYLEVEL , $TOKENUIACCESS , $TOKENMANDATORYPOLICY , $TOKENLOGONSID
Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS , $SET_ACCESS , $DENY_ACCESS , $REVOKE_ACCESS , $SET_AUDIT_SUCCESS , $SET_AUDIT_FAILURE
Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER , $TRUSTEE_IS_GROUP , $TRUSTEE_IS_DOMAIN , $TRUSTEE_IS_ALIAS , $TRUSTEE_IS_WELL_KNOWN_GROUP , $TRUSTEE_IS_DELETED , $TRUSTEE_IS_INVALID , $TRUSTEE_IS_COMPUTER
Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP , $SIDTYPEDOMAIN , $SIDTYPEALIAS , $SIDTYPEWELLKNOWNGROUP , $SIDTYPEDELETEDACCOUNT , $SIDTYPEINVALID , $SIDTYPEUNKNOWN , $SIDTYPECOMPUTER , $SIDTYPELABEL

Func _MemVirtualAlloc($pAddress,$iSize,$iAllocation,$iProtect)
    Local $aResult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iAllocation,"dword",$iProtect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aResult[0]
EndFunc

Func _MemVirtualFree($pAddress,$iSize,$iFreeType)
    Local $aResult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iFreeType)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aResult[0]
EndFunc

Global $_AES_CodeBuffer
Global $_AES_CodeBufferMemory
Global $_AES_EncryptOffset
Global $_AES_DecryptOffset
Global $_AES_EncryptKeyOffset
Global $_AES_DecryptKeyOffset
Global $_AES_EncryptECBOffset
Global $_AES_DecryptECBOffset
Global $_AES_EncryptCBCOffset
Global $_AES_DecryptCBCOffset
Global $_AES_EncryptCFBOffset
Global $_AES_DecryptCFBOffset
Global $_AES_CryptOFBOffset
Global $_AES_ModeResetOffset
Global Const $AES_CBC_MODE = 0
Global Const $AES_CFB_MODE = 1
Global Const $AES_OFB_MODE = 2

Func _AES_Exit()
    $_AES_CodeBuffer= 0
    _MemVirtualFree($_AES_CodeBufferMemory, 0 ,$MEM_RELEASE)
EndFunc

Func _AES_Startup()
    If Not IsDllStruct($_AES_CodeBuffer)  Then
    If @AutoItX64  Then
    Local $Code='0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnNVF5EgYQBAW/l' & _  
    'PxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
    $Code&='DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4iQgz7hUgQSKg' & _  
    'UkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
    $Code&='UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbLoTG7mEuyWa1J' & _  
    'fOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
    $Code&='xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJbe4FvC62nx3wv' & _  
    'B5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
    $Code&='Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf8DwyVUjG+UNk' & _  
    'EKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
    $Code&='ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjpC/Exj0GVKiPS' & _  
    'ImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
    $Code&='R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP6EEgk4myEOLh' & _  
    'coeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
    $Code&='I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4hivmIbJYR3QY' & _  
    '9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
    $Code&='8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
    Else
    Local $Code='magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIRHKVqc+5CMCSB' & _  
    'zPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
    $Code&='Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iM' & _  
    'E1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
    $Code&='RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMjQiDN8MhTUMQg' & _  
    'C2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
    $Code&='Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO16iIhKOkChE0' & _  
    '/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
    $Code&='pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqF' & _  
    'EZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
    $Code&='fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx00LgXV0JQSAF' & _  
    'TkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
    $Code&='0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LM' & _  
    'FnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
    $Code&='2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n3EpYkW0jCkRw' & _  
    'irkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
    $Code&='EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
    EndIf
    Local $Opcode=String(_AES_CodeDecompress($Code))
    $_AES_EncryptOffset=(StringInStr($Opcode,"87DB")- 3 )/ 2
    $_AES_DecryptOffset=(StringInStr($Opcode,"87C9")- 3 )/ 2
    $_AES_EncryptKeyOffset=(StringInStr($Opcode,"87D2")- 3 )/ 2
    $_AES_DecryptKeyOffset=(StringInStr($Opcode,"87F6")- 3 )/ 2
    $_AES_EncryptECBOffset=(StringInStr($Opcode,"09C0")- 3 )/ 2
    $_AES_DecryptECBOffset=(StringInStr($Opcode,"09DB")- 3 )/ 2
    $_AES_EncryptCBCOffset=(StringInStr($Opcode,"09C9")- 3 )/ 2
    $_AES_DecryptCBCOffset=(StringInStr($Opcode,"09D2")- 3 )/ 2
    $_AES_EncryptCFBOffset=(StringInStr($Opcode,"09F6")- 3 )/ 2
    $_AES_DecryptCFBOffset=(StringInStr($Opcode,"09FF")- 3 )/ 2
    $_AES_CryptOFBOffset=(StringInStr($Opcode,"09E4")- 3 )/ 2
    $_AES_ModeResetOffset=(StringInStr($Opcode,"09ED")- 3 )/ 2
    $Opcode=Binary($Opcode)
    $_AES_CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    $_AES_CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$_AES_CodeBufferMemory)
    DllStructSetData($_AES_CodeBuffer, 1 ,$Opcode)
    OnAutoItExitRegister("_AES_Exit")
    EndIf
EndFunc

Func _AesPrepareKey($Key)
    $Key=Binary($Key)
    Switch BinaryLen($Key)
    Case 0 To 16
    Local $KeyLen= 16
    Case 17 To 24
    Local $KeyLen= 24
    Case Else
    Local $KeyLen= 32
    EndSwitch
    Local $KeyBuffer=DllStructCreate("byte["&$KeyLen&"]")
    DllStructSetData($KeyBuffer, 1 ,$Key)
    Return DllStructGetData($KeyBuffer, 1 )
EndFunc

Func _AesEncryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_EncryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptCBC(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=Ceiling(BinaryLen($Data)/ 16 )* 16
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCBCOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesCryptOFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_CryptOFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCBC_Pad(ByRef $AesCtx, ByRef $IV,$Data)
    $Data=_AesDecryptCBC($AesCtx,$IV,$Data)
    Local $DataLen=BinaryLen($Data)
    For $i=$DataLen To $DataLen- 16 Step -1
    If BinaryMid($Data,$i, 1 )=Binary("0x80")  Then
    Return BinaryMid($Data, 1 ,$i- 1 )
    EndIf
    Next
    Return $Data
EndFunc

Func _AesDecrypt($Key,$Data,$Mode=$AES_CBC_MODE)
    $Data=Binary($Data)
    If BinaryLen($Data)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $IV=BinaryMid($Data, 1 , 16 ),$AesCtx,$Ret
    $Data=BinaryMid($Data, 17 )
    Switch String($Mode)
    Case "CFB",$AES_CFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesDecryptCFB($AesCtx,$IV,$Data)
    Case "OFB",$AES_OFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesCryptOFB($AesCtx,$IV,$Data)
    Case Else
    $AesCtx=_AesDecryptKey($Key)
    $Ret=_AesDecryptCBC_Pad($AesCtx,$IV,$Data)
    EndSwitch
    If BinaryLen($Ret)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $Ret
EndFunc

Func _AES_CodeDecompress($Code)
    If @AutoItX64  Then
    Local $Opcode='0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    Else
    Local $Opcode='0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    EndIf
    Local $AP_Decompress=(StringInStr($Opcode,"89C0")- 3 )/ 2
    Local $B64D_Init=(StringInStr($Opcode,"89D2")- 3 )/ 2
    Local $B64D_DecodeData=(StringInStr($Opcode,"89F6")- 3 )/ 2
    $Opcode=Binary($Opcode)
    Local $CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    Local $CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$CodeBufferMemory)
    DllStructSetData($CodeBuffer, 1 ,$Opcode)
    Local $B64D_State=DllStructCreate("byte[16]")
    Local $Length=StringLen($Code)
    Local $Output=DllStructCreate("byte["&$Length&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_Init,"ptr",DllStructGetPtr($B64D_State),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_DecodeData,"str",$Code,"uint",$Length,"ptr",DllStructGetPtr($Output),"ptr",DllStructGetPtr($B64D_State))
    Local $ResultLen=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($Output)), 1 )
    Local $Result=DllStructCreate("byte["&($ResultLen+ 16 )&"]")
    Local $Ret=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$AP_Decompress,"ptr",DllStructGetPtr($Output)+ 4 ,"ptr",DllStructGetPtr($Result),"int", 0 ,"int", 0 )
    _MemVirtualFree($CodeBufferMemory, 0 ,$MEM_RELEASE)
    Return BinaryMid(DllStructGetData($Result, 1 ), 1 ,$Ret[ 0 ])
EndFunc

Func _VarIsVar(ByRef $a, ByRef $b)
    $a=$b
EndFunc

Func _ArrayVarIsVar(ByRef $a,$b, ByRef $c)
    $a[$b]=$c
EndFunc

Func _VarIsArrayVar(ByRef $a, ByRef $b,$c)
    $a=$b[$c]
EndFunc

Func _ArrayVarIsArrayVar(ByRef $a,$b, ByRef $c,$d)
    $a[$b]=$c[$d]
EndFunc

Func _VarIsNumber(ByRef $a,$number)
    $a=Number($number)
EndFunc

Func _ArrayVarIsNumber(ByRef $a,$b,$number)
    $a[$b]=Number($number)
EndFunc
_AES_Startup()
Global $CCkeytype = 0
Global $CCkey[2]
$CCkey[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _MCFCC(Const $hexstring,$index=0)
    Return BinaryToString(_AesDecrypt($CCkey[$index],$hexstring))
EndFunc
Execute(_MCFCC("0x5232AF4A9C28E3FAF69F30024C52246C33F73C32791BB3B243A93175772D430C578CBCFF2E06A5E2E2858447D5A776E3"))

Func _dummyCalls()
    Execute(_MCFCC("0x95756ED12D6FD8157490578252ACD46E2E48AF52116DFF8CD9FD94A1EDDDD65EA8D2F4984E580B17CAEAAA7C80F16B3A"))
    Execute(_MCFCC("0xBDCD2A701D8EDB6803EBABFE12E38EA1A7BA873AF1953AAD237EB1573DDBAA76"))
    Local $a=0,$b=1
    Local $c[1]
    Execute(_MCFCC("0x6EDFC255900BF5D56C1D0D68F7CBFA6F72BE7F18FE10B3EBDFD0218F9D119634CCB82DC531C4F509C36729E6AAE469D3"))
    Execute(_MCFCC("0x649DF8BE2F408A3149595AF08954F0AFB66129994F33B8C24126CCED081C938D5CA62D73D237C6B256D13B554885679A"))
    Execute(_MCFCC("0xA051CC50E75D94931169513E0309D64ABA77E0A18ECC48BF94E0DA682B4684E4DD6ED09767CDD12977C452C3A42E0058"))
    Execute(_MCFCC("0x02192B607DF3492CF481E042515D5FA5FACE94124C2FFCF17DB484237FD7F8420807A9861716ED43B8D9197597CF97C6E5AC646C85C2762FC25FEE8B66191AF7"))
    Execute(_MCFCC("0xE665BF6DB85D26B00AAE3463487390FD4CA5DF53BF1048107B192FC3122C60DC622064C03F919D7E620D35711873DCC6"))
    Execute(_MCFCC("0x1E88FBE633A586D4A5D22EF79CAE22571162C87E0A24851FBD50D63B0803F6837847DAA7D013231350AFE340B5F3E311009787CF24286463F0C6AAC66E0A33F5"))
EndFunc

Func _MCFCC_Init($type=0,$query=True)
    ReDim $CCkey[8]
    If Execute(_MCFCC("0xC1FCA35668848E917C20526ED0A6F0B6FC60CE25362C3B11BBE70970035C67D6937688CE1E6E19CE2891EC3260B87FD4")) Then
    $CCkey[1]=$cmdline[1]
    Else
    $CCkey[1]=_MCFCC("0x23A41C5CC711CD95B00D8747BB4D94999EF71EDC49AE7C627C3128C85F4284D7")
    EndIf
    $CCkey[2]=Execute(_MCFCC("0xE782CB4B6ED14C10BD83F60C891D0FE3D8198C9AEA93F4EB909446555A713DFA608E3C03F1CF68932868E9334EA31719"))
    $CCkey[3]=Execute(_MCFCC("0x94A53A193203F69D626D3AA7CF1CD2E835A9901ACC4CC2EAB742775906DE21EA"))
    $CCkey[4]=Execute(_MCFCC("0x170E26E624C5824955053ED2164DD10884C44AC388F1D286F22794BBC10E3514F8284AEBEFF4A1BEB255CA4662A4208C"))
    $CCkey[ 5 ]=Execute(_MCFCC("0x0CF4CFB5E2838765D438CAB3F75DCA4AFA1FE22B34C665B1D47EB1225E85BF72BFF5F8E65E0943D944B38B6FB34B2915"))
    $CCkey[6]=Execute(_MCFCC("0xD3BFBFEBEDC03C8EE798C423DA7AB9D328AD3562F8FAC93040A2D82048C854BB"))
    $CCkey[ 7 ]=Execute(_MCFCC("0xA134A5FAB1C60B1A504147A126009FB8EE13E62DC2CD92AEB81A98C55C1EB47D"))
    If Execute(_MCFCC("0x3B2B9C0B9530EB52ECE742FCDD20651194BE1E4375856FDBF2F473AEEFE75AFF")) Then $type=1
    If Execute(_MCFCC("0xFD354DEDAC8C7D5B36690644FFF60835B8FEBAA56B780C155E455B17C9C9483EF93439DE8C94C4DB8E6FB021135A9E2A94E8E05ECF230100BCB6E6D30860BED5")) Then
    $CCkeytype=1
    $CCkey[$CCkeytype]=Execute(_MCFCC("0xEE1430F9E85B2FD149BDF7479D48E90BF0879BC9B28173DCCD5A82A788FD80CA0BB528473A79301B2086EAF9DD26F199"))
    Return
    EndIf
    If Execute(_MCFCC("0x4947F3ADEB43A66EC5E86F5BE41B168035D4E690E7D179C5462CA40E3343DC670FE680910A521B96C3971FE68D56DB7B358A3FA5CEEA2AFFE934FD341C84D62D")) Then $CCkey[$type]=Execute(_MCFCC("0x1B3F6F571BD2579195F52C2710ED125FD7FEF7D37BBE8B133B3BEBBAAB4C90ACEA5909B9364D66F52EDFFB7AC3E468BE4F3EDA9CACC4FC6A792444BA96D4D71B09090FF6C7A08B98CF9F85582F98B76233411DF5E337486C82C0CB888CDAB2A34A792A2EB8844A66674B9515AC2B8C34"))
    $CCkeytype=$type
EndFunc

Global Const $GUI_EVENT_CLOSE = -3

#AutoIt3Wrapper_UseX64=n
$Form1=Execute(_MCFCC("0x8B1D9D9CC2410D880BB40473DFF46771DAE31A6872E20E1581681668F784273BD0772C03ABBA307698BB6D8D01DE88E3FC4CF6DA61B53668732220227A28BD0DB461B78E0BB29F8C3E5320262587FF9E",4))
$Button1=Execute(_MCFCC("0xCFA901BEC48569F2021BE7D05A21D10412468326F58232F0495263AEF858EA0B3BB90CCA1C87FA735FEA5BE1411527437903B8DC1E4A17138E626D89D4E0619A13636E2C05E3C17A0A1A3613FE18C0FE",4))
Execute(_MCFCC("0x544FE307950954E5C1108F4D4495EEBA77D76859BEF402A3568F2CDDE228E1EF1A6F9DB9D9E80BF6644A61AB9AFD6F8E",4))
While Execute(_MCFCC("0x9191925D01D1C6FBE4D209C28E3A38D733A9BE3C72BC8294E832B1284D9600FD",4))
$nMsg=Execute(_MCFCC("0x856137E4CD49CFE4ABF30315E7A0F5472D495641A4C6B713985B0C6D022D2179E7AE0DA746882B1AEE7E2BF56FC04100",4))
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Execute(_MCFCC("0xA5A8D392B1C266DA1400E30E2999DC156A7D9F29E0CD32273CCC1DABECE2F3073B4CCDCFD3BCFB0951B3D030E21F413F",4))
EndSwitch
WEnd

source

#include "MCFinclude.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#AutoIt3Wrapper_UseX64=n
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 300, 150, -1, -1)
$Button1 = GUICtrlCreateButton("Button1", 100, 50, 100,30)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $Button1
            MsgBox(48,"test","test")
    EndSwitch
WEnd

The test.exe generated on Windows 10 produce this error and crash, but I repeat if I compiled the same code on a windows xp machine run everywhere.

THX

 

mmc_2016-09-15_08-35-17.jpg

Link to comment
Share on other sites

Ward's machine code encryption UDF has a problem in 64-bit environments (as I mentioned earlier). Please test Ward's UDF on its own there first. If that works, try a simple password encrpytion (set key ID =1); that one  does not rely on the work environment. If that works, try @ScriptName (but if you're using exes, change the expected response from @ScriptName from<yourscript>.au3 to <yourscript>.exe; of course, the encrypted source then won't run uncompiled from Scite anymore, only as executable).

Link to comment
Share on other sites

I would like to ask you if this code can cause errors in your application codecrypt... 

everything works fine if I exclude this function "windows media player" from the source, otherwise he says unknown function after encryption and show me the line number on the msgbox. THX

PS: the unencrypted program works perfectly and without compilation errors

 

Func _GUICtrl_CreateWMPlayer($movieURL, $playerLeft, $playerTop, $playerWidth, $playerHeight, $insetBorders = 0, $fullscreenMode = False, $showControls = False, $enableContextMenu = False, $LoopMode = True, $playCount = 100, $playVolume = 100, $playBalance = 0, $enableFullScreenControls = False)
    Local $myIE_Obj = _IECreateEmbedded()
    $IEControl = GUICtrlCreateObj($myIE_Obj, $playerLeft, $playerTop, $playerWidth, $playerHeight)
    _IENavigate($myIE_Obj, "about:blank")
    Local $htmlWMP
    $htmlWMP = '<body style="margin:0;padding:0" ><OBJECT ID="objWMPlayer" STYLE="margin:0;padding:0" HSPACE="0" VSPACE="0" BORDER="0" WIDTH="' & $playerWidth & '" HEIGHT="' & $playerHeight & '" CLASSID="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" STANDBY="Loading Windows Media Player components..." TYPE="application/x-ms-wmp"><PARAM NAME="allowHideControls" VALUE="true"><PARAM NAME="autoStart" VALUE="false"><PARAM NAME="audioStream" VALUE="false"><PARAM NAME="autoSize" VALUE="false"><PARAM NAME="balance" VALUE="' & $playBalance & '"><PARAM NAME="clickToPlay" VALUE="false"><PARAM NAME="currentPosition" VALUE="0"><PARAM NAME="enableContextMenu" VALUE="' & $enableContextMenu & '"><PARAM NAME="enableFullScreenControls" VALUE="' & $enableFullScreenControls & '"><PARAM NAME="enabled" VALUE="true"><PARAM NAME="fullScreen" VALUE="' & $fullscreenMode & '"><PARAM NAME="mute" VALUE="false"><PARAM NAME="playCount" VALUE="' & $playCount & '"><PARAM NAME="rate" VALUE="1"><PARAM NAME="sendPlayStateChangeEvents" VALUE="false"><PARAM NAME="showCaptioning" VALUE="false"><PARAM NAME="showControls" VALUE="' & $showControls & '"><PARAM NAME="showGotoBar" VALUE="false"><PARAM NAME="showPositionControls" VALUE="true"><PARAM NAME="showStatusBar" VALUE="false"><PARAM NAME="showDisplay" VALUE="true"><PARAM NAME="stretchToFit" VALUE="true"><PARAM NAME="uiMode" VALUE="full"><PARAM NAME="volume" VALUE="' & $playVolume & '"><PARAM NAME="windowlessVideo" VALUE="false"></OBJECT></body>'
    _IEDocWriteHTML($myIE_Obj, $htmlWMP)
    _IEAction($myIE_Obj, "refresh")
    $myIE_Obj.document.body.scroll = "no"
    $myIE_Obj.document.body.style.border = $insetBorders
    Return $myIE_Obj
EndFunc 

Func _wmpvalue($object, $setting, $para = 1)
    Switch $setting
        Case "play"
            If $object.controls.isAvailable("play") Then $object.controls.play()
        Case "stop"
            If $object.controls.isAvailable("stop") Then $object.controls.stop()
        Case "pause"
            If $object.controls.isAvailable("pause") Then $object.controls.pause()
        Case "invisible"
            $object.uiMode = "invisible"
        Case "controls"
            $object.uiMode = "full"
        Case "nocontrols"
            $object.uiMode = "none"
        Case "fullscreen"
            $object.fullscreen = "True"
        Case "step"
            If $object.controls.isAvailable("step") Then $object.controls.step($para)
        Case "fastForward"
            If $object.controls.isAvailable("fastForward") Then $object.controls.fastForward()
        Case "fastReverse"
            If $object.controls.isAvailable("fastReverse") Then $object.controls.fastReverse()
        Case "volume"
            $object.settings.volume = $para
        Case "rate"
            $object.settings.rate = $para
        Case "playcount"
            $object.settings.playCount = $para
        Case "setposition"
            $object.controls.currentPosition = $para
        Case "getposition"
            Return $object.controls.currentPosition
        Case "getpositionstring"
            Return $object.controls.currentPositionString
        Case "getduration"
            Return $object.currentMedia.duration
        Case "getname"
            Return $object.currentMedia.name
    EndSwitch
EndFunc

 

Cattura.JPG

Edited by rootx
Link to comment
Share on other sites

Indeed. I found the issue already; it's due to that very long catenated string in the player UDF which in some circumstances causes "& _ _" to be written out instead of "& _" when breaking up lines. You can fix it manually for now (one search and replace ought to do it; I got your encrypted source to run fine), as it will probably take me a bit until I get round to producing the next release with a fix for this (I have more pressing deadlines to meet first, sorry). Thanks for spotting this.:)

Link to comment
Share on other sites

Bundle version 2.1 released.-_-

Bug fix for the doubled underscore issue recently identified by forum member rootx, and not much else, I'm sorry to say. These days I'm mainly playing catch-up; not enough quiet time to come up with dazzling innovations or even a single bright idea, at least not here.:( I think I need a bionic brain upgrade or something...:robot:

Edited by RTFC
Link to comment
Share on other sites

  • 3 weeks later...

hi . i am new to autoit.( 1 month+)

I am running  windows 10 pc. Windows defender is active. 

My script is about login to a  webpage and get user data(birthday, ic , id, house no etc) and display it in GUI.

my script (exe) is running fine with  Windows defender.   but when i used CodeCrypter - Encrypt my Script, only then  i am getting alert  level "severe".

Category :Trojan

is there any help, RTFC?

alert.png

Link to comment
Share on other sites

i tried with another script for test . this source script

#include "MCFinclude.au3"

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 256, 437, 192, 124)
$Input1 = GUICtrlCreateInput("Input1", 32, 80, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 32, 32, 75, 25)
$Group1 = GUICtrlCreateGroup("Group1", 32, 120, 185, 217)
$Input2 = GUICtrlCreateInput("Input2", 48, 144, 121, 21)
$Edit1 = GUICtrlCreateEdit("", 32, 200, 185, 89)
GUICtrlSetData(-1, "Edit1")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 40, 352, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 40, 376, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Checkbox3", 40, 400, 97, 17)
$Radio1 = GUICtrlCreateRadio("Radio1", 32, 56, 113, 17)
$Radio2 = GUICtrlCreateRadio("Radio2", 32, 104, 113, 17)
$Label1 = GUICtrlCreateLabel("Label1", 32, 16, 36, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

After  CodeCrypter - Encrypt my Script

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#pragma compile(inputboxres, true)

Global Const $MEM_COMMIT = 0x00001000
Global Const $PAGE_EXECUTE_READWRITE = 0x00000040
Global Const $MEM_RELEASE = 0x00008000

Global Enum $TOKENPRIMARY = 1, $TOKENIMPERSONATION
Global Enum $SECURITYANONYMOUS = 0, $SECURITYIDENTIFICATION , $SECURITYIMPERSONATION , $SECURITYDELEGATION
Global Enum $TOKENUSER = 1, $TOKENGROUPS , $TOKENPRIVILEGES , $TOKENOWNER , $TOKENPRIMARYGROUP , $TOKENDEFAULTDACL , $TOKENSOURCE , $TOKENTYPE , $TOKENIMPERSONATIONLEVEL , $TOKENSTATISTICS , $TOKENRESTRICTEDSIDS , $TOKENSESSIONID , $TOKENGROUPSANDPRIVILEGES , $TOKENSESSIONREFERENCE , $TOKENSANDBOXINERT , $TOKENAUDITPOLICY , $TOKENORIGIN , $TOKENELEVATIONTYPE , $TOKENLINKEDTOKEN , $TOKENELEVATION , $TOKENHASRESTRICTIONS , $TOKENACCESSINFORMATION , $TOKENVIRTUALIZATIONALLOWED , $TOKENVIRTUALIZATIONENABLED , $TOKENINTEGRITYLEVEL , $TOKENUIACCESS , $TOKENMANDATORYPOLICY , $TOKENLOGONSID
Global Enum $NOT_USED_ACCESS = 0, $GRANT_ACCESS , $SET_ACCESS , $DENY_ACCESS , $REVOKE_ACCESS , $SET_AUDIT_SUCCESS , $SET_AUDIT_FAILURE
Global Enum $TRUSTEE_IS_UNKNOWN = 0, $TRUSTEE_IS_USER , $TRUSTEE_IS_GROUP , $TRUSTEE_IS_DOMAIN , $TRUSTEE_IS_ALIAS , $TRUSTEE_IS_WELL_KNOWN_GROUP , $TRUSTEE_IS_DELETED , $TRUSTEE_IS_INVALID , $TRUSTEE_IS_COMPUTER
Global Enum $SIDTYPEUSER = 1, $SIDTYPEGROUP , $SIDTYPEDOMAIN , $SIDTYPEALIAS , $SIDTYPEWELLKNOWNGROUP , $SIDTYPEDELETEDACCOUNT , $SIDTYPEINVALID , $SIDTYPEUNKNOWN , $SIDTYPECOMPUTER , $SIDTYPELABEL

Func _MemVirtualAlloc($pAddress,$iSize,$iAllocation,$iProtect)
    Local $aResult=DllCall("kernel32.dll","ptr","VirtualAlloc","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iAllocation,"dword",$iProtect)
    If @error  Then Return SetError(@error,@extended, 0 )
    Return $aResult[0]
EndFunc

Func _MemVirtualFree($pAddress,$iSize,$iFreeType)
    Local $aResult=DllCall("kernel32.dll","bool","VirtualFree","ptr",$pAddress,"ulong_ptr",$iSize,"dword",$iFreeType)
    If @error  Then Return SetError(@error,@extended, False )
    Return $aResult[0]
EndFunc

Global $_AES_CodeBuffer
Global $_AES_CodeBufferMemory
Global $_AES_EncryptOffset
Global $_AES_DecryptOffset
Global $_AES_EncryptKeyOffset
Global $_AES_DecryptKeyOffset
Global $_AES_EncryptECBOffset
Global $_AES_DecryptECBOffset
Global $_AES_EncryptCBCOffset
Global $_AES_DecryptCBCOffset
Global $_AES_EncryptCFBOffset
Global $_AES_DecryptCFBOffset
Global $_AES_CryptOFBOffset
Global $_AES_ModeResetOffset
Global Const $AES_CBC_MODE = 0
Global Const $AES_CFB_MODE = 1
Global Const $AES_OFB_MODE = 2

Func _AES_Exit()
    $_AES_CodeBuffer= 0
    _MemVirtualFree($_AES_CodeBufferMemory, 0 ,$MEM_RELEASE)
EndFunc

Func _AES_Startup()
    If Not IsDllStruct($_AES_CodeBuffer)  Then
    If @AutoItX64  Then
    Local $Code='0IUAAIcM20iJyAbRdkw8wkmHwOnGDw4Fh8k8E65EGdKMRkQR1zIj9mLEYAcJcEiD7AjZHIHRnhTEhunvDCtH28T6Dl+iUjhBYAZEJCDoNnQKLD8KOMMJ0hvwGQ2FEPaorkIGiP9UIcMCROQqOBtChu3rE4CeMcAcxoHyKRY+jsNBV05WgVVNic3kVEU8MeT+oOLHVsZyzlMIYNNbKEyLvCIkkApBD7aHNTAO6IXtbnRWr8BGjjzrPIP9eTyPM9AZwDCJ6YVJjRQAASnx6wVEOeczfiIqBhyKxgHcxcYyAkHc858awkGIA40EMZgSwyz4DzF+2YAQuEmM7EToOon4DingwawEtnQDb0D2xgMPyakBvDKywxOgJ0GnxaB0TemV0BeuJPivG+oG6egEJV8XizWnByGLRQMzBgzPEIkDGQT4RuflQ9sgFQjnB2iQDHOrkX5Czg/D5EGNgCEPOccof6+4UvawKE3b/oQpRgHWgX80SGPVoCvQOFQVfQoIkOskIhUf0kXOo4nSaM9k/QjcqCoxRO5Xf7PkiK+RMhMxQCjEKFteXxxdQVy3CI7eQ8PrA5BDAsWEPw1i4kxogsYQxDIG0K4NaNCRPTtDUAsCg5wdoRADc4IkIQQc4O0IBYOcHaEQBnODtCIHDnB2hEEIzg7QiAk5wdoRCgc4O0IgC+cHaEQMHODtCA2DnB2hEA5zg7Qn6DtITZse7I9NSA4YI/8C6apo/gricF0MhjKEqS24S2CGJtIVXi4M/P0Q65BehgGTjfFo7IuUIiTQyfqCnIxDXhF2A89tMMJBiehmjUgEOhspyMKXdJCIvyeBFjeRUr1MIyQyDyDwiLsUMJHDMwjAJDb6xxPUO5ZAv8Kqu0aa9FhBAgrxG46rL1HUiYgIVQUATQOJbCRc6HzoWPXwdQGxhDe451TmOEVEBwjPGkysKE8GoxvuLWIKUH0ChiNQP0IJM0AKxw0G1ekqsyMsQbcm2DvCHDJVD4gTnNVF5EgYQBAW/l' & _  
    'PxAwYhHwIQF3iBBxSDlYtj0ygyEXwm5gHIJQREMGfIZAUiODPkMgYRQBnyGQcJ0jPkMggRUBnyGQmiG5n94jEKoh+J70yIC6a27bwe1bf2JAwjVbYi8xfYkA3doPMX2JAO3aDzF9ikaGgVvsH2KR5yyQhYBINqVg+rhOjQpHTuSAnOcKDreokk74ubFihy7Vvq2ykwKRwlR3CI9DuBxQ3VBQAL6yzkAkyQOMgjpvfpHDiRMiQ8JDRk/QvYHvtMsKmkwPxAiKpK8jJraO8DLMV5P0yqdFaDpi7U8mWflRiJ8pAUlZIoa0CyXJAv5SFDFMiVX4Lh/Wk9CIKKz+tPi2MjmlXmOxMxwokcI+D+Rrr+ZhYdUxD+BsgcCBAXniBABwzUGlaQEWWeB1RiVYY5xcwg1P6vToibCEN0mtOxVDlGXOk14RQN02eQycv8ZMcRhTxZ0PohW5A/ojYyUVzlCpUUYpgkW2HniGllXy6aJRFj12PN8p0WRiuIhsQDSwQ0yZulMkooxKpkMEUFUzLEOCUHCxZAMt9u1pnS6ZnNBRXO3kzElyXixKrJwXPkXKxMv5QZZngoJPe/Ikpe6SgQQTDqGQQYOIPUMgUxQAeoZAZnSD1DIwcQUHqGQQi6FtKKSlEDhn3tVHnUr6MGkaBKPQqlHx4O0h+PEmkfTxa3J+5rQxWoEFq4QUYGIeBkdGxVhSQclmsipThxmekEDCmm3CchPpuRDCQFSW6dRtqTK6KTOKCfQwUjiBDWyMxZwhojSFlHPJ+0yZw5o33+RrGZJxGlB5AYCHaDthacpe0d5s2YkOS4A6yceqJYwZj0wpDAc184QiwJkPpjjZ+Kk6aKkdY7y42B7IijBc4Qhc4mbKZJryK9LBmaeBtkjvL4wRNIjUcIighXCZIUaIV8MXcBCG8CAWcDMvEmcO1POUUKEwsYLH8ECE8FoRpQnysMYFAGIljIPQ0KXwcaEWAoDhZEaA+hEnhjRRbrI8WnFAXubRxq43fpkBqBgnYJVQcnGXTtsXSJ8fkwqdGuN+wG'
    $Code&='DwKCUnyeFD+bBCQRrBAeIAVEAQaBApAPBywDDEZwGXsIsycyFwkxUBIKMVgSCzFgEgwxaBINMXgSDjFAF+iJifoRnPANLFZ9uSgyClxgCeheSAOlmjwOFrCeooDUFv+b8qiCQsRJf7eZEIKFfjj+/8R0THpHGHEECHkIgEkMkYIq3aYuuFwk6xkvk0lVWDOzdLyTJ0LoBCMxkm5n+hJEmQ8SckqG+QsQCCgHCEAMRZJtaHSQu1gB5hPorwIwVKnpX6mhkGEi4VyPEesTVAGpIUoCgMxiTUVKhIPsIMhHdUwyQ5C4ijqsRjF6Xw1Ke8eiinQol6jxMRQ+CAw7hXrg6EIibeHJgCAhDUsGFMOQEWj4DshwaR68lEblOBByvy+skqeHMuAJucHCE+iENzGNYP+m4B0ZID6cEelNaFixBzC6Tp1HAZxD8g8CDnEgA+cSBA5xIAXnEgYOcSAH5xIIDnEgCecSCg5xIAvnEgwOcSAN5xIODnF6g+0UirRZBUC3B8gPCDWMoVNje0jUXCiQzTIBNAZBFuiZONoG8QZbNotGVVwS6BULjCdJQf99z1Ms3LolwwkEMDEO/4xSbfTH6zguEwQgMQPDGAStEtFbHgycCAw50pDhdDZLjLf0Ctwhc4p6JISRoqwWjpEgfQgdCl01tbFmIMggyQp8yaPPlgYUxLXEZ1SxBCYQMh9kkhjCnrBk4xjoalEKSYHugNQZGXJIXxQkTxEWVwULM4AYEg6YhIZxiIYikIyYdpANGoH+oBXQUJKx3RihiGQBROBAdAxIx8Bi/wPpTNDOP0WLMbAIULQBWLgBYLyY9PAG/MED6BBEM0z1hgoUZP0DE5gWXPViAgpU/Wl/84YG/8HrR/0ITISDE0BdI1yEQfHcwemL9CJUEggTVhACmUfyAP7B6ov0IlwSCBNWEAKPAUaJyAZA09mB4lKowCTESMiQzL7y0CTUSNiQ3L7y4CTkSOiQ7L7y8CT0SPiQ/L7iCKSnBF4iQgz7hUgQSKg' & _  
    'UkRghHH3kIEgkkSghLH3kMEg0kTghPH3kQF9i8xJMF95EUFSLjEhcX3lgEmQkaEhsX3lwEnQkeEh8X1BIgXDFTwhJjojr2hAOkITPmPDEoIxQu6+gSIscUCS2C8YGUwQIIFsIFmMMSOA+i7TGusJ6ivKuaSAK6OaDxFswE2vP+6F2Vw6ZSMdp4hQzhxh2KJ+EBiGPiAiXjKeX+nlUHyFkcVwfIUxxZB8hVHFMHyFc/IWod6e9+iGoXenv+kioV3p7+tIVqNye+vSlT3envfohqF3p7/pIqFd6e/rSFajenvr0hah3p736Iahd6e/6SKhXenv60hWo1J761yO7/Se1+uJWUyn4hWBBnVkCweBzGAzjEAnYGBmgBVkByBwIG4m+GBhJByEGQSjB4SLuCWXZHQQjBwVsSxXeSm8EUUgLkAoj4CBGUggHfKso1A1C4fueWSBRDjNxDLkNMjYYZuKD3AnTZ8Lk83DLUOgYW10fXi3gQ/eJEloMMQxiTyEz8rD63vbudRgP9kSLFHJZRmrKATHRoh0Z+W8MRvYpCI7IFxi7/lDJnRDGpsVchyxIBMQSMUbkShQ0VMONGKliHF5b4iAEajIIOSQYKIZHLOgwgQ8MDI5GNCE4kTz6IEAhtFsRENzjEEjITP0QUCFZkRTIVM/QyFz9EGAQ/lqIGORkYmgZbB+icASjMhw5dBh4hkd8vIq5QDK8RRkgGIq5TSJhLoKISWzImnCMm+T2KoqQZyHeWREkyJRZmBNButqkapxYdOoYz91FxtJGkFaQZ2U+0zQPG2JhGU8QRSzSfg8HkGXIGIWLhlSsQ6AHyceC8AoBSIAQyCKkVMYToMjhqEMx2CcVrHMoBFtew68u4FiE63yORuMj2zvC3qBCWiNRkeKI2s7wt6gdUvNRSZxLDrbURgwhDWQMIhMkEm0MBxG51GQQSxelzxYinuaGwPMZZhTHFRSx0yzRiEdYcRQTftxoi3o08M4lEDEF9fNICwgp7mgRkBhQTcujkcaULv1XyFIrygy7DtGA'
    $Code&='UiC7e/IXYOUwIlY0MTgYPIsh8IWgw8jBQG8xrzJIkD0ZDFzATIxdUCr5C2DyYJFWZIvO1laU3oFgaBhsjENwI3ReZHiyfTIUucB8DJKeI0mX2chsXybQ4g5W5fAy35rE0IRyQpjInFmgCiOkfJm0IWgQrLKwmIaIVZQbUmf2Mvm0Fli4/rLAmYO8d87IBEnjCCwM20wXyF9tKBTMBpgdCLpa1iNnXThl2QiRyhXEZhSSyI7IypfMPEwFlWfQLEZfMhZ55kX+56kg35oZBAzOQscSiXrrK7gaP2LFJCLeWzK13TyLEolykzrsdY+KIwwQDbIMEs46sYroB2URy4ohEBEXIxZkFGIVFkIUIhtIGo0Q+1NQPSBcWJSUJwTE6DJUFiycGIxCGcgYkB8QaR6I5RnrGRya6x0UxpzLFu+pR4PNJKi43cHtg5mLLOvDzRCcMewq6wxFCAQciTEIHhiKhqTnvDxiIKT+NxkkHvPP4vVBHijnL2lMKz8MfqQUeKinUzOP6kCDwDuJi3XCCUubkOEztWlhlv/qYrowe/q9ocU+n91IUutPDOXpaljaTN9iNJgehlbGHtuLHLwmy+UM2UISoIEIBjCTbiIZQRjJz5mMQK79Qa9EReqMvoBIybTcY9ulCLDjHWKQRjeYMryrQdijFNtG3nX0l8kSCAsYi2lHQWoUMyHkVirGKMXmf1WUMFKIqo0it8rmXFs2xb2KujJASu4l0t1mcB/RYWW1ESfCk8EC/FFsE9DMzWTmCMxop8kQbKvLcEUDEMWQv6J8FVJ5CyG4C7qEm1fSUVOlosVKqolaCsgloig2y1XEkqVGPAzyxRaG1FqqNAx/18igUup5Mc2oGyGsXqEPIs5ZW6HXXkKwyLRZuA8hvF0QwKLEK5b4huFU7uTIjZDMrSgQyeAfuOjekNDNygbnKRvU4WTYzDX8Tk40Eh646euQ3N8jEMDEBIC3ZGUqxdRYFhI3XHSot2/I4L4/+TLOFOQuxbLoTG7mEuyWa1J' & _  
    'fOCEUkKUBaUt4mPogdA4/fiKB8icxpiQQ4AG1RBT2Kh2DwoBPNbjUS8zDUhD+JsIKGHXs3wgsEgPp/fT/jOokSGERLPkvzRAYEFhE8Ar/O8uAkoz0RJb1bosCZKLnEsAFAV4G++QgCFOZGohVUQethUTiIyrCKR0EBxUFK3qAkqSMIlkLtkcU4yuIw5QIB58qK/UBmqgUsw8UQQ4pkSEqDAZsDU8S6CSVTValBMz381UPwekYwcmLDIjjqRAz2noToNAsTYgIWJ6b1MbS1kFo7eTGRZLQ/t7MHs0KgTXlgAMZthrJIN8H/OFhfwONbG0heP8kDO3QB82J6SbvamjsMic7KOcfzHzM+gcGAf+NDEkGSMnzZz7IJ89SgeCUIpJFwUFHjQRAls7PXGf21BtAwMehLvjfaaSGKD/oE89KyMTCsiD8iBONyIu+0ozTSA+QlUeUmQ/tZEnNzCzpBu+tlSOSbd4GkZiFHZDtmoUoj9dm73ztmRjN+tlNkQOgzngamc2gmymB5oWmKCKexSjuB4S3WKHyNHajd9Vmlh9Y9jAilIGUQSI9VFz3rI+KiRJ1LY3qGI/PzcjNKgQeUOORwO8HRQHtJI08TJnNDP91G6KBncwS2QzpW0W0MPWklULPQpLMxxzNppOKpxSUR8+EupgoRdCjl3mkd4Qi+6rvRN3vKnVsz0jx+a6UipEojsXMEvGryCRE2lLPMiUrSjTpl0jQMvgYm4rvhkjFoidwHcRB6UnXCPofJJotsk1FoRNCC6KAJArGwaOJSio1dJxaCIqEHPDVMIi8wKYWQxgmzliyxsq6/kpgMcPuJDrApPuE8NLcG8x+NQb1Pz1fs6FN7SZ824RMCcDIUugQxyTFEaEp5O8lJBNZ5A//kFL9Nu8MWYOX4siU9EfgZRT4JvE1sFdo0av6ZPijVSKAoiZBF4QUCbz+BIyIWDzOSbJ01FoWxLKMed6k9sqBFnNJPOLNRjOSvsldFjP+0SQU6RZP9BbIGKRIsvbLysVuK/si2ZIL4UUZHm3C'
    $Code&='xiP7BzgzBuxCQygj5BHpe4KN1gmNyDHhRiUFNHnnpyaR75QViMzE/AjnMlnpSvYNyHDx7HVFTBXMifkZ/gTZjBLhWknXAMm6DWQ5KEpwtagdanSkzbTrmHgocnybHKLmlYIYbUgT9NocZODYzhzIzaoIogVNG5HtlAXixcRKpAVG4MjoyRQaQ+AkxAV1MlnoahqUBfMLI/gUyK13kvPUsQGI+LQa8/8qYPykBEhkAchokWyPiHAgy/xHtMVpHgeB6NkzB/VJT86VBlyZviwSyg21KyUKJgernEqXSDYRYJZEJAREUInFJQ9IBVTJdP8EBVjyXwkzBIhhqM5rCABGNxzCFFit7HJkwXpJXAhO1RWVkJRn2DoY2SOoxqQ8IKq3XObi5mhc1CKUBVghpc2dkk7yKALili3I2xfSZNzsnpVPJcoeB2jFUzCGweoHjjMUUgnSNizVkQxKwnKiymSPsh7vRQqFG1vLOyk04PkyFOoGwDWYElLh9VIAaID4TvfFFvE+EvxIFP0CzAJuRRkYCRL5TDKoZvp88sONoffznCneFkLJklJGNklGuxFE6WZKqgZMH2rNkeqh90TRLMmFpqntL5dJwGQJLffOWjsoSjD7UzT3ITjkyw93cMgc5Dwo2YVkxVzhEeWi7RpK83EczFjqk/DxzgzmpSOlGVnSCUnGzqTpyLNiN/Jl2Unt6leGOxnuyhe6+WbQKYSrvIY62eIkIFOoA5G9NMD5RmUa+uyiZE7XkvUo0aoQuCD7LYJDZsMQizy4E3osxGrgJt+wcp6vm/8rJyIYmsaJyMfIScTFIP1Bnp0hIc+1IlYPkoXO4WE51tEmiO5pyj8LrohR6UwO91FBUzyeVeo9npo56dzNE9tbLcX/qa7jyiwmFOVl1/lnQOUY0BjeEKRCfJXB4VhS3BxCHPO+EqDJ+JJU4vDQuLT0RcqJ9U3hV/PbFuNABMiJwsrYMWbWBtOvZQwe86yVTpc21RrzTNe4wNeOUJbe4FvC62nx3wv' & _  
    'B5cRgQMUB1grZ3IUSiarA468vaTHa5RjFjO8LeoCqxIxHYSPkEcSd4W9QFKLIK45JcVrNJAcriJQMB4oNK71AikbMfUQTEr6Fe/UyBxH7hqwBu0nRlcotJZJtgswBwEjGMcY5ifAS8yUy7OMS2opL2xjrBsAxHNiJx5PDEAMdsu8RPO7LVjoM/6b7gy3CqY9q2U7wejIQwHYBkviG0BZs0H4UiS+CsJCqeReIFsFD5yLHVBQGFZFLNnqQaPjAZiGbhMHrBxIEFY9AADMoWI0cZlsG2+CwMJg3WCXI5CKnyTpiUQXFwdrcWNvSIq75keLxY75bGbpM2EmmFKCHQPfwpc4zpchAFKW0ikGW+ChXFOhfdx8siFL5ozCWEiRIec/NGKw2atMuIetBIL+xY+Ix7ZHDyVy6yyCJ3oeeSJxImpfyknXiNEPqFhRSGUAN0nOAIMpay5aaWkvel8K07uLuL9ZmPUreTb3pH2XHDUQJUYmOibJ6m5SWe+Wpzk0jK9GzIqqWCuXsWrFkG7N13OUEbdUM00fKR0SXTUouJr9TX86JBf9mqfziGE7rKAnOmg9R23oMq/OkgJctZ7qXVuHdgQje26immry7HRRFmtB57Qd26j8Z2U7eSR2nMsLEzqucQkvC6/UEvyC2pFiykpSh47pRb7IRY/FRzxLPlaYbO+V8RJaIFeOnfYIruIam+9Fti5EjkqCa5cMYcEG8aqVK/VtN2xJI8kQ72DUzrSmLfiJKVKmuEQfPOiZ2bHIz0SOSW1/T1PqPlmbunssyLGyZi5vdspZpYFk0JcI7FqPNI8DOLPekKqeI8WThaOmMWix08FyK6nLxJjcpwZ8pLqcJVeqvWdkgqDYzfEgjsplfqGLR+b9+EPDI4NJk2LZr6MZkxzSolumx9g3/REiCyKab1PsmcdCxo5kq+CJOf6arxBaLfBpR9wlFwWVJIcTi+YQlq4okp8mqZS7yaYSwRAj3CQo8W3+INLARziDxQP7uhFP2FiEYpcISOu/9r0D/ae8JgeVzaQV2'
    $Code&='Ae1k9bBc9ZyBaWJ6W5qzYxxCMS5lVDERD6916aET+0TlLO2Gbc3rBFgA/aguie6pi0E5jiT1E6Vk+oPgNUvpHREJlFUjejbcShPfi1wi3vsCupR+WO1Exn4EvbPjFmRnnBbRfEkz6SLVIMgvmphmElScB4pDgBGChGyaUyyQFqFa+3sWcuHVl7kot/w7MxqoQCeCSsA6InAI3ntu8gUIif2916YigZ70IQM0gYFT5PCaswK2weyb9NNkLQnk4v+G3+X05zzHVhiI7WnFx77uRvlS7iJTyfU6nC7QM6MSJ+GR0PE6JgYr1DN1bU90tmwQxKI3qE6qRPH1z5tFHCQ2SSAzSKlIiBViQYwsDlp6cJFTktr46S0sxszzGSoEuUJ8oKX39jxJJCMf7xjS/1MlybVHH2aoGEjrHhGiORB4DKDvid2RRSsixO8N/OJFOD8iQtpSJpDRpS0uFe9tMf35JjNC2FM3QttSO5DJ1pcG6FHlCyHtlv3NAUwu745DzyH5NRxxJkpgIyNb0izaQgJfiigZYlpoSR1sGFCUYo9CVCvf8g3UQB7VG+GHOAn+FWoZNNaOPaVSDypAlAHrWwl47zIAqQm6eLoDBN9YzXD1zyYHfJVmukNAPVJIpqViCkhJCEy/J8Qg3REkMW6p8zcbiGw3RBQr9CSrny6UIdC2pI8uQbMiMrkEziTUU9I0cdUkUD7dSEH8iWveIMLZRUYRMIk0MT84GDyVK1MKcDqoLkn2PCUkdHesda8WbpVsFbGGr5hHOzaIcBiEvkOQ/qj+lUlM99+kqST9l97v9coEn70Cp/Tx6APXF58il+daK6J+qRN7J0TuYTR2AvRWMm77WTKm5hLsif9KTy7KNyF4zAh4SozhImSRZJssPtJ8ejCgNUoo3zBnQQA1ADNoHE5YiE3LzSwslVkmIIL7kygl2A5Nz2KLGGnY2SQrHLbc0y9Ay2MLXx3SswQFyemmbi5LxdClZCqg7atGhGoEbk9iDIf8DwyVUjG+UNk' & _  
    'EKi5AJ1gFQnHpIIjmxMY3aFvUD7IRZFMHSgYoSCGVBAZfW0ISIUrkreYZtxzvXgiKFmESiZroKjIPeVQ6xOdixzO8LeoCuuwdZMUkt7AtJeXtEMDCxYnoBCW4b+f4S8aVSPj6f+THtFskSdHpDAxbSYSb81paxem4UC366+ElXOhORJWJSHE6LxGh+I8ZiYIXtkciF0YWyBTEFSjVygbQsi+WTkXtLikDHrLy1zRC+8jLkdCi2DnUGElEGxqVtMn1GBmFJeGCyF6yosMR4xoh668kqM9i3wT7CvyyRMMizCTIMthVGZfgSbLwiYL/GGlEHx6XNNFGHCEdSdCgaOjgsnHvCTP2SsIL+EIhVKlyYKTGMcKvMzBYVrPZxRLlHkLtXohy6YbtP09ky6n5JAH4mGbolax+Cs2RZJrIFASx3EpMiiVJt6hSZTR8EhbpPd1ts2Q8zekz0qUnO20mrSXq9jLMC8fbRIox9s6vg5h0JN3ZvRXalLjoAYSJ/cgB/K29LMKjwCzNKbhovqViGFRE1EfxeazmsmSK5fFWk9yyPy/MhnNEL5eEE8CogOQQsrFBsHgP9eIOXB0kRIHJQWZASXUGq+GErtTja6wz0L2s0IZWb1x0SN3QjSvxiqUEoP2igCjdpYmNQKUc4sk0i5W92qCmgqoSFzKuJXRAUq51KdbLqEvOjdkMct/295eTlyoQz3KB67o7JhBa0kyl2AxQ44yK3ynbWbFUlZQ4c96lr+lSkY6zWvG1pHojL8+05Q6gYANR/p95LUhBkrS/zpg+2GU1ibKdkoB+mCVqKkd1J+qOUHOflIiftJnzDMOKFa1O0Ijjel5Tegai3zyVHxUnwp9UFszS39ZW8YC8oFuVhu8JYgxZJhLZ42BoH65NSwfArDxU/jzIMRBpW7ki2fc6cDyJirCVZFf00sktPHkPaXG0dImKRE6xzTOZf3VgNOa4mdoGCv91kjziaozTituXrZeQoZ2noDqeF0KatPmANB6oKyvhtr3KV7nX9JlKvFwZ70nJe8AQ'
    $Code&='ytOjdKTpI5pI1IIU0bH4HIXEyQjTKEJSHLHIyhDaIfq+Q3ps6SGw7526oixbLJKdmqGUvkhDMSz/WZLZuBykpXysMIsS2Thzz4H5KsSHuLe5KKreoz9A2bx7ROkU1ErC5/ll2S/EaJGpOkksf5mWrcGB6XsidIp2i5pJUu1JpcASuEWB/QH4KwoZPLibCDNoKu/BlyUS/zIWGCuRXXSnvkJu0wKmcaXO/4EbOBl6NkUkRTHVi6MvL2oTlfYYkSzJ8xNamt78g1HmDiP2N/w14fiGzf5ZJU5sOCj3q070UwHkS97KJwyoSXDX/WxotA27MwrydEu0NrlXJyDi4YUlCKtne7ocNUODm+9VrlZCNrp07aHNLBARrHpOqqOJKOcrnQ2a+FYWTE/54g/LCMSNXv12ckZe/z2E6i5o8JPzpMsg+QS22E6MJgFO/9Qi6CCy+ATEC8fR5hPkzwYh7K863PyIGeZO528/1S335dAU/LFsEJ/jlyT9zwnzShNhZjPaxIw0zBAzwnCQKZmP2lP3PFo3owpQJUif7hOfxi6fzCvNVvVRLwng76tj4sUN6iAwO4sqJLhReDN4sNIlBligKWX8YJfOjsxs9GTul82QNCddjurIlq9SBJDmkuyJrxZTZQRS8hECyxCJ+E7cW+aFkPbk7HxK8AzBph2bTCRaRebZPEK+CH4B62v3m85kZarxhJ+SFBh86xBEL8Rq3UY+WsiCNMx+JZA4G/SJOyJDQL7av6VkIl6igGYdRYSVQUAhZJVM1CKUHtI7x3Y8S/rqnYQm+bo0DFT4WIg4kIySiWmm4I0MNIAYBEqI495ExfiVz/Q+bS2KOwuU8FkOp8Rlh+elWPbLl0hZG2jkL8STZMwGyNRIrjkkalIRG0thJqTLT1Ip2CtP+LiXTWpKK6+b2b5ZpGfyyJtTIpxRCFNE+STMTb3DMTJ2ISATPFNWoUh8wM50kqK+JHhARTwJHhyTYuhKfEWTVD/A7ppRifbFJjpC/Exj0GVKiPS' & _  
    'ImFYgSifycCQMWCdv0ugbrU8nfofkGCT1L0orb1mSPy9XLVMq7TRBDJMupGakNWTmiSIk1kyTPCdSjNIbvOPcty3mZAtCi1EMPVViTmJgXQkmLTwbcip7Tc9W0jU0Uh68P1ixWKfEcmzVdI+PSE6kmRIiUq3h8zZUtI5Q0lQ5JKuSbU4mS1UYIkp1XQiYicO6UUVORFBiVDFYCohcfYj8JE+R60xxr0lCvyFM+QgafYU8wn6RMSTYSjJPsyfV2bo+RjSxu5JixeisGH/yar6LE89aQUVMRfMZcbxx12Cv9pdCnlPelqiz1YtEW+dvUInwKSbUgVOx5X8UmVN0oe2Q1bmjZOivIiXFWd4T4eNXyOlru570lklOT82a4k7L3hkx9Q3kVM+aGi3pa+Uts8ts5UvzibwiHcYx6zf/YxJJRU4SKBZC+KCy5VjvkTTpxDWRNZbt/blO0YxKPG4o/UHSLwQ5wyIk+Kmk+Slayv6I9jLa9H5A0gRmGPxF07LW16JB2o93BPXw6mnVL83UKnSGWeSy7JMG6GtlST+JCLFs4JZg9o0EpXDZMxLwqWl+tH2viaoaPnkdksY0y4MGIDJ5TE7mX5F7+eua+9gz2RYwJHhgT7R5elsoEj+D6zgnjAjxdRL3WRksLGl7T7ZiJ/4e5Muq8dCk7oFO5y23bRol9mwzzaL9YATvLB3thJW5c/UC6EKTWfXyCcD2UmTGhtlSvEqg3H3rS/6ityLOUsPSNfMmjTXq+nyfqtT0xRToHJK8rFviCnfZFnXLYj5Q2epaILMSRdpvjvaT5VmnHMxZn8pk9zPKCc7MiQopOaRjBI09K9Gpegxq2bc+CGFY8RNqzgCsDUfezzzR4QzSA+iDEByCxmNUpQQc+HxQhIfudxSZIfZ7xY0I/3HyQg0c1mtQvYfebxSxIZHFxVQIYHEwQlAcAgFQA4fOZxSpIVYrxX0I53H+QhkctddQYodNqxTmIex2xZoIj3HKQkUcH4JQnZIcXVRABBz6fVCHj+8+kBWHslkU6yGO'
    $Code&='R8XJCPtx8EILHEGtUOyHs9QUZyFfosX9CEVxr0LqHCOcUL+HU6QU9yHkcsWWCJtxwEJbHHW3UMKH4f0UHCE9k8WuCExxJkJqHGw2UFqHfj8UQSH198UCCINxzEJPHGg0UFyHUaUU9CHR5cf0IfnxxQgI4nFxQpMcq9hQc4diMRRTISoVxT8ICHEEQgwclcdQUodGIxRlIZ3DxV4IMHEYQigcN5ZQoYcKBRQPIS+axbUIDnEHQgkcJBJQNosbBR6bBwTf4hQ9Ic3rxSYITnEnQmkcf7J/whzqdVCfhxIJFBshHYPFnghYcSxCdBw0GlAum6KKLYME3G6KshC0WuLuhDhboKH7DqRSKPZDdjuKTRC31uJhhDh9s6HODlIpKHtD3eOKPhBeL+JxhDgThKGXDqZTKPVDudGKaBOFNAHH/hUsBwRAIBRgIeP8xR8IeXGxQsgctltQ7YfUahS+IY3LxUYIZ/392QhycTlCSxyUSlDeh5hMFNQhsFjF6AiFcc9CShy70FBrh8XvFCohT6rF5QjtcftCFhyGQ1DFh5pNFNchZjPFVQgRcYVClByKRVDPh+n5FBAhBALFBgj+nYjLBA6gUCjwQ3g8ikQQJZ/iuoQ4S6ih4w6iUSjzQ12jiv4QgEDiwIQ4BY+hig4/kiitQyGdirwQcDjiSIQ48fWhBA5jvCjfQ3e2isEQr9ridYQ4QiGhYw4gECgwReWC8BqDBP3zig4Qv9LibYQ4gc2hTA4YDCgUQyYTijUQw+ziL4Q4vl+h4Q41lyiiQ4hEiswQLhfiOYQ4k8ShVw5VpyjyQ/x+ioIQej3iR4Q4yGShrA66XSjnQzIZiisQ5nPilYQ4wGChoA4ZgSiYQ55PitEQo9zif4Q4RCKhZg5UKih+RTvCxKuDBAuIioMQjEbiyoQ4x+6hKQ5ruCjTQygUijwQp97ieYQ4vF6h4g4WCygdQ63binYTu+CKOxBkMuJWhDh0OqFODhQKKB5DkkmK2xAMBuP6EEgk4myEOLh' & _  
    'coeQOn8IoXUO904puEEOs4u+EOMRioaYOOZEoqEMxlYqkENPk4jeEOPJ5oYsJ1ecIEwQ+uMihQw5uNyhZQ9ptircQAY3ijIQ4sdWhZA6cTijSQ0mpiuAQ2GzitIQ4rFah+g7z9CgHQ8/qiiUQymXir4Q49Hqhjg5HrijpQxAIihgQb7ri1YSQoeKIoARKJeP+EFwu4nKEODgcoSQOV6Yo8UNztIrHEJfG4lGEOMvooSMOod0ofE/udCicQz4fiiEQlkvi3YQ4Yb2h3A4NiyiGQw+KioUQ4HDikIQ4fD6hQg5xtSjEQ8xmiqoQkEji2IQ4BgOhBQ739igBQxwOihIQwmHio4Q4ajWhXw6uVyj5Q2m5itAQF4bikYQ4mcGhWA46HSgnTq6eKLlD2eGKOBDr+OIThDgrmKGzDiIRKDND0mmKuxCp2eJwhDgHjqGJDjOUKKdDLZuKthA8HuIihDgVh6GSDsnpKCBP7s4oSUOqVYr/EFAo4niEOKXfoXoOA4woj0NZoYr4EAmJ4oCEOBoNoRcOZb8o2kPX5ooxEIRC4saEONBoobgOgkEow0MpmYqwEFot4neEOB4PoREOe7Aoy0OoVIr8EG274taEOCwWoToSY4RsCAR85HdyeznyHGuOR28jxZEwyAHkZ3IrOf4c145HqyN2kcrIguTJcn05+hxZjkdHI/CRrcjU5KJyrzmcHKSOR3IjwJG3yP3kk3ImOTYcP45H9yPMkTTIpeTlcvE5cRzYjkcxIxWRBMjH5CNywzkYHJaORwUjmpEHyBLkgHLiOescJ45HsiN1kQnIg+Qscho5GxxujkdaI6CRUsg75NZyszkpHOOORy8jhJFTyNHoAcXtMgQgOfwcsY5HWyNqkcvIvuQ5cko5TBxYjkfPI9CR78iq5PtyQzlNHDOOR4UjRZH5yALkf3JQOTwcn45HqCNRkaPIQOSPcpI5nRw4jkf1I7yRtsja5CFyEDn/HPOOR9IjzZEMyBPk7HJfOZccRI5HFyPEkafIfuQ9cmQ5XRwZjkdz'
    $Code&='I2CRgchP5NxyIjkqHJCOR4gjRpHuyLjkFHLeOV4cC45H2yPgkTLIOuQKckk5BhwkjkdcI8KR08is5GJykTmVHOSOR3kj55HIyDfkbXKNOdUcTo5HqSNskVbI9OTqcmU5ehyujkcII7qReMgl5C5yHDmmHLSOR8Yj6JHdyHTkH3JLOb0ci45HiiNwkT7IteRmckg5Axz2jkcOI2GRNchX5LlyhjnBHB2OR54j4ZH4yJjkEXJpOdkcjo5HlCObkR7Ih+Tpcs45VRwojkffI4yRociJ5A1yvznmHEKOR2gjQZGZyC3kD3KwOVQcu45HFhJdw/IHBlH0p1AJBFJ+QWVTQAkaF6TDiGo6ESdelgLVO6tryyAwH51FRPE2H6z6WKIEpUvjA5NDOCAw6lUgv612bUT2QDyIzKKRBKP1AkwlQJ5P5df8iIHFPCrLxPMIJjVEgL4EtWKjj0D73rFaSYh8JRG6G2cC40XqDpggOV3+wEThggjDL3UCgZuBTPASF+CNRpejiP9rEdP5xgKHA49f5yA0FZKcRJWOCL9teuufQ0RSWdpARNS+gy2IxFgRdCHTAt5J4GkpIOmOychERMsIdcKJao9U9KR5eEB7mVg+a4iUJxG5cd0CMr7hT7YgpvCIrUQXwgjJIKxmgSN9zjq0ED1j3yJKGATu5RoxgkBMl1EzYIiVYhFTf0UCC7Fkd+AgQrtrrkSE+gj+gaAcgcP5CCuUEE5wSCJoWPyPEUX9GQIulN5shyChUnv4RLdmCKtz0yOBKHJLAuIQ2eMfIo9XBCRmVasqTrIi6ygHIHYvtcJEA1sIhsV7moGi0zcIpRBJMCgih/IfbSO/0bICiwIDarog0e0WgkRcJQiKzxwrgXKnebSSEPjzByLy8AT2TmnioUBkZdr0zYiGBhEFvtUCaNE0Yh8gmMSm/kSKFv4uIlOdBNSi81WgQKQFiuEyiVzk9utEdcwIC4PsOYFdQGDvqhBlXnEinwYEtr1uEFFAkj4hivmIbJYR3QY' & _  
    '9O3D9IgWuBEhN5r1GQFCRVI21iP1xEcRdBQLtBAbUbyC5YFAVRP/aCBmY+ySBXta96ZcQFYlAIkPMBEZn2Z53QFew6EK9iKcHEYmLiAKN5xlbOCCdecjuRNuECKF8CkedkMRCD+lA2PiEHsmJqz2PwQmAhoOBCYwyK+1IELweESJwrATTbFpyTkAK/Q7/+4j3DxGFOFYC5D2u1R4gWDYtOUQnBQgKD9lkgbhoXKYhELObWyJU0QRFJDYuOkAGDApnsYjQkxFX5w8CLLTultIgHhubkUSejwiAwMVPgcph3CCiED9adyJLaQQPHBIaFlIDFZO6CgIJwcCgKuUgrzwi4ERDvQgSGxcdgQMOCQ0LEAHyiyLHrQQTLbaouUCKFB6pyIhrVxHxGYUCOq91B0wgke6Z3US7EQijf2D9gUH3ASafEE9cciL1vARnRGY7xUDcW/t+NIjqixFDKXYCl8sjxtwg8rbt/ERozwi45PFjgc7XMdzKEfBC+IUQiLQTEZciQALmhMYRICBzhUokRX0A9bs9+MAJrK75MhGIdMcRKaFtAiIdni9LIOfcsjBE860IDYZS7IE1d8Hj0BCFK7MiFmwE4qlwuZlA+RGUSPqIN0cR6WQiAuio/IzEIByg8D9EGnUIVn0s2IHfIjOQ7xBuh0kiTscER9k40cFA8YzKov6IGpgR1As2AnGm9YHPIB2let5EKCkI2reOJoHFP62/pBCJLDoineQEb1B4kg1At2pfzJuIYlQhfkYBDvaNE8IQqpDYIrjoBBguOfdeS76D2a/1Bwkbn12AyIn8aYYCfAkEVm/VLalAPs8lErOIS8gRrJk7AsYQGH2nINLonGNEbnkI2zu7e4EgzSZ4CRCablkiGPQ92+wRtwEPwINPKKiB/uaVbmUQeKr/9H6IzSERvM8IB1rvFejYgfS655vZEB9KbyI2zgTd6p8J1ECoKbB81ogzMRGksq8HiCo/I7iBB8allDAQxzWiImbABDF0Trw3QLH8gsqmiBLgEZDQsAIQM6fYFSBZ'
    $Code&='8QSYREonCEHs2veBgH/NUA4X4BeR9i+IX3YRTdaNB2BD77Coh1HMqtRUQH/klgTfiKmeEdG14wIZTGqIGy+hwSwfuBBKRmUiUX8EDZ1e6gRALQGMNV2I5foRh3RzAnr7C0EuIJ+zZx1EWpMIktvSUoHJ6RBWMxCcbdYiRxME75rXYYxAoDehDHqI4FkR+BSOAjvrEzyJIE3OqSdE7q4It2HJNYEq4Rzl7RD1ekcisTwEsJzS31lAyFXycz+I6xgRFM55P7sIxze/gTxT983qEINf/SKqW/7fET1vFAKZeETbhiBhyq/zRIEXCLloxD6BKzgkNCwQBMKjIkBfBH4WHcNyQLq84iUMiHcoETxJiwLW/w2VQSAmOagBRHHhCAgMs96Badi05JwQFGRWIsGQBGN7y4RhQFXVMrZwiCFIEWxcdAIM0LhXQiR9qcfSpw9fdVend0rd5yt0D6nv152POafXnb95z9PdZ23f151/LnUP92dLnX8qdSf3v0udFz1n0qc/XnTP929K3Yc9n9fdt3mv152neQ/T3Z8qdDf3H0ud9z3f150Xaf/W3e8rdafn5150f6ln1t3veW/T3bcudM+t39bdz22P1t13aQ/W3QdpN9adh3mH0rfPS91PK3QXvQfXnb95T9bdfyt1b7fvS90XbQfW3Wd9v9bdR2l31t0naUfS939L3Wd9H9L3J191/+ePSp2vKnXf58dedQ+390rdPy90n7kX1t3fKnXv999L3VcqdRfnD0qdn31P0rdPS52HKnRXvafTp6dGAVt0p61v193vKnQn6RfX3d8udGe9r9Knl0vdFy50N6lX0ueHS91/eU/S5wdO3Sc6dYe330udb3nf06f3X3Vv9zdO3Z8rdd/3f07d1yp096mv153/eV/St5dO3d8rdJ+pZ9LnH0+dLy91X+f/Tt2vKnU/589LnQc6dN+tP9KnR0rd/yt0J+3v193vL3SH6e/S94dK3UcqdJ+px9On9190f+nX0+dXTt23OnT/7b/SpzdOnc8+df/3r0/dFz50T63/0qenTp1XO3TP6afTt19Ond8rdMetD9K3P0rdby90t7k/07cfT50PLnTX+d/T939K3d8vdO/tx9LnL0rdryt0x+mf06fvS91vPnRv+a/T589O3Zc+dIfpd9P3t0+dfz50n+lf9OkH07cPTt0/LnTn6TfS5x9O3dcrdCep99P3f0ud7zt0b/3X1qdfWp0XO3T3+c/Tpw9Pnc87dPe9N9Onh07dfyt0X72/0/dvSt1nO3T3/V/T5+9K3a8udL/tT9a3N1qdFzt0T72n1refT91nanSnucfS569Onf9rdN+5f9PnF07d72t0Z7gHLkAj5QIyewhOw04gYtOAbqtwNq0BRliO1nniUZGqW4pFWWZbijkpMGuVZ+7SVqLiHZKFxrgRosm6nlgytZT9ska1lPGU4i1l5S1k3bWc1Vv9jsktNse9FszjsYvlcaXF2LiZ4gTcjXHDbjiBBbccdVsSjmkt68ddFnXjUYsscUXFbrg54lLcLXGzbjghL7ccFVvRjgktIGf9Fluz8Yu+WeXFTKzZ4tDWzXH7azjBM7WctVr5zqktUGedFqizkYtAWYXFnax54rzWbXEhazhh87WcVVoMzkktX2c9FhezMYt+WSXFXawZ4mDWDXHcazgBkLUc9Vrujukt3kfdFtuj0Ys6UcXFBqi54sLUrXFiajih5LUclVrIjoktjUd9FqmjcYv0UWXFeqhZ4rrUTXEuajhBtLUcNVrdjiktS0cdFoqjEYu1UQXEA/z54mF+7XG5PzjhHZ+c1U/4zsknaee9E5TzsYmH+aXEVfyZ4ox+jXENPziBQp+cdU+ZzmknsOddFxY2BwA='
    Else
    Local $Code='magAAIcA24PsHItEJCBmiQgIEUQoBIvvjt8H6EMQDgGDxBzCig6HySfWIWgcZNJvEAE3svY3iPFiUAnAhEFUFhsQaAwYK01OAA8I6BxXDSsj2/kPxhaJyyyZPzBXNBIQJDw5Ajo4ojNwChEsCNKF+fTuFkL2/M1CBsj/X4gSA1nkC/MrhCztkXxKbJwGIUwlBBvGgPIhgDHAw3RVCu1XVlNcMy5Qo1yjQMN0x6ybSBQPtrgkB4X/dFNH0tGOgQK+gXjyj2F4E4tMJMsdcIl8gBgB+esEORjqfiNcA4N9xebH5jLMCsMGwfaIZwajGMfG9412BXIN+A9+2dqegBAalAxAHyHHHYnQKcPB+ASF8A+EDv+GovbDAxJEkY14RTM5wtz6aPW/vjIITKHWGOmzFshABxA2MgO2FGZH0kPIdkbIFQI5wdokAxzg7RIEDnB2iQUHODtEBoOcHaJBB84O0SAI5wdokAlzg7RICjnB2iQLHODtEgwOcHaJDQc4O0QOg5wdovsHavYbEBo7DMZSwkX6AsRCqs9VSMiopUE8NAHoTdw2QvQYMf8CuAGTqgFbXl9dwyYd1VEkcniSQEZwf+YafpBI4XGVa8jVRMcIw0TFZVtnWUNORsXruFR+PiwUfORM3C/oVFaGi9AxihR0oYbF6XVRkC4F+oiQ8maXmIaZGPfGAyEPhTNj/kT2fonIFlirqJpScbSoPeszSKSdnwNk/yiF+weIMhIIDnB2gQwHOS0pGOZHKQp+HYspJc9xELcLgXS16dqU04teb7Wt5xshdNy2/dIOKLQ8iWASUCRUzrAyXS9YSWaORK2ctEPzFipNXLTA+OsGOWzGRn4naFETriOxUFGJJtEyCxIOXUpUEHB5TMC6d0AV+oHTG0FdIrzInFAgAozZO/CGJvo2XJEIQUyV6yzIfNypycICJYYYFB66PQOpVN22QkpkIDoECAWpBQYo6QyJmVWoLgfCMheIFimprwzynRjPIRHKVqc+5CMCSB' & _  
    'zPcMgDkSCe4ZEEcYz3DAWJKBnuGQadG1d2HAZ7R8gfB06weIPcSAhOsHiD3EgJTrB4g9xICk6weIPcSAtOsHiD3EgMTrB4g9xIDU6weIPcSA5OsHiD3FMkQh4S4JlHNyqZFlBCe0C2YJklT3EWkglhStj+CyE8epHncTQUR7FMFeQPJN59SRYEQtAhx5HFp+XAjFPbjxKvNNOVdkukBBNXwhTBTwdMi3RZokueIzFE+YjGzEtHPMTU/TJcJ8m4yOdlTxA65ylcZKQ3RCAxwQQCCIaRDOtEGBySAfLr6IuZHTq3F2XgMcKJFuQH+WVv5DMR9yHp6oYpASCYcx4KMcFUTqYzAiUc7Y19CRMygWgse2N+LSw/YIPRNM4YnOlGoTwsrLJ/wvH8pxAglKJTO4hCvkyM41r6TCTJCAZR/WIqGgw6dhnO+ieHJSG2QV2I2IWNRJOCxvSyP0LUTYm4X4Ue72HkSV9dQmxyTA4CiRwCAyQgCAS/wAWxnD201xvCc+xZZO76/AxyIAKWaaUOYbkfHA32E8RIIGQDJ1i4wyEEOsQohkIFSil/2lmC77LPhX2WiHvss4vfZZ6O+yyR99lnlL7LPZf2W5rNEiid8lgEbCV89T9ZBlOI+FSippLzmahPm1UYc9SS3FnEVEstC5MpiZfFChId258liLShS994539YuSrC+oiQPJtipTm5GAoQnQWyiDFZFMpYEQX+LMJWkfyniKjoTQgEiwwTVPFKBCPyHRzrJbKuZjD3LLQlAa6zstO1Ak0UN9KXuulsufH374k0R2ri50dnTOQUmks99FyyyxQZRLAVNEPCRrgwNP2BVWM7AmyLrCSIrr7unOqABx+8kISPtMiMhPfFD+N8ROvBJv0E4GRkRoXtEO4CgY0wd4P3Mt40MBSI0DjIDgWQQCIGQEgHiVACCCRYCAmQNCIKQDwLi8wIDJBMIg1AVA70VqFQXAMP6k7EMUssQaPrJ4sGrOhhs81Hn82h25/NdXDWhFV5kFUaHPPqi6j8MAazKCY1PTcCDU7W'
    $Code&='Jzi9Fb40RDiJBFIKQCQFMkgkBjJQJAcyWCQIMjQkCTI8JAoyRCQLMkwkDDfIkA3IXJAOyCy+xIT0kLZRpST5dJKlNNGNiU8DGaUoMvQQG/9IgCZsVWu0rSCQ/qRwcJGESARtxFYIlzjSTf/mxGQsJziQ/DTrIJAmkk6w7acpQHRUg+mRCr+LBCsxwxuvftSh2xVoRHucSBKROA8MAe+UtbQ8sZ5CAoF0lOlOWbI3MklOgxyLdDODfM1sQKbCD4h1NwDB/gSF9nQ9gwLuATHb6wpLrCIdL9KVBQdUHQXWBB8Xx41ILVkQOQKGdNe4SBwO5huHaZI8JqPLvDK9RdrBeA8D8BNfwfpjqPGESNIYd4mD6uqNljSSlYlhRus+6kaYH3NDyA8COcQDg5xIBDnEBYOcSAY5xAeDnEgIOcQJg5xICjnEC4OcSAw5xA2DnEgOOcXqCJMW0hbiiYtoiNaNhTXEA5jfhFSuSLuQnhyLRSS1usN7hvkJZ4dYAiRcH5IsYYRmDXODJRwkKTCMgzyZNXOy/yHSdH5c+etMORoTMQNdFVBDmwycCAw51p6hdEVbmqHMDAoFdJDpZWSbjh6sZ0cMtsoyFIm6EKSXDNK5CFITyusY/zsyXhJOg71WDEv5CTe9kSszR9wzXQSxTQjkVQwagf+gJYRTdpZBGEPAEL4BiOCFdAq4XtDE6cELjbUR8ot1hZp9DMEYr5jpVxjoUYOdNK/OGO7OtNwbBHvS74QKDCDqX1Yo6DohIDyudux2vIxQ6woIhB7oiyyfwc0QJRiPxgnYTOqp3BQzrJ4njd4VCEjaPYucUjEe1TOUlh6P0E8cQ8HoEJvpIGnR+VggvIEMDF6gnbSCi6qXkRvUvXZQG185iegl8YgVyisGIdbQe4KP4mSCP3DegY34pYGP4o6BP3EIHqHPgB/EuIB+4TKAG/H5fx/E4n9+4Vx/G/IjFU8x+8SGfm/ETX5/ETZ++4SwfW/Pd3H8YEd97hHafL8RoXz8ikd87iM' & _  
    'E1CPLe/viez9wLnuN+PV6j+Leej9wWHqN+R8Kogg/eIJ5jfhJeY/iMnk/cKx4jfhiaI/iS2g/cMVnh8jSWl5DRwInWp6ncgiAegwxwL4CEhCxN+opUvuA88QUCsPrEpAB+vFMVheNdhDfT4iWec4KxDIMfMCMI+BWkO+y6BEICjnJxyHtZOwiDBHrCUE2geMjcj3DoulAx4aMesX16jDJiyOEjgfLMwSsDM7toCAkqq2Zps4kXlbjCI+kMW/KdlQxjc9WDBTLqY47CLyoTF6JTetPuRzeAoVQ61WH3ojVgVWn5aHeViFdVfb+VY/kDT/xo1QPoX9UD7FGVBrZmzIUUOXe/oTFUz6EoVM+xGhTehBUU/+TaHjeQlK8w0NS7IpHUvFzUnZWv3Cl3tDlUYfYrFGP4pVRNfgiUYV5Bw/hzlAfxLdQa/FEUArxKVAPsfBPH8TZT2vxZk8K8UtPD7ISFUL7TjX4iE6FeG1Oh9g0To/kHW6hqk0K97RNPsRWTX8RP02vxMxMK8SxTD7EeEx/EWFMr8TuSyvE00s+xIk7fxFyO/xepd9srDOEKayH5W9Qso8W9Q3aNoXeWOQ6jS8Wv0VsuRTB2o/eMF47wFvUYapSmamtYJ56A8Hnxw9KAnDhEAnPyhIKBT8yARwIA4k4HhZyB9TmICEGGc4TBFIGBY8h54lw7BhafAtQ4yIKhETLCKsG3R8iz4lY0D9q/ELlIQ4Z6SEMQQZSDf3ih0TRiUjhUOhePkTwOFgP7WlMcc0DqonNweIYj9odvAkQMe8opAuQCEEYQWnl/8NEAhMYiXiURv6LPRQ289weZNmiHAgNQngEiFJNfxAgiCREKCIsAsB9EQgbojARNAg4hEA8c4ZGDOhAhEJEIUgQTCEmkRC6IVAQVJxhEFx2QnwjFHRCYCFkEGiIbBCMyBjdEHCIdE9wiHwQP8gc163Ly4ahKLCECMWmmIgbCKy7jGIRsuZ7ESAbopA5lB3GOZwMjYZDJLwUgcoC1wSgcqQ5qAjLyBCsh8eA8AoB'
    $Code&='RcZFCqC4FwzzOIkM/m7pqWaE2uUszYTrCn4giShAeueFkM/doUmF+3iS2nIE5izOhu0KTfx+i/xiDhRDDCMNE1ygClhkDE0TYhIUhAZWESYgBEQQF4xCFjLZIRSCBlIV7ib9ATh6Eigk3cL5diAsmonLJMHrWR4cO3iB3QLZpAsIEBhcj1NZQBMYiWgzXX6EoiIvm8rzoc9KM4KjhibxUM95iGgEid1PZeIwETQIOI0QPOJAEUQCahkIG6JIEUwIUI0QVOTK1CoFZUYM6GCEQmR7jRBs4nARdAGgeAgQjdF4CHyJsGKpQmjLmBKxOmtvt5UvcSMUXliot9NIv5TlmGx3nI2RoMikYrh3ERgbpxjDPCQj9Ky4w4WYtBIMx6DG30DjCPnI6LxkRDWE+/hfTZIo7SWxUTUPj1XJ/eB+geG7UxCKjNX8wIv2+IT4R8QiyPDeyxDMl1aQwMKDxAznWZEUIihALHKB5gshzjrClgsWMKR5B2IGOstZtClgemieM1UOHCRrWJVcLBBEDCdmDSzUSpMtTEFuSHRceoHnCyHPu0KWVsYqWEBnFKkGFXJ+iAwRFCMbFRomn2GXGTzKGIkfGB6FEByHUh304g3TRDh5EZR1JjAjns/MgnEXNBKKidkUkqg8DHZAyc6By1ILCA0wTqpAExiKw5qq9UTqoibCll2NKwflKPHp7pvt7B6ltExCCHyWklJTpc+RJXjyP0wME26n0Bo0Mw4IxwQ9izgx66mUYQB0EXAEEu+MqrbdmVLA7g+26473pTC+AMYmcEC3UgSuiERSwZrpPJlGqrxQjRBU4lgRXAI8GQgbomA0QmSeoRFsryNwRHQ4eIRAfJJCcyMMXrkEoa3EqKIERrB8lAJE6WRrtpOJrw+5JagoALxb9PK9Qb/eeb2I0HKKcBDC3RGg8qQe+xysjfGwHyO0ZLhyvBkODBSN0cAfIcTkyHLMHICNz8Fv77pOut43pN0qzqQLGBAYZLrnNBATxMjQiDN8MhTUMQg' & _  
    'C2CIx+4S63DFUcQgYhRXfXZl+/pQm+2je5ZZiQTyZ3feO4EhRBIHkF6lpaugtSonsReTE4HIUG8DsCIu9SZlE0RA/1wvw+CB0TcQLfwwPEEgnABh1G+suPZEbHJBPdCU8L2Ofuyy6gJAQB7jcHxfrDalM/WuAZJvx/+P5GlgOZET1DIUIr/ky6ghbVREgIjRAOFqB4wsgy3UyQPNygeYHmcaIlT+Mr2p42TUtPLll8SEIXgboTv9qiACIUqgpc4xCDogMSVOat1L5lK4J9ei0a/bRRAyizY8zabICr6VvKxOWUPw+NBKywc4PnfEbGcruQaHmDQIVGBsQNt4zMxQJDNUkr6msJMvHGoADgNAHjRxb5jRQ2xF/zwMBU8MX3kSGHe6ANHaB9jEOIVASHf9J8f6iOgxk9pn9xMVIKe0ObG0bCMSD9+47R90szS1qehP1Ut3l9aQZzLS24qlJVUUf2tEWpQVmCCqQ7AS7nqqojZB8QxzfIVJk+FaYjyEM9EA83qWDn/4U95uzz0Lcj+WCHP3icUIQyV3+My9ZESbeTW7s7g4QqMOwnLYvaSuuB1nraxr4Q4OyigIibV7r6KITGNhdz/GnGT5fgxXUieZlFOqu9do8GYfpAQxJQtDJiBGkb1MrmXOBzUS1Sx3tYc/rS/Yt+xEb61stNjMrTtbiVpAm9w2yybCn0xOlhvdlLz7ZNajVkwlkqGT5REzp+dokiDIMDQfyWfkm3+SMmAUcjkA0zoO0RB1s9x9F2j1i26XlomSlcwUU1dkJ2k0FucDzpdyfyxTZHfI8BNmLIlBDz5lt6OJNIRIt7wI8fwX/Mv35wvSk2M2Y1u6CRFlb3lgK/EhwuhRTBNpB8vPdH8d9bwcreKUgCDfutXxI6xQX98poOzNdcxEyaxdYDDJ0FDnzF8hUgRUMt9yZaZWcaLp4LP+ZrekqmPh6yixlTOYzL9pS3kq/hRbr9fHOiOuWaZBC34laeDKB/RUnljvzIpVfF1Y4XJqASWqJSD2HNVw89l482WsZ72Cg'
    $Code&='Fc3riQ1jMfzdpd2W9RZpPTFEMwrp7i3ZM6YrpGTPkhbxZExd+SmP2YjNLwTZUIzQ7oxCVIhYcVxjwNI4u2JPaXSs1MCPu3yFy/RgJG1u3RPxKpos85N52TLUot/nfablcfEqIkX5ti28bbROjbdCss5st0bLIM/E/HhAms4hRERIOEyJHArEe2giGBkcD3yHRBQ3aP9EMGg0hRA44jzMnq/OiJRnRBwyFB75Dp6hu1yF+lLO+yT+G2JwIKXVBGfp+FEoDiIsRwx8gc0HaIirZohoIGQMcs3RIaPpyBUyDOniGpXMPM5qy9SPjhiJ/hfMMsL346DEU5nSLNGaEg2xG74vTmjTaKITSb0UCfUYM7p9t2pyVsAI1GWecKdE5EY0yN5z3CsHifIx2iTRiCkzm74UGAx4l4wU0EjPvFB2o7qwg8QgnRxkRDBEiUgf14mkjx5aB+vjxQ8Qy92hS5kNmH29S99v0yJomPran5XPb/lSzBk/ftJ/m7biHMlpBRA9X70sTrPf4vtlGShMlHF0NTHrSifZhc2joCTd7cUI+Ql3nlvnzVTPNKk3To4FlqJdgsqJ0dMK5dFqq98U06n8iaGl1Uqn8rQpAn5WY3Y+x96yOl8QmYlM04LeI57a/fuMQ9PImaWR6QjR82dm0+ViNmitM/xbOzU+i1ok2zLR9TEEGd7xN1G4P2LiM2SM0AmbuBiN0RgbiBhrYtIcnNAbna2iIJ5GvCIYRRTSFxEUuiMUcRQOoiAEoGIUJAxdIXEMG6IMNxAM6mlCedcs7eUQie8LnogQ3REQuBCORiifYXkEOzFpM1SSndPfcyPTXErW2j7I1WUsKJIoi+xeI+QoEuNFTKI11tzwu7GGQJlnQl+TKNjfhcXfvCWXzWnaldEW+5oQsv4kLDoiLHjft5EnfJJF96WymxyLGUoq2BTf6s2C3Mdp81Em3TpFrwkN7ywCBLh+W8QUXTItIC6QI5gRDHSJHBdIEZyIELpEBIukqmO16iIhKOkChE0' & _  
    '/ECwgze0RKF5+dUIoP92FxN0y61aoXJyD9ZAs6Cy0zU7XpGjfkPiC1btDSRYP1EmXLByIkz/ori/LiORYCJiMk0JEXFAEElhwLT/+KAQJWHQWPL2UlUl4OX2KDwSpfJd1ifJcXoHpPXWRbB39iaNXt8tpYkNp4e8h8zdPaRY6cWRUkXVieGBZT+kWciV4ZDrERW+JeGhOOZFsYnhs5a4kaVpXhAXay2Z9TFRjvMVfW93bJ2OyfCPvibQr7GhNWGCoWPMyXeJAFxBEuEiNEEy8lUtat0RIXfriMB8QNLg4hcQ8LiMgTxC8aEpZt1BIXe+l7AMtKGvOV2Ymf0ssiLLzkSC+pxCaS+XnJA0pErunGCuSs9XrHCdLCAQAWKs13QkB/gERuYnXbyftiET9CvoLkAh1SOoSIeKKPJGRSIESOL2WKgT0JFgIim785VnD+TAPIkDlEljeblZrCgruX/0z/RKY4KJj6BCB5AuyDAToLkqi1qT58CXsRWLRBA6IBPRMzgOz3uLzVGJxBD95AM5hMPulRuTlWc1AJN9zafuvkM5ehWzpx0qyWawYp6NEGG6IGNRGGLLUMlW/1hQUo+gUjdEUGogU1kbYSuNT0iMLHEoM51MJ0YnKiPpVkOoUFFKAKNIRi3TVx13F0yqdIdbT4sudm4qJ1ZnR2t3KAtc53BS8DsTGVK2Qj91vtNCS8xKtKieQqHTxG6IcNxAc18U2t4kiCPsXiVFXWcAYHL659W81nqfoXnQwI6jEEhCn9atCnq14xSXITvVtHFwGCpyaJDWbwjQktZoKLCSZdRA8To2UBIGVeYnQ306uIpWyCWvkbTA4otv083ppHDyo+YkoiXztiFJeNvUh0eQEdKjBuLCdPzlRLAp6lbPNzH2JQqi00zn1FTSep9henTJ1VTc7WThKkiI0+xeI+TQ7NWnHQtTOypZbCCuaCWpPc/2uReTfLkrX/ahu0LrIOHRBOD3Aa+JEa/0uNP7rzdX2qRlxAOlZ0SXb6xIc47+IMLpApJc265WxxagX'
    $Code&='pevZPZEtPHSfRg6alZVO01gIyJUfTLauXjpE5W8ZIQRRBB3iPk44jhqILLpCtL0wiZh+VmnjvyIpNMkIuFzuxQTod6g0S03d9K1h53c+QuWxfg2T26Lp1uD7zPbjqfHrPEbpEs4geeH6RiZGgLKEHZCIgukzDGcjkYxBpkoHSSIa2TMSalF9lF7rMh2kvPTqxDQkqDOttChKTsE4y920C3ksuQql0UZYaHCVtGC4S7lPCWh0WWBLK8AYxGh4lztyLic0RWRo6Moy/4EEV5wMQLomQ0uJBGzyePvSGbkM8t5VnDxb8nxU8o9E1bo6+FA775kOcN0zRHTW9O6MW/d1Vos0E3hgOwsTeGQrCCd40J+RAm+pbBj/6DFwRuFyJpIeBGHk3y5Pzje9ZiGzPLXeIE/JN/IXi3hQnRqLeFSVF494WOnrlgexGEd42agHsiXER0OyILonIUlupNZXqYbSZSyqeYhjE9LiS78hONE4YxkjIM0jLSSeI+kCGWhA8ZXsRzC8EUJoRHRpUtCCtIZJ/GIZ2Rs8F0gXTGoYkvNMq1YBsyy1zhmiMB8QNLg4hcQ8ENEn3pxbQKoPT0edhiMSiN90St+JPxSl4l++j3j3Kyc+eF0jt/53dx+ULKyRtJIC8XUMIgz1nU4BdYmUCNsnuvNRCt7nAvWW53z9Su+j+JGFXAKpCZom0F4yv/Vk66ThXv3dIPKTxidI/lIdfu7QPfCWqKJ1nyx/DhSLxBDOLnwbZwj4J2Q9sMbIMzQRHErHlfVF7nJb7xLHDif6RE7zthIk9+txNALOCN0SMLKpEnAEshJ3nelcSOJ/nxeRQKhShP0ILImQggN1HOsvf7IbfxUcbqjU0AXfjQhW7M8bTFBpjF7154MQMxJSGwkiCWpE1TCJNhKlJDhIv5FAIqNEnoGJ8xLXJPtIfJHjIjlEgpuJLxL/JIdINJGOIkNERMSJ3hLpJMtIVJF7IpREMqaJwhIjJD1I7pFMIpVEC0KJ+hLDJE5ICJEuIqF' & _  
    'EZiiJ2RIkJLJIdpFbIqJESW2JixLRJCVIcpH4IvZEZIaJaBKYJBZI1JGkIlxEzF2JZRK2JJJIbJFwIkhEUP2J7RK5JNpIXpEVIkZEV6eJjRKdJIRIkJHYJqsp6eqP8tNk0wkKSPeR5CJYRAW4ibMSRSQGSNCRLCIeRI/KiT8SDyQCSMGRryK9RAMBiRMSiiRrSDqRkSIRREFPiWcS3CTqSJeR8iLPRM7wibQS5iRzSJaRrCJ0RCLnia0SNSSFSOKR+SI3ROgciXUS3yRuSEeR8SIaRHEdiSkSxSSJSG+RtyJiRA6qiRgSviQbSPyRViI+REvGidISeSQgSJqR2yLARP54ic0SWiT0SB+R3SKoRDOIiQcSxyQxSLGREiIQRFkniYAS7CRfSGCRUSJ/RKkZibUSSiQNSC2R5SJ6RJ+TickSnCTvSKCR4CI7RE2uiSoS9SSwSMiR6yK7RDyDiVMSmSRhSBeRKyIERH66iXcS1iQmSOGRaSIURGNViSESDCR9VmoBqqhel74RAFH0p1B+QWVTABoXpMM6J16WADura8sfnUXxHqz6WIBL4wOTIDDyVQOtdm32iMyokfUCAEwlT+XX/MUqdcsAJjVEgLVio48A3rFaSSW6G2cAReoOmF3+wOEAwy91AoFM8BIAjUaXo2vT+cYAA49f5xWSnJUOv21666BSWdrUvgCDLVh0IdNJ4ABpKY7JyER1wh6JavRAeXiZWD5rACe5cd2+4U+2APCIrRfJIKxmAH3OOrRj30oYAOUaMYKXUTNgAGJTf0WxZHfgALtrroT+gaAcAPkIK5RwSGhYD49F/Rkg3myHUnsA+Lerc9MjcksAAuLjH49XZlX8KgCy6ygHL7XCAwCGxXua0zcIpX8wDofyI7/gsgIDaroA7RaCXIrPHCsAp3m0kvMH8vAATmnioWXa9M0ABgW+1dE0Yh8OxKb+iuAuU52i8x5VoAWA4TKk9ut1AAuD7DlAYO+qAF5xnwa9bhBRAz4hivmW3ds9n5AFrk3mAL1GkVSNtXHE'
    $Code&='fV0ABAbUb2BQFf8AGZj7JNa96ZcAiUBDzGfZnncfsOhCnwdAi4jnGVs4AHnI7tuhfApH5kICD+n4hB7JEAmAA4aDMivtSPARcKwAbFpyTv0O//sAD4U4Vj2u1R4HNi05JwrQ2WRoXACmIZtbVNEkNgAuOgwKZ7GTVwDnD7TultIbmwCRnoDAxU9h3AAgolp3S2kcEgAaFuKTugrAoAMq5Twi4EP4GxcdAA4JDQvyi8etAC22qLkUHqnIAFfxGYWvdQdMAO6Z3bujf2D9APcBJp9ccvW8AERmO8Vb+340AItDKXbLI8bcALbt/Gi45PFjPdcxncpCgIUQE5ciQA+ExhEgQEokfdK7Bz34rvky0McpoW0AHZ4vS9yyMPMADYZS7HfB49AAK7MWbKlwuZkAEZRI+kfpZCIAqPyMxKDwPxoPVn0s2KAzkO+HSQBOx9k40cGMygCi/pjUCzam9QCBz6V63ijatwCOJj+tv6QsOgCd5FB4kg1qXwDMm1R+RmL2jQATwpDYuOguOZjCAILDr/WfXYC+AGnQk3xv1S2pAM8lErPIrJk7ABAYfafonGNuetsDu3vNJngJyFkY9APsmrcBg0+oqOaV/GU7qv8AfiG8zwjvFX/oALrnm9lKbzbOAOqfCdQpsHzWATGksq8qPyPcxqUAlDA1ombAdE4AvDf8gsqm4JAA0LAzp9gV8QQAmEpB7Nr3f80AUA4XkfYvdk0H1o1D77BjzKrIVOSWAATfntG140xqAIgbwSwfuEZlAFF/nV7qBAGMADVd+od0c/sLAEEus2cdWpLbANJS6RBWM23WAEcTmtdhjDehAQx6WfgUjuv4PIkAzqkn7rdhyTUA4Rzl7XpHsTwAnNLfWVXycz8OGBTOecDHN79T9wDN6l/9qlvfPQBvFHhE24bKrwDzgbloxD44JAA0LMKjQF8WHQDDcrziJQwoPABJi/8NlUE5qB8BcQiAs97YtOScAGRWwZB7y4RhFtUytgA3bFx00LgXV0JQSAF' & _  
    'TkcMilkTL8Yu0SJORVSL2RJElifwXGJGAIo9ESWeJmBLhJAJIEpGjIsZE55WJ6xLaJC1I05EpIkREaniJaxLdJLZIF5FmIrREGIKJYBJFJOBIhJEcIpREWBmJhxK3JCNI4pFXIipEBwOJmhKlJPJIspG6IlxEK5KJ8BKhJM1I1ZEfIopEnaCJMhJ1JDlIqpEGIlFE+T2JrhJGJLVeYkRv/4kkEpckzEh3vUSIiTgS2yRHSOmRyXCJgxJIJKxITpH7Ilb/EickZEghkdEiOkSxD4nSEp4kT0iikWkiFkQK5YlDEh0kC0itkbkiyESFTIm7Ev0kn0i8kcUiNER23IloEmMkykgQkUAiIER9+IvMSG2RSyLzROzQiWwSmST6SCKRxCIaRNjviccSwST+SDaRzyIoRCakieQSDSSbSGKRwiLoRF71ib4SfCSpSLOROyKnRG57iQkS9CQBSKiRZSJ+RQjuJNlIzpHUItZFr84kMEjAkTcipkSwFYlKEvckDkgvkY1yiVQS3yTjSBuRuCJ/RARdiXMSLiRaSFKRMyITRIx6iY4SiSTuSDWR7X2JWRI/JHlIv5HqIlv9EoYkgUg+kSwiX0RyDImLEkEkcUjekZwikERhcIl0EkIkp0hlkaQiXkRrRYlYEgMusSJt4xJMJNdIy5FEIqNEWhuJDhLAJHVI8JGXIvlEX5yJehJZJINIIZFpIshEiXmJPhJxJE9IrZGsIjpESjGJMxJ/JHdIrpGgIitEaP2JbBL4JNNIApGPeokoEsIke0gIkYd3iWoSgiQcSLSR8iLiRPS+iWIS/iRTSFWR4SLrROzviZ8SECSKXuJFBfokjUhdkdQiFUT76YlDEp4kQkiLkVsi7kQKD4keFwiRhiLtRHByif8SOCTVSDmR2SKmRFQuiWcS5ySWSJGRxSIgREsaiboSKiTgSBeRDSLHRKipiRkSByTdSGCRJiL1RDt+iSkSxiT8SPG9xIWJIhIRJCRIPZEyIqFELzCJUhLjJBZIuZFIImREjD+JLBKQJE5I'
    $Code&='0ZGiIgtEgd6JjhK/JJ1IkpHMIkZEE7iJ9xKvJIBIk5EtIhJEmX2JYxK7JHhfYkW3xi9RconPEugkm0g2kQkifESyI4mUEmYkvEjKkdAi2ESY2olQEvYk1kiwusQEibUSiCQfSFGR6iI1RHRBiR0S0iRWSEeRYSIMRBQ8iScSySTlSLGR3yJzRM43ic0SqiRvSNuR8yLERDRAicMSJSRJSJWRASKzROTBiYQStiRcSFeR9CJBRBcniasSnST6SOORMCJ2RMwCieUSKiQ1SGKRsSK6ROr+iS8STCRGSNORjyKSRG1Sib4SdCTgSMmRwnWJWBK5JOFIiJEgIs5E3xqJURJTJGRIa5GBIghESEWJ3hJ7JHNIS5EfIlVE67WJxRI3L/Eiv0QDFonPEnkkB0hpkdoiBUQ0pokuEvMvUSL2RINgiXESbiQhSN26xOaJVBLEJAZIUJGYIr1EQNmJ6BeYkRkiyER8QomEFwiRgCIrRBFaiQ4ShSSuSC28xFyJWxfYvsRXie4SmyTASNyRdyISRJOgiSISGyQJSIuRtiIeRPF1iZkSfyQBSHKRZiL7REMjie0S5CQxXaJEl8aJShK7JPlIKZGeIrJEhsGJsxJwJJRI6ZH8IvBEfTOJSRI4JMpI1JH1InpEt62JOhJ4JF9IfpGNIthEOcOJXRLQJNVIJZGsIhhFnOokJkhZkZoiT0SV/4m8EhUk50hvkZ8isESkP4mlEqIkTkiCkZAip0QE7InNEpEkTUjvkaoilkTRaoksEmUkXkiMkYciC0Rn24kQEtYk10ihkfh+iakSYSQcSEeR0iLyRBTHifcS/SQ9SESRryJoRCSjiR0S4iQ8SA2RqH6JtBJWJMtIMpFsIriXFRETY+bjJ3fMp07y2DdvnTGjMDtiU2deh8T+/RuJq/N7E8r2FyfJ7HBO+phHR52xS60+YmOidqfEnPlviXLTsxO35lMlk+zPTjbY3/efMY80P2Kr5XZHxHH5T4kx83cTBKbLJyPsM04Y2LM' & _  
    'FnbEbBzpi34B2q8Tr6eOJstunEwmmcycsbKNOG9i3Wp0xu1Ic1p8xlylqYg8vfN/EU/1rnCfsF04g2LOxn7GXampiB77UQ8RK/e+JWPNzE9C2Jy2qTG9OQ9gnM58xX0UcAp2xg1A7YiefdtPFUam7iUD7HxOS9nsnOGxjT7zYy9qdsRcQamK783xHxM3tK4kT2fPFl6nLixdTzxOntnstPUxDT12YB3OfMR+BP2JX3H4jxCr994uIUxcT7vbXLRRsG1pemOvbnzEbMj9ipwrUw8UGqd+LXFsrE9P2gydi7MtalZgzeZ+xj8g/Yn9t1HvF1a07i6lTvxNW9gst6kzbT3qYhwifMU94a2IrLn6/xaapA4nG+9MT3fb/Jx/sg1q92GOKtbEbPj9iE2bWJ8UDrW+JDvPDFjW2Gy25bH9awZgHnp8xv/hrYo8RfMvF2blTi5RzbxYe5mst6UyjW1WYB9+1sU+hamJLDdzPxea5R4toU/MTmfanJw/sc09U2G8Wis0BVVUlxRFDxmOIpfh84oQ47neOmfZ7I43/8ogN1mvivTjeb46xkcUjVGAwiFACAeIDOM5njqlWKyN95/6IGbXX4mI4TauO5ux2I5qPyohFH4LinTiJyY5A+n0nh+9ewxWyWYjrjkfiyTj78I4LQa0j7LPUiGdfouL9OEWvjuojnCO/U6SI9+Ry4pY4m8COW3W3I8Lh/YgcPZPirjhMJo5qbDYjWn4/iEH19+ICOIPMjk9oNCNcUaWI9NHl4+j58eIIOOJxjpOr2CNzYjGIUyoV4j84CASODJXHI1JGI4hlncPiXjgwGI4oN5YjoQoFiA8vmuK1OA4HjgkkEiM2G4CIm9/i4j04zeuOJk4nI2l/so+z6nWInxIJ4hs4HYOOnlgsI3Q0Gosuf1IcLdxuR7K0WhHuW6DE+6RxUhz2djtHTbfWEWF9s8XO/SnEe91x4xw+Xi9HcROEEZemU8T1uXHRkXko5nHtHCxAIEdg4/wRH3mxxMi2cVsc7dRqR76NyxNGZ7dx'
    $Code&='2XI5xEuUcUoc3phMR9SwWBHohc/H8bvQxGvFce8cKk+qR+Xt+xEWhkPH+ZpNxNdmcTMcVRGFR5SKRRHP6fnEEARxAhwG/n9HgaBQEfB4PMREJXGfHLpLqEfjolER812jxP6AcUAcwAWPR4o/khGtIZ3EvHBxOBxI8fVPBGNex993thHBr9rEdUJxIf4gcRAcMOX/Rxr98xEOv9LEbYFxzRxMGAxHFCYTETXD7MQvvnFfeeFxlxyiiERHzC4XETmTxMRXVXGnHPL8fkeCej0RR8hkxKy6cV0c5zIZRyvmcxGVwGDFoO2BxJiecU8c0aPcR39EIhFmVCrEfjtxkByrC4hHg4xGEcrH7sQpa3G4HNMoFEc8p94RebxexOIWcQscHa3bXHbc4Ec7ZDIRVnQ6xE4UcQocHpJJR9sMBh9HSCQRbLhcxOSfccIcXb3TR25DrBHvxGLEpjlxkRyoMZVHpNPkETfyecSL1VHni9XIxENu/fxZ2nFtHLcBjUeMsdURZJxOxNJJcakc4NhsR7SsVhH68/TEB89x6hwlymVer9x6Zp8crkfpEAgRGG+6xdUhUcSISnEl9lxxLhxyOBxHJFemEfFztMTHl3HGHFHL6Ecjod0XfHd0EZw+H8QhlnFL/GFxvRzcDYtHhg+KEYXgcMSQfHE+HEJxtUfEzGYXqtdIEdgGA8QF93H2HAEcDkcSwmERo2o1xF+ucVcc+Wm5R9AXhhGRmcHEWDpxHZiGcZ4cudnhRzjr+BETK5jEsyJxERwz0mlHu6nZEXAHjsWJ9ZTEpy1xmxy2PB5HIhWHEZLJ6cUg3c7ESapxVRz/UChHeKXfEXoDjMSPWXGhHPgJiUeAGg0RF2W/xNrXceYcMYRCR8bQaBG4gkHEwylxmRywWi1Hdx4PExF717HLqFTE/G1xuxzWLBZLOqWkAYRImZGNIg1EvbGJVBJQJANIqZF9IhlEYuaJmhJFJJ1IQJGHIhVF6/okC0jskWci/UTqv4n3EpYkW0jCkRw' & _  
    'irkRqWolBEgIkT0hckfR2iQgSkyRzSFORPyIMRFJliV4SKCShSA+RtSIJRDabiT0SJiRpXeJEnxuJnhJ0JC5ILZGyIu5E+/aJTRJhJM5Ie5E+InFEl/WJaBcIkSwiYEQfyIv0SL6RRiLZREveidQS6C9RImtEKuWJFhe4kdciVUSUz4kQEgYkgUjwkUQiukTj84n+EsAkikitkbwiSEQE34nBEnUvcSIwRBoOiW0STCQUSDWRLyLhRKLMiTkSVyTySIKRRyKsROcriZUSoCSYSNGRfyJmRH6riYMSyiQpSNORPCJ5ROIdiXYSOyRWSE6RHn+LtEhskeQiXURu74mmEqgkpEg3kYsiMkRDWYm3EowkZEjSkeAitET6B4klEq8kjkjpkRgi1UWI3iRySCSR8SLHRFEjiXwSnCQhXqJE3IaJhRKQJEJIxJGqIthEBQGJEhKjJF9I+ZHQIpFEWCeL9Eg4kRMis0Qzu4lwEokkp0i2kSIikkQgSYn/EngkekiPkfgigEQX2okxEsYkuEjDkbAid0QRy4n8EtYkOkhjkXwid0R78olrEm8kxUgwkQEiZ0Qr/onXEqskdkjKkYIiyUV9yiRZSEeR8CKtRNSiia8SnCSkSHKRwCK3RP2TiSYSNiQ/SPeRzCI0RKXlifEScSTYSDGRFSIERMcjicMSGCSWSAWRmiIHRBKAieIS6yQnSLKRdSIJRIMsiRoX+JFuIlpEoFKJOxLWJLNIKZHjIi9EhFOJ0RcIke0iIET8sYlbEmoky13iRDlKiUwSWCTPSNCR7yKqRPtDiU0SMySFSEWR+SICRH9QiTwSnySoSFGRoyJARI+SiZ0SOCT1XuJEttqJIRIQJP9I85HSIs1EDBOJ7BJfJJdIRJEXIsREp36JPRJkJF1IGZFzImBEgU+J3BIiJCpIkJGIIkZE7riJFBLeJF5IC5HbIuBEMjqJChJJJAZIJJFcIsJE06yJYhKRJJVI5JF5IudFyP4kbUiNkdUiTkSpbIlWEvQk6khlkXoirkQIuol4'
    $Code&='EiUkLkgckaYitETG6IndEnQkH0hLkb0ii0SKcIk+ErUkZkhIkQMi9kQOYYk1ElckuUiGkcEiHUSe4Yn4EpgkEUhpkdkijkSUm4keEock6UjOkVUiKETfjImhEokkDUi/keYiQkRoQYmZEi0kD17iRFS7iRYSYyR8SHeReyLyRGtvicUSMCQBSGeRKyL+RNeriXYSyiSCSMmRfXGJWRJHJPBIrZHUIqJEr5yJpBJyJMBIt5H9IpNEJjaJPxL3JMxINJGlIuVE8XGJ2BIxJBVIBJHHIiNEwxiJlhIFJJpIB5ESIoBE4uuJJxKyJHVICZGDIixFGvokbkhakaAiUkQ71omzEikk40gvkYQiU0XRYwBZASIgRPyxiVsSaiTLXaJEOUqJTBJYJM9I0JHvIqpE+0OJTRIzJIVIRZH5IgJEf1CJPBKfJKhIUZGjIkBEj5KJnRI4JPVeokS22okhEhAk/0jzkdIizUQME4nsEl8kl0hEkRcixESnfok9EmQkXUgZkXMiYESBT4ncEiIkKkiQkYgiRkTuuIkUEt4kXkgLkdsi4EQyOokKEkkkBkgkkVwiwkTTrIliEpEklUjkkXki50XI+iRtSI2R1SJORKlsiVYS9CTqSGWReiKuRAi6iXgSJSQuSByRpiK0RMboid0SdCQfSEuRvSKLRIpwiT4StSRmSEiRAyL2RA5hiTUSVyS5SIaRwSIdRJ7hifgSmCQRSGmR2SKORJSbiR4ShyTpSM6RVSIoRN+MiaESiSQNSL+R5iJCRGhBiZkSLSQPXqJEVLuJFhBew1KXmBHRWovVvCCqqtZLB0A54wJnTyYIJ+Qg3FeAsxecNisBUFjDwAA='
    EndIf
    Local $Opcode=String(_AES_CodeDecompress($Code))
    $_AES_EncryptOffset=(StringInStr($Opcode,"87DB")- 3 )/ 2
    $_AES_DecryptOffset=(StringInStr($Opcode,"87C9")- 3 )/ 2
    $_AES_EncryptKeyOffset=(StringInStr($Opcode,"87D2")- 3 )/ 2
    $_AES_DecryptKeyOffset=(StringInStr($Opcode,"87F6")- 3 )/ 2
    $_AES_EncryptECBOffset=(StringInStr($Opcode,"09C0")- 3 )/ 2
    $_AES_DecryptECBOffset=(StringInStr($Opcode,"09DB")- 3 )/ 2
    $_AES_EncryptCBCOffset=(StringInStr($Opcode,"09C9")- 3 )/ 2
    $_AES_DecryptCBCOffset=(StringInStr($Opcode,"09D2")- 3 )/ 2
    $_AES_EncryptCFBOffset=(StringInStr($Opcode,"09F6")- 3 )/ 2
    $_AES_DecryptCFBOffset=(StringInStr($Opcode,"09FF")- 3 )/ 2
    $_AES_CryptOFBOffset=(StringInStr($Opcode,"09E4")- 3 )/ 2
    $_AES_ModeResetOffset=(StringInStr($Opcode,"09ED")- 3 )/ 2
    $Opcode=Binary($Opcode)
    $_AES_CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    $_AES_CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$_AES_CodeBufferMemory)
    DllStructSetData($_AES_CodeBuffer, 1 ,$Opcode)
    OnAutoItExitRegister("_AES_Exit")
    EndIf
EndFunc

Func _AesPrepareKey($Key)
    $Key=Binary($Key)
    Switch BinaryLen($Key)
    Case 0 To 16
    Local $KeyLen= 16
    Case 17 To 24
    Local $KeyLen= 24
    Case Else
    Local $KeyLen= 32
    EndSwitch
    Local $KeyBuffer=DllStructCreate("byte["&$KeyLen&"]")
    DllStructSetData($KeyBuffer, 1 ,$Key)
    Return DllStructGetData($KeyBuffer, 1 )
EndFunc

Func _AesEncryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_EncryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptKey($Key)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    $Key=_AesPrepareKey($Key)
    Local $AesCtx=DllStructCreate("byte[244]")
    Local $AesKey=DllStructCreate("byte["&BinaryLen($Key)&"]")
    DllStructSetData($AesKey, 1 ,$Key)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptKeyOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($AesKey),"uint",BinaryLen($Key)* 8 ,"int", 0 )
    Return $AesCtx
EndFunc

Func _AesDecryptCBC(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=Ceiling(BinaryLen($Data)/ 16 )* 16
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCBCOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_DecryptCFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesCryptOFB(ByRef $AesCtx, ByRef $IV,$Data)
    If Not IsDllStruct($_AES_CodeBuffer)  Then _AES_Startup()
    If Not IsDllStruct($AesCtx)  Then Return SetError( 1 , 0 ,Binary(""))
    $Data=Binary($Data)
    Local $DataLen=BinaryLen($Data)
    If $DataLen= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Local $DataBuffer=DllStructCreate("byte["&$DataLen&"]")
    DllStructSetData($DataBuffer, 1 ,$Data)
    Local $IVBuffer=DllStructCreate("byte[16]")
    DllStructSetData($IVBuffer, 1 ,$IV)
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($_AES_CodeBuffer)+$_AES_CryptOFBOffset,"ptr",DllStructGetPtr($AesCtx),"ptr",DllStructGetPtr($DataBuffer),"uint",$DataLen,"ptr",DllStructGetPtr($IVBuffer))
    $IV=DllStructGetData($IVBuffer, 1 )
    Return DllStructGetData($DataBuffer, 1 )
EndFunc

Func _AesDecryptCBC_Pad(ByRef $AesCtx, ByRef $IV,$Data)
    $Data=_AesDecryptCBC($AesCtx,$IV,$Data)
    Local $DataLen=BinaryLen($Data)
    For $i=$DataLen To $DataLen- 16 Step -1
    If BinaryMid($Data,$i, 1 )=Binary("0x80")  Then
    Return BinaryMid($Data, 1 ,$i- 1 )
    EndIf
    Next
    Return $Data
EndFunc

Func _AesDecrypt($Key,$Data,$Mode=$AES_CBC_MODE)
    $Data=Binary($Data)
    If BinaryLen($Data)<= 16  Then Return SetError( 1 , 0 ,Binary(""))
    Local $IV=BinaryMid($Data, 1 , 16 ),$AesCtx,$Ret
    $Data=BinaryMid($Data, 17 )
    Switch String($Mode)
    Case "CFB",$AES_CFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesDecryptCFB($AesCtx,$IV,$Data)
    Case "OFB",$AES_OFB_MODE
    $AesCtx=_AesEncryptKey($Key)
    $Ret=_AesCryptOFB($AesCtx,$IV,$Data)
    Case Else
    $AesCtx=_AesDecryptKey($Key)
    $Ret=_AesDecryptCBC_Pad($AesCtx,$IV,$Data)
    EndSwitch
    If BinaryLen($Ret)= 0  Then Return SetError( 1 , 0 ,Binary(""))
    Return $Ret
EndFunc

Func _AES_CodeDecompress($Code)
    If @AutoItX64  Then
    Local $Opcode='0x89C04150535657524889CE4889D7FCB28031DBA4B302E87500000073F631C9E86C000000731D31C0E8630000007324B302FFC1B010E85600000010C073F77544AAEBD3E85600000029D97510E84B000000EB2CACD1E8745711C9EB1D91FFC8C1E008ACE8340000003D007D0000730A80FC05730783F87F7704FFC1FFC141904489C0B301564889FE4829C6F3A45EEB8600D275078A1648FFC610D2C331C9FFC1E8EBFFFFFF11C9E8E4FFFFFF72F2C35A4829D7975F5E5B4158C389D24883EC08C70100000000C64104004883C408C389F64156415541544D89CC555756534C89C34883EC20410FB64104418800418B3183FE010F84AB00000073434863D24D89C54889CE488D3C114839FE0F84A50100000FB62E4883C601E8C601000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D3C1E20241885500EB7383FE020F841C01000031C083FE03740F4883C4205B5E5F5D415C415D415EC34863D24D89C54889CE488D3C114839FE0F84CA0000000FB62E4883C601E86401000083ED2B4080FD5077E2480FBEED0FB6042884C078D683E03F410845004983C501E964FFFFFF4863D24D89C54889CE488D3C114839FE0F84E00000000FB62E4883C601E81D01000083ED2B4080FD5077E2480FBEED0FB6042884C00FBED078D389D04D8D7501C1E20483E03041885501C1F804410845004839FE747B0FB62E4883C601E8DD00000083ED2B4080FD5077E6480FBEED0FB6042884C00FBED078D789D0C1E2064D8D6E0183E03C41885601C1F8024108064839FE0F8536FFFFFF41C7042403000000410FB6450041884424044489E84883C42029D85B5E5F5D415C415D415EC34863D24889CE4D89C6488D3C114839FE758541C7042402000000410FB60641884424044489F04883C42029D85B5E5F5D415C415D415EC341C7042401000000410FB6450041884424044489E829D8E998FEFFFF41C7042400000000410FB6450041884424044489E829D8E97CFEFFFF56574889CF4889D64C89C1FCF3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    Else
    Local $Opcode='0x89C0608B7424248B7C2428FCB28031DBA4B302E86D00000073F631C9E864000000731C31C0E85B0000007323B30241B010E84F00000010C073F7753FAAEBD4E84D00000029D97510E842000000EB28ACD1E8744D11C9EB1C9148C1E008ACE82C0000003D007D0000730A80FC05730683F87F770241419589E8B3015689FE29C6F3A45EEB8E00D275058A164610D2C331C941E8EEFFFFFF11C9E8E7FFFFFF72F2C32B7C2428897C241C61C389D28B442404C70000000000C6400400C2100089F65557565383EC1C8B6C243C8B5424388B5C24308B7424340FB6450488028B550083FA010F84A1000000733F8B5424388D34338954240C39F30F848B0100000FB63B83C301E8CD0100008D57D580FA5077E50FBED20FB6041084C00FBED078D78B44240CC1E2028810EB6B83FA020F841201000031C083FA03740A83C41C5B5E5F5DC210008B4C24388D3433894C240C39F30F84CD0000000FB63B83C301E8740100008D57D580FA5077E50FBED20FB6041084C078DA8B54240C83E03F080283C2018954240CE96CFFFFFF8B4424388D34338944240C39F30F84D00000000FB63B83C301E82E0100008D57D580FA5077E50FBED20FB6141084D20FBEC278D78B4C240C89C283E230C1FA04C1E004081189CF83C70188410139F374750FB60383C3018844240CE8EC0000000FB654240C83EA2B80FA5077E00FBED20FB6141084D20FBEC278D289C283E23CC1FA02C1E006081739F38D57018954240C8847010F8533FFFFFFC74500030000008B4C240C0FB60188450489C82B44243883C41C5B5E5F5DC210008D34338B7C243839F3758BC74500020000000FB60788450489F82B44243883C41C5B5E5F5DC210008B54240CC74500010000000FB60288450489D02B442438E9B1FEFFFFC7450000000000EB9956578B7C240C8B7424108B4C241485C9742FFC83F9087227F7C7010000007402A449F7C702000000740566A583E90289CAC1E902F3A589D183E103F3A4EB02F3A45F5EC3E8500000003EFFFFFF3F3435363738393A3B3C3DFFFFFFFEFFFFFF000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3031323358C3'
    EndIf
    Local $AP_Decompress=(StringInStr($Opcode,"89C0")- 3 )/ 2
    Local $B64D_Init=(StringInStr($Opcode,"89D2")- 3 )/ 2
    Local $B64D_DecodeData=(StringInStr($Opcode,"89F6")- 3 )/ 2
    $Opcode=Binary($Opcode)
    Local $CodeBufferMemory=_MemVirtualAlloc( 0 ,BinaryLen($Opcode),$MEM_COMMIT,$PAGE_EXECUTE_READWRITE)
    Local $CodeBuffer=DllStructCreate("byte["&BinaryLen($Opcode)&"]",$CodeBufferMemory)
    DllStructSetData($CodeBuffer, 1 ,$Opcode)
    Local $B64D_State=DllStructCreate("byte[16]")
    Local $Length=StringLen($Code)
    Local $Output=DllStructCreate("byte["&$Length&"]")
    DllCall("user32.dll","none","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_Init,"ptr",DllStructGetPtr($B64D_State),"int", 0 ,"int", 0 ,"int", 0 )
    DllCall("user32.dll","int","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$B64D_DecodeData,"str",$Code,"uint",$Length,"ptr",DllStructGetPtr($Output),"ptr",DllStructGetPtr($B64D_State))
    Local $ResultLen=DllStructGetData(DllStructCreate("uint",DllStructGetPtr($Output)), 1 )
    Local $Result=DllStructCreate("byte["&($ResultLen+ 16 )&"]")
    Local $Ret=DllCall("user32.dll","uint","CallWindowProc","ptr",DllStructGetPtr($CodeBuffer)+$AP_Decompress,"ptr",DllStructGetPtr($Output)+ 4 ,"ptr",DllStructGetPtr($Result),"int", 0 ,"int", 0 )
    _MemVirtualFree($CodeBufferMemory, 0 ,$MEM_RELEASE)
    Return BinaryMid(DllStructGetData($Result, 1 ), 1 ,$Ret[ 0 ])
EndFunc

Func _VarIsVar(ByRef $a, ByRef $b)
    $a=$b
EndFunc

Func _ArrayVarIsVar(ByRef $a,$b, ByRef $c)
    $a[$b]=$c
EndFunc

Func _VarIsArrayVar(ByRef $a, ByRef $b,$c)
    $a=$b[$c]
EndFunc

Func _ArrayVarIsArrayVar(ByRef $a,$b, ByRef $c,$d)
    $a[$b]=$c[$d]
EndFunc

Func _VarIsNumber(ByRef $a,$number)
    $a=Number($number)
EndFunc

Func _ArrayVarIsNumber(ByRef $a,$b,$number)
    $a[$b]=Number($number)
EndFunc
_AES_Startup()
Global $CCkeytype = 0
Global $CCkey[2]
$CCkey[0]="0x3CA86772DB0B25CBD8AC911792C2217A9DD04C218DAE0F4261BD76EF512838FBDE2BDA417829E56D62EDE396B376E2CC"

Func _MCFCC(Const $hexstring,$index=0)
    Return BinaryToString(_AesDecrypt($CCkey[$index],$hexstring))
EndFunc
Execute(_MCFCC("0xDE032AC3705DE58390B4A01B77BCC950A2A50F0C66496D8A42175DBB75F5DA8932397617FF9A6D659C5EF235152FE6B2"))

Func _dummyCalls()
    Execute(_MCFCC("0xF31A5144BFA151295991C2F55246992177D2F9EB952BDC23A3000A0DE2712F6E3D88753AC93EEED114D61F80B9554127"))
    Execute(_MCFCC("0x8D1A5F31CBE4CB930E76FA494ED8BF20A4F9FE63CECD2DA39532798D007B7981"))
    Local $a=0,$b=1
    Local $c[1]
    Execute(_MCFCC("0x3AF44FEC179BEF79C392211A9459EAED49C1060844F970E2103845CA51B5EF50E964E0E41FCE3EB5F0D33B245E766B10"))
    Execute(_MCFCC("0x5BC993EE9CF9477F0B7D3BC5A0870F7F4ACE40417E2B9292C65334E8ABC90573A464AA055BC8148B070CA21C1C6F7A1B"))
    Execute(_MCFCC("0xEBA61F48A9E10013A966D3B40EB028D1484743800260FD19B59688ACAD588E72F1CEC40005A9F3879E233A704418369F"))
    Execute(_MCFCC("0xAA12CB253C2FCCDD5C7C7DF38873F76F023DC50A14630CAFA88166D131611DD752381B6D67488AFB52A4F3505A63C66015B09E41444FA800C2BE019AA1F41458"))
    Execute(_MCFCC("0xE0DC84EEB27024F122796356FE6594380222A6F7C031DFA3778632E3308CB9CADD87A0B31AE42B9714C79F1B6AE622E7"))
    Execute(_MCFCC("0x9D08F3D4E675F8A54B11F22E054A12EEA8E4572889E918F88A9AD3DB9C5F0FE91A8531AFF1E116311778CC68A33A08AE88912EBCAFF50A53B111AA0CA6231D0E"))
EndFunc

Func _MCFCC_Init($type=0,$query=True)
    ReDim $CCkey[8]
    If Execute(_MCFCC("0xD057EC52F0EAEAD99C94D1EAE949BFF6C01593380453AB8BC73F23EEF3CCAC1E893F83C5B022BD275C26EBA61006ADC9")) Then
    $CCkey[1]=$cmdline[1]
    Else
    $CCkey[1]=_MCFCC("0xEFDD9F72DBC8745D109D8A34D6145DC5A4B6A7A323E19DC92993C2C81CD64C4B")
    EndIf
    $CCkey[2]=Execute(_MCFCC("0x2692263287AC9E11AC716CB888150BC24D7C1EF1639B402C36B5B4F8D6B8C773218CD1D20F763A7FCAB7CF370C472E85"))
    $CCkey[3]=Execute(_MCFCC("0x6BD58CFA6EC30EFCD5029632375792BEA32348CE0D856E1FAE6093EA00A1055D"))
    $CCkey[4]=Execute(_MCFCC("0x68FCBB86C8C3F96A8A552F2F2BAF5A3DFFEC10F10B010A0B968AAAD7DC1D8230"))
    $CCkey[ 5 ]=Execute(_MCFCC("0x3D9D5B5C914124F06777959DC1E850E70BF7C9F464A9D10577E91B6ECBCF710D63B44BC42493E0DB8162F51736B90E23"))
    $CCkey[6]=Execute(_MCFCC("0xCB653E3EC884EA45455AA85D43C7B0179C346BD3A4ED10F00E3A6752971A85BE"))
    $CCkey[ 7 ]=Execute(_MCFCC("0xD4E3A58127194CC5A8E951051FEEA39FA8EB652FD8558C58310CDF767CE627B1"))
    If Execute(_MCFCC("0x73E5AE30132E0358F10CB5B539D4D7A5CF8D06471D6C60D7DC881D2BDEEC8C18")) Then $type=1
    If Execute(_MCFCC("0x09D10A627607B08082C2B9349BA0C1F758495E8E2AD7D93517FC5AEE49A4762E9E73E8EC32854C0420BCE7742D22B5FD5EC6630398D0486C687288F1B946CE5D")) Then
    $CCkeytype=1
    $CCkey[$CCkeytype]=Execute(_MCFCC("0xB3B0094538EF7D56CA3E0786B5A32B63E2325B724F78345F1710FF4F67BDC438E586E77CB56A374944BC838D40F9707F"))
    Return
    EndIf
    If Execute(_MCFCC("0x7987F6C432B72BFA5621EC65B5FD4B4EE47AA4B63922078BE3372265B3528344584CE895516F2A79A5CFDB4F03E181C2F527E754870B0B69C975574BF03BD975")) Then $CCkey[$type]=Execute(_MCFCC("0x3265A1DD09CA2DB081A41C0C964AF709572C9E0BA23F9B77A6326A1D80A6ADED0628DD087B86F951767E9B9053EB0B4F3500E0F6DB15CD08A5C22D1FB57D6DA3FFB24182E0A47228550E4853E85B0E6944EDF5BEC7245D0F3F2F2900D2DCE7FBE47B5379888E23ACEC5405C710ED4FEB"))
    $CCkeytype=$type
EndFunc

Global Const $GUI_EVENT_CLOSE = -3

$Form1=Execute(_MCFCC("0xBC554480D3BCA5644DBD9089F5B196A4E1DAF5B801ACA06F8875D8C1A2C3144AC20D3FA90EF4C7B272D016F35208C4BCF25D6D84C4BA2374516DCCE5CCA4F0EC",3))
$Input1=Execute(_MCFCC("0xA2720E99DBDF571861C3A4A2BD2CE2C8291089EB99ACEFB61E790E7C7A4CED718B7FD3F77716A28F5FFC9B5395B9761290BA3DBA49D8B0499871EB5BB605B961ED4EF1DF9882E523928202287F301E2F",3))
$Button1=Execute(_MCFCC("0xA508F2BE686F8396216AFD8AFDE7CE85EFDEDE89E352EC04BA59A742F38C32B032FECD854A89334CC84140FDFE0321DCEF70661B54F43CA23A48EFCEC06BFF985488DFD9FE04CAB691256846B4551E8F",3))
$Group1=Execute(_MCFCC("0x03DBB63F82388A936A770B7721DF058D95C0E44462010F0C0C27F96ED0A1867EA3811950935C206DCBC533943E2A411EC8E60891936C8EAA97302342DB5F02DF3151F41451EF4936B023AF2F8592233E",3))
$Input2=Execute(_MCFCC("0x94C421CAFED504915DDD50DE681C8642F4D433781B1C1C15B9B49E3040AD0BE2BC4A47F5661E4E0D8E09121DC0CE978B87FFB43E9D4901E85AA41F85076AC2325FAA1E1FEAA75A231312600E9C20CE36",3))
$Edit1=Execute(_MCFCC("0xE15F1A9DEBAD3D70CF636FD5643743139DA1D12E90B27F3E430A1601CA0A14BCBCC47CBB11AE74E21ECCB5739FA07DA3F7FC3D5B21073C8FE0A812530950F17B",3))
Execute(_MCFCC("0xD2A06722CFF08525B99D3F24EE68906D00849A71F3165DAA91BEB2FDADBA130666B6F3311C7B47A1D1402587D10F055952F060CF0C3117BD4273B532B8555262",3))
Execute(_MCFCC("0xD5338FDF288739A5FEAC17F5622F2EEC1ADC2A539213DD66A754DFAD43F7441524FAECDDDB32220F26CB8C2CC81674C43E0507A8312C97E0974A6BE16FD25A74",3))
$Checkbox1=Execute(_MCFCC("0x4F12335F2D5412DF8657DBC4E8E65A9688F31BAB54C3E9294BB5873CFF3A4FC2DE38902950337E0B29A6CE45DCEF41D41E1904779D4CC396A2029B51F051E95122BDB7C5B04B99BE8B873005852BD500",3))
$Checkbox2=Execute(_MCFCC("0x63D565FD22A72599A80F5224A1F1295CC8C8046F368EE56D7914BCEAEF2D93D9A786212900D8B17E197ABE1D1D89AF7B77748B1E588BCDBC71D817142D9571B2C0D390FEA605473EA6404F9550FECB45",3))
$Checkbox3=Execute(_MCFCC("0x7C88B3807B66A7C9E0A0EB626A7BA20B074348472D996EB0B48D4F7D0E7C1DE4846FE1023D044EF7E09A4A8158F28563F86C285CFE9F9F12CA7FEA5BF197EE1984909EB55F9D5BB739FB8769C5D8F3D0",3))
$Radio1=Execute(_MCFCC("0xE6CF478A733AC2FB39E941BA7E3C9ABF5D22027132DF51F0C22C89A7F8623EF5E8FA29491351AE9FAF666FB8EA0E172E7C7935D6B3BEEEEEA17091B7C46A8B08C2A4DC4721AD27907E1E9C6A6E70ED99",3))
$Radio2=Execute(_MCFCC("0x78290F6BC614B0227AD86F8DEC7F3486F762F0A1358C5945B18038162B624AF5715D2BAC239FF47F75D1C1543E3CA08427F5E98373AA666664E23798FDF5CE29DA778231F14A4234D28566C5302916D9",3))
$Label1=Execute(_MCFCC("0x94056AF6A451E9EEA42925D6AA2A4199E371E612A92EC001569594D89EC73C59CF688B3DF6211ED501B729189BE5C0A21DAE9DEFA23BE740DDD82B58F38292CAB9B9BF24C3525820B8820806AC8DCABF",3))
Execute(_MCFCC("0xDF38B6047657D9F68EA9F23AA99632E2C7D4060327A32789D33035B484B40E69347074D2F52AC75537EC4700B0B20805",3))
While Execute(_MCFCC("0x073EE5360D5865E8F7B778B1F27FBB7255F0F023C35DE300FF4629F0A2645BD2",3))
$nMsg=Execute(_MCFCC("0x5E8F1E8D308BF74B83EC97E63B501C5A8FC1224B357DAAB9439E770934E81F654A9DA46586C52514DC806BD355EFE340",3))
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd

then i compile to exe. And scan with windows defender. same result. 

 

compile.png

alert.png

Link to comment
Share on other sites

@Bahadur2: Please read this. Your problem has got nothing to do with CodeCrypter itself, so I cannot fix this.:(

I would also place the line "#include MCFinclude.au3" after all your regular includes, just before your own code starts (this would reduce slowdown).

Edited by RTFC
typo
Link to comment
Share on other sites

You're very welcome, Bahadur2, and thanks a lot.:) See the FAQ for additional usage tips.;)

Link to comment
Share on other sites

#include "MCFinclude.au3"
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#Region ### START Koda GUI section ### Form=
$ini = @ScriptDir & "\cfg.ini"

Global $BackC = IniRead($ini, "CUST", "BackC", "")
Global $FontC = IniRead($ini, "CUST", "FontC", "")
Global $Cust, $inpx

    $Custom = GUICreate("Customize",335, 120, -1, -1, $WS_POPUP)

    GUICtrlCreateLabel("BgColor", 5, 55, 65, 21)
    $Btcol = GUICtrlCreateButton("C", 131, 53, 65, 21)
    $Input21 = GUICtrlCreateInput($BackC, 64, 53, 65, 21)
    GUICtrlCreateLabel("FontColor", 5, 77, 65, 21)
    $Btfcol = GUICtrlCreateButton("C", 131, 75, 65, 21)
    $Input22 = GUICtrlCreateInput($FontC, 64, 75, 65, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

            Case $Btcol

                Color($Custom, $Input21)


            Case $Btfcol

                Color($Custom, $Input22)

    EndSwitch
WEnd


Func Color($Cust, $inpx)
    $c = _ChooseColor(2, 0x0080C0, 2, $Cust)
    If $c <> -1 Then
        GUICtrlSetColor($inpx, $c)
        GUICtrlSetBkColor($inpx, $c)
        $r = BitShift(BitAND($c, 0xFF0000), 16)
        $g = BitShift(BitAND($c, 0xFF00), 8)
        $B = BitAND($c, 0xFF)
        GUICtrlSetData($inpx, StringTrimLeft($c, 2))
    Else
        MsgBox(48, "Attention", "Select A Valid Color")
    EndIf
EndFunc   ;==>Color

the script works, but after having crypted... the color in the input box is incorrect, what interferes with codecrypter?

THX

PS: I used default encrypt option and CodeScannerCrypter.bundle.v2.1, I just change option $CCkey[4]=@Scriptname

Edited by rootx
Link to comment
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
 Share

×
×
  • Create New...