Hi hackers and cheaters,
Since someone named “dsdad” ask for source code for mentioned trainer as post title said (link : https://vclbrofunworld.wordpress.com/2016/08/12/vc-bro-8-ball-ver-3-3-35_278-long-line-trainer-release-11-august-2016/), so here is source code and trainer made using Cheat Engine 6.4 (not try run it on CE 6.6, 6.7 and 6.8 yet).
Code inside the trainer
—— Avoid Lua Engine Pop-up
getLuaEngine().cbShowOnPrint.Checked=false
getLuaEngine().hide()
—— Leecher Check
cecheck_list = createStringlist()
function cecheck()
getProcesslist(cecheck_list)
local count = 0
for i=0,cecheck_list.count-1 do
if cecheck_list[i]:find(“cheatengine”) then
count = count + 1
end
end
if count > 1 then
closeCE()
end
cecheck_list.clear()
end
cecheck_t=createTimer(nil)
timer_onTimer(cecheck_t, cecheck)
timer_setInterval(cecheck_t, 200)
timer_setEnabled(cecheck_t, true)
—
t=createTimer(nil)
t.Interval=1000
t.OnTimer=function(t)
if getProcessIDFromProcessName(“cheatengine-386.exe”) ~= nil or getProcessIDFromProcessName(“HxD.exe”) ~= nil then
showMessage(“Ooops… Something wrong. Dont try leech codes inside”)
closeCE()
end
end
t.Enabled=true
—
w=createTimer(nil)
w.Interval=1000
w.OnTimer=function(w)
if getProcessIDFromProcessName(“ProcessHacker.exe”) ~= nil or getProcessIDFromProcessName(“HxD.exe”) ~= nil then
showMessage(“Ooops… Something wrong. Dont try leech codes inside”)
closeCE()
end
end
w.Enabled=true
—– Music Play
function loadTableCode(n)
local t = findTableFile(n)
if t ~= nil then
local s = t.Stream
local c = readStringLocal(s.Memory,s.Size)
return c ~= nil and loadstring(c) — return a function
end
end
—
local f = loadTableCode(‘vcmusic.lua’)
print(type(f))
if type(f) == ‘function’ then f() else print(‘not loaded’) end
—- Call Code
function loadTableCode(n2)
local t2 = findTableFile(n2)
if t2 ~= nil then
local s2 = t2.Stream
local c2 = readStringLocal(s2.Memory,s2.Size)
return c2 ~= nil and loadstring(c2) — return a function
end
end
—
local f2 = loadTableCode(‘observ1.lua’)
print(type(f2))
if type(f2) == ‘function’ then f2() else print(‘not loaded’) end
—- Run the function
obivius()
a = tostring(vation)
— Defining a string to use as function later
funcStr = a
func = loadstring(funcStr)
func()
The trainer contains some file (lua source codes) which need add to TABLE file. These lua source codes will trigger by code above.
File #1 : vcmusic.lua (use to play some mp3 music files inside the trainer)
vcmusic.lua (you can copy codes below and paste to notepad and save as vcmusic.lua)
— Music MP3 Function
— fix CE6.4 MemoryStream write, and add other useful methods
if oldcreateMemoryStream==nil then oldcreateMemoryStream = createMemoryStream end
function createMemoryStream()
local obj = oldcreateMemoryStream()
local oldwrite=obj.write
obj.write = function (t,n) — override default write
local count=0
for _,v in ipairs(t) do
if count==n then break end
oldwrite({v},1)
count=count+1
end
end
obj.writeDword = function (v) obj.write(dwordToByteTable(v)) end
obj.writeWord = function (v) obj.write(wordToByteTable(v)) end
return obj
end
–convertMP3ToRIFFMP3(stream)
function convertMP3ToRIFFMP3(stream)
local riffmp3 = createMemoryStream()
local header = {
0x46464952,0x00000000,0x45564157,0x20746D66,0x0000001E,0x00020055,
0x0000AC44,0x00000000,0x00000001,0x0001000C,0x00000002,0x00010001,
0x61660571,0x00047463,0x2FF80000,0x61640014
} — default is 44100Hz , Stereo
local rateTable = {[0] = {11025,12000,8000}, –mpeg ver2.5
[2] = {22050,24000,16000}, –mpeg ver2
[3] = {44100,48000,32000}} –mpeg ver1
local bitrateTable = {[1]={32,64,96,128,160,192,224,256,288,320,352,384,416,448},
[2]={32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384},
[3]={32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320},
[4]={32,48,56, 64, 80, 96,112,128,144,160,176,192,224,256},
[5]={ 8,16,24, 32, 40, 48, 56, 64, 80, 96,112,128,144,160}}
for i,v in ipairs(header) do riffmp3.writeDword(v) end
riffmp3.writeWord(0x6174)
riffmp3.writeDword(stream.Size)
stream.Position = 0
riffmp3.copyFrom(stream,stream.Size)
riffmp3.Position = 0x4; riffmp3.writeDword(stream.Size+0x24)
stream.Position = 0
local chunk = stream.read( math.min(65536,stream.Size) )
local DWORD = byteTableToDword( {chunk[4],chunk[3],chunk[2],chunk[1]} )
–[[ looking for MPEG Audio frame header
bits 31 through 21 must all be set; Frame sync
bit 18 and bit 17, at least one set; Layer
bits 15 through 12, at least one clear; bitrate index
bits 11 through 10, at least one clear; sample rate index
also use above to find a header
bit 20 and 19; MPEG audio id
bit 7 and 6; channel mode
]]
local i=0x1
while (i<=#chunk-4) do
if (bAnd(DWORD,0xFFE00000)==0xFFE00000) and
(bAnd(DWORD,0x60000)~=0) and
(bAnd(DWORD,0xF000)~=0xF000) and
(bAnd(DWORD,0xC00)~=0xC00)
then
–probably MPEG Audio Layer I/II/III frame header
local channels =(bAnd(bShr(DWORD, 6), 3) == 3) and 1 or 2
local layer = 3 – bAnd(bShr(DWORD,17), 3) + 1;
local mpegaudioid = bAnd(bShr(DWORD,19), 3)
local rateindex = bAnd(bShr(DWORD,10), 3)
local bitrateindex= bAnd(bShr(DWORD,12),15)
local samplerate = rateTable[mpegaudioid][rateindex+1]
local row
if mpegaudioid==3 then row=layer — mpeg ver1
elseif layer==1 then row=4 — mpeg ver2 and ver2.5, Layer 1
else row=5 — mpeg ver2 and ver2.5, Layer 2 and 3
end
local bitrate = bitrateTable[row][bitrateindex]
riffmp3.Position = 0x16;
riffmp3.writeWord(channels)
riffmp3.writeDword(samplerate)
riffmp3.writeDword(math.floor(bitrate*1000/8))
break
end
if (bAnd(DWORD,0xFFFFFF00)==0x49443300) and
(bAnd(DWORD,0xFF)<0xFF)
–ID3 tag found
then
local size = bOr(bShl(chunk[i+6],7),chunk[i+7])
size = bOr(bShl(size,7),chunk[i+8])
size = bOr(bShl(size,7),chunk[i+9])
i=i+size
end
DWORD = bOr( bShl(DWORD,8) , chunk[i+4] ) % 0x100000000
i=i+1
end
chunk = nil
riffmp3.Position = riffmp3.Size – 1
return riffmp3
end
—-
function sound_prepare(track)
if track==nil then return nil end
if knownStreams==nil then knownStreams = {} end
local stream,streamID
— set stream variable
if type(track)==’string’ then
if knownStreams[track]~=nil then return track end — check name as StreamID
if findTableFile(track) then stream=findTableFile(track).Stream else return nil end
elseif track.ClassName==’TMemoryStream’ then
stream=track else stream=track.Stream
end
streamID=userDataToInteger(stream)
if knownStreams[streamID]~=nil then return streamID end
stream.Position = 0
if table.concat(stream.read(4),’-‘)==’82-73-70-70’ then
— RIFF format (wave file, etc.)
knownStreams[streamID]=stream
else
— probably mp3 file, converting
— convertMP3ToRIFFMP3(stream)
local riffmp3 = convertMP3ToRIFFMP3(stream)
knownStreams[streamID]=riffmp3
end
— if string, use it as streamID too
if type(track)==’string’ then knownStreams[track]=knownStreams[streamID] end
return streamID
end
if oldplaySound==nil then oldplaySound=playSound end
—
function playSound(track, …)
local ID=sound_prepare(track)
if ID then oldplaySound(knownStreams[ID], …)
else print(‘track not found’) end
end
File #2 : observ1.lua (encode source code, contain 8 ball AOB code, etc)
function obivius()
——————————————————————————–
— util functions
——————————————————————————–
local function divide_string( str, max, fillChar )
fillChar = fillChar or “”
local result = {}
local start = 1
for i = 1, #str do
if i % max == 0 then
table.insert( result, str:sub( start, i ) )
start = i + 1
elseif i == #str then
table.insert( result, str:sub( start, i ) )
end
end
return result
end
local function number_to_bit( num, length )
local bits = {}
while num > 0 do
local rest = math.floor( math.fmod( num, 2 ) )
table.insert( bits, rest )
num = ( num – rest ) / 2
end
while #bits < length do
table.insert( bits, “0” )
end
return string.reverse( table.concat( bits ) )
end
local function ignore_set( str, set )
if set then
str = str:gsub( “[“..set..”]”, “” )
end
return str
end
local function pure_from_bit( str )
return ( str:gsub( ‘……..’, function ( cc )
return string.char( tonumber( cc, 2 ) )
end ) )
end
——————————————————————————–
local basexx = {}
——————————————————————————–
— base2(bitfield) decode and encode function
——————————————————————————–
local bitMap = { o = “0”, i = “1”, l = “1” }
function basexx.from_bit( str, ignore )
str = ignore_set( str, ignore )
str = string.lower( str )
str = str:gsub( ‘[ilo]’, function( c ) return bitMap[ c ] end )
local wrong = str:match( “[^01]” )
if wrong then return nil, wrong end
return pure_from_bit( str )
end
function basexx.to_bit( str )
return ( str:gsub( ‘.’, function ( c )
local byte = string.byte( c )
local bits = {}
for i = 1,8 do
table.insert( bits, byte % 2 )
byte = math.floor( byte / 2 )
end
return table.concat( bits ):reverse()
end ) )
end
——————————————————————————–
— base16(hex) decode and encode function
——————————————————————————–
function basexx.from_hex( str, ignore )
str = ignore_set( str, ignore )
local wrong = str:match( “[^%x]” )
if wrong then return nil, wrong end
return ( str:gsub( ‘..’, function ( cc )
return string.char( tonumber( cc, 16 ) )
end ) )
end
function basexx.to_hex( str )
return ( str:gsub( ‘.’, function ( c )
return string.format(‘%02X’, string.byte( c ) )
end ) )
end
——————————————————————————–
— generic function to decode and encode base32/base64
——————————————————————————–
local function from_basexx( str, alphabet, bits )
local result = {}
for i = 1, #str do
local c = string.sub( str, i, i )
if c ~= ‘=’ then
local index = string.find( alphabet, c, 1, true )
if not index then
return nil, c
end
table.insert( result, number_to_bit( index – 1, bits ) )
end
end
local value = table.concat( result )
local pad = #value % 8
return pure_from_bit( string.sub( value, 1, #value – pad ) )
end
local function to_basexx( str, alphabet, bits, pad )
local bitString = basexx.to_bit( str )
local chunks = divide_string( bitString, bits )
local result = {}
for key,value in ipairs( chunks ) do
if ( #value < bits ) then
value = value .. string.rep( ‘0’, bits – #value )
end
local pos = tonumber( value, 2 ) + 1
table.insert( result, alphabet:sub( pos, pos ) )
end
table.insert( result, pad )
return table.concat( result )
end
——————————————————————————–
— rfc 3548: http://www.rfc-editor.org/rfc/rfc3548.txt
——————————————————————————–
local base32Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ234567”
local base32PadMap = { “”, “======”, “====”, “===”, “=” }
function basexx.from_base32( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( string.upper( str ), base32Alphabet, 5 )
end
function basexx.to_base32( str )
return to_basexx( str, base32Alphabet, 5, base32PadMap[ #str % 5 + 1 ] )
end
——————————————————————————–
— crockford: http://www.crockford.com/wrmg/base32.html
——————————————————————————–
local crockfordAlphabet = “0123456789ABCDEFGHJKMNPQRSTVWXYZ”
local crockfordMap = { O = “0”, I = “1”, L = “1” }
function basexx.from_crockford( str, ignore )
str = ignore_set( str, ignore )
str = string.upper( str )
str = str:gsub( ‘[ILOU]’, function( c ) return crockfordMap[ c ] end )
return from_basexx( str, crockfordAlphabet, 5 )
end
function basexx.to_crockford( str )
return to_basexx( str, crockfordAlphabet, 5, “” )
end
——————————————————————————–
— base64 decode and encode function
——————————————————————————–
local base64Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“abcdefghijklmnopqrstuvwxyz”..
“0123456789+/”
local base64PadMap = { “”, “==”, “=” }
function basexx.from_base64( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( str, base64Alphabet, 6 )
end
function basexx.to_base64( str )
return to_basexx( str, base64Alphabet, 6, base64PadMap[ #str % 3 + 1 ] )
end
——————————————————————————–
— URL safe base64 decode and encode function
——————————————————————————–
local url64Alphabet = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“abcdefghijklmnopqrstuvwxyz”..
“0123456789-_”
function basexx.from_url64( str, ignore )
str = ignore_set( str, ignore )
return from_basexx( str, url64Alphabet, 6 )
end
function basexx.to_url64( str )
return to_basexx( str, url64Alphabet, 6, “” )
end
——————————————————————————–
—
——————————————————————————–
local z85Decoder = { 0x00, 0x44, 0x00, 0x54, 0x53, 0x52, 0x48, 0x00,
0x4B, 0x4C, 0x46, 0x41, 0x00, 0x3F, 0x3E, 0x45,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x40, 0x00, 0x49, 0x42, 0x4A, 0x47,
0x51, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A,
0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,
0x3B, 0x3C, 0x3D, 0x4D, 0x00, 0x4E, 0x43, 0x00,
0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
0x21, 0x22, 0x23, 0x4F, 0x00, 0x50, 0x00, 0x00 }
function basexx.from_z85( str, ignore )
str = ignore_set( str, ignore )
if ( #str % 5 ) ~= 0 then return nil, #str % 5 end
local result = {}
local value = 0
for i = 1, #str do
local index = string.byte( str, i ) – 31
if index < 1 or index >= #z85Decoder then return nil, index end
value = ( value * 85 ) + z85Decoder[ index ]
if ( i % 5 ) == 0 then
local divisor = 256 * 256 * 256
while divisor ~= 0 do
local b = math.floor( value / divisor ) % 256
table.insert( result, string.char( b ) )
divisor = math.floor( divisor / 256 )
end
value = 0
end
end
return table.concat( result )
end
local z85Encoder = “0123456789”..
“abcdefghijklmnopqrstuvwxyz”..
“ABCDEFGHIJKLMNOPQRSTUVWXYZ”..
“.-:+=^!/*?&<>()[]{}@%$#”
function basexx.to_z85( str )
if ( #str % 4 ) ~= 0 then return nil, #str, 4 end
local result = {}
local value = 0
for i = 1, #str do
local b = string.byte( str, i )
value = ( value * 256 ) + b
if ( i % 4 ) == 0 then
local divisor = 85 * 85 * 85 * 85
while divisor ~= 0 do
local index = ( math.floor( value / divisor ) % 85 ) + 1
table.insert( result, z85Encoder:sub( index, index ) )
divisor = math.floor( divisor / 85 )
end
value = 0
end
end
return table.concat( result )
end
obser = “FUWS2LJNFUQE25LDNFRSAUDMMF4WK4RAINXW45DSN5WAUZTVNZRXI2LPNYQEE5DOL5GXK43JMNPVG5DPOBBWY2LDNMUHGZLOMRSXEKIKOBWGC6KTN52W4ZBIE5ZWS3DFNZRWKLTNOAZSOKIKMVXGICRNFUFGM5LOMN2GS33OEBBHI3S7JV2XG2LDL5IGYYLZINWGSY3LFBZWK3TEMVZCSCTQNRQXSU3POVXGIKBHINXW63BONVYDGJZJBJSW4ZAKBIWS2LJNFUWSAU3FOR2GS3THEBBWY33DNMFGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4STBNUWGMYLMONSSSCTUHVRXEZLBORSVI2LNMVZCQ3TJNQUQU5BOJFXHIZLSOZQWYPJRGAYDACTUFZHW4VDJNVSXEPLGOVXGG5DJN5XCQ5BJBIQGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4STBNUWHI4TVMUUQUIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOJJQW2LBAORXXG5DSNFXGOKDPOMXGIYLUMUUCOJLEFUSW2LJFLEQC6IBFJA5CKTJ2EVJSOKJJFEFGK3TEBJ2C4RLOMFRGYZLEHV2HE5LFBIFC2LJNFUWSAUTVNZXGS3THEBKGS5DMMUFHIZLYOQQD2IBCKZBSAQTSN4QEQYLDNNUW4ZZCBJ2F62LOMRSXQIB5EAYQUYZ5MNZGKYLUMVKGS3LFOIUG42LMFEFGGLSJNZ2GK4TWMFWD2NJQGAFGGLSPNZKGS3LFOI6WM5LOMN2GS33OFBRSSCRANFTCA5C7NFXGIZLYEA6D2IBDORSXQ5BAORUGK3QKEAQGG33OORZG63C7ONSXIVTJONUWE3DFFBGXSRTPOJWS4VDJORJHK3RMEB2HE5LFFEFCAIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOKRUXIUTVNYWCA5DFPB2DU43VMIUDCLDUL5UW4ZDFPAUSSCRAEB2F62LOMRSXQIB5EB2F62LOMRSXQIBLEAYQUIDFNRZWKCRAEBRW63TUOJXWYX3TMV2FM2LTNFRGYZJIJV4UM33SNUXFI2LUKJ2W4LBAMZQWY43FFEFCAIDUL5UW4ZDFPAQD2IBRBIQGK3TEBJSW4ZAKMMXEK3TBMJWGKZB5ORZHKZIKBIFC2LJNEAQFGZLUEBHXAZLOEBAXI5DBMNUCAUDSN5RWK43TEAXSAQTVOR2G63RAJBQWG23TEBRHSICMOVQSATDPMFSCAU3UOJSWC3IKMZ2W4Y3UNFXW4IDQNFSEI2LBNRXWOKDEN5IGSZBJBIQCA3DPMNQWYIDQNR2WO3TBNVSSAPJAPMRGSZLYOBWG64TFEIWCEZTMMFZWQ4DMMF4WK4TQNR2WO2LOEIWCE4DMOVTWS3RNMNXW45DBNFXGK4RCFQRG64DFOJQSELBCMNUHE33NMURCYITBO5SXG33NNF2W2X3QOJXWGZLTOMRCYITUN5ZGG2BCFQRGI4TBM5XW4IRMEJWWC6DUNBXW4IRMEJYGC3DFNVXW63RCFQRHGYLGMFZGSIRAPUFCAIDMN5RWC3BAMZ2W4Y3UNFXW4IDUNVSXEZ3FFB2CY3ZMFYXC4KJAMZXXEIDLFR3CA2LOEBYGC2LSOMUG6KJAMRXSA5C3NNOT25RAMVXGIIDJMYQHGZLMMVRXIKBHEMTSYLROFYUT4MBAORUGK3RAOJSXI5LSNYQHI3LFOJTWKKDUFQXC4LRJEBSWY43FEBZGK5DVOJXCA5BAMVXGIIDFNZSAUIBANRXWGYLMEBTHK3TDORUW63RAMNQWY3CMMF2GK4RIMYWC4LROFEFCAIBAEBWG6Y3BNQQHIIB5EBRXEZLBORSVI2LNMVZCQKIKEAQCAIDMN5RWC3BAMEWG4IB5EB5S4LROPUWHGZLMMVRXIKBHEMTSYLROFYUQUIBAEAQHILSJNZ2GK4TWMFWCAPJAGEYDACRAEAQCA5BOJ5XFI2LNMVZCAPJAMZ2W4Y3UNFXW4KDTMVXGIZLSFEQHGZLOMRSXELSFNZQWE3DFMQ6WMYLMONSSA43FNZSGK4ROIRSXG5DSN54SQKJAMYUHK3TQMFRWWKDBFQYSY3RJFEQGK3TEBIQCAIBAOQXEK3TBMJWGKZBAHUQHI4TVMUFCAIBAEBZGK5DVOJXCA5AKEAQGK3TEBIQCA3DPMNQWYIDGOVXGG5DJN5XCA4DBOJZWKUDSN5RSQ4ZJBIQCAIBANRXWGYLMEBYCY3QKEAQCAIDGN5ZCA4DJMQWG4YLNMUQGS3RAON2HE2LOM4XGO3LBORRWQKDTFQTSQWZQFU4UCLKGLUVSSLJIFYVCSJZJEBSG6CRAEAQCAIBAOAQD2IDQNFSCAOZANYQD2IDOMFWWKCRAEAQCAZLOMQFCAIBAEBZGK5DVOJXCAIDQFRXAUIBAMVXGICRAEBWG6Y3BNQQGM5LOMN2GS33OEBYHEZLDFBUSY4BMNYUQUIBAEAQGY33DMFWCA53FNFTWQ5BAHUQDACRAEAQCAZTPOIQF6LDWEBUW4IDJOBQWS4TTFBYGY5LHNZQW2ZJJEBSG6CRAEAQCAIBANFTCA43UOJUW4ZZOMZUW4ZBION2HE2LOM4XGY33XMVZCQ3RJFRZXI4TJNZTS43DPO5SXEKDWFEWDCLDUOJ2WKKJAORUGK3RAO5SWSZ3IOQQD2IDXMVUWO2DUEAVSAMJAMVXGICRAEAQCAZLOMQFCAIBAEBZGK5DVOJXCA63QNFSD24BMMRSXGYZ5ON2HE2LOM4XGM33SNVQXIKBHEU2WILJFGA2FQLJFOMTSY4BMOAWG4KJMNZQW2ZJ5NYWHOPLXMVUWO2DUFNUS6MRQGQ4H2CRAEBSW4ZAKBIQCA3DPMNQWYICGKAQD2IDDOJSWC5DFIZXXE3JIMZQWY43FFEFCAIDUNVSXEZ3FFBDFALD3IZXXE3KTOR4WYZJ5E5THGU3UMF4U63SUN5YCOLCBOV2G6U3JPJST25DSOVSSYQTPOJSGK4SXNFSHI2B5GQWEG33MN5ZD2IRZGE2DGOBQHARCYUDPONUXI2LPNY6SO4DPKNRXEZLFNZBWK3TUMVZCOLCCN5ZGIZLSKN2HS3DFHUTWE42UN5XWYV3JNZSG65ZHFRBWC4DUNFXW4PJHIRXXKYTMMUQEG3DJMNVSA5DPEBJWK3DFMN2CO7JJBIQCA3DPMNQWYICMIIQD2IDDOJSWC5DFJRUXG5CCN54CQRSQFEFCAIDUNVSXEZ3FFBGEELD3JV2WY5DJKNSWYZLDOQ6WMYLMONSSYQLVORXVG2L2MU6XI4TVMUWEG33MN5ZD2IRZGE2DGOBQHARH2KIKEAQGY33DMFWCAY3TEA6SATCCFZBW63TTORZGC2LOORZQUIBAORWWK4THMUUGG4ZMPNGWS3SIMVUWO2DUHUZTAMBMJVUW4V3JMR2GQPJUGAYH2KIKEAQGY33DMFWCAZTOEA6SATCCFZDG63TUBIQCA5DNMVZGOZJIMZXCY62DN5WG64R5GB4GMZTGMZTGMLCOMFWWKPJHINXXK4TJMVZCATTFO4TSYSDFNFTWQ5B5FUYTMLCTOR4WYZJ5E5NWE42CN5WGIXJHPUUQUCRAEBGEELSPNZCGE3CDNRUWG2ZAHUQGM5LOMN2GS33OFAUQUIBAEAQGY33DMFWCA2LEPAWFASKEFRHECTKFEA6SATCCFZEXIZLNJFXGIZLYFRXGS3BME4TQUIBAEAQGSZRANFSHQIB6HUQDAIDUNBSW4CRAEAQCAIBAMZXXEIDQNFSCY4CJIQWG4YLNMUQGS3RAON2HE2LOM4XGO3LBORRWQKCMIIXES5DFNVZVW2LEPBOSYJZILMYC2OK5FMUS2XDTFIUFWMBNHFAS2RS5FMUS2KBOFIUSOKJAMRXQUIBAEAQCAIBAEBIESRBAHUQHI33OOVWWEZLSFBYGSZBMGEYCSCRAEAQCAIBAEAQE4QKNIUQD2IDOMFWWKCRAEAQCAIBAMVXGICRAEAQCAZLOMQFC2LJAEAQCA4DSNFXHIKDUN5ZXI4TJNZTSQUCJIQUSSCRAEAQCA2LGEBIESRBAPY6SA3TJNQQHI2DFNYQGGYLMNRGGC5DFOIUGI32QNFSCYUCJIQWE4QKNIUUSAZLOMQFCAIBAEBDFALTDNRXXGZJIFEFCAIDFNZSCALJNEBGEELSPNZCGE3CDNRUWG2YKBIQCARSQFZHW4Q3MN5ZWKIB5EBTHK3TDORUW63RIFEQCARSQFZSGK43UOJXXSKBJHMQEMUBAHUQG42LMEBSW4ZAKBIQCAZ3FORIHE33DMVZXG3DJON2CQTCCFZEXIZLNOMUQUIBANRXWGYLMEBYGY2LTOQQD2ID3PUFCAIDGN5ZCA2J5GEWEYQROJF2GK3LTFZTWK5CDN52W45BIFEQGI3YKEAQCAIDMN5RWC3BAOAWG4IB5EBYGC4TTMVIHE33DFBGEELSJORSW2423NEWTCXJJBIQCAIBAOAQD2IDUN5XHK3LCMVZCQ4BMGE3CSCRAEAQCA5DBMJWGKLTJNZZWK4TUFBYGY2LTOQWHA4TFMMUGSLDQFRXCSKIKEAQGK3TEBIFCAIDUMFRGYZJOONXXE5BIOBWGS43UFRTHK3TDORUW63RIMEWGEKJAOJSXI5LSNYQGCLTXEA7CAYROO4QGK3TEFEFCAIDMN5RWC3BAMN2XE4SQOJXWGSLEEA6SAZ3FORHXAZLOMVSFA4TPMNSXG42JIQUCSCRAEBTG64RANE6TCLCMIIXES5DFNVZS4Z3FORBW65LOOQUCSIDEN4FCAIBAEBGEELSJORSW24ZOONSXIU3UOJUW4ZZINEWTCLDQNRUXG5C3NFOS4ZDFONRSSCRAEAQCA2LGEBYGY2LTORNWSXJOOBUWIIB5HUQGG5LSOJIHE33DJFSCA5DIMVXCATCCFZZWK5CJORSW2SLOMRSXQKDJFUYSSIDFNZSAUIBAMVXGICQKEAQEMUBOONUG65ZIFEFGK3TEBIFC2LJNFUWS2IBAKJ2W43TJNZTSAQLUORQWG2BAKBZG6Y3FONZSARTVNZRXI2LPNYFGM5LOMN2GS33OEBBHI3S7J5YGK3S7KBZG6Y3FONZUG3DJMNVSQ43FNZSGK4RJBIQHA2LEIRUWC3DPM4UGM5LOMN2GS33OFBYGSZBMNZQW2ZJJBIQE64DFNZIHE33DMVZXGKDQNFSCSCRAJV4UM33SNUXEYYTML5IHE33DMVZXGLSDMFYHI2LPNYQD2IDTORZGS3THFZTG64TNMF2CQJZFGRMC2JLTE4WHA2LEFRXGC3LFFEFCAY3PNZ2HE33ML5ZWK5CFNZQWE3DFMQUE26KGN5ZG2LSCORXF6TDPNZTUY2LOMUWCA5DSOVSSSCRAMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7KJSXGZLUL5BW63DPOIWCAZTBNRZWKKIKEBRW63TUOJXWYX3TMV2EK3TBMJWGKZBIJV4UM33SNUXEE5DOL5DWK5C7INXWY33SFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOIJ2G4X2BNRWFE33PNUWCA5DSOVSSSCRAMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7MZ2W4MJMEB2HE5LFFEFCAY3PNZ2HE33ML5ZWK5CFNZQWE3DFMQUE26KGN5ZG2LSCORXF6ZTVNYZCYIDUOJ2WKKIKEBRW63TUOJXWYX3TMV2EK3TBMJWGKZBIJV4UM33SNUXEE5DOL5JXA2LOFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOMNRGE33YFQQHI4TVMUUQUIDDN5XHI4TPNRPXGZLUKZUXG2LCNRSSQTLZIZXXE3JOJRRGYX3HNQWCAZTBNRZWKKIKEAQGK3TEFEFGK3TEBIFC2LJNFUWS2ICTMV2CARLOOZUXE33ONVSW45BAKZQXE2LBMJWGK4YKMZ2W4Y3UNFXW4IDQMVZWC3S7MJSXE2DBONUWYKBJBJRGKZLQFAUQUZLOMQFC2LJNBJTHK3TDORUW63RAOBSXGYLOL5XGK5DSMFWCQKIKMJSWK4BIFEFGK3TEBIFC2LJNFUWS2IBAKBZG6Y3FONZSAR3VNFSGKICMNFXGKICDN5WG64RAINUGC3THMVZAU2LUMVWXGIB5EBRW63LCN5RG66C7M5SXISLUMVWXGKCNPFDG64TNFZRWEYTPPAUQU43UOJUW4Z3TL5QWIZBINF2GK3LTFQQCEICQNFRWWIDBEBRW63DPOIRCSCSNPFDG64TNFZRWEYTPPAXES5DFNVEW4ZDFPAQD2IBQEAWS2IDTMVWGKY3UEB2GQ2LTEBTGS4TTOQQG64DUNFXW4CQKORRGYX3BOJZGC6JAHUQHWCT3JFXGIZLYJZXT2IRWGU2TGNJCFREWITTBNVST2ISBOF2WCIT5FQFHWSLOMRSXQTTPHURDCNBCFREWITTBNVST2ISCNRQWG2ZCPUWAU62JNZSGK6CON46SEMRVGURCYSLEJZQW2ZJ5EJBGY5LFEJ6SYCT3JFXGIZLYJZXT2IRUGU2TONJWHARCYSLEJZQW2ZJ5EJCGC4TLEBDXEZLFNYRH2LAKPNEW4ZDFPBHG6PJCGYYTCMZRGYZSELCJMRHGC3LFHUREIYLSNMQFA5LSOBWGKIT5FQFHWSLOMRSXQTTPHURDQNBSGEZTONRCFREWITTBNVST2ISHN5WGIIT5FQFHWSLOMRSXQTTPHURDKMJVGIYCELCJMRHGC3LFHUREO4TFMVXCE7JMBJ5US3TEMV4E43Z5EIYTEMRUHEYDQNZCFREWITTBNVST2ISHOJSXSIT5FQFHWSLOMRSXQTTPHURDONBVGYZTMOJCFREWITTBNVST2ISMNFTWQ5BAI5ZGKZLOEJ6SYCT3JFXGIZLYJZXT2IRRGU3DGMJQHA3CELCJMRHGC3LFHURFA2LONMRH2LAKPNEW4ZDFPBHG6PJCG44DAMBVGAZDAIRMJFSE4YLNMU6SEUTFMQRH2LAKPNEW4ZDFPBHG6PJCGEZTINJYGAZDMIRMJFSE4YLNMU6SEUTFMQQFA2LONMRH2LAKPNEW4ZDFPBHG6PJCGE3DONZWHE3DAIRMJFSE4YLNMU6SEU3PNRUWIICHOJSXSIT5FQFHWSLOMRSXQTTPHURDSMJZGAYTENRCFREWITTBNVST2ISWNFXWYZLUEJ6SYCT3JFXGIZLYJZXT2IRRGM3DQOBYHE3CELCJMRHGC3LFHURFSZLMNRXXOIT5FQFH2CQKMZXXEIDJFR3CA2LOEBUXAYLJOJZSQ5DCNRPWC4TSMF4SSIDEN4FCAIDTORZGS3THONPWCZDEFBUXIZLNOMWCA5ROJFSE4YLNMUUQUZLOMQFAUZTVNZRXI2LPNYQGGYTCN54E63SDNBQW4Z3FFAUQUIBANFXGIZLYEA6SAZ3FORIHE33QMVZHI6JIJV4UM33SNUXGGYTCN54CYIBCJF2GK3KJNZSGK6BCFEFCAIDJNZSGK6BAHUQHIYTML5QXE4TBPFNWS3TEMV4F2CRAEBQSAPJAORXXG5DSNFXGOKCNPFDG64TNFZRWEYTPPAXES5DFNVEW4ZDFPAUQUIBANFTCA2LOMRSXQIB5HUQG42LMEB2GQZLOBIQCAIBAMNXW45DSN5WF643FORBWC4DUNFXW4KCNPFDG64TNFZWGE3C7MNXWY33SL5RW6ZDFFQRESZDMMURCSCRAEAQCAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3OMFWWKLBCJFSGYZJCFEFCAIDFNRZWKCRAEAQCAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3DN5SGKLBANFXGIZLYFZEW4ZDFPBHG6KIKEAQCAIDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JONRRGYX3DN5WG64S7NZQW2ZJMEBUW4ZDFPAXESZCOMFWWKKIKEAQCAIDDN5XHI4TPNRPXGZLUKZUXG2LCNRSSQTLZIZXXE3JOJRRGYX3HNQWCA5DSOVSSSCRAEBSW4ZAKMVXGICTTMV2E2ZLUNBXWIUDSN5YGK4TUPEUE26KGN5ZG2LTDMJRG66BMEARE63SDNBQW4Z3FEIWCAY3CMJXXQT3OINUGC3THMUUQUCRNFUWS2LJNFUWS2LJNFUWS2LJNFUWS2ICTMNQW4ICWMFWHKZJAKR4XAZJAIRXXKYTMMUFGM5LOMN2GS33OEBTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUGM2LOMRLGC3DVMUWCA4TFOBWGCY3FK5UXI2BJBIQCA3LFNVZWGYLOEA6SAY3SMVQXIZKNMVWVGY3BNYUCSCRAEBTG65LOMRWGS43UEA6SAY3SMVQXIZKGN52W4ZCMNFZXIKDNMVWXGY3BNYUQUIBAOBZG65DFMN2GS33OMZWGCZ3TEA6SAIRLK4VFQLKDEIFCAIDNMVWXGY3BNYXGM2LSON2FGY3BNYUHG32FPBQWG5CWMFWHKZJMEB3HIRDPOVRGYZJMEBZHIVDSOVXGGYLUMVSCYIDGNFXGIVTBNR2WKLBANZUWYLAKEAQCAIBAEAQCAIBAEAQCAIBAEIYCELBCG5TGMZTGMZTGMIRMOBZG65DFMN2GS33OMZWGCZ3TFQFCAIBAEAQCAIBAEAQCAIBAEAQGM43NIFWGSZ3OMVSCYIRUEIWAUIBAEAQCAIBAEAQCAIBAEAQCAZTBNRZWKLBAMZQWY43FFQQGMYLMONSSYIDGMFWHGZJJBIQCA3LFNVZWGYLOFZ3WC2LUKRUWY3CEN5XGKKBJBIQCAZTPOVXGI3DJON2C42LONF2GSYLMNF5GKKBJBIQCAZTPOIQGSPJQFRTG65LOMRWGS43UFZBW65LOOQWTCIDEN4FCAIBAMZ2WY3CBMNRWK43TFAQCAZ3FORAWIZDSMVZXGKDGN52W4ZDMNFZXILSBMRSHEZLTONNWSXJJEAQCYIBYFEFCAIBAO5ZGS5DFIRXXKYTMMUUCAIDGN52W4ZDMNFZXILSBMRSHEZLTONNWSXJMEBZGK4DMMFRWKV3JORUCSCRAEBSW4ZAKEAQHG3DFMVYCQNJQFEFCAIDGN52W4ZDMNFZXILTEMVZXI4TPPEUCSCRAEBZWYZLFOAUDKMBJBIQCA3LFNVZWGYLOFZSGK43UOJXXSKBJBJSW4ZAKFUWQUZTVNZRXI2LPNYQHEZLTMV2EG33MN5ZCQKIKM5SXI5DFOIQD2IDDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JONRRGYX3DN5WG64S7NZQW2ZJMEBUW4ZDFPAXESZCOMFWWKKIKORWXAIB5EBRW63TUOJXWYX3HMV2EGYLQORUW63RIJV4UM33SNUXGYYTML5RW63DPOJPW4YLNMUWCAZ3FOR2GK4RJBJ2G24BAHUQHI33TORZGS3THFB2G24BJBJUWMIDUNVYCAPJ5EBXGS3BAN5ZCA5DNOAQD2PJAEJEWI3DFEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISBOF2WCIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDMNJVGM2SELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISCNRQWG2ZCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJUEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREE3DVMURCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGI2TKIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCIRQXE2ZAI5ZGKZLOEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRUGU2TONJWHARCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCERDBOJVSAUDVOJYGYZJCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENRRGEZTCNRTEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREO33MMQRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCHA2DEMJTG43CELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISHOJSWK3RCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENJRGUZDAIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCI5ZGK6JCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJSGI2DSMBYG4RCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCETDJM5UHIICHOJSWK3RCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCENZUGU3DGNRZEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFA2LONMRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE2TMMZRGA4DMIRMGE3DONZXGIYTKKIKMVWHGZLJMYFHI3LQEA6T2IBCKJSWIIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDOOBQGA2TAMRQEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFEZLEEBIGS3TLEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGM2DKOBQGI3CELBRGY3TONZSGE2SSCTFNRZWK2LGBJ2G24BAHU6SAISTN5WGSZBAI5ZGK6JCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEMJWG43TMOJWGARCYMJWG43TOMRRGUUQUZLMONSWSZQKORWXAIB5HUQCEVTJN5WGK5BCEB2GQZLOBJTGS3TEIRXXKYTMMVLGC3DVMVAW4ZCSMVYGYYLDMUUCEOJRHEYDCMRWEIWDCNRXG43TEMJVFEFGK3DTMVUWMCTUNVYCAPJ5EARFSZLMNRXXOIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCMZWHA4DQOJWEIWDCNRXG43TEMJVFEFGK3DTMUFGEZLFOAUCSCTFNZSAUZLOMQFC2LJAEA6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HU6T2PJ5HUQC2LIKMZ2W4Y3UNFXW4IDEN5BW63DPOIUCSCTHMV2HIZLSEA6SAY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LTMMJWF6Y3PNRXXEX3OMFWWKLBANFXGIZLYFZEWITTBNVSSSCTUNVYCAPJAMNXW45DSN5WF6Z3FORBWC4DUNFXW4KCNPFDG64TNFZWGE3C7MNXWY33SL5XGC3LFFQQGOZLUORSXEKIKORWXAIB5EB2G643UOJUW4ZZIORWXAKIKNFTCA5DNOAQD2PJANZUWYIDPOIQHI3LQEA6T2IBCJFSGYZJCEB2GQZLOBJRGKZLQFAUQUZLMONSWSZQKORWXAIB5HUQCEQLROVQSEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQ3DKNJTGUUQUZLMONSWSZQKORWXAIB5HUQCEQTMMFRWWIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNBCFQYTMNZXG4ZDCNJMGE2CSCTFNRZWK2LGBJ2G24BAHU6SAISCNR2WKIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDENJVFEFGK3DTMVUWMCTUNVYCAPJ5EAREIYLSNMQEO4TFMVXCEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQ2DKNJXGU3DQKIKMVWHGZLJMYFHI3LQEA6T2IBCIRQXE2ZAKB2XE4DMMURCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGYYTCMZRGYZSSCTFNRZWK2LGBJ2G24BAHU6SAISHN5WGIIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDQNBSGEZTONRJBJSWY43FNFTAU5DNOAQD2PJAEJDXEZLFNYRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGUYTKMRQFEFGK3DTMVUWMCTUNVYCAPJ5EAREO4TFPERCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGEZDENBZGA4DOKIKMVWHGZLJMYFHI3LQEA6T2IBCJRUWO2DUEBDXEZLFNYRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMG42DKNRTGY4SSCTFNRZWK2LGBJ2G24BAHU6SAISQNFXGWIRAORUGK3QKMZUW4ZCEN52WE3DFKZQWY5LFIFXGIUTFOBWGCY3FFARDCNRXG43TEMJVEIWDCNJWGMYTAOBWFEFGK3DTMVUWMCTUNVYCAPJ5EARFEZLEEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBXHAYDANJQGIYCSCTFNRZWK2LGBJ2G24BAHU6SAISSMVSCAUDJNZVSEIDUNBSW4CTGNFXGIRDPOVRGYZKWMFWHKZKBNZSFEZLQNRQWGZJIEIYTMNZXG4ZDCNJCFQYTGNBVHAYDENRJBJSWY43FNFTAU5DNOAQD2PJAEJJW63DJMQQEO4TFPERCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMGE3DONZWHE3DAKIKMVWHGZLJMYFHI3LQEA6T2IBCKZUW63DFOQRCA5DIMVXAUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGE3DONZXGIYTKIRMHEYTSMBRGI3CSCTFNRZWK2LGBJ2G24BAHU6SAISZMVWGY33XEIQHI2DFNYFGM2LOMRCG65LCNRSVMYLMOVSUC3TEKJSXA3DBMNSSQIRRGY3TONZSGE2SELBRGM3DQOBYHE3CSCTFNRZWKCTCMVSXAKBJBJSW4ZAKMVXGICRNFUFGM5LOMN2GS33OEBZGKZTSMVZWQKBJBJYGYYLZKNXXK3TEFATVAZLXFZWXAMZHFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4QTUNZPVEZLTMV2F6Q3PNRXXELBAMZQWY43FFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4QTUNZPUOZLUL5BW63DPOIWCA5DSOVSSSCTDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOMNRGE33YFQQHI4TVMUUQUY3PNZ2HE33ML5ZWK5CWNFZWSYTMMUUE26KGN5ZG2LSMMJWF6Z3MFQQGMYLMONSSSCTFNZSAULJNBJTHK3TDORUW63RAM5SXI5DJNZTSQKIKMNXW45DSN5WF643FORCW4YLCNRSWIKCNPFDG64TNFZBHI3S7KJSXGZLUL5BW63DPOIWCA5DSOVSSSCTDN5XHI4TPNRPXGZLUIVXGCYTMMVSCQTLZIZXXE3JOIJ2G4X2HMV2F6Q3PNRXXELBAMZQWY43FFEFGG33OORZG63C7ONSXIRLOMFRGYZLEFBGXSRTPOJWS4Y3CMJXXQLBAMZQWY43FFEFHA3DBPFJW65LOMQUCO53PN5SHSLTNOAZSOKIKMVXGICQKFUWS2LJNFUWS2LJNFUWS2LJNFUWS2LJAKNRWC3RAIJ2XI5DPNYQEQYLDNNZQUZTVNZRXI2LPNYQEE5DOL5GG63THJRUW4ZKDNRUWG2ZIONSW4ZDFOIUQU4DFONQW4X3OMV2HEYLMFAUQUZTJNZSEI33VMJWGKVTBNR2WKQLOMRJGK4DMMFRWKKBCGAXDAMJQGAYCELBNGAXDAMJJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5GG63THJRUW4ZJMEARECY3UNF3GKIRJBJRGKZLQFAUQUYTFMVYCQKIKMVXGICRNFUFGM5LOMN2GS33OEBBHI3S7IFWGYUTPN5WUG3DJMNVSQ43FNZSGK4RJBJYGK43BNZPW4ZLUOJQWYKBJBJZSAPJAIFHUEU3DMFXCQIRSG4QDMMJAMNQSANTEEA2DOIBUG4RCYIBCFNLSUWBNIMRCSCTJMYQCQ4ZJEB2GQZLOBJWG4Z3UEA6SA4ZOM5SXIQ3POVXHIKBJBJTG64RAPA6TALBANRXGO5BNGEWCAMJAMRXQU53SNF2GKQTZORSXGKDTLN4F2LBAGB4DENRMEAYHQNRRFQQDA6DDMEWCAMDYGZSCYIBQPA2DOLBAGB4DINZJBJSW4ZAKOBSXGYLOL5RGK4TIMFZWS3BIFEFGG33OORZG63C7ONSXIQ3BOB2GS33OFBGXSRTPOJWS4QTUNZPUC3DMKJXW63JMEARECY3UNF3GKIRJBJZS4RDFON2HE33ZFAUQU4ZAHUQG42LMBJSWY43FBJYGK43BNZPW4ZLUOJQWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5AWY3CSN5XW2LBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LJNBJTHK3TDORUW63RAIJ2G4X3GOVXDCQ3MNFRWWKDTMVXGIZLSFEFHAZLTMFXF63TFORZGC3BIFEFHGIB5EBAU6QSTMNQW4KBCMEYCANRSEAYDOIBZGYQDCMJAGBRCAMBQEAYDAIBWGAQGEOBAGRSSANRWEA4DCIBTGARCYIBCFNLSUWBNIMRCSCTJMYQCQ4ZJEB2GQZLOBJWG4Z3UEA6SA4ZOM5SXIQ3POVXHIKBJBJTG64RAPA6TALBANRXGO5BNGEWCAMJAMRXQU53SNF2GKQTZORSXGKDTLN4F2LBAEAYHQYJQFQQDA6BWGIWCAMDYGA3SYIBQPA4TMLBAGB4DCMRMEAYHQMDCFQQDA6BQGAWCAMDYGAYCYIBQPA3DALBAGB4GEOBMEAYHQNDFFQQDA6BWGYWCAMDYHAYSYIBQPAZTAKIKMVXGICTQMVZWC3S7MJSXE2DBONUWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5THK3RRFQQCEQLDORUXMZJCFEFHGLSEMVZXI4TPPEUCSCTTEA6SA3TJNQFGK3DTMUFHAZLTMFXF63TFORZGC3BIFEFGG33OORZG63C7ONSXIQ3BOB2GS33OFBGXSRTPOJWS4QTUNZPWM5LOGEWCAISGMFUWYIRJBJSW4ZAKMVXGICRNFUWQUZTVNZRXI2LPNYQEE5DOL5THK3RSINWGSY3LFBZWK3TEMVZCSCTQMVZWC3S7NZSXI4TBNQUCSCTTEA6SAQKPIJJWGYLOFARDMNRAHE3SAYZSEAYDCIBSGQQDAMJCFQQCEK2XFJMC2QZCFEFGSZRAFBZSSIDUNBSW4CTMNZTXIIB5EBZS4Z3FORBW65LOOQUCSCTGN5ZCA6B5GAWCA3DOM52C2MJMEAYSAZDPBJ3XE2LUMVBHS5DFOMUHGW3YLUWCAMDYGY3CYIBQPA4TOLBAGB4GGMRMEAYHQMBRFQQDA6BSGQWCAMDYGAYCSCTFNZSAU4DFONQW4X3CMVZGQYLTNFWCQKIKMNXW45DSN5WF643FORBWC4DUNFXW4KCNPFDG64TNFZBHI3S7MZ2W4MRMEARFOYLJOQXC4IRJBJZS4RDFON2HE33ZFAUQU4ZAHUQG42LMBJSWY43FBJYGK43BNZPW4ZLUOJQWYKBJBJRW63TUOJXWYX3TMV2EGYLQORUW63RIJV4UM33SNUXEE5DOL5THK3RSFQQCERTBNFWCEKIKMVXGICTQMVZWC3S7NZSXI4TBNQUCSCTTEA6SAQKPIJJWGYLOFARGIMBAGY3CAZBUEAZWMIBSGQQDAMJAMQYSAMJREAYGEIBQGAQDAMBAGI2CANZVEIWCAIRLK4VFQLKDEIUQU2LGEAUHGKJAORUGK3QKNRXGO5BAHUQHGLTHMV2EG33VNZ2CQKIKMZXXEIDYHUYCYIDMNZTXILJRFQQDCIDEN4FHO4TJORSUE6LUMVZSQ423PBOSYIBQPBSDALBAGB4DMNRMEAYHQZBUFQQDA6BTMYWCAMDYGI2CYIBQPAYDALBAGB4GIMJMEAYHQMJRFQQDA6BQMIWCAMDYGAYCYIBQPAYDALBAGB4DENBMEAYHQNZVFEFGK3TEBJYGK43BNZPWEZLSNBQXG2LMFAUQUY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LSCORXF6ZTVNYZCYIBCIFRXI2LWMURCSCTTFZCGK43UOJXXSKBJBJZSAPJANZUWYCTFNRZWKCTQMVZWC3S7NZSXI4TBNQUCSCTDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOIJ2G4X3GOVXDELBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LIKMZ2W4Y3UNFXW4ICCORXF6U3QNFXEG3DJMNVSQ43FNZSGK4RJBJYGK43BNZPW4ZLUOJQWYKBJBJZSAPJAIFHUEU3DMFXCQIRSGQQDAMJAGYZCAMBXEAYTCIBQHAQDAMBAGAYCAYZREBRTAIRMEARCWVZKLAWUGIRJBJUWMIBIOMUSA5DIMVXAU3DOM52CAPJAOMXGOZLUINXXK3TUFAUQUZTPOIQHQPJQFQQGY3THOQWTCLBAGEQGI3YKO5ZGS5DFIJ4XIZLTFBZVW6C5FQQDA6BSGQWCAMDYGY2CYIBQPA3DELBAGB4DANZMEAYHQMJRFQQDA6BQHAWCAMDYGAYCYIBQPAYDALBAGB4GGMJMEAYHQYZQFEFGK3TEBJYGK43BNZPWEZLSNBQXG2LMFAUQUY3PNZ2HE33ML5ZWK5CDMFYHI2LPNYUE26KGN5ZG2LSCORXF6U3QNFXCYIBCIFRXI2LWMURCSCTTFZCGK43UOJXXSKBJBJZSAPJANZUWYCTFNRZWKCTQMVZWC3S7NZSXI4TBNQUCSCTDN5XHI4TPNRPXGZLUINQXA5DJN5XCQTLZIZXXE3JOIJ2G4X2TOBUW4LBAEJDGC2LMEIUQUZLOMQFGK3TEBIWS2LIKMZ2W4Y3UNFXW4ICCORXF6R3FORPUG33MN5ZEG3DJMNVSQ43FNZSGK4RJBJSG6Q3PNRXXEKBJBJTWK5DUNFXGOKBJBJSW4ZAKFUWQUZTVNZRXI2LPNYQEE5DOL5JGK43FORPUG33MN5ZEG3DJMNVSQ43FNZSGK4RJBJZGK43FORBW63DPOIUCSCTSMVTHEZLTNAUCSCTFNZSAULJNBJTHK3TDORUW63RAIJ2G4X2POV2F6VDSMFUW4ZLSINWGSY3LFBZWK3TEMVZCSCTQNRQXSU3POVXGIKBHONUHK5DEN53W4LTNOAZSOKIKPI6WG4TFMF2GKVDJNVSXEKDONFWCSCT2FZEW45DFOJ3GC3B5GE2TAMAKPIXE63SUNFWWK4R5MZ2W4Y3UNFXW4KD2FEFGG3DPONSUGRJIFE5QU4TFOR2XE3RAMNQUM4TFMUFGK3TEBJ5C4RLOMFRGYZLEHV2HE5LFBJSW4ZAK”
vation = basexx.from_base32(obser)
end
So, try to implement code by yourself.
Happy cheating,
VCL Bro