Air Force Falcons @ Army Black Knights
1st Quarter
Kickoff
15:00 - 1st
Daniel Grochowski kickoff for 65 yds , Jon Lee return for 19 yds to the AFA 19
4-yd Run
15:00 - 1st
Shayne Davern run for 4 yds to the AFA 23
1st & 10 at AFA 19
2-yd Run
15:00 - 1st
Jacobi Owens run for 2 yds to the AFA 25
2nd & 6 at AFA 23
5-yd Pass
15:00 - 1st
Kale Pearson pass complete to Jalen Robinette for 5 yds to the AFA 30 for a 1ST down
3rd & 4 at AFA 25
1-yd Run
15:00 - 1st
Jacobi Owens run for 1 yd to the AFA 31
1st & 10 at AFA 30
5-yd Penalty
15:00 - 1st
AIR FORCE Penalty, false start (-5 Yards) to the AFA 26
2nd & 9 at AFA 31
5-yd Run
15:00 - 1st
Kale Pearson run for 5 yds to the AFA 31
2nd & 14 at AFA 26
11-yd Pass
15:00 - 1st
Kale Pearson pass complete to Alex Ludowig for 11 yds to the AFA 42 for a 1ST down
3rd & 9 at AFA 31
-1-yd Run
15:00 - 1st
Garrett Brown run for a loss of 1 yard to the AFA 41
1st & 10 at AFA 42
3-yd Run
15:00 - 1st
Kale Pearson run for 3 yds to the AFA 44
2nd & 11 at AFA 41
Interception
15:00 - 1st
Kale Pearson pass intercepted Josh Jenkins return for 31 yds to the AFA 28
3rd & 8 at AFA 44
Incompletion
11:14 - 1st
Angel Santiago pass incomplete
1st & 10 at AFA 28
4-yd Run
11:14 - 1st
Angel Santiago run for 4 yds to the AFA 24
2nd & 10 at AFA 28
Incompletion
11:14 - 1st
Angel Santiago pass incomplete to Kelvin White
3rd & 6 at AFA 24
Field Goal Good
10:17 - 1st
Daniel Grochowski 42 yd FG GOOD
4th & 6 at AFA 24
Kickoff
10:17 - 1st
Daniel Grochowski kickoff for 62 yds , Jon Lee return for 21 yds to the AFA 24
3-yd Run
10:09 - 1st
Shayne Davern run for 3 yds to the AFA 27
1st & 10 at AFA 24
(9:34 - 1st) Timeout AIR FORCE, clock 09:34
6-yd Run
9:34 - 1st
Jacobi Owens run for 6 yds to the AFA 33
2nd & 7 at AFA 27
2-yd Run
9:34 - 1st
D.J. Johnson run for 2 yds to the AFA 35 for a 1ST down
3rd & 1 at AFA 33
10-yd Run
9:34 - 1st
Kale Pearson run for 10 yds to the AFA 45 for a 1ST down
1st & 10 at AFA 35
4-yd Run
9:34 - 1st
Kale Pearson run for 4 yds to the AFA 49
1st & 10 at AFA 45
3-yd Run
9:34 - 1st
Jacobi Owens run for 3 yds to the Army 48
2nd & 6 at AFA 49
1-yd Run
9:34 - 1st
Garrett Brown run for 1 yd to the Army 47
3rd & 3 at ARMY 48
1-yd Run
9:34 - 1st
D.J. Johnson run for 1 yd to the Army 46
4th & 2 at ARMY 47
0-yd Run
7:26 - 1st
Larry Dixon run for no gain to the Army 46
1st & 10 at ARMY 46
32-yd Run
7:26 - 1st
Angel Santiago run for 32 yds to the AFA 22 for a 1ST down
2nd & 10 at ARMY 46
0-yd Run
7:26 - 1st
Larry Dixon run for no gain to the AFA 22
1st & 10 at AFA 22
Incompletion
7:26 - 1st
Angel Santiago pass incomplete to Kelvin White
2nd & 10 at AFA 22
-1-yd Run
7:26 - 1st
Angel Santiago run for a loss of 1 yard to the AFA 23
3rd & 10 at AFA 22
Field Goal Missed
4:48 - 1st
Daniel Grochowski 41 yd FG MISSED
4th & 11 at AFA 23
5-yd Run
4:48 - 1st
Shayne Davern run for 5 yds to the AFA 28
1st & 10 at AFA 23
4-yd Run
4:48 - 1st
Jacobi Owens run for 4 yds to the AFA 32
2nd & 5 at AFA 28
2-yd Run
4:48 - 1st
Jacobi Owens run for 2 yds to the AFA 34 for a 1ST down
3rd & 1 at AFA 32
Incompletion
4:48 - 1st
Kale Pearson pass incomplete to Jalen Robinette, broken up by Chris Carnegie
1st & 10 at AFA 34
7-yd Pass
4:48 - 1st
Kale Pearson pass complete to Garrett Brown for 7 yds to the AFA 41
2nd & 10 at AFA 34
10-yd Run
4:48 - 1st
Jacobi Owens run for 10 yds to the Army 49 for a 1ST down
3rd & 3 at AFA 41
1-yd Run
4:48 - 1st
Jacobi Owens run for 1 yd to the Army 48
1st & 10 at ARMY 49
4-yd Run
4:48 - 1st
Devin Rushing run for 4 yds to the Army 44
2nd & 9 at ARMY 48
0-yd Run
4:48 - 1st
Kale Pearson run for no gain to the Army 44
3rd & 5 at ARMY 44
Punt
4:48 - 1st
Will Conant punt for 24 yds, punt out-of-bounds at the Army 20
4th & 5 at ARMY 44
2nd Quarter
0-yd Run
0:44 - 1st
Larry Dixon run for no gain to the Army 20
1st & 10 at ARMY 20
-3-yd Run
0:44 - 1st
Angel Santiago run for a loss of 3 yards to the Army 17
2nd & 10 at ARMY 20
End of 1st Quarter
Incompletion
15:00 - 2nd
Angel Santiago pass incomplete to Edgar Poe
3rd & 13 at ARMY 17
Punt
15:00 - 2nd
Alex Tardieu punt for 23 yds, downed at the Army 40
4th & 13 at ARMY 17
4-yd Run
14:44 - 2nd
Garrett Brown run for 4 yds to the Army 36
1st & 10 at ARMY 40
-2-yd Run
14:44 - 2nd
Colton Huntsman run for a loss of 2 yards to the Army 38
2nd & 6 at ARMY 36
6-yd Run
14:44 - 2nd
Jacobi Owens run for 6 yds to the Army 32
3rd & 8 at ARMY 38
5-yd Run
14:44 - 2nd
Garrett Brown run for 5 yds to the Army 27 for a 1ST down
4th & 2 at ARMY 32
2-yd Run
14:44 - 2nd
Jacobi Owens run for 2 yds to the Army 25
1st & 10 at ARMY 27
1-yd Run
14:44 - 2nd
Kale Pearson run for 1 yd to the Army 24
2nd & 8 at ARMY 25
3-yd Run
14:44 - 2nd
Jacobi Owens run for 3 yds to the Army 21
3rd & 7 at ARMY 24
Field Goal Good
10:38 - 2nd
Will Conant 38 yd FG GOOD
4th & 4 at ARMY 21
Kickoff
10:38 - 2nd
Drew Oehrle kickoff for 64 yds , Josh Jenkins return for 17 yds to the Army 18
1-yd Run
10:29 - 2nd
Terry Baggett run for 1 yd to the Army 19
1st & 10 at ARMY 18
7-yd Run
10:29 - 2nd
Larry Dixon run for 7 yds to the Army 26
2nd & 9 at ARMY 19
(9:16 - 2nd) Timeout ARMY, clock 09:16
1-yd Run
9:16 - 2nd
Angel Santiago run for 1 yd to the Army 27
3rd & 2 at ARMY 26
Punt
9:16 - 2nd
Alex Tardieu punt for 41 yds, fair catch by Jalen Robinette at the AFA 32
4th & 1 at ARMY 27
3-yd Run
8:33 - 2nd
Jacobi Owens run for 3 yds to the AFA 35
1st & 10 at AFA 32
4-yd Run
8:33 - 2nd
Shayne Davern run for 4 yds to the AFA 39
2nd & 7 at AFA 35
3-yd Run
8:33 - 2nd
Jacobi Owens run for 3 yds to the AFA 42 for a 1ST down
3rd & 3 at AFA 39
17-yd Pass
8:33 - 2nd
Kale Pearson pass complete to Colton Huntsman for 17 yds to the Army 41 for a 1ST down
1st & 10 at AFA 42
29-yd Pass
8:33 - 2nd
Kale Pearson pass complete to Jalen Robinette for 29 yds to the Army 12 for a 1ST down
1st & 10 at ARMY 41
0-yd Run
8:33 - 2nd
Kale Pearson run for no gain to the Army 12
1st & 10 at ARMY 12
3-yd Run
8:33 - 2nd
Shayne Davern run for 3 yds to the Army 9
2nd & 10 at ARMY 12
Incompletion
8:33 - 2nd
Kale Pearson pass incomplete to Jon Lee, broken up by Hayden Pierce
3rd & 7 at ARMY 9
Field Goal Good
5:13 - 2nd
Will Conant 26 yd FG GOOD
4th & 7 at ARMY 9
Kickoff
5:13 - 2nd
Drew Oehrle kickoff for 65 yds for a touchback
Incompletion
5:13 - 2nd
Angel Santiago pass incomplete to Tony Giovannelli
1st & 10 at ARMY 25
26-yd Run
5:13 - 2nd
Raymond Maples run for 26 yds to the AFA 49 for a 1ST down
2nd & 10 at ARMY 25
-1-yd Run
5:13 - 2nd
Larry Dixon run for a loss of 1 yard to the 50 yard line
1st & 10 at AFA 49
4-yd Run
5:13 - 2nd
Angel Santiago run for 4 yds to the AFA 46
2nd & 11 at 50
(3:20 - 2nd) Timeout ARMY, clock 03:20
-5-yd Run
3:20 - 2nd
Ryan Alexander run for a loss of 5 yards to the Army 49
3rd & 7 at AFA 46
Punt
3:20 - 2nd
Alex Tardieu punt for 38 yds, fair catch by Jalen Robinette at the AFA 13
4th & 12 at ARMY 49
4-yd Run
2:35 - 2nd
Jacobi Owens run for 4 yds to the AFA 17
1st & 10 at AFA 13
5-yd Run
2:35 - 2nd
Jacobi Owens run for 5 yds to the AFA 22
2nd & 6 at AFA 17
0-yd Run
2:35 - 2nd
Jacobi Owens run for no gain to the AFA 22
3rd & 1 at AFA 22
(1:19 - 2nd) Timeout ARMY, clock 01:19
Punt
1:19 - 2nd
Will Conant punt for 58 yds , Xavier Moss returns for a loss of 1 yard to the Army 19
4th & 1 at AFA 22
0-yd Run
1:09 - 2nd
Angel Santiago run for no gain to the Army 19
1st & 10 at ARMY 19
9-yd Pass
1:09 - 2nd
Angel Santiago pass complete to Raymond Maples for 9 yds to the Army 28
2nd & 10 at ARMY 19
2-yd Run
1:09 - 2nd
Larry Dixon run for 2 yds to the Army 30 for a 1ST down
3rd & 1 at ARMY 28
Sack
1:09 - 2nd
Angel Santiago sacked by Jordan Pierce for a loss of 8 yards to the Army 22
1st & 10 at ARMY 30
End of 2nd Quarter
3rd Quarter
Kickoff
15:00 - 3rd
Drew Oehrle kickoff for 61 yds
Incompletion
15:00 - 3rd
Angel Santiago pass incomplete, broken up by Dexter Walker
1st & 10 at ARMY 35
2-yd Run
15:00 - 3rd
Tony Giovannelli run for 2 yds to the Army 37
2nd & 10 at ARMY 35
Sack
15:00 - 3rd
Angel Santiago sacked by Troy Timmerman for a loss of 5 yards to the Army 32
3rd & 8 at ARMY 37
Punt
15:00 - 3rd
Alex Tardieu punt for 33 yds, downed at the AFA 35
4th & 13 at ARMY 32
7-yd Run
13:33 - 3rd
Kale Pearson run for 7 yds to the AFA 42
1st & 10 at AFA 35
4-yd Run
13:33 - 3rd
Jacobi Owens run for 4 yds to the AFA 46 for a 1ST down
2nd & 3 at AFA 42
54-yd Touchdown Pass
12:45 - 3rd
Kale Pearson pass complete to Garrett Griffin for 54 yds for a TD, (Will Conant KICK)
1st & 10 at AFA 46
Kickoff
12:45 - 3rd
Drew Oehrle kickoff for 65 yds for a touchback
8-yd Run
12:45 - 3rd
Tony Giovannelli run for 8 yds to the Army 33
1st & 10 at ARMY 25
Sack
12:45 - 3rd
Angel Santiago sacked by Spencer Proctor for a loss of 3 yards to the Army 30
2nd & 2 at ARMY 33
Incompletion
12:45 - 3rd
Angel Santiago pass incomplete ARMY Penalty, illegal block ( Yards) declined
3rd & 5 at ARMY 30
Punt
12:45 - 3rd
Alex Tardieu punt for 39 yds, downed at the AFA 31
4th & 5 at ARMY 30
34-yd Run
11:20 - 3rd
Kale Pearson run for 19 yds to the 50 yard line for a 1ST down ARMY Penalty, UR (Stephen Ricciardi) to the Army 35 for a 1ST down
1st & 10 at AFA 31
Fumble Recovery (Own)
11:20 - 3rd
Jacobi Owens run for a loss of 2 yards to the Army 37 Jacobi Owens fumbled, recovered by AFA Jacobi Owens
1st & 10 at ARMY 35
Incompletion
11:20 - 3rd
Kale Pearson pass incomplete to Jalen Robinette
2nd & 12 at ARMY 37
0-yd Penalty
11:20 - 3rd
PEARSON, Kale pass incomplete to ROBINETTE, Jale, PENALTY ARMY pass interference off-setting, PENALTY AF ineligible downfield on pass off-setting, NO PLAY.
3rd & 12 at ARMY 0
5-yd Run
11:20 - 3rd
Colton Huntsman run for 5 yds to the Army 32
3rd & 12 at ARMY 37
Field Goal Good
9:34 - 3rd
Will Conant 50 yd FG GOOD
4th & 7 at ARMY 32
Kickoff
9:34 - 3rd
Drew Oehrle kickoff for 65 yds for a touchback
8-yd Run
9:34 - 3rd
Angel Santiago run for 8 yds to the Army 33
1st & 10 at ARMY 25
2-yd Run
9:34 - 3rd
Larry Dixon run for 2 yds to the Army 35 for a 1ST down
2nd & 2 at ARMY 33
1-yd Run
9:34 - 3rd
Raymond Maples run for 1 yd to the Army 36
1st & 10 at ARMY 35
3-yd Run
9:34 - 3rd
Angel Santiago run for 3 yds to the Army 39
2nd & 9 at ARMY 36
Incompletion
9:34 - 3rd
Angel Santiago pass incomplete to Edgar Poe
3rd & 6 at ARMY 39
17-yd Run
9:34 - 3rd
Kelvin White run for 17 yds to the AFA 44 for a 1ST down
4th & 6 at ARMY 39
0-yd Run
9:34 - 3rd
Larry Dixon run for no gain to the AFA 44
1st & 10 at AFA 44
11-yd Pass
9:34 - 3rd
Angel Santiago pass complete to Raymond Maples for 11 yds to the AFA 33 for a 1ST down
2nd & 10 at AFA 44
8-yd Run
9:34 - 3rd
Terry Baggett run for 8 yds to the AFA 25
1st & 10 at AFA 33
5-yd Run
9:34 - 3rd
Matt Giachinta run for 5 yds to the AFA 20 for a 1ST down
2nd & 2 at AFA 25
1-yd Run
9:34 - 3rd
Aaron Kemper run for 1 yd to the AFA 19
1st & 10 at AFA 20
10-yd Penalty
9:34 - 3rd
Dixon, Larry rush for no gain to the AF19 (HEALY, Connor;HANSEN, Alex), PENALTY ARMY holding (Santiago, Angel) 10 yards to the AF29, NO PLAY.
2nd & 9 at AFA 19
1-yd Run
9:34 - 3rd
Larry Dixon run for 1 yd to the AFA 28
2nd & 19 at AFA 29
(3:13 - 3rd) Timeout ARMY, clock 03:13
Incompletion
3:13 - 3rd
Angel Santiago pass incomplete to Edgar Poe, broken up by Justin DeCoud ARMY Penalty, Offensive holding ( Yards) declined
3rd & 18 at AFA 28
Field Goal Good
2:59 - 3rd
Daniel Grochowski 46 yd FG GOOD
4th & 18 at AFA 28
Kickoff
2:59 - 3rd
Daniel Grochowski kickoff for 40 yds , Nate Dreslinski return for 12 yds to the AFA 37
-1-yd Run
2:52 - 3rd
Kale Pearson run for a loss of 1 yard to the AFA 36
1st & 10 at AFA 37
6-yd Run
2:52 - 3rd
Shayne Davern run for 6 yds to the AFA 42
2nd & 11 at AFA 36
16-yd Penalty
2:52 - 3rd
PEARSON, Kale pass incomplete to ROBINETTE, Jale, PENALTY ARMY pass interference (Jenkins, Josh) 16 yards to the ARMY42, 1ST DOWN AF, NO PLAY. for a 1ST down
3rd & 5 at AFA 42
1-yd Run
2:52 - 3rd
Jacobi Owens run for 1 yd to the Army 41
1st & 10 at ARMY 42
2-yd Run
2:52 - 3rd
Jacobi Owens run for 2 yds to the Army 39
2nd & 9 at ARMY 41
Sack
2:52 - 3rd
Kale Pearson sacked by Jeremy Timpf for a loss of 7 yards to the Army 46
3rd & 7 at ARMY 39
Punt
2:52 - 3rd
Will Conant punt for 26 yds, punt out-of-bounds at the Army 20
4th & 14 at ARMY 46
4th Quarter
0-yd Run
0:18 - 3rd
Angel Santiago run for no gain to the Army 20
1st & 10 at ARMY 20
End of 3rd Quarter
1-yd Run
15:00 - 4th
Angel Santiago run for 1 yd to the Army 21
2nd & 10 at ARMY 20
6-yd Run
15:00 - 4th
Trenton Turrentine run for 6 yds to the Army 27
3rd & 9 at ARMY 21
Punt
15:00 - 4th
Alex Tardieu punt for 52 yds, downed at the AFA 21
4th & 3 at ARMY 27
6-yd Run
13:31 - 4th
Shayne Davern run for 6 yds to the AFA 27
1st & 10 at AFA 21
18-yd Run
13:31 - 4th
Jacobi Owens run for 18 yds to the AFA 45 for a 1ST down
2nd & 4 at AFA 27
19-yd Run
13:31 - 4th
Jacobi Owens run for 19 yds to the Army 36 for a 1ST down
1st & 10 at AFA 45
4-yd Run
13:31 - 4th
Jacobi Owens run for 4 yds to the Army 32
1st & 10 at ARMY 36
5-yd Run
13:31 - 4th
D.J. Johnson run for 5 yds to the Army 27
2nd & 6 at ARMY 32
8-yd Run
13:31 - 4th
D.J. Johnson run for 8 yds to the Army 19 for a 1ST down
3rd & 1 at ARMY 27
16-yd Pass
13:31 - 4th
Kale Pearson pass complete to Jalen Robinette for 16 yds to the Army 3 for a 1ST down
1st & 10 at ARMY 19
0-yd Run
13:31 - 4th
Shayne Davern run for no gain to the Army 3
1st & Goal at ARMY 3
1-yd Run
13:31 - 4th
Shayne Davern run for 1 yd to the Army 2
2nd & Goal at ARMY 3
0-yd Run
13:31 - 4th
Jacobi Owens run for no gain to the Army 2
3rd & Goal at ARMY 2
2-yd Touchdown Pass
7:05 - 4th
Kale Pearson pass complete to Garrett Griffin for 2 yds for a TD, (Will Conant KICK)
4th & Goal at ARMY 2
Kickoff
7:05 - 4th
Drew Oehrle kickoff for 57 yds , Josh Jenkins return for 7 yds to the Army 22 , Xavier Moss return for 7 yds to the Army 22
2-yd Run
6:52 - 4th
Larry Dixon run for 2 yds to the Army 24
1st & 10 at ARMY 22
10-yd Run
6:52 - 4th
Tony Giovannelli run for 10 yds to the Army 34 for a 1ST down
2nd & 8 at ARMY 24
4-yd Run
6:52 - 4th
Tony Giovannelli run for 4 yds to the Army 38
1st & 10 at ARMY 34
Incompletion
6:52 - 4th
A.J. Schurr pass incomplete to Raymond Maples ARMY Penalty, illegal shift ( Yards) declined
2nd & 6 at ARMY 38
Sack
6:52 - 4th
A.J. Schurr sacked by Jordan Pierce for a loss of 8 yards to the Army 30
3rd & 6 at ARMY 38
Fumble Recovery
6:52 - 4th
A.J. Schurr pass complete to Tony Giovannelli for 20 yds Tony Giovannelli fumbled, forced by Justin DeCoud, recovered by AFA Weston Steelhammer
4th & 14 at ARMY 30
1-yd Run
4:45 - 4th
Jacobi Owens run for 1 yd to the AFA 44
1st & 10 at AFA 43
4-yd Run
4:45 - 4th
Shayne Davern run for 4 yds to the AFA 48
2nd & 9 at AFA 44
16-yd Run
4:45 - 4th
Jacobi Owens run for 16 yds to the Army 36 for a 1ST down
3rd & 5 at AFA 48
0-yd Run
4:45 - 4th
Jacobi Owens run for no gain to the Army 36
1st & 10 at ARMY 36
19-yd Run
4:45 - 4th
Shayne Davern run for 19 yds to the Army 17 for a 1ST down
2nd & 10 at ARMY 36
-2-yd Run
4:45 - 4th
TEAM run for a loss of 2 yards to the Army 19
1st & 10 at ARMY 17
-2-yd Run
4:45 - 4th
TEAM run for a loss of 2 yards to the Army 21
2nd & 12 at ARMY 19
End of 4th Quarter
Game Information
West Point, NY

CBS

2025 Standings
FBS
| Mountain West ConferenceMountain West Conference | CONF | OVR |
|---|---|---|
| Boise State | 6-2 | 9-5 |
| New Mexico | 6-2 | 9-4 |
| San Diego State | 6-2 | 9-4 |
| UNLV | 6-2 | 10-4 |
| Fresno State | 5-3 | 9-4 |
| Hawai'i | 5-3 | 9-4 |
| Utah State | 4-4 | 6-7 |
| Air Force | 3-5 | 4-8 |
| Nevada | 2-6 | 3-9 |
| Wyoming | 2-6 | 4-8 |
| San José State | 2-6 | 3-9 |
| Colorado State | 1-7 | 2-10 |
FBS
| American ConferenceAmerican Conference | CONF | OVR |
|---|---|---|
| Tulane | 7-1 | 11-3 |
| North Texas | 7-1 | 12-2 |
| Navy | 7-1 | 11-2 |
| East Carolina | 6-2 | 9-4 |
| South Florida | 6-2 | 9-4 |
| Army | 4-4 | 7-6 |
| Memphis | 4-4 | 8-5 |
| UTSA | 4-4 | 7-6 |
| Temple | 3-5 | 5-7 |
| Florida Atlantic | 3-5 | 4-8 |
| Rice | 2-6 | 5-8 |
| UAB | 2-6 | 4-8 |
| Tulsa | 1-7 | 4-8 |
| Charlotte | 0-8 | 1-11 |
NCAAF News

How every 2027 five-star college football prospect will fit
There are 21 five-star players in the class and we scout each one's game for the next level.
9h

Mark Matthews, No. 3 OT in 2027 class, commits to Texas A&M
Texas A&M on Friday beat out Miami for the commitment of five-star offensive tackle Mark Matthews, ESPN's No. 11 overall prospect in the 2027 class.
9h

Suspect arrested in shooting of Missouri RB Ahmad Hardy
A 20-year-old man wanted in connection to the shooting of Missouri football star Ahmad Hardy at an outdoor concert in Mississippi has been arrested.
11h
GAMBLING PROBLEM? CALL 1-800-GAMBLER, (800) 327-5050 or visit gamblinghelplinema.org (MA). Call 877-8-HOPENY/text HOPENY (467369) (NY). Please Gamble Responsibly. 888-789-7777/visit ccpg.org (CT), or visit www.mdgamblinghelp.org (MD). 21+ and present in most states. (18+ DC/KY/NH/WY). Void in ONT/OR/NH. Eligibility restrictions apply. On behalf of Boot Hill Casino & Resort (KS). Terms: sportsbook.draftkings.com/promos.
Copyright: © 2026 ESPN Enterprises, LLC. All rights reserved.

