Final Table: 1.Yenicami Ağdelen SK 30 18 7 5 63-33 61 [C] Champions 2.Doğan Türk Birliği 30 17 6 7 61-42 57 3.GAÜ Çetinkaya Türk SK 30 16 7 7 57-42 55 4.Binatlı Yılmaz SK 30 14 8 8 58-43 50 5.Merit Alsancak Yeşilova SK 30 12 12 6 46-35 48 [P] 6.Baf Ülkü Yurdu SK 30 12 9 9 63-43 45 7.Lefke Türk SK 30 13 5 12 64-48 44 8.Cihangir SK 30 12 7 11 53-49 43 9.Küçük Kaymaklı Türk SK 30 13 3 14 61-62 42 10.Türk Ocağı Limasol SK 30 13 2 15 47-45 41 [2 1 1 0 4-2 4] - - - - - - - - - - - - - - - - - - - - - - - - - - - 11.Mağusa Türk Gücü SK 30 11 8 11 54-47 41 [2 0 1 1 2-4 1] Relegation Playoff 12.Larnaka Gençler Birliği SK 30 10 7 13 52-60 37 Relegation Playoff 13.Gençlik Gücü TSK 30 10 4 16 40-65 34 Relegation Playoff 14.Yalova SK 30 6 7 17 45-68 25 Relegation Playoff ----------------------------------------------------- 15.Yeni Boğaziçi DSK 30 5 9 16 24-59 24 [P] Relegated 16.Ozanköy SK 30 4 7 19 29-76 19 [P] Relegated Round 1 [Sep 22] Baf Ülkü Yurdu 0-1 Binatlı [Sep 23] Mağusa TG 2-2 Yenicami K.Kaymaklı 3-2 Gençlik Gücü Lefke 1-1 Y.Boğaziçi [Sep 24] A.Yeşilova 2-2 Doğan TB Gençler Birliği 4-3 Yalova Çetinkaya 3-0 Ozanköy [Sep 25] Türk Ocağı 1-0 Cihangir Round 2 [Sep 29] Binatlı 0-0 Lefke [Sep 30] Yenicami 2-2 Gençler Birliği Y.Boğaziçi 0-3 Çetinkaya Ozanköy 1-1 A.Yeşilova [Oct 1] Cihangir 2-1 Mağusa TG Gençlik Gücü 1-0 Türk Ocağı Yalova 0-0 Baf Ülkü Yurdu [Oct 2] Doğan TB 4-2 K.Kaymaklı Round 3 [Oct 6] Baf Ülkü Yurdu 4-5 Yenicami [Oct 7] Mağusa TG 2-2 Türk Ocağı Doğan TB 2-0 Gençlik Gücü Gençler Birliği 0-0 Cihangir [Oct 8] K.Kaymaklı 2-0 Ozanköy A.Yeşilova 0-0 Y.Boğaziçi Lefke 4-2 Yalova [Oct 9] Çetinkaya 2-4 Binatlı Round 4 [Oct 13] Yenicami 4-1 Lefke [Oct 14] Binatlı 2-2 A.Yeşilova Ozanköy 1-1 Doğan TB Gençlik Gücü 1-1 Mağusa TG [Oct 15] Y.Boğaziçi 3-1 K.Kaymaklı Cihangir 4-1 Baf Ülkü Yurdu Yalova 5-1 Çetinkaya [Oct 16] Türk Ocağı 0-2 Gençler Birliği Round 5 [Oct 20] Doğan TB 0-1 Y.Boğaziçi [Oct 21] K.Kaymaklı 4-3 Binatlı Ozanköy 3-1 Gençlik Gücü Baf Ülkü Yurdu 5-2 Türk Ocağı [Oct 22] A.Yeşilova 1-1 Yalova Gençler Birliği 2-2 Mağusa TG Lefke 5-1 Cihangir Çetinkaya 2-0 Yenicami Round 6 [Oct 27] Binatlı 3-1 Doğan TB [Oct 28] Mağusa TG 0-5 Baf Ülkü Yurdu Y.Boğaziçi 1-1 Ozanköy Yalova 2-4 K.Kaymaklı [Oct 29] Türk Ocağı 4-2 Lefke Cihangir 1-4 Çetinkaya Gençlik Gücü 1-1 Gençler Birliği [Oct 30] Yenicami 2-0 A.Yeşilova Round 7 [Nov 3] Doğan TB 3-2 Yalova [Nov 4] Y.Boğaziçi 0-1 Gençlik Gücü K.Kaymaklı 4-2 Yenicami Lefke 1-0 Mağusa TG [Nov 5] Ozanköy 1-3 Binatlı A.Yeşilova 4-1 Cihangir Çetinkaya 2-1 Türk Ocağı [Nov 6] Baf Ülkü Yurdu 1-3 Gençler Birliği Round 8 [Nov 10] Yenicami 1-2 Doğan TB [Nov 11] Mağusa TG 2-1 Çetinkaya Gençlik Gücü 0-3 Baf Ülkü Yurdu [Nov 12] Binatlı 1-1 Y.Boğaziçi Cihangir 1-4 K.Kaymaklı Gençler Birliği 3-2 Lefke [Nov 13] Türk Ocağı 1-2 A.Yeşilova Yalova 1-2 Ozanköy Round 9 [Nov 17] Çetinkaya 2-1 Gençler Birliği [Nov 18] K.Kaymaklı 0-2 Türk Ocağı Binatlı 3-0 Gençlik Gücü Lefke 0-7 Baf Ülkü Yurdu [Nov 19] Y.Boğaziçi 0-1 Yalova Ozanköy 0-4 Yenicami A.Yeşilova 2-0 Mağusa TG [Nov 20] Doğan TB 2-1 Cihangir Round 10 [Nov 24] Baf Ülkü Yurdu 2-1 Çetinkaya [Nov 25] Yenicami 1-0 Y.Boğaziçi Mağusa TG 2-1 K.Kaymaklı Cihangir 1-1 Ozanköy [Nov 26] Gençlik Gücü 2-1 Lefke Yalova 3-5 Binatlı Gençler Birliği 0-0 A.Yeşilova [Nov 27] Türk Ocağı 1-3 Doğan TB Round 11 [Dec 1] Çetinkaya 2-1 Lefke [Dec 2] Y.Boğaziçi 0-0 Cihangir Ozanköy 0-5 Türk Ocağı A.Yeşilova 1-1 Baf Ülkü Yurdu [Dec 3] Doğan TB 2-0 Mağusa TG K.Kaymaklı 1-1 Gençler Birliği Yalova 3-1 Gençlik Gücü [Dec 4] Binatlı 0-0 Yenicami Round 12 [Dec 9] Mağusa TG 4-1 Ozanköy Cihangir 3-1 Binatlı Gençlik Gücü 2-1 Çetinkaya Gençler Birliği 4-1 Doğan TB [Dec 10] Yenicami 4-1 Yalova Türk Ocağı 2-0 Y.Boğaziçi Baf Ülkü Yurdu 0-1 K.Kaymaklı Lefke 4-0 A.Yeşilova Round 13 [Dec 15] Yenicami 4-1 Gençlik Gücü [Dec 16] K.Kaymaklı 2-1 Lefke Ozanköy 1-3 Gençler Birliği Yalova 1-1 Cihangir A.Yeşilova 0-1 Çetinkaya [Dec 17] Doğan TB 1-1 Baf Ülkü Yurdu Y.Boğaziçi 0-4 Mağusa TG [Dec 18] Binatlı 2-1 Türk Ocağı Round 14 [Dec 22] Çetinkaya 3-1 K.Kaymaklı Lefke 1-2 Doğan TB [Dec 23] Türk Ocağı 0-1 Yalova Cihangir 1-2 Yenicami Gençler Birliği 0-1 Y.Boğaziçi [Dec 24] Mağusa TG 2-2 Binatlı Gençlik Gücü 1-0 A.Yeşilova Baf Ülkü Yurdu 1-1 Ozanköy Round 15 [Dec 28] Yenicami 4-0 Türk Ocağı [Dec 29] Doğan TB 1-1 Çetinkaya Y.Boğaziçi 2-2 Baf Ülkü Yurdu Binatlı 3-1 Gençler Birliği [Dec 30] K.Kaymaklı 0-1 A.Yeşilova Ozanköy 0-1 Lefke Cihangir 5-0 Gençlik Gücü Yalova 2-3 Mağusa TG Halfway Table: 1.Yenicami Ağdelen SK 15 9 3 3 37-20 30 [C] 2.Binatlı Yılmaz SK 15 8 5 2 33-21 29 3.GAÜ Çetinkaya Türk SK 15 9 1 5 29-21 28 4.Doğan Türk Birliği 15 8 4 3 27-21 28 5.Küçük Kaymaklı Türk SK 15 8 1 6 30-27 25 6.Larnaka Gençler Birliği SK 15 6 6 3 27-20 24 7.Baf Ülkü Yurdu SK 15 5 5 5 33-22 20 8.Mağusa Türk Gücü SK 15 5 5 5 25-26 20 9.Merit Alsancak Yeşilova SK 15 4 7 4 16-17 19 [P] 10.Lefke Türk SK 15 5 2 8 25-30 17 11.Gençlik Gücü TSK 15 5 2 8 14-30 17 12.Türk Ocağı Limasol SK 15 5 1 9 22-26 16 13.Cihangir SK 15 4 4 7 22-27 16 ----------------------------------------------------- 14.Yalova SK 15 4 3 8 28-33 15 15.Yeni Boğaziçi DSK 15 3 6 6 10-18 15 [P] 16.Ozanköy SK 15 2 5 8 13-32 11 [P] Round 16 [Jan 26] Yenicami 2-1 Mağusa TG [Jan 27] Doğan TB 0-2 A.Yeşilova Ozanköy 0-4 Çetinkaya Cihangir 2-1 Türk Ocağı [Jan 28] Y.Boğaziçi 0-2 Lefke Gençlik Gücü 2-1 K.Kaymaklı Yalova 2-1 Gençler Birliği [Jan 29] Binatlı 1-1 Baf Ülkü Yurdu Round 17 [Feb 3] Türk Ocağı 1-0 Gençlik Gücü K.Kaymaklı 1-3 Doğan TB A.Yeşilova 2-1 Ozanköy Lefke 0-1 Binatlı [Feb 4] Mağusa TG 1-2 Cihangir Baf Ülkü Yurdu 1-1 Yalova Gençler Birliği 1-2 Yenicami Çetinkaya 2-1 Y.Boğaziçi Round 18 [Feb 10] Y.Boğaziçi 1-2 A.Yeşilova Cihangir 3-3 Gençler Birliği Gençlik Gücü 1-3 Doğan TB Yalova 2-2 Lefke [Feb 11] Yenicami 0-0 Baf Ülkü Yurdu Türk Ocağı 2-0 Mağusa TG Ozanköy 0-1 K.Kaymaklı [Feb 12] Binatlı 2-3 Çetinkaya Round 19 [Feb 16] Lefke 1-2 Yenicami [Feb 17] Mağusa TG 4-0 Gençlik Gücü Doğan TB 6-1 Ozanköy K.Kaymaklı 3-1 Y.Boğaziçi Baf Ülkü Yurdu 1-4 Cihangir [Feb 18] A.Yeşilova 2-2 Binatlı Gençler Birliği 0-3 Türk Ocağı Çetinkaya 2-1 Yalova Round 20 [Feb 23] Y.Boğaziçi 1-7 Doğan TB [Feb 24] Binatlı 1-4 K.Kaymaklı Gençlik Gücü 4-2 Ozanköy Yalova 1-1 A.Yeşilova [Feb 25] Mağusa TG 3-0 Gençler Birliği Türk Ocağı 0-1 Baf Ülkü Yurdu Cihangir 0-2 Lefke [Feb 26] Yenicami 4-0 Çetinkaya Round 21 [Mar 2] Baf Ülkü Yurdu 4-1 Mağusa TG [Mar 3] K.Kaymaklı 3-0 Yalova Gençler Birliği 3-2 Gençlik Gücü Lefke 5-1 Türk Ocağı [Mar 4] Ozanköy 0-1 Y.Boğaziçi A.Yeşilova 2-3 Yenicami Çetinkaya 2-2 Cihangir [Mar 5] Doğan TB 0-2 Binatlı Round 22 [Mar 10] Mağusa TG 2-1 Lefke Cihangir 0-2 A.Yeşilova Gençlik Gücü 4-0 Y.Boğaziçi [Mar 11] Yenicami 6-1 K.Kaymaklı Binatlı 0-2 Ozanköy Yalova 0-1 Doğan TB Gençler Birliği 0-2 Baf Ülkü Yurdu [Mar 12] Türk Ocağı 1-0 Çetinkaya Round 23 [Mar 17] Doğan TB 0-0 Yenicami K.Kaymaklı 0-2 Cihangir Baf Ülkü Yurdu 1-2 Gençlik Gücü Çetinkaya 1-1 Mağusa TG [Mar 18] Y.Boğaziçi 2-5 Binatlı Ozanköy 3-0 Yalova Lefke 4-0 Gençler Birliği [Mar 19] A.Yeşilova 2-1 Türk Ocağı Round 24 [Mar 24] Gençlik Gücü 1-3 Binatlı Yalova 2-2 Y.Boğaziçi Gençler Birliği 1-3 Çetinkaya [Mar 25] Yenicami 1-1 Ozanköy Mağusa TG 1-2 A.Yeşilova Türk Ocağı 1-1 K.Kaymaklı Cihangir 1-2 Doğan TB [Mar 26] Baf Ülkü Yurdu 3-4 Lefke Round 25 [Mar 30] Doğan TB 1-4 Türk Ocağı [Mar 31] Y.Boğaziçi 0-0 Yenicami K.Kaymaklı 2-4 Mağusa TG Ozanköy 0-3 Cihangir A.Yeşilova 4-1 Gençler Birliği [Apr 1] Lefke 5-0 Gençlik Gücü Çetinkaya 2-1 Baf Ülkü Yurdu [Apr 2] Binatlı 3-0 Yalova Round 26 [Apr 7] Türk Ocağı 5-2 Ozanköy Gençlik Gücü 5-4 Yalova Baf Ülkü Yurdu 3-2 A.Yeşilova Lefke 1-1 Çetinkaya [Apr 8] Mağusa TG 0-2 Doğan TB Cihangir 4-1 Y.Boğaziçi Gençler Birliği 4-8 K.Kaymaklı [Apr 9] Yenicami 1-0 Binatlı Round 27 [Apr 14] Doğan TB 2-1 Gençler Birliği Y.Boğaziçi 2-1 Türk Ocağı K.Kaymaklı 1-2 Baf Ülkü Yurdu Binatlı 4-0 Cihangir Ozanköy 1-1 Mağusa TG Yalova 1-3 Yenicami A.Yeşilova 1-1 Lefke Çetinkaya 3-1 Gençlik Gücü Round 28 [Apr 21] Mağusa TG 4-0 Y.Boğaziçi Türk Ocağı 1-0 Binatlı Cihangir 3-0 Yalova Gençlik Gücü 0-1 Yenicami Baf Ülkü Yurdu 2-1 Doğan TB Gençler Birliği 2-1 Ozanköy Lefke 2-1 K.Kaymaklı [Apr 23] Çetinkaya 0-0 A.Yeşilova Round 29 [Apr 28] Yenicami 0-2 Cihangir Doğan TB 3-2 Lefke Y.Boğaziçi 1-4 Gençler Birliği Binatlı 1-1 Mağusa TG Ozanköy 1-7 Baf Ülkü Yurdu Yalova 2-0 Türk Ocağı A.Yeşilova 1-1 Gençlik Gücü [Apr 29] K.Kaymaklı 2-2 Çetinkaya Round 30 [May 4] Çetinkaya 3-3 Doğan TB [May 5] Mağusa TG 5-1 Yalova Türk Ocağı 3-1 Yenicami Gençlik Gücü 3-3 Cihangir Baf Ülkü Yurdu 1-1 Y.Boğaziçi A.Yeşilova 5-2 K.Kaymaklı Gençler Birliği 4-0 Binatlı Lefke 7-1 Ozanköy Final Table: 1.Yenicami Ağdelen SK 30 18 7 5 63-33 61 [C] Champions 2.Doğan Türk Birliği 30 17 6 7 61-42 57 3.GAÜ Çetinkaya Türk SK 30 16 7 7 57-42 55 4.Binatlı Yılmaz SK 30 14 8 8 58-43 50 5.Merit Alsancak Yeşilova SK 30 12 12 6 46-35 48 [P] 6.Baf Ülkü Yurdu SK 30 12 9 9 63-43 45 7.Lefke Türk SK 30 13 5 12 64-48 44 8.Cihangir SK 30 12 7 11 53-49 43 9.Küçük Kaymaklı Türk SK 30 13 3 14 61-62 42 10.Türk Ocağı Limasol SK 30 13 2 15 47-45 41 [2 1 1 0 4-2 4] - - - - - - - - - - - - - - - - - - - - - - - - - - - 11.Mağusa Türk Gücü SK 30 11 8 11 54-47 41 [2 0 1 1 2-4 1] Relegation Playoff 12.Larnaka Gençler Birliği SK 30 10 7 13 52-60 37 Relegation Playoff 13.Gençlik Gücü TSK 30 10 4 16 40-65 34 Relegation Playoff 14.Yalova SK 30 6 7 17 45-68 25 Relegation Playoff ----------------------------------------------------- 15.Yeni Boğaziçi DSK 30 5 9 16 24-59 24 [P] Relegated 16.Ozanköy SK 30 4 7 19 29-76 19 [P] Relegated Relegation Playoff Final Table: 11.Larnaka Gençler Birliği SK 3 1 1 1 4- 4 23 [19] 12.Mağusa Türk Gücü SK 3 0 1 2 7- 9 22 [21] 13.Gençlik Gücü TSK 3 1 1 1 5- 5 21 [17] ----------------------------------------------------- 14.Yalova SK 3 2 1 0 10- 8 20 [13] Relegated NB: bonus points regular season (halved, rounded upwards) between square brackets Round 1 [May 16] Mağusa TG 1-1 Gençlik Gücü Gençler Birliği 1-1 Yalova Round 2 [May 19] Yalova 6-5 Mağusa TG Gençler Birliği 1-2 Gençlik Gücü Round 3 [May 23] Mağusa TG 1-2 Gençler Birliği Gençlik Gücü 2-3 Yalova Final Table: 11.Larnaka Gençler Birliği SK 3 1 1 1 4- 4 23 [19] 12.Mağusa Türk Gücü SK 3 0 1 2 7- 9 22 [21] 13.Gençlik Gücü TSK 3 1 1 1 5- 5 21 [17] ----------------------------------------------------- 14.Yalova SK 3 2 1 0 10- 8 20 [13] Relegated NB: bonus points regular season (halved, rounded upwards) between square brackets
Round 1 [Jan 19] Mağusa TG 4-0 Lapta [Jan 20] Yenicami 6-0 Doğancı Girne Halk Evi 0-0 Ozanköy [aet, 4-5 pen] Göçmenköy 1-5 K.Kaymaklı Mormenekşe 0-2 Türk Ocağı Çanakkale 1-3 Baf Ülkü Yurdu Lefke 5-2 B.Bağcıl Akova Vuda 1-3 Yalova Görneç 1-2 Doğan TB Esentepe 0-2 Cihangir Gönyeli 1-3 A.Yeşilova Mehmetçik 0-2 Gençler Birliği Gençlik Gücü 2-3 Hamitköy Y.Boğaziçi 2-3 Dumlupınar Binatlı 7-0 Değirmenlik [Jan 21] Çetinkaya 7-3 Maraş 1/8 Finals [Feb 7] Gençler Birliği 2-1 Lefke Baf Ülkü Yurdu 10-0 Hamitköy Mağusa TG 3-0 Dumlupınar Cihangir 1-1 Türk Ocağı [aet, 6-5 pen] K.Kaymaklı 3-2 Ozanköy A.Yeşilova 2-2 Yalova [aet, 5-4 pen] Yenicami 3-3 Doğan TB [aet, 6-5 pen] [Feb 8] Binatlı 0-2 Çetinkaya Quarterfinals First Legs [Feb 21] K.Kaymaklı 3-1 Gençler Birliği A.Yeşilova 0-0 Mağusa TG Baf Ülkü Yurdu 0-2 Cihangir [Feb 22] Yenicami 2-1 Çetinkaya Second Legs [Mar 7] Gençler Birliği 1-3 K.Kaymaklı Mağusa TG 3-2 A.Yeşilova Cihangir 0-1 Baf Ülkü Yurdu [Mar 8] Çetinkaya 1-3 Yenicami Semifinals First Legs [Mar 21] Yenicami 1-1 Mağusa TG K.Kaymaklı 1-1 Cihangir Second Legs [Apr 4] Mağusa TG 1-0 Yenicami Cihangir 0-0 K.Kaymaklı Final [May 11, Lefkoşa Ataturk Stadı] Cihangir 3-1 Mağusa TG [Halil Turan 45, Quincy Osei 59, Musa Şanlier 90; Arif Uysal 35]
[Sep 14, Girne 20 Temmuz Mete Adanır Stadı] Yenicami 3-0 Cihangir [John Ebuka Okoye 10, 80, Kenneth Ngwoke 32]
Final Table: 1.Gönyeli SK 30 19 5 6 56-34 62 Promoted 2.Esentepe KKSK 30 16 7 7 49-39 55 Promoted ----------------------------------------------------- 3.Girne Halk Evi 30 16 5 9 58-44 53 Promotion Playoff 4.Mormenekşe GB 30 16 2 12 54-46 50 [R] Promotion Playoff 5.Dumlupınar TSK 30 15 4 11 61-39 49 [R] Promotion Playoff 6.Hamitköy ŞHSK 30 15 3 12 59-43 48 Promotion Playoff - - - - - - - - - - - - - - - - - - - - - - - - - - - 7.Maraş Gençlik SK 29 12 8 9 53-42 44 8.Göçmenköy İYSK 30 11 6 13 41-46 39 9.Akova Vuda TÇB 30 11 6 13 55-69 39 [*] 10.Değirmenlik SK 30 10 8 12 41-48 38 [R] - - - - - - - - - - - - - - - - - - - - - - - - - - - 11.Bostancı Bağcıl TSK 30 10 7 13 39-43 37 Relegation Playoff 12.Doğancı SK 30 10 5 15 45-43 35 Relegation Playoff 13.Çanakkale Türk SK 30 10 5 15 31-47 35 [P] Relegation Playoff 14.Lapta TBSK 30 9 7 14 47-54 34 Relegation Playoff ----------------------------------------------------- 15.Kaya Mehmetçik TÇB SK 30 6 9 15 27-45 27 Relegated 16.Görneç KSK 29 6 7 16 29-63 25 [P] Relegated NB: remaining match apparently not played due to irrelevance [*] Akova SK were renamed Akova Vuda TÇB Promoted from 3rd level: Mesarya SK, Düzkaya KOSK, Karşıyaka ASK Promotion Playoff Round 1 [May 9] Girne Halk Evi 4-1 Dumlupınar Mormenekşe 1-5 Hamitköy Round 2 [May 12] Hamitköy 0-0 Girne Halk Evi Mormenekşe 3-0 Dumlupınar [apparently awarded] Round 3 [May 16] Girne Halk Evi 2-0 Mormenekşe Dumlupınar 2-2 Hamitköy Final Table: 3.Girne Halk Evi 3 2 1 0 6- 1 34 [27] [P] Promoted ----------------------------------------------------- 4.Hamitköy ŞHSK 3 1 2 0 7- 3 29 [24] 5.Mormenekşe GB 3 1 0 2 4- 7 28 [25] [R] 6.Dumlupınar TSK 3 0 1 2 3- 9 26 [25] NB: bonus points regular season (halved, rounded upwards) between square brackets Relegation Playoff Round 1 [May 9] Bostancı Bağcıl 0-0 Çanakkale Doğancı 2-1 Lapta Round 2 [May 12] Lapta 0-2 Bostancı Bağcıl Doğancı 1-2 Çanakkale Round 3 [May 16; cancelled due to irrelevance] Çanakkale n/p Lapta Bostancı Bağcıl n/p Doğancı Final Table: 11.Bostancı Bağcıl TSK 2 1 1 0 2- 0 23 [19] 12.Çanakkale Türk SK 2 1 1 0 2- 1 22 [18] [P] 13.Doğancı SK 2 1 0 1 3- 3 21 [18] ----------------------------------------------------- 14.Lapta TBSK 2 0 0 2 1- 4 17 [17] Relegated NB: bonus points regular season (halved, rounded upwards) between square brackets
NB: the FA of TR North Cyprus is not recognised by UEFA or FIFA (and neither is the state); inclusion of results here exclusively serves football statistical purposes
Prepared and maintained by Karel Stokkermans for the Rec.Sport.Soccer Statistics Foundation
Author: Karel Stokkermans
Last updated: 29 Sep 2020
(C) Copyright Karel Stokkermans and RSSSF 2017/20
You are free to copy this document in whole or part provided that proper
acknowledgement is given to the author. All rights reserved.