Home | Webstore
Latest News: OOTP 25 Available - FHM 10 Available - OOTP Go! Available

Out of the Park Baseball 25 Buy Now!

  

Go Back   OOTP Developments Forums > Prior Versions of Our Games > Earlier versions of Out of the Park Baseball > Earlier versions of OOTP: General Discussions
Register Blogs FAQ Calendar Today's Posts Search

Earlier versions of OOTP: General Discussions General chat about the game...

Reply
 
Thread Tools
Old 10-24-2009, 01:43 PM   #1
Jayzone
All Star Reserve
 
Jayzone's Avatar
 
Join Date: Apr 2004
Posts: 706
10.4.29/10.4.31 strange behavior from new contract AI: arbitration eligible players

I have seemed to observe a strange behavior from the new contract AI of patch 10.4.29/10.4.31. And I'd like to see if anybody else is seeing the same thing before I post it in the tech support forum.

It seems now the post-patch AI loves to bypass arbitration and offer contract extension to most of the arbitration eligible players. Normally, this could be a good thing, however, the cotracts that AI offers do not seem to be of the best interest (cost effective) to the team. How? Let me explain what kind of contracts the AI are now offering first. The contracts offered are mostly (if not all) one-year contract and the amounts are close to (but below) what player demands in the contract extension screen. This is ok except that what player demands is almost always a lot higher than arbitration estimate. Essentially, AI teams are offering to pay arbitration eligible players more money than they mostly likely could've avoided by going into arbitration. There is no other advantage in offering those contracts since the contract term is one year - the same as a contract via abitration. The degree of this happening is very common, involving most aribitration eligible players. I would even say that the new contract AI seems to have arbitration phobia. They want to do their best to avoid going into arbitration at all cost.

Example:

Player A is arbitration eligible for the first time. Current salary is baseline 450k.
In the contract extension screen, player demand is 2 year, 7.7 mil per year.
AI team would offer 1 year 6.8 mil contract.
However, the arbitration estimate is just 4.4 mil.

-> Team would be much better off by going into arbitration with arbitration estimate dollar or offering a longer term 6.8 mil per yr contract. As it currently stands, the player will very likely accept the 1 year 6.8 mil contract 'extension' and the AI team just shot itself in the foot. And this is very common occurrence in the post-patch OOTP X.

I was going to start a new solo league for myself. However, upon seeing this strange contract AI behavior, I don't think I want to play such league when I know AI is handicapping themselves in such obvious way.
__________________
Rating Translator v0.93b (for OOTP 6/6.5) - released/updated on 03/13/05.
- The function of this utility is to translate both the player's ability and talent ratings into stats (expected performance).

Note: Rating Translator is now also hosted at jazzrack's CLB - OOTP Download.

Click here for the discussion on "How computer GM may be made smarter by having built-in rating translation ability"
Jayzone is offline   Reply With Quote
Old 10-24-2009, 01:52 PM   #2
Afino
Hall Of Famer
 
Afino's Avatar
 
Join Date: Sep 2008
Location: Buffalo, NY
Posts: 3,828
Blog Entries: 2
I have noticed this too, but I'm not sure if it's a large scale. It seems to happen more with star players, the AI signs them to a contract above their cost-controlled arbitration estimates for no real reason.
__________________
GUBA: Moscow Enforcers

Afino is offline   Reply With Quote
Old 10-24-2009, 03:20 PM   #3
TribeFanInNC
Hall Of Famer
 
TribeFanInNC's Avatar
 
Join Date: Oct 2007
Posts: 4,019
There was a concerted effort to make arbitration more realistic in OOTP X. One of these ways was to try to get teams/players to avoid arbitration by signing extensions. IRL only a fraction of eligible players actually go to arbitration because it is not fun and generally just makes both sides bitter. OOTP is trying to do this as well. In reality, it should still settle more cases out of court, but it is a step in the right direction.

It looks like the system is probably working as intended. It offered a contract higher than the arby estimate but less than true resign amount. Looks like a good compromise to me. Again, this is more of a realism thing than a true saving money thing. Admittedly, I don't know if there is a change in this most recent patch.

Hopefully this provides some insight into the thinking anyway.

Last edited by TribeFanInNC; 10-24-2009 at 03:22 PM.
TribeFanInNC is offline   Reply With Quote
Old 10-24-2009, 03:25 PM   #4
Afino
Hall Of Famer
 
Afino's Avatar
 
Join Date: Sep 2008
Location: Buffalo, NY
Posts: 3,828
Blog Entries: 2
Tribe, I don't think the issue is with them signing contracts. As you said, it's agreeable to do that instead of going to arbitration.

But I think the issue is why only one year contracts? Obviously most of these players are good enough to merit long-term contracts (see Sizemore, Longoria, etc). So why aren't they signing long-term deals in the game too instead of one-year deals?

I think the system is working as intended, but the actual contracts aren't.
__________________
GUBA: Moscow Enforcers

Afino is offline   Reply With Quote
Old 10-24-2009, 03:36 PM   #5
TribeFanInNC
Hall Of Famer
 
TribeFanInNC's Avatar
 
Join Date: Oct 2007
Posts: 4,019
Quote:
Originally Posted by Afino View Post
But I think the issue is why only one year contracts?
I don't know if in general one year contracts are more realistic or not. I was thinking that was the case, but I could be wrong. I know my initial impression was that there were not enough 1 year contracts to avoid arbitration.

I know the Indians have a history of locking guys up to long term contracts to avoid arby. But I can't speak for other teams. And I'm too lazy to look.
TribeFanInNC is offline   Reply With Quote
Old 10-24-2009, 04:06 PM   #6
Jayzone
All Star Reserve
 
Jayzone's Avatar
 
Join Date: Apr 2004
Posts: 706
In real life, teams trying to avoid arbitration is motivated by money saving incentive besides avoiding hassle. They want to get a contract with arbitration eligible players because 1) if they can get a long-term contract, then they can possibly buy out some of future arbitration/FA years and/or bind the player to a lower-than-market rate 2) if it's a short-term contract (1yr), it's just to gurrantee that the contract term is acceptable to both parties, which in OOTP sense is like arbitration estimate.

The issue here is that team are offering 1-year contracts (same duration as contracts awarded by arbitration) with much higher amount than they could've gotten via arbitration. And AI teams are doing this to probably 70%,80% or maybe higher of all arbitration eligible players. To me, AI teams are not make the right decisions for the best interests of teams, financially. And what would any sane human GM do in their stead? They go to arbitrations and get 'reasonable' valued contracts (if they can't get a nice longish term contracts signed). This gives human player an unfair advantage because the new contract AI is not making decision based on the best interests of the team. Personally, playing against such AI is just pointless.
__________________
Rating Translator v0.93b (for OOTP 6/6.5) - released/updated on 03/13/05.
- The function of this utility is to translate both the player's ability and talent ratings into stats (expected performance).

Note: Rating Translator is now also hosted at jazzrack's CLB - OOTP Download.

Click here for the discussion on "How computer GM may be made smarter by having built-in rating translation ability"
Jayzone is offline   Reply With Quote
Old 10-25-2009, 11:09 AM   #7
Flying Dutchmen
Minors (Triple A)
 
Join Date: Jul 2007
Posts: 213
Quote:
Originally Posted by Jayzone View Post
In real life, teams trying to avoid arbitration is motivated by money saving incentive besides avoiding hassle. They want to get a contract with arbitration eligible players because 1) if they can get a long-term contract, then they can possibly buy out some of future arbitration/FA years and/or bind the player to a lower-than-market rate 2) if it's a short-term contract (1yr), it's just to gurrantee that the contract term is acceptable to both parties, which in OOTP sense is like arbitration estimate.

The issue here is that team are offering 1-year contracts (same duration as contracts awarded by arbitration) with much higher amount than they could've gotten via arbitration. And AI teams are doing this to probably 70%,80% or maybe higher of all arbitration eligible players. To me, AI teams are not make the right decisions for the best interests of teams, financially. And what would any sane human GM do in their stead? They go to arbitrations and get 'reasonable' valued contracts (if they can't get a nice longish term contracts signed). This gives human player an unfair advantage because the new contract AI is not making decision based on the best interests of the team. Personally, playing against such AI is just pointless.
I'm guessing you haven't seen an arbitration result where the outcome is $2-3M over the arbitration estimate. They do happen in my experience, although I'm not sure how often. Presumably the AI has to take into account that the following could occur:

Arbitration est: $6M
There could be a say 20% chance that the arbitration result could be $8M (in this simple case, let's assume the other 80% of the time, the player would get $6M). In this case it makes sense to offer a contract up to $6.4M (using a weighted mean calculation) which would lower the team's expected cost of the player and achieve cost certainty. Just a thought.
Flying Dutchmen is offline   Reply With Quote
Old 10-26-2009, 07:26 AM   #8
Markus Heinsohn
Developer OOTP
 
Markus Heinsohn's Avatar
 
Join Date: Dec 2001
Location: Germany
Posts: 24,738
Quote:
Originally Posted by Jayzone View Post
-> Team would be much better off by going into arbitration with arbitration estimate dollar or offering a longer term 6.8 mil per yr contract. As it currently stands, the player will very likely accept the 1 year 6.8 mil contract 'extension' and the AI team just shot itself in the foot. And this is very common occurrence in the post-patch OOTP X.
This is intentional behavior, as it happens all the time in real life. Teams negotiate 1-year extensions with arbitration eligible players to avoid the arbitration process and keep the player happy.
Markus Heinsohn is offline   Reply With Quote
Old 10-26-2009, 09:07 AM   #9
Matt Arnold
OOTP Developer
 
Matt Arnold's Avatar
 
Join Date: Jun 2009
Location: Here and there
Posts: 14,127
Quote:
Originally Posted by Markus Heinsohn View Post
This is intentional behavior, as it happens all the time in real life. Teams negotiate 1-year extensions with arbitration eligible players to avoid the arbitration process and keep the player happy.
So is there something in the game so that if players go to arbitration, their attitude goes down? If so, then it'd definitely be worth it to avoid a star player playing the season upset.
Matt Arnold is offline   Reply With Quote
Old 10-26-2009, 11:01 AM   #10
MrWorkrate
All Star Starter
 
MrWorkrate's Avatar
 
Join Date: Mar 2002
Location: Raleigh, NC
Posts: 1,262
Quote:
Originally Posted by Jayzone View Post
In real life, teams trying to avoid arbitration is motivated by money saving incentive besides avoiding hassle. They want to get a contract with arbitration eligible players because 1) if they can get a long-term contract, then they can possibly buy out some of future arbitration/FA years and/or bind the player to a lower-than-market rate 2) if it's a short-term contract (1yr), it's just to gurrantee that the contract term is acceptable to both parties, which in OOTP sense is like arbitration estimate.

The issue here is that team are offering 1-year contracts (same duration as contracts awarded by arbitration) with much higher amount than they could've gotten via arbitration. And AI teams are doing this to probably 70%,80% or maybe higher of all arbitration eligible players. To me, AI teams are not make the right decisions for the best interests of teams, financially. And what would any sane human GM do in their stead? They go to arbitrations and get 'reasonable' valued contracts (if they can't get a nice longish term contracts signed). This gives human player an unfair advantage because the new contract AI is not making decision based on the best interests of the team. Personally, playing against such AI is just pointless.
While the arbitration process exists in MLB, the percentage of actual arbitration cases that are actually heard is very small. It is generally in the best interest of both parties (but moreso the team) to come to a resolution (whether it be multi-year or just a single season contract) before the arbitration process is heard, as it usually strains the relationship between the player and team.

OOTP's "arbitration estimate" number is kind of a "middle ground" which was used in earlier versions for the assigned salary for an arbitration-eligible player. While I don't know the exact formula that is used to determine the number, it should not be (at least in my opinion) used as a "midpoint" between what the player would demand and what a team would offer. Remember that some players are a lot more unrealistic with their contract demands than others. OOTP may use a formula to look at the player's statistics and their value compared to other players at the position to come up with their "arbitration estimate" number, but that may not stop a player with a high greed level for thinking that he's worth several million more.

It's a tough call where the "problem" lies or even if there is a problem. In this past offseason 46 players exchanged arbitration figures (meaning the official process began and a hearing date was set). Of those, three (6.5%) actually went before a judge. Recently that percentage has varied from as little as 5% to as much as almost 17%, but that falls in line with the 70-80% of players being signed by AI mentioned earlier, if not making it a little conservative.

I think the "problem" lies in with how strongly the AI wants to "fight" for a "reasonable" salary with the player. Ideally, if the AI is going to sign 8 out of 10 arby-eligible players to contracts before a hearing, you want those 8 to be the most reasonable offers from the best players. But what of the players who don't fit into both of those? Which is more worth it - dropping an extra $2 million on your #3 starting pitcher to keep him happy, or rolling the dice and hoping to get him at $2 million less and risking not being able to sign him long-term because you had a hearing in court where you ran down all the reasons he's not worth what he's asking for.

Just because the "estimate" sees him as $4 million doesn't mean the player won't ask for $8 million, or you won't win a case offering $1 million. If the AI is offering several million over the arby estimate for a player who had 100 AB the previous season or spent the year as a backup middle infielder, then there's an issue. But if the "overspend" is for a player who is listed as "Extremely Popular" and/or is one of the top 7 or so players on the roster, then I think it's right in line.
__________________
I used to come here a lot. Now, not so much.
MrWorkrate is offline   Reply With Quote
Old 10-26-2009, 12:14 PM   #11
PhillieFever
Hall Of Famer
 
PhillieFever's Avatar
 
Join Date: Apr 2008
Location: Elk Twp. NJ
Posts: 6,763
Quote:
Originally Posted by Markus Heinsohn View Post
This is intentional behavior, as it happens all the time in real life. Teams negotiate 1-year extensions with arbitration eligible players to avoid the arbitration process and keep the player happy.
I definitely agree here,the Phillies gave Ryan Howard a one year deal worth 10 million to avoid arbitration in 2008,and then this year while he was still arbitration eligible they gave him a multi year deal worth 60 million I think.There are tons of other cases as well,but this was the highest profile one.
__________________
We're All Wednesday Aren't We?
WAWAW
PhillieFever is offline   Reply With Quote
Old 10-26-2009, 04:40 PM   #12
Nutlaw
Hall Of Famer
 
Nutlaw's Avatar
 
Join Date: Apr 2003
Posts: 9,538
One year contract extensions covering an arbitration year ought to more or less match arbitration estimates. I'm not sure why anyone would disagree with Jayzone's main assertion.

If a player and a team both know that a player will likely earn around X dollars in arbitration, then they will settle for around X dollars. A team won't give a player a bunch more money just because he asks for it. They'll go to arbitration instead because they'll save more money in the long run.

Now I haven't tested this behavior in recent versions, but if what Jayzone states is representative, then players in arbitration years are simply asking for too much money to cover arbitration seasons (and too little money to cover free agent seasons, likely). This part isn't new behavior. It's been documented.
Nutlaw is offline   Reply With Quote
Old 10-26-2009, 04:43 PM   #13
Nutlaw
Hall Of Famer
 
Nutlaw's Avatar
 
Join Date: Apr 2003
Posts: 9,538
Again, to clarify, teams and players in real life do often settle, but they often settle for the estimated arbitration value. Obviously.
Nutlaw is offline   Reply With Quote
Old 10-26-2009, 07:24 PM   #14
PhillieFever
Hall Of Famer
 
PhillieFever's Avatar
 
Join Date: Apr 2008
Location: Elk Twp. NJ
Posts: 6,763
From "The Biz Of Baseball"
The arbitration process,which was collectively bargained and implemented in 1974 works almost entirely in favor of the players.Most will see massive salary increases from the previous season.As noted below,the increase in salary for the 111 players from 2008 to 2009 is a whopping 143%

Total 2008 Salary for the 111 players who filed in 2009 $122,947,513
Total 2009 salary for the 111 players who filed in 2009 $298,891,250(143% increase)

Of the 111 players eligible,46 of them actually exchanged figures with their club on the 1/20/2009 deadline.Of those 46,just 3 cases were actually heard by the arbitration panel.The players won 2 to 1(Shawn Hill and Dan Uggla won their cases,Dioner Navarro lost his)

IMO,these numbers here justify the AI behavior in this matter.It is without a doubt in the GM's best interest to get these things settled.
__________________
We're All Wednesday Aren't We?
WAWAW
PhillieFever is offline   Reply With Quote
Old 10-26-2009, 08:44 PM   #15
Jayzone
All Star Reserve
 
Jayzone's Avatar
 
Join Date: Apr 2004
Posts: 706
Thanks, Nutlaw. That's exactly what I want to convey.

As for the info PhillieFever provided (2009 MLB Salary Arbitration Vital Stats), I think "... works almost entirely in favor of the players. Most will see massive salary increases from the previous season." doesn't literally mean players gets favorable arbitration results. Rather, it means the arbitration process works great in bringing riches (compared to baseline salary) for yet-to-be-FA players. It can be in the GM's best interest to get these things settled but they don't settle them just for settling's sake.

From the same site, here is the tally of historical arbitration results:
Historical Scorecard (who wins arbitration; current to 2008): Owners - 280 | Players - 207
Arbitration Scorecard
So, historically in MLB, players only win 42.5% of the cases that go to arbitration.

For the 143% increase in salary for the 113 arbitration eligible players in 2009. The reason is very obvious. Of course the salary will go a lot higher as those 113 players have just added one extra ML service year to their resume. Those 113 players include players who were not arbitration eligible in 2008 (player who just become super-2 or with 3+ years of service time), players who went from 3+ service years to 4+ years, and etc. You catch the drift. Thus, of course, there would be a significant increase in salary. I am sure that's the case for every single year. Players in OOTP also usually have their arbitration figure increased with every added service year, so there is nothing wrong with this.

In any case, for anyone want to see how this might (or might not) be a problem. Crease a test league and sim the league until the day after the end of world series. Go into commish mode and use "act as" mode to see each team's pending deals. You should see what I see: AI teams offering 1-yr extension to most of arbitration eligible players with amount much higher than arbitration estimate.
__________________
Rating Translator v0.93b (for OOTP 6/6.5) - released/updated on 03/13/05.
- The function of this utility is to translate both the player's ability and talent ratings into stats (expected performance).

Note: Rating Translator is now also hosted at jazzrack's CLB - OOTP Download.

Click here for the discussion on "How computer GM may be made smarter by having built-in rating translation ability"
Jayzone is offline   Reply With Quote
Old 10-27-2009, 12:59 PM   #16
MrWorkrate
All Star Starter
 
MrWorkrate's Avatar
 
Join Date: Mar 2002
Location: Raleigh, NC
Posts: 1,262
Quote:
Originally Posted by Nutlaw View Post
One year contract extensions covering an arbitration year ought to more or less match arbitration estimates. I'm not sure why anyone would disagree with Jayzone's main assertion.

If a player and a team both know that a player will likely earn around X dollars in arbitration, then they will settle for around X dollars. A team won't give a player a bunch more money just because he asks for it. They'll go to arbitration instead because they'll save more money in the long run.
Quote:
Originally Posted by Nutlaw View Post
Again, to clarify, teams and players in real life do often settle, but they often settle for the estimated arbitration value. Obviously.
I don't think you understand the MLB arbitration process, which this is trying to replicate.

In MLB, there is no "arbitration estimate" outside of guesses being put forth by analysts based on similar players, the team's financial situation, and other factors. When an arbitration case is filed, the player and the team submit a number, usually a decent amount apart (otherwise they probably would have worked something out already), and if the player and team cannot come to an agreement before the time the case is heard, the judge hears both arguments and decides either in favor of the player or the team, and the player's salary is the number they submitted. The judge doesn't pick any kind of middle number - if a player is probably worth around $5 million and the player asks for $15 million and the team offers $700k, that player will either make $15 million or $700k the following season.

The "arbitration estimate" number is a guide, mainly to give you an idea of what might be seen as a "fair" contract offer, at least in the eyes of the AI determining who would win the case. It doesn't mean that the player would sign a 1 year deal for that amount, but if you go to arbitration and submit a number that is the same as the "arbitration estimate" given, you'll win the case every time. The challenge, if you're trying to be thrifty, is to try to submit a lower offer and hope that it's still closer to the estimate than the player's offer.

For example:

Arbitration Estimate: $4 million
Player Expects: $7 million
Team Arbitration Offer: $2.5 million
RESULT: Team wins arbitration, player receives $2.5 million salary

If you try to offer this player a 1-year $4 million contract before the hearing, he won't accept it. He probably wouldn't accept a $5 million contract. But by submitting a number closer to the estimate than the player, you'd win because your $2.5 million offer is seen as more "reasonable". However, you'd anger the player.

Arbitration Estimate: $4 million
Player Expects: $5.25 million
Team Arbitration Offer: $2.5 million
RESULT: Player wins arbitration, player receives $5.25 million salary

Would the player have accepted the $4 million offer here before the hearing? Possibly, depending on his loyalty and greed. Would he have accepted a $4.75 million offer? There's a good chance he would have, which is higher than the arbitration estimate but prevents the player from getting angry about going to arbitration, which the player would still be (even after winning the hearing) if his case is brought up.

The larger the estimate, the more potential difference there is between that estimate and what the player expects, resulting in a larger potential discrepancy between the estimate and what that player will sign for before the case is heard. This is still a contract negotiation, and players aren't going to change their demand just because of an arbitration estimate. The AI is just electing to "pay the premium" above the estimate to get the player signed and not allow the case to go to arbitration.

The problem is with the "arbitration estimate" - this number doesn't really exist in MLB, so it's skewing your view of this process.
__________________
I used to come here a lot. Now, not so much.
MrWorkrate is offline   Reply With Quote
Old 10-27-2009, 03:17 PM   #17
PhillieFever
Hall Of Famer
 
PhillieFever's Avatar
 
Join Date: Apr 2008
Location: Elk Twp. NJ
Posts: 6,763
Personally,I don't think the arbitration estimate should even be in the game,it really takes away from the chess match between player and management.
__________________
We're All Wednesday Aren't We?
WAWAW
PhillieFever is offline   Reply With Quote
Old 10-27-2009, 03:24 PM   #18
TribeFanInNC
Hall Of Famer
 
TribeFanInNC's Avatar
 
Join Date: Oct 2007
Posts: 4,019
Quote:
Originally Posted by PhillieFever View Post
Personally,I don't think the arbitration estimate should even be in the game,it really takes away from the chess match between player and management.
It is necessary to have some number for future planning purposes. I agree though that it might take away from the chess match. I haven't really figure out if it has much bearing on the chess match though.
TribeFanInNC is offline   Reply With Quote
Old 10-27-2009, 03:38 PM   #19
mikev
Hall Of Famer
 
mikev's Avatar
 
Join Date: Dec 2004
Location: Bay Area, CA
Posts: 4,014
Quote:
Originally Posted by MrWorkrate View Post
The "arbitration estimate" number is a guide, mainly to give you an idea of what might be seen as a "fair" contract offer, at least in the eyes of the AI determining who would win the case. It doesn't mean that the player would sign a 1 year deal for that amount, but if you go to arbitration and submit a number that is the same as the "arbitration estimate" given, you'll win the case every time. The challenge, if you're trying to be thrifty, is to try to submit a lower offer and hope that it's still closer to the estimate than the player's offer.
So you're saying that OOTP just picks the number closer to the arbitration estimate?

I don't believe that's true.
__________________
Global Unified Baseball Association - Vice Commish and Oakland Oaks GM
mikev is offline   Reply With Quote
Old 10-27-2009, 04:15 PM   #20
MrWorkrate
All Star Starter
 
MrWorkrate's Avatar
 
Join Date: Mar 2002
Location: Raleigh, NC
Posts: 1,262
Quote:
Originally Posted by mikev View Post
So you're saying that OOTP just picks the number closer to the arbitration estimate?

I don't believe that's true.
That's my belief, but I didn't program the game so I don't know that for certain. I do know that there has to be some basis that the AI uses to determine which side wins the arbitration hearing, and I would assume that it isn't just random.

Considering the "arbitration estimate" number was the actual arbitration salary awarded up until recently, it would be logical for the AI to use that number as the number to work from.
__________________
I used to come here a lot. Now, not so much.
MrWorkrate is offline   Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:55 AM.

 

Major League and Minor League Baseball trademarks and copyrights are used with permission of Major League Baseball. Visit MLB.com and MiLB.com.

Officially Licensed Product – MLB Players, Inc.

Out of the Park Baseball is a registered trademark of Out of the Park Developments GmbH & Co. KG

Google Play is a trademark of Google Inc.

Apple, iPhone, iPod touch and iPad are trademarks of Apple Inc., registered in the U.S. and other countries.

COPYRIGHT © 2023 OUT OF THE PARK DEVELOPMENTS. ALL RIGHTS RESERVED.

 

Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright © 2020 Out of the Park Developments