
Hayden Winks Fantasy Analyst Thu, October 29, 2026 at 10:01 PM UTC · 26 min read About Our Ads Advertisement Advertisement Advertisement The Blueprint is my weekly column and basically everything that I use to build out the most accurate rankings I can. There will be an RB column , this WR column and a combination column on the onesie positions . You will find film notes and endless charts. Maybe enough charts to stress test the Yahoo website. I kid.
It's impossible to get every ranking thoroughly by Thursday Night Football, so be sure to keep checking in on these columns through Sunday morning. As always, my full rankings at every position are available .
1. Jaxon Smith-Njigba (vs. CHI) - 99.5 proj. receiving yards
JSN is the WR1 on WR3 usage this season, and things could smooth out moving forward with LG Quenton Nelson joining the squad. He had a wild 46% target share last week in a brutal matchup with the Chiefs, overcoming legit bracket coverage en route to 150 yards and a WR1 overall finish. There's no stopping him right now.
He faces a Bears defense allowing the 19th-most half PPR points to WRs and just added elite DT Jeffery Simmons, but they've allowed the fourth-most points on deep targets where JSN has 15 looks this year. Seattle enters as 3-point home favorites with an implied total of 24.75 points (10th).
2. Puka Nacua (vs. LAC) - 89.5 proj. receiving yards
Nacua doesn't look anywhere near 100% healthy, and it really has not mattered for his box scores for now. He's the WR1 on WR1 usage over his last four games since his "pre hernia" absence. Only Jaxon Smith-Njigba is in his zip code right now. The loss of Davante Adams will be a net win for Nacua, especially in the red zone. The Rams used three+ TEs on a season-high 35 snaps last week. And nine of 10 targets to Nacua were within 10 air yards. This will be a "we're tougher than you" offense for as long as their bodies can hold up.
The Chargers sell out to stop deep passes, funneling everything to RB runs or underneath passes. That's how Nacua has operated recently, and the Chargers won't have SCB Derwin James (IR) to clean things up. Another healthy 26.0-point team total (fifth) awaits.
3. CeeDee Lamb (vs. ARI) - 79.5 proj. receiving yards
4. Ja'Marr Chase (vs. TEN) - 79.5 proj. receiving yards
If we remove Week 1 after a late training camp injury and Week 4's concussion game, Chase has been the WR5, WR5, WR13 and WR15 this season. Keep in mind that Tee Higgins is pacing for 1,618 receiving yards himself. The ceiling remains elite even if we haven't seen it as often so far. The Bengals led the NFL with a 65% neutral pass rate and have had the highest success rate on deep targets. The signature 30+ game is coming from Chase.
Tennessee ranks 10th in half PPR points allowed to opposing WRs, including the most points allowed per game on targets under 10 air yards, where Chase has earned 30 targets already. Cincinnati carries an implied team total of 29.0 points (second) as 10-point home favorites. This is an excellent spot.
5. Zay Flowers (at BUF) - 79.5 proj. receiving yards
The Flowers magic continued, even without Lamar Jackson again. He's so quick on tape, and new OC Declan Doyle is using him like he's the most important person in his life. A long screen TD started off the game in Week 7, but Flowers also had an easy shallow drag completion, was put in motion at the snap for a target and hit on a great dig route over the middle. None of this is new. Despite half games and starts with backups, Flowers is the WR5 on WR14 usage. His 3.7 yards per route run are the best in the league, and only four of 54 targets have been contested. Wild stuff.
Now he draws a Bills secondary that has allowed the most half PPR points per game to wideouts, including top-five marks across deep (15+ air yards), intermediate (5-20) and shallow (under 10) zones. They will shadow with CB1 Christian Benford, but he's not fast enough while playing through injuries to slow Flowers down much.
6. Tee Higgins (vs. TEN) - 69.5 proj. receiving yards
As mentioned, Higgins is on pace for 1,618 receiving yards. This month, he's the WR5 on WR16 usage. His tape is the best it's ever been, operating as a real deal No. 1 target on intermediate breaking routes on top of his signature catch point moments near the sideline. He was outstanding against the Ravens' loaded secondary last week, finishing as the WR2 overall with 148 yards.
He had a 3rd-and-3 slant win that twisted up a press corner. He stacked Nate Wiggins on a go ball up the sideline. He stole a dig route by coming back to the ball against a zone LB. And he scored from the No. 3 spot in a trips set on a skinny post against Kyle Hamilton. Yahoo's Football 301 noted that Higgins had been positioned there just 14 times in his NFL career and the first time he was there this entire season:
Cincinnati leads the entire NFL with a 65% neutral pass rate (first) and in success rate on throws of 10+ air yards. It's back to buttering its bread. Oh, and it has the easiest remaining schedule by far:
7. Justin Jefferson (at DET) - 79.5 proj. receiving yards
There have only been two games with Kyler Murray, and neither was groundbreaking. Jefferson was the WR15 and WR36 on WR27 and WR23 usage, respectively, in them. Jefferson did draw a DPI on top of his 4-44-0 line, but Murray missed him on a play-action in cut and on an anticipatory stop route near the sticks. Those types of timing throws have given Murray trouble throughout his career, so we might settle into a middle ground between WR1 flirtation with Kirk Cousins and Sam Darnold and WR3 panic with J.J. McCarthy. The good news is Murray looks healthy and the OL was creating big lanes on the ground. Jefferson is a low-end WR1.
The matchup is a great one. The Lions have allowed the third-most points on deep targets this year and the most passing yards per game to all levels. They've been better stopping the run, so the Vikings could break out of their balanced offense here. Jefferson has struggled against the Lions recently (WR52, WR19, WR53) but before that was a top-six WR in four straight games.
8. Amon-Ra St. Brown (vs. MIN) - 79.5 proj. receiving yards
St. Brown has operated as the WR19 in half PPR points per game on WR4 expected-points usage over his last four appearances. That likely will be his worst stretch of the year. Still, he has drawn double-digit looks in three straight outings, commanding a 30% target share and 10.3 targets per game across that four-game stretch. Week 7 saw him turn 11 targets into nine catches and a season-high 153 receiving yards, rebound production that matches his high-end opportunity profile.
This matchup features a stingy Minnesota defense that ranks 29th in half PPR points allowed to WRs (20.4 per game). Opponents are attempting passes on just 47% of neutral plays against Minnesota, which ranks third-lowest across the league. They've also been amazing against underneath targets to WRs (see above). That's held true against Amon-Ra, who has been the WR27, WR17 and WR32 in games against DC Brian Flores since late 2024. Detroit carries a 24.75-point implied team total (ninth) as 3-point home favorites.
9. Drake London (at TB) - 79.5 proj. receiving yards
The Drake London on/off splits with Michael Penix Jr. dating back to 2024 are staggering.
This month, London is the WR16 on WR9 usage and WR9 targets. The Falcons are tinkering with their offense under HC Kevin Stefanski, as they try to minimize Penix's lack of mobility and injury risk. This past game led to a career-low 2.1 seconds to throw on non-play action attempts. London was peppered underneath, ultimately scoring a TD out of empty in the red zone. More quick passes suit London's skills, and he already has a 31% target share this month. He's a no-doubt fantasy WR1.
Tampa Bay ranks 25th in half PPR points allowed to wideouts at 23.8 per game, but they have shown vulnerability against primary options recently. George Pickens hung nine catches for 130 yards and a score on them in Week 5, followed by DK Metcalf posting 11 receptions for 93 yards in Week 6. Atlanta is listed as 2.5-point road underdogs with an implied team total of 22.0 points (15th).
10. Parker Washington (vs. IND) - 69.5 proj. receiving yards
11. George Pickens (vs. ARI) - 69.5 proj. receiving yards
Pickens is back to being the WR10 on WR20 usage this month after a slower start against some top defenses.
This is an eruption spot for everyone involved. The Cardinals secondary has been burnt for years, and they might not have DT Walter Nolen on top of it. They've allowed vertical WRs like Jameson Williams (WR11) and Malik Nabers (WR10) to pop off this month. Across the entire season, they've allowed the ninth-most points to WRs. Dallas carries a wild 30.75-point team total. That's not just the most this week — that'll be one of the highest by any team all year.
12. Christian Watson (vs. CAR) - 69.5 proj. receiving yards
Watson has cooled off a bit recently but is still a WR6 on WR11 usage this year. The Packers kept up their pass-heavy game plan last week even with Josh Jacobs back. They simply don't have the OL to trust running the ball, and the Jordan Love deep balls have been very successful. Watson's role isn't quite as downfield reliant as it was before, but he will be a little more volatile than other fantasy WR1s. We'll see if Matthew Golden's absences in practice were precautionary or something that will impact his slice of the pie.
The Panthers have been such a run funnel this year that they've only allowed 22.2 fantasy points to WRs on a per-game basis (27th). That is not because their pass defense is good. I can't stress that enough. They're missing EDGE1 Jaelan Phillips and both of their outside CBs right now. Jameson Williams hit them multiple times over the top in Week 4 without them and DeVonta Smith back-shouldered his way to a WR8 finish in Week 6. Green Bay enters Thursday night as 3.5-point home favorites with a solid 25.5-point team total (sixth). The spreadsheets don't know ball. This is a great spot for Watson.
13. Tetairoa McMillan (at GB) - 79.5 proj. receiving yards
McMillan was only used underneath in Week 7, with Bryce Young panicking under pressure thanks to poor OT play. That lowers McMillan's weekly floor, especially with Jalen Coker back. In five games with Coker, T-Mac is averaging 11.7 expected half PPR points (WR18) as a low-end WR2. His career-best game was in Week 4 without him.
The Packers rank 11th in half PPR points allowed to WRs and yielded 44.8 points to Detroit's receivers in Week 7. Carolina also brings an extreme passing approach, ranking second in neutral pass rate at 63% on 183 neutral snaps. The Packers have been willing to let underneath receptions pile up if it means preventing the big play. They've allowed the second-most fantasy points to WRs on air yards under 10 this year. T-Mac can play that game. The Panthers enter as 3.5-point road underdogs with an implied total of 22 points (16th).
14. DJ Moore (vs. BAL) - 59.5 proj. receiving yards
15. Michael Wilson (at DAL) - 59.5 proj. receiving yards
Man, I hate to do this again, but Wilson was so close to a huge game in Week 7. He drew a 36-yard DPI that could've been a long TD on an out-and-up. He also had two failed end-zone targets, both of which were first-read targets. Wilson also made some nice contested catches to get up to 55 yards, but it really should've been more than that. He was the WR5 in usage last week.
To critique Wilson, there are too many targets that end up contested. There are some speed and QB issues that play into that, but there's just no way Wilson can match his truly elite usage. Wilson is the WR35 on WR6 (!!!) expected half PPR points per game this year. I'm still holding onto WR2 hope.
The matchup is a great one. The Cowboys have allowed 29.5 half PPR points per game to WRs (sixth), and the Cardinals project for 23.75 points in a negative game script. This is textbook dome garbage time for Jacoby Brissett. Wilson will see plenty of CB1 Joey Porter Jr., but there's been too many coverage busts and clean looks to be worried about that. Dallas has allowed a top-17 WR in four straight games, including to Makai Lemon last week.
16. Matthew Golden (vs. CAR) - 59.5 proj. receiving yards
Golden had an up-and-down Week 7, and it cost him a spike week. Under the hood, Golden was the WR2 overall in expected half PPR points, bringing him up to WR5 usage on the season. It's impossible to ignore his downfield role, and the Packers would be smart to use him underneath a bit more than they do. He can do it!!! On top of the in-progress hands, Golden has been unlucky by attracting a league-leading 119 yards on DPI. We're so close to real fantasy WR1 numbers.
This week, Golden went DNP-DNP-limited in practice and was officially questionable. It didn't sound like his status was actually in doubt, but a shoulder and foot injury are now worth tracking. I'm knocking him a little bit given the uncertainty.
Like mentioned with Christian Watson above, this is an ignore the spreadsheets and trust the tape matchup. The Panthers pass defense is very bad, even if they haven't been tested too often with their run game truly in hell. Green Bay enters as 3.5-point home favorites with a solid 25.5-point implied team total (sixth). I like this spot, assuming he's healthy.
17. Jalen Coker (at GB) - 59.5 proj. receiving yards
Coker has been one of the most volatile players dating back to late last year. He opened Week 1 as the WR1 overall, but then has been the WR24, WR19 and WR80 since then. He only had three targets in a blowout loss. One of them was a comeback route interception, and then Bryce Young missed Coker on a potential 50-yard post TD. The Panthers' OL injuries hurt the pass game last week, and Young is one of the more sensitive QBs to pressure given his skill set. Coker's upside WR2 case is on hold until they find a better answer at OT. He's the WR24 in usage this year, including his Week 3 injury game.
The Packers rank 11th in half PPR points allowed per game to wide receivers, surrendering 44.8 points to the position in Week 7. Green Bay sits second in half PPR points allowed per game against slot WR target depths (<10 air yards), which matches an area where Coker has seen 22 targets this season. Carolina enters as 3.5-point road underdogs and brings a 63% neutral pass rate (second highest), while the team carries a 22-point implied total (16th).
18. Garrett Wilson (vs. LV) - 59.5 proj. receiving yards
19. DK Metcalf (vs. CLE) - 59.5 proj. receiving yards
20. Emeka Egbuka (vs. ATL) - 49.5 proj. receiving yards
21. A.J. Brown (at MIA) - 49.5 proj. receiving yards
He might be out with a lingering knee injury. It's time to get really worried about his 2026 outlook. Kyle Williams would climb up rankings if ruled out.
22. Stefon Diggs (vs. PHI) - 39.5 proj. receiving yards
24. Carnell Tate (at CIN) - 49.5 proj. receiving yards
Tate had an up-and-down Week 7, but the Titans gave him opportunities (WR27 expected half PPR points on seven targets) away from CB1 Denzel Ward, who only plays on one side. That was promising. Tate was pushed out of bounds at the 1-yard line on a fade ball and crossed up the Browns' CB2 on a slant for a first down, amongst others. He sadly had a rare drop on another slant and was missed on a downfield fade route, but that's the nature of being on the one-win Titans. Tate is the WR29 on WR24 usage this month as the clear-cut top target. Calvin Ridley, who could be traded at any time, missed last week.
25. Germie Bernard (vs. CLE) - 49.5 proj. receiving yards
26. Jameson Williams (vs. MIN) - 49.5 proj. receiving yards
27. Luther Burden III (at SEA) - 49.5 proj. receiving yards
Burden is not a full-time player yet, but because he's so efficient and so manufactured when on the field, he can be an upside WR3 without it. He's the WR27 on WR22 usage this season and has been the WR18 on WR30 usage this month with Caleb Williams working back into the lineup. Burden's baseline projection improves without Cole Kmet (IR), too. He ran a route on 73% of non-3-TE dropbacks last week, and the Bears likely won't use 3-TE sets as often without Kmet. Ditto for 2-TE sets. A 75-85% route participation moving forward would not be a surprise at all, and that's meaningful.
On tape last week, Burden had a couple of rockstar YAC moments. He scored a TD on a well-blocked screen, made 2-3 defenders miss instantly on a zone in-cut and was left wide open on a crosser for a 58-yard gain. It won't be that easy all the time, but Ben Johnson will keep finding ways to utilize his amazing YAC ability, even if there are other things in development.
28. Tre Tucker (at NYJ) - 49.5 proj. receiving yards
Tucker is a fun role player, now being thrust into a very dominant role with the Raiders often chasing points. He can take the top off for explosives — he had another long TD in Week 7 — but also has clear limitations when working near the sticks against man coverage. That inconsistency cost the Raiders drives last week, even if we don't mind it in fantasy. He's the WR13 on WR11 usage this month, even with Brock Bowers fully back. Bowers is drawing CB1s for portions of games, allowing Tucker to get some advantages looks. A season-high 12 targets and 29% target share is all the reason to view Tucker as a WR3. The Raiders' run game looks fully nuked again.
The Jets enter ranking 18th in half PPR points allowed to wide receivers. While New York has been firmer against deeper routes, ranking 21st in points allowed on throws over 15 air yards, they rank sixth against shorter looks under 10 air yards. Opposing passing games have posted mixed results against them, highlighted by DeMario Douglas producing 16.1 half PPR points on eight targets in Week 6. The Raiders carry an implied team total of 22 points (17th) as 1.5-point road underdogs.
It was refreshing to see a Tampa 2-beating seam ball and an anticipatory out route from Bo Nix to Waddle for first-down completions, but it was still a forgettable outing for Waddle in Week 7. He couldn't come down with an end-zone fade, wasn't on the same page with Nix on a double move or on a zone checkdown and then left the game late with a new chest injury after landing on the ball after fumbling a reverse. Shoutout to the haters for nailing everything about this so far. Waddle is the WR50 on WR38 usage this year. His 6.4 targets per game are 32nd at the position, and they've led to career-worst efficiency. The only cope to cling to was that he had a 28% target share and 104 air yards in Week 4, leading to WR19 expected half PPR points. We don't get paid in "expected points" though. People forget that.
The Chiefs are a brutal spot on paper, allowing the 31st-most half PPR points per game to WRs. Kansas City's opponents have passed at just a 47% clip in neutral situations (second-lowest in the NFL), funneling volume away from pass catchers. Denver enters as 1.5-point home underdogs with a 20-point implied total (22nd). Waddle'll battle with emerging Pro Bowl CB1 Mansoor Delane.
30. Ladd McConkey (at LAR) - 49.5 proj. receiving yards
31. KC Concepcion (at PIT) - 49.5 proj. receiving yards
Concepcion had a career-best game in terms of fantasy points (19.2 HPPR), expected points (15.2), targets (10), receptions (8) and yards (129). Most of it came after the catch while working on shallow and intermediate concepts over the middle. His initial burst and underrated pound-for-pound physicality make it happen.
As my good pal Josh Norris notes, Concepcion will add the extra couple yards by fighting through contact. It's something he cherishes as a player according to his pressers, and it's felt on tape. Part of that fight is simply just running really fast, too. This is purely physics after all. Concepcion gets up to speed quickly, and defenders are constantly only able to get an arm on him rather than squaring him up or using their full body weight to bring him down. Almost every clip from above shows that.
Concepcion did drop an explosive on the field, a Cover 2 hole shot and couldn't stack a fairly slow CB on a go ball, but those are volatile plays and Concepcion's underneath role is good enough to ride as an upside WR4. He's the WR41 on WR36 usage this month and is my favorite to lead the Browns in receptions and yards down the stretch. We'll see if he gets used in the red zone. The good news is he ran a route on all four dropbacks outside of 11-personnel last week. He's not a traditional slot.
32. Omar Cooper Jr. (vs. LV) - 39.5 proj. receiving yards
34. Jordan Addison (at DET) - 39.5 proj. receiving yards
Addison busted in a great spot last week against a struggling defense without CB1 Sauce Gardner. Unfortunately, Addison had a 34-yard high-point reception called back for an unrelated penalty. That said, Addison is now the WR64 on WR56 usage this season. It's still a volatile situation with a small sample of Addison sharing the field with Kyler Murray and Justin Jefferson. Addison will need to run hot with long TDs to be a fantasy WR3, as the Vikings have leaned more on the ground game in 2026 than in seasons past. Part of that is having the NFL's league-altering defense on the other side.
The Lions present a favorable on-paper spot, ranking fourth in half PPR points allowed to WRs at 31.5 per game. Detroit has been particularly vulnerable against downfield pass catchers, ranking third in half PPR points allowed on targets over 15 air yards. Opponents have attacked its secondary frequently, including Tetairoa McMillan's 14-catch, 192-yard explosion in Week 4. Minnesota enters Detroit as 3-point road underdogs with an implied team total of 21.75 points (19th).
35. Josh Downs (at JAX) - 39.5 proj. receiving yards
36. Keenan Allen (at JAX) - 39.5 proj. receiving yards
37. Denzel Boston (at PIT) - 49.5 proj. receiving yards
Boston had a rare bad game against the Titans, getting locked up against inside leverage on a slant for an INT and dropping a pass near the sticks later on. Boston still had a few breaking wins and created some downfield separation on a missed post as the primary deep threat in a traditional X-receiver role. Concepcion had his best game of the year as an explosive slot/flanker and will threaten Boston's target share between the 20s. Boston remains the red-zone favorite but his results will swing based on the difficulty of his targets. He's been between 6.3 and 11.3 expected half PPR points in all seven games this year, as the WR32 on WR37 usage. Boston is an upside WR4.
38. Kendrick Bourne (at DAL) - 39.5 proj. receiving yards
39. Rome Odunze (at SEA) - 39.5 proj. receiving yards
Odunze had a few breaking routes for first downs, ultimately turning 7.8 expected half PPR points into 8.9 half PPR points (WR19). He's still a full-time player and still had a frustrating drop in the end zone (that would've been called back for OPI anyways). It's obvious that Odunze will have monster games when the downfield and red-zone targets are completed, but he's not a first read underneath and hasn't fully settled in on tape.
40. Jakobi Meyers (vs. IND) - 39.5 proj. receiving yards
41. Antonio Williams (vs. PHI) - 39.5 proj. receiving yards
If there's a No. 1 reason why the Patrick Mahomes offense didn't reach the red zone for the first time in his entire career: it was the awful pass-catcher play. There were four drops with room to run on each of them, and Mahomes had to work for the yardage they did hold on to.
Straight-up, Worthy just isn't very good. His slight frame and unwillingness to battle for yards after the catch or throw contact at the catch point really limit his usefulness. That's not too surprising. What just boggles the mind is how infrequently Worthy looks like the fastest player on the field.
A slot go ball down the sideline was easily nuked by 220-pound S/LB Nick Emmanwori, and Worthy chopped up his feet trying to run an out route against CB Devon Witherspoon. These type of reps should be advantage Worthy — they aren't. He also had a drop on a crossing route that made Patrick Mahomes turn into a Surrender Cobra. If not for a couple of shallow sit routes and screens, Worthy would've gone catchless against the Seahawks even without Rashee Rice and Tyquan Thornton. Worthy has been the WR41, WR27 and WR65 in half PPR with Rice sidelined recently. He's done that on WR48 usage and a 23% target share.
43. DeMario Douglas (at MIA) - 39.5 proj. receiving yards
44. Wan'Dale Robinson (at CIN) - 39.5 proj. receiving yards
45. Chris Godwin (vs. ATL) - 24.5 proj. receiving yards
46. Ja'Kobi Lane (at BUF) - 24.5 proj. receiving yards
Lane has between 7.3 and 9.4 expected half PPR points in each of his three appearances this year. He's been inches away from touchdowns multiple times but is on track to being a WR4 dart throw once Lamar Jackson is back. Before his ankle injury, LJ was playing like an MVP under new OC Declan Doyle. Lane has a wild catch radius and is used more underneath than you'd assume. Last week, Lane had a sliding grab on a slant, a bobbled scramble drill catch and a 3rd-and-8 comeback completion. The last one was a yard short, highlighting the difference between a rookie and veteran. He was also missed on an out route in the end zone. Jackson probably hits that. Lane is the WR43 in expected half PPR points per game. Stash him.
Up next is a Buffalo defense that ranks first in half PPR points allowed to opposing WRs, having surrendered multi-touchdown games to Romeo Doubs, Davante Adams and Tre Tucker over their past four outings. Buffalo also ranks third-worst against intermediate targets (5-20 air yards), which fits Lane's profile. Baltimore enters with an extreme 43% neutral pass rate (30th) as 3.5-point road underdogs with an implied total of 25 points (eighth).
47. Caleb Douglas (vs. NE) - 39.5 proj. receiving yards
48. Malik Washington (vs. NE) - 39.5 proj. receiving yards
51. Ryan Flournoy (vs. ARI) - 39.5 proj. receiving yards
53. Konata Mumpfield (vs. LAC) - 14.5 proj. receiving yards
55. Khalil Shakir (vs. BAL) - 39.5 proj. receiving yards
56. Jahan Dotson (at TB) - 24.5 proj. receiving yards
57. Keon Coleman (vs. BAL) - 24.5 proj. receiving yards
60. Kalif Raymond (at SEA) - 24.5 proj. receiving yards
62. Quentin Johnston (at LAR) - 39.5 proj. receiving yards
63. Jerry Jeudy (at PIT) - 24.5 proj. receiving yards
64. Rashod Bateman (at BUF) - 24.5 proj. receiving yards
66. Treylon Burks (vs. PHI) - 24.5 proj. receiving yards
68. Adonai Mitchell (vs. LV) - 24.5 proj. receiving yards
69. Kyle Williams (at MIA) - 14.5 proj. receiving yards
70. Efton Chism III (at MIA) - 14.5 proj. receiving yards
71. Chris Bell (vs. NE) - 14.5 proj. receiving yards
73. Isaac TeSlaa (vs. MIN) - 14.5 proj. receiving yards
74. Savion Williams (vs. CAR) - 24.5 proj. receiving yards
75. Brian Thomas Jr. (vs. IND) - 9.5 proj. receiving yards
Source: Sports
0 Comments