From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 97892 invoked by alias); 30 Jul 2017 08:46:22 -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 97147 invoked by uid 89); 30 Jul 2017 08:45:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.8 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=tandem, POSIX_SOURCE, strtol, posix_source X-HELO: mail-io0-f178.google.com Received: from mail-io0-f178.google.com (HELO mail-io0-f178.google.com) (209.85.223.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 30 Jul 2017 08:45:35 +0000 Received: by mail-io0-f178.google.com with SMTP id j32so81263976iod.0 for ; Sun, 30 Jul 2017 01:45:26 -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:in-reply-to:references:from:date :message-id:subject:to; bh=UepHG2VCc9pOnWBIn5dkgDINcMO5kArkPw8mqjphq60=; b=EmXfwC57KXhXGC81VOdpU6DC1Q3OYgySq0M7K3GAkG2++B261OXtewh0vKcvwib6mB 8lLEcHs5cpD6ePvggIhs5lZoXvoZLLlXdWaE2Pbh3cqRfshgWnBPZ0ublTWEc6uzcfGA vjGlPWe8zkma8cSuisSTlJhn5rjooRmeXboha7bmIk482x8LkBiRNMKBiiqajn9CO0rk GwphPzAM1e+S98eO0/IgT9jJLWNecEgCEh7GFYfcoGPRKl98baEmJ0Jot37XCInSd2+V /NcEBCcoqYNWKHA6AfrGdHR3AIL9dJwdnDEJK5kAaq1jP5NGl41Qul/ts3vWRGxtyYGe 4cCw== X-Gm-Message-State: AIVw113tdxdGX59zCK/vLabY/UAZPjW+1Ji154ahWVZsc+t4AqmBe6qW BPZcV2eNdfKwzhITK4zFz6eQ7K6UEw== X-Received: by 10.107.134.87 with SMTP id i84mr15079251iod.255.1501404324975; Sun, 30 Jul 2017 01:45:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.124.208 with HTTP; Sun, 30 Jul 2017 01:45:24 -0700 (PDT) In-Reply-To: References: <20170726110849.GG14419@calimero.vinschen.de> <20170727123207.GB27695@calimero.vinschen.de> <20170728104304.GA24013@calimero.vinschen.de> <20170728130803.GD24013@calimero.vinschen.de> <20170728182942.GE24013@calimero.vinschen.de> From: Aditya Upadhyay Date: Sun, 30 Jul 2017 08:46:00 -0000 Message-ID: Subject: Re: Importing inttypes methods To: newlib@sourceware.org Content-Type: multipart/mixed; boundary="001a113f0b82748ab3055584efff" X-IsSubscribed: yes X-SW-Source: 2017/txt/msg00698.txt.bz2 --001a113f0b82748ab3055584efff Content-Type: text/plain; charset="UTF-8" Content-length: 2549 I have declared all *_l methods within __BSD_VISIBLE guard in inttypes.h. I am attaching the patches for rest of the inttypes methods. Please review the same. Also i have tried to make the line length < 80 in inttypes.h file. Thanks & Regards, Aditya On Sat, Jul 29, 2017 at 7:27 PM, Aditya Upadhyay wrote: > Yes, > I am following the direction. > > Regards. > Aditya Upadhyay > > On Sat, Jul 29, 2017 at 6:10 PM, Gedare Bloom wrote: >> On Fri, Jul 28, 2017 at 2:29 PM, Corinna Vinschen wrote: >>> On Jul 28 10:28, Gedare Bloom wrote: >>>> On Fri, Jul 28, 2017 at 9:08 AM, Corinna Vinschen wrote: >>>> > On Jul 28 07:40, Gedare Bloom wrote: >>>> >> Corinna, good catch. I mentioned this issue to Joel but it dropped out >>>> >> the bottom some how. Is it only (for example) the strtoimax_l() that >>>> >> needs to be guarded, or also the _strtoimax_l? (I suspect only the >>>> >> strtoimax_l, but want to be clear before the next round of patches >>>> >> lands here.) >>>> > >>>> > The reentrant prototypes use locale_t, so they depend on including >>>> > xlocale.h, too. It's a bit uncommon but the simplest solution. >>>> > >>>> Since the non-reentrant version (e.g., strtoimax) wraps the re-entrant >>>> one, then there is no support unless locale is available. Would it be >>>> better to have a non-reentrant, nonolocale implementation in tandem >>>> with the reentrant one, or do we not worry about it and don't support >>>> these functions at all unless the POSIX_SOURCE is set properly and >>>> BSD_VISIBLE? >>> >>> Good catch on your side, I really had to look it up now. Here's how it >>> is in the other, similar cases like strtol: >>> >>> There are actually four functions: >>> >>> strtol >>> strtol_l >>> _strtol_r >>> _strtol_l >>> >>> _strtol_l is the internal implementation and *static*. _strtol_r >>> is the exported reentrant function and consequentially not having >>> the locale_t parameter. >>> >>> So, why not just keep it at that for now with strtoimax, etc? It only >>> requires minimal changes and nobody using the reentrant functions >>> actually asked for a reentrant function with thread-local locale >>> parameter yet :} >>> >>> As a result, the guards for the exported reentrant functions are not >>> required. >>> >> OK. Aditya please pursue this direction for implementation. It will >> take a bit more refactoring to get it right. >> >>> >>> Corinna >>> >>> -- >>> Corinna Vinschen >>> Cygwin Maintainer >>> Red Hat --001a113f0b82748ab3055584efff Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Importing-strtoimax-inttypes-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0001-Importing-strtoimax-inttypes-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5qhcvl00 Content-length: 10041 RnJvbSA0ODQ2YmYxMzFhMWI4ZWVkOWY1ZjY1ZGE4Njg4NDI3NzEwNTgxZDMz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgSnVsIDIw MTcgMTM6NTQ6MzEgKzA1MzAKU3ViamVjdDogW1BBVENIIDEvNF0gSW1wb3J0 aW5nIHN0cnRvaW1heCBpbnR0eXBlcyBtZXRob2QgZnJvbSBGcmVlQlNELgoK LS0tCiBuZXdsaWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggfCAgMTMgKysr KwogbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxlLmFtIHwgICAxICsKIG5l d2xpYi9saWJjL3N0ZGxpYi9zdHJ0b2ltYXguYyB8IDE1NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAxNzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IG5l d2xpYi9saWJjL3N0ZGxpYi9zdHJ0b2ltYXguYwoKZGlmZiAtLWdpdCBhL25l d2xpYi9saWJjL2luY2x1ZGUvaW50dHlwZXMuaCBiL25ld2xpYi9saWJjL2lu Y2x1ZGUvaW50dHlwZXMuaAppbmRleCAyNWM2ZTk5Li5mZWU5YTFiIDEwMDY0 NAotLS0gYS9uZXdsaWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmgKKysrIGIv bmV3bGliL2xpYmMvaW5jbHVkZS9pbnR0eXBlcy5oCkBAIC0xNiwxMCArMTYs MTUgQEAKICNpbmNsdWRlIDxuZXdsaWIuaD4KICNpbmNsdWRlIDxzeXMvY29u ZmlnLmg+CiAjaW5jbHVkZSA8c3lzL19pbnRzdXAuaD4KKyNpbmNsdWRlICJf YW5zaS5oIgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2RlZmluZSBfX25lZWRf d2NoYXJfdAogI2luY2x1ZGUgPHN0ZGRlZi5oPgogCisjaWYgX19CU0RfVklT SUJMRQorI2luY2x1ZGUgPHhsb2NhbGUuaD4KKyNlbmRpZgorCiAjZGVmaW5l IF9fU1RSSU5HSUZZKGEpICNhCiAKIC8qIDgtYml0IHR5cGVzICovCkBAIC0z MDksMTMgKzMxNCwyMSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgIGludG1heF90 CXJlbTsKIH0gaW1heGRpdl90OwogCitzdHJ1Y3QgX3JlZW50OworCiAjaWZk ZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKyNpZiBf X0JTRF9WSVNJQkxFCitleHRlcm4gaW50bWF4X3QgIHN0cnRvaW1heF9sKGNv bnN0IGNoYXIgKl9fcmVzdHJpY3QsIGNoYXIgKipfcmVzdHJpY3QsCisJCQkg ICAgIGludCwgbG9jYWxlX3QpOworI2VuZGlmCiBleHRlcm4gaW50bWF4X3Qg IGltYXhhYnMoaW50bWF4X3Qgaik7CiBleHRlcm4gaW1heGRpdl90IGltYXhk aXYoaW50bWF4X3QgbnVtZXIsIGludG1heF90IGRlbm9tZXIpOwogZXh0ZXJu IGludG1heF90ICBzdHJ0b2ltYXgoY29uc3QgY2hhciAqX19yZXN0cmljdCwg Y2hhciAqKl9fcmVzdHJpY3QsIGludCk7CitleHRlcm4gaW50bWF4X3QgIF9z dHJ0b2ltYXhfbChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QsCisJCQkgICAgICBjaGFyICoqX19yZXN0cmljdCwgaW50LCBsb2Nh bGVfdCk7CiBleHRlcm4gdWludG1heF90IHN0cnRvdW1heChjb25zdCBjaGFy ICpfX3Jlc3RyaWN0LCBjaGFyICoqX19yZXN0cmljdCwgaW50KTsKIGV4dGVy biBpbnRtYXhfdCAgd2NzdG9pbWF4KGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJp Y3QsIHdjaGFyX3QgKipfX3Jlc3RyaWN0LCBpbnQpOwogZXh0ZXJuIHVpbnRt YXhfdCB3Y3N0b3VtYXgoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgd2No YXJfdCAqKl9fcmVzdHJpY3QsIGludCk7CmRpZmYgLS1naXQgYS9uZXdsaWIv bGliYy9zdGRsaWIvTWFrZWZpbGUuYW0gYi9uZXdsaWIvbGliYy9zdGRsaWIv TWFrZWZpbGUuYW0KaW5kZXggN2FhYTdmZC4uNjRhOWQ0MyAxMDA2NDQKLS0t IGEvbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxlLmFtCisrKyBiL25ld2xp Yi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQpAQCAtNTksNiArNTksNyBAQCBH RU5FUkFMX1NPVVJDRVMgPSBcCiAJc2JfY2hhcnNldHMuYwlcCiAJc3RydG9k LmMJXAogCXN0cnRvZGcuYwlcCisJc3RydG9pbWF4LmMJXAogCXN0cnRvbC5j CVwKIAlzdHJ0b3J4LmMJXAogCXN0cnRvdWwuYwlcCmRpZmYgLS1naXQgYS9u ZXdsaWIvbGliYy9zdGRsaWIvc3RydG9pbWF4LmMgYi9uZXdsaWIvbGliYy9z dGRsaWIvc3RydG9pbWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZTdmMGQzMgotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9s aWJjL3N0ZGxpYi9zdHJ0b2ltYXguYwpAQCAtMCwwICsxLDE1NiBAQAorLyot CisgKiBDb3B5cmlnaHQgKGMpIDE5OTIsIDE5OTMKKyAqCVRoZSBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRz IHJlc2VydmVkLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgRnJl ZUJTRCBGb3VuZGF0aW9uCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog UG9ydGlvbnMgb2YgdGhpcyBzb2Z0d2FyZSB3ZXJlIGRldmVsb3BlZCBieSBE YXZpZCBDaGlzbmFsbAorICogdW5kZXIgc3BvbnNvcnNoaXAgZnJvbSB0aGUg RnJlZUJTRCBGb3VuZGF0aW9uLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0 aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0 YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u LgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBu b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBi ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk IGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBw cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS RSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JT IGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVND TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09O VFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElS RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF UVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S IEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFO RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U UkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ CisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH RS4KKyAqLworCisjaWYgZGVmaW5lZChMSUJDX1NDQ1MpICYmICFkZWZpbmVk KGxpbnQpCitzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJmcm9tIEAoIylzdHJ0 b2wuYwk4LjEgKEJlcmtlbGV5KSA2LzQvOTMiOworI2VuZGlmIC8qIExJQkNf U0NDUyBhbmQgbm90IGxpbnQgKi8KKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4K K19fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9saWIvbGliYy9zdGRsaWIvc3Ry dG9pbWF4LmMgMjUxNjcyIDIwMTMtMDYtMTMgMDA6MTk6MzBaIGVtYXN0ZSAk Iik7CisKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGVycm5vLmg+ CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4K KyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxyZWVudC5oPgorI2lu Y2x1ZGUgIi4uL2xvY2FsZS9zZXRsb2NhbGUuaCIKKworLyoKKyAqIENvbnZl cnQgYSBzdHJpbmcgdG8gYW4gaW50bWF4X3QgaW50ZWdlci4KKyAqCisgKiBB c3N1bWVzIHRoYXQgdGhlIHVwcGVyIGFuZCBsb3dlciBjYXNlCisgKiBhbHBo YWJldHMgYW5kIGRpZ2l0cyBhcmUgZWFjaCBjb250aWd1b3VzLgorICovCisK Ky8qCisgKlJlZW50cmFudCB2ZXJzaW9uIG9mIHN0cnRvaW1heC4KKyAqLwor aW50bWF4X3QKK19zdHJ0b2ltYXhfbChzdHJ1Y3QgX3JlZW50ICpycHRyLCBj b25zdCBjaGFyICogX19yZXN0cmljdCBucHRyLAorCSAgICAgY2hhciAqKiBf X3Jlc3RyaWN0IGVuZHB0ciwgaW50IGJhc2UsIGxvY2FsZV90IGxvYykKK3sK Kwljb25zdCBjaGFyICpzID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilucHRy OworCXVpbnRtYXhfdCBhY2M7CisJY2hhciBjOworCXVpbnRtYXhfdCBjdXRv ZmY7CisJaW50IG5lZyA9IDAsIGFueSwgY3V0bGltOworCQorCS8qCisJICog U2tpcCB3aGl0ZSBzcGFjZSBhbmQgcGljayB1cCBsZWFkaW5nICsvLSBzaWdu IGlmIGFueS4KKwkgKiBJZiBiYXNlIGlzIDAsIGFsbG93IDB4IGZvciBoZXgg YW5kIDAgZm9yIG9jdGFsLCBlbHNlCisJICogYXNzdW1lIGRlY2ltYWw7IGlm IGJhc2UgaXMgYWxyZWFkeSAxNiwgYWxsb3cgMHguCisJICovCisJZG8gewor CQljID0gKnMrKzsKKwl9IHdoaWxlIChpc3NwYWNlX2woYywgbG9jKSk7CisJ aWYgKGMgPT0gJy0nKSB7CisJCW5lZyA9IDE7CisJCWMgPSAqcysrOworCX0g ZWxzZSB7CisJCW5lZyA9IDA7CisJCWlmIChjID09ICcrJykKKwkJCWMgPSAq cysrOworCX0KKwlpZiAoKGJhc2UgPT0gMCB8fCBiYXNlID09IDE2KSAmJgor CSAgICBjID09ICcwJyAmJiAoKnMgPT0gJ3gnIHx8ICpzID09ICdYJykpIHsK KwkJYyA9IHNbMV07CisJCXMgKz0gMjsKKwkJYmFzZSA9IDE2OworCX0KKwlp ZiAoYmFzZSA9PSAwKQorCQliYXNlID0gYyA9PSAnMCcgPyA4IDogMTA7CisJ CisJLyoKKwkgKiBDb21wdXRlIHRoZSBjdXRvZmYgdmFsdWUgYmV0d2VlbiBs ZWdhbCBudW1iZXJzIGFuZCBpbGxlZ2FsCisJICogbnVtYmVycy4gIFRoYXQg aXMgdGhlIGxhcmdlc3QgbGVnYWwgdmFsdWUsIGRpdmlkZWQgYnkgdGhlCisJ ICogYmFzZS4gIEFuIGlucHV0IG51bWJlciB0aGF0IGlzIGdyZWF0ZXIgdGhh biB0aGlzIHZhbHVlLCBpZgorCSAqIGZvbGxvd2VkIGJ5IGEgbGVnYWwgaW5w dXQgY2hhcmFjdGVyLCBpcyB0b28gYmlnLiAgT25lIHRoYXQKKwkgKiBpcyBl cXVhbCB0byB0aGlzIHZhbHVlIG1heSBiZSB2YWxpZCBvciBub3Q7IHRoZSBs aW1pdAorCSAqIGJldHdlZW4gdmFsaWQgYW5kIGludmFsaWQgbnVtYmVycyBp cyB0aGVuIGJhc2VkIG9uIHRoZSBsYXN0CisJICogZGlnaXQuICBGb3IgaW5z dGFuY2UsIGlmIHRoZSByYW5nZSBmb3IgaW50bWF4X3QgaXMKKwkgKiBbLTky MjMzNzIwMzY4NTQ3NzU4MDguLjkyMjMzNzIwMzY4NTQ3NzU4MDddIGFuZCB0 aGUgaW5wdXQgYmFzZQorCSAqIGlzIDEwLCBjdXRvZmYgd2lsbCBiZSBzZXQg dG8gOTIyMzM3MjAzNjg1NDc3NTgwIGFuZCBjdXRsaW0gdG8KKwkgKiBlaXRo ZXIgNyAobmVnPT0wKSBvciA4IChuZWc9PTEpLCBtZWFuaW5nIHRoYXQgaWYg d2UgaGF2ZQorCSAqIGFjY3VtdWxhdGVkIGEgdmFsdWUgPiA5MjIzMzcyMDM2 ODU0Nzc1ODAsIG9yIGVxdWFsIGJ1dCB0aGUKKwkgKiBuZXh0IGRpZ2l0IGlz ID4gNyAob3IgOCksIHRoZSBudW1iZXIgaXMgdG9vIGJpZywgYW5kIHdlIHdp bGwKKwkgKiByZXR1cm4gYSByYW5nZSBlcnJvci4KKwkgKgorCSAqIFNldCAn YW55JyBpZiBhbnkgYGRpZ2l0cycgY29uc3VtZWQ7IG1ha2UgaXQgbmVnYXRp dmUgdG8gaW5kaWNhdGUKKwkgKiBvdmVyZmxvdy4KKwkgKi8KKwljdXRvZmYg PSBuZWcgPyAtKHVpbnRtYXhfdClJTlRNQVhfTUlOIDogSU5UTUFYX01BWDsK KwljdXRsaW0gPSBjdXRvZmYgJSBiYXNlOworCWN1dG9mZiAvPSBiYXNlOwor CWZvciAoIDsgOyBjID0gKnMrKykgeworCQlpZiAoYyA+PSAnMCcgJiYgYyA8 PSAnOScpCisJCQljIC09ICcwJzsKKwkJZWxzZSBpZiAoYyA+PSAnQScgJiYg YyA8PSAnWicpCisJCQljIC09ICdBJyAtIDEwOworCQllbHNlIGlmIChjID49 ICdhJyAmJiBjIDw9ICd6JykKKwkJCWMgLT0gJ2EnIC0gMTA7CisJCWVsc2UK KwkJCWJyZWFrOworCQlpZiAoYyA+PSBiYXNlKQorCQkJYnJlYWs7CisJCWlm IChhbnkgPCAwIHx8IGFjYyA+IGN1dG9mZiB8fCAoYWNjID09IGN1dG9mZiAm JiBjID4gY3V0bGltKSkKKwkJCWFueSA9IC0xOworCQllbHNlIHsKKwkJCWFu eSA9IDE7CisJCQlhY2MgKj0gYmFzZTsKKwkJCWFjYyArPSBjOworCQl9CisJ fQorCWlmIChhbnkgPCAwKSB7CisJCWFjYyA9IG5lZyA/IElOVE1BWF9NSU4g OiBJTlRNQVhfTUFYOworCQlycHRyLT5fZXJybm8gPSBFUkFOR0U7CisJfSBl bHNlIGlmICghYW55KSB7Citub2NvbnY6CisJCXJwdHItPl9lcnJubyA9IEVJ TlZBTDsKKwl9IGVsc2UgaWYgKG5lZykKKwkJYWNjID0gLWFjYzsKKwlpZiAo ZW5kcHRyICE9IE5VTEwpCisJCSplbmRwdHIgPSAoY2hhciAqKShhbnkgPyBz IC0gMSA6IG5wdHIpOworCXJldHVybiAoYWNjKTsKK30KK2ludG1heF90Citz dHJ0b2ltYXhfbChjb25zdCBjaGFyICogX19yZXN0cmljdCBucHRyLCBjaGFy ICoqIF9fcmVzdHJpY3QgZW5kcHRyLCBpbnQgYmFzZSwKKwkgICAgbG9jYWxl X3QgbG9jKQoreworCXJldHVybiBfc3RydG9pbWF4X2woX1JFRU5ULCBucHRy LCBlbmRwdHIsIGJhc2UsIGxvYyk7Cit9CitpbnRtYXhfdAorc3RydG9pbWF4 KGNvbnN0IGNoYXIqIF9fcmVzdHJpY3QgbnB0ciwgY2hhcioqIF9fcmVzdHJp Y3QgZW5kcHRyLCBpbnQgYmFzZSkKK3sKKwlyZXR1cm4gX3N0cnRvaW1heF9s KF9SRUVOVCwgbnB0ciwgZW5kcHRyLCBiYXNlLCBfX2dldF9jdXJyZW50X2xv Y2FsZSgpKTsKK30JCQotLSAKMi43LjQKCg== --001a113f0b82748ab3055584efff Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Importing-strtoumax-inttypes-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0002-Importing-strtoumax-inttypes-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5qhcvn41 Content-length: 8492 RnJvbSA2ZGRlNzE5MDJiZjk2OTM5NGE4NGRlYWM0YTU5NjIyYjUxOWM4MWI0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgSnVsIDIw MTcgMTM6NTk6MDIgKzA1MzAKU3ViamVjdDogW1BBVENIIDIvNF0gSW1wb3J0 aW5nIHN0cnRvdW1heCBpbnR0eXBlcyBtZXRob2QgZnJvbSBGcmVlQlNELgoK LS0tCiBuZXdsaWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggfCAgIDQgKysK IG5ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbSB8ICAgMSArCiBuZXds aWIvbGliYy9zdGRsaWIvc3RydG91bWF4LmMgfCAxMzggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTQzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBuZXds aWIvbGliYy9zdGRsaWIvc3RydG91bWF4LmMKCmRpZmYgLS1naXQgYS9uZXds aWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggYi9uZXdsaWIvbGliYy9pbmNs dWRlL2ludHR5cGVzLmgKaW5kZXggZmVlOWExYi4uNmQwMTM4ZSAxMDA2NDQK LS0tIGEvbmV3bGliL2xpYmMvaW5jbHVkZS9pbnR0eXBlcy5oCisrKyBiL25l d2xpYi9saWJjL2luY2x1ZGUvaW50dHlwZXMuaApAQCAtMzIzLDYgKzMyMyw4 IEBAIGV4dGVybiAiQyIgewogI2lmIF9fQlNEX1ZJU0lCTEUKIGV4dGVybiBp bnRtYXhfdCAgc3RydG9pbWF4X2woY29uc3QgY2hhciAqX19yZXN0cmljdCwg Y2hhciAqKl9yZXN0cmljdCwKIAkJCSAgICAgaW50LCBsb2NhbGVfdCk7Citl eHRlcm4gdWludG1heF90IHN0cnRvdW1heF9sKGNvbnN0IGNoYXIgKl9fcmVz dHJpY3QsIGNoYXIgKipfcmVzdHJpY3QsIAorCQkJICAgICBpbnQsIGxvY2Fs ZV90KTsKICNlbmRpZgogZXh0ZXJuIGludG1heF90ICBpbWF4YWJzKGludG1h eF90IGopOwogZXh0ZXJuIGltYXhkaXZfdCBpbWF4ZGl2KGludG1heF90IG51 bWVyLCBpbnRtYXhfdCBkZW5vbWVyKTsKQEAgLTMzMCw2ICszMzIsOCBAQCBl eHRlcm4gaW50bWF4X3QgIHN0cnRvaW1heChjb25zdCBjaGFyICpfX3Jlc3Ry aWN0LCBjaGFyICoqX19yZXN0cmljdCwgaW50KTsKIGV4dGVybiBpbnRtYXhf dCAgX3N0cnRvaW1heF9sKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hhciAq X19yZXN0cmljdCwKIAkJCSAgICAgIGNoYXIgKipfX3Jlc3RyaWN0LCBpbnQs IGxvY2FsZV90KTsKIGV4dGVybiB1aW50bWF4X3Qgc3RydG91bWF4KGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QsIGNoYXIgKipfX3Jlc3RyaWN0LCBpbnQpOwor ZXh0ZXJuIHVpbnRtYXhfdCBfc3RydG91bWF4X2woc3RydWN0IF9yZWVudCAq LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LCAKKwkJCSAgICAgIGNoYXIgKipf X3Jlc3RyaWN0LCBpbnQsIGxvY2FsZV90KTsKIGV4dGVybiBpbnRtYXhfdCAg d2NzdG9pbWF4KGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QsIHdjaGFyX3Qg KipfX3Jlc3RyaWN0LCBpbnQpOwogZXh0ZXJuIHVpbnRtYXhfdCB3Y3N0b3Vt YXgoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgd2NoYXJfdCAqKl9fcmVz dHJpY3QsIGludCk7CiAKZGlmZiAtLWdpdCBhL25ld2xpYi9saWJjL3N0ZGxp Yi9NYWtlZmlsZS5hbSBiL25ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5h bQppbmRleCA2NGE5ZDQzLi4xY2NkMmM0IDEwMDY0NAotLS0gYS9uZXdsaWIv bGliYy9zdGRsaWIvTWFrZWZpbGUuYW0KKysrIGIvbmV3bGliL2xpYmMvc3Rk bGliL01ha2VmaWxlLmFtCkBAIC02Myw2ICs2Myw3IEBAIEdFTkVSQUxfU09V UkNFUyA9IFwKIAlzdHJ0b2wuYwlcCiAJc3RydG9yeC5jCVwKIAlzdHJ0b3Vs LmMJXAorCXN0cnRvdW1heC5jCVwKIAl1dG9hLmMgICAgICAgICAgXAogCXdj c3RvZC5jCVwKIAl3Y3N0b2wuYwlcCmRpZmYgLS1naXQgYS9uZXdsaWIvbGli Yy9zdGRsaWIvc3RydG91bWF4LmMgYi9uZXdsaWIvbGliYy9zdGRsaWIvc3Ry dG91bWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YjI0MjZhNQotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJjL3N0ZGxp Yi9zdHJ0b3VtYXguYwpAQCAtMCwwICsxLDEzOCBAQAorLyotCisgKiBDb3B5 cmlnaHQgKGMpIDE5OTIsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2VydmVk LgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgRnJlZUJTRCBGb3Vu ZGF0aW9uCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMg b2YgdGhpcyBzb2Z0d2FyZSB3ZXJlIGRldmVsb3BlZCBieSBEYXZpZCBDaGlz bmFsbAorICogdW5kZXIgc3BvbnNvcnNoaXAgZnJvbSB0aGUgRnJlZUJTRCBG b3VuZGF0aW9uLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g TmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5h bWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRv IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp cyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0 dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W SURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMn JyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAg SU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JT IEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK KyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNF UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT IElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS SUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQg T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLwor CisjaWYgZGVmaW5lZChMSUJDX1NDQ1MpICYmICFkZWZpbmVkKGxpbnQpCitz dGF0aWMgY2hhciBzY2NzaWRbXSA9ICJmcm9tIEAoIylzdHJ0b3VsLmMJOC4x IChCZXJrZWxleSkgNi80LzkzIjsKKyNlbmRpZiAvKiBMSUJDX1NDQ1MgYW5k IG5vdCBsaW50ICovCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CitfX0ZCU0RJ RCgiJEZyZWVCU0Q6IGhlYWQvbGliL2xpYmMvc3RkbGliL3N0cnRvdW1heC5j IDI1MTY3MiAyMDEzLTA2LTEzIDAwOjE5OjMwWiBlbWFzdGUgJCIpOworCisj aW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVk ZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8cmVlbnQuaD4KKyNpbmNsdWRlICIu Li9sb2NhbGUvc2V0bG9jYWxlLmgiCisKKy8qCisgKiBDb252ZXJ0IGEgc3Ry aW5nIHRvIGEgdWludG1heF90IGludGVnZXIuCisgKgorICogQXNzdW1lcyB0 aGF0IHRoZSB1cHBlciBhbmQgbG93ZXIgY2FzZQorICogYWxwaGFiZXRzIGFu ZCBkaWdpdHMgYXJlIGVhY2ggY29udGlndW91cy4KKyAqLworCisvKgorICpS ZWVudHJhbnQgdmVyc2lvbiBvZiBzdHJ0b3VtYXguCisgKi8KK3VpbnRtYXhf dAorX3N0cnRvdW1heF9sKHN0cnVjdCBfcmVlbnQgKnJwdHIsIGNvbnN0IGNo YXIgKiBfX3Jlc3RyaWN0IG5wdHIsIAorCSAgICAgY2hhciAqKiBfX3Jlc3Ry aWN0IGVuZHB0ciwgaW50IGJhc2UsIGxvY2FsZV90IGxvYykKK3sKKwljb25z dCBjaGFyICpzID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilucHRyOworCXVp bnRtYXhfdCBhY2M7CisJY2hhciBjOworCXVpbnRtYXhfdCBjdXRvZmY7CisJ aW50IG5lZyA9IDAsIGFueSwgY3V0bGltOworCQorCS8qCisJICogU2VlIHN0 cnRvaW1heCBmb3IgY29tbWVudHMgYXMgdG8gdGhlIGxvZ2ljIHVzZWQuCisJ ICovCisJZG8geworCQljID0gKnMrKzsKKwl9IHdoaWxlIChpc3NwYWNlX2wo YywgbG9jKSk7CisJaWYgKGMgPT0gJy0nKSB7CisJCW5lZyA9IDE7CisJCWMg PSAqcysrOworCX0gZWxzZSB7CisJCW5lZyA9IDA7CisJCWlmIChjID09ICcr JykKKwkJCWMgPSAqcysrOworCX0KKwlpZiAoKGJhc2UgPT0gMCB8fCBiYXNl ID09IDE2KSAmJgorCSAgICBjID09ICcwJyAmJiAoKnMgPT0gJ3gnIHx8ICpz ID09ICdYJykpIHsKKwkJYyA9IHNbMV07CisJCXMgKz0gMjsKKwkJYmFzZSA9 IDE2OworCX0KKwlpZiAoYmFzZSA9PSAwKQorCQliYXNlID0gYyA9PSAnMCcg PyA4IDogMTA7CisJYWNjID0gYW55ID0gMDsKKwlpZiAoYmFzZSA8IDIgfHwg YmFzZSA+IDM2KQorCQlnb3RvIG5vY29udjsKKworCWN1dG9mZiA9IFVJTlRN QVhfTUFYIC8gYmFzZTsKKwljdXRsaW0gPSBVSU5UTUFYX01BWCAlIGJhc2U7 CisJZm9yICggOyA7IGMgPSAqcysrKSB7CisJCWlmIChjID49ICcwJyAmJiBj IDw9ICc5JykKKwkJCWMgLT0gJzAnOworCQllbHNlIGlmIChjID49ICdBJyAm JiBjIDw9ICdaJykKKwkJCWMgLT0gJ0EnIC0gMTA7CisJCWVsc2UgaWYgKGMg Pj0gJ2EnICYmIGMgPD0gJ3onKQorCQkJYyAtPSAnYScgLSAxMDsKKwkJZWxz ZQorCQkJYnJlYWs7CisJCWlmIChjID49IGJhc2UpCisJCQlicmVhazsKKwkJ aWYgKGFueSA8IDAgfHwgYWNjID4gY3V0b2ZmIHx8IChhY2MgPT0gY3V0b2Zm ICYmIGMgPiBjdXRsaW0pKQorCQkJYW55ID0gLTE7CisJCWVsc2UgeworCQkJ YW55ID0gMTsKKwkJCWFjYyAqPSBiYXNlOworCQkJYWNjICs9IGM7CisJCX0K Kwl9CisJaWYgKGFueSA8IDApIHsKKwkJYWNjID0gVUlOVE1BWF9NQVg7CisJ CXJwdHItPl9lcnJubyA9IEVSQU5HRTsKKwl9IGVsc2UgaWYgKCFhbnkpIHsK K25vY29udjoKKwkJcnB0ci0+X2Vycm5vID0gRUlOVkFMOworCX0gZWxzZSBp ZiAobmVnKQorCQlhY2MgPSAtYWNjOworCWlmIChlbmRwdHIgIT0gTlVMTCkK KwkJKmVuZHB0ciA9IChjaGFyICopKGFueSA/IHMgLSAxIDogbnB0cik7CisJ cmV0dXJuIChhY2MpOworfQordWludG1heF90CitzdHJ0b3VtYXhfbChjb25z dCBjaGFyICogX19yZXN0cmljdCBucHRyLCBjaGFyICoqIF9fcmVzdHJpY3Qg ZW5kcHRyLCBpbnQgYmFzZSwKKwkgICAgbG9jYWxlX3QgbG9jKQoreworCXJl dHVybiBfc3RydG91bWF4X2woX1JFRU5ULCBucHRyLCBlbmRwdHIsIGJhc2Us IGxvYyk7Cit9Cit1aW50bWF4X3QKK3N0cnRvdW1heChjb25zdCBjaGFyKiBf X3Jlc3RyaWN0IG5wdHIsIGNoYXIqKiBfX3Jlc3RyaWN0IGVuZHB0ciwgaW50 IGJhc2UpCit7CisJcmV0dXJuIF9zdHJ0b3VtYXhfbChfUkVFTlQsIG5wdHIs IGVuZHB0ciwgYmFzZSwgX19nZXRfY3VycmVudF9sb2NhbGUoKSk7Cit9Ci0t IAoyLjcuNAoK --001a113f0b82748ab3055584efff Content-Type: text/x-patch; charset="US-ASCII"; name="0003-Importing-wcstoimax-inttypes-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0003-Importing-wcstoimax-inttypes-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5qhcvnt2 Content-length: 8805 RnJvbSAyZGQwMjFmMTU3ZWQ4OTNmYTgzYTNhN2RiN2IyZTRjYzgwNmY4OWJi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgSnVsIDIw MTcgMTQ6MDI6MjIgKzA1MzAKU3ViamVjdDogW1BBVENIIDMvNF0gSW1wb3J0 aW5nIHdjc3RvaW1heCBpbnR0eXBlcyBtZXRob2QgZnJvbSBGcmVlQlNELgoK LS0tCiBuZXdsaWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggfCAgIDQgKysK IG5ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbSB8ICAgMSArCiBuZXds aWIvbGliYy9zdGRsaWIvd2NzdG9pbWF4LmMgfCAxNDUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTUwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBuZXds aWIvbGliYy9zdGRsaWIvd2NzdG9pbWF4LmMKCmRpZmYgLS1naXQgYS9uZXds aWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggYi9uZXdsaWIvbGliYy9pbmNs dWRlL2ludHR5cGVzLmgKaW5kZXggNmQwMTM4ZS4uMjg2YzA2MSAxMDA2NDQK LS0tIGEvbmV3bGliL2xpYmMvaW5jbHVkZS9pbnR0eXBlcy5oCisrKyBiL25l d2xpYi9saWJjL2luY2x1ZGUvaW50dHlwZXMuaApAQCAtMzI1LDYgKzMyNSw4 IEBAIGV4dGVybiBpbnRtYXhfdCAgc3RydG9pbWF4X2woY29uc3QgY2hhciAq X19yZXN0cmljdCwgY2hhciAqKl9yZXN0cmljdCwKIAkJCSAgICAgaW50LCBs b2NhbGVfdCk7CiBleHRlcm4gdWludG1heF90IHN0cnRvdW1heF9sKGNvbnN0 IGNoYXIgKl9fcmVzdHJpY3QsIGNoYXIgKipfcmVzdHJpY3QsIAogCQkJICAg ICBpbnQsIGxvY2FsZV90KTsKK2V4dGVybiBpbnRtYXhfdCAgd2NzdG9pbWF4 X2woY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgd2NoYXJfdCAqKl9yZXN0 cmljdCwKKwkJCSAgICAgaW50LCBsb2NhbGVfdCk7CiAjZW5kaWYKIGV4dGVy biBpbnRtYXhfdCAgaW1heGFicyhpbnRtYXhfdCBqKTsKIGV4dGVybiBpbWF4 ZGl2X3QgaW1heGRpdihpbnRtYXhfdCBudW1lciwgaW50bWF4X3QgZGVub21l cik7CkBAIC0zMzUsNiArMzM3LDggQEAgZXh0ZXJuIHVpbnRtYXhfdCBzdHJ0 b3VtYXgoY29uc3QgY2hhciAqX19yZXN0cmljdCwgY2hhciAqKl9fcmVzdHJp Y3QsIGludCk7CiBleHRlcm4gdWludG1heF90IF9zdHJ0b3VtYXhfbChzdHJ1 Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QsIAogCQkJICAg ICAgY2hhciAqKl9fcmVzdHJpY3QsIGludCwgbG9jYWxlX3QpOwogZXh0ZXJu IGludG1heF90ICB3Y3N0b2ltYXgoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmlj dCwgd2NoYXJfdCAqKl9fcmVzdHJpY3QsIGludCk7CitleHRlcm4gaW50bWF4 X3QgIF93Y3N0b2ltYXhfbChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IHdjaGFy X3QgKl9fcmVzdHJpY3QsIAorCQkJICAgICAgd2NoYXJfdCAqKl9fcmVzdHJp Y3QsIGludCwgbG9jYWxlX3QpOwogZXh0ZXJuIHVpbnRtYXhfdCB3Y3N0b3Vt YXgoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgd2NoYXJfdCAqKl9fcmVz dHJpY3QsIGludCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0 IGEvbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxlLmFtIGIvbmV3bGliL2xp YmMvc3RkbGliL01ha2VmaWxlLmFtCmluZGV4IDFjY2QyYzQuLmI2ODdjMGYg MTAwNjQ0Ci0tLSBhL25ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQor KysgYi9uZXdsaWIvbGliYy9zdGRsaWIvTWFrZWZpbGUuYW0KQEAgLTY2LDYg KzY2LDcgQEAgR0VORVJBTF9TT1VSQ0VTID0gXAogCXN0cnRvdW1heC5jCVwK IAl1dG9hLmMgICAgICAgICAgXAogCXdjc3RvZC5jCVwKKwl3Y3N0b2ltYXgu YwlcCiAJd2NzdG9sLmMJXAogCXdjc3RvdWwuYwlcCiAJd2NzdG9tYnMuYwlc CmRpZmYgLS1naXQgYS9uZXdsaWIvbGliYy9zdGRsaWIvd2NzdG9pbWF4LmMg Yi9uZXdsaWIvbGliYy9zdGRsaWIvd2NzdG9pbWF4LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQzNTBlNgotLS0gL2Rldi9udWxs CisrKyBiL25ld2xpYi9saWJjL3N0ZGxpYi93Y3N0b2ltYXguYwpAQCAtMCww ICsxLDE0NSBAQAorLyotCisgKiBDb3B5cmlnaHQgKGMpIDE5OTIsIDE5OTMK KyAqCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3Ju aWEuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIENvcHlyaWdodCAo YykgMjAxMSBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uCisgKiBBbGwgcmlnaHRz IHJlc2VydmVkLgorICogUG9ydGlvbnMgb2YgdGhpcyBzb2Z0d2FyZSB3ZXJl IGRldmVsb3BlZCBieSBEYXZpZCBDaGlzbmFsbAorICogdW5kZXIgc3BvbnNv cnNoaXAgZnJvbSB0aGUgRnJlZUJTRCBGb3VuZGF0aW9uLgorICoKKyAqIFJl ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0 CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0 aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0 aGUgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0 aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv cnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQorICogICAgd2l0 aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBB TkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNT IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF IFJFR0VOVFMgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFO WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN UExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9S IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ U0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3lzL2NkZWZz Lmg+CisjaWYgMAorI2lmIGRlZmluZWQoTElCQ19TQ0NTKSAmJiAhZGVmaW5l ZChsaW50KQorc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiZnJvbSBAKCMpc3Ry dG9sLmMJOC4xIChCZXJrZWxleSkgNi80LzkzIjsKKyNlbmRpZiAvKiBMSUJD X1NDQ1MgYW5kIG5vdCBsaW50ICovCitfX0ZCU0RJRCgiRnJlZUJTRDogc3Jj L2xpYi9saWJjL3N0ZGxpYi9zdHJ0b2ltYXguYyx2IDEuOCAyMDAyLzA5LzA2 IDExOjIzOjU5IHRqciBFeHAgIik7CisjZW5kaWYKK19fRkJTRElEKCIkRnJl ZUJTRDogaGVhZC9saWIvbGliYy9sb2NhbGUvd2NzdG9pbWF4LmMgMzE0NDM2 IDIwMTctMDItMjggMjM6NDI6NDdaIGltcCAkIik7CisKKyNpbmNsdWRlIDxl cnJuby5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KKyNpbmNsdWRlIDx3Y3R5cGUu aD4KKyNpbmNsdWRlIDxyZWVudC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgor I2luY2x1ZGUgIi4uL2xvY2FsZS9zZXRsb2NhbGUuaCIKKworLyoKKyAqIENv bnZlcnQgYSB3aWRlIGNoYXJhY3RlciBzdHJpbmcgdG8gYW4gaW50bWF4X3Qg aW50ZWdlci4KKyAqLworCisvKgorICpSZWVudHJhbnQgdmVyc2lvbiBvZiB3 Y3N0b2ltYXguCisgKi8KK2ludG1heF90Citfd2NzdG9pbWF4X2woc3RydWN0 IF9yZWVudCAqcnB0ciwgY29uc3Qgd2NoYXJfdCAqIF9fcmVzdHJpY3QgbnB0 ciwgCisJICAgICB3Y2hhcl90ICoqIF9fcmVzdHJpY3QgZW5kcHRyLCBpbnQg YmFzZSwgbG9jYWxlX3QgbG9jKQoreworCWNvbnN0IHdjaGFyX3QgKnMgPSBu cHRyOworCXVpbnRtYXhfdCBhY2M7CisJd2NoYXJfdCBjOworCXVpbnRtYXhf dCBjdXRvZmY7CisJaW50IG5lZyA9IDAsIGFueSwgY3V0bGltOworCQorCS8q CisJICogU2VlIHN0cnRvaW1heCBmb3IgY29tbWVudHMgYXMgdG8gdGhlIGxv Z2ljIHVzZWQuCisJICovCisJZG8geworCQljID0gKnMrKzsKKwl9IHdoaWxl IChpc3dzcGFjZV9sKGMsIGxvYykpOworCWlmIChjID09IEwnLScpIHsKKwkJ bmVnID0gMTsKKwkJYyA9ICpzKys7CisJfSBlbHNlIHsKKwkJbmVnID0gMDsK KwkJaWYgKGMgPT0gTCcrJykKKwkJCWMgPSAqcysrOworCX0KKwlpZiAoKGJh c2UgPT0gMCB8fCBiYXNlID09IDE2KSAmJgorCSAgICBjID09IEwnMCcgJiYg KCpzID09IEwneCcgfHwgKnMgPT0gTCdYJykpIHsKKwkJYyA9IHNbMV07CisJ CXMgKz0gMjsKKwkJYmFzZSA9IDE2OworCX0KKwlpZiAoYmFzZSA9PSAwKQor CQliYXNlID0gYyA9PSBMJzAnID8gOCA6IDEwOworCWFjYyA9IGFueSA9IDA7 CisJaWYgKGJhc2UgPCAyIHx8IGJhc2UgPiAzNikKKwkJZ290byBub2NvbnY7 CisKKwljdXRvZmYgPSBuZWcgPyAtKHVpbnRtYXhfdClJTlRNQVhfTUlOIDog SU5UTUFYX01BWDsKKwljdXRsaW0gPSBjdXRvZmYgJSBiYXNlOworCWN1dG9m ZiAvPSBiYXNlOworCWZvciAoIDsgOyBjID0gKnMrKykgeworI2lmZGVmIG5v dHlldAorCQlpZiAoaXN3ZGlnaXRfbChjLCBsb2MpKQorCQkJYyA9IGRpZ2l0 dG9pbnRfbChjLCBsb2MpOworCQllbHNlCisjZW5kaWYKKwkJaWYgKGMgPj0g TCcwJyAmJiBjIDw9IEwnOScpCisJCQljIC09IEwnMCc7CisJCWVsc2UgaWYg KGMgPj0gTCdBJyAmJiBjIDw9IEwnWicpCisJCQljIC09IEwnQScgLSAxMDsK KwkJZWxzZSBpZiAoYyA+PSAnYScgJiYgYyA8PSAneicpCisJCQljIC09IEwn YScgLSAxMDsKKwkJZWxzZQorCQkJYnJlYWs7CisJCWlmIChjID49IGJhc2Up CisJCQlicmVhazsKKwkJaWYgKGFueSA8IDAgfHwgYWNjID4gY3V0b2ZmIHx8 IChhY2MgPT0gY3V0b2ZmICYmIGMgPiBjdXRsaW0pKQorCQkJYW55ID0gLTE7 CisJCWVsc2UgeworCQkJYW55ID0gMTsKKwkJCWFjYyAqPSBiYXNlOworCQkJ YWNjICs9IGM7CisJCX0KKwl9CisJaWYgKGFueSA8IDApIHsKKwkJYWNjID0g bmVnID8gSU5UTUFYX01JTiA6IElOVE1BWF9NQVg7CisJCXJwdHItPl9lcnJu byA9IEVSQU5HRTsKKwl9IGVsc2UgaWYgKCFhbnkpIHsKK25vY29udjoKKwkJ cnB0ci0+X2Vycm5vID0gRUlOVkFMOworCX0gZWxzZSBpZiAobmVnKQorCQlh Y2MgPSAtYWNjOworCWlmIChlbmRwdHIgIT0gTlVMTCkKKwkJKmVuZHB0ciA9 ICh3Y2hhcl90ICopKGFueSA/IHMgLSAxIDogbnB0cik7CisJcmV0dXJuIChh Y2MpOworfQoraW50bWF4X3QKK3djc3RvaW1heF9sKGNvbnN0IHdjaGFyX3Qg KiBfX3Jlc3RyaWN0IG5wdHIsIHdjaGFyX3QgKiogX19yZXN0cmljdCBlbmRw dHIsCisgICAgCSAgICBpbnQgYmFzZSwgbG9jYWxlX3QgbG9jKQoreworCXJl dHVybiBfd2NzdG9pbWF4X2woX1JFRU5ULCBucHRyLCBlbmRwdHIsIGJhc2Us IGxvYyk7Cit9CitpbnRtYXhfdAord2NzdG9pbWF4KGNvbnN0IHdjaGFyX3Qq IF9fcmVzdHJpY3QgbnB0ciwgd2NoYXJfdCoqIF9fcmVzdHJpY3QgZW5kcHRy LCBpbnQgYmFzZSkKK3sKKwlyZXR1cm4gX3djc3RvaW1heF9sKF9SRUVOVCwg bnB0ciwgZW5kcHRyLCBiYXNlLCBfX2dldF9jdXJyZW50X2xvY2FsZSgpKTsK K30KLS0gCjIuNy40Cgo= --001a113f0b82748ab3055584efff Content-Type: text/x-patch; charset="US-ASCII"; name="0004-Importing-wcstoumax-inttypes-method-from-FreeBSD.patch" Content-Disposition: attachment; filename="0004-Importing-wcstoumax-inttypes-method-from-FreeBSD.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5qhcvon3 Content-length: 8650 RnJvbSAzYWE0MWI2ZTk5MDRmOWEwYTExZDJjMjU3ODdlNDIyOGIwZDQ2MWIx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVXBhZGh5 YXkgPGFhZGl0MDQwMkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzAgSnVsIDIw MTcgMTQ6MDY6MzkgKzA1MzAKU3ViamVjdDogW1BBVENIIDQvNF0gSW1wb3J0 aW5nIHdjc3RvdW1heCBpbnR0eXBlcyBtZXRob2QgZnJvbSBGcmVlQlNELgoK LS0tCiBuZXdsaWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggfCAgIDQgKysK IG5ld2xpYi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbSB8ICAgMSArCiBuZXds aWIvbGliYy9zdGRsaWIvd2NzdG91bWF4LmMgfCAxNDQgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTQ5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBuZXds aWIvbGliYy9zdGRsaWIvd2NzdG91bWF4LmMKCmRpZmYgLS1naXQgYS9uZXds aWIvbGliYy9pbmNsdWRlL2ludHR5cGVzLmggYi9uZXdsaWIvbGliYy9pbmNs dWRlL2ludHR5cGVzLmgKaW5kZXggMjg2YzA2MS4uYTY2MWE4NiAxMDA2NDQK LS0tIGEvbmV3bGliL2xpYmMvaW5jbHVkZS9pbnR0eXBlcy5oCisrKyBiL25l d2xpYi9saWJjL2luY2x1ZGUvaW50dHlwZXMuaApAQCAtMzI3LDYgKzMyNyw4 IEBAIGV4dGVybiB1aW50bWF4X3Qgc3RydG91bWF4X2woY29uc3QgY2hhciAq X19yZXN0cmljdCwgY2hhciAqKl9yZXN0cmljdCwKIAkJCSAgICAgaW50LCBs b2NhbGVfdCk7CiBleHRlcm4gaW50bWF4X3QgIHdjc3RvaW1heF9sKGNvbnN0 IHdjaGFyX3QgKl9fcmVzdHJpY3QsIHdjaGFyX3QgKipfcmVzdHJpY3QsCiAJ CQkgICAgIGludCwgbG9jYWxlX3QpOworZXh0ZXJuIHVpbnRtYXhfdCB3Y3N0 b3VtYXhfbChjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0LCB3Y2hhcl90ICoq X3Jlc3RyaWN0LCAKKwkJCSAgICAgaW50LCBsb2NhbGVfdCk7CiAjZW5kaWYK IGV4dGVybiBpbnRtYXhfdCAgaW1heGFicyhpbnRtYXhfdCBqKTsKIGV4dGVy biBpbWF4ZGl2X3QgaW1heGRpdihpbnRtYXhfdCBudW1lciwgaW50bWF4X3Qg ZGVub21lcik7CkBAIC0zNDAsNiArMzQyLDggQEAgZXh0ZXJuIGludG1heF90 ICB3Y3N0b2ltYXgoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgd2NoYXJf dCAqKl9fcmVzdHJpY3QsIGludCkKIGV4dGVybiBpbnRtYXhfdCAgX3djc3Rv aW1heF9sKHN0cnVjdCBfcmVlbnQgKiwgY29uc3Qgd2NoYXJfdCAqX19yZXN0 cmljdCwgCiAJCQkgICAgICB3Y2hhcl90ICoqX19yZXN0cmljdCwgaW50LCBs b2NhbGVfdCk7CiBleHRlcm4gdWludG1heF90IHdjc3RvdW1heChjb25zdCB3 Y2hhcl90ICpfX3Jlc3RyaWN0LCB3Y2hhcl90ICoqX19yZXN0cmljdCwgaW50 KTsKK2V4dGVybiB1aW50bWF4X3QgX3djc3RvdW1heF9sKHN0cnVjdCBfcmVl bnQgKiwgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCwgCisJCQkgICAgICB3 Y2hhcl90ICoqX19yZXN0cmljdCwgaW50LCBsb2NhbGVfdCk7CiAKICNpZmRl ZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvc3Rk bGliL01ha2VmaWxlLmFtIGIvbmV3bGliL2xpYmMvc3RkbGliL01ha2VmaWxl LmFtCmluZGV4IGI2ODdjMGYuLmY5YmFiMGIgMTAwNjQ0Ci0tLSBhL25ld2xp Yi9saWJjL3N0ZGxpYi9NYWtlZmlsZS5hbQorKysgYi9uZXdsaWIvbGliYy9z dGRsaWIvTWFrZWZpbGUuYW0KQEAgLTY5LDYgKzY5LDcgQEAgR0VORVJBTF9T T1VSQ0VTID0gXAogCXdjc3RvaW1heC5jCVwKIAl3Y3N0b2wuYwlcCiAJd2Nz dG91bC5jCVwKKwl3Y3N0b3VtYXguYwlcCiAJd2NzdG9tYnMuYwlcCiAJd2Nz dG9tYnNfci5jCVwKIAl3Y3RvbWIuYwlcCmRpZmYgLS1naXQgYS9uZXdsaWIv bGliYy9zdGRsaWIvd2NzdG91bWF4LmMgYi9uZXdsaWIvbGliYy9zdGRsaWIv d2NzdG91bWF4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZGZhMjViZAotLS0gL2Rldi9udWxsCisrKyBiL25ld2xpYi9saWJjL3N0 ZGxpYi93Y3N0b3VtYXguYwpAQCAtMCwwICsxLDE0NCBAQAorLyotCisgKiBD b3B5cmlnaHQgKGMpIDE5OTIsIDE5OTMKKyAqCVRoZSBSZWdlbnRzIG9mIHRo ZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEuICBBbGwgcmlnaHRzIHJlc2Vy dmVkLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxMSBUaGUgRnJlZUJTRCBG b3VuZGF0aW9uCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlv bnMgb2YgdGhpcyBzb2Z0d2FyZSB3ZXJlIGRldmVsb3BlZCBieSBEYXZpZCBD aGlzbmFsbAorICogdW5kZXIgc3BvbnNvcnNoaXAgZnJvbSB0aGUgRnJlZUJT RCBGb3VuZGF0aW9uLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog My4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhl IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2Vk IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g dGhpcyBzb2Z0d2FyZQorICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3 cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMg SVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVE LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJQlVU T1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ QUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJW SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO RVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBP VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAq LworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisjaWYgMAorI2lmIGRlZmlu ZWQoTElCQ19TQ0NTKSAmJiAhZGVmaW5lZChsaW50KQorc3RhdGljIGNoYXIg c2Njc2lkW10gPSAiZnJvbSBAKCMpc3RydG91bC5jCTguMSAoQmVya2VsZXkp IDYvNC85MyI7CisjZW5kaWYgLyogTElCQ19TQ0NTIGFuZCBub3QgbGludCAq LworX19GQlNESUQoIkZyZWVCU0Q6IHNyYy9saWIvbGliYy9zdGRsaWIvc3Ry dG91bWF4LmMsdiAxLjggMjAwMi8wOS8wNiAxMToyMzo1OSB0anIgRXhwICIp OworI2VuZGlmCitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvbGliL2xpYmMv bG9jYWxlL3djc3RvdW1heC5jIDMxNDQzNiAyMDE3LTAyLTI4IDIzOjQyOjQ3 WiBpbXAgJCIpOworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxp bnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHdj aGFyLmg+CisjaW5jbHVkZSA8d2N0eXBlLmg+CisjaW5jbHVkZSA8c3RkaW50 Lmg+CisjaW5jbHVkZSA8cmVlbnQuaD4KKyNpbmNsdWRlICIuLi9sb2NhbGUv c2V0bG9jYWxlLmgiCisKKy8qCisgKiBDb252ZXJ0IGEgd2lkZSBjaGFyYWN0 ZXIgc3RyaW5nIHRvIGEgdWludG1heF90IGludGVnZXIuCisgKi8KKworLyoK KyAqUmVlbnRyYW50IHZlcnNpb24gb2Ygd2NzdG91bWF4LgorICovCit1aW50 bWF4X3QKK193Y3N0b3VtYXhfbChzdHJ1Y3QgX3JlZW50ICpycHRyLGNvbnN0 IHdjaGFyX3QgKiBfX3Jlc3RyaWN0IG5wdHIsIAorCSAgICAgd2NoYXJfdCAq KiBfX3Jlc3RyaWN0IGVuZHB0ciwgaW50IGJhc2UsIGxvY2FsZV90IGxvYykK K3sKKwljb25zdCB3Y2hhcl90ICpzID0gbnB0cjsKKwl1aW50bWF4X3QgYWNj OworCXdjaGFyX3QgYzsKKwl1aW50bWF4X3QgY3V0b2ZmOworCWludCBuZWcg PSAwLCBhbnksIGN1dGxpbTsKKwkKKwkvKgorCSAqIFNlZSBzdHJ0b2ltYXgg Zm9yIGNvbW1lbnRzIGFzIHRvIHRoZSBsb2dpYyB1c2VkLgorCSAqLworCWRv IHsKKwkJYyA9ICpzKys7CisJfSB3aGlsZSAoaXN3c3BhY2VfbChjLCBsb2Mp KTsKKwlpZiAoYyA9PSBMJy0nKSB7CisJCW5lZyA9IDE7CisJCWMgPSAqcysr OworCX0gZWxzZSB7CisJCW5lZyA9IDA7CisJCWlmIChjID09IEwnKycpCisJ CQljID0gKnMrKzsKKwl9CisJaWYgKChiYXNlID09IDAgfHwgYmFzZSA9PSAx NikgJiYKKwkgICAgYyA9PSBMJzAnICYmICgqcyA9PSBMJ3gnIHx8ICpzID09 IEwnWCcpKSB7CisJCWMgPSBzWzFdOworCQlzICs9IDI7CisJCWJhc2UgPSAx NjsKKwl9CisJaWYgKGJhc2UgPT0gMCkKKwkJYmFzZSA9IGMgPT0gTCcwJyA/ IDggOiAxMDsKKwlhY2MgPSBhbnkgPSAwOworCWlmIChiYXNlIDwgMiB8fCBi YXNlID4gMzYpCisJCWdvdG8gbm9jb252OworCisJY3V0b2ZmID0gVUlOVE1B WF9NQVggLyBiYXNlOworCWN1dGxpbSA9IFVJTlRNQVhfTUFYICUgYmFzZTsK Kwlmb3IgKCA7IDsgYyA9ICpzKyspIHsKKyNpZmRlZiBub3R5ZXQKKwkJaWYg KGlzd2RpZ2l0X2woYywgbG9jKSkKKwkJCWMgPSBkaWdpdHRvaW50X2woYywg bG9jKTsKKwkJZWxzZQorI2VuZGlmCisJCWlmIChjID49IEwnMCcgJiYgYyA8 PSBMJzknKQorCQkJYyAtPSBMJzAnOworCQllbHNlIGlmIChjID49IEwnQScg JiYgYyA8PSBMJ1onKQorCQkJYyAtPSBMJ0EnIC0gMTA7CisJCWVsc2UgaWYg KGMgPj0gTCdhJyAmJiBjIDw9IEwneicpCisJCQljIC09IEwnYScgLSAxMDsK KwkJZWxzZQorCQkJYnJlYWs7CisJCWlmIChjID49IGJhc2UpCisJCQlicmVh azsKKwkJaWYgKGFueSA8IDAgfHwgYWNjID4gY3V0b2ZmIHx8IChhY2MgPT0g Y3V0b2ZmICYmIGMgPiBjdXRsaW0pKQorCQkJYW55ID0gLTE7CisJCWVsc2Ug eworCQkJYW55ID0gMTsKKwkJCWFjYyAqPSBiYXNlOworCQkJYWNjICs9IGM7 CisJCX0KKwl9CisJaWYgKGFueSA8IDApIHsKKwkJYWNjID0gVUlOVE1BWF9N QVg7CisJCXJwdHItPl9lcnJubyA9IEVSQU5HRTsKKwl9IGVsc2UgaWYgKCFh bnkpIHsKK25vY29udjoKKwkJcnB0ci0+X2Vycm5vID0gRUlOVkFMOworCX0g ZWxzZSBpZiAobmVnKQorCQlhY2MgPSAtYWNjOworCWlmIChlbmRwdHIgIT0g TlVMTCkKKwkJKmVuZHB0ciA9ICh3Y2hhcl90ICopKGFueSA/IHMgLSAxIDog bnB0cik7CisJcmV0dXJuIChhY2MpOworfQordWludG1heF90Cit3Y3N0b3Vt YXhfbChjb25zdCB3Y2hhcl90ICogX19yZXN0cmljdCBucHRyLCB3Y2hhcl90 ICoqIF9fcmVzdHJpY3QgZW5kcHRyLAorICAgIAkgICAgaW50IGJhc2UsIGxv Y2FsZV90IGxvYykKK3sKKwlyZXR1cm4gX3djc3RvdW1heF9sKF9SRUVOVCwg bnB0ciwgZW5kcHRyLCBiYXNlLCBsb2MpOworfQordWludG1heF90Cit3Y3N0 b3VtYXgoY29uc3Qgd2NoYXJfdCogX19yZXN0cmljdCBucHRyLCB3Y2hhcl90 KiogX19yZXN0cmljdCBlbmRwdHIsIGludCBiYXNlKQoreworCXJldHVybiBf d2NzdG91bWF4X2woX1JFRU5ULCBucHRyLCBlbmRwdHIsIGJhc2UsIF9fZ2V0 X2N1cnJlbnRfbG9jYWxlKCkpOworfQotLSAKMi43LjQKCg== --001a113f0b82748ab3055584efff--