Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$DEFINE SMART}
- {$i srl/srl.simba}
- {$i ObjectDTM/ObjDTMInclude.simba}
- var
- //Stores the previous bank slot logs were found in, to speed up banking
- LogsBankSlot : TPoint;
- //Proggy stuff, and fail counter
- Prog_PlanksMade,FailCount : Integer;
- //stats stuff
- commitTime : LongInt;
- logsPlanked : Integer;
- const
- DEBUG_LEVEL = 5;
- ENABLE_WALKING = False; //If true, your character will walk to the
- // edgeville bank, if it cannot identify a bank nearby
- MAX_FAILS = 3; //player will log out if the script fails this many times in a row
- //^ I recomend you do not change
- SRLStats_Username = '';//If you do not have a stats account, please leave
- SRLStats_Password = '';//these blank, and register an account when prompted
- procedure DeclarePlayers;
- begin
- HowManyPlayers := 1;
- NumberOfPlayers(HowManyPlayers);
- CurrentPlayer := 0;
- with Players[0] do
- begin
- Name := '';
- Pass := '';
- Pin := '';
- Active := true;
- Member := true
- //Log Type
- Integers[0] := 3; //0-3 for normal, oak, teak, or mahogany logs respectively
- Booleans[0] := True; //Use soulwars bankchest?
- end;
- end;
- function replicate(str : String; count : Integer):String;
- var
- I : Integer;
- begin
- Result := '';//make sure result is empty if function was previously called;
- for I := 0 to count-1 do
- Result := Result + str;
- end;
- procedure DebugStr(Level : Integer; Text : String);
- begin
- if (DEBUG_LEVEL >= Level) then
- writeln(replicate(':: ',Level) + Text);
- end;
- function GetLogDTM(Log : Integer):Integer;
- begin
- case Log of
- 0: Result := DTMFromString('mlwAAAHicY2dgYDjEzMCwE4iPA/EFID4NxCeA+AAQczEy' +
- 'MPBBMScQswDxT6CeP0Ac5azO0JRhCWQxYWBWIIkLM+LBU' +
- 'AAAb7UJyg==');
- 1: Result := DTMFromString('mlwAAAHicY2dgYDjMzMCwE4gPAfFpJAzi6zEyMBgAsQIU' +
- 'awCxIRCbAHFdvDnD7JowoAlMGJgVSOLCjHgwFAAAS4YJZQ==');
- 2: Result := DTMFromString('mggAAAHicY2NgYDjKzMCwE4gPA/EFID4BxKeAOIiRgSEM' +
- 'iJ2BOBDK9gHi5T2xDE1JlkCdTCiYFUhiw4w4MAQAAKTJCXk=');
- 3: Result := DTMFromString('mlwAAAHicY2dgYDjDyMBwCIgPM0LYF4D4KhBfBmIVINYB' +
- 'YkMg1gNiXShfGYhb870YAvS4gSYwYWBWIAnD6LKMeDAUA' +
- 'AAftgjF');
- end;
- end;
- function GetBankLogDTM(Log : Integer):Integer;
- begin
- case Log of
- 0: Result := DTMFromString('mlwAAAHicY2dgYDjAyMCwnRFCnwLiE0B8DogPA/F8oPwy' +
- 'IJ4CxFOBeA4QLwbi5UAcZKfK0JptDWQxYWAOIAnC2AAjH' +
- 'gwFAFSxC74=');
- 1: Result := DTMFromString('mlwAAAHicY2dgYHjNyMDwGIg/APE3IP4CxL+B+DMQzwPK' +
- 'LwXiSUA8FYjnAPEiIF4GxFkB+gyLm2OALCYMzAEkQRgbY' +
- 'MSDoQAAKDMNfw==');
- 2: Result := DTMFromString('mlwAAAHicY2dgYJjEyMDQDcTTgXgeEM8B4kVAPAPEB8ov' +
- 'BakB4mlAPAeIFwDxMiBuzvdiaE+zAbKYMDAHkARhbIARD' +
- '4YCAN8eCwo=');
- 3: Result := DTMFromString('mlwAAAHicY2dgYHjNyMDwBIjfAvEXIP4KxN+A+D0QKwGx' +
- 'BhCLA7ECEIsBsSYQawNxc74XQ5ABD9AEJgzMASRBGBtgx' +
- 'IOhAACFyQl2');
- end;
- end;
- function GetMageSortSettingBMP(Setting : Integer; Planking : boolean) : Integer;
- begin
- case Setting of
- 0: Result := BitmapFromString(6, 5, 'meJwTUVARUVCRl5c/evOVeUQBkPSN' +
- 'TfeKSmZkYABy05dtA8oCuUBBOBfIAHIDErOADCAXqBJI+sZnAhGQD' +
- 'UQQBgAtghmf');
- 1: If Planking then
- Result := BitmapFromString(6, 6, 'meJzTNzCwsbHJyspiZGDo6uoSFhYG' +
- 'MhwdHYFsICMhIREoIi8vP2ny5ITERKCIvoEBUGTJkiVAEaA4FxcXk' +
- 'BuRWQzUAmQDFQC5AYlZsQVVQDaEC5SNyi1PKW8CAFv6GSo=')
- else
- Result := BitmapFromString(7, 7, 'meJzTNzCwsbHJzs5mZGDo6uoWFhbO' +
- 'buwBsh0dHYFcICMxMREomFHZKi8vP2nyFCAXKKhvYAAUTClvWrJkC' +
- 'VAQKMXFxQUUSSppSCisBuoFcoHKIGqAIkAE5KKJABHQWCAXgoDciM' +
- 'xiIAIAby4rEw==');
- 2: Result := BitmapFromString(7, 7, 'meJxrnL2gYsKc0u6ZRR1T8psnZDf2' +
- 'AFF9MgNQhMG2GY4yKluDTRhB7Pi9DF0PQQjIsG0CagEJArmLroIQkAE' +
- 'WZGRggOltAiIgF2hsZk0HkAFHCYXVQGNTypsgCMiNyCwGIgAMgjOd');
- end;
- end;
- function MenuOpen:Boolean;
- begin
- DebugStr(3,'Checking whether menu is open...');
- result := OptionsExist(['a','n','c','e','l'],False);
- DebugStr(4,'Menu was open: ' + BoolToStr(Result));
- end;
- procedure mouseAway;
- var
- TP:TPoint;
- begin
- DebugStr(5,'Exiting Menu');
- GetMousePos(TP.x,TP.y);
- MMouse(TP.x-100-random(50),TP.y-150-random(100),5,5);
- wait(540+random(500));
- end;
- function PinAndBankTest:Boolean;
- var
- T : LongInt;
- begin
- if not LoggedIn then
- Exit;
- Result := false;
- DebugStr(3,'Waiting for bank and pin screens...');
- MarkTime(T);
- while (not (BankScreen or PinScreen)) and (TimeFromMark(T) < RandomRange(5000,7000)) do
- wait(100+random(50));
- if PinScreen then
- begin
- DebugStr(2,'Entering pin...');
- if Length(Players[CurrentPlayer].Pin) = 0 then
- begin
- DebugStr(2,'You did not set a pin, but we are in the pin screen... ' +
- 'Next player...');
- Logout;
- NextPlayer(False);
- Exit;
- end;
- inpin(Players[CurrentPlayer].Pin);
- end;
- DebugStr(3,'Waiting for bank screen...');
- MarkTime(T);
- while not BankScreen and (TimeFromMark(T) < 5000) do
- wait(50+random(50));
- Result := BankScreen;
- if Result then
- begin
- DebugStr(2,'Bank opened succesfully');
- FixBank;
- end else
- DebugStr(2,'Did not find Bank Screen');
- end;
- function Open_Bank:Boolean;
- var
- I,TempCTS : Integer;
- TempHM,TempSM : Extended;
- TP : TPoint;
- bankerTPA : TPointArray;
- bankerATPA : T2DPointArray;
- begin
- if not LoggedIn then
- Exit;
- Result := False;
- TempCTS := GetColorToleranceSpeed;
- if TempCTS = 2 then
- GetColorspeed2Modifiers(TempHM,TempSM);
- SetColorToleranceSpeed(2);
- SetColorspeed2Modifiers(0.10,0.60);
- if not (BankScreen or PinScreen) then
- begin
- DebugStr(3,'Not in Bank or Pin Screens');
- Result := OpenBankNPC;
- if not OpenBankNPC then
- begin
- DebugStr(3,'SRL OpenBankNPC failed, finding bankers manually...');
- FindColorsTolerance(bankerTPA,3350053,MSX1,MSY1,MSX2,MSY2,11);
- bankerATPA := TPAtoATPA(bankerTPA,20);
- SortATPAFromMidPoint(bankerATPA,Point(MSCX,MSCY));
- for I := 0 to length(bankerATPA)-1 do
- begin
- TP := MiddleTPA(bankerATPA[I]);
- MMouse(TP.x,TP.y,4,4);
- DebugStr(4,'Waiting for bankers uptext...');
- if WaitUpTextMulti(['to B','Bank','anke'],725+random(225)) then
- begin
- DebugStr(3,'Found Banker');
- clickMouse2(mouse_Right);
- if WaitOption('ank B',1500+random(225)) then
- begin
- DebugStr(4,'Found option to bank');
- wait(100+random(125));
- if ChooseOption('ank B') then
- begin
- DebugStr(4,'Clicked open bank succesfully');
- FailCount := Max(0,FailCount-1);
- Result := True;
- end else if not FindNormalRandoms then
- begin
- DebugStr(3,'Failed find open bank option, incrememnting FailCount...');
- Inc(FailCount);
- DebugStr(3,'Failed ' + inttostr(FailCount) + ' times so far...');
- end;
- break;
- end;
- end;
- end;
- end;
- end;
- end;
- procedure depositPlanks;
- begin
- if not BankScreen then
- exit;
- DebugStr(3,'Depositing Planks...');
- Deposit(3,28,True);
- end;
- function TestBankSlot(text : TStringArray ; BankPoint : TPoint; ExitMenu : Boolean):Boolean;
- var
- T : LongInt;
- Tries : LongInt;
- begin
- Result := False;
- if not BankScreen then
- exit;
- DebugStr(4,'RightClick testing bank slot ' + tostr(BankPoint));
- MouseBankSlot(BankPointToBankIndex(BankPoint),mouse_move);
- for Tries := 0 to 5 do
- begin
- DebugStr(4,'Attempting to test object in bank. Attempt #' + inttostr(Tries));
- If MenuOpen then
- mouseAway;
- MouseBankSlot(BankPointToBankIndex(BankPoint),mouse_move);
- wait(50+random(150));clickmouse2(mouse_Right);
- MarkTime(T);
- while not MenuOpen and (TimeFromMark(T) < 3000) do
- wait(350+random(250));
- DebugStr(5,'Checking Options list for: '+tostr(text));
- if OptionsExist(text,false) then
- begin
- Result := true;
- break;
- end else if MenuOpen then
- break;
- end;
- //If not result then we are not in the correct menu anyways...
- if Result and ExitMenu then
- mouseAway;
- DebugStr(4,'Done Testing Bank Slot ' + tostr(BankPoint) + '. Result: ' + booltostr(Result));
- end;
- function GetLogsUptext(Log : Integer) : TStringArray;
- begin
- case Log of
- 0: Result := ['ll L'];
- 1: Result := ['ak l','Oak'];
- 2: Result := ['eak l','Teak'];
- 3: Result := ['aho','oga', 'any', 'ny lo'];
- end;
- end;
- function FindLogs(var LogsSlot:TPoint; withdrawLogs:boolean):Boolean;
- var
- found : Boolean;
- LogDTM : Integer;
- T : LongInt;
- TP : TPoint;
- begin
- if not LoggedIn then
- Exit;
- if not BankScreen then
- begin
- DebugStr(3,'Attempted to find logs, but we were not in the bank window');
- CloseWindow; //Incase we got stuck in deposit window...
- end;
- if MenuOpen then
- mouseAway;
- MarkTime(T);
- While MenuOpen and (TimeFromMark(T) < RandomRange(5000,6500)) do
- wait(RandomRange(350,450));
- Wait(RandomRange(350,650));
- LogDTM := GetBankLogDTM(Players[CurrentPlayer].Integers[0]);
- DebugStr(2,'Beginning search for logs...');
- FindDTM(LogDTM,TP.x,TP.y,MSX1,MSY1,MSX2,MSY2);
- {$IFDEF SMART}
- SMART_DrawCircle(true,TP,5,False,clAqua); //TODO modify so this doesnt interfere with paint
- {$ENDIF}
- found := TestBankSlot(GetLogsUptext(Players[CurrentPlayer].Integers[0]),MSTPointToBankPoint(TP),false);
- if found or (TP.x > 1) then
- begin
- wait(350+random(150));
- LogsSlot := MSTPointToBankPoint(TP);
- DebugStr(4,'Found your logs in bank at slot ' + ToStr(LogsSlot));
- if withdrawLogs then
- begin
- Result := Withdraw(LogsSlot.x,LogsSlot.y,0);
- debugStr(2,'Withdrawing Logs Success: ' + BoolToStr(Result));
- if Result then
- exit;
- end;
- end else if not FindNormalRandoms and LoggedIn then
- begin
- DebugStr(2,'Failed to withdraw logs!! You either ran out of your specified ' +
- 'log type, Or did not have your logs visible in the atop of your' +
- ' bank.');
- Logout;
- NextPlayer(False);
- end;
- FreeDTM(LogDTM);
- {$IFDEF SMART}
- // SMART_ClearCanvas;
- {$ENDIF}
- end;
- function withdrawLogs:Boolean;
- var
- found : boolean;
- begin
- Result := false;
- FixBank;
- if not BankScreen then
- begin
- DebugStr(3,'Attempted to withdraw, but was not in bank screen...');
- CloseWindow;
- exit;
- end;
- found := TestBankSlot(GetLogsUptext(Players[CurrentPlayer].Integers[0]),LogsBankSlot,false);
- if not found then
- MouseBankSlot(BankPointToBankIndex(LogsBankSlot),mouse_move);
- if found or WaitUpTextMulti(GetLogsUptext(Players[CurrentPlayer].Integers[0]),725+random(225)) then
- begin
- DebugStr(3,'Remembered logs Bank Slot, withdrawing');
- Result := Withdraw(LogsBankSlot.x,LogsBankSlot.y,0)
- end else
- begin
- DebugStr(3,'Did not remember logs Bank Slot, finding and withdrawing');
- Result := FindLogs(LogsBankSlot,true);
- end;
- end;
- function SortSpells(planking:Boolean):Boolean;
- var
- I,TempBMP : Integer;
- T : LongInt;
- TP : TPoint;
- begin
- Result := False;
- if not LoggedIn then
- Exit;
- DebugStr(2,'Sorting the spells in your spellbook');
- gametab(tab_Magic);
- MarkTime(T);
- while not (GetCurrentTab = tab_Magic)
- and (TimeFromMark(T) < (RandomRange(16000,20000))) do
- wait(150+random(50));
- if not (GetCurrentTab = tab_Magic) and not FindNormalRandoms and LoggedIn then
- begin
- DebugStr(2,'Failed to open magic tab for casting PlankMake');
- Logout;
- NextPlayer(False);
- end;
- for I := 0 to 2 do
- begin
- TempBMP := GetMageSortSettingBMP(I,planking);
- if FindBitmapIn(TempBMP,TP.x,TP.y,MIX1,MIY1,MIX2,MIY2) then
- begin
- mouse(TP.x,TP.y,3,3,mouse_Left);
- DebugStr(4,'Mage Sort Setting ' + IntToStr(I+1) + ' Switched');
- Result := True;
- end;
- wait(150+random(75));
- FreeBitmap(TempBMP);
- end;
- end;
- function LogInSlot(LogDTM,InvSlot:Integer):Boolean;
- var
- x,y : Integer;
- box : TBox;
- begin
- if not LoggedIn then
- exit;
- box := InvBox(InvSlot);
- Result := FindDTM(LogDTM,x,y,box.X1,box.Y1,box.X2,box.Y2);
- end;
- function GetLogArray(LogDTM : Integer) : TBoolArray;
- var
- I : Integer;
- InvArr : TBoolArray;
- DebugLine : String;
- begin
- if not LoggedIn then
- Exit;
- SetArrayLength(InvArr,28);
- DebugStr(3,'Finding which inventory slots contain logs..');
- GameTab(tab_Inv);
- wait(1000+random(100));
- DebugStr(3,'');
- DebugStr(3,'Logs Identified in inventory:');
- for I := 0 to 27 do
- begin
- InvArr[I] := LogInSlot(LogDTM,I+1);
- if I Mod 4 = 0 then
- begin
- if length(DebugLine) > 1 then
- DebugStr(3,DebugLine + '|');
- DebugLine := '|';
- end;
- if InvArr[I] then
- DebugLine := DebugLine + 'L'
- else
- DebugLine := DebugLine + ' ';
- end;
- DebugStr(3,DebugLine + '|');
- Result := InvArr;
- end;
- function ClickLog(LogSlot : Integer) : Boolean;
- var
- T : LongInt;
- begin
- if not LoggedIn then
- exit;
- DebugStr(5,'Clicking log at inventory slot ' + ToStr(LogSlot));
- MarkTime(T);
- while not (GetCurrentTab = tab_Inv) and (TimeFromMark(T) < 4000) do
- wait(150+random(50));
- MouseItem(LogSlot,mouse_Left);
- MarkTime(T);
- if (length(Players[CurrentPlayer].Pin) > 0) then
- begin
- while not (PinScreen or (GetCurrentTab = tab_Magic)) or (TimeFromMark(T) > 5000+random(1000)) do
- wait(150+random(150));
- if PinScreen then
- InPin(Players[CurrentPlayer].Pin);
- end;
- MarkTime(T);
- while (GetCurrentTab = tab_Inv) and (TimeFromMark(T) < 4000) do
- wait(150+random(50));
- Result := GetCurrentTab = tab_Magic;
- end;
- function ReadyPlankSpell:Boolean;
- var
- PlankMakeDTM : Integer;
- T : LongInt;
- TP : TPoint;
- begin
- Result := False;
- if not LoggedIn then
- Exit;
- PlankMakeDTM := DTMFromString('mggAAAHicY2NgYPjEBMGvgPglEP8C4i9AXMDIwFANxKVAnAfEuUCcAcRHpicCdTFiYFYgiQ1jqoRgCAAAGecKRg==');
- DebugStr(5,'Selecting the PlankMake spell...');
- MarkTime(T);
- while not (GetCurrentTab = tab_Magic) and (TimeFromMark(T) < 4000) do
- wait(150+random(300));
- if not (GetCurrentTab = tab_Magic) then
- begin
- DebugStr(2,'Not in magic tab, possible random?');
- If FindNormalRandoms then
- DebugStr(2,'Found randoms')
- else
- DebugStr(3,'Did not find randoms');
- GameTab(tab_Magic);
- end;
- if not FindDTM(PlankMakeDTM,TP.x,TP.y,MIX1,MIY1,MIX2,MIY2) then
- begin
- DebugStr(2,'Failed to find PlankMake spell, attempting to resort spell tab...');
- SortSpells(true);
- if not FindDTM(PlankMakeDTM,TP.x,TP.y,MIx1,MIY1,MIX2,MIY2)
- and not FindNormalRandoms
- and LoggedIn then
- begin
- DebugStr(3,'Failed find plankmake spell. Either you did not start ' +
- 'with runes in your inventory, or you ran out of runes.');
- Logout;
- NextPlayer(False);
- exit;
- end else
- FailCount := Max(0,FailCount-1);
- end;
- mouse(TP.x,TP.y,3,3,mouse_Left);
- FreeDTM(PlankMakeDTM);
- Result := True;
- end;
- procedure antiban;
- begin
- DebugStr(3,'Searching for randoms...');
- FindNormalRandoms;
- if FindMod then
- begin
- DebugStr(1,'Found a mod! Logging out to grab a drink and calm down...');
- logout;
- wait(20000+random(5000)); //Make it seem like we had to walk away...
- SelectWorld(RandomWorld(true,false));
- LogInPlayer;
- end;
- DebugStr(4,'Might do antiban...');
- case random(750) of //TODO maybe raise it?
- 1..5: begin
- DebugStr(3,'Performing PickUpMouse...');
- PickUpMouse;
- end;
- 6..30: begin
- DebugStr(3,'Performing RandomRClick...');
- RandomRClick;
- end;
- 31..175: begin
- DebugStr(3,'Performing HoverSkill...');
- HoverSkill(SKILL_MAGIC,false);
- end;
- 175..350: begin
- DebugStr(3,'Performing SetScreenMouse...');
- SetScreenMouse('rand',SRL_ANGLE_HIGH);
- end;
- end;
- end;
- function hasLogs(var logArr : TBoolArray):Boolean;
- var
- TempDTM,I : Integer;
- begin
- Result := False;
- if not LoggedIn then
- exit;
- TempDTM := GetLogDTM(Players[CurrentPlayer].Integers[0]);
- LogArr := GetLogArray(TempDTM);
- for I := 0 to 27 do
- if LogArr[I] then
- Result := true;
- DebugStr(3,'Inventory contains logs: ' + BoolToStr(Result));
- FreeDTM(TempDTM);
- end;
- function CheckOutOfMoney : boolean;
- begin
- Result := pos('og into pl',GetBlackChatMessage) > 0;
- if Result then
- begin
- DebugStr(1,'You Have run out of money!');
- Logout;
- NextPlayer(False);
- end;
- end;
- function PlankLog(Log : Integer) : Boolean;
- begin
- Result := False;
- if ReadyPlankSpell then
- if ClickLog(Log) then
- begin
- Result := True;
- logsPlanked := logsPlanked + 1;
- Prog_PlanksMade := Prog_PlanksMade + 1;
- end;
- end;
- function removeFromIntArray(arr : TIntegerArray; toDelete : Integer) : TIntegerArray;
- var
- newArr: TIntegerArray;
- i:Integer;
- found : Boolean;
- begin
- SetArrayLength(newArr,length(arr)-1);
- for i := 0 to length(newarr)-1 do
- begin
- if not found then
- found := i = toDelete;
- if (found) then
- newArr[i] := arr[i+1]
- else
- newArr[i] := arr[i];
- end;
- result := newArr;
- end;
- function InvToInvPoint(I : Integer) : TPoint;
- begin
- Result.x := ((I-1) mod 4)+1;
- Result.y := ((I-1) div 4)+1;
- end;
- function InvPointToIndex(Point : TPoint) : Integer;
- begin
- result := (Point.x)+Max(0,(Point.y-1)*4);
- end;
- function randNearInvSlot(Slot : Integer; slotArr : TIntegerArray) : Integer;
- var
- x,y,SlotCount,i : Integer;
- actualSlots : TIntegerArray;
- tempPoint,SlotPoint : TPoint;
- begin
- SetArrayLength(actualSlots,8);
- SlotPoint := InvToInvPoint(Slot);
- writeln(SlotPoint);
- for x := -1 to 1 do
- for y := -1 to 1 do
- begin
- if (x = 0) and (y = 0) then
- Continue;
- TempPoint.x := SlotPoint.x+x;
- TempPoint.y := SlotPoint.y+y;
- if (TempPoint.x < 1) or (TempPoint.x > 4) then
- continue;
- if (TempPoint.y < 1) or (TempPoint.y > 7) then
- continue;
- writeln(tempPoint);
- writeln(slotArr);
- writeln(InvPointToIndex(TempPoint));
- if InIntArray(slotArr,InvPointToIndex(TempPoint)) then
- begin
- actualSlots[slotCount] := InvPointToIndex(TempPoint);
- Inc(SlotCount);
- end;
- end;
- SetArrayLength(actualSlots,SlotCount);
- for I := 0 to SlotCount-1 do
- begin
- SMART_DrawBoxex(false,InvBox(actualSlots[I]),clYellow);
- end;
- writeln('-----');
- writeln(actualSlots);
- writeln(SlotCount);
- if SlotCount > 0 then
- result := actualSlots[random(SlotCount)]
- else
- result := slotArr[random(Length(slotArr))];
- end;
- function logArrToIntArray(LogArr : TBoolArray) : TIntegerArray;
- var
- I,currLength : Integer;
- intArr : TIntegerArray;
- begin
- setlength(intArr,Length(LogArr));
- for I := 0 to length(LogArr)-1 do
- begin
- if LogArr[I] then
- begin
- intArr[currLength] := I+1;
- Inc(currLength);
- end;
- end;
- SetLength(intArr,currLength);
- Result := intArr;
- end;
- function makePlanks : Boolean;
- var
- currIndex : Integer;
- logArr : TBoolArray;
- InvSlots : TIntegerArray;
- begin
- Result := False;
- if not LoggedIn then
- exit;
- if BankScreen or PinScreen then
- exit;
- DebugStr(3,'Getting logs in inventory...');
- if hasLogs(LogArr) then
- begin
- InvSlots := logArrToIntArray(LogArr);
- gametab(tab_Magic);
- while Length(InvSlots) > 0 do
- begin
- currIndex := random(Length(InvSlots));
- DebugStr(5,'Planking log at slot ' + IntToStr(InvSlots[currIndex]));
- if not PlankLog(InvSlots[currIndex]) then
- exit;
- InvSlots := removeFromIntArray(InvSlots,currIndex);
- end;
- end;
- {if hasLogs(LogArr) then
- begin
- Inc(Reps);
- GameTab(tab_Magic);
- writeln(':99999:' + tostr(InvSlots));
- while length(InvSlots) > 0 do
- begin
- writeln('::' + tostr(InvSlots));
- SMART_DrawBoxEx(true,InvBox(currSlot),clBlue);
- currSlot := randNearInvSlot(currSlot,InvSlots);
- if not PlankLog(currSlot) then
- exit;
- if CheckOutOfMoney then
- exit;
- writeln('deleting: ' + inttostr(currslot));
- writeln(InvSlots);
- InvSlots := removeFromIntArray(InvSlots,CurrSlot-1);
- writeln(InvSlots);
- end; {}
- end;
- function Bank : Boolean;
- begin
- Result := False;
- // ClickNorth(SRL_ANGLE_HIGH); testing disab
- if not LoggedIn then
- Exit;
- if Players[0].Booleans[0] then
- if not OpenBankChestEdge(SRL_bank_sw) and not Open_Bank then
- exit
- else
- if not Open_Bank and not OpenBankChestEdge(SRL_bank_sw) then
- exit;
- PinAndBankTest;
- depositPlanks;
- if withdrawLogs then
- Result := true;
- CloseBank;
- CloseWindow;
- end;
- function findLodeSymbol : boolean;
- var
- LodeBMP : Integer;
- TP : TPoint;
- acc : Extended;
- begin
- LodeBMP := BitmapFromString(9, 8, 'meJxbVJs7KSivxDIYgoDsRbW5QHRl' +
- 'XtP0Cb2///wGijja2QFJCHtPZxNc5cPHD4GCQBJiApCEGwUUhyCgX' +
- 'jSp3VvXvzx/AEjCzYFIAQWBJMQuCBtiF0QWKA5BcC1AF0LcA7cdwg' +
- 'aKAxEAIBhsCQ==');
- FindDeformedBitmapToleranceIn(LodeBMP,TP.x,TP.y,MMX1,MMY1,MMX2,MMY2,6,0,true,acc);
- DebugStr(4,'Found lodestone symbol with an accuracy of ' + tostr(acc));
- Result := acc > 0.27; //0.277777... was lowest i got by dropping stuff around the
- // portal on symbol, in case someone tries to make
- // the bot fail...
- FreeBitmap(LodeBMP);
- end;
- function NearBank(Walk : Boolean) : Boolean;
- var
- BankDTM : String;
- BackupBankDTM : Integer;
- TP : TPoint;
- a : Extended;
- begin
- Result := False;
- if not LoggedIn then
- Exit;
- BankDTM := '80:79:3:1:7:117:75:1:7:89:44:3:7:123:91';
- BackupBankDTM := DTMFromString('mbQAAAHicY2WAAHYgVoFiEFsfKq4IxKpAzArE/36' +
- 'wMKhEiIFxjCEPGOswMjCIMKBioBADExoGAwBZgAWs');
- DebugStr(3,'Searching for bank...');
- If not ObjDTM_Find(BankDTM,TP.x, TP.y, true) then
- begin
- DebugStr(3,'Failed to find bank on minimap... trying symbols...');
- if not FindSymbol(TP.x,TP.y,'bank') then
- if not FindDTMRotatedAlternating(BackupBankDTM,TP.x,TP.y,
- MSX1,MSY1,MSX2,MSY2,Radians(-5),Radians(5),Radians(1),a) then
- if not FindNormalRandoms then
- exit;
- end;
- Result := (Walk and (Distance(TP.x,TP.y,MMCX,MMCY) <= 72))
- or (Distance(TP.x,TP.y,MMCX,MMCY) <= 16);
- if Walk then
- Mouse(TP.x,TP.y,3,3,mouse_Left);
- FreeDTM(BackupBankDTM);
- end;
- function WalkLodeToBank : Boolean;
- var
- clicks : Integer;
- begin
- Result := false;
- if not LoggedIn then
- Exit;
- DebugStr(3,'Walking to bank...');
- while (clicks < 8) and not Result do
- begin
- inc(clicks);
- DebugStr(4,'Radial walking once...');
- RadialWalkTolerance(5197908,112,85,53,-1,0,50);
- FFlag(25);
- Result := NearBank(True);
- end;
- end;
- function TravelBank : Boolean;
- var
- T : Longint;
- HomePort : TPoint;
- begin
- Result := False;
- if not LoggedIn then
- Exit;
- ClickNorth(SRL_ANGLE_HIGH);
- HomePort := Point(571,229);
- GameTab(tab_Magic);
- MarkTime(T);
- while not (GetCurrentTab = tab_Magic)
- and (TimeFromMark(T) < RandomRange(5000,6000)) do
- wait(RandomRange(150,450));
- if not (GetCurrentTab = tab_Magic) then
- DebugStr(2,'Failed to open magic tab... Attempting to switch again and resort your spell book');
- SortSpells(false);
- Mouse(HomePort.x,HomePort.y,4,4,mouse_right);
- while not MenuOpen and (TimeFromMark(T) < RandomRange(5000,6000)) do
- wait(RandomRange(300,500));
- wait(RandomRange(350,550));
- if not ChooseOption('ele') then
- begin
- DebugStr(2,'Failed to cast home port');
- exit;
- end;
- MarkTime(T);
- while not LodestoneScreen and (timefrommark(T) < RandomRange(5000,6000)) do
- wait(RandomRange(160,1000));
- if not LodestoneTeleport('edgeville') then
- begin
- clickmouse2(mouse_Right);
- MarkTime(T);
- while not MenuOpen and (TimeFromMark(T) < RandomRange(6000,7000)) do
- wait(RandomRange(150,300));
- wait(350+random(150));
- if not ChooseOption('ele') then
- begin
- DebugStr(3,'Failed to right click teleport from lodeStone screen');
- exit;
- end;
- end;
- while not FindLodeSymbol and (TimeFromMark(T) < 20000) do
- wait(RandomRange(300,600));
- wait(RandomRange(5500,6500));
- WalkLodeToBank;
- end;
- {$IFDEF SMART}
- procedure PaintProggy;
- var
- TPA : TPointArray;
- BMP,w,h,tw,th,I,II : Integer;
- DebugLines : TStringArray;
- begin
- DebugStr(2,'Painting Proggy');
- BMP := BitmapFromString(510, 133, 'meJzsvYdXW0m2PvpPdLuN3c6h' +
- '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' +
- '07jGGjhPPvAOo0sU2eSUHtL5LgqcsFtzlU6M8X61OLyZGYpPP+cKn' +
- 't5+1xR84FQIs3QnsCVRabnZ8tMFPb7NaA5B4n1lkf5/P7ZkhyBAv6' +
- '5zN1nHFyqW3jccv9d5yNiw2Gg69FPlllig2JO62JR0zScUq6zF24/' +
- 'ZL6TRYvKZeVq6lONBxZA3hA5UoWa5CIB2KnU7Fa2jtaMb/iX9BM79' +
- 'u8t6SfdfpTSuvVdw92nltFVSetkvK6twDUC/zyDJ00rFqVzxdmlco' +
- 'a+gfIOL7NhPEflggHKrKiGTWToGzmu3sjK5gPWuWcN+sxW2NJFWsQ' +
- 'plf33Lh+cbz/L0kE5FOa/zDVFFfDPfnUjLIfNaxz9yBvZysF1GPc0' +
- 'Q8d/t1GiZPXJIj36xkXBfjhwsqAqoVQlapm4JaPus/FFkYHnHo3nV' +
- 'd6IS9td4qu0ip3toH3z8AqMJsI02+T9qp7FYs+stH+NVz+Ya+ku1L' +
- 'iSWUJYdtxy7KMpiCA+FXyc+Zn1Y/l6N2Uq2I+QIoOgaTSmWEph/hR' +
- 'da1KZLlxSi4vnSmpY7glZ990CXSN8WnxW9q0oRh58ybUGuoIc90R8' +
- 'sQSeXkZF9f+E+V1DxOs/XBnJ/ORU1alic5K2lZgtIdfGiJQ8Q32lZ' +
- 'wjc27j8HK4+ubU+0PvsZxg4zcTjHNd4lLr9uri+tGOxanCNZmjOqj' +
- 'BkVxKm6pLgwHKjOwo3oom4gmIYFK7epWgaMA8tNyw921/YSR7U5Xs' +
- '/mnzOC/vSsvFt7fwjcFdh7WiyoZNT006XGwslOppUz6w0FVu95EzX' +
- 'FVFdmm9LUtvKW8XAmrRnWdq7LOu7p+hfrRq+H7hDBXQIgTneeZ53t' +
- 'qLzLr91NlTeTFHOV6VW35towsCH46foKly5eDPiSmR8Snl1ovaDex' +
- 'Y57n1bNbRO2TTjM9+GD4na1gS1J0HlSdR4I1Xe/Y7hm/C/JbLDATj' +
- 'POtA3wPxhedxoVgW3fviLQ3lGqlrFbdOxRaKYHEZWqZyw1I29xM5I' +
- '0w9gNN0rL6Bh/cgGTHO+awRhSKGjn2lwZ5bKESAgbjr20RREEJ8KP' +
- 's78NNdwpryG1TB2JC1EyuqjGKIb6QwK8ydrvUki3f5Kfrr+PN+WpG' +
- '/Ptw/m2AauB0wWkTjDtYpbp2MYwtCEdDiuN0XOI4vzkTmxf68PllP' +
- 's/aNVGK6haEYZbMfhJ7xgfvjtSQxefrmab2pUekdqxtZ3nXPfpvqD' +
- 'b/4x8PKvtrsvq8YeBm5lCZsVo/Ik69rwSW49EQhm3UgiVx6dTcxFs' +
- '1Q10voeQ/9i/cKT3Ye8b/7hZ35yzoc4ZebZzx0Pf2xefa0dXhf1rF' +
- 'wvdwncIzxLM7e6FraDZ2zgu3rIjZT9u9MQk+eBM110PWXLhX18eDY' +
- 'M7npsUTn0E8j8ITQVzMHViNhrkcR7UqWeicPPMkg0bP6YYOhBueBz' +
- '2OvzPPsloTNG085vGk8UqMPzOKHZ7AS+khOwAx6Jm2W2xKOYPzSrK' +
- 'OTy17Fcebal57DAHPdkhtQcV1iCIIg0qYjRaud2mlZfIUzzrL+tXf' +
- 'wGcU2ufbC8fTbPPsC2ePPK1Yib4gs5xz6aggjiU8HHmb/QNZwhswg' +
- '9k0fOBhTY+64l515Pzqcyv86bXF59gbKo48PURKsdhtt5Iz79Znxa' +
- 'SmkVp2GkxDvLaZ4GipuIPW3KOhZYDeMwQJymycAnvFmOEcvCS0X/P' +
- 'b57NCKPG8euoK7q9DF/dBad3HmAnJaxTWyARjof/Z48SwsOOepuX3' +
- 'oVyPwfl/mmtFHcPhPHKo/KKEhjlzGrzGJXR3XfPPz51s33B5jft2N' +
- 'n4KNexBqmqYfqsQcnGNUV3csi95DI0Sqyt4qd7cLGwQ9tof8/xpcc' +
- 'i7Bl8g6NH8OkMn88R3ozLvVWfFpkJi27yp5h7j6ydRQj2+SeooGIh' +
- 'Z9fqj53Izzk/OWT5y7dzmYXN44fZv4EgeYw8yMxbrmVThN5JxFeUX' +
- 'KGk0Duqrfr8/tm56BYj+/UsLYH3yNu0o9uMhomalffZVr7S+ydhbL' +
- 'qTJ4UYd2xj6YggvhU8HHmL3AOJfGrkoSa2xW1lHENBi6pH7oan3Uz' +
- 'jUad7dG3pooNCR+YI6Ig1dxf0T4bTSu9ficBPn9sfnG21JCvchRqi' +
- 'B11citrMisMqUJ1YokirrgiTWIKXNUZo+usHFxPEmjCsoouh8fEss' +
- 'qP8PmFKuIdWJawUKITWJtV7eO2yfv+R7Hk+a3w/F333iiGt058yKM' +
- 'OwCWBHVyaLNSEJmXvMn+lKZD5Qe8U5ifnfMgVnt1P/ti0/lY1tHG1' +
- 'zAniKm+dljYPgt+A8ubRX8P8X3JrBN2rV0RUzjwMhCqsOuItuWsxy' +
- 'TFM0ZmAbTNP0lTJ/MrwlJzI9HxiFU25tqJj/mzJEQ90/G9SB0LQOh' +
- 'Oexz118eqpC1dOX/oqIr/kSJ//qNkeJbGT0uVrF0OjEnhV3IaRw0t' +
- 'n0wyduSpXlqCSrbZJ6ruhWNfsQ/IsMARN4H/j5Lagc8m1/n2cppVf' +
- '28uoMucIFClFgmMfTUEE8angF3x+5xD4IbaoPO/Qy61fC2piiqUhl' +
- '64jeKes3EvRt6WIDWUtkwWOwQ/NIZC8hPwlnXPk1ivEqvvU3PiC4j' +
- 'SumNhIx7ejTrawMo1THl/IvZNFC0vOBv9f4hzYV03asxxRwDt3PdT' +
- '3JpckUtZAYf60Mk1sPjutWESXG8psLZqOScfU1v4inLc+5n/zj45H' +
- 'f9BP7Uj618IrPUdy75dc6xfM6qhKt8AzAdr/Oi6NfCmYnO0BQRn6F' +
- '+sWHh+Y7Qk4n2V3W7w3/+h7/jPCDdP0Tryu8zTHAudf1jZV5R1Rek' +
- 'cqvBPhv+IIy0hVm235tX7iQYzKc8R2Ez5cFdWmm7pgoaDb63GpVyN' +
- 'ioZzU6o4A5ldDM5A/Lp+dzORn8KQ0QzOj4YDffvhoNhK3pI0wWKFZ' +
- 'zDNXvibfoUMPKfFMUXrIjTIbQj+KV3CyUBlVyL9wI+xSaCSivHSJK' +
- 'd1EjTVgC/ieyUJ9I1NpLXe2abum7ZObTfdeEsy/8/v27d+ZZh5pJh' +
- '4VeeYS9R2Chn6W2p4nUqGJj300BRHEp4LAvTpdK2/OFPsO6Wbq4Xy' +
- 'epGszje0ppVXxLDGnbijEt93KLgqUiVX1GPtfXr4ensO+yFQH/huv' +
- 'qI9jV8QwhHDRRa3T4P9wad2lElOYpC5J25pr6wchM2qHy9tmM2XWe' +
- 'HZFaHLOzbhU+J8xucxUdhlGMbxotsYOMKvMBRItAn9cTyjkpgnVpw' +
- 'uJbc3gspJllTQMRxaUXLl951pUfAJHcoVTHeLbeJlEtKw2Q6RNYvL' +
- 'JHYbJ5ZfOme2WjW/hexML78H83/6LJGTP/ffGyYfy3iVhx0Kqoeuq' +
- 'wEbu2wx2vcK3FjoHJR1zaRXGGGYZKOtGTDIEhkjEztLVtbtPeO8+J' +
- 'V/j3X3CG3gm48E5H9vCs3zXCFRNrxut7JrXdBIHb8nap2+IHNA8oX' +
- 'yG9iRdQ9SCpvZX9qSv4jTXsKhtNkNmAW1yGkbSjZ23yh1nWbqTNOW' +
- 'XDM01QU2yvo1VOwRRY5mim4mZCKYgLZRzlq4Moe1q5lKxPlOsS2Tw' +
- 'oFgoJ79czdDVy3uWUw2diZrWOE3LbbEzUlaPQq/wTImallM01S7oq' +
- 'nxrVzxM8O0YcD75fnQSV0Z39BKZ09RoHTQBPm/wjUll2ssszWn8pB' +
- 'NViKl0s1wDZHyHFocpT+FXittmr/Ktu9Xcw02Ro7R5nKGrI7ZFah+' +
- 'vGVtvXH5Onv8O2Oaf6qceXSq1FUIV7iGuvo4m1WfypMc+moII4lNB' +
- '4P78HTs/Wee+0Q2vy7vmy9xDHGtrgcqRVCQkdgbgShN5ikSuLJ4jj' +
- 'Ssmdi2+Q+Nfi04i9j1OyIgvrkgpVaYK1alCDT6JXXMzCsOSsiIzac' +
- 'm757PoiNXve8DPNJEW0URUFh3DH4hMzyd2TvbRPrFHgdldZvOKHG3' +
- 'CGg/P2AATwJAbwU45Zco8hTVHbsmsMCCHFIESRd9OyQlNSEe8EFvA' +
- 'yRRX51bW5CvtQF5lDbHJG7cCbnlBBbFpA/HKVd8C5ZUrgFx7A0pxr' +
- '7ywjG3IO6bhSXKcPYq+Fc3olqRrIbvKjgr6ysol58ZRHARO54rJTd' +
- 'vU7RPE44OAVZ1HHMXuX+fz/OfWrR+ss4/1o5vaoVXD0DKk0vfOqbt' +
- 'mUDQ8fyi/xNHFNLhRi4yKalTTp3w5AXzhKSBJWGoeLGYss4zcRBpe' +
- 'Nz7xnTiDAG3EKiftKQKT20mZkWl5cYVcQjmKPeUorJmlCnB+rkhJk' +
- '1VD5xx9HaemlWVuYegboDo0UxK/EhlG04Xw0iMLeEBUAR/fI/K4X9' +
- '1JJDmftNfJbFGuwkJkW2XLkZlxL7oBIWRaQQyjzHcsAiFVAvoPWxy' +
- 'eXgDtEa+eFXJSOeIcuRlNRrSpxJherkezontkSY15ihp6lXl/c4y7' +
- 'T9FqUC+xROr+d+bpHe3welX3gqx5CGlg1lGRYx9NQQTxqSDwTC44q' +
- '61b39UvfmMaWlZ4hkrNTXS5Ef52SpEggcaNzWfDBGDA3smigagj0n' +
- 'IxfvElOoseV1AM7zGZJSRQJMB3DOr4gmIAN+InvO4kZik+8R1X4go' +
- '5ZG4xOQwgzrfbGMHPEi1H6yCPfMV4V7WN4RPutKS+W2RvhTkAexcp' +
- 'rYWy6hyRMr2kAmXFF3LBwCgIOaRzyrOFlfkVmkKpvkCiyxNrkAyEg' +
- 'GyJzZ9tLVUtI5aRe4Rn/uB7ck6GeOXq3b/9eyx41t+6Zh9W985LG3' +
- 'tLTG5mdWOB2pUtNcTTeP5ag0VRZVQQtF8o0cEwyd395Du8LTAoZCj' +
- 'x7b/857AH6nnX7X/5V3J5PwyNa27HNnkfUpmGlowDdwn+75iUNw1A' +
- 'CcQkRrkaPjl0RZSelofSSQEAKB+sC6MJYg9NzCCB7zC4uEj862+dP' +
- 'BahHK44p6wqX6KF9kjAT4Y9ZSmtiFlAngiIRI5WgdXD0bnwbwZPCt' +
- '1GZRQgW4QM8NIRVZGbIYPwyZeOCc73xVMwrHSFiam04BNFEMssWUL' +
- '0CpQelVmITPCJKpDvrJHNjcbKEVYW7MmDVssWKNK4YrIXkTN+kA16' +
- 'ULaOgvnRLb2+VzC6Hv8B/I+oDVcsI6uajsmK2s6S6jqY4GMfTUEE8' +
- 'akg8Bxe0u9tWn1ln9zUdc/AQ+abGuFNFRA72CtzBIrsUjmGOSg6rV' +
- 'gE/xzA+CX8Rt+BUGASGkG5WjjnuIL0BISV+E78FFbiJ+wIonLkgBu' +
- 'JTHwvMZGzDcTWBMYG8sxBEKB5aBnjnaTE6r55bdc0GIC0AmADnqEe' +
- 'ZA5nlSyLoPcKDcY+ogPwGP4FFXB0TnLKCPYCsYPM3afvmSVmjFdf7' +
- 'R+h8u7fxLNX/x4LvpetrKNr8OHFrg6SAwlGKhYR7yDDivleRsZP1A' +
- 'W0CYGl9T3kwcGg8f29On2Pd/20T+p5f2Jtb7YfVOZefg6T4ZjaQsi' +
- 'AclFf8L+mcwrWBDKz1bZ8sSazRJLCEoItSQEI0EsI+L4nFHIJOxsA' +
- 'XMF1pIfJJqxhqRyZEO8LaB3QDNoUNhSSE+tIidiqBTqHYqF2aLjSM' +
- '1RR14XrpBeNmiIr2A6QNmgcICx1HgsXiWmiUjlsH3kKJEwzbAeaBv' +
- 'lD5+gJaHFITjQ0ugoamlOOtkbrQ3WQB41FyGNsEFiaAAiGn7hI9B+' +
- 'xBp9kf0BzQxs14xvkMfewzsSbd4//0Lb9A9rRObMNdcGgo2jkcOyj' +
- 'KYggPhVQfdEnfwQdEd7U6Cox8+zuI51tECn4k9zNHiMdzhiYASBmC' +
- 'bQO/Is08BuBUh+rkGvUifQ65/6NGjuxE36VGQOcLjcAIE/8xHUMW5' +
- 'GjDXQHhidf2KxbeAwSBuoXnhDcOP0A3Ii/DH0LEKyyZRiUS8qGe1F' +
- 'iqW+CCCQGgwWx8QnSAHuLne34omge1HVNg1pJ15HwzH2Pdw/ssfDi' +
- 'z2BjYsX43A7sDiIO5AYe2zUxYg2YME+kIk0MqkNaE9D+Li9tfUfMI' +
- 'Pm2bvBP9Ryt6rf/RDIYmo6HP8J3JTYO8tUR4cZuNYeWIS3YGDqBbq' +
- 'E0CIByYeb2IdYcgb2/kBjkCQ2jjSAqwcyONugBGoYqkDO+QHh8QpN' +
- 'wm2FqjYNLKBdEiiZAGpJLiaKletQaNA4LAuALoQQwc6WJOC/A2gxL' +
- 'gUxgK9EuqvZx0nZAOegD6CoQAE0MEL1FaUVb4y5olWisui5IAt4G/' +
- 'Dbd36BkzjBGEAkMTzzh3f4BDQfbingNJgDtCLXD5qJLwGyhPxz7aA' +
- 'oiiE8Fh31R+MOetTe184/Ak3C2MaKJgemni8ZeklTBigC+4Ar+RRo' +
- 'MUgLeEYx9JCZXKvrhv4uYVbC3YowTM/m+dewYs7gFvAHywUAGDZKv' +
- '7ZDrt/Hp9b3Cg4uN8JDnH8EuwDARu7j4NlgG7QAoFwwGHobMoAJ84' +
- 'ju5CTO+EDtzjm/AmqBqu+9w7e2lTL5sRTznff13UAr8dhTkmt2Bld' +
- 'H66BfmAzwGstplJEsTWBS1hmmADAgiwD+QEI6o/yhG0uE/kvn3Vf3' +
- 'iz7AUKI6o3dobMBtMALJC9UF0NWPrqAWIFDr3nSDgRbmwbnwfSn0g' +
- 'vGWftd2Hz38mr0NmyAmFQ/mEcjqnoBPoAUoGIDm5Ew5CKjQ0aoEqk' +
- '9YHpgcXUXeSw8mid6u/b2RbIBVyhhKIAG14BerFjRAb5gOxFa5DdW' +
- 'hZ8gQEgOgwdV24gruQM6qGZJAH9wIQCfmgBUkrQFoEoksM3CU1TO6' +
- '2Adrvf/kXqA4tRc75wDdAAgiMVj720RREEJ8QKCtPiDH18EcwLcYU' +
- 'yQOgWWJ4Di0D5HT0Lm/sUYdl5B7YA6MeIKcsyJR+EGyDu3zPMf2ED' +
- 'OALhj8ywS0Yv2BmECDxIO/hjyBSeMUQBp9kgI+BD55EyA+e9JsAEA' +
- '5R4ugqueUyOBMM5gPhPyNPXEQyXAF7oFLIGRn6t9PcXXK/t96edMV' +
- 'RCooAA+NeklJAUyAi2Bd8gtPgkJOmhHi39N5L2CaS9klrQpnhD9Rz' +
- 'oKphaEjy363X1neoGvmaKvIklY8iIACUBkXBBEMMlL6L9nHCze6YJ' +
- 'OBTJvkdF3ev+0we2B45QDmkEqBhAKrzkTwBfCc3RkCVUTQ+YYCQhj' +
- 'CvI/fQNKgsciOeufgsO76Q5xrs5jy+ATkRSeGu3Y1PScs1TgRo0BK' +
- 'SQX4ShFHuX0RnQM7oV0iG0nEvgBKJzjZ5n+hsvs5DWhNcJGh/41uy' +
- '4YiX717/HcAXImgC+e/NmKGtj30oBRHEJ4TAlSck+4FvQUckx2I4g' +
- '2bJiRdi7gXjdOEJyR4kjeAKsd0xOfB9Yx8/d1MGYuEJbvFzMgmSqJ' +
- 'EJimhefU0s23v4I8gQPjnEIMc4CfwknL3nP2O8I9KnuMpk6fDVcQU' +
- 'sAYDEkCGuIAERQWx8C2olnManf/LP8/gpmkL+pD+J/HEvyWO7k/Cj' +
- 'q/jEd0gOmVFii89IQWDydeDdIGJvSc+Rqt4vy7ealNw1iLBuT/4I8' +
- '4GqkUvWd5XvI1KoyG/F/MBPAPzsVyYB/PRj+gFU7Sd2aANKQKVIkC' +
- 'oidOWLrVAiyoV+yNKRAOnRjiQhE48hyHInNkhLSpD23M6uyVh/S+Y' +
- 'AtG3/QEi+/pbYY+fuU6KfzJGhxA75hegwC0/I/bGJxkLpm+8pYR3Z' +
- 'YYjM/b1i5/e7tP/mH/5XMMiWgsbIF3tx77EPpSCC+LRAZb9XfwPHk' +
- 'ptYgtnIEY3xRYLwTn0OKjlmiYvbPyCZH5T0+3dtvic4x0c7fnj3mI' +
- 'd8eEdw/qu/Ea/W+lbdQB4C+PLu3+TyS3LI75oA3zIPf7nEwo9HPxH' +
- '8SeLRTySVkQtCkJ7MnEL7B1628lWf8MZ91ce9kI1kFdKo7doXcB1p' +
- 'pHzTzqTAv0j7R6iarNGeXSPnMVA0CI1UPhkL7BI1fPK1N2BCgPxOu' +
- 'Ogke++BvOK/TuqWaB3fYkhIS+5NumtlfCAvokSUu1v6s5/3I5G9MO' +
- 'RA0XuZk69W+aMzcgbe322IRve1eCB2+4yvw/hF8od1pN0hews+8Z3' +
- 'YT5VUMvnCtW/7a7JL7LbUiz/7e8Kxj6Mggvi0QGU/nzsKQiPdbGJE' +
- 'BwJjPBDPfiZIg+SNPerYTxlwC0YoOcaJ8U7CN+pJ2iEDef/o3p2KC' +
- 'QB5ytW+CfARJlkiWTpJnrhIYpdIfSCuv/rb7jJOMnPKYvvAbRZ8+R' +
- 'Pmz8cqkJO0IIR9odgRX2BCmJK9RwaUbD+u6t1zu779F+nHolDStAX' +
- 'GOCSX+iOCA/BTdwAOXCTV+2xXOYRaXv2NwJ5+/Bojd67bBUr31X03' +
- 'GDloKfz5BzYcoVsyNPNlTt7rn6mjwH8jkgWKtDuBH9jBnu2mIV19U' +
- 'sn+RzOHO+qxj6Mggvjk8CFG2qejD4NME4gPJvbP3vjG++5PXw5+J/' +
- '9ICg0k50AT4JeQ3IGHfCd3F3t06r8emDnV4T+cue/efRI+aGJI4cn' +
- 'M/WLvW6u9DClVOFyX/RL92AtwdgXwMZufGw/Db+mOAKlhUr2Bynl7' +
- 'oLGoegso2k/mvyrzPYVTbqTK6W/6vZ5DsXr72Mv8QMc4yhMgczj2Q' +
- 'RREEJ8iKFMf5OA6jAM05cOvTEYht/3JnEDaDCDMX5Bwj6gDQWGGI/' +
- '7yk/xB7j1C7IMMfNicHabNwEp9rNDDOBjdUJiNYggCTWeg9aRY4SM' +
- 'E2wOF/z+UkmJDAwMTaikH/z1s4g+IGiDw4UwoIgXq83DjUrrTsY+g' +
- 'IIL4dHGEa/r/Io6iuCM95P+94h3lNFJc3yMJ8EjupZLbHqdRuOuwi' +
- 'fxI9Y8McD7ohx/yog/QaUCNjqxIoIPtF/toK0Ch94A47sh5pI/gaP' +
- 'k/rD2qaQ6Qym9wj33sBBHE/w/woZmK/334/0DCgTf/atr6Eeh79bf' +
- 'eF3+pX//Oee9t/fq7Lt/6HP9kOIVFe57/pWHju9rVb133vkV65/Jr' +
- 'x/Ir+9JL292XtsUXfriWX7f7VqEEzmNT/FsKp31oasvP/wNv/une/' +
- 'F3d2nuUfrjowyXuk+pBT7v7+Z9R2V35ffkArpU3HTs/kc9fDuRwSA' +
- 'N+S9H19E9Ql3PlDZmDT5jDqnjuh2PpZfP99/j0/XwRCOfyq7btH9s' +
- 'e/ggxSEn8c/v+5zLkNKCf3vEFrYa2QF26n/1MmS089iETRBBB/NZA' +
- 'Eik4Xzv1xLTwwjT3zDj71DT/TNh9TzW6bb/7op3Y+/0HcBTolGChZ' +
- '/uz+uA6ce+quG+9pG2RQCuwQIKLz7bF0s4lcd9a1cgDzdiWde5J0/' +
- 'pb4mD3re8dPkoEMYIeQZKue286fSv/SWbzP84OJH+/tOO+pbYQuHr' +
- '2abF3HuB3LvE7lvntS3u4K+pZIYuzLTyzzj+tWQhg17svQad+u4Dv' +
- '+uknqEIgDDPfaMe3LbNPAOvcNwD00Prgd+RqH4haB3MDkt/jedSie' +
- 'vqxce4Z9HaGY7kkcN6QNERUeuJ0namWvhzHCL1xkuOdF3avyAbvq8' +
- 'Z3oGEUUTV8n9e2IOxaFnTuotT3Wda9AnUBlcObmokdSFIz/6zl/ne' +
- '7K5Egw7OfO5/8kTA0hHX+rv0x8d04+4154YV6Yse18pqUk3y9C/o8' +
- '9j4WRBBB/Kbgd6FBpKB9unuG5Zlzrb6L1nbEV/dYF1+oRzbr7j4zT' +
- 'z8CC6nHH+ontpt9a/XJlaIgUrDc575TGj+O8EpPec891eCac/6Jae' +
- 'phjNobwjL4UVA7al941u5b0PjxVaaktP2v/2FaeE5rmPpQcQn6Tu3' +
- 'wevXY5hm2b3tt1gGAbHUT202+9fZgde3kI8rttevf1yy9CpW5iXt9' +
- 'QD7m6R2P7/UH++Jz3dTjr0S1ISzjHgwniwwZ1gGQOb78GoWcYBrCF' +
- 'J4vWEby52mOJfDfkKJq5HOOZ4vWtuc4R/RTO6qhDeitYYV4oQ/Ws3' +
- 'bltXZiRzGyBVujGX8IC+tcfZds7s92DJtnHpMrS8klwdDnsXezIII' +
- 'I4jcF/2Prrqc/g830009TrYO3FZ4QtilG1ynsXuW2zCp6l+W9y3Av' +
- 'sxwjhpknyqH16vEHhslty/Qjw+TDUwfPrPkQiFN02WZR15Kse6Gqb' +
- 'ylkjx6j1O0VA/etd19Wj201Lj8nzhbcfP+hN8vG9171bdz8QTf15P' +
- 'TesbyHEa/vkHfOKbrmz3JMh1n3lrzJMPNYP3q/dv6RfmwTfjJ5HUx' +
- '7Q9YEDTRs/hij7aBQsXpgxTmz7Zx9pBreSDH3UvK8LHSpx7YVffcO' +
- 'KwTKvFpej5qm1wwxmmaFPWuqicc1y2+bH/7hi0PnOfrV9fnB7zcr6' +
- 'quGN6v6VuzT28ReFkvPERQgyEq1DNRtfB8q99ySEUfMK8e2db56ka' +
- '8Pk/o89m4WRBBB/Kbg59KG+99X9K2d9p3kfpJN0NF1SSNBodXdloU' +
- 'XcP7FfRtFnrlc16i4dzVC0cRrW5APrFX23wMl/voTcr8oMog674pa' +
- 'pkKY+gMn2tePV/UuWcfWQa0Nd58esZtEwDPovtd/N809y7QNfaTcO' +
- 'G27sGGgzD38oWMcy7pWJJ3zur6Fqp5F5egDSpqG+7+jpIfAktZJdd' +
- 'eMrGuB652jpD9VbJb2r0k65mQds6d/nSkktPEB2v+QLbijbtONbyu' +
- '65kxDy9bxjaqBVfnwFgx0uNILq0oc7MU2OVbeSLoWYPKUvYumkVXH' +
- '1Fb9wpNj72ZBBBHEbwrje7vS1a5+m2jojtZ2+KnmiqgObiS/c0U6/' +
- 'OBCqeOLIiNswTme/TyfgGRgQ9wxJ2mfvcSz/rfORo+q8pQ2jZ1kHC' +
- 'BkWt2Y2DOmbBur7pu3jq6RB4sH7iDn30eINFJVY9sniqjHWX4ecFh' +
- 'wnMbLMrdwatpCAgra9c+ZBuBKWa1qZFPkHipvGqkc3qQy/+aPlMxP' +
- 'MrS82l5B47BicO3MwWN5cW9R40RZ81hFfY+wcfA069eawvO8o091/' +
- 'AjKe5aFjUMVzaPithnd5A6CskA9IGBBXMb2zPBb51XD9yXeCW3nlG' +
- 'lo6di7WRBBBPHbgf9pKfzq+vX3pvnn8OrPlNTseqRFxrLedXH/hnX' +
- 'huWPlbYplgLz+JbeG7p4p7Vop8UyXukc4nplYffdthWeXIYsM54qN' +
- 'Z1jVp+Bs0/WHjynHRfPc07NcayBRF7iGSxxdwpoWWWOvpnOKOHBk4' +
- 'cn+rtF7m8jhs+/V30xzTxOquwPZ9Wp5PbN5DlKFsHe96FhVS77STt' +
- 'O4Quiaz30++WEW5Xpmix3dXFunvH/tl5mfrimytlcNrkWpWil/pZp' +
- '6Sur6OYYGYs/tmjYK858rqdk9PvIwaJrPKSft0vW+4xfVlOt+pBi7' +
- 'SuqHVMMbsoENYc8qr2MZVL8vpC+IgF2GRRB1LPAcXeWONkXTwLH3t' +
- 'CCCCOK3g/GAHTK7vvlPw8xj1dh2tmtsl2TM/ammbnH3Mt89Kh9Y95' +
- 'MnnMxTxRZQum7iYbGjh1Y3GqFqDa/yXhK6TnOsGZaePG1DWpkmS2G' +
- 'raJ81TD5kuKcp9KWefEK5ku8cpOvqGZUmnqFeUt+t2ztbfP+kGPK8' +
- 'gPf/1bDxnXpi59yeefrM9+yY37bAb501TD3SjW8x68cStd6Cmh5CB' +
- 'pkJzP8ZXQ8rFl/dQ+H/a+I6Rd8K09wq7b33mc9IpdUMiXrXnavvOp' +
- '7+TJEwXNbIrOkobVugnIp+S9ZU2X+Prq3L850CwNA3nGHpA9Pgljx' +
- 'tPYRJEShJpAqJQ97TRNpcdd1p5sFz2Glq6C1DZpF0Ek57hJJqZULl' +
- 'TZqxhz4bR7VlxCPjKi/NPWNfeYemYRhbCmTEMQTBk1mCCCKIQOwzv' +
- '+/URe/W977FhNtp1oEcx1DlwGqxs5dVPyIfWAMZwq8mGSZa21HYMM' +
- 'XvXOF6pukm72mGNpC70gwdyfzKGzEpNxIyYhjCdKmlrIPKltKhBxT' +
- 'WyrP3Z8vMGTwpTVbNN7srPUO757YfPB2y9+VfjbNPY3Wdfqc6VOHR' +
- 'jG7CG89V1GRKjNlVDjBnsu9o4MiMQhBsCF1Nln6KbZaPbAcGGgCvZ' +
- 'ZZp7ZD1rVIkDPT54UKn24cFXSvl3cvG+ReByc5wreLOhQIQO7cihS' +
- 'VMKxYVqBwU5kdklFKqvBmXdj06kTyx8VZ8WlhSVnhKThJPkWloj9V' +
- '1wGgi1DrFNp2kqWKKRF/dSYosKEmrMIk671IEu17RwGqcoNeNlrQv' +
- 'fXFovusz3xqhgoYpNE2uypVSXJ5RUgF7dOw9LYgggvjtINDnJ8/bb' +
- 'Vh6UdV/TzGwKnCPFlu8+TJjgb6R2TDWtP0TfGawExxjEItl8ZV64h' +
- 'H80lx17ck9at2d+qhuj2NXXL4ddelWxKXQSPCYtGeJQl9gYApf5dr' +
- '6UoSquEJOFl/GVtsq6rqq++YPnAjve8mrfv27iv71wLmUizwr296Z' +
- 'VaZKE6oz5TXsuqHytpk0sSGWWRaanJ3Mr7rCs5Cln2SZZMMPOG13/' +
- 'SbM57G7bQvPKHxOYX5m8xzMXNs3f2p++MeynjX/9c/puuKGkexKe0' +
- 'x+sf/Q5NzKmrPs6gPM3zyVyJVdi4y7EhZ9NTzmWlQ8cVxvYgZxRHs' +
- 'Bp0DflGrovFxWS07XnyxURhXyL4RGhWWzUkTVokNGM0xSnyG3ZlfZ' +
- 'Oc1TiLBi9F2U5x1oI9P8C/XwBtPenVAs9p0IXHrsPS2IIIL47SBwn' +
- 'n/g5V+7Hv+hZeNb2/SDqu55aWM/V19XINHmKazS7kVm00zT1u+kvf' +
- 'd0xHrOnbLue/KeuyDYZIEqhKY6wPz6tmhG2YUbYee/vn0lMj6lvJr' +
- 'rmaLQl3HhJZX5rT3xHGlkWl5KkQBuf5nNq+2adkw/gDzkVP/Qm392' +
- 'P/8zHP5sx/CBGX6BjaZxZYp1wpbJRG3rZaHTMPtMN/ZA6JmIY5Uj+' +
- 'sBFf+nWpTcg8Fh9d2DR6snH9pVvP8L8X7BMdPcM7r0hdZ/ce46Ai4' +
- 'zakXSpOSwlLzQhPTw1NzqbkUgvyauynWUb/CVeLnNJ++6Bq2NZ4hh' +
- 'mWSyrPL5YkshTpAiUxGyP0kl3DOinnzpX38NX9zG/KlmkS+Ary71T' +
- 'VQNrEVUtFMEyjJ1QL2xrSfMkt2UW0Vngv5eEzrjqHk7TZIrYAAtyM' +
- '4E4ej46i37sPS2IIIL4TcG/tmfw9d/9J62bR+6p2sZEjja2xl4grS' +
- '7UN5Y0TfBaZ2kmb2qZNlNhK7T35qjrQtPy49iSkELlgdkeYydBO7R' +
- 'SIKVMV942e11cF8hOJ4sMppnHcJgDL+ZYe0CMt+LT4guK88vVAkuT' +
- 'qn3cPrnpWXuDSIQ4ouvZz+b557y2xYKGycAb0009tOomhB7irrvpN' +
- 'UOl3as3ZE2QJ0JaD08bPv+pgJAkydSrHn2gHNsJzOGOpsO59v4jzP' +
- '+ZbxEOyP8AxwocIu9kZEEJ3Pivo5PCkrLg9sNsFahd54oNgQpBTU/' +
- 'SVNDSPvCTpg6hq78s0lP0QCQuVALE9UMPeU+xDPzGUYQD0XRhvqWz' +
- '0OCJ13ij1O3kv19ya2K07dqxLaajF2nOXw+9cvsO4ouItNxj72ZBB' +
- 'BHEbwrkhM/I+/8iT1rv2Pl98+pr1+xDQ/9iZcuwyN7K0TnpVRaG2Z' +
- 'tl7ZN0L6YK1fBXWfXEqsJYZhk8WArzIzqguYZya3ozTJ1xKs/pYuq' +
- 'S9ShFY5bSebKgKvAuMD8sBSgU/JkjrOSbGpWto7aJDQjT+YhY21m3' +
- '9s409+yy0OVfvUPiBNOgHt0yTT8uaVuEQ35ibxo/TFKbyJWD+QNDk' +
- 'tNMXb6+KaaqiUKqqkNPnA+v7aGA2zwVz6u6EBp18Ub4taj4sORs2K' +
- 'yMkgqGvvE810Rd1UnXHwnU5dzhhZ10/WHOJ41CvqUrliM7fzMiPIf' +
- 'NrOlEKJFp7pYOP4DJI+yauV/QOpdUpg3NZJy/EXbu2q0rYdE341Ij' +
- '0/OPvZsFEUQQvykETvUPvPob3P62B9+7V144ph8YB+6CfiX13fDAi' +
- 'y1ececizTVcoG/MkpklPcuCttlEniKxREFhfj93EbTGt18tr78la4' +
- '5UtcdV96RaBiKULUxHX4JATWV+S3dUIf/6nYToLHp2qZxnqK9qGak' +
- 'Z3yCW9xDHvvxkmHlS2rUCt5bCh+FVXkbzbKjcc0noCrx+u6LW5/NX' +
- 'HmB+ujpdYuY2jJw46Gknmfs+xPxnebabsuYEQ29e3QSvc1kx+tBy9' +
- '3Xzw59E7fOxXPnZr8PgWoP5I9PykpmleSIV2+I9zzX/yvX87Jb5I5' +
- 'j/KJzjWmn23hi29My10NOXvrocHhOZx0ngSIXeycrBtYr++4T9Gn+' +
- 'EMCQ8p/jMla/PfnXj0q2I69GJ4am5cfnsY+9mQQQRxG8K/ql+0u3v' +
- 'f/mX7id/bN36DuQPz98yuqrvmVV6Ryrqe3j1gzm2fnnfCt3okfXcL' +
- 'XAMpJVpEAJQ5vl35yXY5tMcC4lTxWZYgS9Yps+ZhiRda2KpKqKAf7' +
- 'LwCOYHhd7JomWVyrnVtYg4rKNrjcvPYYkcSy/N88/PBKzkRG6n2Kb' +
- 'rFQ13NLtzHZRYIEpeT8yowzAFiHeKro7nSJOEmnhNS2Dppw6tkPxF' +
- 'n/8Es5pu64lhS0DCIFgYrHSumC43cO0dF0ssgczvm+1Rk3M4BGgq/' +
- 'LxZ7sp3DCkGNwKXp5KAlTxcHK9lNl1mvXD7zsnzl0HsYHXER5EZha' +
- 'kCZZ66rnJgDdXRjD1IExu+upN48WbEldt3kCAiLTe+kINI5Ni7WRB' +
- 'BBPFbg3/rnpF3//aTf9v2D561Nw13nzpnti0j98D/Eu+4uGuJ0TDO' +
- 'dnQzLW3p1e3ZMlNmhSGEpj5yduLwZEWcpqXMMxGWww7P41KZ3zfbA' +
- '58fzJ/Jk3J0TkXTgHl4hdh8ZvW1buJhQd1EIJ2e59sD12deKHVQio' +
- 'uQ1ceyxOD5wJAEViC2qDwij1vSSHX7fw3zBy4K+sw3686uHUzkK0O' +
- 'TsmJymTBYLKWV7+y+xLOGsM0x2g5u+5J16Y1l7kmWwhZXXEHI43u8' +
- 'C4sJveXIzIXVTec5RspDAdXIZgjLQCn6ssAp9EzcTC88dfEqooyvI' +
- 'uJuJ2XG5DASGbxsqUHWs/RFkQGtk8yvuhmfRq4disooSKSXQCqG3H' +
- 'jsfSyIIIL4rSFwJzSS/Ade/pXYi/gRccw6yf+O6QeGwWVx20yGtU8' +
- '1vMFx9maZOgpUzrzKmrOso+el99mMoQ+X1tNtvSnl1ZEFJXCSowp4' +
- 'Jw/OEYH5o+lCuKkE85dI2Bq7tKHX0L+IuMM09VA7sXOaY/1IEYcRX' +
- 'dmIDEG2gcx/o8yOK1cj4+H2Jxx0+3+R+T+n6co6FvAZePEc11LqmY' +
- 'CnHU/jZYP5VTX82l7KdhaijkWEHl9FxJNLOm/Fp0Wm58fmsRLoJSD' +
- '/8xxDoAk7WajKVtXm2wcOy5Zp7orjVl64FQmHH9wORSUzS7P4slyx' +
- 'lmn2Xhc5SjzTmRIjzAECkLg8VgpLmFtWBWMksDYfex8LIoggfoM4Q' +
- 'P7v/2v4LXHMLnnMOsn/TauvaucfKfuWOZ5Zaf86v3Ekt6aHaXDTNL' +
- 'XkS7J+grot9+Ta+nNregudg+yGsbL2eZF3GpwfTRdcj00B+125fSe' +
- 'GKaI+F64bTaswJXBlaSJtXpWNbfYIGwZk7dOq/uXK/tVsx8c2ZzsS' +
- 'UfL6yAIeyD+woCs8M3xvCAADxGscPcH4ZeZHcJFiGRD1rst6lpPFx' +
- 'niVh8LJ10S1FR3zOVX2bGEV8cKss+sS/wDzc5unfMxPrOe/FhkHnz' +
- 'wyLS82tyiRxkXQBOa/KNgPWGAQkwQaUcvELZmbIhK8ep57NJ5XeS0' +
- '6OSwpK6GQC3+eJqsGt7Mt3jiNt8A5XKhxpXHFacUixE35Yg0MaJnN' +
- 'W+kZOvYOFkQQQfw2EXjQMOn8+/m/+5v/6Hj4o2f9rWHsvmp0K981I' +
- 'vRM0JwDHGsryJ/C/OnGzlSxAawbkV8SUcCLopWCZsH5cHfJN1hBfY' +
- 'm83en3K6K6NOtgoqnXtvxG3ndP0rMk7VmW9d1TDKxVDm1UDW8aZ5/' +
- 'qJh+dKKLOflwT1yXp2hI1LQlqT6LGG6ny+v8iJ/xvlTvC87hRhfxA' +
- '5ifn+UG/12NTU8urA5f6/6LPfzJfEcksL6kfOldCjT4ilC2K3qVCX' +
- 'SNNYeLa2i/zawKZn9cym6mwxbErYovK49j+2Z5q0P7h2R4wf0QhP4' +
- 'Zdwa0f/oJJlSpS1Spum45hlCFqIFaQVmiKtY5Ss5vv6sl3DidXd7L' +
- 'MLYWy6kKJjqEwcXROkb21smUYodOx964gggjiNwvKQfPkoa7+yR+Q' +
- 'f8PKy6qBtVzHkLhjPt8xCP8W3iaF+VOr26MZZeeu3zpz9ca5azcv3' +
- 'owgV7yTrztFZRbG5DDAe+SmCv6NdIiJ+oMrHk8UGXFRPfkk0dj7Od' +
- 'MAPv+Saz3Ps18SOmO07ULvdFqFEWYF9J5Qqua4JygcfrPMFpbDhum' +
- 'hMH8iV3YjJhmIZ4lLPROnWEdsgHCY+W8rPMr+lWtJeRE0Iath7LC9' +
- 'SLUOgPwLVA6WyXPlIPNT1/PvLeaH3r4s0lOe8IL5UaMvv7oZy1VkW' +
- '3oOF1TsnkiTmGLy2XDs6XIDz9ggdraLmobLOu9eFzl59YNck5tbXc' +
- 's3NYocbfD2q/vm7ZObx961gggiiN84KAedk5M/IH94/m0Pvq+e2GY' +
- '0TNStvcus6RfU93Ns7SF0LYX5Y4pExDu810NB+19FEPMbEWm5MbnM' +
- 'RHpJGrsskyct9G2h+WueC+e4xk8e2sQ+TuNNl1qu3Uk++9WN05e+C' +
- 'sstLm4c/zXMD76Fyx2aSLzZGpXNyK6yZ5i7jxTjSJ//anzW5ZjUMs' +
- '94jOaI5Te5tr5cRQ1NU3ultOZ/vJ6f8PnzS05duHIrnS7yTl4X11N' +
- 'KOc+3lbdOpwqUaVwxQ24UWJqkDb2SlrGqoY0TDL24a6msoV/kaK2o' +
- '7VQ0Dei6pq2ja8H9+YMIIohfCYrzT77n1fXoJ9PMI0Hnsmv9+zhtW' +
- '5l7CG5/CIPK/HFsYi79Slj09TsJ5O4BSQxeZomE2MpSbmSpajjWVt' +
- 'z1i1P3cPKPvF7WPo8iLt4IR0yByCKqgMdpOsLnJ2d7zjD3xYPvnVK' +
- 'qhBmKyiiAJcoo11Z0zJ89NHtzNPMXKK4l5X525sIdZrnQM3FpbzXR' +
- 'dUljtnNMOvRAM7qVr67LVzrA/L/GqH3mW016mPkJma/euBgalcCr4' +
- 'jaMfH7oYUSaoTNH6cjgy+Hzg/ll7j5l23hF++xVoSPD2g97IW0ehL' +
- 'evbp8wDi45ph+4V14ce3cKIoggPhUEPvYd/vZf5PYOvlNrHxd55hL' +
- '1HWLPaGltbwh1r872RK78RkzyzbhU8jWidE55vljDUlp5xgaRnXBH' +
- 'Re7hMLn7v/vQlsQtmVvSOXeHxr90KwIxxeXbUbGs8pJDWwPdKLOBQ' +
- 'qMZZan69gDmJ7ZHjs4mdldLZvIzeDKaoZnRcCBeOM+3XxQ4G7eozH' +
- '+arr6RSvvs1Jkz10ITS1VZll5KiZ/TdbmWboa1/arA9iuZ/4LAeZj' +
- '5ITPqdSk08uu4tDSJKd1EjUpgC/ieyQJtPU1h4psaiRMNOiblnXNx' +
- '2vbTHItqdEvaOgna1/fOWUZXa+d2PGtvjr0vBRFEEJ8WKNs7OO6+0' +
- 'E8/viywF9aOSLwTZQ39N8vsIXSt//CRhKrGJJ4CfvWdLFoijZvJkx' +
- 'LT0YZ6sasDjig4St8zW9k5e6PcGcLUAScZe/cSJ5Ko9t51IqG+wDE' +
- 'l69tPM7Q+aE4xNIW23hSR7npc6tWIWMQUN+PTkkrkdEdviO9AE2IW' +
- 'nU583uCboumCGEbZWTqxgQN53Mklti5DpE2gcVNYwiy+jIhBdPXyn' +
- 'uVUQ2eipjVO03Jb7IyU1QO6kftf8cyXONXnWLowsUPavVTqHvl/2r' +
- 'sTn6rOPIzjf8csmWSSaWfpEpembhUVkE0ElB2UVZaL7DvIJlQEFQT' +
- 'rUncqdcEKVlRaq3QsdnRqnWZsOul0Jpm/Zb7v+V0ul1t0bDsThuRJ' +
- 'Prk53HvOuxxunt97LnB4NTz+l7/5/a9fWfbm1iyW1kw8aKjOr7ZV7' +
- 'Ow//ween/fvV8r88/KmxixezW1j3Z7ac9Z3bPyljIZfJFX+3Nttla' +
- '8nuf3oqsRs5vXK6g3L1m8OyyzJ6x95ObPRf3JmvZrTmtVzMrGijWJ' +
- 'a2OWSv3RwNKbl6M+2VW9tP1F8aKTy8AgL/ubT452jH/WOzyz6u0hE' +
- 'lpZ5t3eY/qb/5hcs+6vevV7+zpXdh84V7j2S1TaY2tTv/YZnW2xJU' +
- '2Re9brEzLXxqaRrdHZxUmm9fSJRMXCu/thlsqj13I3G0xO7j1wuGr' +
- 'iQt+9kxp5Bjo3ztUTkVW3I9tkdIXgMyyzdsKPM/QcTj90vaH1mydr' +
- 'kvNfDormgeP2tCPv1yA0puTHFDXG+1tjS5uiihsj8GvanHKyI2LIy' +
- 'Ip7wDM+t5MnNu+qiCms2peWHp+VF7yjZWljFZUhqVUdqU9/2+t7Eq' +
- 'i4GzxjoevX2vDcSslfEpS+PTV0Wk8Lj8ti0ZdHJL61Y/fLyVWTyys' +
- 'itG7N94blVTk6FNzyH7Yj86s2FtQwD9MiX7n+yZHnzyihm/HaXTjp' +
- 'iSJEFtTyyzTM8z1DXpuQv3xS3LCyKurl2S8rGlNzoXfUxJU1uXgW1' +
- 'dMeeTIcuYosbWfP7k//Q2eojF8uGL5UOXfINXWSb2G84MdZ69sOui' +
- '3d6Jx4s+rtIRJaWuds7ePfzHLrz1/4bj7qv3Gs5+6Hd2Ce/YyCrvi' +
- 'e5vDWhqDY2d/fmrKLI9AIe3Sc8ZU07mvYVv320evgCmd8xOsWBPVc' +
- '/7Rmb7rgw1XTqGuWgoGMwtbItLr98Y/LO1XHJJN7K8Dgi/Y2ILWy/' +
- 'uTnhzahEZ3PCG5Hx9hJ4aU1c8oZt2XS0Jb88obguydeQWFK3paAyK' +
- 'rt4Y0rOW4kZVB+sT8qk5fD0/MisoqgdJTE5vi0FFdSjtKq27Ma3c/' +
- 'f057T2ZTfuYwzxu6oj0gvWxKfSy2trN7Hw/u2KNUQ9Fxe/W7nmlVV' +
- 'hr68Ld3+EFbMtLClzU2ouO9MsfYVty16XkL42Po2rCbrbkLyTVzel' +
- '5fHS+qQsGlwVk8SAGT+Pq6ITV8dudzsnpDNIO5CJ219ggY118WmMO' +
- 'co7h+63NHdVc36YF22Gbd8BNqJzfFZVi7qPVA6erz9+pfHkNU4pj4' +
- '3vfgBOeNvIre7Ld/uuf77o7yIRWXJCPvAZuP0ly8jO9z9uOjVOpPv' +
- '2nyjsPLyzeX9GTWdyeQtxlFRSx3I6rbrd/WJh7/Ga4VEWn3sv3+Wo' +
- '/slHB29+0X/j4b5rn3WOftTw7tWyA6fy9hxIrWglkCMzCkk8cvUtU' +
- 'jEhfX1iBtuGbdiTBH54ai4XFKzb6TGzvjunpc9leEsf2ykVrYlFtW' +
- 'RmzM5SxOaU0XJCUY2Niv1d5jf00CmZyeApXiX7jlG/OHabr4HSsIn' +
- 'CsTUtENdwPxqI3U7XvES/NJhYXMfOTJa++JKjCGrKEI/WaVzubh7Z' +
- 'mUlxFFdAYUlZjNz96y4qUVpeBMUovYDHcO9vr5g4eIln7JIkeXczp' +
- 'zSrvht2bumUvpiaFa/06o68toOMv+bI+3wv9pyfJOrbRm5yVQW2+R' +
- '69ffWPnO1FfwuJyJLz/ft5Hpj8M5HSfuF208lrxE75wTOEJ/lPnFI' +
- 'Cdjb3ksOFXUNl/Se5LnC/XuKtPCkZHMtVw+BHf6GFfR/cb3/vVv2x' +
- 'y2QXCZZR28U1AhFt4UZyOmzMx6tbd1WTugQ4FxQFnYMUl90HTpcfO' +
- 'ssjw+AZxpBZt5fSwz7EI9tEPaOiNDBCdijueYeKUzX0Xu3RSwyAQX' +
- 'L1wbUJwyZjaTy+oJIwJ7ejvDAnihmM/cGsFQ5riv3pi2SmLyoOWe2' +
- 'Ut1DIDF/SGtWBJKdNBs8j2zTFTA3bjvek+90nX2Nq5R5Xm9oO7uoe' +
- 'ZnZgwP55eVWAc8UFS377IV5iFqzwLee7Ln0CNmybayuq7cFbjxf9L' +
- 'SQiS86C9/NkJdlz9VPW7aznWboTnlWHRygBpD3cT3KH3ms4McYStP' +
- 'vKvb4P/8Qhw3efUjhAC1Y+aIHIqj9+hdwmeIkywo1Mc3+XuhCe51X' +
- '7BSFW7HRELxzOirf59DhliBjnGVcCeo+zA8hMykFpr1vbk/YMrHLw' +
- 'PNWKsbWcuc7wqD48cnjdsUvkv63/Lc8JWBezNZ1WO1y/HQM0SFMMu' +
- 'HLgHGiQCweepNLxqiGlDeO0ixHqDiMPoGbxjGHb+GuTF/i0SeOMkx' +
- 'kxQSoU83I/ye11fblJ9R7nS1vtMwUuqajFXEk5H9x3rn22f+IBJ5k' +
- 'zv+hvIRFZikJ+vZMMH5h60j/5qHd8hmBnhUmAUwIsftF8ZmLP+Un/' +
- 'pw2Tj1zs3/va/SP1z/7ubgpx/1tXPj7+ipfYoWN0iv2JuOrhC2Qvu' +
- 'U1EWwUhY4196Y/ugXPsyf6EHqHt7ud5+S7D4NEbiYtxihE7EOaWnH' +
- 'zpBkaBODPBOG2FzCGWkDxyLMNwVezEWM3wqEV6YABzJWN41BWak9e' +
- 'oGu5DFaZ8ZoIlt104MCry2fi3D49wVIXXGvPyT+3AKdsOYVOzKxHa' +
- 'pHEindrKUBmbm9eZibl5ecOwk0wB3T/7SRpIe3Po9mMruIv+/hGRp' +
- 'Sh42e8Pf+9+PmQLgUPskJ/kj8UvesamidO+658fvPWY5T05z8XCiQ' +
- 'f/cHeECLopBC+RVBzO/iQYQUecEqpEHOkdiie93Cbu2LPr4h33acb' +
- '4DBcUFnSMhB7dSMamWQOzg/9zj4t39nqjcj9fHpu2tTF7uqi89Zgp' +
- 'gMMZBi91XfrEYtZS3bicd/XiZvuF27RmP6e2pbWbtdcXR3mXDyFuM' +
- 'lqrEf55LYSXrAv7rJ60tzV878QDxskEA2c4MC+bFPvYwn7g9pd8Oz' +
- 'ifwYY+ecq3iYusRX//iMgSFfwnvS78739LdLOetM/tSR7yM7DgJFE' +
- 'ti+wTHot9Lhk4PHBHOBf+n/6NHTic/ftvPCTESHJLVDLt+2yJ7tKe' +
- '3L7x0PUy9cQizmEkH3/FMzzvCsGNh36Tj/yjcv/ey+U8+7An+9M72' +
- 'QgOt0LGbjTe6yVtYBj+fr0ctqW1a+T2l4FZu6Lj5XNviPEZN6PAJz' +
- 'DP502NRqyW2Yrd8jxkXuzAo/88Tz1xEyHhp7+xD9PchrdNgbbrrEV' +
- '/84jIErXwzTzvf0u8kDOs6l2EEqTm3tc848KH5Jn5jmLhMt/uBTT/' +
- 'jkD+CkL2erntisjUE8fL1VAk9mwY+he0099YvhnLPUtyqwWOt73A2' +
- 'LwDKUCwY90s7j4NHYlnXr93n7KnsVlbXxbR83CUJ7ipZ/HvPFuS3C' +
- 'BnAzwwr0BfNq/gM2CfpM3Dmfeusxb9zSMiS1fIzdzsZv6uBMx8Z1F' +
- 'jKWr8yfP5P/1L/Yf/CtwLNLSCzHxn2euPuMCqdUGW2IGsmw03G0mg' +
- 'NX+Ds0IHFnJg0CwWHom3HSgxgdkFz9qOmjvwxwrUo7lBzs5rbnhB8' +
- 'wqeC+czhF1kLfo7R0SWupD8D3yA86zYCc784BYC+T9XRIIC/Hlm95' +
- 'zrYj7rfa7BZ0di8DVI6IHP6HfBmQb39Z/H/2JTC5ndgn0tPJf5Aqd' +
- 'dROQnCl7AzxWC72VOSOYv2ELIp0Av5Bm9PGskzx/bDxjG85t9wcH/' +
- 'qNn90Ok8/+SLiPxEPzFznp9aL+LHNfW/GMl/3YuPbdHfBiIiIiIiI' +
- 'iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi' +
- 'IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI' +
- 'iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIi' +
- 'IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI' +
- 'iIiIiIiIvL/5t9IV97O');
- GetBitmapSize(BMP,w,h);
- SetArrayLength(DebugLines,4);
- TPA := TPAFromBox(MCBox);
- DebugLines[0] := 'M34t''s Lunar Planker';
- DebugLines[1] := 'Planks made: ' + IntToStr(Prog_PlanksMade);
- DebugLines[2] := 'Xp Gained: ' + IntToStr(Prog_PlanksMade*90);
- DebugLines[3] := 'Time Running: '
- + MsToTime(Integer(GetTimeRunning),Time_Formal);
- {for x := 0 to w-1 do
- for y := 0 to h-1 do
- FastSetPixel(BMP,x,y,10337999); }
- for I := 0 to length(DebugLines)-1 do
- begin
- TPA := TPAFromText(DebugLines[I],'LoginChars',tw,th);
- for II := 0 to length(TPA)-1 do
- FastSetPixel(BMP,Min(w-1,TPA[II].x+15),Min(h-1,TPA[II].y+(25*I)+15),1);
- end;
- SMART_DrawBitmap(True,BMP,Point(MCX1,MCY1));
- FreeBitmap(BMP);
- end;
- {$ENDIF}
- procedure commitStats;
- begin
- DebugStr(2,'Commiting stats...');
- if stats_Commit then
- begin
- markTime(CommitTime);
- DebugStr(2,'Committed stats succesfully');
- DebugStr(3,'Mahogany Planks made since last commit: '+IntToStr(logsPlanked));
- DebugStr(3,'Magic XP Gained since last commit: About ' + IntToStr(logsPlanked));
- stats_IncVariable('Mahogany Planks Made',logsPlanked);
- stats_IncVariable('Plank Makes Casted',logsPlanked);
- stats_IncVariable('Magic EXP (Gained)',logsPlanked*90);
- end;
- end;
- procedure ScriptTerminated;
- begin
- DebugStr(2,'Attempting to commit stats one last time...');
- commitStats;
- SRLRandomsReport;
- DebugStr(1,'Script Ended At ' + TheTime);
- DebugStr(1,'Ran for ' + MsToTime(Integer(GetTimeRunning),Time_Formal));
- end;
- begin
- AddOnTerminate('ScriptTerminated');
- {$ifdef SMART}
- Smart_Members := True;
- Smart_Server := 100;
- Smart_Signed := False;
- Smart_SuperDetail := False;
- {$endif}
- DeclarePlayers;
- SetupSRL;
- LoadObjects;
- SetupSRLStats(945, SRLStats_Username, SRLStats_Password);
- repeat
- if not LoggedIn then
- begin
- LogInPlayer;
- wait(2000+random(4000));
- ExitSquealOfFortune;
- end;
- PaintProggy;
- writeln('makeplanks');
- makePlanks;
- If not Bank then
- begin
- DebugStr(2,'Failed to bank, making sure we are at edgeville bank');
- if not NearBank(true) and ENABLE_WALKING and not FindNormalRandoms then
- TravelBank;
- end;
- antiban;
- if TimeFromMark(commitTime) > 6 * 60 * 1000 then
- commitStats;
- if (FailCount >= MAX_FAILS) then
- begin
- DebugStr(1,'Failed too many times... Swiching players');
- Logout;
- NextPlayer(False);
- end;
- until AllPlayersInactive;
- ScriptTerminated;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement