Received: from localhost.localdomain (postgresql.org [64.49.215.8]) by localhost (Postfix) with ESMTP id 6DDCA475D9D; Thu, 6 Jun 2002 03:17:41 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by postgresql.org (Postfix) with ESMTP id 83322475AD1; Thu, 6 Jun 2002 03:12:05 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id g5674G911326; Thu, 6 Jun 2002 03:04:16 -0400 Received: from ns.tokyo.redhat.com (IDENT:root@ns.tokyo.redhat.com [172.16.21.254]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g567C4329192; Thu, 6 Jun 2002 03:12:05 -0400 Received: from ybb.ne.jp (station3.tokyo.redhat.com [172.16.21.133]) by ns.tokyo.redhat.com (8.11.6/8.11.6) with ESMTP id g567D6902659; Thu, 6 Jun 2002 16:13:07 +0900 Message-ID: <3CFF0AE1.10205@ybb.ne.jp> Date: Thu, 06 Jun 2002 16:10:25 +0900 From: Bill Huang Organization: Private mailbox User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901 X-Accept-Language: en-us MIME-Version: 1.0 To: pgsql-announce@postgresql.org, pgsql-patches@postgresql.org Cc: Bill Huang , Yukihiro Nakai Subject: Chinese GB18030 support is implemented! Content-Type: multipart/mixed; boundary="------------050302020107010909040809" X-Archive-Number: 200206/3 X-Sequence-Number: 174 This is a multi-part message in MIME format. --------------050302020107010909040809 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hello, As postgresql is widely used in the world,many Chinese users are looking forward to use such a high performanced database management system.However since the Chinese new codepage standard GB18030 is not completely supported,postgresql is limitted to be used in China. Now I have managed to implement the GB18030 support upon the latest version,so the following functions are added after the patches are added. -Chinese GB18030 encoding is available on front-end side,while on backend side,EUC_CN or MIC is used. -Encoding convertion between MIC and GB18030 is implement. -GB18030 locale support is available on front-end side. -GB18030 locale test is added. Any help for testing with these patches and sugguestions for GB18030 support are greatly appreciated. Best Regards, Bill -- /---------------------------/ Bill Huang E-mail:bill_huanghb@ybb.ne.jp Cell phone:090-9979-4631 /---------------------------/ --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-conv-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-conv-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29u di5jLm9yZwlUaHUgSnVuICA2IDExOjUyOjI0IDIwMDIKKysrIHBvc3RncmVz cWwtNy4yLjEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvY29udi5jCVRodSBKdW4g IDYgMTI6MjA6MzYgMjAwMgpAQCAtNTAyLDYgKzUwMiw5NiBAQAogfQogCiAv KgorICogR0IxODAzMCAtLS0+IE1JQworICogQWRkZWQgYnkgQmlsbCBIdWFu ZyA8Ymh1YW5nQHJlZGhhdC5jb20+LDxiaWxsX2h1YW5naGJAeWJiLm5lLmpw PgorICovCitzdGF0aWMgdm9pZAorZ2IxODAzMDJtaWModW5zaWduZWQgY2hh ciAqZ2IxODAzMCwgdW5zaWduZWQgY2hhciAqcCwgaW50IGxlbikKK3sKKwlp bnQJCQljMTsKKwlpbnQJCQljMjsKKworCXdoaWxlIChsZW4gPiAwICYmIChj MSA9ICpnYjE4MDMwKyspKQorCXsKKwkJaWYgKGMxIDwgMHg4MCkKKwkJewkJ CQkJCS8qIHNob3VsZCBiZSBBU0NJSSAqLworCQkJbGVuLS07CisJCQkqcCsr ID0gYzE7CisJCX0KKwkJZWxzZSBpZihjMSA+PSAweDgxICYmIGMxIDw9IDB4 ZmUpCisJCXsKKwkJCWMyID0gKmdiMTgwMzArKzsKKwkJCQorCQkJaWYoYzIg Pj0gMHgzMCAmJiBjMiA8PSAweDY5KXsKKwkJCQlsZW4gLT0gNDsKKwkJCQkq cCsrID0gYzE7CisJCQkJKnArKyA9IGMyOworCQkJCSpwKysgPSAqZ2IxODAz MCsrOworCQkJCSpwKysgPSAqZ2IxODAzMCsrOworCQkJCSpwKysgPSAqZ2Ix ODAzMCsrOworCQkJfQorCQkJZWxzZSBpZiAoKGMyID49MHg0MCAmJiBjMiA8 PSAweDdlKSB8fChjMiA+PTB4ODAgJiYgYzIgPD0gMHhmZSkpeworCQkJCWxl biAtPSAyOworCQkJCSpwKysgPSBjMTsKKwkJCQkqcCsrID0gYzI7CisJCQkJ KnArKyA9ICpnYjE4MDMwKys7CisJCQl9CisJCQllbHNlewkvKnRocm93IHRo ZSBzdHJhbmdlIGNvZGUqLworCQkJCWxlbi0tOworCQkJfQorCQl9CisJfQor CSpwID0gJ1wwJzsKK30KKworLyoKKyAqIE1JQyAtLS0+IEdCMTgwMzAKKyAq IEFkZGVkIGJ5IEJpbGwgSHVhbmcgPGJodWFuZ0ByZWRoYXQuY29tPiw8Ymls bF9odWFuZ2hiQHliYi5uZS5qcD4KKyAqLworc3RhdGljIHZvaWQKK21pYzJn YjE4MDMwKHVuc2lnbmVkIGNoYXIgKm1pYywgdW5zaWduZWQgY2hhciAqcCwg aW50IGxlbikKK3sKKwlpbnQJCQljMTsKKwlpbnQJCQljMjsKKworCXdoaWxl IChsZW4gPiAwICYmIChjMSA9ICptaWMpKQorCXsKKwkJbGVuIC09IHBnX21p Y19tYmxlbihtaWMrKyk7CisKKwkJaWYgKGMxIDw9IDB4N2YpIC8qQVNDSUkq LworCQl7CQkJCQkKKwkJCSpwKysgPSBjMTsKKwkJfQorCQllbHNlIGlmIChj MSA+PSAweDgxICYmIGMxIDw9IDB4ZmUpCisJCXsJCQorCQkJYzIgPSAqbWlj Kys7CisJCQkKKwkJCWlmKChjMiA+PSAweDQwICYmIGMyIDw9IDB4N2UpIHx8 IChjMiA+PSAweDgwICYmIGMyIDw9IDB4ZmUpKXsKKwkJCQkqcCsrID0gYzE7 CisJCQkJKnArKyA9IGMyOworCQkJfQorCQkJZWxzZSBpZihjMiA+PSAweDMw ICYmIGMyIDw9IDB4MzkpeworCQkJCSpwKysgPSBjMTsKKwkJCQkqcCsrID0g YzI7CisJCQkJKnArKyA9ICptaWMrKzsKKwkJCQkqcCsrID0gKm1pYysrOwor CQkJfQkKKwkJCWVsc2V7CisJCQkJbWljLS07CisJCQkJcHJpbnRCb2d1c0No YXIoJm1pYywgJnApOworCQkJCW1pYy0tOworCQkJCXByaW50Qm9ndXNDaGFy KCZtaWMsICZwKTsKKwkJCX0JCQorCQl9CisJCWVsc2V7CisJCQltaWMtLTsK KwkJCXByaW50Qm9ndXNDaGFyKCZtaWMsICZwKTsKKwkJfQorCX0KKwkqcCA9 ICdcMCc7Cit9CisKKy8qCiAgKiBFVUNfVFcgLS0tPiBNSUMKICAqLwogc3Rh dGljIHZvaWQKQEAgLTE1ODMsNiArMTY3MywyNiBAQAogfQogCiAvKgorICog VVRGLTggLS0tPiBHQjE4MDMwCisgKi8KK3N0YXRpYyB2b2lkCit1dGZfdG9f Z2IxODAzMCh1bnNpZ25lZCBjaGFyICp1dGYsIHVuc2lnbmVkIGNoYXIgKmV1 YywgaW50IGxlbikKKworeworCXV0Zl90b19sb2NhbCh1dGYsIGV1YywgVUxt YXBFVUNfQ04sCisJCQkJIHNpemVvZihVTG1hcEVVQ19DTikgLyBzaXplb2Yo cGdfdXRmX3RvX2xvY2FsKSwgbGVuKTsKK30KKworLyoKKyAqIEdCMTgwMzAg LS0tPiBVVEYtOAorICovCitzdGF0aWMgdm9pZAorZ2IxODAzMF90b191dGYo dW5zaWduZWQgY2hhciAqZXVjLCB1bnNpZ25lZCBjaGFyICp1dGYsIGludCBs ZW4pCit7CisJbG9jYWxfdG9fdXRmKGV1YywgdXRmLCBMVW1hcEVVQ19DTiwK KwkJICBzaXplb2YoTFVtYXBFVUNfQ04pIC8gc2l6ZW9mKHBnX2xvY2FsX3Rv X3V0ZiksIFBHX0VVQ19DTiwgbGVuKTsKK30KKy8qCiAgKiBVVEYtOCAtLS0+ IEVVQ19LUgogICovCiBzdGF0aWMgdm9pZApAQCAtMTc1NCw2ICsxODY0LDkg QEAKIAkJUEdfQklHNSwgYmlnNTJtaWMsIG1pYzJiaWc1LCBiaWc1X3RvX3V0 ZiwgdXRmX3RvX2JpZzUKIAl9LAogCXsKKwkJUEdfR0IxODAzMCwgZ2IxODAz MDJtaWMsIG1pYzJnYjE4MDMwLCBnYjE4MDMwX3RvX3V0ZiwgdXRmX3RvX2di MTgwMzAKKwl9LAorCXsKIAkJUEdfV0lOMTI1MCwgd2luMTI1MDJtaWMsIG1p YzJ3aW4xMjUwLCAwLCAwCiAJfSwKIH07CkBAIC0xODQxLDYgKzE5NTQsOSBA QAogCQlQR19CSUc1LCBiaWc1Mm1pYywgbWljMmJpZzUsIDAsIDAKIAl9LAog CXsKKwkJUEdfR0IxODAzMCwgZ2IxODAzMDJtaWMsIG1pYzJnYjE4MDMwLCAw LCAwCisJfSwKKwl7CiAJCVBHX1dJTjEyNTAsIHdpbjEyNTAybWljLCBtaWMy d2luMTI1MCwgMCwgMAogCX0sCiB9Owo= --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-encnames-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-encnames-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvZW5j bmFtZXMuYy5vcmcJTW9uIEp1biAgMyAxOToyNDoxMCAyMDAyCisrKyBwb3N0 Z3Jlc3FsLTcuMi4xL3NyYy9iYWNrZW5kL3V0aWxzL21iL2VuY25hbWVzLmMJ TW9uIEp1biAgMyAxOToyNToyNiAyMDAyCkBAIC0xNzMsNiArMTczLDkgQEAK IAl7CiAJCSJ3aW5kb3dzMTI1MSIsIFBHX1dJTjEyNTEKIAl9LAkJCQkJCQkv KiBXaW5kb3dzLTEyNTE7IE1pY3Jvc29mdCAqLworCXsKKwkJImdiMTgwMzAi LCBQR19HQjE4MDMwCisJfSwJCQkJCQkJLyogR0IxODAzMDsgR0IxODAzMCAq LwogCiAJewogCQlOVUxMLCAwCkBAIC0yNjgsNiArMjcxLDkgQEAKIAkJIkJJ RzUiLCBQR19CSUc1CiAJfSwKIAl7CisJCSJHQjE4MDMwIiwgUEdfR0IxODAz MAorCX0sCisJewogCQkiV0lOMTI1MCIsIFBHX1dJTjEyNTAKIAl9CiB9Owo= --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-multibyte-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-multibyte-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2ludGVyZmFjZXMvb2RiYy9tdWx0 aWJ5dGUuYy5vcmcJV2VkIEp1biAgNSAxODoyODozMCAyMDAyCisrKyBwb3N0 Z3Jlc3FsLTcuMi4xL3NyYy9pbnRlcmZhY2VzL29kYmMvbXVsdGlieXRlLmMJ V2VkIEp1biAgNSAxOTo0ODowMSAyMDAyCkBAIC00OCw2ICs0OCwyOCBAQAog CQkJCQkJbWJfc3QgPSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCQkvKiBD aGluZXNlIEdCMTgwMzAgc3VwcG9ydAorCQkJCSAqIEJ5IEJpbGwgSHVhbmcg PGJodWFuZ0ByZWRoYXQuY29tPiw8YmlsbF9odWFuZ2hiQHliYi5uZS5qcD4K KwkJCQkgKiAqLworCQkJY2FzZSBHQjE4MDMwOgorCQkJCXsKKwkJCQkJaWYg KG1iX3N0IDwgMiAmJiBzW2ldID4gMHg4MSkKKwkJCQkJCW1iX3N0ID0gMjsK KwkJCQkJZWxzZSBpZiAobWJfc3QgPT0gMikKKwkJCQkJCWlmKHNbaV0gPj0g MHgzMCAmJiBzW2ldIDw9IDB4MzkpCisJCQkJCQkJbWJfc3QgPSAzOworCQkJ CQkJZWxzZQorCQkJCQkJCW1iX3N0ID0gMTsKKwkJCQkJZWxzZSBpZiAobWJf c3QgPT0gMykKKwkJCQkJCWlmKHNbaV0gPj0gMHgzMCAmJiBzW2ldIDw9IDB4 MzkpCisJCQkJCQkJIG1iX3N0ID0gMTsKKwkJCQkJCWVsc2UKKwkJCQkJCQkg bWJfc3QgPSAzOworCQkJCQllbHNlCisJCQkJCQltYl9zdCA9IDA7CisJCQkJ fQorCQkJCWJyZWFrOworCQkJCQogCQkJZGVmYXVsdDoKIAkJCQltYl9zdCA9 IDA7CiAJCX0KQEAgLTg3LDYgKzEwOSwxNiBAQAogCXsKIAkJbXVsdGlieXRl X2NsaWVudF9lbmNvZGluZyA9IEJJRzU7CiAJCXJldHVybiAoIkJJRzUiKTsK Kwl9LyogQ2hpbmVzZSBHQjE4MDMwIHN1cHBvcnQuCisJICAqIEFkZGVkIGJ5 IEJpbGwgSHVhbmcgIDxiaHVhbmdAcmVkaGF0LmNvbT4sPGJpbGxfaHVhbmdo YkB5YmIubmUuanA+IAorCSAgKi8KKwlpZiAoc3Ryc3RyKHN0ciwgIiUyN0dC MTgwMzAlMjciKSB8fAorCQlzdHJzdHIoc3RyLCAiJTI3Z2IxODAzMCUyNyIp IHx8CisJCXN0cnN0cihzdHIsICInR0IxODAzMCciKSB8fAorCQlzdHJzdHIo c3RyLCAiJ2diMTgwMzAnIikgKQorCXsKKwkJbXVsdGlieXRlX2NsaWVudF9l bmNvZGluZyA9IEdCMTgwMzA7CisJCXJldHVybiAoIkdCMTgwMzAiKTsKIAl9 CiAJcmV0dXJuICgiT1RIRVIiKTsKIH0KQEAgLTEyNyw2ICsxNTksMjUgQEAK IAkJCQllbHNlCiAJCQkJCW11bHRpYnl0ZV9zdGF0dXMgPSAwOwogCQkJfQor CQkJYnJlYWs7CisJCQkvKkNoaW5lc2UgR0IxODAzMCBzdXBwb3J0LkFkZGVk IGJ5IEJpbGwgSHVhbmcgPGJodWFuZ0ByZWRoYXQuY29tPiA8YmlsbF9odWFu Z2hiQHliYi5uZS5qcD4qLworCQljYXNlIEdCMTgwMzA6CisJCQl7CisJCQkJ aWYgKG11bHRpYnl0ZV9zdGF0dXMgPCAyICYmIHMgPiAweDgwKQorCQkJCQlt dWx0aWJ5dGVfc3RhdHVzID0gMjsKKwkJCQllbHNlIGlmIChtdWx0aWJ5dGVf c3RhdHVzID0gMikKKwkJCQkJaWYgKHMgPj0gMHgzMCAmJiBzIDw9IDB4Mzkp CisJCQkJCQltdWx0aWJ5dGVfc3RhdHVzID0gMzsKKwkJCQkJZWxzZQorCQkJ CQkJbXVsdGlieXRlX3N0YXR1cyA9IDE7CisJCQkJZWxzZSBpZiAobXVsdGli eXRlX3N0YXR1cyA9IDMpCisJCQkJCWlmIChzID49IDB4MzAgJiYgcyA8PSAw eDM5KQorCQkJCQkJbXVsdGlieXRlX3N0YXR1cyA9IDE7CisJCQkJCWVsc2UK KwkJCQkJCW11bHRpYnl0ZV9zdGF0dXMgPSAzOworCQkJCWVsc2UKKwkJCQkJ bXVsdGlieXRlX3N0YXR1cyA9IDA7CisJCQl9CiAJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCW11bHRpYnl0ZV9zdGF0dXMgPSAwOwo= --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-multibyteh-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-multibyteh-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2ludGVyZmFjZXMvb2RiYy9tdWx0 aWJ5dGUuaC5vcmcJV2VkIEp1biAgNSAxOTo1MToyMCAyMDAyCisrKyBwb3N0 Z3Jlc3FsLTcuMi4xL3NyYy9pbnRlcmZhY2VzL29kYmMvbXVsdGlieXRlLmgJ V2VkIEp1biAgNSAxOTo1MTozNSAyMDAyCkBAIC0yOCw2ICsyOCw3IEBACiAj ZGVmaW5lIFNKSVMJCQkJMzIJLyogU2hpZnQgSklTICovCiAjZGVmaW5lIEJJ RzUJCQkJMzMJLyogQmlnNSAqLwogI2RlZmluZSBXSU4xMjUwCQkJCTM0CS8q IHdpbmRvd3MtMTI1MCAqLworI2RlZmluZSBHQjE4MDMwCQkJCTM1CS8qIEdC MTgwMzAgKi8KIAogZXh0ZXJuIGludAltdWx0aWJ5dGVfY2xpZW50X2VuY29k aW5nOwkvKiBNdWx0aWJ5dGUgY2xpZW50IGVuY29kaW5nLiAqLwogZXh0ZXJu IGludAltdWx0aWJ5dGVfc3RhdHVzOwkvKiBNdWx0aWJ5dGUgY2hhcmN0ZXIg c3RhdHVzLiAqLwo= --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-pg-wchar-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-pg-wchar-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2luY2x1ZGUvbWIvcGdfd2NoYXIu aC5vcmcJTW9uIE1heSAyNyAyMDowNzo1OCAyMDAyCisrKyBwb3N0Z3Jlc3Fs LTcuMi4xL3NyYy9pbmNsdWRlL21iL3BnX3djaGFyLmgJTW9uIE1heSAyNyAy MDowODo1OSAyMDAyCkBAIC0xODIsNiArMTgyLDcgQEAKIAkvKiBmb2xsb3dp bmdzIGFyZSBmb3IgY2xpZW50IGVuY29kaW5nIG9ubHkgKi8KIAlQR19TSklT LAkJCQkJLyogU2hpZnQgSklTICovCiAJUEdfQklHNSwJCQkJCS8qIEJpZzUg Ki8KKwlQR19HQjE4MDMwLAkJCQkJLyogR0IxODAzMCAqLwogCVBHX1dJTjEy NTAsCQkJCQkvKiB3aW5kb3dzLTEyNTAgKi8KIAogCV9QR19MQVNUX0VOQ09E SU5HXwkJCS8qIG1hcmsgb25seSAqLwo= --------------050302020107010909040809 Content-Type: text/plain; name="postgresql-7.2.1-wchar-gb18030.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="postgresql-7.2.1-wchar-gb18030.patch" LS0tIHBvc3RncmVzcWwtNy4yLjEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvd2No YXIuYy5vcmcJTW9uIE1heSAyNyAyMDowMjo0NCAyMDAyCisrKyBwb3N0Z3Jl c3FsLTcuMi4xL3NyYy9iYWNrZW5kL3V0aWxzL21iL3djaGFyLmMJTW9uIE1h eSAyNyAyMDowMzoxMiAyMDAyCkBAIC00NTcsNiArNDU3LDMzIEBACiAJcmV0 dXJuIChsZW4pOwogfQogCisvKgorICogR0IxODAzMAorICogQWRkZWQgYnkg QmlsbCBIdWFuZyA8Ymh1YW5nQHJlZGhhdC5jb20+LDxiaWxsX2h1YW5naGJA eWJiLm5lLmpwPgorICovCitzdGF0aWMgaW50CitwZ19nYjE4MDMwX21ibGVu KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMpCit7CisJaW50CQkJbGVuOworCisJ aWYgKCpzIDw9IDB4N2YpCisJewkJCQkJCQkvKiBrYW5qaT8gKi8KKwkJbGVu ID0gMTsKKwl9CisJZWxzZSAKKwl7CQkJCQkJCS8qIHNob3VsZCBiZSBBU0NJ SSAqLworCQorCQlpZigoKihzKzEpID4weDQwICYmICoocysxKSA8PSAweDdl KSAKKwkJCQl8fCAoKihzKzEpID49IDB4ODAgJiYgKihzKzEpIDw9IDB4ZmUp KQorCQkJbGVuID0gMjsKKwkJZWxzZSBpZigqKHMrMSkgPjB4MzAgJiYgKihz KzEpIDw9IDB4MzkpCisJCQlsZW4gPSA0OworCQllbHNlCisJCQlsZW4gPSAy OworCX0KKwlyZXR1cm4gKGxlbik7Cit9CisKIHBnX3djaGFyX3RibCBwZ193 Y2hhcl90YWJsZVtdID0gewogCXtwZ19hc2NpaTJ3Y2hhcl93aXRoX2xlbiwg cGdfYXNjaWlfbWJsZW4sIDF9LAkJLyogMDsgUEdfU1FMX0FTQ0lJCSovCiAJ e3BnX2V1Y2pwMndjaGFyX3dpdGhfbGVuLCBwZ19ldWNqcF9tYmxlbiwgM30s CQkvKiAxOyBQR19FVUNfSlAgKi8KQEAgLTQ4Myw2ICs1MTAsNyBAQAogCXtw Z19sYXRpbjEyd2NoYXJfd2l0aF9sZW4sIHBnX2xhdGluMV9tYmxlbiwgMX0s CQkvKiAyMjsgSVNPLTg4NTktMTUgKi8KIAl7cGdfbGF0aW4xMndjaGFyX3dp dGhfbGVuLCBwZ19sYXRpbjFfbWJsZW4sIDF9LAkJLyogMjM7IElTTy04ODU5 LTE2ICovCiAJezAsIHBnX3NqaXNfbWJsZW4sIDJ9LAkJLyogMjQ7IFBHX1NK SVMgKi8KKwl7MCwgcGdfZ2IxODAzMF9tYmxlbiwgMn0sCS8qIDI1OyBQR19H QjE4MDMwICovCiAJezAsIHBnX2JpZzVfbWJsZW4sIDJ9LAkJLyogMjU7IFBH X0JJRzUgKi8KIAl7cGdfbGF0aW4xMndjaGFyX3dpdGhfbGVuLCBwZ19sYXRp bjFfbWJsZW4sIDF9CQkvKiAyNjsgUEdfV0lOMTI1MCAqLwogfTsK --------------050302020107010909040809--