From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122666 invoked by alias); 18 Jul 2017 21:40:06 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 122594 invoked by uid 89); 18 Jul 2017 21:40:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=DIRECT, WAY, SHALL, liability X-HELO: mail-io0-f179.google.com Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com) (209.85.223.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Jul 2017 21:40:02 +0000 Received: by mail-io0-f179.google.com with SMTP id l7so13964162iof.1 for ; Tue, 18 Jul 2017 14:40:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=geyvH0MXj/xbll2f+6b8q/zrSD6ZiM8UbLcaN5en39M=; b=t8vQB9I1yMc9Vj/hAGQnrXamawnWfO2rTs9Hnx469ykLVoc+7QOj5UjfcBxwNd9jRI SillSwzq0OOkmaJjeThV3An1CDmjdow96MMCmMilnBb0O1P0u7cx68hx7gjykye704uA CB0wIxITWrpPKY3xJA1sZh6KL0Eyde6viWu1qnyZ8z4mpcNF8nuHNqJyjSjSXshYj75Z EX7bS05txCHZXKJrpWdiAxhPtJhF1qM8J43hfbOuZFFziE6Tu4evNGZKBEcB5a/UIqYW 1zmlvGuEwows+jvM3f0diOeQtiUd0mE9G13aG1b6vvNRd8rKTkQIvP5KwPFllczmbzni TmqQ== X-Gm-Message-State: AIVw112UVKLa3l5sNruMwFkiWDoQuhTVKBcGAdMV1Bq741CmviCHKgcA dA66FhWZotAEEuGOrPlooWTu+DiNBvt3 X-Received: by 10.107.59.216 with SMTP id i207mr3994969ioa.106.1500414000152; Tue, 18 Jul 2017 14:40:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.124.208 with HTTP; Tue, 18 Jul 2017 14:39:59 -0700 (PDT) From: Aditya Upadhyay Date: Tue, 18 Jul 2017 21:40:00 -0000 Message-ID: Subject: Importing inttypes methods from FreeBSD To: newlib@sourceware.org Content-Type: multipart/mixed; boundary="94eb2c069ddc7f9eff05549e5b1e" X-IsSubscribed: yes X-SW-Source: 2017/txt/msg00597.txt.bz2 --94eb2c069ddc7f9eff05549e5b1e Content-Type: text/plain; charset="UTF-8" Content-length: 313 Hello Developers, I have imported these inttypes methods from FreeBSD. I have made the strtoimax function as reentrant. I am requesting you to please review the same and suggest me needed changes. I am porting rest of the inttypes methods. I will send the same by late today. Thanks & Regards, Aditya Upadhyay --94eb2c069ddc7f9eff05549e5b1e Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Importing-imaxabs-inttype-methods-from-FreeBSD.patch" Content-Disposition: attachment; filename="0001-Importing-imaxabs-inttype-methods-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5a3qkqf0 Content-length: 3408 RnJvbSAwMTIxNGQyNWFlYThlMjUwMWI0OTMwOTk0NjhjNzY0Y2RhMjRiYTNj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTggSnVsIDIw MTcgMjM6MTk6NTggKzA1MzAKU3ViamVjdDogW1BBVENIIDEvM10gSW1wb3J0 aW5nIGltYXhhYnMgaW50dHlwZSBtZXRob2RzIGZyb20gRnJlZUJTRC4KCi0t LQogbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxlLmFtIHwgIDEgKwogbmV3 bGliL2xpYmMvc3RkbGliL2ltYXhhYnMuYyAgIHwgMzcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAz OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbmV3bGliL2xp YmMvc3RkbGliL2ltYXhhYnMuYwoKZGlmZiAtLWdpdCBhL25ld2xpYi9saWJj L3N0ZGxpYi9NYWtlZmlsZS5hbSBiL25ld2xpYi9saWJjL3N0ZGxpYi9NYWtl ZmlsZS5hbQppbmRleCBlYmFlMDBhYjAuLjExN2Q3YzQ5NSAxMDA2NDQKLS0t IGEvbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxlLmFtCisrKyBiL25ld2xp Yi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQpAQCAtMzMsNiArMzMsNyBAQCBH RU5FUkFMX1NPVVJDRVMgPSBcCiAJZ2V0ZW52LmMgIAlcCiAJZ2V0ZW52X3Iu YwlcCiAJaXRvYS5jICAgICAgICAgIFwKKwlpbWF4YWJzLmMJXAogCWxhYnMu YyAJCVwKIAlsZGl2LmMgIAlcCiAJbGR0b2EuYwkJXApkaWZmIC0tZ2l0IGEv bmV3bGliL2xpYmMvc3RkbGliL2ltYXhhYnMuYyBiL25ld2xpYi9saWJjL3N0 ZGxpYi9pbWF4YWJzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi4wYzc2ZTBjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9uZXdsaWIv bGliYy9zdGRsaWIvaW1heGFicy5jCkBAIC0wLDAgKzEsMzcgQEAKKy8qLQor ICogQ29weXJpZ2h0IChjKSAyMDAxIE1pa2UgQmFyY3JvZnQgPG1pa2VARnJl ZUJTRC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0 CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0 aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0 aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP VklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMn JyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAg SU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMg QkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor ICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VT OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg SU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ Q1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBP RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisK KyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQi KTsKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPGludHR5cGVz Lmg+CisKK2ludG1heF90CitpbWF4YWJzKGludG1heF90IGopCit7CisJcmV0 dXJuIChqIDwgMCA/IC1qIDogaik7Cit9Ci0tIAoyLjExLjAKCg== --94eb2c069ddc7f9eff05549e5b1e Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Importing-imaxdiv-inttype-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0002-Importing-imaxdiv-inttype-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5a3qkte1 Content-length: 3831 RnJvbSBmYjYwZDc1YTA0MDJlMzY2NTA3OWYyMmFhYTNiNDBkNzIxM2MwMDli IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTggSnVsIDIw MTcgMjM6MjE6MjQgKzA1MzAKU3ViamVjdDogW1BBVENIIDIvM10gSW1wb3J0 aW5nIGltYXhkaXYgaW50dHlwZSBtZXRob2QgZnJvbSBGcmVlQlNELgoKLS0t CiBuZXdsaWIvbGliYy9zdGRsaWIvTWFrZWZpbGUuYW0gfCAgMSArCiBuZXds aWIvbGliYy9zdGRsaWIvaW1heGRpdi5jICAgfCA0OCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdl ZCwgNDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG5ld2xp Yi9saWJjL3N0ZGxpYi9pbWF4ZGl2LmMKCmRpZmYgLS1naXQgYS9uZXdsaWIv bGliYy9zdGRsaWIvTWFrZWZpbGUuYW0gYi9uZXdsaWIvbGliYy9zdGRsaWIv TWFrZWZpbGUuYW0KaW5kZXggMTE3ZDdjNDk1Li43NmExYTY3ZTQgMTAwNjQ0 Ci0tLSBhL25ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQorKysgYi9u ZXdsaWIvbGliYy9zdGRsaWIvTWFrZWZpbGUuYW0KQEAgLTM0LDYgKzM0LDcg QEAgR0VORVJBTF9TT1VSQ0VTID0gXAogCWdldGVudl9yLmMJXAogCWl0b2Eu YyAgICAgICAgICBcCiAJaW1heGFicy5jCVwKKwlpbWF4ZGl2LmMJXAogCWxh YnMuYyAJCVwKIAlsZGl2LmMgIAlcCiAJbGR0b2EuYwkJXApkaWZmIC0tZ2l0 IGEvbmV3bGliL2xpYmMvc3RkbGliL2ltYXhkaXYuYyBiL25ld2xpYi9saWJj L3N0ZGxpYi9pbWF4ZGl2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi4xNWQ3OGJhZjQKLS0tIC9kZXYvbnVsbAorKysgYi9uZXds aWIvbGliYy9zdGRsaWIvaW1heGRpdi5jCkBAIC0wLDAgKzEsNDggQEAKKy8q LQorICogQ29weXJpZ2h0IChjKSAyMDAxIE1pa2UgQmFyY3JvZnQgPG1pa2VA RnJlZUJTRC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1 bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0 aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg UFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMg SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVE LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRP UlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJ Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F U1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT VFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9V VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICov CisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJT RCQiKTsKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPGludHR5 cGVzLmg+CisKKy8qIFNlZSBjb21tZW50cyBpbiBkaXYuYyBmb3IgaW1wbGVt ZW50YXRpb24gZGV0YWlscy4gKi8KK2ltYXhkaXZfdAoraW1heGRpdihpbnRt YXhfdCBudW1lciwgaW50bWF4X3QgZGVub20pCit7CisJaW1heGRpdl90IHJl dHZhbDsKKworCXJldHZhbC5xdW90ID0gbnVtZXIgLyBkZW5vbTsKKwlyZXR2 YWwucmVtID0gbnVtZXIgJSBkZW5vbTsKKyNpZiAhZGVmaW5lZChfX1NURENf VkVSU0lPTl9fKSB8fCAoX19TVERDX1ZFUlNJT05fXyA8IDE5OTkwMUwpCisJ aWYgKG51bWVyID49IDAgJiYgcmV0dmFsLnJlbSA8IDApIHsKKwkJcmV0dmFs LnF1b3QrKzsKKwkJcmV0dmFsLnJlbSAtPSBkZW5vbTsKKwl9CisjZW5kaWYK KwlyZXR1cm4gKHJldHZhbCk7Cit9Ci0tIAoyLjExLjAKCg== --94eb2c069ddc7f9eff05549e5b1e Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Importing-strtoimax-inttype-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0003-Importing-strtoimax-inttype-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5a3qkv12 Content-length: 7894 RnJvbSBmMTdkOTk5ZWJkNTRiNzk2ZjIwZjBlN2E5N2I2ZDc5ZTJmMjM0ODkz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTggSnVsIDIw MTcgMjM6MjI6MzkgKzA1MzAKU3ViamVjdDogW1BBVENIIDMvM10gSW1wb3J0 aW5nIHN0cnRvaW1heCBpbnR0eXBlIG1ldGhvZCBmcm9tIEZyZWVCU0QuCgot LS0KIG5ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbSB8ICAgMSArCiBu ZXdsaWIvbGliYy9zdGRsaWIvc3RydG9pbWF4LmMgfCAxNDYgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hh bmdlZCwgMTQ3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBu ZXdsaWIvbGliYy9zdGRsaWIvc3RydG9pbWF4LmMKCmRpZmYgLS1naXQgYS9u ZXdsaWIvbGliYy9zdGRsaWIvTWFrZWZpbGUuYW0gYi9uZXdsaWIvbGliYy9z dGRsaWIvTWFrZWZpbGUuYW0KaW5kZXggNzZhMWE2N2U0Li42Y2NhNWYwMDUg MTAwNjQ0Ci0tLSBhL25ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQor KysgYi9uZXdsaWIvbGliYy9zdGRsaWIvTWFrZWZpbGUuYW0KQEAgLTU5LDYg KzU5LDcgQEAgR0VORVJBTF9TT1VSQ0VTID0gXAogCXNiX2NoYXJzZXRzLmMJ XAogCXN0cnRvZC5jCVwKIAlzdHJ0b2RnLmMJXAorCXN0cnRvaW1heC5jCVwK IAlzdHJ0b2wuYwlcCiAJc3RydG9yeC5jCVwKIAlzdHJ0b3VsLmMJXApkaWZm IC0tZ2l0IGEvbmV3bGliL2xpYmMvc3RkbGliL3N0cnRvaW1heC5jIGIvbmV3 bGliL2xpYmMvc3RkbGliL3N0cnRvaW1heC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uMGNiNmUyYWNjCi0tLSAvZGV2L251bGwK KysrIGIvbmV3bGliL2xpYmMvc3RkbGliL3N0cnRvaW1heC5jCkBAIC0wLDAg KzEsMTQ2IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMTk5MiwgMTk5Mwor ICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQ29weXJpZ2h0IChj KSAyMDExIFRoZSBGcmVlQlNEIEZvdW5kYXRpb24KKyAqIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBvZiB0aGlzIHNvZnR3YXJlIHdlcmUg ZGV2ZWxvcGVkIGJ5IERhdmlkIENoaXNuYWxsCisgKiB1bmRlciBzcG9uc29y c2hpcCBmcm9tIHRoZSBGcmVlQlNEIEZvdW5kYXRpb24uCisgKgorICogUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50 YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo ZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRo ZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y cworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRo b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFO RCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1Mg T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg UkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5Z IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9X RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1Ig VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT SU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YK KyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBkZWZpbmVkKExJQkNfU0ND UykgJiYgIWRlZmluZWQobGludCkKK3N0YXRpYyBjaGFyIHNjY3NpZFtdID0g ImZyb20gQCgjKXN0cnRvbC5jCTguMSAoQmVya2VsZXkpIDYvNC85MyI7Cisj ZW5kaWYgLyogTElCQ19TQ0NTIGFuZCBub3QgbGludCAqLworI2luY2x1ZGUg PHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEJCIpOworCisjaW5j bHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8 c3RkaW50Lmg+CisjaW5jbHVkZSA8cmVlbnQuaD4KKyNpbmNsdWRlICIuLi9s b2NhbGUvc2V0bG9jYWxlLmgiCisKKy8qCisgKiBDb252ZXJ0IGEgc3RyaW5n IHRvIGFuIGludG1heF90IGludGVnZXIuCisgKgorICogQXNzdW1lcyB0aGF0 IHRoZSB1cHBlciBhbmQgbG93ZXIgY2FzZQorICogYWxwaGFiZXRzIGFuZCBk aWdpdHMgYXJlIGVhY2ggY29udGlndW91cy4KKyAqLworaW50bWF4X3QKK3N0 cnRvaW1heF9sKHN0cnVjdCBfcmVlbnQgKnJwdHIsIGNvbnN0IGNoYXIgKiBf X3Jlc3RyaWN0IG5wdHIsIGNoYXIgKiogX19yZXN0cmljdCBlbmRwdHIsIGlu dCBiYXNlLAorCQlsb2NhbGVfdCBsb2MpCit7CisJY29uc3QgY2hhciAqcyA9 IChjb25zdCB1bnNpZ25lZCBjaGFyICopbnB0cjsKKwl1aW50bWF4X3QgYWNj OworCWNoYXIgYzsKKwl1aW50bWF4X3QgY3V0b2ZmOworCWludCBuZWcgPSAw LCBhbnksIGN1dGxpbTsKKwkKKwkvKgorCSAqIFNraXAgd2hpdGUgc3BhY2Ug YW5kIHBpY2sgdXAgbGVhZGluZyArLy0gc2lnbiBpZiBhbnkuCisJICogSWYg YmFzZSBpcyAwLCBhbGxvdyAweCBmb3IgaGV4IGFuZCAwIGZvciBvY3RhbCwg ZWxzZQorCSAqIGFzc3VtZSBkZWNpbWFsOyBpZiBiYXNlIGlzIGFscmVhZHkg MTYsIGFsbG93IDB4LgorCSAqLworCWRvIHsKKwkJYyA9ICpzKys7CisJfSB3 aGlsZSAoaXNzcGFjZV9sKGMsIGxvYykpOworCWlmIChjID09ICctJykgewor CQluZWcgPSAxOworCQljID0gKnMrKzsKKwl9IGVsc2UgeworCQluZWcgPSAw OworCQlpZiAoYyA9PSAnKycpCisJCQljID0gKnMrKzsKKwl9CisJaWYgKChi YXNlID09IDAgfHwgYmFzZSA9PSAxNikgJiYKKwkgICAgYyA9PSAnMCcgJiYg KCpzID09ICd4JyB8fCAqcyA9PSAnWCcpKSB7CisJCWMgPSBzWzFdOworCQlz ICs9IDI7CisJCWJhc2UgPSAxNjsKKwl9CisJaWYgKGJhc2UgPT0gMCkKKwkJ YmFzZSA9IGMgPT0gJzAnID8gOCA6IDEwOworCQorCS8qCisJICogQ29tcHV0 ZSB0aGUgY3V0b2ZmIHZhbHVlIGJldHdlZW4gbGVnYWwgbnVtYmVycyBhbmQg aWxsZWdhbAorCSAqIG51bWJlcnMuICBUaGF0IGlzIHRoZSBsYXJnZXN0IGxl Z2FsIHZhbHVlLCBkaXZpZGVkIGJ5IHRoZQorCSAqIGJhc2UuICBBbiBpbnB1 dCBudW1iZXIgdGhhdCBpcyBncmVhdGVyIHRoYW4gdGhpcyB2YWx1ZSwgaWYK KwkgKiBmb2xsb3dlZCBieSBhIGxlZ2FsIGlucHV0IGNoYXJhY3RlciwgaXMg dG9vIGJpZy4gIE9uZSB0aGF0CisJICogaXMgZXF1YWwgdG8gdGhpcyB2YWx1 ZSBtYXkgYmUgdmFsaWQgb3Igbm90OyB0aGUgbGltaXQKKwkgKiBiZXR3ZWVu IHZhbGlkIGFuZCBpbnZhbGlkIG51bWJlcnMgaXMgdGhlbiBiYXNlZCBvbiB0 aGUgbGFzdAorCSAqIGRpZ2l0LiAgRm9yIGluc3RhbmNlLCBpZiB0aGUgcmFu Z2UgZm9yIGludG1heF90IGlzCisJICogWy05MjIzMzcyMDM2ODU0Nzc1ODA4 Li45MjIzMzcyMDM2ODU0Nzc1ODA3XSBhbmQgdGhlIGlucHV0IGJhc2UKKwkg KiBpcyAxMCwgY3V0b2ZmIHdpbGwgYmUgc2V0IHRvIDkyMjMzNzIwMzY4NTQ3 NzU4MCBhbmQgY3V0bGltIHRvCisJICogZWl0aGVyIDcgKG5lZz09MCkgb3Ig OCAobmVnPT0xKSwgbWVhbmluZyB0aGF0IGlmIHdlIGhhdmUKKwkgKiBhY2N1 bXVsYXRlZCBhIHZhbHVlID4gOTIyMzM3MjAzNjg1NDc3NTgwLCBvciBlcXVh bCBidXQgdGhlCisJICogbmV4dCBkaWdpdCBpcyA+IDcgKG9yIDgpLCB0aGUg bnVtYmVyIGlzIHRvbyBiaWcsIGFuZCB3ZSB3aWxsCisJICogcmV0dXJuIGEg cmFuZ2UgZXJyb3IuCisJICoKKwkgKiBTZXQgJ2FueScgaWYgYW55IGBkaWdp dHMnIGNvbnN1bWVkOyBtYWtlIGl0IG5lZ2F0aXZlIHRvIGluZGljYXRlCisJ ICogb3ZlcmZsb3cuCisJICovCisJY3V0b2ZmID0gbmVnID8gLSh1aW50bWF4 X3QpSU5UTUFYX01JTiA6IElOVE1BWF9NQVg7CisJY3V0bGltID0gY3V0b2Zm ICUgYmFzZTsKKwljdXRvZmYgLz0gYmFzZTsKKwlmb3IgKCA7IDsgYyA9ICpz KyspIHsKKwkJaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKQorCQkJYyAtPSAn MCc7CisJCWVsc2UgaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ1onKQorCQkJYyAt PSAnQScgLSAxMDsKKwkJZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicp CisJCQljIC09ICdhJyAtIDEwOworCQllbHNlCisJCQlicmVhazsKKwkJaWYg KGMgPj0gYmFzZSkKKwkJCWJyZWFrOworCQlpZiAoYW55IDwgMCB8fCBhY2Mg PiBjdXRvZmYgfHwgKGFjYyA9PSBjdXRvZmYgJiYgYyA+IGN1dGxpbSkpCisJ CQlhbnkgPSAtMTsKKwkJZWxzZSB7CisJCQlhbnkgPSAxOworCQkJYWNjICo9 IGJhc2U7CisJCQlhY2MgKz0gYzsKKwkJfQorCX0KKwlpZiAoYW55IDwgMCkg eworCQlhY2MgPSBuZWcgPyBJTlRNQVhfTUlOIDogSU5UTUFYX01BWDsKKwkJ cnB0ci0+X2Vycm5vID0gRVJBTkdFOworCX0gZWxzZSBpZiAoIWFueSkgewor bm9jb252OgorCQlycHRyLT5fZXJybm8gPSBFSU5WQUw7CisJfSBlbHNlIGlm IChuZWcpCisJCWFjYyA9IC1hY2M7CisJaWYgKGVuZHB0ciAhPSBOVUxMKQor CQkqZW5kcHRyID0gKGNoYXIgKikoYW55ID8gcyAtIDEgOiBucHRyKTsKKwly ZXR1cm4gKGFjYyk7Cit9CitpbnRtYXhfdAorc3RydG9pbWF4KGNvbnN0IGNo YXIgKiBfX3Jlc3RyaWN0IG5wdHIsIGNoYXIgKiogX19yZXN0cmljdCBlbmRw dHIsIGludCBiYXNlKQoreworCXJldHVybiBzdHJ0b2ltYXhfbChfUkVFTlQs IG5wdHIsIGVuZHB0ciwgYmFzZSwgX19nZXRfY3VycmVudF9sb2NhbGUgKCkp OworfQotLSAKMi4xMS4wCgo= --94eb2c069ddc7f9eff05549e5b1e--