Jump to content

Texas Holdem - Starting hand trainer


nitekram
 Share

Recommended Posts

Well this would be my real first script that I have put out there for everyone to enjoy. Please feel free to leave comments and hope you like it. I hope to one day create a game out of this script, one day - lol.

How to play

- points represent the starting hands, the more points the better the starting hand.

- user has option of dealing 1 hand at a time or by changing the deals to more than 1, the bot will go through X hands

- if user only plays one hand the user must press the flop, turn, and river buttons and then press stats button

- the bot will keep track of what type of hands that were dealt, along with the winning hand per deal

EDIT - version 2.5

Known issues

If player is dealt AKQJ of one suit and the 10 of a different suit plus another card in the same suite as the AKQJ - returns Royal Flush

If player is dealt A234 of one suit and the 5 of a different suit plus another card in the same suit as the A234 - returns Straight Flush

Also - no way yet to tell which hand is the best hand - if two players have a pair, the player with the first pair is the winner

EDIT - had one more bug - fixed count on $StraightFlushCountWIN

EDIT - version 2.6

Still have issues with the straight and royal flush

Still have not completed the High Hand

Added 'Deck of Cards' fuctions - special thanks spudw2k for his help

changed the way the cards are dealt to look like a real deal

uploaded newest card folder to include sounds and bmp for hand ranks

EDIT - ver 2.7

fixed issue with 'Deck of Cards' fuctions, it now starts with a new deck for each deal

EDIT - ver 2.8

I think I got it fixed to use the functions 'Deck of Cards' - if anyone is testing this please let me know if there are any other bugs besides the ones mentioned

EDIT - ver 2.99

Fixed issue - now can change background color

fixed issue - more than one straight will show up

still know issues - working on straight flush and royal flush - still needs work

EDIT -ver 3.0

fixed issue - straight flush and royal flush working

EDIT -ver 3.01

fixed issue - with QUADS not showing up

EDIT -ver 3.02

fixed issue with 3 pair showing up as high card

EDIT -ver 3.02a

Fixed issue with straight showing only once

Previos downloads 200 +

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

here is a summary of known hand evaluators ...

http://www.codingthewheel.com/archives/pok...aluator-roundup

Thanks for the link, I have got an idea and am working on it, so I do not want to read the code yet. So far I got the straight figured out. Let you know how the progress is coming with next update.

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

Maybe a help file would help, and I found a bug. If you set 0 and click stats the bot will loop and crash.

Kind regards, Linux

You can help! Donate to AutoIt! or, visit ClimatePREDICTION.netMy posts:Travian Bot Example (100+ servers) BETAHow to Host you code/app for free! (unlimited team number) (Public or Private)"Sir, we're surrounded!" "Excellent. We can attack in any direction!"
Link to comment
Share on other sites

  • 2 weeks later...

Fixed some bugs and put up newest version. Also added information in first post on how to play.

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

I noticed the comment in your code (line 175: "; want to create a new way to get card - ini deck of 52 cards, then shuffle, then get card from top"). If you are interested in implementing that method I tailored my Deck of Cards functions to work with your script.

deckofcards.au3

Edited by spudw2k
Link to comment
Share on other sites

I noticed the comment in your code (line 175: "; want to create a new way to get card - ini deck of 52 cards, then shuffle, then get card from top"). If you are interested in implementing that method I tailored my Deck of Cards functions to work with your script.

That is great and it works! Thanks for your help on that and I will be sure to give you credit for your functions in my next update. I am hoping to get rid of all the excess code and put some basic comments where needed to follow the script. Also plan on adding the hand ranks in the gui for those that do not know what beats what in poker.

I am still playing with getting rid of my bugs and need to start work on the winning hand being shown, right now it has no clue which player really had the best hand.

EDIT - found issue with your code and mine together, need to change my global variable from $suit = 4 to $suiteds = 4

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

With V2.5 I get

ERROR: _ArrayFindAll(): undefined function

That should be defined in array.au3 - #include <Array.au3> at the top of the script

What version of autoit are you using?

Here is the function from Array.au3

Func _ArrayFindAll(Const ByRef $avArray, $vValue, $iStart = 0, $iEnd = 0, $iCase = 0, $iPartial = 0, $iSubItem = 0)
    $iStart = _ArraySearch($avArray, $vValue, $iStart, $iEnd, $iCase, $iPartial, 1, $iSubItem)
    If @error Then Return SetError(@error, 0, -1)

    Local $iIndex = 0, $avResult[UBound($avArray)]
    Do
        $avResult[$iIndex] = $iStart
        $iIndex += 1
        $iStart = _ArraySearch($avArray, $vValue, $iStart + 1, $iEnd, $iCase, $iPartial, 1, $iSubItem)
    Until @error

    ReDim $avResult[$iIndex]
    Return $avResult
EndFunc   ;==>_ArrayFindAll

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

Uploaded ver 2.8 I hope I fixed some of the bugs I found while trying to use 'deck of cards' functions.

Please test and let me know what you think

The check box next to the clear allows you to clear the hands each time to see what hands were dealt per deal.

Let me know if you would like to see something - other than the ones that I have not fixed yet.

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

  • 2 months later...

Hi nitekram

Thanks for a great script

I believe I have found a/some bug(s) in your script...

Bug 1:

When 2 hands have straight (highest hands), only one is counted in "stats hands dealt". (Screen dump is available on request.)

Bug 2:

I changed the background to green to get it more poker table like. Ok, no problem, but if another window is opened the playing cards turns from white to green, like if they are transparrent. This is not really a bug, since your script uses white background, but...just in case the background color is changed

BR

Larnil

By the way I have my own card shuffle function too, in case your interested...

Edited by Larnil
Link to comment
Share on other sites

  • 2 weeks later...

Hi nitekram

Thanks for a great script

I believe I have found a/some bug(s) in your script...

Bug 1:

When 2 hands have straight (highest hands), only one is counted in "stats hands dealt". (Screen dump is available on request.)

Bug 2:

I changed the background to green to get it more poker table like. Ok, no problem, but if another window is opened the playing cards turns from white to green, like if they are transparrent. This is not really a bug, since your script uses white background, but...just in case the background color is changed

BR

Larnil

By the way I have my own card shuffle function too, in case your interested...

Sorry about being so late in answering this, but I have not been checking it.

Bug 1:

Can you send me something on this or post it, as I have seen this before.

Bug 2:

I will have to look into that, but I am almost postitive that the cards are transparant - and I would have to create a blank card of that color. I will look at the script again and check it out. Looked at it and it will be a lot more work to change the background color to anything except for white.

Thanks for the post

Edited by nitekram

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

Bug 1:

I have send you a link to the screen dump

Bug 2:

From the few I have checked the cards are not transparent, so it must be something else.

If the cards (or some of them) are transparent (white color), then why not just remove the alpha channel and set the while color to solid white?. Another way is to use a blank card which is solid white.

BR

Larnil

Link to comment
Share on other sites

the script doesnt work for me. I have the newest version of autoit ( just downloaded the newest) and it immediatly gives me an error:

Posted Image

strange is i cant find even 1 function call ...

if i use 1 comment on the function your program starts but only deals the same hands and gives the same flops etc.

Edited by cageman
Link to comment
Share on other sites

  • 2 weeks later...

_ArrayUnique is a new function included in version 3.3.0.0.

nitekram have a function of that name in his script which is not unique when using version 3.3.0.0

If you do a search and replace of _ArrayUnique to _ArrayUniqueLocal (or somerthing else) in the script, then the function is unique again and the script works

Edited by Larnil
Link to comment
Share on other sites

  • 2 weeks later...

Bug 1:

I have send you a link to the screen dump

Bug 2:

From the few I have checked the cards are not transparent, so it must be something else.

If the cards (or some of them) are transparent (white color), then why not just remove the alpha channel and set the while color to solid white?. Another way is to use a blank card which is solid white.

BR

Larnil

I have fixed these two bugs - let me know if you find any more

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

Just a small one

Line 56: Global $CardBlank = "cards\blank1.gif" ;Blank_white_clear.jpg"

There is no such image in \cards\

There's a blank.gif but it doesn't help to point to that image

Only one that seems to work is the jpg file "blank.jpg" so Global $CardBlank = "cards\blank.jpg works

Does Autoit have a problem with gif-files?

The Images used are bigger than the space assigned for then in your GUI which makes them look rather bad. The cards looks much better when not resized.

Have a look at this slightly edited version where the images are not resized: texasholdemtrainer_v2.99_NiceCards.au3

Looks better doesn't it :)

Clear button does not work for stats:

Code should be:

If $msg = $ClearButton Then

_ClearGUI(1)

not

If $msg = $ClearButton Then

_ClearGUI(0)

Edited by Larnil
Link to comment
Share on other sites

Just a small one

Line 56: Global $CardBlank = "cards\blank1.gif" ;Blank_white_clear.jpg"

There is no such image in \cards\

There's a blank.gif but it doesn't help to point to that image

Only one that seems to work is the jpg file "blank.jpg" so Global $CardBlank = "cards\blank.jpg works

Does Autoit have a problem with gif-files?

The Images used are bigger than the space assigned for then in your GUI which makes them look rather bad. The cards looks much better when not resized.

Have a look at this slightly edited version where the images are not resized: texasholdemtrainer_v2.99_NiceCards.au3

Looks better doesn't it :)

Clear button does not work for stats:

Code should be:

If $msg = $ClearButton Then

_ClearGUI(1)

not

If $msg = $ClearButton Then

_ClearGUI(0)

yea i forgot to upload the blank1.gif - but as you said the blank.jpg works

as for the $clearbutton - the code was supposed to clear the cards and if you use the check box it would then remove the stats

as for the nice cards it looks nice except that it only shows 8 players where my code was for 9 players - either way works, maybe I will look for some better cards

Thanks for your input

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

  • 3 months later...

Updated code - should be no bugs for the parts that work...still working on the very best hand...which high card is the best!

Let me know if you find any more bugs...

All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...