Group Stage | Final Stage Group Stage Group 1 (East) | Group 2 (West) Group 1 (East) Final Table: 1.Al-Akhdar SC (Al-Bayda) 22 18 0 4 40-12 54 Qualified 2.Al-Ahli SC (Benghazi) 22 17 2 3 38-13 53 Qualified - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Hilal SC (Benghazi) 22 16 4 2 36-13 52 4.Al-Nasr SC (Benghazi) 22 15 4 3 31-13 49 5.Khaleej Surt SC 22 10 5 7 22-19 35 6.Al-Sadaqa SC (Shahat) 22 6 5 11 20-26 23 7.Al-Tahaddi SC (Benghazi) 22 6 4 12 14-21 22 8.Darnes SC (Derna) 22 4 9 9 20-28 21 9.Shabab Al-Jabal FC 22 3 9 10 23-33 18 10.Al-Ta'awon SC (Ajdabiya) 22 4 4 14 20-35 16 ------------------------------------------------------ 11.Al-Anwar SC (Abyar) 22 2 7 13 22-49 13 Relegated 12.Ngom Ajdabiya SC 22 2 5 15 12-36 11 Relegated Round 1 [Jan 25] Al-Sadaqa 0-2 Al-Akhdar Al-Ta'awon 0-2 Khaleej Surt [Jan 26] Al-Tahaddi 1-0 Al-Anwar Darnes 1-1 Shabab Al-Jabal [Feb 4] Al-Ahli Benghazi 2-1 Al-Hilal [Feb 6] Al-Nasr Benghazi 2-0 Ngom Ajdabiya Round 2 [Feb 9] Al-Akhdar 1-0 Al-Ta'awon Shabab Al-Jabal abd Al-Sadaqa [abandoned at 0-0] [Feb 10] Al-Hilal 1-0 Khaleej Surt [Feb 11] Al-Nasr Benghazi 2-1 Al-Tahaddi Ngom Ajdabiya 2-2 Darnes Shabab Al-Jabal 0-0 Al-Sadaqa [replay Feb 9] [Mar 5] Al-Anwar 0-4 Al-Ahli Benghazi Round 3 [Feb 14] Al-Ta'awon 1-1 Al-Hilal [Feb 15] Khaleej Surt 0-0 Al-Anwar [Feb 16] Al-Sadaqa 2-0 Ngom Ajdabiya Darnes 0-1 Al-Tahaddi [Feb 18] Shabab Al-Jabal 0-1 Al-Akhdar [May 7] Al-Ahli Benghazi 3-1 Al-Nasr Benghazi Round 4 [Feb 22] Al-Hilal 3-1 Al-Anwar [Feb 23] Al-Ta'awon 2-2 Shabab Al-Jabal Al-Nasr Benghazi 2-1 Khaleej Surt [Feb 24] Ngom Ajdabiya 0-1 Al-Akhdar Al-Tahaddi 3-1 Al-Sadaqa [May 16] Darnes 1-1 Al-Ahli Benghazi Round 5 [Mar 1] Al-Ahli Benghazi 2-0 Al-Sadaqa Al-Anwar 2-3 Al-Ta'awon [Mar 2] Shabab Al-Jabal 0-1 Ngom Ajdabiya [Mar 3] Al-Akhdar 2-1 Al-Tahaddi [Mar 4] Al-Nasr Benghazi 1-1 Al-Hilal Khaleej Surt 0-0 Darnes Round 6 [Mar 7] Al-Ta'awon 3-0 Ngom Ajdabiya [Mar 9] Al-Sadaqa 2-1 Khaleej Surt [Mar 10] Al-Tahaddi 1-0 Shabab Al-Jabal Anwar awd Al-Nasr Benghazi [awarded 0-2; abandoned at 1-2] [Mar 11] Al-Hilal 3-1 Darnes [May 26] Al-Akhdar 0-1 Al-Ahli Benghazi Round 7 [Apr 9] Al-Ta'awon 0-2 Al-Nasr Benghazi Darnes 1-1 Al-Anwar [Apr 10] Ngom Ajdabiya 0-0 Al-Tahaddi [Apr 11] Khaleej Surt 1-3 Al-Akhdar Al-Sadaqa 1-2 Al-Hilal [May 30] Al-Ahli Benghazi 4-0 Shabab Al-Jabal Round 8 [Apr 23] Al-Tahaddi 1-0 Al-Ta'awon Shabab Al-Jabal 1-1 Khaleej Surt [Apr 25] Al-Nasr Benghazi 1-0 Darnes Al-Akhdar 0-3 Al-Hilal [Apr 26] Al-Anwar 2-1 Al-Sadaqa [Jun 2] Al-Ahli Benghazi 2-0 Ngom Ajdabiya Round 9 [May 2] Al-Sadaqa 1-2 Al-Nasr Benghazi Al-Hilal 1-0 Shabab Al-Jabal Al-Ta'awon 1-3 Darnes [May 3] Al-Tahaddi 0-1 Al-Ahli Benghazi [May 4] Ngom Ajdabiya 0-1 Khaleej Surt [May 5] Al-Akhdar 6-0 Al-Anwar Round 10 [May 8] Al-Hilal 1-0 Ngom Ajdabiya [May 9] Al-Tahaddi 0-2 Khaleej Surt Shabab Al-Jabal 3-2 Al-Anwar [May 10] Al-Ahli Benghazi 1-0 Al-Ta'awon [May 11] Al-Nasr Benghazi 2-0 Al-Akhdar [May 12] Darnes 1-1 Al-Sadaqa Round 11 [May 20] Shabab Al-Jabal 0-2 Al-Nasr Benghazi Al-Sadaqa 2-1 Al-Ta'awon [May 21] Al-Hilal 1-0 Al-Tahaddi Ngom Ajdabiya 0-0 Al-Anwar Khaleej Surt 0-1 Al-Ahli Benghazi [May 22] Al-Akhdar 2-0 Darnes Halfway Table: 1.Al-Ahli SC (Benghazi) 11 10 1 0 22- 3 31 2.Al-Nasr SC (Benghazi) 11 9 1 1 19- 7 28 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Hilal SC (Benghazi) 11 8 2 1 18- 7 26 4.Al-Akhdar SC (Al-Bayda) 11 8 0 3 18- 8 24 5.Al-Tahaddi SC (Benghazi) 11 5 1 5 9- 9 16 6.Khaleej Surt SC 11 3 3 5 9-10 12 7.Al-Sadaqa SC (Shahat) 11 3 2 6 11-16 11 8.Darnes SC (Derna) 11 1 6 4 10-14 9 9.Al-Ta'awon SC (Ajdabiya) 11 2 2 7 11-17 8 10.Shabab Al-Jabal FC 11 1 4 6 7-16 7 ------------------------------------------------------ 11.Ngom Ajdabiya SC 11 1 3 7 3-14 6 12.Al-Anwar SC (Abyar) 11 1 3 7 8-24 6 Round 12 [Jun 3] Al-Akhdar 1-0 Al-Sadaqa Khaleej Surt 1-0 Al-Ta'awon [Jun 4] Al-Anwar 1-1 Al-Tahaddi Shabab Al-Jabal 2-2 Darnes [Jun 6] Al-Hilal 0-2 Al-Ahli Benghazi Ngom Ajdabiya 0-1 Al-Nasr Benghazi Round 13 [Jun 8] Al-Ta'awon awd Al-Akhdar [awarded 0-2; originally 2-2] Al-Sadaqa 2-2 Shabab Al-Jabal [Jun 10] Al-Tahaddi 0-1 Al-Nasr Benghazi [Jun 11] Khaleej Surt 0-2 Al-Hilal Al-Ahli Benghazi 1-0 Al-Anwar Darnes 1-0 Ngom Ajdabiya Round 14 [Jun 23] Al-Tahaddi 1-2 Darnes Al-Akhdar 2-0 Shabab Al-Jabal [Jun 24] Ngom Ajdabiya 2-0 Al-Sadaqa Al-Anwar 0-1 Khaleej Surt [Jun 25] Al-Hilal 2-0 Al-Ta'awon [Jun 26] Al-Nasr Benghazi 1-1 Al-Ahli Benghazi Round 15 [Jun 28] Al-Sadaqa 0-0 Al-Tahaddi Al-Akhdar 2-0 Ngom Ajdabiya [Jun 29] Shabab Al-Jabal 2-1 Al-Ta'awon Al-Anwar 0-2 Al-Hilal [Jun 30] Khaleej Surt 1-1 Al-Nasr Benghazi Al-Ahli Benghazi 3-1 Darnes Round 16 [Jul 2] Al-Tahaddi 0-1 Al-Akhdar Al-Ta'awon 2-2 Al-Anwar [Jul 3] Ngom Ajdabiya 0-4 Shabab Al-Jabal [Jul 4] Darnes 1-2 Khaleej Surt Al-Hilal 1-0 Al-Nasr Benghazi Al-Sadaqa 0-1 Al-Ahli Benghazi Round 17 [Jul 7] Shabab Al-Jabal 0-0 Al-Tahaddi Ngom Ajdabiya 2-2 Al-Ta'awon Al-Nasr Benghazi 2-0 Al-Anwar [Jul 8] Al-Ahli Benghazi 1-2 Al-Akhdar Khaleej Surt 1-0 Al-Sadaqa Darnes 1-2 Al-Hilal Round 18 [Jul 10] Al-Tahaddi 2-1 Ngom Ajdabiya [Jul 11] Shabab Al-Jabal 1-2 Al-Ahli Benghazi Al-Nasr Benghazi 3-1 Al-Ta'awon Al-Anwar 1-1 Darnes [Jul 12] Al-Akhdar 2-0 Khaleej Surt Al-Hilal 1-1 Al-Sadaqa Round 19 [Jul 14] Al-Ta'awon 1-0 Al-Tahaddi Darnes 0-0 Al-Nasr Benghazi [Jul 15] Al-Sadaqa 3-1 Al-Anwar Ngom Ajdabiya 0-2 Al-Ahli Benghazi Khaleej Surt 1-1 Shabab Al-Jabal Al-Hilal 1-0 Al-Akhdar Round 20 [Jul 18] Al-Anwar 2-7 Al-Akhdar Al-Nasr Benghazi 1-0 Al-Sadaqa Shabab Al-Jabal 1-1 Al-Hilal Darnes 1-0 Al-Ta'awon Khaleej Surt 2-1 Ngom Ajdabiya Al-Ahli Benghazi 1-0 Al-Tahaddi Round 21 [Jul 22] Al-Sadaqa 1-0 Darnes Al-Anwar 4-2 Shabab Al-Jabal Al-Ta'awon 2-1 Al-Ahli Benghazi [Jul 23] Al-Akhdar 1-0 Al-Nasr Benghazi Ngom Ajdabiya 0-3 Al-Hilal Khaleej Surt 1-0 Al-Tahaddi Round 22 [Jul 26] Darnes 0-2 Al-Akhdar Al-Tahaddi 1-3 Al-Hilal Al-Ahli Benghazi 1-3 Khaleej Surt [Jul 27] Al-Ta'awon 0-2 Al-Sadaqa Al-Anwar 3-3 Ngom Ajdabiya Al-Nasr Benghazi 2-1 Shabab Al-Jabal Final Table: 1.Al-Akhdar SC (Al-Bayda) 22 18 0 4 40-12 54 Qualified 2.Al-Ahli SC (Benghazi) 22 17 2 3 38-13 53 Qualified - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Hilal SC (Benghazi) 22 16 4 2 36-13 52 4.Al-Nasr SC (Benghazi) 22 15 4 3 31-13 49 5.Khaleej Surt SC 22 10 5 7 22-19 35 6.Al-Sadaqa SC (Shahat) 22 6 5 11 20-26 23 7.Al-Tahaddi SC (Benghazi) 22 6 4 12 14-21 22 8.Darnes SC (Derna) 22 4 9 9 20-28 21 9.Shabab Al-Jabal FC 22 3 9 10 23-33 18 10.Al-Ta'awon SC (Ajdabiya) 22 4 4 14 20-35 16 ------------------------------------------------------ 11.Al-Anwar SC (Abyar) 22 2 7 13 22-49 13 Relegated 12.Ngom Ajdabiya SC 22 2 5 15 12-36 11 Relegated Group 2 (West) Final Table: 1.Al-Ittihad SC (Tripoli) 22 15 6 1 26- 6 51 Qualified 2.Al-Ahli (Tripoli) 22 14 7 1 29- 7 49 Qualified - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Olympique SC (Azzaweya) 22 9 6 7 22-19 33 4.Al-Ittihad SC (Misrata) 22 9 5 8 26-25 32 5.Abu Salim SC (Tripoli) 22 9 3 10 24-26 30 6.Al-Swihli SC (Misrata) 22 7 9 6 15-15 28 [-2] 7.Al-Mahala SC (Tripoli) 22 5 11 6 21-23 26 8.Al-Madina SC (Tripoli) 22 6 7 9 21-18 25 9.Al-Khums SC 22 5 8 9 21-28 23 10.Al-Shat SC (Tripoli) 22 6 4 12 17-25 22 ------------------------------------------------------ 11.VPG Rafik (Sorman) 22 5 6 11 21-34 21 Relegated 12.Al-Wahda SC (Tripoli) 22 4 4 14 14-31 16 Relegated NB: Al-Swihli 2 points deducted Round 1 [Jan 25] Al-Olympique 0-0 Rafik (Sorman) Al-Shat 1-2 Al-Ittihad Misrata [Jan 26] Abu Salim 0-3 Al-Wahda [Feb 5] Al-Ittihad Tripoli 1-1 Al-Khums Al-Swihli 1-1 Al-Madina [Feb 6] Al-Ahli Tripoli 2-1 Al-Mahala Round 2 [Feb 9] Al-Shat 1-1 Al-Wahda [Feb 10] Rafik (Sorman) 2-2 Al-Khums Al-Ittihad Misrata 0-0 Al-Swihli [Feb 11] Abu Salim 2-2 Al-Ahli Tripoli [Feb 12] Al-Mahala 1-1 Al-Olympique [Feb 19] Al-Madina 0-0 Al-Ittihad Tripoli Round 3 [Feb 14] Al-Wahda 1-2 Al-Swihli [Feb 15] Rafik (Sorman) 1-1 Al-Ittihad Tripoli [Feb 16] Al-Ahli Tripoli 2-1 Al-Shat Al-Khums 1-1 Al-Mahala Al-Olympique 1-2 Abu Salim [Mar 1] Al-Madina 2-0 Al-Ittihad Misrata Round 4 [Feb 21] Al-Mahala 1-1 Rafik (Sorman) [Feb 22] Abu Salim 0-0 Al-Khums [Feb 23] Al-Swihli 0-0 Al-Ahli Tripoli Al-Shat 0-2 Al-Olympique [Feb 24] Al-Ittihad Misrata 1-2 Al-Ittihad Tripoli Al-Wahda 1-0 Al-Madina Round 5 [Mar 1] Rafik (Sorman) 1-0 Abu Salim [Mar 2] Al-Khums 4-2 Al-Shat [Mar 3] Al-Olympique awd Al-Swihli [awarded 2-0; originally 1-0, [Mar 4] Swihli 2 points deducted] Al-Ittihad Tripoli 1-0 Al-Mahala [Mar 6] Al-Ittihad Misrata 1-0 Al-Wahda Al-Ahli Tripoli 0-0 Al-Madina Round 6 [Mar 8] Al-Swihli 1-1 Al-Khums Al-Shat 1-0 Rafik (Sorman) [Mar 9] Abu Salim 0-2 Al-Mahala [also reported 1-2] [Mar 10] Al-Ittihad Tripoli 1-0 Al-Wahda [Mar 11] Al-Ahli Tripoli 2-0 Al-Ittihad Misrata [Mar 12] Al-Madina 2-0 Al-Olympique Round 7 [Apr 9] Al-Mahala 1-0 Al-Shat [also reported 0-1] [Apr 10] Al-Wahda 0-2 Al-Ahli Tripoli Al-Ittihad Misrata 2-1 Al-Olympique [also reported 1-1] Rafik (Sorman) 0-1 Al-Swihli [Apr 11] Abu Salim 0-2 Al-Ittihad Tripoli Al-Khums 2-1 Al-Madina Round 8 [Apr 26] Al-Swihli 0-0 Al-Mahala Al-Ittihad Tripoli 0-0 Al-Ahli Tripoli [Apr 27] Al-Khums 0-1 Al-Ittihad Misrata Al-Olympique 0-0 Al-Wahda [Apr 28] Al-Madina 1-0 Rafik (Sorman) [Apr 29] Al-Shat 0-1 Abu Salim Round 9 [May 2] Al-Wahda 0-2 Al-Khums [May 3] Al-Shat 1-2 Al-Ittihad Tripoli [May 4] Al-Ahli Tripoli 0-0 Al-Olympique Al-Ittihad Misrata 4-0 Rafik (Sorman) [May 5] Abu Salim 1-2 Al-Swihli [May 6] Al-Mahala 1-1 Al-Madina Round 10 [May 9] Al-Khums 0-1 Al-Ahli Tripoli [May 10] Al-Swihli 1-0 Al-Shat Al-Olympique 0-1 Al-Ittihad Tripoli Al-Mahala 2-2 Al-Ittihad Misrata [May 11] Al-Madina 2-2 Abu Salim Rafik (Sorman) 3-2 Al-Wahda Round 11 [May 20] Al-Khums 2-2 Al-Olympique Al-Ittihad Tripoli 1-0 Al-Swihli [May 21] Al-Wahda 0-1 Al-Mahala Rafik (Sorman) 0-1 Al-Ahli Tripoli [May 22] Al-Madina 0-1 Al-Shat Al-Ittihad Misrata 2-1 Abu Salim Halfway Table: 1.Al-Ittihad SC (Tripoli) 11 7 4 0 12- 4 25 2.Al-Ahli (Tripoli) 11 6 5 0 12- 4 23 - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Ittihad SC (Misrata) 11 6 2 3 15-11 20 4.Al-Khums SC 11 3 6 2 15-12 15 5.Al-Mahala SC (Tripoli) 11 3 6 2 11- 9 15 6.Al-Swihli SC (Misrata) 11 4 5 2 8- 7 15 [-2] 7.Al-Madina SC (Tripoli) 11 3 5 3 10- 8 14 8.Al-Olympique SC (Azzaweya) 11 2 5 4 9-10 11 9.VPG Rafik (Sorman) 11 2 4 5 8-14 10 10.Abu Salim SC (Tripoli) 11 2 3 6 9-17 9 ------------------------------------------------------ 11.Al-Wahda SC (Tripoli) 11 2 2 7 8-13 8 12.Al-Shat SC (Tripoli) 11 2 1 8 8-16 7 NB: Al-Swihli 2 points deducted Round 12 [Jun 2] Al-Madina 0-1 Al-Swihli Rafik (Sorman) 3-1 Al-Olympique [Jun 3] Al-Mahala 0-0 Al-Ahli Tripoli Al-Ittihad Misrata 2-0 Al-Shat [Jun 4] Al-Wahda 0-2 Abu Salim [Jun 6] Al-Khums 0-2 Al-Ittihad Tripoli Round 13 [Jun 8] Al-Swihli 1-2 Al-Ittihad Misrata Al-Olympique 1-0 Al-Mahala [Jun 9] Al-Ahli Tripoli 1-0 Abu Salim [Jun 10] Al-Khums 1-0 Rafik (Sorman) Al-Wahda 2-2 Al-Shat [Jun 11] Al-Ittihad Tripoli 1-0 Al-Madina Round 14 [Jun 23] Abu Salim 1-2 Al-Olympique [Jun 24] Al-Mahala 2-2 Al-Khums [Jun 25] Al-Ittihad Tripoli 3-0 Rafik (Sorman) Al-Ittihad Misrata 1-1 Al-Madina [Jun 26] Al-Swihli 0-1 Al-Wahda Al-Shat 0-1 Al-Ahli Tripoli Round 15 [Jun 28] Rafik (Sorman) 2-2 Al-Mahala [Jun 29] Al-Khums 0-1 Abu Salim Al-Ittihad Tripoli 1-0 Al-Ittihad Misrata [Jun 30] Al-Ahli Tripoli 0-0 Al-Swihli Al-Olympique 2-0 Al-Shat Al-Madina 4-0 Al-Wahda Round 16 [Jul 2] Abu Salim 3-2 Rafik (Sorman) Al-Mahala 0-2 Al-Ittihad Tripoli [Jul 3] Al-Wahda 1-0 Al-Ittihad Misrata Al-Swihli 0-1 Al-Olympique Al-Madina 0-1 Al-Ahli Tripoli [Jul 4] Al-Shat 1-0 Al-Khums Round 17 [Jul 6] Al-Mahala 0-3 Abu Salim [Jul 7] Al-Wahda 0-1 Al-Ittihad Tripoli Al-Olympique 1-0 Al-Madina Al-Ittihad Misrata 1-4 Al-Ahli Tripoli [Jul 8] Al-Khums 1-2 Al-Swihli Rafik (Sorman) 0-3 Al-Shat Round 18 [Jul 10] Al-Ittihad Tripoli 0-1 Abu Salim Al-Olympique 3-1 Al-Ittihad Misrata [Jul 11] Al-Swihli 2-1 Rafik (Sorman) Al-Madina 0-0 Al-Khums Al-Ahli Tripoli 2-0 Al-Wahda [Jul 12] Al-Shat 0-1 Al-Mahala Round 19 [Jul 14] Al-Wahda 0-0 Al-Olympique [Jul 15] Al-Mahala 0-0 Al-Swihli Rafik (Sorman) 2-1 Al-Madina Al-Ittihad Misrata 2-0 Al-Khums Abu Salim 0-1 Al-Shat [Jul 16] Al-Ahli Tripoli 1-2 Al-Ittihad Tripoli Round 20 [Jul 19] Al-Olympique 0-1 Al-Ahli Tripoli Al-Khums 1-0 Al-Wahda Al-Ittihad Tripoli 0-0 Al-Shat Rafik (Sorman) 1-1 Al-Ittihad Misrata Al-Swihli 0-1 Abu Salim Al-Madina 2-0 Al-Mahala Round 21 [Jul 22] Al-Wahda 1-2 Rafik (Sorman) Al-Shat 1-1 Al-Swihli [Jul 23] Abu Salim 2-3 Al-Madina Al-Ittihad Misrata 1-1 Al-Mahala Al-Ahli Tripoli 4-0 Al-Khums [Jul 24] Al-Ittihad Tripoli 2-0 Al-Olympique Round 22 [Jul 26] Al-Ahli Tripoli 2-0 Rafik (Sorman) Al-Shat 1-0 Al-Madina [Jul 27] Al-Swihli 0-0 Al-Ittihad Tripoli Al-Mahala 4-1 Al-Wahda [Jul 28] Abu Salim 1-0 Al-Ittihad Misrata Al-Olympique 2-1 Al-Khums Final Table: 1.Al-Ittihad SC (Tripoli) 22 15 6 1 26- 6 51 Qualified 2.Al-Ahli (Tripoli) 22 14 7 1 29- 7 49 Qualified - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.Al-Olympique SC (Azzaweya) 22 9 6 7 22-19 33 4.Al-Ittihad SC (Misrata) 22 9 5 8 26-25 32 5.Abu Salim SC (Tripoli) 22 9 3 10 24-26 30 6.Al-Swihli SC (Misrata) 22 7 9 6 15-15 28 [-2] 7.Al-Mahala SC (Tripoli) 22 5 11 6 21-23 26 8.Al-Madina SC (Tripoli) 22 6 7 9 21-18 25 9.Al-Khums SC 22 5 8 9 21-28 23 10.Al-Shat SC (Tripoli) 22 6 4 12 17-25 22 ------------------------------------------------------ 11.VPG Rafik (Sorman) 22 5 6 11 21-34 21 Relegated 12.Al-Wahda SC (Tripoli) 22 4 4 14 14-31 16 Relegated NB: Al-Swihli 2 points deducted Final Stage Semifinals [Aug 1] Al-Akhdar 1-2 Al-Ahli Tripoli Al-Ittihad Tripoli 1-0 Al-Ahli Benghazi Final [Aug 6] Al-Ittihad Tripoli 0-0 Al-Ahli Tripoli [6-5 pen]
Prepared and maintained by Jos� Batalha for the Rec.Sport.Soccer Statistics Foundation
Author: Jos� Batalha
Last updated: 25 Nov 2021
(C) Copyright Jos� Batalha and RSSSF 2021
You are free to copy this document in whole or part provided that proper
acknowledgement is given to the author. All rights reserved.