From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zimbra.cs.ucla.edu (zimbra.cs.ucla.edu [131.179.128.68]) by sourceware.org (Postfix) with ESMTPS id 868D53858D38 for ; Fri, 11 Nov 2022 09:02:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 868D53858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cs.ucla.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cs.ucla.edu Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A5A9B160037; Fri, 11 Nov 2022 01:02:23 -0800 (PST) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id YfXtWaVun3nX; Fri, 11 Nov 2022 01:02:21 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E4AF2160048; Fri, 11 Nov 2022 01:02:20 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.9.2 zimbra.cs.ucla.edu E4AF2160048 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=78364E5A-2AF3-11ED-87FA-8298ECA2D365; t=1668157340; bh=9leG+wmqOpePSiXVEnWlRZ1iImrvuUc6qLc+VE+51YM=; h=Content-Type:Message-ID:Date:MIME-Version:To:From:Subject; b=cUVuNc//Xu8fX5rdATeL45Bzxs2d2bEmiQTd1xo3vs8ev+hSzmN9Xi9yNq4NhqsRl 5BkDt502OE5lilJ0Wciic4LKHOU5v3HeA9jvbKspCQh4kvrSZt7MNobNeddApxWAn2 QTO+r5YO/DomqwTg6mpmaNxzJdOv/PQ2lPTmunlQ= X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 1OOdwhSiPzST; Fri, 11 Nov 2022 01:02:20 -0800 (PST) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A170B160037; Fri, 11 Nov 2022 01:02:20 -0800 (PST) Content-Type: multipart/mixed; boundary="------------iZFppy5DomPX1pjwvQvtAcNI" Message-ID: Date: Fri, 11 Nov 2022 01:02:20 -0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US To: Zack Weinberg , Sam James , Michael Orlitzky Cc: Autoconf Development , c-std-porting@lists.linux.dev, GCC Development References: <24ed5604-305a-4343-a1b6-a789e4723849@app.fastmail.com> <1d3109aa-c810-4c20-bcb9-d9d059d530a6@app.fastmail.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: How can Autoconf help with the transition to stricter compilation defaults? In-Reply-To: <1d3109aa-c810-4c20-bcb9-d9d059d530a6@app.fastmail.com> X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,JMQ_SPF_NEUTRAL,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------iZFppy5DomPX1pjwvQvtAcNI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2022-11-10 19:33, Zack Weinberg wrote: > It would be relatively easy for me to take a couple hours this weekend and put out a 2.72 release with everything that's already in trunk and nothing else. Anyone have reasons I _shouldn't_ do that? I don't have anything other than some doc updates, which I just now installed (see attached). >> Note that in autoconf git, we've also got >> https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=f6657256a37da44c987c04bf9cd75575dfca3b60 >> which is going to affect time_t efforts too > > I have not been following the y2038 work closely. Is it going to affect things in a good way or a bad way?? Both. This matters only on 32-bit glibc platforms running atop Linux (and maybe Hurd; I haven't checked). On these platforms, time_t defaults to 32 bits which means programs stop working in the year 2038. But you can change time_t to be 64-bits if you compile with -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64. On other platforms, you don't need to worry about this stuff. The good news is that if an app uses AC_SYS_LARGEFILE (which most sane apps do), or uses the new macro AC_YEAR2038, it will keep working after the year 2038 on these platforms. The bad news is that if a library uses AC_SYS_LARGEFILE and/or AC_YEAR2038, and the library code is built without using configure's --disable-largefile option and is linked with a program that doesn't use AC_SYS_LARGEFILE or AC_YEAR2038 or equivalent, and if the library's ABI depends on time_t width, the program might not work. This is the same issue that AC_SYS_LARGEFILE has had with 32-bit off_t for years (as well as for a few more obscure times like ino_t); what's new is that the problem now occurs with time_t too. --------------iZFppy5DomPX1pjwvQvtAcNI Content-Type: text/x-patch; charset=UTF-8; name="0001-Modernize-and-regularize-doc-for-C89-etc.patch" Content-Disposition: attachment; filename="0001-Modernize-and-regularize-doc-for-C89-etc.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZjJhYWRkNzMxZDFjNWM1MjQ0Mzc2ODNhNGEzMTM1YWVkM2ZiYTBiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDExIE5vdiAyMDIyIDAwOjI4OjQ5IC0wODAwClN1YmplY3Q6IFtQQVRD SF0gTW9kZXJuaXplIGFuZCByZWd1bGFyaXplIGRvYyBmb3IgQzg5IGV0Yy4KTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkluIGRvY3VtZW50YXRpb24gYW5kIGNvbW1l bnRzLCBwcmVmZXIgdGhlIG1vcmUtY29tbW9uIOKAnEM4OeKAnSB0byB0aGUKZXF1aXZhbGVu dCDigJxDOTDigJ0sIGFuZCB1c2UgMi1kaWdpdCB5ZWFycyBmb3IgQyBzdGFuZGFyZHMgYXMg dGhhdOKAmXMKY29tbW9uIHVzYWdlLiAgUmVtb3ZlIHNvbWUgY29uZnVzaW5nIG9sZCBkb2Mg Zm9yIHByZS1DODkgc3lzdGVtcywKYXMgQXV0b2NvbmYgYXNzdW1lcyBDODkgb3IgbGF0ZXIu ICBNZW50aW9uIEMxNyBhbmQgQzIzIGJyaWVmbHkuCkltcHJvdmUgZG9jIGZvciBtYWxsb2Ms IHJlYWxsb2MuCi0tLQogTkVXUyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9h dXRvY29uZi50ZXhpICAgICAgIHwgMTU5ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIGxpYi9hdXRvY29uZi9oZWFkZXJzLm00IHwgIDE0ICsrLS0KIDMgZmls ZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgMTE4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IGQxN2UzMzlhLi4xZjY4N2E4YiAxMDA2NDQKLS0t IGEvTkVXUworKysgYi9ORVdTCkBAIC01Myw3ICs1Myw3IEBAIEdOVSBBdXRvY29uZiBORVdT IC0gVXNlciB2aXNpYmxlIGNoYW5nZXMuCiAgIFRoZXNlIG1hY3JvcyBhcmUgbm93IG9ic29s ZXNjZW50LCBhcyBwcm9ncmFtcyBjYW4gc2ltcGx5IGluY2x1ZGUKICAgc3RkYm9vbC5oIHVu Y29uZGl0aW9uYWxseS4gIElmIHlvdSB1c2UgdGhlc2UgbWFjcm9zLCB0aGV5IG5vdyBhY2Nl cHQKICAgYSBzdGRib29sLmggdGhhdCBleGlzdHMgYnV0IGRvZXMgbm90aGluZywgc28gbG9u ZyBhcyDigJhib29s4oCZLCDigJh0cnVl4oCZLAotICBhbmQg4oCYZmFsc2XigJkgd29yayBh bnl3YXkuICBUaGlzIGlzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQyAyMDIzIGFuZAorICBh bmQg4oCYZmFsc2XigJkgd29yayBhbnl3YXkuICBUaGlzIGlzIGZvciBjb21wYXRpYmlsaXR5 IHdpdGggQzIzIGFuZAogICB3aXRoIEMrKy4KIAogKioqIEFDX1BST0dfTUtESVJfUCBub3cg ZmFsbHMgYmFjayBvbiBwbGFpbiAnbWtkaXIgLXAnLgpkaWZmIC0tZ2l0IGEvZG9jL2F1dG9j b25mLnRleGkgYi9kb2MvYXV0b2NvbmYudGV4aQppbmRleCBlZDMzN2ZkNi4uN2FlOGNhNjQg MTAwNjQ0Ci0tLSBhL2RvYy9hdXRvY29uZi50ZXhpCisrKyBiL2RvYy9hdXRvY29uZi50ZXhp CkBAIC00MDQ0LDcgKzQwNDQsNyBAQCBwcmV2aW91cyB0ZXN0cywgc28gZm9yIGV4YW1wbGUg b25lIG1heSB3cml0ZQogaWYgQGZpbGV7c3lzL3RpbWUuaH0gaGFzIGFscmVhZHkgYmVlbiB0 ZXN0ZWQgZm9yLgogCiBBbGwgaG9zdGVkIGVudmlyb25tZW50cyB0aGF0IGFyZSBzdGlsbCBv ZiBpbnRlcmVzdCBmb3IgcG9ydGFibGUgY29kZQotcHJvdmlkZSBhbGwgb2YgdGhlIGhlYWRl cnMgc3BlY2lmaWVkIGluIElTTyBDOTAgKGFzIGFtZW5kZWQgaW4gMTk5NSk6Citwcm92aWRl IGFsbCBvZiB0aGUgaGVhZGVycyBzcGVjaWZpZWQgaW4gQzg5IChhcyBhbWVuZGVkIGluIDE5 OTUpOgogQGZpbGV7YXNzZXJ0Lmh9LCBAZmlsZXtjdHlwZS5ofSwgQGZpbGV7ZXJybm8uaH0s IEBmaWxle2Zsb2F0Lmh9LAogQGZpbGV7aXNvNjQ2Lmh9LCBAZmlsZXtsaW1pdHMuaH0sIEBm aWxle2xvY2FsZS5ofSwgQGZpbGV7bWF0aC5ofSwKIEBmaWxle3NldGptcC5ofSwgQGZpbGV7 c2lnbmFsLmh9LCBAZmlsZXtzdGRhcmcuaH0sIEBmaWxle3N0ZGRlZi5ofSwKQEAgLTQwNTIs MTMgKzQwNTIsMTQgQEAgcHJvdmlkZSBhbGwgb2YgdGhlIGhlYWRlcnMgc3BlY2lmaWVkIGlu IElTTyBDOTAgKGFzIGFtZW5kZWQgaW4gMTk5NSk6CiBAZmlsZXt3Y2hhci5ofSwgYW5kIEBm aWxle3djdHlwZS5ofS4gIE1vc3QgcHJvZ3JhbXMgY2FuIHNhZmVseSBpbmNsdWRlCiB0aGVz ZSBoZWFkZXJzIHVuY29uZGl0aW9uYWxseS4gIEFsbCBvdGhlciBoZWFkZXJzLCBpbmNsdWRp bmcgYWxsIGhlYWRlcnMKIGZyb20gbGF0ZXIgcmV2aXNpb25zIG9mIHRoZSBDIHN0YW5kYXJk LCBuZWVkIHRvIGJlIHRlc3RlZCBmb3IKK2lmIHlvdXIgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0 byBiZSBwb3J0YWJsZSB0byBDODkKIChAcHhyZWZ7SGVhZGVyIEZpbGVzfSkuCiAKIElmIHlv dXIgcHJvZ3JhbSBuZWVkcyB0byBiZSBwb3J0YWJsZSB0byBhIEBlbXBoe2ZyZWVzdGFuZGlu Z30KIGVudmlyb25tZW50LCBzdWNoIGFzIGFuIGVtYmVkZGVkIE9TIHRoYXQgZG9lc24ndCBw cm92aWRlIGFsbCBvZiB0aGUKLWZhY2lsaXRpZXMgb2YgdGhlIEM5MCBzdGFuZGFyZCBsaWJy YXJ5LCB5b3UgbWF5IG5lZWQgdG8gdGVzdCBmb3Igc29tZSBvZgorZmFjaWxpdGllcyBvZiB0 aGUgQzg5IHN0YW5kYXJkIGxpYnJhcnksIHlvdSBtYXkgbmVlZCB0byB0ZXN0IGZvciBzb21l IG9mCiB0aGUgYWJvdmUgaGVhZGVycyBhcyB3ZWxsLiAgTm90ZSB0aGF0IG1hbnkgQXV0b2Nv bmYgbWFjcm9zIGludGVybmFsbHkKLWFzc3VtZSB0aGF0IHRoZSBjb21wbGV0ZSBzZXQgb2Yg QzkwIGhlYWRlcnMgYXJlIGF2YWlsYWJsZS4KK2Fzc3VtZSB0aGF0IHRoZSBjb21wbGV0ZSBz ZXQgb2YgQzg5IGhlYWRlcnMgYXJlIGF2YWlsYWJsZS4KIAogTW9zdCBnZW5lcmljIG1hY3Jv cyB1c2UgdGhlIGZvbGxvd2luZyBtYWNybyB0byBwcm92aWRlIGEgZGVmYXVsdCBzZXQKIG9m IGluY2x1ZGVzOgpAQCAtNDgzNCwxMiArNDgzNSw2IEBAIGRlY2xhcmVkLCBkdWUgdG8gQysr IHByb2JsZW1zIG9mIHNvbWUgc29ydCBvciBhbm90aGVyLiAgRm9yIHRoaXMgcmVhc29uCiB3 ZSBzdWdnZXN0IHRoYXQgdGVzdCBwcm9ncmFtcyBub3QgaW52b2tlIEBjb2Rle2V4aXR9LCBi dXQgcmV0dXJuIGZyb20KIEBjb2Rle21haW59IGluc3RlYWQuCiAKLUBpdGVtIEBjb2Rle2Zy ZWV9Ci1AYyBAZnVpbmRleCBmcmVlCi1AcHJpbmRleCBAY29kZXtmcmVlfQotVGhlIEMgc3Rh bmRhcmQgc2F5cyBhIGNhbGwgQGNvZGV7ZnJlZSAoTlVMTCl9IGRvZXMgbm90aGluZywgYnV0 Ci1zb21lIG9sZCBzeXN0ZW1zIGRvbid0IHN1cHBvcnQgdGhpcyAoZS5nLiwgTmV4dFN0ZXAp LgotCiBAaXRlbSBAY29kZXtpc2luZn0KIEBpdGVteCBAY29kZXtpc25hbn0KIEBjIEBmdWlu ZGV4IGlzaW5mCkBAIC00ODk5LDcgKzQ4OTQsNyBAQCBhbnl3YXksIHNvIGl0J3MgcHJvYmFi bHkgbm90IHdvcnRoIHdvcnJ5aW5nIGFib3V0LgogQGl0ZW0gQGNvZGV7bWFsbG9jfQogQGMg QGZ1aW5kZXggbWFsbG9jCiBAcHJpbmRleCBAY29kZXttYWxsb2N9Ci1UaGUgQyBzdGFuZGFy ZCBzYXlzIGEgY2FsbCBAY29kZXttYWxsb2MgKDApfSBpcyBpbXBsZW1lbnRhdGlvbgorVGhl IEMgc3RhbmRhcmQgc2F5cyBhIHN1Y2Nlc3NmdWwgY2FsbCBAY29kZXttYWxsb2MgKDApfSBp cyBpbXBsZW1lbnRhdGlvbgogZGVwZW5kZW50LiAgSXQgY2FuIHJldHVybiBlaXRoZXIgQGNv ZGV7TlVMTH0gb3IgYSBuZXcgbm9uLW51bGwgcG9pbnRlci4KIFRoZSBsYXR0ZXIgaXMgbW9y ZSBjb21tb24gKGUuZy4sIHRoZSBHTlUgQyBMaWJyYXJ5KSBidXQgaXMgYnkKIG5vIG1lYW5z IHVuaXZlcnNhbC4gIEBjb2Rle0FDX0ZVTkNfTUFMTE9DfQpAQCAtNDkyNywyNSArNDkyMiwy MCBAQCBlbnZpcm9ubWVudCwgcmF0aGVyIHRoYW4gaW5zZXJ0aW5nIGl0IHdpdGggYW4gZW1w dHkgdmFsdWUuCiBAaXRlbSBAY29kZXtyZWFsbG9jfQogQGMgQGZ1aW5kZXggcmVhbGxvYwog QHByaW5kZXggQGNvZGV7cmVhbGxvY30KLVRoZSBDIHN0YW5kYXJkIHNheXMgYSBjYWxsIEBj b2Rle3JlYWxsb2MgKE5VTEwsIHNpemUpfSBpcyBlcXVpdmFsZW50Ci10byBAY29kZXttYWxs b2MgKHNpemUpfSwgYnV0IHNvbWUgb2xkIHN5c3RlbXMgZG9uJ3Qgc3VwcG9ydCB0aGlzIChl LmcuLAotTmV4dFN0ZXApLgorSXQgaXMgcHJvYmxlbWF0aWMgdG8gY2FsbCBAY29kZXtyZWFs bG9jfSB3aXRoIGEgemVybyBzaXplLgorVGhlIEMgc3RhbmRhcmQgc2F5cyBAY29kZXtyZWFs bG9jIChOVUxMLCAwKX0gaXMgZXF1aXZhbGVudCB0bworQGNvZGV7bWFsbG9jICgwKX0sIHdo aWNoIG1lYW5zIG9uZSBjYW5ub3QgcG9ydGFibHkgdGVsbCB3aGV0aGVyIHRoZSBjYWxsCito YXMgc3VjY2VlZGVkIGlmIGl0IHJldHVybnMgYSBudWxsIHBvaW50ZXIuICBJZiBAY29kZXtw dHJ9IGlzIG5vbi1udWxsLAordGhlIEMgc3RhbmRhcmQgc2F5cyBAY29kZXtyZWFsbG9jIChw dHIsIDApfSBoYXMgdW5kZWZpbmVkIGJlaGF2aW9yLgorCitUaGUgQGNvZGV7QUNfRlVOQ19S RUFMTE9DfSBtYWNybyBhdm9pZHMgc29tZSBvZiB0aGVzZSBwb3J0YWJpbGl0eSBpc3N1ZXMs CithbmQgdGhlIEdudWxpYiBtb2R1bGUgQGNvZGV7cmVhbGxvYy1nbnV9IGF2b2lkcyBtb3Jl IG9mIHRoZW0uCitAeHJlZntQYXJ0aWN1bGFyIEZ1bmN0aW9uc30uCiAKIEBpdGVtIEBjb2Rl e3NpZ25hbH0gaGFuZGxlcgogQGMgQGZ1aW5kZXggc2lnbmFsCiBAcHJpbmRleCBAY29kZXtz aWduYWx9CiBAcHJpbmRleCBAY29kZXtzaWdhY3Rpb259Ci1Ob3JtYWxseSBAY29kZXtzaWdu YWx9IHRha2VzIGEgaGFuZGxlciBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHR5cGUgb2YKLUBj b2Rle3ZvaWR9LCBidXQgc29tZSBvbGQgc3lzdGVtcyByZXF1aXJlZCBAY29kZXtpbnR9IGlu c3RlYWQuICBBbnkKLWFjdHVhbCBAY29kZXtpbnR9IHZhbHVlIHJldHVybmVkIGlzIG5vdCB1 c2VkOyB0aGlzIGlzIG9ubHkgYQotZGlmZmVyZW5jZSBpbiB0aGUgZnVuY3Rpb24gcHJvdG90 eXBlIGRlbWFuZGVkLgotCi1BbGwgc3lzdGVtcyB3ZSBrbm93IG9mIGluIGN1cnJlbnQgdXNl IHJldHVybiBAY29kZXt2b2lkfS4gIFRoZQotQGNvZGV7aW50fSB3YXMgdG8gc3VwcG9ydCBL JlIgQywgd2hlcmUgb2YgY291cnNlIEBjb2Rle3ZvaWR9IGlzIG5vdAotYXZhaWxhYmxlLiAg VGhlIG9ic29sZXRlIG1hY3JvIEBjb2Rle0FDX1RZUEVfU0lHTkFMfQotKEBweHJlZntBQ19U WVBFX1NJR05BTH0pIGNhbiBiZSB1c2VkIHRvIGVzdGFibGlzaCB0aGUgY29ycmVjdCB0eXBl IGluCi1hbGwgY2FzZXMuCi0KIEluIG1vc3QgY2FzZXMsIGl0IGlzIG1vcmUgcm9idXN0IHRv IHVzZSBAY29kZXtzaWdhY3Rpb259IHdoZW4gaXQgaXMKIGF2YWlsYWJsZSwgcmF0aGVyIHRo YW4gQGNvZGV7c2lnbmFsfS4KIApAQCAtNDk1NywzNCArNDk0NywyMiBAQCBhdmFpbGFibGUs IHJhdGhlciB0aGFuIEBjb2Rle3NpZ25hbH0uCiBJbiBDOTkgYW5kIGxhdGVyLCBpZiB0aGUg b3V0cHV0IGFycmF5IGlzbid0IGJpZyBlbm91Z2gKIGFuZCBpZiBubyBvdGhlciBlcnJvcnMg b2NjdXIsIEBjb2Rle3NucHJpbnRmfSBhbmQgQGNvZGV7dnNucHJpbnRmfQogdHJ1bmNhdGUg dGhlIG91dHB1dCBhbmQgcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBvdWdodCB0 byBoYXZlCi1iZWVuIHByb2R1Y2VkLiAgU29tZSBvbGRlciBzeXN0ZW1zIHJldHVybiB0aGUg dHJ1bmNhdGVkIGxlbmd0aCAoZS5nLiwKK2JlZW4gcHJvZHVjZWQuICBTb21lIGFuY2llbnQg c3lzdGVtcyByZXR1cm5lZCB0aGUgdHJ1bmNhdGVkIGxlbmd0aCAoZS5nLiwKIEdOVSBDIExp YnJhcnkgMi4wLnggb3IgSVJJWCA2LjUpLCBhbmQgc29tZSBhIG5lZ2F0aXZlIHZhbHVlCiAo ZS5nLiwgZWFybGllciBHTlUgQyBMaWJyYXJ5IHZlcnNpb25zKS4KIAotQGl0ZW0gQGNvZGV7 c3NjYW5mfQotQGMgQGZ1aW5kZXggc3NjYW5mCi1AcHJpbmRleCBAY29kZXtzc2NhbmZ9Ci1P biB2YXJpb3VzIG9sZCBzeXN0ZW1zLCBlLmcuLCBIUC1VWCA5LCBAY29kZXtzc2NhbmZ9IHJl cXVpcmVzCi10aGF0IGl0cwotaW5wdXQgc3RyaW5nIGJlIHdyaXRhYmxlICh0aG91Z2ggaXQg ZG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgaXQpLiAgVGhpcwotY2FuIGJlIGEgcHJvYmxlbSB3 aGVuIHVzaW5nIEBjb21tYW5ke2djY30gc2luY2UgaXQgbm9ybWFsbHkgcHV0cwotY29uc3Rh bnQgc3RyaW5ncyBpbiByZWFkLW9ubHkgbWVtb3J5IChAcHhyZWZ7SW5jb21wYXRpYmlsaXRp ZXMsCi1JbmNvbXBhdGliaWxpdGllcyBvZiBHQ0MsICwgZ2NjLCBVc2luZyBhbmQKLVBvcnRp bmcgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0aW9ufSkuICBBcHBhcmVudGx5IGluIHNvbWUg Y2FzZXMgZXZlbgotaGF2aW5nIGZvcm1hdCBzdHJpbmdzIHJlYWQtb25seSBjYW4gYmUgYSBw cm9ibGVtLgotCiBAaXRlbSBAY29kZXtzdHJlcnJvcl9yfQogQGMgQGZ1aW5kZXggc3RyZXJy b3JfcgogQHByaW5kZXggQGNvZGV7c3RyZXJyb3Jfcn0KIFBvc2l4IHNwZWNpZmllcyB0aGF0 IEBjb2Rle3N0cmVycm9yX3J9IHJldHVybnMgYW4gQGNvZGV7aW50fSwgYnV0IG1hbnkKLXN5 c3RlbXMgKGUuZy4sIEdOVSBDIExpYnJhcnkgdmVyc2lvbiAyLjIuNCkgcHJvdmlkZSBhCitz eXN0ZW1zIChlLmcuLCBHTlUgQyBMaWJyYXJ5IHZlcnNpb24gMi4zNikgcHJvdmlkZSBhCiBk aWZmZXJlbnQgdmVyc2lvbiByZXR1cm5pbmcgYSBAY29kZXtjaGFyICp9LiAgQGNvZGV7QUNf RlVOQ19TVFJFUlJPUl9SfQogY2FuIGRldGVjdCB3aGljaCBpcyBpbiB1c2UgKEBweHJlZntQ YXJ0aWN1bGFyIEZ1bmN0aW9uc30pLgogCiBAaXRlbSBAY29kZXtzdHJubGVufQogQGMgQGZ1 aW5kZXggc3RybmxlbgogQHByaW5kZXggQGNvZGV7c3Rybmxlbn0KLUFJWCA0LjMgcHJvdmlk ZXMgYSBicm9rZW4gdmVyc2lvbiB3aGljaCBwcm9kdWNlcyB0aGUKK0FJWCA0LjMgcHJvdmlk ZWQgYSBicm9rZW4gdmVyc2lvbiB3aGljaCBwcm9kdWNlcyB0aGUKIGZvbGxvd2luZyByZXN1 bHRzOgogCiBAZXhhbXBsZQpAQCAtNTA0Niw5ICs1MDI0LDggQEAgdmFsdWUgYmFjayBpbiB0 aGUgY2FsbGVyIChlLmcuLCBAY29kZXt2c25wcmludGZ9IGluIHRoZSBHTlUgQyBMaWJyYXJ5 CiBAaXRlbSBTaWduZWQgQGNvZGV7Pj59CiBOb3JtYWxseSB0aGUgQyBAY29kZXs+Pn0gcmln aHQgc2hpZnQgb2YgYSBzaWduZWQgdHlwZSByZXBsaWNhdGVzIHRoZQogaGlnaCBiaXQsIGdp dmluZyBhIHNvLWNhbGxlZCBgYGFyaXRobWV0aWMnJyBzaGlmdC4gIEJ1dCBjYXJlIHNob3Vs ZCBiZQotdGFrZW4gc2luY2UgU3RhbmRhcmQgQyBkb2Vzbid0IHJlcXVpcmUgdGhhdCBiZWhh dmlvci4gIE9uIHRob3NlCi1mZXcgcHJvY2Vzc29ycyB3aXRob3V0IGEgbmF0aXZlIGFyaXRo bWV0aWMgc2hpZnQgKGZvciBpbnN0YW5jZSBDcmF5Ci12ZWN0b3Igc3lzdGVtcykgemVybyBi aXRzIG1heSBiZSBzaGlmdGVkIGluLCB0aGUgc2FtZSBhcyBhIHNoaWZ0IG9mIGFuCit0YWtl biBzaW5jZSBTdGFuZGFyZCBDIGRvZXNuJ3QgcmVxdWlyZSB0aGF0IGJlaGF2aW9yLiAgT24g YSBmZXcgcGxhdGZvcm1zCisoZS5nLiwgQ3JheSBDIGJ5IGRlZmF1bHQpIHplcm8gYml0cyBh cmUgc2hpZnRlZCBpbiwgdGhlIHNhbWUgYXMgYSBzaGlmdCBvZiBhbgogdW5zaWduZWQgdHlw ZS4KIAogQGl0ZW0gSW50ZWdlciBAY29kZXsvfQpAQCAtNTI4MCw4ICs1MjU3LDcgQEAgYW5k IGFsc28gY29udGFpbnMgd29ya2Fyb3VuZHMgZm9yIG90aGVyIHBvcnRhYmlsaXR5IHByb2Js ZW1zIG9mCiBAYyBAZnVpbmRleCBnZXRncm91cHMKIEBwcmluZGV4IEBjb2Rle2dldGdyb3Vw c30KIEBjYWluZGV4IGZ1bmNfZ2V0Z3JvdXBzX3dvcmtzCi1JZiB0aGUgQGNvZGV7Z2V0Z3Jv dXBzfSBmdW5jdGlvbiBpcyBhdmFpbGFibGUgYW5kIHdvcmtzICh1bmxpa2Ugb24KLVVsdHJp eCA0LjMgYW5kIE5lWFRzdGVwIDMuMiwgd2hlcmUgQHNhbXB7Z2V0Z3JvdXBzICgwLCAwKX0g YWx3YXlzIGZhaWxzKSwKK0lmIHRoZSBAY29kZXtnZXRncm91cHN9IGZ1bmN0aW9uIGlzIGF2 YWlsYWJsZSBhbmQgd29ya3MsCiBkZWZpbmUgQGNvZGV7SEFWRV9HRVRHUk9VUFN9LiAgU2V0 IEBjb2Rle0dFVEdST1VQU19MSUJTfSB0byBhbnkgbGlicmFyaWVzCiBuZWVkZWQgdG8gZ2V0 IHRoYXQgZnVuY3Rpb24uICBUaGlzIG1hY3JvIHJ1bnMgQGNvZGV7QUNfVFlQRV9HRVRHUk9V UFN9LgogCkBAIC02MTA5LDcgKzYwODUsNyBAQCBhbmQgY2FjaGUgdGhlIHJlc3VsdCBpbiB0 aGUgQGNvZGV7YWNfY3ZfaGVhZGVyX3N0ZGJvb2xfaH0gdmFyaWFibGUuCiBJZiB0aGUgdHlw ZSBAY29kZXtfQm9vbH0gaXMgZGVmaW5lZCwgZGVmaW5lIEBjb2Rle0hBVkVfX0JPT0x9IHRv IDEuCiAKIFRoaXMgbWFjcm8gaXMgb2Jzb2xlc2NlbnQsIGFzIGFsbCBjdXJyZW50IEMgY29t cGlsZXJzIGhhdmUgQGZpbGV7c3RkYm9vbC5ofSwKLWEgaGVhZGVyIHRoYXQgaXMgaXRzZWxm IG9ic29sZXNjZW50IGFzIG9mIEMgMjAyMy4KK2EgaGVhZGVyIHRoYXQgaXMgaXRzZWxmIG9i c29sZXNjZW50IGFzIG9mIEMyMy4KIAogVGhpcyBtYWNybyBpcyBpbnRlbmRlZCBmb3IgdXNl IGJ5IEdudWxpYiAoQHB4cmVme0dudWxpYn0pIGFuZCBvdGhlcgogcGFja2FnZXMgdGhhdCBz dXBwbHkgYSBzdWJzdGl0dXRlIEBmaWxle3N0ZGJvb2wuaH0gb24gcGxhdGZvcm1zIGxhY2tp bmcKQEAgLTYyNzYsNDAgKzYyNTIsMTEgQEAgSWYgQGZpbGV7c3RkYm9vbC5ofSBleGlzdHMg YW5kIGNvbmZvcm1zIHRvIEM5OSBvciBsYXRlciwgZGVmaW5lCiBAY29kZXtIQVZFX19CT09M fSB0byAxLgogCiBUaGlzIG1hY3JvIGlzIG9ic29sZXNjZW50LCBhcyBhbGwgY3VycmVudCBD IGNvbXBpbGVycyBoYXZlCi1AZmlsZXtzdGRib29sLmh9LCBhIGhlYWRlciB0aGF0IGlzIGl0 c2VsZiBvYnNvbGVzY2VudCBhcyBvZiBDIDIwMjMuCitAZmlsZXtzdGRib29sLmh9LCBhIGhl YWRlciB0aGF0IGlzIGl0c2VsZiBvYnNvbGVzY2VudCBhcyBvZiBDMjMuCiBOb3dhZGF5cyBw cm9ncmFtcyB0aGF0IG5lZWQgQGNvZGV7Ym9vbH0sIEBjb2Rle3RydWV9IGFuZCBAY29kZXtm YWxzZX0KIGNhbiBpbmNsdWRlIEBmaWxle3N0ZGJvb2wuaH0gdW5jb25kaXRpb25hbGx5LCB3 aXRob3V0IHVzaW5nCiBAY29kZXtBQ19IRUFERVJfU1REQk9PTH0sIGFuZCBpZiBzdWNoIGEg cHJvZ3JhbSBuZWVkcyB0byBiZSBwb3J0YWJsZQotb25seSB0byBDIDIwMjMgb3IgbGF0ZXIg aXQgbmVlZCBub3QgZXZlbiBpbmNsdWRlIEBmaWxle3N0ZGJvb2wuaH0uCi0KLVRoaXMgbWFj cm8gd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgZm9yIHByb2dyYW1zIHRoYXQgbmVlZGVkIHRv IGJlCi1wb3J0YWJsZSB0byBDODkuICBUaGVzZSBvYnNvbGV0ZSBwcm9ncmFtcyBjb3VsZCB1 c2UgdGhlIGZvbGxvd2luZyBjb2RlLAotc28gbG9uZyBhcyB0aGV5IGFzc2lnbmVkIG9ubHkg MCBvciAxIHRvIEBjb2Rle2Jvb2x9IHZhcmlhYmxlczoKLQotQGV4YW1wbGUKLUBncm91cAot I2lmZGVmIEhBVkVfU1REQk9PTF9ICi0jIGluY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbHNlCi0j IGlmbmRlZiBIQVZFX19CT09MCi0jICBpZmRlZiBfX2NwbHVzcGx1cwotdHlwZWRlZiBib29s IF9Cb29sOwotIyAgZWxzZQotIyAgIGRlZmluZSBfQm9vbCBzaWduZWQgY2hhcgotIyAgZW5k aWYKLSMgZW5kaWYKLSMgZGVmaW5lIGJvb2wgX0Jvb2wKLSMgZGVmaW5lIGZhbHNlIDAKLSMg ZGVmaW5lIHRydWUgMQotIyBkZWZpbmUgX19ib29sX3RydWVfZmFsc2VfYXJlX2RlZmluZWQg MQotI2VuZGlmCi1AZW5kIGdyb3VwCi1AZW5kIGV4YW1wbGUKLQotQWx0ZXJuYXRpdmVseSBp ZiB5b3Ugc3RpbGwgbmVlZCBwb3J0YWJpbGl0eSB0byBDODkgeW91IGNhbiB1c2UgdGhlCi1A c2FtcHtzdGRib29sfSBwYWNrYWdlIG9mIEdudWxpYiAoQHB4cmVme0dudWxpYn0pLiAgSXQg bGV0cyBjb2RlIHNheSBqdXN0Ci1AY29kZXsjaW5jbHVkZSA8c3RkYm9vbC5oPn0sIGFuZCBp dCBhZGRzIHN1cHBvcnQgZm9yIGxlc3MtY29tbW9uCi1wbGF0Zm9ybXMuCitvbmx5IHRvIEMy MyBvciBsYXRlciBpdCBuZWVkIG5vdCBldmVuIGluY2x1ZGUgQGZpbGV7c3RkYm9vbC5ofS4K IAogVGhpcyBtYWNybyBjYWNoZXMgaXRzIHJlc3VsdCBpbiB0aGUgQGNvZGV7YWNfY3ZfaGVh ZGVyX3N0ZGJvb2xfaH0KIHZhcmlhYmxlLgpAQCAtNjMyNywxMCArNjI3NCwxMCBAQCBkb2Vz IG5vdC4KIAogVGhpcyBtYWNybyBpcyBvYnNvbGVzY2VudC4gIEl0cyBzb2xlIGVmZmVjdCBp cyB0byBtYWtlIHN1cmUgdGhhdCBhbGwgdGhlCiBoZWFkZXJzIHRoYXQgYXJlIGluY2x1ZGVk IGJ5IEBjb2Rle0FDX0lOQ0xVREVTX0RFRkFVTFR9IChAcHhyZWZ7RGVmYXVsdAotSW5jbHVk ZXN9KSwgYnV0IG5vdCBwYXJ0IG9mIElTTyBDOTAsIGhhdmUgYmVlbiBjaGVja2VkIGZvci4K K0luY2x1ZGVzfSksIGJ1dCBub3QgcGFydCBvZiBDODksIGhhdmUgYmVlbiBjaGVja2VkIGZv ci4KIAogQWxsIGhvc3RlZCBlbnZpcm9ubWVudHMgdGhhdCBhcmUgc3RpbGwgb2YgaW50ZXJl c3QgZm9yIHBvcnRhYmxlIGNvZGUKLXByb3ZpZGUgYWxsIG9mIHRoZSBoZWFkZXJzIHNwZWNp ZmllZCBpbiBJU08gQzkwIChhcyBhbWVuZGVkIGluIDE5OTUpLgorcHJvdmlkZSBhbGwgb2Yg dGhlIGhlYWRlcnMgc3BlY2lmaWVkIGluIEM4OSAoYXMgYW1lbmRlZCBpbiAxOTk1KS4KIEBl bmQgZGVmbWFjCiAKIEBkZWZtYWMgQUNfSEVBREVSX1NZU19XQUlUCkBAIC02ODUyLDcgKzY3 OTksNyBAQCBJZiBAZmlsZXtzdGRpbnQuaH0gb3IgQGZpbGV7aW50dHlwZXMuaH0gZG9lcyBu b3QgZGVmaW5lIHRoZSB0eXBlCiBpbnRlZ2VyIHR5cGUgdGhhdCBpcyBleGFjdGx5IDggYml0 cyB3aWRlIGFuZCB0aGF0IHVzZXMgdHdvJ3MgY29tcGxlbWVudAogcmVwcmVzZW50YXRpb24s IGlmIHN1Y2ggYSB0eXBlIGV4aXN0cy4KIElmIHlvdSBhcmUgd29ycmllZCBhYm91dCBwb3J0 aW5nIHRvIGhvc3RzIHRoYXQgbGFjayBzdWNoIGEgdHlwZSwgeW91IGNhbgotdXNlIHRoZSBy ZXN1bHRzIG9mIHRoaXMgbWFjcm8gaW4gQzg5LW9yLWxhdGVyIGNvZGUgYXMgZm9sbG93czoK K3VzZSB0aGUgcmVzdWx0cyBvZiB0aGlzIG1hY3JvIGFzIGZvbGxvd3M6CiAKIEBleGFtcGxl CiAjaWYgSEFWRV9TVERJTlRfSApAQCAtNzI3Niw4ICs3MjIzLDcgQEAgc3VpdGFibGUgZm9y IGEgdmFyaWFibGUgbmFtZSBtYXBwZWQgdG8gdW5kZXJzY29yZXMuCiBTdG9yZSBpbnRvIHRo ZSBzaGVsbCB2YXJpYWJsZSBAdmFye3Zhcn0gdGhlIHZhbHVlIG9mIHRoZSBpbnRlZ2VyCiBA dmFye2V4cHJlc3Npb259LiAgVGhlCiB2YWx1ZSBzaG91bGQgZml0IGluIGFuIGluaXRpYWxp emVyIGluIGEgQyB2YXJpYWJsZSBvZiB0eXBlIEBjb2Rle3NpZ25lZAotbG9uZ30uICBUbyBz dXBwb3J0IGNyb3NzIGNvbXBpbGF0aW9uIChpbiB3aGljaCBjYXNlLCB0aGUgbWFjcm8gb25s eSB3b3JrcyBvbgotaG9zdHMgdGhhdCB1c2UgdHdvcy1jb21wbGVtZW50IGFyaXRobWV0aWMp LCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZXZhbHVhdGUKK2xvbmd9LiAgVG8gc3VwcG9y dCBjcm9zcyBjb21waWxhdGlvbiwgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGV2YWx1YXRl CiB0aGUgZXhwcmVzc2lvbiBhdCBjb21waWxlLXRpbWUuICBJZiBubyBAdmFye2luY2x1ZGVz fSBhcmUgc3BlY2lmaWVkLCB0aGUKIGRlZmF1bHQgaW5jbHVkZXMgYXJlIHVzZWQgKEBweHJl ZntEZWZhdWx0IEluY2x1ZGVzfSkuCiAKQEAgLTc0NzUsOCArNzQyMSw5IEBAIHBlcnNvbiBi dWlsZGluZyB0aGUgcGFja2FnZS4gIEB4cmVme1ByZXNldCBPdXRwdXQgVmFyaWFibGVzfS4p CiAKIElmIG5lY2Vzc2FyeSwgb3B0aW9ucyBhcmUgYWRkZWQgdG8gQGNvZGV7Q0N9IHRvIGVu YWJsZSBzdXBwb3J0IGZvcgogSVNPIFN0YW5kYXJkIEMgZmVhdHVyZXMgd2l0aCBleHRlbnNp b25zLCBwcmVmZXJyaW5nIHRoZSBuZXdlc3QgZWRpdGlvbgotb2YgdGhlIEMgc3RhbmRhcmQg dGhhdCBpcyBzdXBwb3J0ZWQuICBDdXJyZW50bHkgdGhlIG5ld2VzdCBlZGl0aW9uCi1BdXRv Y29uZiBrbm93cyBob3cgdG8gZGV0ZWN0IHN1cHBvcnQgZm9yIGlzIElTTyBDIDIwMTEuICBB ZnRlciBjYWxsaW5nCitvZiB0aGUgQyBzdGFuZGFyZCBmb3Igd2hpY2ggZGV0ZWN0aW9uIGlz IHN1cHBvcnRlZC4gIEN1cnJlbnRseSB0aGUKK25ld2VzdCBlZGl0aW9uIEF1dG9jb25mIGtu b3dzIGhvdyB0byBkZXRlY3Qgc3VwcG9ydCBmb3IgaXMgQzExLCBhcyB0aGVyZSBpcworbGl0 dGxlIHJlYXNvbiB0byBwcmVmZXIgQzE3IHRvIEMxMSwgYW5kIEMyMyBpcyBzdGlsbCB0b28g bmV3LiAgQWZ0ZXIgY2FsbGluZwogdGhpcyBtYWNybyB5b3UgY2FuIGNoZWNrIHdoZXRoZXIg dGhlIEMgY29tcGlsZXIgaGFzIGJlZW4gc2V0IHRvIGFjY2VwdAogc3RhbmRhcmQgQyBieSBp bnNwZWN0aW5nIHRoZSBzaGVsbCB2YXJpYWJsZSBAY29kZXthY19wcm9nX2NjX3N0ZGN9Lgog SXRzIHZhbHVlIHdpbGwgYmUgQHNhbXB7YzExfSwgQHNhbXB7Yzk5fSwgb3IgQHNhbXB7Yzg5 fSwgcmVzcGVjdGl2ZWx5LApAQCAtNzg3NCw3ICs3ODIxLDcgQEAgcGVyc29uIGJ1aWxkaW5n IHRoZSBwYWNrYWdlLiAgQHhyZWZ7UHJlc2V0IE91dHB1dCBWYXJpYWJsZXN9LikKIElmIG5l Y2Vzc2FyeSwgb3B0aW9ucyBhcmUgYWRkZWQgdG8gQGNvZGV7Q1hYfSB0byBlbmFibGUgc3Vw cG9ydCBmb3IKIElTTyBTdGFuZGFyZCBDKysgZmVhdHVyZXMgd2l0aCBleHRlbnNpb25zLCBw cmVmZXJyaW5nIHRoZSBuZXdlc3QgZWRpdGlvbgogb2YgdGhlIEMrKyBzdGFuZGFyZCB0aGF0 IGlzIHN1cHBvcnRlZC4gIEN1cnJlbnRseSB0aGUgbmV3ZXN0IGVkaXRpb24KLUF1dG9jb25m IGtub3dzIGhvdyB0byBkZXRlY3Qgc3VwcG9ydCBmb3IgaXMgSVNPIEMrKyAyMDExLiAgQWZ0 ZXIgY2FsbGluZworQXV0b2NvbmYga25vd3MgaG93IHRvIGRldGVjdCBzdXBwb3J0IGZvciBp cyBDKysxMS4gIEFmdGVyIGNhbGxpbmcKIHRoaXMgbWFjcm8sIHlvdSBjYW4gY2hlY2sgd2hl dGhlciB0aGUgQysrIGNvbXBpbGVyIGhhcyBiZWVuIHNldCB0bwogYWNjZXB0IHN0YW5kYXJk IEMrKyBieSBpbnNwZWN0aW5nIHRoZSBzaGVsbCB2YXJpYWJsZSBAY29kZXthY19wcm9nX2N4 eF9zdGRjeHh9LgogSXRzIHZhbHVlIHdpbGwgYmUgQHNhbXB7Y3h4MTF9IG9yIEBzYW1we2N4 eDk4fSwgcmVzcGVjdGl2ZWx5LApAQCAtOTQwMyw4ICs5MzUwLDggQEAgYWZ0ZXIgcnVubmlu ZyB0ZXN0IHByb2dyYW1zIGFuZCBpZiB0aGUgc2NyaXB0IGlzIGludGVycnVwdGVkLgogQG5v ZGUgVGVzdCBGdW5jdGlvbnMKIEBzdWJzZWN0aW9uIFRlc3QgRnVuY3Rpb25zCiAKLVRoZXNl IGRheXMgaXQncyBzYWZlIHRvIGFzc3VtZSBzdXBwb3J0IGZvciBmdW5jdGlvbiBwcm90b3R5 cGVzCi0oaW50cm9kdWNlZCBpbiBDODkpLgorRnVuY3Rpb25zIGluIHRlc3QgY29kZSBzaG91 bGQgdXNlIGZ1bmN0aW9uIHByb3RvdHlwZXMsIGludHJvZHVjZWQgaW4gQzg5CithbmQgcmVx dWlyZWQgaW4gQzIzLgogCiBGdW5jdGlvbnMgdGhhdCB0ZXN0IHByb2dyYW1zIGRlY2xhcmUg c2hvdWxkIGFsc28gYmUgY29uZGl0aW9uYWxpemVkIGZvcgogQysrLCB3aGljaCByZXF1aXJl cyBAc2FtcHtleHRlcm4gIkMifSBwcm90b3R5cGVzLiAgTWFrZSBzdXJlIHRvIG5vdApAQCAt MTkyMTAsMTAgKzE5MTU3LDEwIEBAIFRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIHByb2R1Y2Vk IGJ5IEBzYW1we2NjIGZvby5jfSwgY2FuIGJlCiBAZW5kIGl0ZW1pemUKIAogVGhlIEMgY29t cGlsZXIncyB0cmFkaXRpb25hbCBuYW1lIGlzIEBjb21tYW5ke2NjfSwgYnV0IG90aGVyIG5h bWVzIGxpa2UKLUBjb21tYW5ke2djY30gYXJlIGNvbW1vbi4gIFBvc2l4IDEwMDMuMS0yMDAx IGFuZCAxMDAzLjEtMjAwOCBzcGVjaWZ5IHRoZQorQGNvbW1hbmR7Z2NjfSBhcmUgY29tbW9u LiAgUG9zaXggMTAwMy4xLTIwMDEgdGhyb3VnaCAxMDAzLjEtMjAxNyBzcGVjaWZ5IHRoZQog bmFtZSBAY29tbWFuZHtjOTl9LCBidXQgb2xkZXIgUG9zaXggZWRpdGlvbnMgc3BlY2lmaWVk CiBAY29tbWFuZHtjODl9LCBmdXR1cmUgUE9TSVggc3RhbmRhcmRzIHdpbGwgbGlrZWx5IHNw ZWNpZnkKLUBjb21tYW5ke2MxMX0sIGFuZCBhbnl3YXkgdGhlc2Ugc3RhbmRhcmQgbmFtZXMg YXJlIHJhcmVseSB1c2VkIGluCitvdGhlciBjb21tYW5kcywgYW5kIGFueXdheSB0aGVzZSBz dGFuZGFyZCBuYW1lcyBhcmUgcmFyZWx5IHVzZWQgaW4KIHByYWN0aWNlLiAgVHlwaWNhbGx5 IHRoZSBDIGNvbXBpbGVyIGlzIGludm9rZWQgZnJvbSBtYWtlZmlsZXMgdGhhdCB1c2UKIEBz YW1weyQoQ0MpfSwgc28gdGhlIHZhbHVlIG9mIHRoZSBAc2FtcHtDQ30gbWFrZSB2YXJpYWJs ZSBzZWxlY3RzIHRoZQogY29tcGlsZXIgbmFtZS4KQEAgLTIxNjY1LDkgKzIxNjEyLDE0IEBA IEdDQywgZ2NjLCBVc2luZyB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24KIGZvciBhIGxp c3Qgb2YgQy1yZWxhdGVkIHN0YW5kYXJkcy4gIE1hbnkgcHJvZ3JhbXMgYWxzbyBhc3N1bWUg dGhlCiBAdXJlZntodHRwczovL0AvZW4ud2lraXBlZGlhLm9yZy9AL3dpa2kvQC9QT1NJWCwg UG9zaXggc3RhbmRhcmR9LgogCi1Tb21lIG9sZCBjb2RlIGlzIHdyaXR0ZW4gdG8gYmUgcG9y dGFibGUgdG8gSyZSIEMsIHdoaWNoIHByZWRhdGVzIGFueSBDCitAY2luZGV4IEsmUiBDCitA Y2luZGV4IEM4OSwgQzk5LCBDMTEsIEMxNywgYW5kIEMyMworVGhlIGZpcnN0IHdpZGVseSB1 c2VkIEMgdmFyaWFudCB3YXMgSyZSIEMsIHdoaWNoIHByZWRhdGVzIGFueSBDCiBzdGFuZGFy ZC4gIEsmUiBDIGNvbXBpbGVycyBhcmUgbm8gbG9uZ2VyIG9mIHByYWN0aWNhbCBpbnRlcmVz dCwgdGhvdWdoLAotYW5kIHRoZSByZXN0IG9mIHNlY3Rpb24gYXNzdW1lcyBhdCBsZWFzdCBD ODksIHRoZSBmaXJzdCBDIHN0YW5kYXJkLgorYW5kIEF1dG9jb25mIGFzc3VtZXMgYXQgbGVh c3QgQzg5LCB0aGUgZmlyc3QgQyBzdGFuZGFyZCwKK3doaWNoIGlzIHNvbWV0aW1lcyBjYWxs ZWQgYGBDOTAnJyBkdWUgdG8gYSBkZWxheSBpbiBzdGFuZGFyZGl6YXRpb24uCitDIGhhcyBz aW5jZSBnb25lIHRocm91Z2ggdGhlIHN0YW5kYXJkcyBDOTksIEMxMSwgQzE3LCBhbmQgQzIz LCBhbmQKK0F1dG9jb25mIGlzIGNvbXBhdGlibGUgd2l0aCBhbGwgdGhlc2Ugc3RhbmRhcmRz LgogCiBQcm9ncmFtIHBvcnRhYmlsaXR5IGlzIGEgaHVnZSB0b3BpYywgYW5kIHRoaXMgc2Vj dGlvbiBjYW4gb25seSBicmllZmx5CiBpbnRyb2R1Y2UgY29tbW9uIHBpdGZhbGxzLiAgQHhy ZWZ7U3lzdGVtIFBvcnRhYmlsaXR5LCAsIFBvcnRhYmlsaXR5CkBAIC0yMTc3Niw5ICsyMTcy OCw5IEBAIGVzcGVjaWFsbHkgd2hlbiBvcHRpbWl6YXRpb24gaXMgZW5hYmxlZC4gIElmIHlv dSBhc3N1bWUgYSBHQ0MtbGlrZQogY29tcGlsZXIsIHlvdSBjYW4gd29yayBhcm91bmQgdGhl IHByb2JsZW1zIGJ5IGNvbXBpbGluZyB3aXRoIEdDQydzCiBAY29kZXstZndyYXB2fSBvcHRp b247IGhvd2V2ZXIsIHRoaXMgaXMgbm90IHBvcnRhYmxlLgogCi1Gb3IgaGlzdG9yaWNhbCBy ZWFzb25zIHRoZSBDIHN0YW5kYXJkIGFsc28gYWxsb3dzIGltcGxlbWVudGF0aW9ucyB3aXRo Ci1vbmVzJyBjb21wbGVtZW50IG9yIHNpZ25lZCBtYWduaXR1ZGUgYXJpdGhtZXRpYywgYnV0 IGl0IGlzIHNhZmUgdG8KLWFzc3VtZSB0d28ncyBjb21wbGVtZW50IG5vd2FkYXlzLgorRm9y IGhpc3RvcmljYWwgcmVhc29ucyBDMTcgYW5kIGVhcmxpZXIgYWxzbyBhbGxvd2VkIGltcGxl bWVudGF0aW9ucyB3aXRoCitvbmVzJyBjb21wbGVtZW50IG9yIHNpZ25lZCBtYWduaXR1ZGUg YXJpdGhtZXRpYywgYnV0IEMyMyByZXF1aXJlcwordHdvJ3MgY29tcGxlbWVudCBhbmQgaXQg aXMgc2FmZSB0byBhc3N1bWUgdHdvJ3MgY29tcGxlbWVudCBub3dhZGF5cy4KIAogQWxzbywg b3ZlcmZsb3cgY2FuIG9jY3VyIHdoZW4gY29udmVydGluZyBhbiBvdXQtb2YtcmFuZ2UgdmFs dWUgdG8gYQogc2lnbmVkIGludGVnZXIgdHlwZS4gIEhlcmUgYSBzdGFuZGFyZCBpbXBsZW1l bnRhdGlvbiBtdXN0IGRlZmluZSB3aGF0CkBAIC0yNDM2OSw3ICsyNDMyMSw3IEBAIGlzc3Vl LgogQGRlZm1hYyBBQ19SRVRTSUdUWVBFCiBAYWNpbmRleHtSRVRTSUdUWVBFfQogUmVwbGFj ZWQgYnkgQGNvZGV7QUNfVFlQRV9TSUdOQUx9IChAcHhyZWZ7QUNfVFlQRV9TSUdOQUx9KSwg d2hpY2ggaXRzZWxmCi1pcyBvYnNvbGV0ZSB3aGVuIGFzc3VtaW5nIEM4OSBvciBiZXR0ZXIu CitpcyBvYnNvbGV0ZS4KIEBlbmQgZGVmbWFjCiAKIEBkZWZtYWMgQUNfUlNICkBAIC0yNDQy NCw3ICsyNDM3Niw3IEBAIFJlcGxhY2VkIGJ5IEBjb2Rle0FDX0hFQURFUl9TVEFUfSAoQHB4 cmVme0FDX0hFQURFUl9TVEFUfSkuCiBAZGVmbWFjIEFDX1NURENfSEVBREVSUwogQGFjaW5k ZXh7U1REQ19IRUFERVJTfQogUmVwbGFjZWQgYnkgQGNvZGV7QUNfSEVBREVSX1NUREN9IChA cHhyZWZ7QUNfSEVBREVSX1NUREN9KSwgd2hpY2gKLWlzIGl0c2VsZiBvYnNvbGV0ZS4gIE5v d2FkYXlzIGl0IGlzIHNhZmUgdG8gYXNzdW1lIHRoZSBmYWNpbGl0aWVzIG9mIEM5MAoraXMg aXRzZWxmIG9ic29sZXRlLiAgTm93YWRheXMgaXQgaXMgc2FmZSB0byBhc3N1bWUgdGhlIGZh Y2lsaXRpZXMgb2YgQzg5CiBleGlzdC4KIEBlbmQgZGVmbWFjCiAKQEAgLTI0NjQzLDE5ICsy NDU5NSw2IEBAIGZ1bmN0aW9uIHJldHVybmluZyBAY29kZXt2b2lkfSwgZGVmaW5lIEBjb2Rl e1JFVFNJR1RZUEV9IHRvIGJlCiBAY29kZXt2b2lkfTsgb3RoZXJ3aXNlLCBkZWZpbmUgaXQg dG8gYmUgQGNvZGV7aW50fS4gIFRoZXNlIGRheXMsIGl0IGlzCiBwb3J0YWJsZSB0byBhc3N1 bWUgQzg5LCBhbmQgdGhhdCBzaWduYWwgaGFuZGxlcnMgcmV0dXJuIEBjb2Rle3ZvaWR9LAog d2l0aG91dCBuZWVkaW5nIHRvIHVzZSB0aGlzIG1hY3JvIG9yIEBjb2Rle1JFVFNJR1RZUEV9 LgotCi1XaGVuIHRhcmdldGluZyBvbGRlciBLJlIgQywgaXQgaXMgcG9zc2libGUgdG8gZGVm aW5lIHNpZ25hbCBoYW5kbGVycyBhcwotcmV0dXJuaW5nIHR5cGUgQGNvZGV7UkVUU0lHVFlQ RX0sIGFuZCBvbWl0IGEgcmV0dXJuIHN0YXRlbWVudDoKLQotQGV4YW1wbGUKLUBncm91cAot UkVUU0lHVFlQRQotaHVwX2hhbmRsZXIgKCkKLUB7Ci1AZG90c3t9Ci1AfQotQGVuZCBncm91 cAotQGVuZCBleGFtcGxlCiBAZW5kIGRlZm1hYwogCiBAZGVmbWFjIEFDX1VJRF9UCkBAIC0y NDY3Nyw3ICsyNDYxNiw3IEBAIHVubmVjZXNzYXJ5IHRvIHdyaXRlIGV4cGxpY2l0bHkuCiBE ZWZpbmUgQGNvZGV7VVNHfSBpZiB0aGUgQlNEIHN0cmluZyBmdW5jdGlvbnMgKEBjb2Rle2Jj b3B5fSwKIEBjb2Rle2J6ZXJvfSwgQGNvZGV7aW5kZXh9LCBAY29kZXtyaW5kZXh9LCBldGMp IGFyZSBAZW1waHtub3R9IGRlZmluZWQKIGluIEBmaWxle3N0cmluZ3MuaH0uICBNb2Rlcm4g Y29kZSBzaG91bGQgYXNzdW1lIEBmaWxle3N0cmluZy5ofSBleGlzdHMKLWFuZCBzaG91bGQg dXNlIHRoZSBJU08gQyBzdHJpbmcgZnVuY3Rpb25zIChAY29kZXttZW1tb3ZlfSwgQGNvZGV7 bWVtc2V0fSwKK2FuZCBzaG91bGQgdXNlIHRoZSBzdGFuZGFyZCBDIHN0cmluZyBmdW5jdGlv bnMgKEBjb2Rle21lbW1vdmV9LCBAY29kZXttZW1zZXR9LAogQGNvZGV7c3RyY2hyfSwgQGNv ZGV7c3RycmNocn0sIGV0YykgdW5jb25kaXRpb25hbGx5LgogCiBAZmlsZXtzdHJpbmdzLmh9 IG1heSBiZSB0aGUgb25seSBoZWFkZXIgdGhhdCBkZWNsYXJlcyBAY29kZXtzdHJjYXNlY21w fSwKQEAgLTI3MzUwLDcgKzI3Mjg5LDcgQEAgaW50cm9kdWNlZCBpbiB0aGlzIGRvY3VtZW50 LgogQGMgIExvY2FsV29yZHM6ICBpbnR0eXBlcyBTVERJTlQgc3RkaW50IEFXSyBBSVggU29s YXJpcyBOZVhUIGVudiBFR1JFUCBGR1JFUCB5eQogQGMgIExvY2FsV29yZHM6ICBMRVhMSUIg WVlURVhUIGxmbCBub25wb3J0YWJsZSBBdXRvbWFrZSdzIExOIFJBTkxJQiBieWFjYyBJTkVU RAogQGMgIExvY2FsV29yZHM6ICBpbmV0ZCBwcm9nIFBST0dTIHByb2dzIHJhbmxpYiBsbXAg bFh0IGxYIG5zbCBnZXRob3N0YnluYW1lIFVYCi1AYyAgTG9jYWxXb3JkczogIE5leHRTdGVw IGlzaW5mIGlzbmFuIGdsaWJjIElSSVggc3VubWF0aCBsbSBsc3VubWF0aCBwcmUgc2l6ZW9m CitAYyAgTG9jYWxXb3JkczogIGlzaW5mIGlzbmFuIGdsaWJjIElSSVggc3VubWF0aCBsbSBs c3VubWF0aCBwcmUgc2l6ZW9mCiBAYyAgTG9jYWxXb3JkczogIGxkIGlubGluZSBtYWxsb2Mg cHV0ZW52IHNldGVudiBGcmVlQlNEIHJlYWxsb2MgU3VuT1MgTWluR1cKIEBjICBMb2NhbFdv cmRzOiAgc25wcmludGYgdnNucHJpbnRmIHNwcmludGYgdnNwcmludGYgc3NjYW5mIGdjYyBz dHJlcnJvciBpZmRlZgogQGMgIExvY2FsV29yZHM6ICBzdHJubGVuIHN5c2NvbmYgUEFHRVNJ WkUgdW5zZXRlbnYgdmEgZmFsbGJhY2sgbWVtY3B5IGRzdCBGVU5DCmRpZmYgLS1naXQgYS9s aWIvYXV0b2NvbmYvaGVhZGVycy5tNCBiL2xpYi9hdXRvY29uZi9oZWFkZXJzLm00CmluZGV4 IGNhZjM2ZmE0Li41ZmRlN2Y1YSAxMDA2NDQKLS0tIGEvbGliL2F1dG9jb25mL2hlYWRlcnMu bTQKKysrIGIvbGliL2F1dG9jb25mL2hlYWRlcnMubTQKQEAgLTMyOCw3ICszMjgsNyBAQCBt NF9tYXBfYXJncyhbX0FDX0NIRUNLX0hFQURFUl9PTkNFXSwKICAgW3N0cmluZ3MuaF0sIFtz eXMvc3RhdC5oXSwgW3N5cy90eXBlcy5oXSwgW3VuaXN0ZC5oXSldZG5sCiBbQVNfSUYoW3Rl c3QgJGFjX2N2X2hlYWRlcl9zdGRsaWJfaCA9IHllcyAmJiB0ZXN0ICRhY19jdl9oZWFkZXJf c3RyaW5nX2ggPSB5ZXNdLAogW0FDX0RFRklORShbU1REQ19IRUFERVJTXSwgWzFdLAotICBb RGVmaW5lIHRvIDEgaWYgYWxsIG9mIHRoZSBDOTAgc3RhbmRhcmQgaGVhZGVycyBleGlzdAor ICBbRGVmaW5lIHRvIDEgaWYgYWxsIG9mIHRoZSBDODkgc3RhbmRhcmQgaGVhZGVycyBleGlz dAogICAgKG5vdCBqdXN0IHRoZSBvbmVzIHJlcXVpcmVkIGluIGEgZnJlZXN0YW5kaW5nIGVu dmlyb25tZW50KS4KICAgIFRoaXMgbWFjcm8gaXMgcHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNv bXBhdGliaWxpdHk7CiAgICBuZXcgY29kZSBuZWVkIG5vdCB1c2UgaXQuXSldKV0pCkBAIC0z NTYsNyArMzU2LDcgQEAgQUNfREVGVU4oW0FDX0lOQ0xVREVTX0RFRkFVTFRdLAogIyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwogCiAjIFRoZXJl IGlzIG5vIGxvbmdlciBhbnkgbmVlZCB0byBjaGVjayBmb3IgaGVhZGVycyB0aGF0IGFyZSBw YXJ0IG9mCi0jIElTTyBDOTAgKGFzIGFtZW5kZWQpOiBhc3NlcnQuaCwgY3R5cGUuaCwgZXJy bm8uaCwgZmxvYXQuaCwgaXNvNjQ2LmgsCisjIEM4OSAoYXMgYW1lbmRlZCk6IGFzc2VydC5o LCBjdHlwZS5oLCBlcnJuby5oLCBmbG9hdC5oLCBpc282NDYuaCwKICMgbGltaXRzLmgsIGxv Y2FsZS5oLCBtYXRoLmgsIHNldGptcC5oLCBzaWduYWwuaCwgc3RkYXJnLmgsIHN0ZGRlZi5o LAogIyBzdGRpby5oLCBzdGRsaWIuaCwgc3RyaW5nLmgsIHRpbWUuaCwgd2NoYXIuaCwgd2N0 eXBlLmguCiAKQEAgLTU4OCwxMCArNTg4LDEwIEBAIEFDX0RFRlVOKFtBQ19DSEVDS19IRUFE RVJfU1REQk9PTF0sCiAgICAgICAgICAgICAgICAgaW50ZWdlciBjb25zdGFudCBleHByZXNz aW9ucywgYW5kICJib29sIiBzaG91bGQgYmUgYSB2YWxpZAogICAgICAgICAgICAgICAgIHR5 cGUgbmFtZS4KIAotICAgICAgICAgICAgICAgIEFsdGhvdWdoIEMgMTk5OSByZXF1aXJlcyBi b29sLCB0cnVlLCBhbmQgZmFsc2UgdG8gYmUgbWFjcm9zLAotICAgICAgICAgICAgICAgIEMg MjAyMyBhbmQgQysrIDIwMTEgb3ZlcnJ1bGUgdGhhdCwgc28gZG8gbm90IHRlc3QgZm9yIHRo YXQuCi0gICAgICAgICAgICAgICAgQWx0aG91Z2ggQyAxOTk5IHJlcXVpcmVzIF9fYm9vbF90 cnVlX2ZhbHNlX2FyZV9kZWZpbmVkIGFuZAotICAgICAgICAgICAgICAgIF9Cb29sLCBDIDIw MjMgc2F5cyB0aGV5IGFyZSBvYnNvbGVzY2VudCwgc28gZG8gbm90IHJlcXVpcmUKKyAgICAg ICAgICAgICAgICBBbHRob3VnaCBDOTkgcmVxdWlyZXMgYm9vbCwgdHJ1ZSwgYW5kIGZhbHNl IHRvIGJlIG1hY3JvcywKKyAgICAgICAgICAgICAgICBDMjMgYW5kIEMrKzExIG92ZXJydWxl IHRoYXQsIHNvIGRvIG5vdCB0ZXN0IGZvciB0aGF0LgorICAgICAgICAgICAgICAgIEFsdGhv dWdoIEM5OSByZXF1aXJlcyBfX2Jvb2xfdHJ1ZV9mYWxzZV9hcmVfZGVmaW5lZCBhbmQKKyAg ICAgICAgICAgICAgICBfQm9vbCwgQzIzIHNheXMgdGhleSBhcmUgb2Jzb2xlc2NlbnQsIHNv IGRvIG5vdCByZXF1aXJlCiAgICAgICAgICAgICAgICAgdGhlbS4gICovCiAKICAgICAgICAg ICAgICAjaWYgIXRydWUKQEAgLTY2OCw3ICs2NjgsNyBAQCBBQ19QUk9HX0VHUkVQCiBdLAog IFtUaGUgcHJlcHJvY2Vzc29yIG1hY3JvICdTVERDX0hFQURFUlMnIGlzIG9ic29sZXRlLgog ICBFeGNlcHQgaW4gdW51c3VhbCBlbWJlZGRlZCBlbnZpcm9ubWVudHMsIHlvdSBjYW4gc2Fm ZWx5IGluY2x1ZGUgYWxsCi0gIElTTyBDOTAgaGVhZGVycyB1bmNvbmRpdGlvbmFsbHkuXSkK KyAgQzg5IGhlYWRlcnMgdW5jb25kaXRpb25hbGx5Ll0pCiAKICMgQUNfSEVBREVSX1NZU19X QUlUCiAjIC0tLS0tLS0tLS0tLS0tLS0tLQotLSAKMi4zNy4yCgo= --------------iZFppy5DomPX1pjwvQvtAcNI--