Frement
2009-09-30 18:48:05
Ok so i made a script for hero online a while back and i just thought i could share it :)
Usage: windowed mode, smallest screen and as bad graphics as you can put.
Start near monsters. Loots stuff after kill. Takes potions if needed.
(It could be smaller, but no interest since i dont play the game anymore.)
Usage: windowed mode, smallest screen and as bad graphics as you can put.
Start near monsters. Loots stuff after kill. Takes potions if needed.
(It could be smaller, but no interest since i dont play the game anymore.)
program FremBot;
{.include SRL\SRL.scar}
//////////////////////////////////////////
// FREMBOT SETTINGS //
//////////////////////////////////////////
// HP POTION ACTION BAR SLOTS : 1 - 7 //
// MP POTION ACTION BAR SLOT : 8 - 0 //
// USERNAME //
const Username = ''; //
// PASSWORD //
const Password = ''; //
//////////////////////////////////////////
// THE USERNAME AND PASSWORD NOT NEEDED //
// (I stopped improving this script) //
//////////////////////////////////////////
var x,y, MOB_HP_BAR: Integer;
INV_FULL,quizes: Integer;
killed, GMQuiz: Integer;
s1, s2, s3, s4: Integer;
s5, s6, s7, s8: Integer;
s9, s0, HPTaken: Integer;
sKILLED: Boolean;
Status: String;
Patq, lot_1, lot_2, Lot: Integer;
LX1, LY1, LX2, LY2: Integer;
RX1, RY1, RX2, RY2: Integer;
AX1, AY1, BX1, BY1: Integer;
n1, n2, n3, n4: Integer;
n5, n6, n7, n8: Integer;
n9, n10, Solved: Integer;
StartX, StartY, StopX, StopY: Integer;
const Ver = '5';
procedure SolveLot;
begin
if (FindBitmapIn(lot_2, x, y, 0, 0, 1024, 768)) then
begin
StartX := x + 31;
StartY := y + 209;
StopX := x + 92;
StopY := y + 208;
Mouse(StartX, StartY, 1, 1, true);
Wait(1500);
Mouse(StopX, StopY, 1, 1, true);
Wait(250);
Lot := Lot + 1;
end;
end;
procedure FindLot;
begin
if (FindBitmapIn(lot_1, x, y, 0, 0, 1024, 768)) then
begin
SolveLot;
end;
end;
function AddToOnlineReport(Text, Username, Password: String): Boolean;
var
Site: Integer;
S: String;
begin
Site := InitializeHTTPClient ( false, false );
ClearPostData( Site );
AddPostVariable( Site, 'report', Text);
AddPostVariable( Site, 'username', Username);
AddPostVariable( Site, 'password', Password);
S := PostHTTPPageEx ( Site, '' );
if(S <> '') then
begin
if(S = 'Authentication Successful') then
Result:=True
else
Result:=False;
end else
Result:=False;
Writeln(S);
end;
procedure CalculateX1Y1X2Y2;
begin
if (FindDTM(Patq, x, y, 0, 0, 1024, 768)) then
begin
LX1 := x + 1;
LY1 := y + 29;
LX2 := x + 43;
LY2 := y + 54;
RX1 := x + 66;
RY1 := y + 29;
RX2 := x + 115;
RY2 := y + 54;
AX1 := x + 170;
AY1 := y + 42;
BX1 := x + 170;
BY1 := y + 41;
end;
end;
function GetLeftNumber(): Integer;
begin
if (FindBitmapMaskTolerance(n10, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 10)');
Result := 10;
end else if (FindBitmapMaskTolerance(n2, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 2)');
Result := 2;
end else if (FindBitmapMaskTolerance(n3, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 3)');
Result := 3;
end else if (FindBitmapMaskTolerance(n4, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 4)');
Result := 4;
end else if (FindBitmapMaskTolerance(n5, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 5)');
Result := 5;
end else if (FindBitmapMaskTolerance(n6, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 6)');
Result := 6;
end else if (FindBitmapMaskTolerance(n7, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 7)');
Result := 7;
end else if (FindBitmapMaskTolerance(n8, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 8)');
Result := 8;
end else if (FindBitmapMaskTolerance(n9, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 9)');
Result := 9;
end else if (FindBitmapMaskTolerance(n1, x, x, LX1, LY1, LX2, LY2, 10, 5)) then
begin
ClearDebug;
Writeln('Left box validated (Number: 1)');
Result := 1;
end else
begin
ClearDebug;
Writeln('Left box failed in validation.');
end;
end;
function GetRightNumber(): Integer;
begin
if (FindBitmapMaskTolerance(n10, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 10)');
Result := 10;
end else if (FindBitmapMaskTolerance(n2, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 2)');
Result := 2;
end else if (FindBitmapMaskTolerance(n3, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 3)');
Result := 3;
end else if (FindBitmapMaskTolerance(n4, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 4)');
Result := 4;
end else if (FindBitmapMaskTolerance(n5, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 5)');
Result := 5;
end else if (FindBitmapMaskTolerance(n6, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 6)');
Result := 6;
end else if (FindBitmapMaskTolerance(n7, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 7)');
Result := 7;
end else if (FindBitmapMaskTolerance(n8, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 8)');
Result := 8;
end else if (FindBitmapMaskTolerance(n9, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 9)');
Result := 9;
end else if (FindBitmapMaskTolerance(n1, x, x, RX1, RY1, RX2, RY2, 10, 5)) then
begin
Writeln('Right box validated (Number: 1)');
Result := 1;
end else
begin
Writeln('Right box failed in validation.');
end;
end;
function PSlot(potion: String): String;
begin
//Slot 1: 273, 747, 313, 788
//Slot 2: 315, 747, 356, 788
//Slot 3: 358, 747, 399, 788
//Slot 4: 401, 747, 442, 788
//Slot 5: 444, 747, 485, 788
//Slot 6: 487, 747, 528, 788
//Slot 7: 530, 747, 571, 788
//Slot 8: 573, 747, 614, 788
//Slot 9: 616, 747, 657, 788
//Slot 0: 659, 747, 700, 788
if (potion = 'hp') then
begin
if not (findbitmapin(s1, x, y, 273, 747, 313, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 1');
Writeln('-------------------------------');
Result := '1';
end else if not (findbitmapin(s2, x, y, 315, 747, 356, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 2');
Writeln('-------------------------------');
Result := '2';
end else if not (findbitmapin(s3, x, y, 358, 747, 399, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 3');
Writeln('-------------------------------');
Result := '3';
end else if not (findbitmapin(s4, x, y, 401, 747, 442, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 4');
Writeln('-------------------------------');
Result := '4';
end else if not (findbitmapin(s5, x, y, 444, 747, 485, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 5');
Writeln('-------------------------------');
Result := '5';
end else if not (findbitmapin(s6, x, y, 487, 747, 528, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 6');
Writeln('-------------------------------');
Result := '6';
end else if not (findbitmapin(s7, x, y, 530, 747, 571, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using HP slot: 7');
Writeln('-------------------------------');
Result := '7';
end;
end else if (potion = 'pet') then
begin
if not (findbitmapin(s8, x, y, 573, 747, 614, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using Pet HP slot: 8');
Writeln('-------------------------------');
Result := '8';
end else if not (findbitmapin(s9, x, y, 616, 747, 657, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using Pet HP slot: 9');
Writeln('-------------------------------');
Result := '9';
end else if not (findbitmapin(s0, x, y, 659, 747, 700, 788)) then
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Using Pet HP slot: 0');
Writeln('-------------------------------');
Result := '0';
end;
end;
end;
procedure declareStuff;
begin
killed := 0;
HPTaken := 0;
quizes := 0;
sKILLED := false;
Status := 'on';
Lot := 0;
lot_1 := BitmapFromString(30, 30, 'beNqN1EtoE1EUxvETMmoWVbqQE' +
'lBLiy4MRCGgi2iktFiUanxUKiVQVEJX2ShBEYrFiihIsAgDhVIQgg' +
'+IBstAoQiBQiAIQkGEEVEK4mIWLmbhYhZdjN+9Z3Jvmk5My5/DkMc' +
'vJzPNeLbvuUGuo/I2fZXzx1N5fx1Ury6Kg5bXhP95biF7Gc1cyKaJ' +
'eBZ7dIWYLrdfV6Dw0jIlDzbNrvJ8Lst1lzedJ5ezaO04odoRUTUZQ' +
'/XxQVQ+2WfGY9zba4mvT0cwZ472vjZIF9Gxr+QxovppYhyx/P1hGv' +
'Ly5OFWWVUe2LtFpmC2yQgyp+S2nXGAhX0rx2svTSVeDh/oujNqjBI' +
'HnGX3zTiq3U3BxOaIZT4bYPXaUb22ln2nNJFF9gS9zhDP5TP9yPuY' +
'Q/ajdGUoztkP0mjtRhKtPxtZSPXNxAi93S0SMlhDJP8VtczsiEEl2' +
'de5DIK8lk8E3UiGypV9AY46ycVDWsbakBWLndlElVP91q1kq6zwnc' +
'icORBTAUTmwV7EJlfdL2Jfy99KljmF7DuEHh+mHNGazJWzLGvIVol' +
'eEG3I8Gw9QgtR4VhxUbVXxL8vx3Ha5OolIeel4MrAzpJ4MCcvupJh' +
'cpBXBwIc7UTmZrfJvDl/a5ZrRwXOfldZpU5FWa66qm4Rhg4yBxzs4' +
'tWskH+XrKUp5D4ntJynlCFuKRMyHCwZ5DbzDfocDT4xp75IH9VPUC' +
'0ZNDd6dgS/lB/roTKzt+UsShN+Q8oLkXCZYxl1knnnksR55+JWGVP' +
'JxQFaH6VPZwL8/zunpcny9p25NplxpHfeNK33eeSVCVlFSvRQBq+X' +
'TRKZu8iOibmyh5wYreyix1ERbrzcvWP0+aKoMSx6kh1DvrfRSZ6UZ' +
'ZoyWCWPk6hV/pILcNRJRpAHKcAz8mzwzihULg0LmduhnGnK2JZlPh' +
'XbZXtaxLiWfdP6kEd+hbj0QYoTJeXbh4imI+LyYc5FqWbQfJRuRkQ' +
'JCipfp58FkX1LxPc33Oi6ymO0RWa2Tf51X+M7kYeaMkwEXC2conZZ' +
'4f+XwTKebJERy2Bb5Y0H5DwSsQ+2YS1KuVb9MIvY56az5+ISRwkjP' +
'FxlVLiQXnlVXH6ZV01fOWe9m/c9O1S2KvPA2e8ks8mxefN8ChMscJ' +
'abmTo83sz944Tmu1WdY+r4jf8A0gfF6Q==');
lot_2 := BitmapFromString(182, 18, 'beNqdWmFvG0UQ/U1846STDq' +
'82MjUYUzenugaDwXJramGcGoIi04g0jiMXi0/8YGZ39mbfzq2TgPS' +
'0ci7nvbudt2/ezPl8PKzHw3MY63HR6TEqE1HSaN1Ix8vKVqbLCGc2' +
'/yJYy+d0GfTZ+Klw5A+liag63Qg/c2ndVfxpYfTT9uXe3EHrx8rKL' +
'fFsRSfcsDlr5gfQf4ej6e7jkTD7Ydb9fFiUPRrdY1b+hNJNu7ncHv' +
'/+hzB/u6avDM4n2/e7zcWm6BgGTb56d7nbHwm95+PiU1N91iPIQ7n' +
'79CsQRhNumJ+dvl7ZeKtls8gCPMJfD5PAaYbmsR7w4GUaLxVN+VNu' +
'xh9vlr2ybn3qcW9QB1Yo1GPTHfAk+KRuqZtAYBT4IEFiwYSp4N44v' +
'k2gIYJAmOSzTaYq1LdsD29PrqJWRr5ON1akbOTzjx+PBAouRZnOce' +
'gAznpMIcJ6c9V7NiQ4Mnw80ioVpXHo9OpXM2bRcnMJsQhL7WCSiEu' +
'4w8p4kuB1hdhIFWQLr5ttOIP/TRYhvQdcc94IvBfchfhPYJTxDAk4' +
'f0hD5HJ+ni4yJP63YYi7JRuvInT1nEcpiN8VSpRW65UKKC4Rbjq5z' +
'7ChzjIkUTtUvlWPpsyQSBKI1Oib6erXy0CSfSAJjW2GrL3UuOOjqT' +
'BEdo0KNEY8Cp2/Yv+LmsCrrcKttMWCpBSdZB0ejlcF68wkITBJcKE' +
'0Q1oaohgSlh2UXPZmm6u8JmUq6ciQoDA2Cp2iR2X0jig6emzTQ5ZR' +
'BSVqmk0mYYasNyFHMEYvp6ghyBAmCWtIJImfRxhCMsIkwSwsl0MOo' +
'zYWzRVnPywJpUnuFmUTdUAY0qZHWI00XhJHyaRaSUCZn6IhnGgSPq' +
'dPDVrRDUT1+UuUswIlEYaUjc4EmAw9KpNhQnJFUGkVeiXp2RkwMSm' +
'GJDw5czKCDAnwR5bvNsIQlpFwnHNNaWTXiABiolH3xgLCDMGgn3pG' +
'/K9KuOgV0ZtFZqqlbkiCiyMM6ZMVeVBDrEUpI4mg5zWV7aIMKgcoX' +
'/S+BehqE30QFsnxonMy0Ji5bORe1K7EP7RyerI7zuKeJaxW6939YX' +
'e3d7g/3DTYfthd/7m/uT0wK272hzaRZvOZPO/w5fTqj5uQsH5pXI3' +
'nGOpSm6uSbQmL1ZqQxL2VwWXNJUdkc3HbufGDK8uKfJPtz9XBU3yI' +
'+NVmtkiPZBenPjMWGmchwSFDTCflABzXWyCXX5Cxol38RFlkTYv4j' +
'VE92X3YBXp4MD2u7/aENiXaWK6jO53Nl3Kc0hM/Pn1YrS/lfpShks' +
'8PMAR1G6qDmCxOZV5Fm7jdEm0HyGKePe5DhBtphWUF/PjKbRrlTps' +
'E57wQ1LnZ+qtK1UPtMlXCFFCdsRvkFa7Px4T+l7XSkLbvTRjCGkJj' +
'Q48w3kbdIA1hGWmLCakH3xJJB2Yi4gYnKWKIyEjWNSFDSLuCCPcGq' +
'JPoNnF5q5RssgXkg3JB6FQxf/nj0dl2u4M+l7qP1TI4m7+c5T4ABr' +
'EysaZGj41Wmetu9BhSBeP+wi0mjlclYiBtIDwlfbe8b5fb91sC7WU' +
'hSeK0YSUThpB/aDQk0uPe8+H2wDw5RQ9REkLbq4iHEYa0HyfYV2DI' +
'eILr3+WqhLOMmHDUZ2Uy27KpiiPU+XRVI0OeXsvg5ST3ITMxajYtF' +
'qR4YdfHYoKiYRrbXLaaadLMaQr2Ri5OZJPpjzMCUbf/9XDz27b/vC' +
'ZM5wvaxWIJEFS3Tr6dh9rk0IT1/ngDVuTxLOPPv2545Q+m3zqEyS+' +
'vrseTGY3bqx1JzXS2GL4a97+qQ8lcGrkxFiLRJbzn+nySz6Tgx1S8' +
'MC4qZG0Pj+Vz8eR+SKKKkDWylRcKl6pwmVdMe5M6Jdnp2brGH8k70' +
'sFgRJh8P1/+vOE+p6PHxYaIwUJHVGG1D3gXkQ03jUpDfMT3fkQk5w' +
'NDhB5wzn2Yf/F2TSQhAhBJGHR7RBXiCQGZwHJEI/Fk/K3D5vdLwvb' +
'9jkDzaDeediyxSYhxUZ1G1XUsTeIQiqdpCLkRtMHSWpH+m0pGKslK' +
'eetQgSRCVhLBN7nOfEOYLheP6EhpVYkYRA8mCXHDUeJigy1xkhGl9' +
'o9CIu6dKkb8kA39NZjbPENgcgouM4RGAjFEMBpFrePKiHly/PtI3G' +
'CekIbUvu1PqF9MUEOw3sEqIHbXW04s6aFZXScKQ3pc7T7WUxUNwdq' +
'56GS4l1YiXSP99io1VzbjpXPqER0p9/xlWWY/LYkY4GGMaIjbm/MF' +
'0YOOxIbG0xhyA2b14fzCkJT0FIYQSDQITBJkyO5DrJGxgk6SY3DjE' +
'2IazYCdvdAWK01avWb8BhYCupGS5oL/4UOy+Uv1TvEDvnFTL0Sw+X' +
'lqVN3RMhUcsqO9r0affGpodG/TPCuYJ4NBPX+9YEx/DNhcbNeXV22' +
'27A/CDcZJH3JzdziVm079ic725q5px72aNq2SyWq9ZmyutrPXSxpd' +
'IZm6d8zmkujnq/W8qYsTr/JizDCtfhpELXkDopoMIUk95kOyb+5Uo' +
'7JdDiekNcnbumzruDyhfuplBBY1iiGE2ZsVjew6WDqIIeIAJeMQ+N' +
'XbZDIXhgg9VJYRhkgJg/RI6pr7PEnatc/1bSQJGSHHk2eRJEQPger' +
'nZDWWlmLuC59BPWFuLJZrl4Cutos3SxoJ/ed5P4k7V72JaPdUH9CQ' +
'pCXyYAGFrLAWbyl5F9MO96nM2D4uXii+VhtPOSMLQ9h4EE9ocU5pC' +
'JOEPhz+UsnloSwTwn0XeKJr3tMkkTOJG0KPCCq0G5B6CLDD1tbq8O' +
'OETiQJr4MzJy+DOSENIZ74mm6cq18SDVExlS5EaLk/raeaVihJZ6a' +
'yiXpASxxf93eRG+r1meqjZl9Fqb4BgzWEcw1qBRFDSELEEBAxCKQh' +
'bYZknWoUkP3h+nYvuSbTG7nPWA6kB2aZLEPajppbKEl8Gx9YlHHpS' +
'EOIGI4brV8vIENS19FNfm+Ta8n+p36I6tuHN9rYRLX5VyqaSJKkOl' +
'ag0lMWZNicZ3s2JPR8zaLQf1EvflkLJrM5XXHwYrS82Lgt9mE3/m5' +
'G4OclGacooN+I4nB3SGuZsPcdgC3tvlnIQfc5eiQnJ7ZEeil5l7s/' +
'DuvkYfFdz3A4IsgvEPDXJoLpfElov9pTNUg2OyQM+ReP44VV');
s1 := BitmapFromString(37, 37, 'beNq1l29r2lAUxtuyqnTdyFAk/Y' +
'OQtTikTr3ONhXK1km3sDArZs1WCm6FsBdF+mIEoW/6cfZyH6lfwX0' +
'E98QTb85uYuobLw8hxpv87nPuuecm98bvUSDrcEfXtSUobPbxzp97' +
'A5qx9KXi0N41AyK7sHQcpBd0q1nayG2sTVsmkykWivlCnpRyrhU0S' +
'AhBJ4ni/XunZWO/oj3TXjzNrq6uPjw8TCYTEB8F0Qmx/F8+NLwddv' +
'vdRJzsT7jnG5m7u7vxeDyZNnAXsRbHkQB1+o5oCO6O+hMOzwdFwS0' +
'Sz7i7WqOGE//Wh4jI+xNube3J3/F4ZWWFcAgmZpMrZWokDnIuHFzB' +
'kX5aZ5b0SHJPy5X9Si63uZXf5Dh0dvvuIjhI4ihn5AAGg0Hg+mZYq' +
'9c4TtcN62iPQipxFBCzYULijTBeGjiSovNp4+7CSw0Ba2GQb4ZQ97' +
'y7CA4eoc77TqIScTiCJQUQRAZnON06Kqk4ik9NaJoWX2skCrXs7F6' +
'46cGnVFkEx9faPJwpzMVxoBBufX090V201hoCccbiSnHHl14ch5bN' +
'ZqmIbW9tKzhlrdG0Bpo6AkXB0XhIdtdWcMauTqLOeEI0+1+cQBdM3' +
'5hmuaHg7E+2fII/8s1mGGSJ67V3JE6OVrpLX3cSB9ETLr9eRhM6Y3' +
'HcPHcSJ92JpkgpLJQtkbXZAFJwie4iCyMfYeRbj4Ljo4XNOC7aXOP' +
'BCTfdqFK5l655aNL1sDZalvy386EDRfSWydesk4Tjo6XrosXGP2OB' +
'y4MmU8vzPH47X7MSZx+VEt2508YfCAoJUQ3q8PcBKY7GjYSTxHQc9' +
'UdAoqlsiTCMI59wdJHbVyLD16yTmirK/gUp48FO2uv3Wo2Wko3y3s' +
'SqouD4/hUv+HyDA05m3fWPa45LqZnzcIo1fk4iX6T2cTvdGsfxqsJ' +
'vUXZqhTgPJ/uTqgdVb+AxnEHiJUXURVhv60Lem5D5MyPxv6rVam4z' +
'JyuS3F4B6rX3FJzyasRLsaKUv5BI9BcNOI6jtJQbZWiQJUx8dUgW5' +
'VIil78a8WD+t23VhX1uezceT0tZguZFNZHI3WkFvdMsBcePnavBVb' +
'i4+g508vak/KrM6x53zSsz7xMnIhoYIS1ziQOrclBJf8+XLO+nx0M' +
'x79uBTwHhwCJc+lcMPS3YrD/bYOHIp1h5n1GyK9HdPByve8GcvhbK' +
'Wz2kvM9Eb2usEQ5flGfNInZRY3cR6UyP9+eflmd1jb6XoWXjusfFA' +
'PQPFbR6mg==');
s2 := BitmapFromString(37, 37, 'beNq9l81u20YUhW3rxy4iOUzsBR' +
'eOrAEbIWxoSpPSoFgoMKIKFSpAVayaqMI0iyALIxAcxBCM2jC86co' +
'v0qWXXflZ/Ap+hfYML3U1oSRbKIIODgZjipyP587lnfGFuDqz/zqz' +
'zS2RyPz6MjZFywOIpFjtwEpU//oCi4mBXQTlf3BH/bOtb4yikclkl' +
'uO2srKSz+eNuJmbJsvYNO6X1vRnzU2j2QgqogQtLS2dnp7e3t7+E7' +
'ebmxsQNx5vSFf+Z5y74wZekMKh96pOYS1DoD/iRsT14vroeDQ6GoX' +
'7oV/zdZz9nX0vrvu6e352Hr2Jpt09LmTzuTyCCVMIJqGz2SzhIB2H' +
'GaCgHjg7Tmm7hN52bPGtoB6mILCGR0PgiBjbnOAa9kaz0ZRVmclmL' +
'i8vCZfL5dQjF+feCy954xg3eDPAJOpNjkf9X/tQp9th7bX2oOhdBP' +
'XDPqlSqeBtg7paGnfHJlyhUMAiEuv6+hrT340DyJhqa4U1ViptgLO' +
'2BeHKT8qIJGULeoy9XW8mjkJ0B856akHzcNDz0jpCB0dkDR6Nh8qa' +
'jhu8HSziDiCKJAbz3D0qZA8PDzk5V5ZX7Kd2gjs7D38LIUIgLXqve' +
'8nC7feNgiEdKbYFK3obkX3IqTqcscDFqWJBuewyMp+WDNaQnKurq2' +
'VRnsaBpeNIzVdNFnCsoBGkcOi9qssZojcd58YN1lLuYA0GdXem1vT' +
'vkXFwh+8Oa7c8bqBnM1nGAZQkW9xSwVTS1+g+HNwhM2HcElZSrAwD' +
'5Yvm1Kf1pfrYw4MQF/Emvf3ejOKmVRXcJqVMcGaMM82KZc3EIfH0o' +
'GEA0II4FBbcoJ496BPxXhy7I4FIvzIO8moeoG7V7f7SpR6muIjxs4' +
'TzpLsgjlJiGgeWGnwcKlAsqpkkOW7sDqwYV2zUA1EW6Adh/9PRp8/' +
'Hn0nqM9/19HAhPvQO7+JG6NaPLRK9EmqythckajZkRQiIcSNE4GhI' +
'oNHJ6G5cu9VO4QbRgGYGCylN0dZx8YcgkPnAkRTxZESsmTiO8Dwcr' +
'FFV4fXVcV7V1oNJ7rAcCCmgd7iTNanj8CcGzIJBrCxnr+4OqWJXKh' +
'CSJAr7nf0O9srh8RD6Ahe3xN3JyH/ho+BgAArlxjCODN5H5f+OfPD' +
'wAYpD8VERz4o4VdA7lrW0tNbcaxBODRx7Ho4zFiCVpWMc5T/hAEqq' +
'jRYTHae21zGO9qwFcbTK5C6pJPNxvnSn3TEOIZ3GcalBJFPuGMdEC' +
'uNMd61XLfeZy585RSa9m8ebLK6gN7dMKPo9Srba8d5HOEWsyekSTf' +
'vdgjgMCIdBCkdlB2r/1J4QpZyHA+teHFtTG82UOxKzlPQd4csNiN1' +
'FYUSgFI6toYcAIhYfApO9oyYnBuniQX/KXVEdU587mBa9XpxVWfje' +
'Q4Ht9Xs432I2SJ11NRcf3n9o/9x2nORkAkdJKYh/pRzWT2I6Ds33f' +
'caBQixwefU5aOEg9Hd9BrFA5FLAVYWPtaiZOg6LkmS77xOLoPqEBJ' +
'o+JOhE9qW7i4+1E3elJyVKg0Tzzh5zrqeSP4Ujd3//aYuy3XtZIXV' +
'+EBO91LTA9a4m/Z5WXRim6q8uBHDoQSRN/o2FypoWuT7nHmZd/Qte' +
'Y49g');
s3 := BitmapFromString(37, 37, 'beNq9l1FL21AUx11a27ToCLOUPB' +
'QxCB2FtpoxjHV1Y8FRVsiYmZmsexplD6P4MMpQEd/9InvcJ/Ar+BX' +
'0I/gV3D89zclNchNrhwt/QmjPvb/8zzn39vbc+H3qy6gZuv6I6m2v' +
'/zk3IGI5Hf+TxxOIb1pV4Ij1H9ypqgaiplUrT0uKknsyuRRFKagFr' +
'aLNLb2mQ5Zl+Q+VqSzTaqwZULFYOj05ub6+vptceAC0UCz8C8777I' +
'1/jiFQkribG591fHx8cXGBh9vbW3icG8cskci4cnm5VMgjmfl8Hr7' +
'IYy6Xs9/Z80lkkUQc6tjfWi8Wy3B0eXlJ+VxcXGw0G1PVp+o7fZ5h' +
'9GPUfd2tP6+TwuCozFYTgmV7uxPD3QXXwsKCkguTyeUWcZC7786eY' +
'caBRThkkt2JtWNc51WHWcNvwwcVNOYOd7WswhcZBDrb3eDLYD6cqi' +
'6pfqv4l4hbqaxA1Uo1HCK0gfvZpYBYTJo63SmuUFDR+bQQKJlXV1e' +
'oHSah2aQ4+71NoFjMLDgscyISC9bUksqzZeCSMZB74CLANE0pDpvY' +
's2UVu9d0E8spYPFrZ+CkMeamGSb8wE3iuFW4JSBpQtxDl6fq7fXEe' +
'Nb411iU602J3bfdxpoOMc56YSHAO/QgNB4LFJI/Q3S78A68qQ5Dcb' +
'yvdNxD3YEiNSgdyzha5rPgRHdUozlw7E5cR9I1Fdl1dX10NHL2Hfr' +
'q3rGTVonjYsFi16Gxw5J5HuEgxmWMTcNJRyVx1ksLw2CNDWaPleKk' +
'r8dDYpnE1d5sk0E8ZI+N4vTe1iruafmnyZOL119lR2NSu9XWgktaO' +
'1uGk74kvkL2wp4MdifgvH2PcL7HgCitnZ3iLkmUWuMfJsYxUVq7JC' +
'4t/+hDxkVOXBMcGSSc3zkfHfl+y7ia0e+s4y7NeaQhTUsaM/w+jBw' +
'qPrlm26TE6sHV2Qq2aAGXsdbo/CatS7PVTJ6+CJqNE3MOFv1yiafT' +
'tN84sZdEDb4OAJLixJyzLxDF/VBaF7+O0e5lnZ2egRjBBcucE0imc' +
'KeeT1uPyTrSS+IIylo1VtN2lSQoez+U1hEDmdXeaKdtYlCMIuLuJc' +
'aGOB8cKHFWibhLO0Tda23mk5iPwz9KbUnb26j2d+qhdg2WsxMq+nm' +
'd1d8VhLBAPBCtuLeh0f9lCDi91giFFmLVBEU+F+MF1QypfNBfLrPb' +
'cQ==');
s4 := BitmapFromString(37, 37, 'beNq1l89OGlEUxgGFjv+SqRBzFw' +
'SckphMg4NjaIcxuJlim5hQ69QplKSLxlVDXDTEhSFuuvIVfIBuTFx' +
'25bP4Cr5C+80cuFzu/AFbe/PlZoKH+fmde+65l0vt9kL/eaGzojYS' +
'i1ExRmy2VFVrmQCRfNY7uzJSI0Z7MWrMFlicaOtroMzvjih/4Y7mp' +
'r7mNBy1oGZz2UwwcrlcvpDfKGxgJuEZAaTB9wGXZVmRMZJYQXWa9p' +
'ZWglKpFHDKspJOp38HA0TxJfQQiYMiYyBzx4REHOZ6rUruMguZu7s' +
'7woErWRNf5Z64nMWKLDLGqBmDswHkHruSO+AqpQq3RjjJWgIuHANW' +
'/1ufcEScxuWXlKWbm5v7+3uezN7nnqRup0sang85DuhwZFhb5YrTQ' +
'DJZfduosBW8H5SrqyvuLm7RIRA5LiFsulQYcIACt6osXl9fPzw8oG' +
'b+Nw5ayKTBQjI5Dg/YFE+Oo2TmFidFwsf683VtU0MAlzoefhlwnKp' +
'OxaD+TZPWFA+R7tZXF3PZLBIoJrPyooJvtd60uNrjIeLcj+7R8VF9' +
'p04zscRCIqi4dqCYNUMtMCoYjJXlFYo3XhokVBcoRtUgmYYJgYUYA' +
'pHMYEhEMZkg+tu8aQOXzT0DUVEUsuZvq3GWQASOiDyrhOuf9SFAxW' +
'RySe4CXJ5wJBgJV4Je1fmHfE29jjc4H5C8rseYv75wTWH439rv21I' +
'To23+KFy32yUcB1mvLBaMZBzvKjNxYmcmnLVr+ayOb+pp3cGa6K5p' +
'N8ECCPIfuh63OZ+7Neu1xV2Ecc6BA6HT4kDBPOm9H1yo9bbFJZaKj' +
'PNLpQQBd3hwmICTJOLitnkkzj/vtqvYd8nunhY3M5nz4HpfepB4Gs' +
'YnM09dJbkyJ7jzKRw1bRyCkPfJg6Jw2ObmVlmDUiklrjL1lzo/It2' +
'OS+I4IvJjF0rGBSeCPue+G114ds2wu0nnLzLczWa6mz+Z/4IT3DmR' +
'pRK+Q44Kb+qWNVWZ4sXJO/HGf5KaWCxOukM+CmeZViTOrE1O3tOvp' +
'5I78Q4ZiePlJN14JZzQM53IS3L4Dini6JJML7Tr9vBimIzjPdNu2O' +
'FdDIXXztgxcJhST0Z/pgTy1iqykCWxirDNtXJJK8/ASWvHcf7RM16' +
'vyMxUq1UJ5ycn6Jkijto+rUvk/T9cHqKkO5jkzgx6pogTFfkbIRkX' +
'J+7u1w9d29SP9rdIh3vaRPuC5vi8LUiMaTU0lfnz7aUGHGYQSVO/u' +
'zcFzfN5TAxn3f4B7fZz6g==');
s5 := BitmapFromString(37, 37, 'beNq9l+FK21AUx13btB1zmmFX4i' +
'ibUXDrqK3RuliZiMUhFKozmrl17MPwg4zSDyWIjuGD+AD7IuwJfAV' +
'fwVfwFbZ/ctKTm5vbTgbu8iekaXJ/93/uuSc35+bP777MkmkY96jt' +
'1blf5yZErHbDv3J/AnFjoQgcsf6Du3xeBxHnKy+nNS33QGipVErLa' +
'npBHyGjYLDE61OFKVKxUOSLjbeN8owJAfeiOHF8fPw73iYnJ72+B7' +
'X32tXF6jCc1/Mg58CxLItxABFRiZt8lLu4uADi5uZmbGyM3DGu2+t' +
'C9JSz51iLVhJHdwLK7oioxOW19NXVFXCXl5fAgZXNZTFaxpE72KTO' +
'iUg4d89lHBlka2pcycykU7e3txxGnIM4OztLnUDugWtbNjuF6sv10' +
'O+h450E97iuETTlRDdWI9zDXIZwp6enZBNRzWVzjAOLBAqJu03ieB' +
'KH4aYL46l0mqYMwSSPOBdxYRIaxmh3/AjNoxK33ZjDsbnZhEBJ4ii' +
'YOHIwIWvJghhHRH5EIkY4w3wGd7CXTmuaxu4ymQweqVQrdt3m3nDO' +
'QpZCnJm0Fvw7e6GsBUuZmU8e55NzNzExIeEghAs/KW7Uj4jzfw5wz' +
'ntH1/VhuLOzM07O6+vrbDZbXaju7u/m9byIi2azbks4ypC74JbmDU' +
'3Lc/mCr+WlZTwIHNzBiDQp4TShTyGYIf0OuO03fsXGRSxnSoNoIoK' +
'1RnUMsoJGPWBqeJr8ONOqP3B5PIbQrJpVnjEgxjGLakiyquAklm+6' +
'DguMA0iJAwhqtVoiDoIFFvqExJpJEosVmuiOiIyjvEI7+nokuiMWB' +
'VNU0p2kyFrPEwuCmE6gSDiAWkmcoVv1EIfeXMe1l20cO587rDAlgn' +
'eEiEgmFS0fCcfRk9WL1Gw2y5UyjnQdLBoepS71LKUxQEocR08enuN' +
'CNBFg+b76Ho784vNfRkGHnIdSD0qcPx2CQcd1EE9E1b85iCREf4EF' +
'buzNHm9SSOM4ZMtzKkpICeVWgYyIcwSVX5clHGq1+9Gt1vzHcex+6' +
'/7A2IIF0rAUuNEScdL7xR//iu2/Gk48UCCC8t5pBA6Z3/nSYUmVn3' +
'GdTx0WTEH/hhsmESfvyuLu2jttaXMY4UpmK3i9ivvD2F4xaFY1iGT' +
'QIYxIwzNKhm0P0uPEs5dsaf8pbo0YJ4HC3VTQnH2HccktEHDuB5dx' +
'ye2uEqckRtZo5Cu2Ehet00P3LjilNShi9cMwggiVF8OFgJPIWj+K5' +
'GicuOdn1Wv1WPUbXG++a6orXt8zB+W3+FT6RoilSpK1u7OLNBNLn/' +
'ivsujRpkIE/RVXeVUhEEkshtJXT5LFcyoRk7iNzQ3USRJwCCNvZYf' +
'h6C0MiUNikDKY+KLUx/WtWrG1Nh9p3WS11yLFr8+zWuuCcNtA/CDs' +
'bNV0+l6GgDNK5UhIIVZJUOy6eL+gkqmUD/oDaYWmZQ==');
s6 := BitmapFromString(37, 37, 'beNqtl1FL21AUx9tU5ijoghYXmK' +
'TGsrJsbTQso3ZThEw2JqvVzKJ27HEPo/gwikgRX/bkV/AD7EXwcU9' +
'+Fv0IfoXtn5705HiTSjsMfy43bXJ/+Z+ce27uqXXZs3/3bGPeimQ8' +
'kOZj6QVj482zy1MrVJ/1sV6KtPIw2nxrscBiYt2eAuXB3c0WZklzh' +
'TmjoNdX6midamXVniotlHK5XLZ/oGM8NbY+bwW7Qc2rGYND3m5X7P' +
'bXNuT7vlt1oWA76B52g53AXXb1gg7RlXQL4UpFE8pkMpOPJi8uLv4' +
'Ojl6vVzSL3Z9dqNVqMY5vB47+DXXYBQ4ti4j8bIwjd0/yubOzM1Cu' +
'rq6Oj4/Rubm5YZzijm6XOPjSdZ1ZMEju+NkUdxO57PX1NSiwmdXCe' +
'ObzeafqSGs45O2j4KSA81fq5aIJaVqWYhjisllN00zT7B51ofZe2y' +
'gYpDsjYPwBjt5vTN8Nca7rcp9xaL1qBYYId3t7Sy2yxXEcBed/8Fn' +
'Bl4DHb/UPiSMWC6fsTuLwBs/Pz9FBbKenpxmHFrJf2SzXcSVOcYfx' +
'0abiwmBm7wST+hMTE4SDTo5OoPa39ijBxOC4gHEUzzA4YTANr+rkt' +
'CyFESwQY5wICNT50WlsNZgY2+nnRpQqAzqHl+iEKxdLUH5SwxSgiU' +
'AzIgomArXbSk8VgaNZxjiKLeOkO7DgDo7gheYCsXAaTQSBI3fOkjO' +
'WOyWYIKKIzegzOS0uYouLi1Ea3MWxZCbQXGMcGVTmBR4gxBlGeRG4' +
'2dpKLZ6Sd5+N0kzmtr/uS3c1t4aHid7vYae508Qp2v/Aydc9DEcRU' +
'HAQ3cVjEs5znCQuyZLu7Bf2Pe68ZS+ZWqnuSs9Lm582JYur0D24Ye' +
'5wyPXLX+3jSmGq4HclgKT2QVTENt5vDIstPRLjGjsNJXUJOhYOHTm' +
'+zEx5ChwRITmO5zqMw7wDDqK/9vf378cpsZVmU93BCCiKO8oQ/GUt' +
'WExknPPSIRfJzJGDp+LwgSFLNFLFXargAssyqQK09lrRenfQTq6VY' +
'QUWC5CCawZNyo1huEzmMZyKlXcMHDoKznvtDcPR8gp3Y+HMohm/OM' +
'dVcGQQiidOxVbcUTBHxOEjJ7am68lgEpRx0cfAYL2Du7pX51Isi1g' +
'qjkuxLFNxqmw3sJowjos8r3dj4bC6EU6yUnEAyQWF1zvCQRhczq8k' +
'LmIdxsUtFaf3j/j5hwQT7UnvZBiOWfxZfj9O2SMgG8uWCWGar79bp' +
'2cIGoHE4aOLRkOn870DIVD8QU5DqYv7wLiyR0jFoaNUJ2LhM4xAya' +
'FSa1pyjxAWsYIOHGom42hZVNIgKTlUNPH7VZqrXHKPkOou+cWVKjn' +
'UsGvkXo/2ktT++WVbC3ZzrUySu87NNaERfm8IyZ2s3L0ChxZEktxT' +
'GwtCo/wulXAXbsz/AQMx5Ko=');
s7 := BitmapFromString(37, 37, 'beNq1l99KG0EUxnWTbNJa6VJjGK' +
'iIS4o0uG6zNjWJCJJtNHQhpKam2FgvSkAowYsSqIh47yv4AL0Reum' +
'Vr+Ar+Aq+QvttJjk72X9ZUzt8LLPDmfntmTlnZvZc/XVqS11i6oJK' +
'YoKitAfZkKwN9fe5Lc6qb75sbKgkS1CU9iAbEohbqzPAMaZa61k8l' +
'bQyVnPpOa5MOiO2szQj+dqUN8u5JQYlk0+Tidi0UCRJSsiJIBwG4a' +
'OF4Lw2Iu6Pp8zOztZ365Cvd3w0vBqG0fvRa+41G7sNl3dkE+Td1NT' +
'U5eUlWHd3d8B1j7tc6itnnumzRRzELTnOZePC2WFTzs4+fwEidw0V' +
'fVXn45imKa7FyLooiqE7OJqK4LVTIY6LxxNXV1dg3d7eykmZDwLlt' +
'JwXNPjyUZye10PWV8StLTNy7ejoaD4z78L5EkNwAWs3wLG5mZOTE7' +
'Du7+/Bza/lRZyvayG44LXr45iakuM3Nzd8JqelaXPHFHFBOZh6ltI' +
'0jSwRNrzd6BdXgpgVk3CxmAS/gLu4uIjH4y4cRTu69457zd2mkTeC' +
'cBSrvAvhCm8LhJMkZ+FST1IunNgdOJLWLy6cbTNssQO7Ynq9kxMxj' +
'pNlufK+0j5si11GFIpDEXGidyJuXpmRpBjtXea2450rj5zP3ja9ac' +
'6jxWUzCJXSMM2ZWhvdor04CrYQHEXmv+OI6BqKpu4RcWIeUXun0wF' +
'rMpwVihMPFycMPjXFNEfkGKuG0i9kY32wfLboiXD2l4/D7X/enxhX' +
'3amKCfIgnPZGi47TV3SAgIviHZ5e3KK6SDiFqeb6Mp40YziaHZyiM' +
'KEE4vzUarVoTGunGoQr5AvOXqEbBaPQ+Njofu9CIbjc65wLVywUaU' +
'xjRY/inR3kfRCg4d4BZ26ZI64xFuRd70Cjywkk4uBalMkEjhwcsPq' +
'4zmFbxLGFXK2s//xa8E4+P3Qi7pk8zfEUE6e8Xm4ftIFFZXia++AA' +
'oiPyoXumiAMLIC8OGoBaTQRH0N1yZFfxnN0uXGuvdXZ65ovD045Dg' +
'JhiS+getGe6KCKuaBTBghlw7skcpnnQfVKsuw7riAIOSeHFhYB45X' +
'FxY4ne28jEuLGu0b2RhweCE0LMQO0vbVGdbx1QUKEEJBz+N+vl/l8' +
'neyw5BXsIV7WUxXfW3mXsv9c+sVbK+soSFKW9VlokgcIFIljX58N/' +
'8//vHVjXfwE5+JpF');
s8 := BitmapFromString(37, 37, 'beNq9l+1K21AYx7u+GZFKocVlOn' +
'RdR1icxmZ0S7spQnEbBMrWYBkr7Ksyih9GGegHv+8WvAC/CLsCb8F' +
'b8Ba8BfdPnubp0ySNiY4d/oST2Jyfz+s5Oa2dn9T+nNZqz3w9nUhN' +
'qVnvlqvq3psVUCDgQPm84+vdRHZKzXoXLCZu66V2q12ulkmVaoW0V' +
'F1SqyrJMi1VDPqlaZr8Vvjd6XXKQOBqbG4Ap2lavpB/5I9sNlssFh' +
'cXF4nV3++Pfo5I/X6fcGDxQ2ffIXQYRBPC1ddWoUwmUyqVjo+Pr6+' +
'vb72ByeHhYaFQYNN4ZchqWmSLfAgiWxcmBqzL5/M3NzcA/fYGJriF' +
'mezMsHUSRywo0rSAddt6JZfNkV2wFBSaY8Ixcpc9cuX0HI7UGPdr5' +
'Hx1AkEMCLhOq62trWoeTplTyJNsHW4RwX+Lw7XpOrOysLAAu27FOD' +
'g4eAhOX9cjrSPcvDJ/dXUFytnZ2cXFBSa4jcSZDTMJbvBtMPwxNLa' +
'MSGfmstm42DVMYt1tnTdMw/33hkdDSH+pK4qCZOu0TFybmzpwWYFj' +
'r94PRyzGEZFw2loN8lJljlLl8vIS/qRUQaUDREqIY5bEQaAQDtZlM' +
'sqTxypskWWey+WWl5cBwvoQ42JiZ742ZeETyO7aEDuTrEMNFpUiXM' +
'pNDA5HnSbKTL+JSYu6vS7a/iQzVdUtBFXVntcJJ9ssN4SEOBYoRsO' +
'IqLtYHBOT48K7QySuaRgBnOx1iepO9Mw7cZ51JeutFblnpe0qMfud' +
'l5krUBiXLnbTuFn7ncTZH+z7xy5kXeR+5xUCWrSGNiKtSx07gYvZ7' +
'xiHVHGPIv5OSuvTQGJDVEppY8cLeppq0cAFTgiyMxAxbeyYZbwyJA' +
'5NjKyLLFssgspNZZ0fL5e193EPCmyvkTiuXIlLHjvCDb4PGCedOTn' +
'gHY36vb7VsCiOCXtmZGnjzEYnN7Vc3t1xrxsv6oyj8IEl0+YhOD4o' +
'Eg4siRuflkVGpeqZPECH5F9BicQFlLBn3imnZwtnljrbnbie6e3mX' +
'BTeUUeNzGS5g0/huvbue2tDq0NhXLBnzsDJb4cYHByLzAQOV+DQxM' +
'wtM65nzsBRrGkrp3h1v3RZ/J1CBz/GBawL90wIGSJ36nB85cFvPKa' +
'PtezM3fXSp3Z98rGp/nvRt6T/RamDAuJYrfvLFpLP5dcrcOcn+n+w' +
'zmX9BTTBflo=');
s9 := BitmapFromString(37, 37, 'beNq1l89O20AQxps/lITQKoKUrt' +
'Skwg1CiqA0bgMmCFSVIgVZoiguLm0qTpwqxAGhCnrgDo/AA/SEeuT' +
'EK/AKvAKvQL/dScbrtRNCoatPluOs97czOzO7PrJ+/5KyxoVVtFhC' +
'Uz/Pu/VhuQvWnyMpYq0tvlhfsFiupn6ed+vDAvH96xxwQljuXBnX0' +
'cIoaaww1u1eCOHUHMj3fafqiILorXwhT6ov1ivjAiLc0NCTZDKZUC' +
'2ZSmaymVgoeu/v7be1K6UP7tiOv+Hfiis9ewrI1dXVjWqXl5eAZoe' +
'yUSJ6wy7G+c3Q4DwTcHvgso/TxDo+Pr64uMANrqlUKurPKA4ulVJ2' +
'BYZ3iDG4opVKJsiuR6rh5vr6GgZyZ1YI93Pf3/Sdtw60/HGZZdu2t' +
'+Fxf2rOrFMZtyADBwrd94MDyHAay1YtFpcdbDvz9PQU/rw/DiDq43' +
'/1o7jScxkqcCC5kXBYu53dnbXmWutbixWwOs4k6X3gSb2PnNWsE+B' +
'UImQyw5QItHZo6XTa8728COZcmarwOJXpiu6okAeKwnEcPWxk5NQC' +
'HBIhlUonkgkQCQffZjPZfnBwF+YPP8xUZ2JxsiCoysC4wtMhWruDg' +
'wNKhJOTk1Kx1BtHLiJ3AUdECDj/i/Q5oIEHwrjDw8ObTjs7O8vlcq' +
'uNVbwCYmurxWJc63sLdhERIhCmhLUm0ySrKGJx1QkxMDCY6LSRkZG' +
'lxSXJ2vAQY0G8Tdu6dbHBTwkeU1Xmg6rSUCWa/+IxOVv7wXHwM+ue' +
'uMmJST3YvE2PZcbhQ1in/8U51VYYx/tCLM7tgkMMy2UObzHGyFFtb' +
'21PT00b8zT2uz5xOteesQOpFg2eO+EQvTpuvbkeijrVwPI+e71Z/2' +
'BdrVpDIuvBwDh+2APKuLywVubK+Q6O45lfj27WehTp/eUrNVs/ADD' +
'O/bB8H1w03agEoejpBwDu5ryzb8W1S24EpydIaHo1m3BM7N+64ABw' +
'R5x+tiFQ+ZXFOA4VGpNPOHotCjJOHfbsqh2LMyJZqijk4bAojO01i' +
'jMSrf1c4WJLZSxOvtUT18u0PdM0A2eUBfnWripoGg4sxvGw8aZh1Z' +
'pet40g2LhVKQidtIuho5FbL8vvlIKgTRkZrbNQTOg5bqI5hV1VT/9' +
'YhQ4PHRzVDYPlfnKZhZ+xOXUrjqw2cAbLfmNv/9iGCESKzSkY2JsV' +
'Ojxo1uks2IWrsYhGTgUalnt9W51tAhU1elbB9+ZaXX11iodS0GT1U' +
'FqZL2NWjdkx+fWqiI35cqxcTf08b8y/ZIFCAhGs86POt/n/tw6s87' +
'/b4XzA');
s0 := BitmapFromString(37, 37, 'beNq9l99K40AUxtO0trpQyGrRgK' +
'LrCl0qWozWTbN0V6guglDE7AY1eyN4KV6IeCHi43i5T7Cv4Cv4Cr7' +
'C7jdzkpPJJKlWZYePkE4n88v5M2cmt4t314u/bxcXP8SaS2SPqKJn' +
'rYa9szkLCgQcKPtfY31JtDeiip4Fi4m9Vt3relbD0tRea9tKU/+iH' +
'nfTFeq4uWNS4xsWELi2V1eAm5meMU2zJBtuquNVjDk7P7u8uoSCow' +
'DTZnHoFwMuhIIgeBK3tDAPGYZRLpcfHh7+yoYbQGsTNcYRkR70f/q' +
'O47B1RTh4hkZmrZuomvf39wD9kQ03+IkXGBwMmEVTYYZoctmj4sil' +
'jBOvKvvxiGZd2Sw9Pj6CUjJKsBQ3+FmpVHhyMZvj7u7s8k9QKHCMc' +
'2TzPnuAhr/Cm+ubm6tI3qawq9/1mgvzEGJGbjQRt5IZ3ZsmhoFCCn' +
'4GmBNEZ82BANKsI9cBl2gzUngUEg7XzuoK4yhVGCfWTsMmES4yZC0' +
'ndhQmu6jF1hXhEDu8cC4ONj6JI+uyONWZKg6xwyQ8nOIlQtZ17bko' +
'JYBITO44kOr51Gs0bOlMu7Pa5lQxZKNUGRsb43xjHLFwpUnUXPIDn' +
'3FJRsVEwjUXlqB3tTLlv7oQJt9PatYFxwGxyIGUigyybAvKej5eCB' +
'EO1hkGPFdRlzlM21jfCMMQ1kFYwsLSrhux4nhFq8xOlMXFyzxyJoi' +
'91tR0Y7pWrZmyVavVqakpSvhUayuSjadiceXRcbbE2Xbzo8C56y6N' +
'x01R3SOQRU3JE372BTjhqPNL/8CHaSlWPLn/wxdQ2ckVRhS6wwACS' +
'GVlcZ12O4tLdJEvDQdQrnWUJxnr6sjeCKcktoh+bF1/u6/iUoMzOH' +
'IFqnRnrRP7GcvcaS7MQqPiWiut4TjqB04hviVOix1p/2AfOFwZJ0t' +
'0E5UkiyNieByynm8dOTMG2RpOpEoGp+3OmnVFqZJUPC1VlBL9ehw7' +
'k+pPykXxbs44wxjPdSZwreUWaSTrxN7UcbnsMI6211zraDsAhaTFb' +
'jgOD47gTOkc/9BXq0pvu1eIk56nYp4cYK5Sr63ud6/H0ZyM4+Mumc' +
'k42u/exLrcE0oWN9y65nITIMg/9odbl4vjRAVLcWZdOyTwUVZdRFo' +
'stLyCBoNB/3ufhI0jtRwO9ra+uSufliDGRRmVxmWJ8mSl79rDRTjk' +
'J3CiiBVbp/okOSzF1ek5LBHZhsU41ZkipWVeaRGnVFfOjYm8ngfBk' +
'ycnJ/AhdHp6imuUq9HrWezMreX6rreUfGzaby/6loy/KFuggBip+3' +
'LtKVL71a9X4O6uW//BOsH6B3hX9cM=');
MOB_HP_BAR := BitmapFromString(3, 1, 'beNoTFPQXBCMABe4BVA==' +
'');
INV_FULL := BitmapFromString(38, 6, 'beNqFUtGNwjAMtZMmbdOUC' +
'qi4j9MdSPxR1ipsgHQb3Aqs0BVYgRW6AivcuQmOLFGJyrLcp5c8Pz' +
't1gYh/ABRDyLHwi2K3/9BajQzeAYzR3fG7besfhQ/GKa4Av6Eg0Nq' +
'sO34aoyThjOicPePzF9VTkS6/MEdnyrk8yt24GSq8z9etfwQVEHzg' +
'4jSJ6l70GQ9CyBFRrAjiIIFKz+Dkumkc4mTqHkwlzsBtQ8hxVsk7M' +
'PkqFCeVuVqGzbOqyoeXmVAPaTu9aCO12gvmW0X50cTI5uxM6rq8sa' +
'M4ybK0tPpRgGN4DOlmFCpUF6VJe0xelssqKV54NVHx0H2BmAYtdLv' +
'brFZ+EOD0Jv8BaLyLGQ==');
GMQuiz := DTMFromString('78DA636C67646098CE8002FEFFFF0FA619A17' +
'CC65E22D47403593389503307B71A66989A4504D4CC05B2161350' +
'339B08BBA60059F309A8D90C64CD22A0660B90B580809A2344AA9' +
'94940CD6922FC75167F7C81D59C07B2161250F3888870BE43847B' +
'9E1311CE5F81ACB904D47031118E0B901A42E1AC49841A59A09A7' +
'904D4083111F6972350CD6C026AFC89B02B9489703847136117C8' +
'1C3C712A0DA20BF0DB0556534EA49A4504D4D410760F00B32E897' +
'9');
Patq := DTMFromString('78DABDD5B94AC4501480E144C5B711CC90B9B' +
'999C46E702B14F1319419041702AE8DCB8388A5D8DB4D31697C03' +
'0B5F40100BDB787330838DE7FC95692E818F7BD690D8CD4751321' +
'7FD7E9AA69133FE798F5BD307C603531AC607931926D7CD427B96' +
'C0AC04D3FBDB2C76B112C338600A60D682490DB3A1CF42CC66300' +
'E186F98613003C3ACEA3315B30ECC3630BBD00C80C90CB305FABC' +
'03E67500628DC13D7B60A6FB60A6ED3D05B8C7EAF30898C360726' +
'01C30567F8E813901A60273AF409F2BD81F628A7FECB355FB1130' +
'3760E7AFF5EF74A93D6FF55862EEF4BAC4DCEBB1963BE30CF3A0E' +
'F8F9847609E80790666A2F747CC54DF1F312FFA1E8A79D5FF9579' +
'6752C3BC419300531AE65DEF8F980F90CFA7BECF3363E5F3054C0' +
'D72AE41CEB5BEF3335318E614983350D70530E7C05CC2581EE4EC' +
'41ED19300E983EC8270575A5A03F96B9B2F3F906880F4A95');
n1 := BitmapFromString(6, 12, 'beNr7/58BCfwHAzQuXATCgIsgi' +
'yPrGhARdAAAU39cpA==');
n2 := BitmapFromString(9, 14, 'beNpjYCAG/EcCaOIE2bhEKJGio' +
'hYqimMCfGEKAFO8RLw=');
n3 := BitmapFromString(9, 12, 'beNpjYICD/zDAgAqQRXCxMbnES' +
'OGyDqs4kXYR6RI83kSznbALAQinR7k=');
n4 := BitmapFromString(10, 14, 'beNpjYCAD/P//H48ULlmIOFZZ' +
'uCCpssgiaLJ4uATNwQrICA0KZaEAABzUTbM=');
n5 := BitmapFromString(10, 14, 'beNpjYCAG/McAaLL49ZIhhWkp' +
'fr34jaLEkWiyJLkEq7G4fIQTAAALZE2z');
n6 := BitmapFromString(10, 14, 'beNpjYCAS/IcBrFJY2Zhc/Iqx' +
'qsRlL5oghfZSS5YYD+IJSewAAFMcU60=');
n7 := BitmapFromString(10, 14, 'beNpjYCAI/mMDeBTjN2rwaByc' +
'lmIBAJgSNcs=');
n8 := BitmapFromString(10, 14, 'beNpjYCAS/IcBrFJY2Zhc/Irx' +
'a8dlNZ1dRVM3YwcAYeNQsA==');
n9 := BitmapFromString(10, 14, 'beNpjYCAS/IcBrFJY2Zhc/Iqp' +
'KIupGKt6uDhWf1HFXpJCEjsAAP5UU60=');
n10 := BitmapFromString(17, 14, 'beNpjYKAQ/P//H6sgBOCSwmMI' +
'miyEi1UQqwgmg6AW/FaPaiFbBFcCICnBEAsAHEx6hg==');
end;
procedure HEROcmd(Text: string);
var
S: string;
I, L: Integer;
C: Byte;
Shift: Boolean;
begin
S:= 'ABCDEFGHIJKLMNOPQRSTUVWXZ' + '~!@#$%^&*()_+{}|:"<>?';
L := Length(Text);
for I:= 1 to L do
begin
Shift:= (Pos(Text[i], S) > 0);
if(Shift)then
begin
KeyDown(VK_SHIFT) Wait(40 + Random(40));
while(Pos(Text[i], S) > 0)and(I <= Length(Text))do
begin
C := GetKeyCode(StrGet(Text, I));
TypeByte(c);
I:= I + 1;
if(I > Length(Text))then Break;
end;
end;
if(Shift)then
KeyUp(VK_SHIFT);
Wait(40 + Random(40));
if(I <= Length(Text))then
begin
C:= GetKeyCode(StrGet(Text, I));
TypeByte(C);
Wait(40 + Random(40));
end;
end;
end;
procedure SolveGMQuiz;
begin
CalculateX1Y1X2Y2;
Solved := GetLeftNumber() + GetRightNumber();
Mouse(AX1, AY1, 1, 1, true);
Wait(100);
ClickMouse(AX1, AY1, true); // Clicks on Answer box.
TypeSend(IntToStr(Solved)); // Writes the solved int.
Wait(500);
Mouse(BX1, BY1, 1, 1, true);
Wait(100);
ClickMouse(BX1, BY1, true); // Clicks on OK button.
Wait(1000);
Status := 'on';
quizes := quizes + 1;
end;
procedure CheckForGMQuiz;
begin
FindLot;
if (FindDTM(Patq, x, y, 0, 0, 1024, 768)) then
begin
Status := 'pause';
SolveGMQuiz;
end;
end;
procedure checkPetHP;
begin
FindLot;
if not (Status = 'pause') then
begin
if (findcolor(x, y, 1062094, 188, 114, 192, 121)) then
begin
CheckForGMQuiz;
end else
begin
HEROcmd(PSlot('pet'));
HPTaken := HPTaken + 1;
CheckForGMQuiz;
Wait(10);
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('HP Fill. (Slot: '+PSlot('hp')+')');
Writeln('-------------------------------');
CheckForGMQuiz;
end;
end;
end;
procedure checkHP;
begin
FindLot;
if not (Status = 'pause') then
begin
checkPetHP;
if (findcolor(x, y, 1061070, 174, 63, 184, 72)) then
begin
CheckForGMQuiz;
end else
begin
HEROcmd(PSlot('hp'));
HPTaken := HPTaken + 1;
CheckForGMQuiz;
Wait(10);
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('HP Fill. (Slot: '+PSlot('hp')+')');
Writeln('-------------------------------');
CheckForGMQuiz;
end;
end;
end;
procedure selectMOB;
begin
if not (Status = 'pause') then
begin
HEROcmd('v');
CheckForGMQuiz;
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Selected.');
Writeln('-------------------------------');
end;
end;
procedure attackMOB;
begin
if not (Status = 'pause') then
begin
HEROcmd('a');
CheckForGMQuiz;
FindLot;
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Fighting...');
Writeln('-------------------------------');
Wait(100);
sKILLED := false;
end;
end;
function NotInFight():boolean;
begin
if not (Status = 'pause') then
begin
if (findbitmapin(MOB_HP_BAR, x, y, 442, 121, 621, 136)) then
begin
checkHP;
Wait(100);
attackMOB;
HEROcmd('s');
checkHP;
Wait(100);
HEROcmd('s');
checkHP;
Wait(100);
HEROcmd('s');
checkHP;
Wait(50);
Result := false;
end else
begin
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Writeln('GM Quizes: '+IntToStr(quizes));
Writeln('HP Potions taken: '+IntToStr(HPTaken));
Writeln('-------------------------------');
Writeln('Not in fight.');
Writeln('-------------------------------');
Result := true;
end;
end;
end;
begin
SetUpSRL;
declareStuff;
ClearDebug;
Writeln('-------------------------------');
Writeln('--- FremBot Beta Private V'+Ver+' ---');
Writeln('-------------------------------');
Wait(2000);
repeat
if not (Status = 'pause') then
begin
checkHP;
Wait(100);
selectMOB;
Wait(150);
attackMOB;
repeat
Wait(50);
until(NotInFight);
end else
begin
Wait(200);
end;
until(false);
end.