Monday, April 21, 2025

Righty/Lefty 1950-2024 sOPS+ splits leaders for batter SEASONS. Barry Bonds is king of splits.

Photo of Barry Bonds

Barry Bonds

Position: Leftfielder

Bats: Left  •  Throws: Left

6-1185lb (185cm, 83kg)

Born: July 241964 (Age: 60-271d) in Riverside, CA us






Click this link to view the data used here. It was derived from Stathead.com

Righty/Lefty sOPS+ splits 1950-2024. Sunday, April 13, 2025

For 75 seasons, using a different stat: sOPS+. From the Baseball Reference glossary for splits:

sOPS+ -- OPS for split relative to League’s Split OPS

A number greater than 100 indicates this batter(pitcher) did better(worse) than the league in this split.

A number less than 100 indicates that the batter(pitcher) did worse(better) than the league in this split.

League averages are for the major leagues as a whole and include pitchers’ batting.

sOPS+ is not park-adjusted. ...

Barry Bonds has the highest sOPS+ against both (vs RHP) and (vs LHP)

______________________

This post parallels the post below. The data there is also used in this post.

Righty/Lefty 1950-2024 OPS splits for batter SEASONS. Tuesday, April 8, 2025

Data derived from:

https://stathead.com/tiny/S3FFV

In the Regular Season, from 1950 to 2024, vs RHP (within Platoon Splits), requiring Plate Appearances >= 328 and On-Base Plus Slugging >= 1.000, sorted by greatest On-Base Plus Slugging.

373 records found.

https://stathead.com/tiny/4p0J5

In the Regular Season, from 1950 to 2024, vs LHP (within Platoon Splits), requiring On-Base Plus Slugging >= 1.000 and Plate Appearances >= 114, sorted by greatest On-Base Plus Slugging.

729 records found.

373+729=1102

________________________________________

ALL records have OPS >= 1.000.

A table was created that contained a record for each of the 75 MLB seasons 1950-2024. It contains the minimum PA for each season for (vs RHP) and (vs LHP). That number is based on MLB splits each season for the number of outs credited to the pitchers. Using that, 892 records were selected as eligible from the 1102 found in the two queries in stathead.com.

It was based on a total of 500 PA. If the percent of outs credited to LHP was 30%, then the minimum PA (vs LHP) for batters is 150 for that season and 70% (350) for (vs RHP)...

Throws is shown for differentiate true lefties like Bonds from opportunist lefty batters like Ted Williams and Eddie Mathews who threw righty...

When I was planning this, it didn't occur to me that Ted Williams would pop up. Nor Stan Musial...

Bonds is also the only batter on both top ten lists...

Only Mantle, Bonds and Judge led (OPS) in both (vs RHP) and (vs LHP) in the same year.

_______________________________________

Those same three (Bonds twice) are also the only ones to also lead MLB in both (vs RHP) and (vs LHP) in sOPS+ in the same year.

qryRightyLeftySeasonMaxBoth
Year Player Rsplit Rpa Rops RsOPS+ 1OPSRHP 1sOPS+RHP Lsplit Lpa Lops LsOPS+ 1OPSLHP 1sOPS+LHP
1956 Mickey Mantle vs RHP 443 1.196 223 Yes Yes vs LHP 209 1.116 204 Yes Yes
2002 Barry Bonds vs RHP 434 1.312 250 Yes Yes vs LHP 178 1.532 308 Yes Yes
2003 Barry Bonds vs RHP 389 1.267 236 Yes Yes vs LHP 161 1.300 237 Yes Yes
2024 Aaron Judge vs RHP 520 1.132 214 Yes Yes vs LHP 184 1.240 246 Yes Yes

Remember, Mantle switch hit, Bonds batted lefty and Judge bats righty.

Against lefty pitching (vs LHP) in 2002, Bonds had an astonishing sOPS+ 308. Bonds was more than three times better than the average MLB batter in that split.

Judge batted 520 times against righty pitching (vs RHP) in 2024. But that's only #20 among the 199 records in this study. Sorted on PA:

qryRightyLeftyBatterSeasons1950-2024
FullName Split Year sOPS+ OPS PA PAlefty PArighty bats throws Age
Duke Snider vs RHP 1954 198 1.093 602 140 360 L R 28
Duke Snider vs RHP 1955 188 1.055 590 143 357 L R 29
Duke Snider vs RHP 1956 181 1.036 583 132 368 L R 30
Duke Snider vs RHP 1953 192 1.095 577 152 348 L R 27
Sammy Sosa vs RHP 2001 189 1.115 574 120 380 R R 33
Bobby Witt vs RHP 2024 181 1.012 566 134 366 R R 24
Gary Sheffield vs RHP 1996 183 1.088 551 128 372 R R 28
Lance Berkman vs RHP 2001 188 1.099 548 120 380 B L 25
Alex Rodriguez vs RHP 2002 187 1.094 544 126 374 R R 27
Billy Williams vs RHP 1970 189 1.04 539 152 348 L R 32
Matt Olson vs RHP 2023 187 1.061 538 132 368 L R 29
Carl Yastrzemski vs RHP 1967 224 1.081 534 149 351 L R 28
Alex Rodriguez vs RHP 2007 188 1.099 532 136 364 R R 32
Lance Berkman vs RHP 2004 180 1.070 531 136 364 B L 28
Aaron Judge vs RHP 2022 220 1.142 529 136 364 R R 30
Aaron Judge vs RHP 2017 183 1.079 523 129 371 R R 25
Todd Helton vs RHP 2000 203 1.200 522 122 378 L L 27
Eddie Mathews vs RHP 1959 191 1.051 522 116 384 L R 28
Eddie Mathews vs RHP 1957 181 1.013 521 114 386 L R 26
Aaron Judge vs RHP 2024 214 1.132 520 134 366 R R 32

The most PA 1950-2024 against righty pitching (vs RHP):

https://stathead.com/tiny/mxMdV

In the Regular Season, from 1950 to 2024, vs RHP (within Platoon Splits), requiring Plate Appearances >= 600, sorted by greatest Plate Appearances.

Provided by Stathead.comFound with Stathead. See Full Results.
Generated 4/21/2025.

Jim Gilliam was a switch hitter. Only lefty Duke Snider is in this study. They and righty Gil Hodges were on the Brooklyn Dodgers.

Sorted on sOPS+, OPS.

Top 20 sOPS+ (vs RHP) out of 348 records in this study:

66 out of 348 records had sOPS+ >= 200.

Three times a batter led in sOPS+ but not in OPS:

qryRightyLeftysOPS+Season
Player Split Year PA OPS sOPS+ 1OPS RHP 1sOPS RHP Bat Throw Born PArighty PAlefty
David Ortiz vs RHP 2007 457 1.1707 208 No Yes L L 1975 364 136
Mike Greenwell vs RHP 1988 479 1.041 198 No Yes L R 1963 346 154
Prince Fielder vs RHP 2011 499 1.046 190 No Yes L R 1984 367 133

qryRightyLeftysOPS+Season
Player Split Year PA OPS sOPS+ 1OPS RHP 1sOPS RHP Bat Throw Born PArighty PAlefty
Barry Bonds vs RHP 2004 411 1.609 318 Yes Yes L L 1964 364 136
Barry Bonds vs RHP 2001 475 1.437 273 Yes Yes L L 1964 380 120
Ted Williams vs RHP 1957 411 1.33 269 Yes Yes L R 1918 386 114
Ted Williams vs RHP 1954 383 1.289 253 Yes Yes L R 1918 360 140
Barry Bonds vs RHP 2002 434 1.312 250 Yes Yes L L 1964 374 126
Norm Cash vs RHP 1961 511 1.262 243 Yes Yes L L 1933 358 142
Willie Stargell vs RHP 1971 377 1.167 237 Yes Yes L L 1940 345 155
Barry Bonds vs RHP 2003 389 1.267 236 Yes Yes L L 1964 365 135
Willie McCovey vs RHP 1969 484 1.17 236 Yes Yes L L 1938 357 143
Joe Morgan vs RHP 1976 418 1.141 233 Yes Yes L R 1943 348 152
Mark McGwire vs RHP 1998 498 1.268 231 Yes Yes R R 1963 368 132
Jim Thome vs RHP 2002 423 1.251 229 No No L R 1970 374 126
Larry Walker vs RHP 1997 494 1.257 227 Yes Yes L R 1966 369 131
Barry Bonds vs RHP 1993 414 1.197 224 Yes Yes L L 1964 355 145
Mickey Mantle vs RHP 1957 448 1.158 224 No No B R 1931 386 114
Carl Yastrzemski vs RHP 1967 534 1.081 224 Yes Yes L R 1939 351 149
Mickey Mantle vs RHP 1956 443 1.196 223 Yes Yes B R 1931 368 132
John Olerud vs RHP 1993 466 1.178 220 No No L L 1968 355 145
Aaron Judge vs RHP 2022 529 1.142 220 Yes Yes R R 1992 364 136
Frank Robinson vs RHP 1966 471 1.116 220 Yes Yes R R 1935 344 156

McGwire, Mantle, Judge and Robinson are the only non lefty batters.

Top 25 sOPS+ (vs LHP) out of 547 records in this study:

155 out of 547 records had sOPS+ >= 200.

Led in sOPS+ but not OPS:

qryRightyLeftysOPS+Season
Player Split Year PA OPS sOPS+ 1OPS LHP 1sOPS LHP Bat Throw Born PArighty PAlefty
Mickey Mantle vs LHP 1957 175 1.214 236 No Yes B R 1931 386 114
Ryan Braun vs LHP 2009 141 1.198 216 No Yes R R 1983 363 137
Nomar Garciaparra vs LHP 1999 126 1.24 214 No Yes R R 1973 376 124
Frank Howard vs LHP 1970 276 1.117 214 No Yes R R 1936 348 152
Dale Murphy vs LHP 1987 211 1.165 211 No Yes R R 1956 338 162
Rickey Henderson vs LHP 1993 167 1.084 190 No Yes R L 1958 355 145

Mantle in 1957 is also in the list below among the highest sOPS+. In 1957 Mays had a slightly higher OPS than Mantle: 1.222 but sOPS+ 235. Mays is also in the list below.

qryRightyLeftysOPS+Season
Player Split Year PA OPS sOPS+ 1OPS LHP 1sOPS LHP Bat Throw Born PArighty PAlefty
Barry Bonds vs LHP 2002 178 1.532 308 Yes Yes L L 1964 374 126
Dick Allen vs LHP 1966 231 1.369 293 Yes Yes R R 1942 344 156
Sammy Sosa vs LHP 2001 137 1.451 275 Yes Yes R R 1968 380 120
Mickey Mantle vs LHP 1964 186 1.302 275 Yes Yes B R 1931 347 153
Willie Mays vs LHP 1964 183 1.286 269 No No R R 1931 347 153
Paul Goldschmidt vs LHP 2022 137 1.327 267 Yes Yes R R 1987 364 136
Frank Howard vs LHP 1968 200 1.196 265 Yes Yes R R 1936 358 142
Cecil Fielder vs LHP 1990 215 1.333 263 Yes Yes R R 1963 331 169
Frank Thomas vs LHP 1995 168 1.373 258 Yes Yes R R 1968 364 136
J. D. Martinez vs LHP 2019 170 1.381 252 Yes Yes R R 1987 362 138
Frank Thomas vs LHP 2000 122 1.373 248 Yes Yes R R 1968 378 122
Frank Thomas vs LHP 1996 158 1.343 246 Yes Yes R R 1968 372 128
Nolan Arenado vs LHP 2017 165 1.313 246 Yes Yes R R 1991 371 129
Aaron Judge vs LHP 2024 184 1.240 246 Yes Yes R R 1992 366 134
Buster Posey vs LHP 2012 181 1.262 245 Yes Yes R R 1987 350 150
Hank Aaron vs LHP 1962 182 1.24 244 Yes Yes R R 1934 362 138
Troy Glaus vs LHP 2000 166 1.354 241 No No R R 1976 378 122
Sammy Sosa vs LHP 2002 135 1.259 240 No No R R 1968 374 126
Frank Robinson vs LHP 1959 178 1.239 240 Yes Yes R R 1935 384 116
Miguel Cabrera vs LHP 2013 164 1.210 238 Yes Yes R R 1983 356 144
Barry Bonds vs LHP 2003 161 1.300 237 Yes Yes L L 1964 365 135
Edgar Martinez vs LHP 1995 169 1.271 236 No No R R 1963 364 136
Mickey Mantle vs LHP 1957 175 1.214 236 No Yes B R 1931 386 114
Juan Gonzalez vs LHP 1996 156 1.322 235 No No R R 1969 372 128
Willie Mays vs LHP 1957 146 1.222 235 Yes No R R 1931 386 114

Bonds is the only lefty batter.

All 75 season leaders (some seasons did not have a batter with OPS>=1.000 and sufficient PA:

Instead of listing sOPS+ leaders for each of the 75 seasons, here are the batters with a high number of seasons at certain levels.

(vs RHP) multiple leaders:

66 out of 348 records had sOPS+ >= 200.

sOPS+ >= 200 (twice MLB average that season. Batters with multiple seasons:

qryMaxRHP
Player Bat Throw Split Num sOPS +max sOPS +min Year1 YearL
Barry Bonds L L vs RHP 6 318 215 1993 2004
Jim Thome L R vs RHP 4 229 203 1996 2006
Ted Williams L R vs RHP 3 269 204 1954 1958
Mickey Mantle B R vs RHP 3 224 206 1956 1961
Carl Yastrzemski L R vs RHP 3 224 201 1965 1970
Todd Helton L L vs RHP 3 215 203 2000 2004
Willie Stargell L L vs RHP 2 237 210 1971 1973
Mark McGwire R R vs RHP 2 231 200 1996 1998
Aaron Judge R R vs RHP 2 220 214 2022 2024
Bryce Harper L R vs RHP 2 218 214 2015 2021
Jason Giambi L R vs RHP 2 214 209 2000 2001
Shohei Ohtani L R vs RHP 2 211 205 2023 2024
David Ortiz L L vs RHP 2 208 202 2007 2013

McGwire and Judge are the only righty batters.

Active players through 2024: Judge, Harper, Ohtani. Conspicuous by his absence: Mike Trout who had only one >= 200: 205 in 2018.

(vs LHP) multiple leaders:

155 out of 547 records had sOPS+ >= 200.

sOPS+ >= 200 (twice MLB average that season. Batters with multiple seasons:

qryMaxLHP
Player Bat Throw Split Num sOPS +max sOPS +min Year1 YearL
Willie Mays R R vs LHP 8 269 200 1954 1971
Hank Aaron R R vs LHP 8 244 202 1957 1973
Mickey Mantle B R vs LHP 7 275 204 1955 1964
Frank Thomas R R vs LHP 6 258 204 1991 2003
Dick Allen R R vs LHP 4 293 212 1964 1972
Frank Howard R R vs LHP 4 265 211 1968 1971
Albert Pujols R R vs LHP 4 226 206 2003 2009
Barry Bonds L L vs LHP 3 308 220 2001 2003
Mike Schmidt R R vs LHP 3 231 211 1974 1986
Jeff Bagwell R R vs LHP 3 225 202 1998 2002
Manny Ramirez R R vs LHP 3 207 202 1995 1999
Sammy Sosa R R vs LHP 2 275 240 2001 2002
Paul Goldschmidt R R vs LHP 2 267 200 2015 2022
Nolan Arenado R R vs LHP 2 246 228 2017 2018
Frank Robinson R R vs LHP 2 240 234 1959 1969
Miguel Cabrera R R vs LHP 2 238 201 2007 2013
Edgar Martinez R R vs LHP 2 236 206 1995 1999
Ryan Braun R R vs LHP 2 229 216 2009 2012
Victor Martinez B R vs LHP 2 217 214 2010 2014
Jose Bautista R R vs LHP 2 217 203 2011 2014
Chipper Jones B R vs LHP 2 217 201 1999 2000
Justin Upton R R vs LHP 2 216 205 2009 2017
Jeff Burroughs R R vs LHP 2 215 206 1974 1978
Andrew McCutchen R R vs LHP 2 214 200 2012 2017
David Wright R R vs LHP 2 212 201 2008 2013
Dale Murphy R R vs LHP 2 211 205 1982 1987
Nelson Cruz R R vs LHP 2 207 205 2015 2019
Cal Ripken R R vs LHP 2 203 200 1986 1991
Vladimir Guerrero R R vs LHP 2 202 200 2000 2006

Switch hitters: Mantle and Martinez.

Bonds is the only lefty batter and he has the highest sOPS+ (vs LHP): 308. Bonds is the only lefty batter with more than one season sOPS+ >= 200.

Let's look at only the top lefty batters (vs LHP) and sOPS+ >= 200:

qryMaxLHP
Player Bat Throw Split Num sOPS +max sOPS +min Year1 YearL
Barry Bonds L L vs LHP 3 308 220 2001 2003
Stan Musial L L vs LHP 1 210 210 1954 1954
Larry Walker L R vs LHP 1 207 207 2001 2001
Ted Williams L R vs LHP 1 206 206 1956 1956

Notable players:

qryRightyLeftyIndividuals
Player Year Split OPS PA BA OBP SLG sOPS+ 1sOPS+RHP 1sOPS+LHP
Mike Trout 2013 vs RHP 1.000 523 0.327 0.428 0.572 178 No No
Mike Trout 2015 vs LHP 1.032 175 0.313 0.434 0.597 186 No No
Mike Trout 2017 vs RHP 1.113 401 0.313 0.441 0.672 193 Yes No
Mike Trout 2018 vs RHP 1.118 462 0.318 0.462 0.656 205 Yes No
Mike Trout 2019 vs RHP 1.124 416 0.303 0.442 0.682 195 No No
Mike Trout 2022 vs LHP 1.058 138 0.31 0.42 0.638 193 No No


qryRightyLeftyIndividuals
Player Year Split OPS PA BA OBP SLG sOPS+ 1sOPS+RHP 1sOPS+LHP
Barry Bonds 1992 vs RHP 1.11 329 0.311 0.465 0.645 220 No No
Barry Bonds 1992 vs LHP 1.044 283 0.311 0.445 0.599 188 No No
Barry Bonds 1993 vs RHP 1.197 414 0.343 0.481 0.717 224 Yes No
Barry Bonds 1993 vs LHP 1.042 260 0.326 0.423 0.619 178 No No
Barry Bonds 1994 vs RHP 1.101 334 0.321 0.437 0.664 188 No No
Barry Bonds 1994 vs LHP 1.007 140 0.291 0.400 0.607 156 No No
Barry Bonds 1995 vs RHP 1.061 470 0.304 0.447 0.614 180 No No
Barry Bonds 1996 vs RHP 1.107 499 0.308 0.483 0.624 188 No No
Barry Bonds 1997 vs RHP 1.040 479 0.290 0.455 0.585 174 No No
Barry Bonds 1997 vs LHP 1.011 211 0.295 0.427 0.584 168 No No
Barry Bonds 1998 vs RHP 1.106 483 0.313 0.447 0.659 190 No No
Barry Bonds 2000 vs RHP 1.246 435 0.34 0.487 0.759 215 Yes No
Barry Bonds 2001 vs RHP 1.437 475 0.334 0.526 0.91 273 Yes No
Barry Bonds 2001 vs LHP 1.239 189 0.312 0.487 0.752 220 No No
Barry Bonds 2002 vs RHP 1.312 434 0.363 0.592 0.719 250 Yes No
Barry Bonds 2002 vs LHP 1.532 178 0.384 0.556 0.976 308 No Yes
Barry Bonds 2003 vs RHP 1.267 389 0.331 0.537 0.729 236 Yes No
Barry Bonds 2003 vs LHP 1.300 161 0.363 0.509 0.79 237 No Yes
Barry Bonds 2004 vs RHP 1.609 411 0.395 0.652 0.957 318 Yes No
Barry Bonds 2004 vs LHP 1.096 206 0.307 0.524 0.571 190 No No
Barry Bonds 2006 vs RHP 1.011 349 0.276 0.456 0.556 165 No No


qryRightyLeftyIndividuals
Player Year Split OPS PA BA OBP SLG sOPS+ 1sOPS+RHP 1sOPS+LHP
Willie Mays 1954 vs RHP 1.053 426 0.346 0.394 0.659 186 No No
Willie Mays 1954 vs LHP 1.149 196 0.338 0.449 0.700 216 No Yes
Willie Mays 1955 vs RHP 1.055 414 0.323 0.391 0.664 186 No No
Willie Mays 1955 vs LHP 1.083 219 0.324 0.429 0.654 197 No No
Willie Mays 1957 vs LHP 1.222 146 0.339 0.445 0.777 235 No No
Willie Mays 1958 vs LHP 1.134 157 0.349 0.452 0.682 214 No Yes
Willie Mays 1959 vs LHP 1.159 137 0.333 0.438 0.721 217 No No
Willie Mays 1960 vs LHP 1.049 215 0.354 0.414 0.635 193 No No
Willie Mays 1962 vs LHP 1.122 205 0.343 0.420 0.702 212 No No
Willie Mays 1964 vs LHP 1.286 183 0.373 0.475 0.811 269 No No
Willie Mays 1965 vs RHP 1.065 459 0.320 0.395 0.670 207 Yes No
Willie Mays 1966 vs LHP 1.030 165 0.277 0.430 0.600 200 No No
Willie Mays 1967 vs LHP 1.000 139 0.296 0.409 0.591 195 No No
Willie Mays 1971 vs LHP 1.112 163 0.312 0.472 0.639 227 No Yes


qryRightyLeftyIndividuals
Player Year Split OPS PA BA OBP SLG sOPS+ 1sOPS+RHP 1sOPS+LHP
Hank Aaron 1957 vs LHP 1.123 126 0.375 0.444 0.679 210 No No
Hank Aaron 1959 vs RHP 1.009 534 0.352 0.395 0.614 179 No No
Hank Aaron 1959 vs LHP 1.136 159 0.364 0.421 0.714 210 No No
Hank Aaron 1960 vs LHP 1.085 184 0.348 0.408 0.677 202 No No
Hank Aaron 1961 vs LHP 1.13 200 0.388 0.45 0.68 211 No No
Hank Aaron 1962 vs LHP 1.24 182 0.391 0.445 0.795 244 No Yes
Hank Aaron 1965 vs LHP 1.273 146 0.395 0.5 0.773 271 No No
Hank Aaron 1966 vs LHP 1.011 193 0.305 0.389 0.623 193 No No
Hank Aaron 1969 vs LHP 1.038 176 0.276 0.403 0.635 199 No No
Hank Aaron 1970 vs RHP 1.041 454 0.314 0.408 0.634 189 No No
Hank Aaron 1971 vs RHP 1.094 402 0.343 0.428 0.666 216 No No
Hank Aaron 1971 vs LHP 1.044 171 0.291 0.368 0.676 204 No No
Hank Aaron 1972 vs LHP 1.086 195 0.321 0.426 0.661 219 No Yes
Hank Aaron 1973 vs LHP 1.176 210 0.335 0.452 0.724 231 No Yes


qryRightyLeftyIndividuals
Player Year Split OPS PA BA OBP SLG sOPS+ 1sOPS+RHP 1sOPS+LHP
Mickey Mantle 1952 vs LHP 1.004 235 0.337 0.408 0.596 187 No No
Mickey Mantle 1953 vs LHP 1.026 223 0.348 0.404 0.623 183 No No
Mickey Mantle 1955 vs RHP 1.005 452 0.281 0.416 0.590 175 No No
Mickey Mantle 1955 vs LHP 1.130 186 0.364 0.468 0.662 210 No No
Mickey Mantle 1956 vs RHP 1.196 443 0.342 0.459 0.737 223 Yes No
Mickey Mantle 1956 vs LHP 1.116 209 0.375 0.474 0.642 204 No Yes
Mickey Mantle 1957 vs RHP 1.158 448 0.339 0.518 0.64 224 No No
Mickey Mantle 1957 vs LHP 1.214 175 0.421 0.497 0.717 236 No Yes
Mickey Mantle 1958 vs RHP 1.009 501 0.282 0.427 0.582 179 No No
Mickey Mantle 1958 vs LHP 1.120 153 0.377 0.497 0.623 212 No No
Mickey Mantle 1960 vs LHP 1.146 187 0.344 0.433 0.713 219 No Yes
Mickey Mantle 1961 vs RHP 1.131 443 0.291 0.439 0.692 206 No No
Mickey Mantle 1961 vs LHP 1.145 203 0.371 0.468 0.677 215 No Yes
Mickey Mantle 1962 vs RHP 1.168 344 0.327 0.503 0.665 222 No No
Mickey Mantle 1964 vs LHP 1.302 186 0.424 0.511 0.791 275 No Yes



Best OPS season splits: 1950-1974, 1975-1999, 2000-2024. Friday, April 11, 2025

____________________________________

Bats/Throws: Executive Summary Friday, March 1, 2013

Bats/Throws: summary Thursday, February 28, 2013

Mickey Mantle RightyLefty Home/Road. Monday, March 31, 2025


No comments: