From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#56025: [PATCH v2] 29.0.50; em-extpipe-test-2 times out on EMBA and Cygwin Date: Thu, 21 Jul 2022 21:16:08 -0700 Message-ID: References: <8e21db9c-0100-998e-f280-81304e7ff61a@cornell.edu> <040b3a36-459b-a94d-f879-7f45aac50bda@cornell.edu> <83sfnud26o.fsf@gnu.org> <96e47ba7-efaa-b6df-dd98-60f09068e68c@gmail.com> <874k097lbh.fsf@melete.silentflame.com> <8735frmjrr.fsf@athena.silentflame.com> <4676f52c-4758-38df-f0f4-dbcb5d848c1b@gmail.com> <8735fr2kq6.fsf@melete.silentflame.com> <10cf6a90-f86a-b0df-4dc2-c258b7494158@gmail.com> <18e79c02-3a2a-77d1-3798-33711f52d6b9@cornell.edu> <19c66901-2eeb-1f40-17a4-4ed54827e065@gmail.com> <5990de80-63a5-ac9b-1a11-c814aa9e38f2@gmail.com> <3779ea08-f481-5fb5-3257-ca9fa7c604bc@cornell.edu> <60cf587b-5d83-31d6-f0af-56979b221425@gmail.com> <6725161c-1d45-8ded-5d75-aa1a74c9b3ed@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------9CD0D509F24949A641FCE254" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3160"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, 56025@debbugs.gnu.org To: Ken Brown , Sean Whitton , Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Jul 22 06:17:22 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oEk6K-0000c8-8C for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 22 Jul 2022 06:17:20 +0200 Original-Received: from localhost ([::1]:46376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oEk6J-0007Fq-BE for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 22 Jul 2022 00:17:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45150) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEk63-0007Fg-1Z for bug-gnu-emacs@gnu.org; Fri, 22 Jul 2022 00:17:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50041) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oEk62-00039j-PQ for bug-gnu-emacs@gnu.org; Fri, 22 Jul 2022 00:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oEk62-0000QN-Js for bug-gnu-emacs@gnu.org; Fri, 22 Jul 2022 00:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 Jul 2022 04:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56025 X-GNU-PR-Package: emacs Original-Received: via spool by 56025-submit@debbugs.gnu.org id=B56025.16584633841575 (code B ref 56025); Fri, 22 Jul 2022 04:17:02 +0000 Original-Received: (at 56025) by debbugs.gnu.org; 22 Jul 2022 04:16:24 +0000 Original-Received: from localhost ([127.0.0.1]:39790 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEk5N-0000PJ-O4 for submit@debbugs.gnu.org; Fri, 22 Jul 2022 00:16:23 -0400 Original-Received: from mail-pg1-f171.google.com ([209.85.215.171]:36673) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEk5I-0000P0-10 for 56025@debbugs.gnu.org; Fri, 22 Jul 2022 00:16:20 -0400 Original-Received: by mail-pg1-f171.google.com with SMTP id s206so3463671pgs.3 for <56025@debbugs.gnu.org>; Thu, 21 Jul 2022 21:16:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:cc:references:message-id:date:mime-version :in-reply-to:content-language; bh=lxohrHJnsUFAqsLPver+8VzCNbGhv2n61hnADkBNVW8=; b=RGTfXiYSXP6U7Mt3H3H0LlOdZ48D0bT+Lncuy7Cou2aW6al0UbE/CGKPVkhEGOq9IU AearkAd2U8gZK+PCgkRFzO28hBl8DOL0CXwIAZWTOh13uQaaGluTx4jkRljVuRiVvfby TbjT9iWBjaZBQpHnpaCt7d9mbzwKpzuxmh8yHQ0x8N1SKDQjbkWK+tbncnEX7CIzlUk3 1v9QZYYlGQ9jP61CQnHhwpnX4Ee71J0krMAgus1a/LyCF+0GE2/K/oll38OUcw8xjZrv FY/FcKLC27LVIHrH8AZZYeWECoFzhVeTjgVIDWBAmIuBhVuSTPCkR2Ed4IZkifV0gJBy 3iYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :mime-version:in-reply-to:content-language; bh=lxohrHJnsUFAqsLPver+8VzCNbGhv2n61hnADkBNVW8=; b=XqW9HzXUuhp7CJKO78C6p/cnN0J0X46ldpeeCiNsDBw0m2WQD2nO/Q+W6uA993vImK JwflPXavTnOzAQgRew8I7XMm0//A8ZFRbdBblJoLecqksAKwkzpfNNegb75dpg0dRPNc vBf/ixST6t51kkY47IpFIUtTSXMC5lh4R/uJwIC1u7bSeZ7eD0l4fgA3ABEnO0WeXjeN GyBVojOnADkjUUxz0y6pg1HqkQ1CKNsKJT0rvc6egNjoFbV5Fqp/U6mhD+KblP+MFcJ2 SJP7RDsRgLWLAxwJuhZupVB56lUX7u2BHNvdZdrTN7g2/BH9eq39X5A6UkblPJUbNPGV TEyA== X-Gm-Message-State: AJIora/DGAB5epyLNI8C9gYy7F5Fe+Jj07C6XOpCuPpVOlEzwk9MIuK5 BLar34gb3ApIS4nKx8c1SzsYv5BKMAA= X-Google-Smtp-Source: AGRyM1s/h699ACqrwKvH48JpefqXNHwsYEL9jmzDgg/wreSV7/3m01Ycr7LjgYLZsNfuEyXfvR1u4g== X-Received: by 2002:a05:6a00:1145:b0:52b:78c:fa26 with SMTP id b5-20020a056a00114500b0052b078cfa26mr1489170pfm.27.1658463369883; Thu, 21 Jul 2022 21:16:09 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id ij5-20020a170902ab4500b0016c574aa0fdsm2486183plb.76.2022.07.21.21.16.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Jul 2022 21:16:08 -0700 (PDT) In-Reply-To: <6725161c-1d45-8ded-5d75-aa1a74c9b3ed@gmail.com> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:237578 Archived-At: This is a multi-part message in MIME format. --------------9CD0D509F24949A641FCE254 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 7/17/2022 10:26 PM, Jim Porter wrote: > On 7/17/2022 2:59 PM, Ken Brown wrote: >> It does work for me too.  Thanks! > > Great! This should make Eshell behave a bit more similarly to other > shells, so hopefully this will help prevent other issues in this area. Ok, I *think* this is done. The patches have docs/tests that should hopefully explain everything in detail, but here's a high-level overview: Patch 1: -------- Add the ability to pass a cons cell for `:connection-type' to `make-process'. This lets you specify whether to use a pipe or pty independently for the input and output of the subprocess. This also removes the restriction that specifying `:stderr' forces `:connection-type' to be `pipe'. Now, it only makes stderr use a pipe. This should be enough to fix the test failures mentioned in this bug, and should also make Eshell pipelines work more like in other shells: normally, when executing something like `foo | bar', foo's stdout and bar's stdin are pipes.[1] I also removed the `eshell-needs-pipe-p' function since it's not necessary in its current form anymore. However, a new function along these lines might help to resolve bug#56013. I looked into this briefly and it's not terribly complicated, but it would take a bit of work to get right, so I think it'd be best to do it separately. Patch 2: -------- Add the ability to check whether each of a subprocess's `stdin', `stdout', or `stderr' are TTYs or pipes by passing one of those symbols as the second argument to `process-tty-name'. This lets us avoid the "send 3 EOFs" behavior most of the time in Eshell. (Note that if a user created a subprocess some other way and connected it via Eshell, they might need the 3 EOFs behavior, hence why I kept that code around.) I debated whether `process-tty-name' was the right place to do this or if a new `process-connection-type' function would be better, but I went with this way in the end. I don't really have a strong preference though. -------- I added tests for this, and they all pass for me, though admittedly I didn't run the entire Emacs test suite against these patches yet... [1] Note that currently, Eshell always pipes both stdout and stderr (see bug#21605). I'm tinkering with a patch for this too. --------------9CD0D509F24949A641FCE254 Content-Type: text/plain; charset=UTF-8; name="0001-Allow-creating-processes-where-only-one-of-stdin-or-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Allow-creating-processes-where-only-one-of-stdin-or-.pa"; filename*1="tch" RnJvbSBjODcxZDRiODE1OGFjZjQwZGRmMGEwMmY5ODEzNjc5ZmRlY2YwMjk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMTcgSnVsIDIwMjIgMjA6MjU6MDAgLTA3MDAKU3ViamVjdDogW1BB VENIIDEvMl0gQWxsb3cgY3JlYXRpbmcgcHJvY2Vzc2VzIHdoZXJlIG9ubHkgb25lIG9mIHN0 ZGluIG9yCiBzdGRvdXQgaXMgYSBQVFkKCiogc3JjL2xpc3AuaCAoZW1hY3Nfc3Bhd24pOgoq IHNyYy9jYWxscHJvYy5jIChlbWFjc19zcGF3bik6IEFkZCBQVFlfSU4gYW5kIFBUWV9PVVQg YXJndW1lbnRzIHRvCnNwZWNpZnkgd2hpY2ggc3RyZWFtcyBzaG91bGQgYmUgc2V0IHVwIGFz IGEgUFRZLgooY2FsbF9wcm9jZXNzKTogQWRqdXN0IGNhbGwgdG8gJ2VtYWNzX3NwYXduJy4K Ciogc3JjL3Byb2Nlc3MuaCAoTGlzcF9Qcm9jZXNzKTogUmVwbGFjZSAncHR5X2ZsYWcnIHdp dGggJ3B0eV9pbicgYW5kCidwdHlfb3V0Jy4KCiogc3JjL3Byb2Nlc3MuYyAoaXNfcHR5X2Zy b21fc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoobWFrZS1wcm9jZXNzKTogQWxsb3cgOmNvbm5l Y3Rpb24tdHlwZSB0byBiZSBhIGNvbnMgY2VsbCwgYW5kIGFsbG93CnVzaW5nIGEgc3RkZXJy IHByb2Nlc3Mgd2l0aCBhIFBUWSBmb3Igc3RkaW4vc3Rkb3V0LgooY3JlYXRlX3Byb2Nlc3Mp OiBIYW5kbGUgY3JlYXRpbmcgYSBwcm9jZXNzIHdoZXJlIG9ubHkgb25lIG9mIHN0ZGluIG9y CnN0ZG91dCBpcyBhIFBUWS4KCiogbGlzcC9lc2hlbGwvZXNoLXByb2MuZWwgKGVzaGVsbC1u ZWVkcy1waXBlLCBlc2hlbGwtbmVlZHMtcGlwZS1wKToKUmVtb3ZlLgooZXNoZWxsLWdhdGhl ci1wcm9jZXNzLW91dHB1dCk6IFVzZSAnbWFrZS1wcm9jZXNzJyBhbmQgc2V0Cic6Y29ubmVj dGlvbi10eXBlJyBhcyBuZWVkZWQgYnkgdGhlIHZhbHVlIG9mICdlc2hlbGwtaW4tcGlwZWxp bmUtcCcuCgoqIGxpc3AvbmV0L3RyYW1wLmVsICh0cmFtcC1oYW5kbGUtbWFrZS1wcm9jZXNz KToKKiBsaXNwL25ldC90cmFtcC1hZGIuZWwgKHRyYW1wLWFkYi1oYW5kbGUtbWFrZS1wcm9j ZXNzKToKKiBsaXNwL25ldC90cmFtcC1zaC5lbCAodHJhbXAtc2gtaGFuZGxlLW1ha2UtcHJv Y2Vzcyk6IERvbid0IHNpZ25hbCBhbgplcnJvciB3aGVuICc6Y29ubmVjdGlvbi10eXBlJyBp cyBhIGNvbnMgY2VsbC4KCiogdGVzdC9zcmMvcHJvY2Vzcy10ZXN0cy5lbAoocHJvY2Vzcy10 ZXN0LXNlbnRpbmVsLXdhaXQtZnVuY3Rpb24td29ya2luZy1wKTogQWxsb3cgcGFzc2luZyBQ Uk9DCmluLCBhbmQgcmV3b3JrIGludG8uLi4KKHByb2Nlc3MtdGVzdC13YWl0LWZvci1zZW50 aW5lbCk6IC4uLiB0aGlzLgoocHJvY2Vzcy10ZXN0LXNlbnRpbmVsLWFjY2VwdC1wcm9jZXNz LW91dHB1dCkKKHByb2Nlc3MtdGVzdC1zZW50aW5lbC1zaXQtZm9yLCBwcm9jZXNzLXRlc3Qt cXVvdGVkLWJhdGZpbGUpCihwcm9jZXNzLXRlc3Qtc3RkZXJyLWZpbHRlcik6IFVzZSAncHJv Y2Vzcy10ZXN0LXdhaXQtZm9yLXNlbnRpbmVsJy4KKG1ha2UvcHJvY2Vzcy90ZXN0LWNvbm5l Y3Rpb24tdHlwZSk6IE5ldyBmdW5jdGlvbi4KKG1ha2UtcHJvY2Vzcy9jb25uZWN0aW9uLXR5 cGUvcHR5LCBtYWtlLXByb2Nlc3MvY29ubmVjdGlvbi10eXBlL3B0eS0yKQoobWFrZS1wcm9j ZXNzL2Nvbm5lY3Rpb24tdHlwZS9waXBlKQoobWFrZS1wcm9jZXNzL2Nvbm5lY3Rpb24tdHlw ZS9waXBlLTIpCihtYWtlLXByb2Nlc3MvY29ubmVjdGlvbi10eXBlL2luLXB0eSkKKG1ha2Ut cHJvY2Vzcy9jb25uZWN0aW9uLXR5cGUvb3V0LXB0eSkKKG1ha2UtcHJvY2Vzcy9jb25uZWN0 aW9uLXR5cGUvcHR5LXdpdGgtc3RkZXJyLWJ1ZmZlcikKKG1ha2UtcHJvY2Vzcy9jb25uZWN0 aW9uLXR5cGUvb3V0LXB0eS13aXRoLXN0ZGVyci1idWZmZXIpOiBOZXcgdGVzdHMuCgoqIGRv Yy9saXNwcmVmL3Byb2Nlc3Nlcy50ZXhpIChBc3luY2hyb25vdXMgUHJvY2Vzc2VzKTogRG9j dW1lbnQgbmV3Cic6Y29ubmVjdGlvbi10eXBlJyBiZWhhdmlvci4KKE91dHB1dCBmcm9tIFBy b2Nlc3Nlcyk6IFJlbW92ZSBjYXZlYXQgYWJvdXQgJzpzdGRlcnInIGZvcmNpbmcKJ21ha2Ut cHJvY2VzcycgdG8gdXNlIHBpcGVzLgoKKiBldGMvTkVXUzogQW5ub3VuY2UgdGhpcyBjaGFu Z2UuCi0tLQogZG9jL2xpc3ByZWYvcHJvY2Vzc2VzLnRleGkgfCAgMjggKysrLS0tLS0KIGV0 Yy9ORVdTICAgICAgICAgICAgICAgICAgIHwgIDEyICsrKysKIGxpc3AvZXNoZWxsL2VzaC1w cm9jLmVsICAgIHwgIDU1ICsrKysrKy0tLS0tLS0tLS0KIGxpc3AvbmV0L3RyYW1wLWFkYi5l bCAgICAgIHwgICA1ICstCiBsaXNwL25ldC90cmFtcC1zaC5lbCAgICAgICB8ICAgNSArLQog bGlzcC9uZXQvdHJhbXAuZWwgICAgICAgICAgfCAgIDUgKy0KIHNyYy9jYWxscHJvYy5jICAg ICAgICAgICAgIHwgIDM3ICsrKysrKy0tLS0tCiBzcmMvbGlzcC5oICAgICAgICAgICAgICAg ICB8ICAgMyArLQogc3JjL3Byb2Nlc3MuYyAgICAgICAgICAgICAgfCAxMjkgKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogc3JjL3Byb2Nlc3MuaCAgICAgICAgICAg ICAgfCAgIDUgKy0KIHRlc3Qvc3JjL3Byb2Nlc3MtdGVzdHMuZWwgIHwgMTIxICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDExIGZpbGVzIGNoYW5nZWQsIDI0NSBpbnNl cnRpb25zKCspLCAxNjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYv cHJvY2Vzc2VzLnRleGkgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQppbmRleCA4MGMz NzFlMWM2Li5hN2UwODA1NGM3IDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9wcm9jZXNzZXMu dGV4aQorKysgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQpAQCAtNzA1LDEyICs3MDUs MTMgQEAgQXN5bmNocm9ub3VzIFByb2Nlc3NlcwogSW5pdGlhbGl6ZSB0aGUgdHlwZSBvZiBk ZXZpY2UgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBzdWJwcm9jZXNzLgogUG9zc2li bGUgdmFsdWVzIGFyZSBAY29kZXtwdHl9IHRvIHVzZSBhIHB0eSwgQGNvZGV7cGlwZX0gdG8g dXNlIGEKIHBpcGUsIG9yIEBjb2Rle25pbH0gdG8gdXNlIHRoZSBkZWZhdWx0IGRlcml2ZWQg ZnJvbSB0aGUgdmFsdWUgb2YgdGhlCi1AY29kZXtwcm9jZXNzLWNvbm5lY3Rpb24tdHlwZX0g dmFyaWFibGUuICBUaGlzIHBhcmFtZXRlciBhbmQgdGhlIHZhbHVlCi1vZiBAY29kZXtwcm9j ZXNzLWNvbm5lY3Rpb24tdHlwZX0gYXJlIGlnbm9yZWQgaWYgYSBub24tQGNvZGV7bmlsfQot dmFsdWUgaXMgc3BlY2lmaWVkIGZvciB0aGUgQGNvZGV7OnN0ZGVycn0gcGFyYW1ldGVyOyBp biB0aGF0IGNhc2UsIHRoZQotdHlwZSB3aWxsIGFsd2F5cyBiZSBAY29kZXtwaXBlfS4gIE9u IHN5c3RlbXMgd2hlcmUgcHR5cyBhcmUgbm90Ci1hdmFpbGFibGUgKE1TLVdpbmRvd3MpLCB0 aGlzIHBhcmFtZXRlciBpcyBsaWtld2lzZSBpZ25vcmVkLCBhbmQgcGlwZXMKLWFyZSB1c2Vk IHVuY29uZGl0aW9uYWxseS4KK0Bjb2Rle3Byb2Nlc3MtY29ubmVjdGlvbi10eXBlfSB2YXJp YWJsZS4gIElmIEB2YXJ7dHlwZX0gaXMgYSBjb25zIGNlbGwKK0B3e0Bjb2RleyhAdmFye2lu cHV0fSAuIEB2YXJ7b3V0cHV0fSl9fSwgdGhlbiBAdmFye2lucHV0fSB3aWxsIGJlIHVzZWQK K2ZvciBzdGFuZGFyZCBpbnB1dCBhbmQgQHZhcntvdXRwdXR9IGZvciBzdGFuZGFyZCBvdXRw dXQgKGFuZCBzdGFuZGFyZAorZXJyb3IgaWYgQGNvZGV7OnN0ZGVycn0gaXMgQGNvZGV7bmls fSkuCisKK09uIHN5c3RlbXMgd2hlcmUgcHR5cyBhcmUgbm90IGF2YWlsYWJsZSAoTVMtV2lu ZG93cyksIHRoaXMgcGFyYW1ldGVyCitpcyBpZ25vcmVkLCBhbmQgcGlwZXMgYXJlIHVzZWQg dW5jb25kaXRpb25hbGx5LgogCiBAaXRlbSA6bm9xdWVyeSBAdmFye3F1ZXJ5LWZsYWd9CiBJ bml0aWFsaXplIHRoZSBwcm9jZXNzIHF1ZXJ5IGZsYWcgdG8gQHZhcntxdWVyeS1mbGFnfS4K QEAgLTE1MzAsMjAgKzE1MzEsMTEgQEAgT3V0cHV0IGZyb20gUHJvY2Vzc2VzCiBkZWZhdWx0 IGZpbHRlciBkaXNjYXJkcyB0aGUgb3V0cHV0LgogCiAgIElmIHRoZSBzdWJwcm9jZXNzIHdy aXRlcyB0byBpdHMgc3RhbmRhcmQgZXJyb3Igc3RyZWFtLCBieSBkZWZhdWx0Ci10aGUgZXJy b3Igb3V0cHV0IGlzIGFsc28gcGFzc2VkIHRvIHRoZSBwcm9jZXNzIGZpbHRlciBmdW5jdGlv bi4gIElmCi1FbWFjcyB1c2VzIGEgcHNldWRvLVRUWSAocHR5KSBmb3IgY29tbXVuaWNhdGlv biB3aXRoIHRoZSBzdWJwcm9jZXNzLAotdGhlbiBpdCBpcyBpbXBvc3NpYmxlIHRvIHNlcGFy YXRlIHRoZSBzdGFuZGFyZCBvdXRwdXQgYW5kIHN0YW5kYXJkCi1lcnJvciBzdHJlYW1zIG9m IHRoZSBzdWJwcm9jZXNzLCBiZWNhdXNlIGEgcHNldWRvLVRUWSBoYXMgb25seSBvbmUKLW91 dHB1dCBjaGFubmVsLiAgSW4gdGhhdCBjYXNlLCBpZiB5b3Ugd2FudCB0byBrZWVwIHRoZSBv dXRwdXQgdG8gdGhvc2UKLXN0cmVhbXMgc2VwYXJhdGUsIHlvdSBzaG91bGQgcmVkaXJlY3Qg b25lIG9mIHRoZW0gdG8gYSBmaWxlLS0tZm9yCi1leGFtcGxlLCBieSB1c2luZyBhbiBhcHBy b3ByaWF0ZSBzaGVsbCBjb21tYW5kIHZpYQotQGNvZGV7c3RhcnQtcHJvY2Vzcy1zaGVsbC1j b21tYW5kfSBvciBhIHNpbWlsYXIgZnVuY3Rpb24uCi0KLSAgQWx0ZXJuYXRpdmVseSwgeW91 IGNvdWxkIHVzZSB0aGUgQGNvZGV7OnN0ZGVycn0gcGFyYW1ldGVyIHdpdGggYQordGhlIGVy cm9yIG91dHB1dCBpcyBhbHNvIHBhc3NlZCB0byB0aGUgcHJvY2VzcyBmaWx0ZXIgZnVuY3Rp b24uCitBbHRlcm5hdGl2ZWx5LCB5b3UgY291bGQgdXNlIHRoZSBAY29kZXs6c3RkZXJyfSBw YXJhbWV0ZXIgd2l0aCBhCiBub24tQGNvZGV7bmlsfSB2YWx1ZSBpbiBhIGNhbGwgdG8gQGNv ZGV7bWFrZS1wcm9jZXNzfQogKEBweHJlZntBc3luY2hyb25vdXMgUHJvY2Vzc2VzLCBtYWtl LXByb2Nlc3N9KSB0byBtYWtlIHRoZSBkZXN0aW5hdGlvbgotb2YgdGhlIGVycm9yIG91dHB1 dCBzZXBhcmF0ZSBmcm9tIHRoZSBzdGFuZGFyZCBvdXRwdXQ7IGluIHRoYXQgY2FzZSwKLUVt YWNzIHdpbGwgdXNlIHBpcGVzIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHN1YnByb2Nl c3MuCitvZiB0aGUgZXJyb3Igb3V0cHV0IHNlcGFyYXRlIGZyb20gdGhlIHN0YW5kYXJkIG91 dHB1dC4KIAogICBXaGVuIGEgc3VicHJvY2VzcyB0ZXJtaW5hdGVzLCBFbWFjcyByZWFkcyBh bnkgcGVuZGluZyBvdXRwdXQsCiB0aGVuIHN0b3BzIHJlYWRpbmcgb3V0cHV0IGZyb20gdGhh dCBzdWJwcm9jZXNzLiAgVGhlcmVmb3JlLCBpZiB0aGUKZGlmZiAtLWdpdCBhL2V0Yy9ORVdT IGIvZXRjL05FV1MKaW5kZXggNmQ0ZmNlMTIzNy4uZGM3OWYwODI2YSAxMDA2NDQKLS0tIGEv ZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAgLTIyMjksNiArMjIyOSwxMiBAQCB0aGV5IHdp bGwgc3RpbGwgYmUgZXNjYXBlZCwgc28gdGhlICcuZm9vJyBzeW1ib2wgaXMgc3RpbGwgcHJp bnRlZCBhcwogYW5kIHJlbWFwcGluZyBwYXJlbnQgb2YgYmFzaWMgZmFjZXMgZG9lcyBub3Qg d29yayByZWxpYWJseS4KIEluc3RlYWQgb2YgcmVtYXBwaW5nICdtb2RlLWxpbmUnLCB5b3Ug aGF2ZSB0byByZW1hcCAnbW9kZS1saW5lLWFjdGl2ZScuCiAKKysrKworKiogJ21ha2UtcHJv Y2VzcycgaGFzIGJlZW4gZXh0ZW5kZWQgdG8gc3VwcG9ydCBwdHlzIHdoZW4gJzpzdGRlcnIn IGlzIHNldC4KK1ByZXZpb3VzbHksIHNldHRpbmcgJzpzdGRlcnInIHRvIGEgbm9uLW5pbCB2 YWx1ZSB3b3VsZCBmb3JjZSB0aGUKK3Byb2Nlc3MncyBjb25uZWN0aW9uIHRvIHVzZSBwaXBl cy4gIE5vdywgRW1hY3Mgd2lsbCB1c2UgYSBwdHkgZm9yCitzdGRpbiBhbmQgc3Rkb3V0IGlm IHJlcXVlc3RlZCBubyBtYXR0ZXIgdGhlIHZhbHVlIG9mICc6c3RkZXJyJy4KKwogLS0tCiAq KiBVc2VyIG9wdGlvbiAnbWFpbC1zb3VyY2UtaWdub3JlLWVycm9ycycgaXMgbm93IG9ic29s ZXRlLgogVGhlIHdob2xlIG1lY2hhbmlzbSBmb3IgcHJvbXB0aW5nIHVzZXJzIHRvIGNvbnRp bnVlIGluIGNhc2Ugb2YKQEAgLTMxODgsNiArMzE5NCwxMiBAQCB0cmFuc2xhdGlvbi4KIFRo aXMgaXMgdXNlZnVsIHdoZW4gcXVvdGluZyBzaGVsbCBhcmd1bWVudHMgZm9yIGEgcmVtb3Rl IHNoZWxsCiBpbnZvY2F0aW9uLiAgU3VjaCBzaGVsbHMgYXJlIFBPU0lYIGNvbmZvcm1hbnQg YnkgZGVmYXVsdC4KIAorKysrCisqKiAnbWFrZS1wcm9jZXNzJyBjYW4gc2V0IGNvbm5lY3Rp b24gdHlwZSBpbmRlcGVuZGVudGx5IGZvciBpbnB1dCBhbmQgb3V0cHV0LgorV2hlbiBjYWxs aW5nICdtYWtlLXByb2Nlc3MnLCBjb21tdW5pY2F0aW9uIHZpYSBwdHkgY2FuIGJlIGVuYWJs ZWQKK3NlbGVjdGl2ZWx5IGZvciBqdXN0IGlucHV0IG9yIG91dHB1dCBieSBwYXNzaW5nIGEg Y29ucyBjZWxsIGZvcgorJzpjb25uZWN0aW9uLXR5cGUnLCBlLmcuICcocGlwZSAuIHB0eSkn LgorCiArKysKICoqICdzaWduYWwtcHJvY2Vzcycgbm93IGNvbnN1bHRzIHRoZSBsaXN0ICdz aWduYWwtcHJvY2Vzcy1mdW5jdGlvbnMnLgogVGhpcyBpcyB0byBkZXRlcm1pbmUgd2hpY2gg ZnVuY3Rpb24gaGFzIHRvIGJlIGNhbGxlZCBpbiBvcmRlciB0bwpkaWZmIC0tZ2l0IGEvbGlz cC9lc2hlbGwvZXNoLXByb2MuZWwgYi9saXNwL2VzaGVsbC9lc2gtcHJvYy5lbAppbmRleCA3 MDQyNmNjYWYyLi45OWI0MzY2MWYyIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtcHJv Yy5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gtcHJvYy5lbApAQCAtMjUwLDMwICsyNTAsNiBA QCBlc2hlbGwtbGFzdC1zeW5jLW91dHB1dC1zdGFydAogICAiQSBtYXJrZXIgdGhhdCB0cmFj a3MgdGhlIGJlZ2lubmluZyBvZiBvdXRwdXQgb2YgdGhlIGxhc3Qgc3VicHJvY2Vzcy4KIFVz ZWQgb25seSBvbiBzeXN0ZW1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0IGFzeW5jIHN1YnByb2Nl c3Nlcy4iKQogCi0oZGVmdmFyIGVzaGVsbC1uZWVkcy1waXBlCi0gICcoImJjIgotICAgIDs7 IHhjbGlwLmVsIChpbiBHTlUgRUxQQSkgY2FsbHMgYWxsIG9mIHRoZXNlIHdpdGgKLSAgICA7 OyBgcHJvY2Vzcy1jb25uZWN0aW9uLXR5cGUnIHNldCB0byBuaWwuCi0gICAgInBicGFzdGUi ICJwdXRjbGlwIiAieGNsaXAiICJ4c2VsIiAid2wtY29weSIpCi0gICJMaXN0IG9mIGNvbW1h bmRzIHdoaWNoIG5lZWQgYHByb2Nlc3MtY29ubmVjdGlvbi10eXBlJyB0byBiZSBuaWwuCi1D dXJyZW50bHkgb25seSBhZmZlY3RzIGNvbW1hbmRzIGluIHBpcGVsaW5lcywgYW5kIG5vdCB0 aG9zZSBhdAotdGhlIGZyb250LiAgSWYgYW4gZWxlbWVudCBjb250YWlucyBhIGRpcmVjdG9y eSBwYXJ0IGl0IG11c3QgbWF0Y2gKLXRoZSBmdWxsIG5hbWUgb2YgYSBjb21tYW5kLCBvdGhl cndpc2UganVzdCB0aGUgbm9uZGlyZWN0b3J5IHBhcnQgbXVzdCBtYXRjaC4iKQotCi0oZGVm dW4gZXNoZWxsLW5lZWRzLXBpcGUtcCAoY29tbWFuZCkKLSAgIlJldHVybiBub24tbmlsIGlm IENPTU1BTkQgbmVlZHMgYHByb2Nlc3MtY29ubmVjdGlvbi10eXBlJyB0byBiZSBuaWwuCi1T ZWUgYGVzaGVsbC1uZWVkcy1waXBlJy4iCi0gIChhbmQgKGJvdW5kLWFuZC10cnVlLXAgZXNo ZWxsLWluLXBpcGVsaW5lLXApCi0gICAgICAgKG5vdCAoZXEgZXNoZWxsLWluLXBpcGVsaW5l LXAgJ2ZpcnN0KSkKLSAgICAgICA7OyBGSVhNRSBzaG91bGQgdGhpcyByZXR1cm4gbm9uLW5p bCBmb3IgYW55dGhpbmcgdGhhdCBpcwotICAgICAgIDs7IG5laXRoZXIgJ2ZpcnN0IG5vciAn bGFzdD8gIFNlZSBidWcjMTM4OCBkaXNjdXNzaW9uLgotICAgICAgIChjYXRjaCAnZm91bmQK LQkgKGRvbGlzdCAoZXhlIGVzaGVsbC1uZWVkcy1waXBlKQotCSAgIChpZiAoc3RyaW5nLWVx dWFsIGV4ZSAoaWYgKHN0cmluZy1zZWFyY2ggIi8iIGV4ZSkKLQkJCQkgICAgIGNvbW1hbmQK LQkJCQkgICAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBjb21tYW5kKSkpCi0JICAgICAgICh0 aHJvdyAnZm91bmQgdCkpKSkpKQotCiAoZGVmdW4gZXNoZWxsLWdhdGhlci1wcm9jZXNzLW91 dHB1dCAoY29tbWFuZCBhcmdzKQogICAiR2F0aGVyIHRoZSBvdXRwdXQgZnJvbSBDT01NQU5E ICsgQVJHUy4iCiAgIChyZXF1aXJlICdlc2gtdmFyKQpAQCAtMjkwLDMxICsyNjYsMzYgQEAg ZXNoZWxsLWdhdGhlci1wcm9jZXNzLW91dHB1dAogICAgIChjb25kCiAgICAgICgoZmJvdW5k cCAnbWFrZS1wcm9jZXNzKQogICAgICAgKHNldHEgcHJvYwotCSAgICAobGV0ICgocHJvY2Vz cy1jb25uZWN0aW9uLXR5cGUKLQkJICAgKHVubGVzcyAoZXNoZWxsLW5lZWRzLXBpcGUtcCBj b21tYW5kKQotCQkgICAgIHByb2Nlc3MtY29ubmVjdGlvbi10eXBlKSkKLQkJICAoY29tbWFu ZCAoZmlsZS1sb2NhbC1uYW1lIChleHBhbmQtZmlsZS1uYW1lIGNvbW1hbmQpKSkpCi0JICAg ICAgKGFwcGx5ICMnc3RhcnQtZmlsZS1wcm9jZXNzCi0JCSAgICAgKGZpbGUtbmFtZS1ub25k aXJlY3RvcnkgY29tbWFuZCkgbmlsIGNvbW1hbmQgYXJncykpKQorICAgICAgICAgICAgKGxl dCAoKGNvbW1hbmQgKGZpbGUtbG9jYWwtbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBjb21tYW5k KSkpCisgICAgICAgICAgICAgICAgICAoY29ubi10eXBlIChwY2FzZSAoYm91bmQtYW5kLXRy dWUtcCBlc2hlbGwtaW4tcGlwZWxpbmUtcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoJ2ZpcnN0ICcobmlsIC4gcGlwZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKCdsYXN0ICAnKHBpcGUgLiBuaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgndCAgICAgJ3BpcGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCduaWwgICBuaWwpKSkpCisgICAgICAgICAgICAgIChtYWtlLXByb2Nlc3MKKyAgICAgICAg ICAgICAgIDpuYW1lIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGNvbW1hbmQpCisgICAgICAg ICAgICAgICA6YnVmZmVyIChjdXJyZW50LWJ1ZmZlcikKKyAgICAgICAgICAgICAgIDpjb21t YW5kIChjb25zIGNvbW1hbmQgYXJncykKKyAgICAgICAgICAgICAgIDpmaWx0ZXIgKGlmIChl c2hlbGwtaW50ZXJhY3RpdmUtb3V0cHV0LXApCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAjJ2VzaGVsbC1vdXRwdXQtZmlsdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgIydl c2hlbGwtaW5zZXJ0aW9uLWZpbHRlcikKKyAgICAgICAgICAgICAgIDpzZW50aW5lbCAjJ2Vz aGVsbC1zZW50aW5lbAorICAgICAgICAgICAgICAgOmNvbm5lY3Rpb24tdHlwZSBjb25uLXR5 cGUKKyAgICAgICAgICAgICAgIDpmaWxlLWhhbmRsZXIgdCkpKQogICAgICAgKGVzaGVsbC1y ZWNvcmQtcHJvY2Vzcy1vYmplY3QgcHJvYykKLSAgICAgIChzZXQtcHJvY2Vzcy1idWZmZXIg cHJvYyAoY3VycmVudC1idWZmZXIpKQotICAgICAgKHNldC1wcm9jZXNzLWZpbHRlciBwcm9j IChpZiAoZXNoZWxsLWludGVyYWN0aXZlLW91dHB1dC1wKQotCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICMnZXNoZWxsLW91dHB1dC1maWx0ZXIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMnZXNoZWxsLWluc2VydGlvbi1maWx0ZXIpKQotICAgICAgKHNldC1w cm9jZXNzLXNlbnRpbmVsIHByb2MgIydlc2hlbGwtc2VudGluZWwpCiAgICAgICAocnVuLWhv b2std2l0aC1hcmdzICdlc2hlbGwtZXhlYy1ob29rIHByb2MpCiAgICAgICAod2hlbiAoZmJv dW5kcCAncHJvY2Vzcy1jb2Rpbmctc3lzdGVtKQogCShsZXQgKChjb2Rpbmctc3lzdGVtcyAo cHJvY2Vzcy1jb2Rpbmctc3lzdGVtIHByb2MpKSkKIAkgIChzZXRxIGRlY29kaW5nIChjYXIg Y29kaW5nLXN5c3RlbXMpCiAJCWVuY29kaW5nIChjZHIgY29kaW5nLXN5c3RlbXMpKSkKLQk7 OyBJZiBzdGFydC1wcm9jZXNzIGRlY2lkZWQgdG8gdXNlIHNvbWUgY29kaW5nIHN5c3RlbSBm b3IKKwk7OyBJZiBgbWFrZS1wcm9jZXNzJyBkZWNpZGVkIHRvIHVzZSBzb21lIGNvZGluZyBz eXN0ZW0gZm9yCiAJOzsgZGVjb2RpbmcgZGF0YSBzZW50IGZyb20gdGhlIHByb2Nlc3MgYW5k IHRoZSBjb2Rpbmcgc3lzdGVtCiAJOzsgZG9lc24ndCBzcGVjaWZ5IEVPTCBjb252ZXJzaW9u LCB3ZSBoYWQgYmV0dGVyIGNvbnZlcnQgQ1JMRgogCTs7IHRvIExGLgogCShpZiAodmVjdG9y cCAoY29kaW5nLXN5c3RlbS1lb2wtdHlwZSBkZWNvZGluZykpCiAJICAgIChzZXRxIGRlY29k aW5nIChjb2Rpbmctc3lzdGVtLWNoYW5nZS1lb2wtY29udmVyc2lvbiBkZWNvZGluZyAnZG9z KQogCQkgIGNoYW5nZWQgdCkpCi0JOzsgRXZlbiBpZiBzdGFydC1wcm9jZXNzIGxlZnQgdGhl IGNvZGluZyBzeXN0ZW0gZm9yIGVuY29kaW5nCisJOzsgRXZlbiBpZiBgbWFrZS1wcm9jZXNz JyBsZWZ0IHRoZSBjb2Rpbmcgc3lzdGVtIGZvciBlbmNvZGluZwogCTs7IGRhdGEgc2VudCBm cm9tIHRoZSBwcm9jZXNzIHVuZGVjaWRlZCwgd2UgaGFkIGJldHRlciB1c2UgdGhlCiAJOzsg c2FtZSBvbmUgYXMgd2hhdCB3ZSB1c2UgZm9yIGRlY29kaW5nLiAgQnV0LCB3ZSBzaG91bGQK IAk7OyBzdXBwcmVzcyBFT0wgY29udmVyc2lvbi4KZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3Ry YW1wLWFkYi5lbCBiL2xpc3AvbmV0L3RyYW1wLWFkYi5lbAppbmRleCBkZTU1ODU2ODMwLi40 NTExMjhhYjIwIDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1hZGIuZWwKKysrIGIvbGlz cC9uZXQvdHJhbXAtYWRiLmVsCkBAIC05MDQsNyArOTA0LDEwIEBAIHRyYW1wLWFkYi1oYW5k bGUtbWFrZS1wcm9jZXNzCiAJICAgIChzaWduYWwgJ3dyb25nLXR5cGUtYXJndW1lbnQgKGxp c3QgIydzeW1ib2xwIGNvZGluZykpKQogCSAgKHdoZW4gKGVxIGNvbm5lY3Rpb24tdHlwZSB0 KQogCSAgICAoc2V0cSBjb25uZWN0aW9uLXR5cGUgJ3B0eSkpCi0JICAodW5sZXNzIChtZW1x IGNvbm5lY3Rpb24tdHlwZSAnKG5pbCBwaXBlIHB0eSkpCisJICAodW5sZXNzIChvciAoYW5k IChjb25zcCBjb25uZWN0aW9uLXR5cGUpCisJCQkgICAobWVtcSAoY2FyIGNvbm5lY3Rpb24t dHlwZSkgJyhuaWwgcGlwZSBwdHkpKQorCQkJICAgKG1lbXEgKGNkciBjb25uZWN0aW9uLXR5 cGUpICcobmlsIHBpcGUgcHR5KSkpCisJCSAgICAgIChtZW1xIGNvbm5lY3Rpb24tdHlwZSAn KG5pbCBwaXBlIHB0eSkpKQogCSAgICAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChs aXN0ICMnc3ltYm9scCBjb25uZWN0aW9uLXR5cGUpKSkKIAkgICh1bmxlc3MgKG9yIChudWxs IGZpbHRlcikgKGVxIGZpbHRlciB0KSAoZnVuY3Rpb25wIGZpbHRlcikpCiAJICAgIChzaWdu YWwgJ3dyb25nLXR5cGUtYXJndW1lbnQgKGxpc3QgIydmdW5jdGlvbnAgZmlsdGVyKSkpCmRp ZmYgLS1naXQgYS9saXNwL25ldC90cmFtcC1zaC5lbCBiL2xpc3AvbmV0L3RyYW1wLXNoLmVs CmluZGV4IGU3NzJhZjllMGEuLjhjNDhjM2ZjMWUgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3Ry YW1wLXNoLmVsCisrKyBiL2xpc3AvbmV0L3RyYW1wLXNoLmVsCkBAIC0yODUxLDcgKzI4NTEs MTAgQEAgdHJhbXAtc2gtaGFuZGxlLW1ha2UtcHJvY2VzcwogCSAgICAoc2lnbmFsICd3cm9u Zy10eXBlLWFyZ3VtZW50IChsaXN0ICMnc3ltYm9scCBjb2RpbmcpKSkKIAkgICh3aGVuIChl cSBjb25uZWN0aW9uLXR5cGUgdCkKIAkgICAgKHNldHEgY29ubmVjdGlvbi10eXBlICdwdHkp KQotCSAgKHVubGVzcyAobWVtcSBjb25uZWN0aW9uLXR5cGUgJyhuaWwgcGlwZSBwdHkpKQor CSAgKHVubGVzcyAob3IgKGFuZCAoY29uc3AgY29ubmVjdGlvbi10eXBlKQorCQkJICAgKG1l bXEgKGNhciBjb25uZWN0aW9uLXR5cGUpICcobmlsIHBpcGUgcHR5KSkKKwkJCSAgIChtZW1x IChjZHIgY29ubmVjdGlvbi10eXBlKSAnKG5pbCBwaXBlIHB0eSkpKQorCQkgICAgICAobWVt cSBjb25uZWN0aW9uLXR5cGUgJyhuaWwgcGlwZSBwdHkpKSkKIAkgICAgKHNpZ25hbCAnd3Jv bmctdHlwZS1hcmd1bWVudCAobGlzdCAjJ3N5bWJvbHAgY29ubmVjdGlvbi10eXBlKSkpCiAJ ICAodW5sZXNzIChvciAobnVsbCBmaWx0ZXIpIChlcSBmaWx0ZXIgdCkgKGZ1bmN0aW9ucCBm aWx0ZXIpKQogCSAgICAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICMnZnVu Y3Rpb25wIGZpbHRlcikpKQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAuZWwgYi9saXNw L25ldC90cmFtcC5lbAppbmRleCBiMTFmZDI5M2NjLi44YjY1NDk0NGZlIDEwMDY0NAotLS0g YS9saXNwL25ldC90cmFtcC5lbAorKysgYi9saXNwL25ldC90cmFtcC5lbApAQCAtNDYwNSw3 ICs0NjA1LDEwIEBAIHRyYW1wLWhhbmRsZS1tYWtlLXByb2Nlc3MKIAkgIChzaWduYWwgJ3dy b25nLXR5cGUtYXJndW1lbnQgKGxpc3QgIydzeW1ib2xwIGNvZGluZykpKQogCSh3aGVuIChl cSBjb25uZWN0aW9uLXR5cGUgdCkKIAkgIChzZXRxIGNvbm5lY3Rpb24tdHlwZSAncHR5KSkK LQkodW5sZXNzIChtZW1xIGNvbm5lY3Rpb24tdHlwZSAnKG5pbCBwaXBlIHB0eSkpCisJKHVu bGVzcyAob3IgKGFuZCAoY29uc3AgY29ubmVjdGlvbi10eXBlKQorCQkJIChtZW1xIChjYXIg Y29ubmVjdGlvbi10eXBlKSAnKG5pbCBwaXBlIHB0eSkpCisJCQkgKG1lbXEgKGNkciBjb25u ZWN0aW9uLXR5cGUpICcobmlsIHBpcGUgcHR5KSkpCisJCSAgICAobWVtcSBjb25uZWN0aW9u LXR5cGUgJyhuaWwgcGlwZSBwdHkpKSkKIAkgIChzaWduYWwgJ3dyb25nLXR5cGUtYXJndW1l bnQgKGxpc3QgIydzeW1ib2xwIGNvbm5lY3Rpb24tdHlwZSkpKQogCSh1bmxlc3MgKG9yIChu dWxsIGZpbHRlcikgKGVxIGZpbHRlciB0KSAoZnVuY3Rpb25wIGZpbHRlcikpCiAJICAoc2ln bmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICMnZnVuY3Rpb25wIGZpbHRlcikpKQpk aWZmIC0tZ2l0IGEvc3JjL2NhbGxwcm9jLmMgYi9zcmMvY2FsbHByb2MuYwppbmRleCBkZDE2 MmYzNmE2Li5hZWMwYTJmNWE1IDEwMDY0NAotLS0gYS9zcmMvY2FsbHByb2MuYworKysgYi9z cmMvY2FsbHByb2MuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIGNhbGxfcHJvY2VzcyAocHRyZGlm Zl90IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncywgaW50IGZpbGVmZCwKIAogICBjaGlsZF9l cnJubwogICAgID0gZW1hY3Nfc3Bhd24gKCZwaWQsIGZpbGVmZCwgZmRfb3V0cHV0LCBmZF9l cnJvciwgbmV3X2FyZ3YsIGVudiwKLSAgICAgICAgICAgICAgICAgICBTU0RBVEEgKGN1cnJl bnRfZGlyKSwgTlVMTCwgJm9sZHNldCk7CisgICAgICAgICAgICAgICAgICAgU1NEQVRBIChj dXJyZW50X2RpciksIE5VTEwsIGZhbHNlLCBmYWxzZSwgJm9sZHNldCk7CiAgIGVhc3NlcnQg KChjaGlsZF9lcnJubyA9PSAwKSA9PSAoMCA8IHBpZCkpOwogCiAgIGlmIChwaWQgPiAwKQpA QCAtMTQxMiwxNCArMTQxMiwxNSBAQCBlbWFjc19wb3NpeF9zcGF3bl9pbml0X2F0dHJpYnV0 ZXMgKHBvc2l4X3NwYXduYXR0cl90ICphdHRyaWJ1dGVzLAogaW50CiBlbWFjc19zcGF3biAo cGlkX3QgKm5ld3BpZCwgaW50IHN0ZF9pbiwgaW50IHN0ZF9vdXQsIGludCBzdGRfZXJyLAog ICAgICAgICAgICAgIGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCwgY29uc3QgY2hhciAqY3dk LAotICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnB0eSwgY29uc3Qgc2lnc2V0X3QgKm9sZHNl dCkKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpwdHlfbmFtZSwgYm9vbCBwdHlfaW4sIGJv b2wgcHR5X291dCwKKyAgICAgICAgICAgICBjb25zdCBzaWdzZXRfdCAqb2xkc2V0KQogewog I2lmIFVTQUJMRV9QT1NJWF9TUEFXTgogICAvKiBQcmVmZXIgdGhlIHNpbXBsZXIgYHBvc2l4 X3NwYXduJyBpZiBhdmFpbGFibGUuICBgcG9zaXhfc3Bhd24nCiAgICAgIGRvZXNuJ3QgeWV0 IHN1cHBvcnQgc2V0dGluZyB1cCBwc2V1ZG90ZXJtaW5hbHMsIHNvIHdlIGZhbGwgYmFjawog ICAgICB0byBgdmZvcmsnIGlmIHdlJ3JlIHN1cHBvc2VkIHRvIHVzZSBhIHBzZXVkb3Rlcm1p bmFsLiAgKi8KIAotICBib29sIHVzZV9wb3NpeF9zcGF3biA9IHB0eSA9PSBOVUxMOworICBi b29sIHVzZV9wb3NpeF9zcGF3biA9IHB0eV9uYW1lID09IE5VTEw7CiAKICAgcG9zaXhfc3Bh d25fZmlsZV9hY3Rpb25zX3QgYWN0aW9uczsKICAgcG9zaXhfc3Bhd25hdHRyX3QgYXR0cmli dXRlczsKQEAgLTE0NzMsNyArMTQ3NCw5IEBAIGVtYWNzX3NwYXduIChwaWRfdCAqbmV3cGlk LCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50IHN0ZF9lcnIsCiAgIC8qIHZmb3JrLCBh bmQgcHJldmVudCBsb2NhbCB2YXJzIGZyb20gYmVpbmcgY2xvYmJlcmVkIGJ5IHRoZSB2Zm9y ay4gICovCiAgIHBpZF90ICp2b2xhdGlsZSBuZXdwaWRfdm9sYXRpbGUgPSBuZXdwaWQ7CiAg IGNvbnN0IGNoYXIgKnZvbGF0aWxlIGN3ZF92b2xhdGlsZSA9IGN3ZDsKLSAgY29uc3QgY2hh ciAqdm9sYXRpbGUgcHR5X3ZvbGF0aWxlID0gcHR5OworICBjb25zdCBjaGFyICp2b2xhdGls ZSBwdHluYW1lX3ZvbGF0aWxlID0gcHR5X25hbWU7CisgIGJvb2wgdm9sYXRpbGUgcHR5aW5f dm9sYXRpbGUgPSBwdHlfaW47CisgIGJvb2wgdm9sYXRpbGUgcHR5b3V0X3ZvbGF0aWxlID0g cHR5X291dDsKICAgY2hhciAqKnZvbGF0aWxlIGFyZ3Zfdm9sYXRpbGUgPSBhcmd2OwogICBp bnQgdm9sYXRpbGUgc3RkaW5fdm9sYXRpbGUgPSBzdGRfaW47CiAgIGludCB2b2xhdGlsZSBz dGRvdXRfdm9sYXRpbGUgPSBzdGRfb3V0OwpAQCAtMTQ5NSw3ICsxNDk4LDkgQEAgZW1hY3Nf c3Bhd24gKHBpZF90ICpuZXdwaWQsIGludCBzdGRfaW4sIGludCBzdGRfb3V0LCBpbnQgc3Rk X2VyciwKIAogICBuZXdwaWQgPSBuZXdwaWRfdm9sYXRpbGU7CiAgIGN3ZCA9IGN3ZF92b2xh dGlsZTsKLSAgcHR5ID0gcHR5X3ZvbGF0aWxlOworICBwdHlfbmFtZSA9IHB0eW5hbWVfdm9s YXRpbGU7CisgIHB0eV9pbiA9IHB0eWluX3ZvbGF0aWxlOworICBwdHlfb3V0ID0gcHR5b3V0 X3ZvbGF0aWxlOwogICBhcmd2ID0gYXJndl92b2xhdGlsZTsKICAgc3RkX2luID0gc3RkaW5f dm9sYXRpbGU7CiAgIHN0ZF9vdXQgPSBzdGRvdXRfdm9sYXRpbGU7CkBAIC0xNTA2LDEzICsx NTExLDEyIEBAIGVtYWNzX3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQg c3RkX291dCwgaW50IHN0ZF9lcnIsCiAgIGlmIChwaWQgPT0gMCkKICNlbmRpZiAvKiBub3Qg V0lORE9XU05UICovCiAgICAgewotICAgICAgYm9vbCBwdHlfZmxhZyA9IHB0eSAhPSBOVUxM OwogICAgICAgLyogTWFrZSB0aGUgcHR5IGJlIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCBv ZiB0aGUgcHJvY2Vzcy4gICovCiAjaWZkZWYgSEFWRV9QVFlTCiAgICAgICBkaXNzb2NpYXRl X2NvbnRyb2xsaW5nX3R0eSAoKTsKIAogICAgICAgLyogTWFrZSB0aGUgcHR5J3MgdGVybWlu YWwgdGhlIGNvbnRyb2xsaW5nIHRlcm1pbmFsLiAgKi8KLSAgICAgIGlmIChwdHlfZmxhZyAm JiBzdGRfaW4gPj0gMCkKKyAgICAgIGlmIChwdHlfaW4gJiYgc3RkX2luID49IDApCiAJewog I2lmZGVmIFRJT0NTQ1RUWQogCSAgLyogV2UgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUKQEAg LTE1MjEsNyArMTUyNSw3IEBAIGVtYWNzX3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3Rk X2luLCBpbnQgc3RkX291dCwgaW50IHN0ZF9lcnIsCiAjZW5kaWYKIAl9CiAjaWYgZGVmaW5l ZCAoTERJU0MxKQotICAgICAgaWYgKHB0eV9mbGFnICYmIHN0ZF9pbiA+PSAwKQorICAgICAg aWYgKHB0eV9pbiAmJiBzdGRfaW4gPj0gMCkKIAl7CiAJICBzdHJ1Y3QgdGVybWlvcyB0Owog CSAgdGNnZXRhdHRyIChzdGRfaW4sICZ0KTsKQEAgLTE1MzEsNyArMTUzNSw3IEBAIGVtYWNz X3NwYXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50IHN0 ZF9lcnIsCiAJfQogI2Vsc2UKICNpZiBkZWZpbmVkIChOVFRZRElTQykgJiYgZGVmaW5lZCAo VElPQ1NFVEQpCi0gICAgICBpZiAocHR5X2ZsYWcgJiYgc3RkX2luID49IDApCisgICAgICBp ZiAocHR5X2luICYmIHN0ZF9pbiA+PSAwKQogCXsKIAkgIC8qIFVzZSBuZXcgbGluZSBkaXNj aXBsaW5lLiAgKi8KIAkgIGludCBsZGlzYyA9IE5UVFlESVNDOwpAQCAtMTU0OCwxOCArMTU1 MiwyMSBAQCBlbWFjc19zcGF3biAocGlkX3QgKm5ld3BpZCwgaW50IHN0ZF9pbiwgaW50IHN0 ZF9vdXQsIGludCBzdGRfZXJyLAogICAgICBib3RoIFRJT0NTQ1RUWSBpcyBkZWZpbmVkLiAg Ki8KIAkvKiBOb3cgY2xvc2UgdGhlIHB0eSAoaWYgd2UgaGFkIGl0IG9wZW4pIGFuZCByZW9w ZW4gaXQuCiAJICAgVGhpcyBtYWtlcyB0aGUgcHR5IHRoZSBjb250cm9sbGluZyB0ZXJtaW5h bCBvZiB0aGUgc3VicHJvY2Vzcy4gICovCi0gICAgICBpZiAocHR5X2ZsYWcpCisgICAgICBp ZiAocHR5X25hbWUpCiAJewogCiAJICAvKiBJIHdvbmRlciBpZiBlbWFjc19jbG9zZSAoZW1h Y3Nfb3BlbiAocHR5LCAuLi4pKQogCSAgICAgd291bGQgd29yaz8gICovCi0JICBpZiAoc3Rk X2luID49IDApCisJICBpZiAocHR5X2luICYmIHN0ZF9pbiA+PSAwKQogCSAgICBlbWFjc19j bG9zZSAoc3RkX2luKTsKLSAgICAgICAgICBzdGRfb3V0ID0gc3RkX2luID0gZW1hY3Nfb3Bl bl9ub3F1aXQgKHB0eSwgT19SRFdSLCAwKTsKLQorCSAgaW50IHB0eWZkID0gZW1hY3Nfb3Bl bl9ub3F1aXQgKHB0eV9uYW1lLCBPX1JEV1IsIDApOworCSAgaWYgKHB0eV9pbikKKwkgICAg c3RkX2luID0gcHR5ZmQ7CisJICBpZiAocHR5X291dCkKKwkgICAgc3RkX291dCA9IHB0eWZk OwogCSAgaWYgKHN0ZF9pbiA8IDApCiAJICAgIHsKLQkgICAgICBlbWFjc19wZXJyb3IgKHB0 eSk7CisJICAgICAgZW1hY3NfcGVycm9yIChwdHlfbmFtZSk7CiAJICAgICAgX2V4aXQgKEVY SVRfQ0FOQ0VMRUQpOwogCSAgICB9CiAKQEAgLTE1OTksNyArMTYwNiw3IEBAIGVtYWNzX3Nw YXduIChwaWRfdCAqbmV3cGlkLCBpbnQgc3RkX2luLCBpbnQgc3RkX291dCwgaW50IHN0ZF9l cnIsCiAgICAgICAvKiBTdG9wIGJsb2NraW5nIFNJR0NITEQgaW4gdGhlIGNoaWxkLiAgKi8K ICAgICAgIHVuYmxvY2tfY2hpbGRfc2lnbmFsIChvbGRzZXQpOwogCi0gICAgICBpZiAocHR5 X2ZsYWcpCisgICAgICBpZiAocHR5X291dCkKIAljaGlsZF9zZXR1cF90dHkgKHN0ZF9vdXQp OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9saXNwLmggYi9zcmMvbGlzcC5oCmluZGV4 IDJhZmUxMzU2NzQuLjI2NDIyODYxOGQgMTAwNjQ0Ci0tLSBhL3NyYy9saXNwLmgKKysrIGIv c3JjL2xpc3AuaApAQCAtNDk0MSw3ICs0OTQxLDggQEAgI2RlZmluZSBEQUVNT05fUlVOTklO RyAodzMyX2RhZW1vbl9ldmVudCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKICNlbmRpZgog CiBleHRlcm4gaW50IGVtYWNzX3NwYXduIChwaWRfdCAqLCBpbnQsIGludCwgaW50LCBjaGFy ICoqLCBjaGFyICoqLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBj b25zdCBjaGFyICosIGNvbnN0IHNpZ3NldF90ICopOworICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGJvb2wsIGJvb2wsCisgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzaWdzZXRfdCAqKTsKIGV4dGVybiBjaGFyICoqbWFrZV9l bnZpcm9ubWVudF9ibG9jayAoTGlzcF9PYmplY3QpIEFUVFJJQlVURV9SRVRVUk5TX05PTk5V TEw7CiBleHRlcm4gdm9pZCBpbml0X2NhbGxwcm9jXzEgKHZvaWQpOwogZXh0ZXJuIHZvaWQg aW5pdF9jYWxscHJvYyAodm9pZCk7CmRpZmYgLS1naXQgYS9zcmMvcHJvY2Vzcy5jIGIvc3Jj L3Byb2Nlc3MuYwppbmRleCBkNmQ1MWIyNmUxLi5kYTVlOWNiMTgyIDEwMDY0NAotLS0gYS9z cmMvcHJvY2Vzcy5jCisrKyBiL3NyYy9wcm9jZXNzLmMKQEAgLTEzMTYsNiArMTMxNiwxOSBA QCBzZXRfcHJvY2Vzc19maWx0ZXJfbWFza3MgKHN0cnVjdCBMaXNwX1Byb2Nlc3MgKnApCiAg ICAgYWRkX3Byb2Nlc3NfcmVhZF9mZCAocC0+aW5mZCk7CiB9CiAKK3N0YXRpYyBib29sCitp c19wdHlfZnJvbV9zeW1ib2wgKExpc3BfT2JqZWN0IHN5bWJvbCkKK3sKKyAgaWYgKEVRIChz eW1ib2wsIFFwdHkpKQorICAgIHJldHVybiB0cnVlOworICBlbHNlIGlmIChFUSAoc3ltYm9s LCBRcGlwZSkpCisgICAgcmV0dXJuIGZhbHNlOworICBlbHNlIGlmIChOSUxQIChzeW1ib2wp KQorICAgIHJldHVybiAhTklMUCAoVnByb2Nlc3NfY29ubmVjdGlvbl90eXBlKTsKKyAgZWxz ZQorICAgIHJlcG9ydF9maWxlX2Vycm9yICgiVW5rbm93biBjb25uZWN0aW9uIHR5cGUiLCBz eW1ib2wpOworfQorCiBERUZVTiAoInNldC1wcm9jZXNzLWZpbHRlciIsIEZzZXRfcHJvY2Vz c19maWx0ZXIsIFNzZXRfcHJvY2Vzc19maWx0ZXIsCiAgICAgICAgMiwgMiwgMCwKICAgICAg ICBkb2M6IC8qIEdpdmUgUFJPQ0VTUyB0aGUgZmlsdGVyIGZ1bmN0aW9uIEZJTFRFUjsgbmls IG1lYW5zIGRlZmF1bHQuCkBAIC0xNzQxLDE1ICsxNzU0LDE4IEBAIERFRlVOICgibWFrZS1w cm9jZXNzIiwgRm1ha2VfcHJvY2VzcywgU21ha2VfcHJvY2VzcywgMCwgTUFOWSwgMCwKIDpj b25uZWN0aW9uLXR5cGUgVFlQRSAtLSBUWVBFIGlzIGNvbnRyb2wgdHlwZSBvZiBkZXZpY2Ug dXNlZCB0bwogY29tbXVuaWNhdGUgd2l0aCBzdWJwcm9jZXNzZXMuICBWYWx1ZXMgYXJlIGBw aXBlJyB0byB1c2UgYSBwaXBlLCBgcHR5JwogdG8gdXNlIGEgcHR5LCBvciBuaWwgdG8gdXNl IHRoZSBkZWZhdWx0IHNwZWNpZmllZCB0aHJvdWdoCi1gcHJvY2Vzcy1jb25uZWN0aW9uLXR5 cGUnLgorYHByb2Nlc3MtY29ubmVjdGlvbi10eXBlJy4gIElmIFRZUEUgaXMgYSBjb25zIChJ TlBVVCAuIE9VVFBVVCksIHRoZW4KK0lOUFVUIHdpbGwgYmUgdXNlZCBmb3Igc3RhbmRhcmQg aW5wdXQgYW5kIE9VVFBVVCBmb3Igc3RhbmRhcmQgb3V0cHV0CisoYW5kIHN0YW5kYXJkIGVy cm9yIGlmIGA6c3RkZXJyJyBpcyBuaWwpLgogCiA6ZmlsdGVyIEZJTFRFUiAtLSBJbnN0YWxs IEZJTFRFUiBhcyB0aGUgcHJvY2VzcyBmaWx0ZXIuCiAKIDpzZW50aW5lbCBTRU5USU5FTCAt LSBJbnN0YWxsIFNFTlRJTkVMIGFzIHRoZSBwcm9jZXNzIHNlbnRpbmVsLgogCiA6c3RkZXJy IFNUREVSUiAtLSBTVERFUlIgaXMgZWl0aGVyIGEgYnVmZmVyIG9yIGEgcGlwZSBwcm9jZXNz IGF0dGFjaGVkCi10byB0aGUgc3RhbmRhcmQgZXJyb3Igb2Ygc3VicHJvY2Vzcy4gIFNwZWNp ZnlpbmcgdGhpcyBpbXBsaWVzCi1gOmNvbm5lY3Rpb24tdHlwZScgaXMgc2V0IHRvIGBwaXBl Jy4gIElmIFNUREVSUiBpcyBuaWwsIHN0YW5kYXJkIGVycm9yCit0byB0aGUgc3RhbmRhcmQg ZXJyb3Igb2Ygc3VicHJvY2Vzcy4gIFdoZW4gc3BlY2lmeWluZyB0aGlzLCB0aGUKK3N1YnBy b2Nlc3MncyBzdGFuZGFyZCBlcnJvciB3aWxsIGFsd2F5cyBjb21tdW5pY2F0ZSB2aWEgYSBw aXBlLCBubworbWF0dGVyIHRoZSB2YWx1ZSBvZiBgOmNvbm5lY3Rpb24tdHlwZScuICBJZiBT VERFUlIgaXMgbmlsLCBzdGFuZGFyZCBlcnJvcgogaXMgbWl4ZWQgd2l0aCBzdGFuZGFyZCBv dXRwdXQgYW5kIHNlbnQgdG8gQlVGRkVSIG9yIEZJTFRFUi4gIChOb3RlCiB0aGF0IHNwZWNp ZnlpbmcgOnN0ZGVyciB3aWxsIGNyZWF0ZSBhIG5ldywgc2VwYXJhdGUgKGJ1dCBhc3NvY2lh dGVkKQogcHJvY2Vzcywgd2l0aCBpdHMgb3duIGZpbHRlciBhbmQgc2VudGluZWwuICBTZWUK QEAgLTE4NDUsMjIgKzE4NjEsMjAgQEAgREVGVU4gKCJtYWtlLXByb2Nlc3MiLCBGbWFrZV9w cm9jZXNzLCBTbWFrZV9wcm9jZXNzLCAwLCBNQU5ZLCAwLAogICBDSEVDS19UWVBFIChOSUxQ ICh0ZW0pLCBRbnVsbCwgdGVtKTsKIAogICB0ZW0gPSBwbGlzdF9nZXQgKGNvbnRhY3QsIFFD Y29ubmVjdGlvbl90eXBlKTsKLSAgaWYgKEVRICh0ZW0sIFFwdHkpKQotICAgIFhQUk9DRVNT IChwcm9jKS0+cHR5X2ZsYWcgPSB0cnVlOwotICBlbHNlIGlmIChFUSAodGVtLCBRcGlwZSkp Ci0gICAgWFBST0NFU1MgKHByb2MpLT5wdHlfZmxhZyA9IGZhbHNlOwotICBlbHNlIGlmIChO SUxQICh0ZW0pKQotICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X2ZsYWcgPSAhTklMUCAoVnBy b2Nlc3NfY29ubmVjdGlvbl90eXBlKTsKKyAgaWYgKENPTlNQICh0ZW0pKQorICAgIHsKKyAg ICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X2luID0gaXNfcHR5X2Zyb21fc3ltYm9sIChYQ0FS ICh0ZW0pKTsKKyAgICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X291dCA9IGlzX3B0eV9mcm9t X3N5bWJvbCAoWENEUiAodGVtKSk7CisgICAgfQogICBlbHNlCi0gICAgcmVwb3J0X2ZpbGVf ZXJyb3IgKCJVbmtub3duIGNvbm5lY3Rpb24gdHlwZSIsIHRlbSk7Ci0KLSAgaWYgKCFOSUxQ IChzdGRlcnJwcm9jKSkKICAgICB7Ci0gICAgICBwc2V0X3N0ZGVycnByb2MgKFhQUk9DRVNT IChwcm9jKSwgc3RkZXJycHJvYyk7Ci0KLSAgICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X2Zs YWcgPSBmYWxzZTsKKyAgICAgIFhQUk9DRVNTIChwcm9jKS0+cHR5X2luID0gWFBST0NFU1Mg KHByb2MpLT5wdHlfb3V0ID0KKwlpc19wdHlfZnJvbV9zeW1ib2wgKHRlbSk7CiAgICAgfQog CisgIGlmICghTklMUCAoc3RkZXJycHJvYykpCisgICAgcHNldF9zdGRlcnJwcm9jIChYUFJP Q0VTUyAocHJvYyksIHN0ZGVycnByb2MpOworCiAjaWZkZWYgSEFWRV9HTlVUTFMKICAgLyog QUtBIEdOVVRMU19JTklUU1RBR0UocHJvYykuICAqLwogICB2ZXJpZnkgKEdOVVRMU19TVEFH RV9FTVBUWSA9PSAwKTsKQEAgLTIwOTksNjYgKzIxMTMsODAgQEAgdmVyaWZ5IChQUk9DRVNT X09QRU5fRkRTID09IEVYRUNfTU9OSVRPUl9PVVRQVVQgKyAxKTsKIGNyZWF0ZV9wcm9jZXNz IChMaXNwX09iamVjdCBwcm9jZXNzLCBjaGFyICoqbmV3X2FyZ3YsIExpc3BfT2JqZWN0IGN1 cnJlbnRfZGlyKQogewogICBzdHJ1Y3QgTGlzcF9Qcm9jZXNzICpwID0gWFBST0NFU1MgKHBy b2Nlc3MpOwotICBpbnQgaW5jaGFubmVsLCBvdXRjaGFubmVsOworICBpbnQgaW5jaGFubmVs ID0gLTEsIG91dGNoYW5uZWwgPSAtMTsKICAgcGlkX3QgcGlkID0gLTE7CiAgIGludCB2Zm9y a19lcnJubzsKICAgaW50IGZvcmtpbiwgZm9ya291dCwgZm9ya2VyciA9IC0xOwotICBib29s IHB0eV9mbGFnID0gMDsKKyAgYm9vbCBwdHlfaW4gPSBmYWxzZSwgcHR5X291dCA9IGZhbHNl OwogICBjaGFyIHB0eV9uYW1lW1BUWV9OQU1FX1NJWkVdOwogICBMaXNwX09iamVjdCBsaXNw X3B0eV9uYW1lID0gUW5pbDsKKyAgaW50IHB0eWNoYW5uZWwgPSAtMSwgcHR5X3R0eSA9IC0x OwogICBzaWdzZXRfdCBvbGRzZXQ7CiAKICAgLyogRW5zdXJlIHRoYXQgdGhlIFNJR0NITEQg aGFuZGxlciBjYW4gbm90aWZ5CiAgICAgIGB3YWl0X3JlYWRpbmdfcHJvY2Vzc19vdXRwdXQn LiAgKi8KICAgY2hpbGRfc2lnbmFsX2luaXQgKCk7CiAKLSAgaW5jaGFubmVsID0gb3V0Y2hh bm5lbCA9IC0xOwotCi0gIGlmIChwLT5wdHlfZmxhZykKLSAgICBvdXRjaGFubmVsID0gaW5j aGFubmVsID0gYWxsb2NhdGVfcHR5IChwdHlfbmFtZSk7CisgIGlmIChwLT5wdHlfaW4gfHwg cC0+cHR5X291dCkKKyAgICBwdHljaGFubmVsID0gYWxsb2NhdGVfcHR5IChwdHlfbmFtZSk7 CiAKLSAgaWYgKGluY2hhbm5lbCA+PSAwKQorICBpZiAocHR5Y2hhbm5lbCA+PSAwKQogICAg IHsKLSAgICAgIHAtPm9wZW5fZmRbUkVBRF9GUk9NX1NVQlBST0NFU1NdID0gaW5jaGFubmVs OwogI2lmICEgZGVmaW5lZCAoVVNHKSB8fCBkZWZpbmVkIChVU0dfU1VCVFRZX1dPUktTKQog ICAgICAgLyogT24gbW9zdCBVU0cgc3lzdGVtcyBpdCBkb2VzIG5vdCB3b3JrIHRvIG9wZW4g dGhlIHB0eSdzIHR0eSBoZXJlLAogCSB0aGVuIGNsb3NlIGl0IGFuZCByZW9wZW4gaXQgaW4g dGhlIGNoaWxkLiAgKi8KICAgICAgIC8qIERvbid0IGxldCB0aGlzIHRlcm1pbmFsIGJlY29t ZSBvdXIgY29udHJvbGxpbmcgdGVybWluYWwKIAkgKGluIGNhc2Ugd2UgZG9uJ3QgaGF2ZSBv bmUpLiAgKi8KLSAgICAgIGZvcmtvdXQgPSBmb3JraW4gPSBlbWFjc19vcGVuIChwdHlfbmFt ZSwgT19SRFdSIHwgT19OT0NUVFksIDApOwotICAgICAgaWYgKGZvcmtpbiA8IDApCisgICAg ICBwdHlfdHR5ID0gZW1hY3Nfb3BlbiAocHR5X25hbWUsIE9fUkRXUiB8IE9fTk9DVFRZLCAw KTsKKyAgICAgIGlmIChwdHlfdHR5IDwgMCkKIAlyZXBvcnRfZmlsZV9lcnJvciAoIk9wZW5p bmcgcHR5IiwgUW5pbCk7Ci0gICAgICBwLT5vcGVuX2ZkW1NVQlBST0NFU1NfU1RESU5dID0g Zm9ya2luOwotI2Vsc2UKLSAgICAgIGZvcmtpbiA9IGZvcmtvdXQgPSAtMTsKICNlbmRpZiAv KiBub3QgVVNHLCBvciBVU0dfU1VCVFRZX1dPUktTICovCi0gICAgICBwdHlfZmxhZyA9IDE7 CisgICAgICBwdHlfaW4gPSBwLT5wdHlfaW47CisgICAgICBwdHlfb3V0ID0gcC0+cHR5X291 dDsKICAgICAgIGxpc3BfcHR5X25hbWUgPSBidWlsZF9zdHJpbmcgKHB0eV9uYW1lKTsKICAg ICB9CisKKyAgLyogU2V0IHVwIHN0ZGluIGZvciB0aGUgY2hpbGQgcHJvY2Vzcy4gICovCisg IGlmIChwdHljaGFubmVsID49IDAgJiYgcC0+cHR5X2luKQorICAgIHsKKyAgICAgIHAtPm9w ZW5fZmRbU1VCUFJPQ0VTU19TVERJTl0gPSBmb3JraW4gPSBwdHlfdHR5OworICAgICAgb3V0 Y2hhbm5lbCA9IHB0eWNoYW5uZWw7CisgICAgfQogICBlbHNlCiAgICAgewotICAgICAgaWYg KGVtYWNzX3BpcGUgKHAtPm9wZW5fZmQgKyBTVUJQUk9DRVNTX1NURElOKSAhPSAwCi0JICB8 fCBlbWFjc19waXBlIChwLT5vcGVuX2ZkICsgUkVBRF9GUk9NX1NVQlBST0NFU1MpICE9IDAp CisgICAgICBpZiAoZW1hY3NfcGlwZSAocC0+b3Blbl9mZCArIFNVQlBST0NFU1NfU1RESU4p ICE9IDApCiAJcmVwb3J0X2ZpbGVfZXJyb3IgKCJDcmVhdGluZyBwaXBlIiwgUW5pbCk7CiAg ICAgICBmb3JraW4gPSBwLT5vcGVuX2ZkW1NVQlBST0NFU1NfU1RESU5dOwogICAgICAgb3V0 Y2hhbm5lbCA9IHAtPm9wZW5fZmRbV1JJVEVfVE9fU1VCUFJPQ0VTU107CisgICAgfQorCisg IC8qIFNldCB1cCBzdGRvdXQgZm9yIHRoZSBjaGlsZCBwcm9jZXNzLiAgKi8KKyAgaWYgKHB0 eWNoYW5uZWwgPj0gMCAmJiBwLT5wdHlfb3V0KQorICAgIHsKKyAgICAgIGZvcmtvdXQgPSBw dHlfdHR5OworICAgICAgcC0+b3Blbl9mZFtSRUFEX0ZST01fU1VCUFJPQ0VTU10gPSBpbmNo YW5uZWwgPSBwdHljaGFubmVsOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGlmIChl bWFjc19waXBlIChwLT5vcGVuX2ZkICsgUkVBRF9GUk9NX1NVQlBST0NFU1MpICE9IDApCisJ cmVwb3J0X2ZpbGVfZXJyb3IgKCJDcmVhdGluZyBwaXBlIiwgUW5pbCk7CiAgICAgICBpbmNo YW5uZWwgPSBwLT5vcGVuX2ZkW1JFQURfRlJPTV9TVUJQUk9DRVNTXTsKICAgICAgIGZvcmtv dXQgPSBwLT5vcGVuX2ZkW1NVQlBST0NFU1NfU1RET1VUXTsKIAogI2lmIGRlZmluZWQoR05V X0xJTlVYKSAmJiBkZWZpbmVkKEZfU0VUUElQRV9TWikKICAgICAgIGZjbnRsIChpbmNoYW5u ZWwsIEZfU0VUUElQRV9TWiwgcmVhZF9wcm9jZXNzX291dHB1dF9tYXgpOwogI2VuZGlmCisg ICAgfQogCi0gICAgICBpZiAoIU5JTFAgKHAtPnN0ZGVycnByb2MpKQotCXsKLQkgIHN0cnVj dCBMaXNwX1Byb2Nlc3MgKnBwID0gWFBST0NFU1MgKHAtPnN0ZGVycnByb2MpOworICBpZiAo IU5JTFAgKHAtPnN0ZGVycnByb2MpKQorICAgIHsKKyAgICAgIHN0cnVjdCBMaXNwX1Byb2Nl c3MgKnBwID0gWFBST0NFU1MgKHAtPnN0ZGVycnByb2MpOwogCi0JICBmb3JrZXJyID0gcHAt Pm9wZW5fZmRbU1VCUFJPQ0VTU19TVERPVVRdOworICAgICAgZm9ya2VyciA9IHBwLT5vcGVu X2ZkW1NVQlBST0NFU1NfU1RET1VUXTsKIAotCSAgLyogQ2xvc2UgdW5uZWNlc3NhcnkgZmls ZSBkZXNjcmlwdG9ycy4gICovCi0JICBjbG9zZV9wcm9jZXNzX2ZkICgmcHAtPm9wZW5fZmRb V1JJVEVfVE9fU1VCUFJPQ0VTU10pOwotCSAgY2xvc2VfcHJvY2Vzc19mZCAoJnBwLT5vcGVu X2ZkW1NVQlBST0NFU1NfU1RESU5dKTsKLQl9CisgICAgICAvKiBDbG9zZSB1bm5lY2Vzc2Fy eSBmaWxlIGRlc2NyaXB0b3JzLiAgKi8KKyAgICAgIGNsb3NlX3Byb2Nlc3NfZmQgKCZwcC0+ b3Blbl9mZFtXUklURV9UT19TVUJQUk9DRVNTXSk7CisgICAgICBjbG9zZV9wcm9jZXNzX2Zk ICgmcHAtPm9wZW5fZmRbU1VCUFJPQ0VTU19TVERJTl0pOwogICAgIH0KIAogICBpZiAoRkRf U0VUU0laRSA8PSBpbmNoYW5uZWwgfHwgRkRfU0VUU0laRSA8PSBvdXRjaGFubmVsKQpAQCAt MjE4Myw3ICsyMjExLDggQEAgY3JlYXRlX3Byb2Nlc3MgKExpc3BfT2JqZWN0IHByb2Nlc3Ms IGNoYXIgKipuZXdfYXJndiwgTGlzcF9PYmplY3QgY3VycmVudF9kaXIpCiAgICAgIHdlIGp1 c3QgcmVvcGVuIHRoZSBkZXZpY2UgKHNlZSBlbWFjc19nZXRfdHR5X3BncnApIGFzIHRoaXMg aXMKICAgICAgbW9yZSBwb3J0YWJsZSAoc2VlIFVTR19TVUJUVFlfV09SS1MgYWJvdmUpLiAg Ki8KIAotICBwLT5wdHlfZmxhZyA9IHB0eV9mbGFnOworICBwLT5wdHlfaW4gPSBwdHlfaW47 CisgIHAtPnB0eV9vdXQgPSBwdHlfb3V0OwogICBwc2V0X3N0YXR1cyAocCwgUXJ1bik7CiAK ICAgaWYgKCFFUSAocC0+Y29tbWFuZCwgUXQpCkBAIC0yMTk5LDEzICsyMjI4LDE1IEBAIGNy ZWF0ZV9wcm9jZXNzIChMaXNwX09iamVjdCBwcm9jZXNzLCBjaGFyICoqbmV3X2FyZ3YsIExp c3BfT2JqZWN0IGN1cnJlbnRfZGlyKQogICBibG9ja19pbnB1dCAoKTsKICAgYmxvY2tfY2hp bGRfc2lnbmFsICgmb2xkc2V0KTsKIAotICBwdHlfZmxhZyA9IHAtPnB0eV9mbGFnOwotICBl YXNzZXJ0IChwdHlfZmxhZyA9PSAhIE5JTFAgKGxpc3BfcHR5X25hbWUpKTsKKyAgcHR5X2lu ID0gcC0+cHR5X2luOworICBwdHlfb3V0ID0gcC0+cHR5X291dDsKKyAgZWFzc2VydCAoKHB0 eV9pbiB8fCBwdHlfb3V0KSA9PSAhIE5JTFAgKGxpc3BfcHR5X25hbWUpKTsKIAogICB2Zm9y a19lcnJubwogICAgID0gZW1hY3Nfc3Bhd24gKCZwaWQsIGZvcmtpbiwgZm9ya291dCwgZm9y a2VyciwgbmV3X2FyZ3YsIGVudiwKICAgICAgICAgICAgICAgICAgICBTU0RBVEEgKGN1cnJl bnRfZGlyKSwKLSAgICAgICAgICAgICAgICAgICBwdHlfZmxhZyA/IFNTREFUQSAobGlzcF9w dHlfbmFtZSkgOiBOVUxMLCAmb2xkc2V0KTsKKyAgICAgICAgICAgICAgICAgICBwdHlfaW4g fHwgcHR5X291dCA/IFNTREFUQSAobGlzcF9wdHlfbmFtZSkgOiBOVUxMLAorICAgICAgICAg ICAgICAgICAgIHB0eV9pbiwgcHR5X291dCwgJm9sZHNldCk7CiAKICAgZWFzc2VydCAoKHZm b3JrX2Vycm5vID09IDApID09ICgwIDwgcGlkKSk7CiAKQEAgLTIyNjMsNyArMjI5NCw3IEBA IGNyZWF0ZV9wdHkgKExpc3BfT2JqZWN0IHByb2Nlc3MpCiB7CiAgIHN0cnVjdCBMaXNwX1By b2Nlc3MgKnAgPSBYUFJPQ0VTUyAocHJvY2Vzcyk7CiAgIGNoYXIgcHR5X25hbWVbUFRZX05B TUVfU0laRV07Ci0gIGludCBwdHlfZmQgPSAhcC0+cHR5X2ZsYWcgPyAtMSA6IGFsbG9jYXRl X3B0eSAocHR5X25hbWUpOworICBpbnQgcHR5X2ZkID0gIShwLT5wdHlfaW4gfHwgcC0+cHR5 X291dCkgPyAtMSA6IGFsbG9jYXRlX3B0eSAocHR5X25hbWUpOwogCiAgIGlmIChwdHlfZmQg Pj0gMCkKICAgICB7CkBAIC0yMzAxLDcgKzIzMzIsNyBAQCBjcmVhdGVfcHR5IChMaXNwX09i amVjdCBwcm9jZXNzKQogCSB3ZSBqdXN0IHJlb3BlbiB0aGUgZGV2aWNlIChzZWUgZW1hY3Nf Z2V0X3R0eV9wZ3JwKSBhcyB0aGlzIGlzCiAJIG1vcmUgcG9ydGFibGUgKHNlZSBVU0dfU1VC VFRZX1dPUktTIGFib3ZlKS4gICovCiAKLSAgICAgIHAtPnB0eV9mbGFnID0gMTsKKyAgICAg IHAtPnB0eV9pbiA9IHAtPnB0eV9vdXQgPSB0cnVlOwogICAgICAgcHNldF9zdGF0dXMgKHAs IFFydW4pOwogICAgICAgc2V0dXBfcHJvY2Vzc19jb2Rpbmdfc3lzdGVtcyAocHJvY2Vzcyk7 CiAKQEAgLTI0MTIsNyArMjQ0Myw3IEBAIERFRlVOICgibWFrZS1waXBlLXByb2Nlc3MiLCBG bWFrZV9waXBlX3Byb2Nlc3MsIFNtYWtlX3BpcGVfcHJvY2VzcywKICAgICBwLT5raWxsX3dp dGhvdXRfcXVlcnkgPSAxOwogICBpZiAodGVtID0gcGxpc3RfZ2V0IChjb250YWN0LCBRQ3N0 b3ApLCAhTklMUCAodGVtKSkKICAgICBwc2V0X2NvbW1hbmQgKHAsIFF0KTsKLSAgZWFzc2Vy dCAoISBwLT5wdHlfZmxhZyk7CisgIGVhc3NlcnQgKCEgcC0+cHR5X2luICYmICEgcC0+cHR5 X291dCk7CiAKICAgaWYgKCFFUSAocC0+Y29tbWFuZCwgUXQpCiAgICAgICAmJiAhRVEgKHAt PmZpbHRlciwgUXQpKQpAQCAtMzE0Nyw3ICszMTc4LDcgQEAgREVGVU4gKCJtYWtlLXNlcmlh bC1wcm9jZXNzIiwgRm1ha2Vfc2VyaWFsX3Byb2Nlc3MsIFNtYWtlX3NlcmlhbF9wcm9jZXNz LAogICAgIHAtPmtpbGxfd2l0aG91dF9xdWVyeSA9IDE7CiAgIGlmICh0ZW0gPSBwbGlzdF9n ZXQgKGNvbnRhY3QsIFFDc3RvcCksICFOSUxQICh0ZW0pKQogICAgIHBzZXRfY29tbWFuZCAo cCwgUXQpOwotICBlYXNzZXJ0ICghIHAtPnB0eV9mbGFnKTsKKyAgZWFzc2VydCAoISBwLT5w dHlfaW4gJiYgISBwLT5wdHlfb3V0KTsKIAogICBpZiAoIUVRIChwLT5jb21tYW5kLCBRdCkK ICAgICAgICYmICFFUSAocC0+ZmlsdGVyLCBRdCkpCkBAIC02Nzk4LDcgKzY4MjksNyBAQCBw cm9jZXNzX3NlbmRfc2lnbmFsIChMaXNwX09iamVjdCBwcm9jZXNzLCBpbnQgc2lnbm8sIExp c3BfT2JqZWN0IGN1cnJlbnRfZ3JvdXAsCiAgICAgZXJyb3IgKCJQcm9jZXNzICVzIGlzIG5v dCBhY3RpdmUiLAogCSAgIFNEQVRBIChwLT5uYW1lKSk7CiAKLSAgaWYgKCFwLT5wdHlfZmxh ZykKKyAgaWYgKCEgcC0+cHR5X2luKQogICAgIGN1cnJlbnRfZ3JvdXAgPSBRbmlsOwogCiAg IC8qIElmIHdlIGFyZSB1c2luZyBwZ3JwcywgZ2V0IGEgcGdycCBudW1iZXIgYW5kIG1ha2Ug aXQgbmVnYXRpdmUuICAqLwpAQCAtNzE2Nyw3ICs3MTk4LDcgQEAgREVGVU4gKCJwcm9jZXNz LXNlbmQtZW9mIiwgRnByb2Nlc3Nfc2VuZF9lb2YsIFNwcm9jZXNzX3NlbmRfZW9mLCAwLCAx LCAwLAogICAgICAgc2VuZF9wcm9jZXNzIChwcm9jLCAiIiwgMCwgUW5pbCk7CiAgICAgfQog Ci0gIGlmIChYUFJPQ0VTUyAocHJvYyktPnB0eV9mbGFnKQorICBpZiAoWFBST0NFU1MgKHBy b2MpLT5wdHlfaW4pCiAgICAgc2VuZF9wcm9jZXNzIChwcm9jLCAiXDAwNCIsIDEsIFFuaWwp OwogICBlbHNlIGlmIChFUSAoWFBST0NFU1MgKHByb2MpLT50eXBlLCBRc2VyaWFsKSkKICAg ICB7CmRpZmYgLS1naXQgYS9zcmMvcHJvY2Vzcy5oIGIvc3JjL3Byb2Nlc3MuaAppbmRleCAz OTJiNjYxY2U2Li45MmJhZjBjNGNiIDEwMDY0NAotLS0gYS9zcmMvcHJvY2Vzcy5oCisrKyBi L3NyYy9wcm9jZXNzLmgKQEAgLTE1Niw4ICsxNTYsOSBAQCAjZGVmaW5lIEVNQUNTX1BST0NF U1NfSAogICAgIC8qIFRydWUgbWVhbnMga2lsbCBzaWxlbnRseSBpZiBFbWFjcyBpcyBleGl0 ZWQuCiAgICAgICAgVGhpcyBpcyB0aGUgaW52ZXJzZSBvZiB0aGUgYHF1ZXJ5LW9uLWV4aXQn IGZsYWcuICAqLwogICAgIGJvb2xfYmYga2lsbF93aXRob3V0X3F1ZXJ5IDogMTsKLSAgICAv KiBUcnVlIGlmIGNvbW11bmljYXRpbmcgdGhyb3VnaCBhIHB0eS4gICovCi0gICAgYm9vbF9i ZiBwdHlfZmxhZyA6IDE7CisgICAgLyogVHJ1ZSBpZiBjb21tdW5pY2F0aW5nIHRocm91Z2gg YSBwdHkgZm9yIGlucHV0IG9yIG91dHB1dC4gICovCisgICAgYm9vbF9iZiBwdHlfaW4gOiAx OworICAgIGJvb2xfYmYgcHR5X291dCA6IDE7CiAgICAgLyogRmxhZyB0byBzZXQgY29kaW5n LXN5c3RlbSBvZiB0aGUgcHJvY2VzcyBidWZmZXIgZnJvbSB0aGUKICAgICAgICBjb2Rpbmdf c3lzdGVtIHVzZWQgdG8gZGVjb2RlIHByb2Nlc3Mgb3V0cHV0LiAgKi8KICAgICBib29sX2Jm IGluaGVyaXRfY29kaW5nX3N5c3RlbV9mbGFnIDogMTsKZGlmZiAtLWdpdCBhL3Rlc3Qvc3Jj L3Byb2Nlc3MtdGVzdHMuZWwgYi90ZXN0L3NyYy9wcm9jZXNzLXRlc3RzLmVsCmluZGV4IGYx ZWQ3ZTE4ZDUuLjQxMzIwNjcyYTAgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc3JjL3Byb2Nlc3MtdGVz dHMuZWwKKysrIGIvdGVzdC9zcmMvcHJvY2Vzcy10ZXN0cy5lbApAQCAtMzgsMTAgKzM4LDEx IEBACiA7OyBUaW1lb3V0IGluIHNlY29uZHM7IHRoZSB0ZXN0IGZhaWxzIGlmIHRoZSB0aW1l b3V0IGlzIHJlYWNoZWQuCiAoZGVmdmFyIHByb2Nlc3MtdGVzdC1zZW50aW5lbC13YWl0LXRp bWVvdXQgMi4wKQogCi07OyBTdGFydCBhIHByb2Nlc3MgdGhhdCBleGl0cyBpbW1lZGlhdGVs eS4gIENhbGwgV0FJVC1GVU5DVElPTiwKLTs7IHBvc3NpYmx5IG11bHRpcGxlIHRpbWVzLCB0 byB3YWl0IGZvciB0aGUgcHJvY2VzcyB0byBjb21wbGV0ZS4KLShkZWZ1biBwcm9jZXNzLXRl c3Qtc2VudGluZWwtd2FpdC1mdW5jdGlvbi13b3JraW5nLXAgKHdhaXQtZnVuY3Rpb24pCi0g IChsZXQgKChwcm9jIChzdGFydC1wcm9jZXNzICJ0ZXN0IiBuaWwgImJhc2giICItYyIgImV4 aXQgMjAiKSkKKyhkZWZ1biBwcm9jZXNzLXRlc3Qtd2FpdC1mb3Itc2VudGluZWwgKHByb2Mg ZXhpdC1zdGF0dXMgJm9wdGlvbmFsIHdhaXQtZnVuY3Rpb24pCisgICJTZXQgYSBzZW50aW5l bCBvbiBQUk9DIGFuZCB3YWl0IGZvciBpdCB0byBiZSBjYWxsZWQgd2l0aCBFWElULVNUQVRV Uy4KK0NhbGwgV0FJVC1GVU5DVElPTiwgcG9zc2libHkgbXVsdGlwbGUgdGltZXMsIHRvIHdh aXQgZm9yIHRoZQorcHJvY2VzcyB0byBjb21wbGV0ZS4iCisgIChsZXQgKCh3YWl0LWZ1bmN0 aW9uIChvciB3YWl0LWZ1bmN0aW9uICMnYWNjZXB0LXByb2Nlc3Mtb3V0cHV0KSkKIAkoc2Vu dGluZWwtY2FsbGVkIG5pbCkKIAkoc3RhcnQtdGltZSAoZmxvYXQtdGltZSkpKQogICAgIChz ZXQtcHJvY2Vzcy1zZW50aW5lbCBwcm9jIChsYW1iZGEgKF9wcm9jIF9tc2cpCkBAIC01MCwy MSArNTEsMjIgQEAgcHJvY2Vzcy10ZXN0LXNlbnRpbmVsLXdhaXQtZnVuY3Rpb24td29ya2lu Zy1wCiAJCSAgICAoPiAoLSAoZmxvYXQtdGltZSkgc3RhcnQtdGltZSkKIAkJICAgICAgIHBy b2Nlc3MtdGVzdC1zZW50aW5lbC13YWl0LXRpbWVvdXQpKSkKICAgICAgIChmdW5jYWxsIHdh aXQtZnVuY3Rpb24pKQotICAgIChjbC1hc3NlcnQgKGVxIChwcm9jZXNzLXN0YXR1cyBwcm9j KSAnZXhpdCkpCi0gICAgKGNsLWFzc2VydCAoPSAocHJvY2Vzcy1leGl0LXN0YXR1cyBwcm9j KSAyMCkpCi0gICAgc2VudGluZWwtY2FsbGVkKSkKKyAgICAoc2hvdWxkIHNlbnRpbmVsLWNh bGxlZCkKKyAgICAoc2hvdWxkIChlcSAocHJvY2Vzcy1zdGF0dXMgcHJvYykgJ2V4aXQpKQor ICAgIChzaG91bGQgKD0gKHByb2Nlc3MtZXhpdC1zdGF0dXMgcHJvYykgZXhpdC1zdGF0dXMp KSkpCiAKIChlcnQtZGVmdGVzdCBwcm9jZXNzLXRlc3Qtc2VudGluZWwtYWNjZXB0LXByb2Nl c3Mtb3V0cHV0ICgpCiAgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJiYXNoIikp CiAgICh3aXRoLXRpbWVvdXQgKDYwIChlcnQtZmFpbCAiVGVzdCB0aW1lZCBvdXQiKSkKLSAg KHNob3VsZCAocHJvY2Vzcy10ZXN0LXNlbnRpbmVsLXdhaXQtZnVuY3Rpb24td29ya2luZy1w Ci0gICAgICAgICAgICMnYWNjZXB0LXByb2Nlc3Mtb3V0cHV0KSkpKQorICAgIChsZXQgKChw cm9jIChzdGFydC1wcm9jZXNzICJ0ZXN0IiBuaWwgImJhc2giICItYyIgImV4aXQgMjAiKSkp CisgICAgICAoc2hvdWxkIChwcm9jZXNzLXRlc3Qtd2FpdC1mb3Itc2VudGluZWwgcHJvYyAy MCkpKSkpCiAKIChlcnQtZGVmdGVzdCBwcm9jZXNzLXRlc3Qtc2VudGluZWwtc2l0LWZvciAo KQogICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiYmFzaCIpKQogICAod2l0aC10 aW1lb3V0ICg2MCAoZXJ0LWZhaWwgIlRlc3QgdGltZWQgb3V0IikpCi0gIChzaG91bGQKLSAg IChwcm9jZXNzLXRlc3Qtc2VudGluZWwtd2FpdC1mdW5jdGlvbi13b3JraW5nLXAgKGxhbWJk YSAoKSAoc2l0LWZvciAwLjAxIHQpKSkpKSkKKyAgICAobGV0ICgocHJvYyAoc3RhcnQtcHJv Y2VzcyAidGVzdCIgbmlsICJiYXNoIiAiLWMiICJleGl0IDIwIikpKQorICAgICAgKHNob3Vs ZCAocHJvY2Vzcy10ZXN0LXdhaXQtZm9yLXNlbnRpbmVsCisgICAgICAgICAgICAgICBwcm9j IDIwIChsYW1iZGEgKCkgKHNpdC1mb3IgMC4wMSB0KSkpKSkpKQogCiAod2hlbiAoZXEgc3lz dGVtLXR5cGUgJ3dpbmRvd3MtbnQpCiAgIChlcnQtZGVmdGVzdCBwcm9jZXNzLXRlc3QtcXVv dGVkLWJhdGZpbGUgKCkKQEAgLTk3LDE3ICs5OSw4IEBAIHByb2Nlc3MtdGVzdC1zdGRlcnIt YnVmZmVyCiAJCQkJCQkgICAgImVjaG8gaGVsbG8gc3RkZXJyISA+JjI7ICIKIAkJCQkJCSAg ICAiZXhpdCAyMCIpKQogCQkJICAgICA6YnVmZmVyIHN0ZG91dC1idWZmZXIKLQkJCSAgICAg OnN0ZGVyciBzdGRlcnItYnVmZmVyKSkKLQkgKHNlbnRpbmVsLWNhbGxlZCBuaWwpCi0JIChz dGFydC10aW1lIChmbG9hdC10aW1lKSkpCi0gICAgKHNldC1wcm9jZXNzLXNlbnRpbmVsIHBy b2MgKGxhbWJkYSAoX3Byb2MgX21zZykKLQkJCQkgKHNldHEgc2VudGluZWwtY2FsbGVkIHQp KSkKLSAgICAod2hpbGUgKG5vdCAob3Igc2VudGluZWwtY2FsbGVkCi0JCSAgICAoPiAoLSAo ZmxvYXQtdGltZSkgc3RhcnQtdGltZSkKLQkJICAgICAgIHByb2Nlc3MtdGVzdC1zZW50aW5l bC13YWl0LXRpbWVvdXQpKSkKLSAgICAgIChhY2NlcHQtcHJvY2Vzcy1vdXRwdXQpKQotICAg IChjbC1hc3NlcnQgKGVxIChwcm9jZXNzLXN0YXR1cyBwcm9jKSAnZXhpdCkpCi0gICAgKGNs LWFzc2VydCAoPSAocHJvY2Vzcy1leGl0LXN0YXR1cyBwcm9jKSAyMCkpCisJCQkgICAgIDpz dGRlcnIgc3RkZXJyLWJ1ZmZlcikpKQorICAgIChwcm9jZXNzLXRlc3Qtd2FpdC1mb3Itc2Vu dGluZWwgcHJvYyAyMCkKICAgICAoc2hvdWxkICh3aXRoLWN1cnJlbnQtYnVmZmVyIHN0ZG91 dC1idWZmZXIKIAkgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogCSAgICAgIChsb29r aW5nLWF0ICJoZWxsbyBzdGRvdXQhIikpKQpAQCAtMTE4LDggKzExMSw3IEBAIHByb2Nlc3Mt dGVzdC1zdGRlcnItYnVmZmVyCiAoZXJ0LWRlZnRlc3QgcHJvY2Vzcy10ZXN0LXN0ZGVyci1m aWx0ZXIgKCkKICAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgImJhc2giKSkKICAg KHdpdGgtdGltZW91dCAoNjAgKGVydC1mYWlsICJUZXN0IHRpbWVkIG91dCIpKQotICAobGV0 KiAoKHNlbnRpbmVsLWNhbGxlZCBuaWwpCi0JIChzdGRlcnItc2VudGluZWwtY2FsbGVkIG5p bCkKKyAgKGxldCogKChzdGRlcnItc2VudGluZWwtY2FsbGVkIG5pbCkKIAkgKHN0ZG91dC1v dXRwdXQgbmlsKQogCSAoc3RkZXJyLW91dHB1dCBuaWwpCiAJIChzdGRvdXQtYnVmZmVyIChn ZW5lcmF0ZS1uZXctYnVmZmVyICIqc3Rkb3V0KiIpKQpAQCAtMTMxLDIzICsxMjMsMTQgQEAg cHJvY2Vzcy10ZXN0LXN0ZGVyci1maWx0ZXIKIAkJCQkJICAgIChjb25jYXQgImVjaG8gaGVs bG8gc3Rkb3V0ITsgIgogCQkJCQkJICAgICJlY2hvIGhlbGxvIHN0ZGVyciEgPiYyOyAiCiAJ CQkJCQkgICAgImV4aXQgMjAiKSkKLQkJCSAgICAgOnN0ZGVyciBzdGRlcnItcHJvYykpCi0J IChzdGFydC10aW1lIChmbG9hdC10aW1lKSkpCisJCQkgICAgIDpzdGRlcnIgc3RkZXJyLXBy b2MpKSkKICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2MgKGxhbWJkYSAoX3Byb2MgaW5w dXQpCiAJCQkgICAgICAgKHB1c2ggaW5wdXQgc3Rkb3V0LW91dHB1dCkpKQotICAgIChzZXQt cHJvY2Vzcy1zZW50aW5lbCBwcm9jIChsYW1iZGEgKF9wcm9jIF9tc2cpCi0JCQkJIChzZXRx IHNlbnRpbmVsLWNhbGxlZCB0KSkpCiAgICAgKHNldC1wcm9jZXNzLWZpbHRlciBzdGRlcnIt cHJvYyAobGFtYmRhIChfcHJvYyBpbnB1dCkKIAkJCQkgICAgICAocHVzaCBpbnB1dCBzdGRl cnItb3V0cHV0KSkpCiAgICAgKHNldC1wcm9jZXNzLXNlbnRpbmVsIHN0ZGVyci1wcm9jIChs YW1iZGEgKF9wcm9jIF9pbnB1dCkKIAkJCQkJKHNldHEgc3RkZXJyLXNlbnRpbmVsLWNhbGxl ZCB0KSkpCi0gICAgKHdoaWxlIChub3QgKG9yIHNlbnRpbmVsLWNhbGxlZAotCQkgICAgKD4g KC0gKGZsb2F0LXRpbWUpIHN0YXJ0LXRpbWUpCi0JCSAgICAgICBwcm9jZXNzLXRlc3Qtc2Vu dGluZWwtd2FpdC10aW1lb3V0KSkpCi0gICAgICAoYWNjZXB0LXByb2Nlc3Mtb3V0cHV0KSkK LSAgICAoY2wtYXNzZXJ0IChlcSAocHJvY2Vzcy1zdGF0dXMgcHJvYykgJ2V4aXQpKQotICAg IChjbC1hc3NlcnQgKD0gKHByb2Nlc3MtZXhpdC1zdGF0dXMgcHJvYykgMjApKQotICAgIChz aG91bGQgc2VudGluZWwtY2FsbGVkKQorICAgIChwcm9jZXNzLXRlc3Qtd2FpdC1mb3Itc2Vu dGluZWwgcHJvYyAyMCkKICAgICAoc2hvdWxkIChlcXVhbCAxICh3aXRoLWN1cnJlbnQtYnVm ZmVyIHN0ZG91dC1idWZmZXIKIAkJICAgICAgIChwb2ludC1tYXgpKSkpCiAgICAgKHNob3Vs ZCAoZXF1YWwgImhlbGxvIHN0ZG91dCFcbiIKQEAgLTI4OSw2ICsyNzIsNzQgQEAgbWFrZS1w cm9jZXNzLXczMi1kZWJ1Zy1zcGF3bi1lcnJvcgogICAgICAgICAgICAgICAgICAgKGVycm9y IDpnb3QtZXJyb3IpKSkpCiAgICAgKHNob3VsZCBoYXZlLWNhbGxlZC1kZWJ1Z2dlcikpKSkK IAorKGRlZnVuIG1ha2UtcHJvY2Vzcy90ZXN0LWNvbm5lY3Rpb24tdHlwZSAodHR5cyAmcmVz dCBhcmdzKQorICAiTWFrZSBhIHByb2Nlc3MgYW5kIGNoZWNrIHdoZXRoZXIgaXRzIHN0YW5k YXJkIHN0cmVhbXMgbWF0Y2ggVFRZUy4KK1RoaXMgY2FsbHMgYG1ha2UtcHJvY2VzcycsIHBh c3NpbmcgQVJHUyB0byBhZGp1c3QgaG93IHRoZSBwcm9jZXNzCitpcyBjcmVhdGVkLiAgVFRZ UyBzaG91bGQgYmUgYSBsaXN0IG9mIDMgYm9vbGVhbiB2YWx1ZXMsCitpbmRpY2F0aW5nIHdo ZXRoZXIgdGhlIHN1YnByb2Nlc3MncyBzdGRpbiwgc3Rkb3V0LCBhbmQgc3RkZXJyCitzaG91 bGQgYmUgYSBUVFksIHJlc3BlY3RpdmVseS4iCisgIChkZWNsYXJlIChpbmRlbnQgMSkpCisg IChsZXQqICg7OyBNUy1XaW5kb3dzIGRvZXNuJ3Qgc3VwcG9ydCBjb21tdW5pY2F0aW5nIHZp YSBwdHkuCisgICAgICAgICAodHR5cyAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50 KSAnKG5pbCBuaWwgbmlsKSB0dHlzKSkKKyAgICAgICAgIChleHBlY3RlZC1vdXRwdXQgKGNv bmNhdCAoYW5kIChudGggMCB0dHlzKSAic3RkaW5cbiIpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFuZCAobnRoIDEgdHR5cykgInN0ZG91dFxuIikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChudGggMiB0dHlzKSAic3RkZXJyXG4i KSkpCisgICAgICAgICAoc3Rkb3V0LWJ1ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiKnN0 ZG91dCoiKSkKKyAgICAgICAgIChwcm9jIChhcHBseQorICAgICAgICAgICAgICAgICMnbWFr ZS1wcm9jZXNzCisgICAgICAgICAgICAgICAgOm5hbWUgInRlc3QiCisgICAgICAgICAgICAg ICAgOmNvbW1hbmQgKGxpc3QgInNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbmNhdCAiaWYgWyAtdCAwIF07IHRoZW4gZWNobyBzdGRpbjsgZmk7ICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpZiBbIC10IDEgXTsgdGhl biBlY2hvIHN0ZG91dDsgZmk7ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJpZiBbIC10IDIgXTsgdGhlbiBlY2hvIHN0ZGVycjsgZmkiKSkKKyAgICAgICAg ICAgICAgICA6YnVmZmVyIHN0ZG91dC1idWZmZXIKKyAgICAgICAgICAgICAgICBhcmdzKSkp CisgICAgKHByb2Nlc3MtdGVzdC13YWl0LWZvci1zZW50aW5lbCBwcm9jIDApCisgICAgKHNo b3VsZCAoZXF1YWwgKHdpdGgtY3VycmVudC1idWZmZXIgc3Rkb3V0LWJ1ZmZlciAoYnVmZmVy LXN0cmluZykpCisgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQtb3V0cHV0KSkpKQorCiso ZXJ0LWRlZnRlc3QgbWFrZS1wcm9jZXNzL2Nvbm5lY3Rpb24tdHlwZS9wdHkgKCkKKyAgKHNr aXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgInNoIikpCisgIChtYWtlLXByb2Nlc3MvdGVz dC1jb25uZWN0aW9uLXR5cGUgJyh0IHQgdCkKKyAgICA6Y29ubmVjdGlvbi10eXBlICdwdHkp KQorCisoZXJ0LWRlZnRlc3QgbWFrZS1wcm9jZXNzL2Nvbm5lY3Rpb24tdHlwZS9wdHktMiAo KQorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAic2giKSkKKyAgKG1ha2UtcHJv Y2Vzcy90ZXN0LWNvbm5lY3Rpb24tdHlwZSAnKHQgdCB0KQorICAgIDpjb25uZWN0aW9uLXR5 cGUgJyhwdHkgLiBwdHkpKSkKKworKGVydC1kZWZ0ZXN0IG1ha2UtcHJvY2Vzcy9jb25uZWN0 aW9uLXR5cGUvcGlwZSAoKQorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAic2gi KSkKKyAgKG1ha2UtcHJvY2Vzcy90ZXN0LWNvbm5lY3Rpb24tdHlwZSAnKG5pbCBuaWwgbmls KQorICAgIDpjb25uZWN0aW9uLXR5cGUgJ3BpcGUpKQorCisoZXJ0LWRlZnRlc3QgbWFrZS1w cm9jZXNzL2Nvbm5lY3Rpb24tdHlwZS9waXBlLTIgKCkKKyAgKHNraXAtdW5sZXNzIChleGVj dXRhYmxlLWZpbmQgInNoIikpCisgIChtYWtlLXByb2Nlc3MvdGVzdC1jb25uZWN0aW9uLXR5 cGUgJyhuaWwgbmlsIG5pbCkKKyAgICA6Y29ubmVjdGlvbi10eXBlICcocGlwZSAuIHBpcGUp KSkKKworKGVydC1kZWZ0ZXN0IG1ha2UtcHJvY2Vzcy9jb25uZWN0aW9uLXR5cGUvaW4tcHR5 ICgpCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJzaCIpKQorICAobWFrZS1w cm9jZXNzL3Rlc3QtY29ubmVjdGlvbi10eXBlICcodCBuaWwgbmlsKQorICAgIDpjb25uZWN0 aW9uLXR5cGUgJyhwdHkgLiBwaXBlKSkpCisKKyhlcnQtZGVmdGVzdCBtYWtlLXByb2Nlc3Mv Y29ubmVjdGlvbi10eXBlL291dC1wdHkgKCkKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxl LWZpbmQgInNoIikpCisgIChtYWtlLXByb2Nlc3MvdGVzdC1jb25uZWN0aW9uLXR5cGUgJyhu aWwgdCB0KQorICAgIDpjb25uZWN0aW9uLXR5cGUgJyhwaXBlIC4gcHR5KSkpCisKKyhlcnQt ZGVmdGVzdCBtYWtlLXByb2Nlc3MvY29ubmVjdGlvbi10eXBlL3B0eS13aXRoLXN0ZGVyci1i dWZmZXIgKCkKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgInNoIikpCisgIChs ZXQgKChzdGRlcnItYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVmZmVyICIqc3RkZXJyKiIpKSkK KyAgICAobWFrZS1wcm9jZXNzL3Rlc3QtY29ubmVjdGlvbi10eXBlICcodCB0IG5pbCkKKyAg ICAgIDpjb25uZWN0aW9uLXR5cGUgJ3B0eSA6c3RkZXJyIHN0ZGVyci1idWZmZXIpKSkKKwor KGVydC1kZWZ0ZXN0IG1ha2UtcHJvY2Vzcy9jb25uZWN0aW9uLXR5cGUvb3V0LXB0eS13aXRo LXN0ZGVyci1idWZmZXIgKCkKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgInNo IikpCisgIChsZXQgKChzdGRlcnItYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVmZmVyICIqc3Rk ZXJyKiIpKSkKKyAgICAobWFrZS1wcm9jZXNzL3Rlc3QtY29ubmVjdGlvbi10eXBlICcobmls IHQgbmlsKQorICAgICAgOmNvbm5lY3Rpb24tdHlwZSAnKHBpcGUgLiBwdHkpIDpzdGRlcnIg c3RkZXJyLWJ1ZmZlcikpKQorCiAoZXJ0LWRlZnRlc3QgbWFrZS1wcm9jZXNzL2ZpbGUtaGFu ZGxlci9mb3VuZCAoKQogICAiQ2hlY2sgdGhhdCB0aGUgYDpmaWxlLWhhbmRsZXLigJkgYXJn dW1lbnQgb2YgYG1ha2UtcHJvY2Vzc+KAmQogd29ya3MgYXMgZXhwZWN0ZWQgaWYgYSBmaWxl IG5hbWUgaGFuZGxlciBpcyBmb3VuZC4iCi0tIAoyLjI1LjEKCg== --------------9CD0D509F24949A641FCE254 Content-Type: text/plain; charset=UTF-8; name="0002-Add-STREAM-argument-to-process-tty-name.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Add-STREAM-argument-to-process-tty-name.patch" RnJvbSA5Y2U4Mjk5NDE5YTFlNjc0YmE0NDQzM2Y4YmEwYmE0MTUwZTkxMmU4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMTkgSnVsIDIwMjIgMjE6MzY6NTQgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvMl0gQWRkIFNUUkVBTSBhcmd1bWVudCB0byAncHJvY2Vzcy10dHktbmFtZScKCiog c3JjL3Byb2Nlc3MuYyAocHJvY2Vzcy10dHktbmFtZSk6IEFkZCBTVFJFQU0gYXJndW1lbnQu CgoqIGxpc3AvZXNoZWxsL2VzaC1pby5lbCAoZXNoZWxsLWNsb3NlLXRhcmdldCk6IE9ubHkg Y2FsbAoncHJvY2Vzcy1zZW5kLWVvZicgb25jZSBpZiB0aGUgcHJvY2VzcydzIHN0ZGluIGlz IGEgcGlwZS4KCiogdGVzdC9zcmMvcHJvY2Vzcy10ZXN0cy5lbCAobWFrZS1wcm9jZXNzL3Rl c3QtY29ubmVjdGlvbi10eXBlKTogQ2hlY2sKYmVoYXZpb3Igb2YgJ3Byb2Nlc3MtdHR5LW5h bWUnLgoKKiBkb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aSAoUHJvY2VzcyBJbmZvcm1hdGlv bik6IERvY3VtZW50IHRoZSBuZXcKYXJndW1lbnQuCgoqIGV0Yy9ORVdTOiBBbm5vdW5jZSB0 aGlzIGNoYW5nZS4KLS0tCiBkb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aSB8IDE3ICsrKysr KysrKysrLS0tLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICB8ICA1ICsrKystCiBs aXNwL2VzaGVsbC9lc2gtaW8uZWwgICAgICB8IDI3ICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQogc3JjL3Byb2Nlc3MuYyAgICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKysr KysrLS0tLQogdGVzdC9zcmMvcHJvY2Vzcy10ZXN0cy5lbCAgfCAgMyArKysKIDUgZmlsZXMg Y2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL2xpc3ByZWYvcHJvY2Vzc2VzLnRleGkgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMu dGV4aQppbmRleCBhN2UwODA1NGM3Li5iYmNhNDhlNmM1IDEwMDY0NAotLS0gYS9kb2MvbGlz cHJlZi9wcm9jZXNzZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQpA QCAtMTI0MywxNSArMTI0MywyMCBAQCBQcm9jZXNzIEluZm9ybWF0aW9uCiB3aGV0aGVyIHRo ZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgbm9ybWFsbHkgb3IgYWJub3JtYWxseS4KIEBlbmQg ZGVmdW4KIAotQGRlZnVuIHByb2Nlc3MtdHR5LW5hbWUgcHJvY2VzcworQGRlZnVuIHByb2Nl c3MtdHR5LW5hbWUgcHJvY2VzcyAmb3B0aW9uYWwgc3RyZWFtCiBUaGlzIGZ1bmN0aW9uIHJl dHVybnMgdGhlIHRlcm1pbmFsIG5hbWUgdGhhdCBAdmFye3Byb2Nlc3N9IGlzIHVzaW5nIGZv cgogaXRzIGNvbW11bmljYXRpb24gd2l0aCBFbWFjcy0tLW9yIEBjb2Rle25pbH0gaWYgaXQg aXMgdXNpbmcgcGlwZXMKIGluc3RlYWQgb2YgYSBwdHkgKHNlZSBAY29kZXtwcm9jZXNzLWNv bm5lY3Rpb24tdHlwZX0gaW4KLUByZWZ7QXN5bmNocm9ub3VzIFByb2Nlc3Nlc30pLiAgSWYg QHZhcntwcm9jZXNzfSByZXByZXNlbnRzIGEgcHJvZ3JhbQotcnVubmluZyBvbiBhIHJlbW90 ZSBob3N0LCB0aGUgdGVybWluYWwgbmFtZSB1c2VkIGJ5IHRoYXQgcHJvZ3JhbSBvbgotdGhl IHJlbW90ZSBob3N0IGlzIHByb3ZpZGVkIGFzIHByb2Nlc3MgcHJvcGVydHkgQGNvZGV7cmVt b3RlLXR0eX0uICBJZgotQHZhcntwcm9jZXNzfSByZXByZXNlbnRzIGEgbmV0d29yaywgc2Vy aWFsLCBvciBwaXBlIGNvbm5lY3Rpb24sIHRoZQotdmFsdWUgaXMgQGNvZGV7bmlsfS4KK0By ZWZ7QXN5bmNocm9ub3VzIFByb2Nlc3Nlc30pLiAgSWYgQHZhcntzdHJlYW19IGlzIG9uZSBv ZiBAY29kZXtzdGRpbn0sCitAY29kZXtzdGRvdXR9LCBvciBAY29kZXtzdGRlcnJ9LCB0aGlz IGZ1bmN0aW9uIHJldHVybnMgdGhlIHRlcm1pbmFsCituYW1lIChvciBAY29kZXtuaWx9LCBh cyBhYm92ZSkgdGhhdCBAdmFye3Byb2Nlc3N9IHVzZXMgZm9yIHRoYXQgc3RyZWFtCitzcGVj aWZpY2FsbHkuICBZb3UgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSB3aGV0aGVyIGEgcGFy dGljdWxhcgorc3RyZWFtIHVzZXMgYSBwaXBlIG9yIGEgcHR5LgorCitJZiBAdmFye3Byb2Nl c3N9IHJlcHJlc2VudHMgYSBwcm9ncmFtIHJ1bm5pbmcgb24gYSByZW1vdGUgaG9zdCwgdGhl Cit0ZXJtaW5hbCBuYW1lIHVzZWQgYnkgdGhhdCBwcm9ncmFtIG9uIHRoZSByZW1vdGUgaG9z dCBpcyBwcm92aWRlZCBhcworcHJvY2VzcyBwcm9wZXJ0eSBAY29kZXtyZW1vdGUtdHR5fS4g IElmIEB2YXJ7cHJvY2Vzc30gcmVwcmVzZW50cyBhCituZXR3b3JrLCBzZXJpYWwsIG9yIHBp cGUgY29ubmVjdGlvbiwgdGhlIHZhbHVlIGlzIEBjb2Rle25pbH0uCiBAZW5kIGRlZnVuCiAK IEBkZWZ1biBwcm9jZXNzLWNvZGluZy1zeXN0ZW0gcHJvY2VzcwpkaWZmIC0tZ2l0IGEvZXRj L05FV1MgYi9ldGMvTkVXUwppbmRleCBkYzc5ZjA4MjZhLi4yMzc3N2QzNDllIDEwMDY0NAot LS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtMzE5OCw3ICszMTk4LDEwIEBAIGlu dm9jYXRpb24uICBTdWNoIHNoZWxscyBhcmUgUE9TSVggY29uZm9ybWFudCBieSBkZWZhdWx0 LgogKiogJ21ha2UtcHJvY2VzcycgY2FuIHNldCBjb25uZWN0aW9uIHR5cGUgaW5kZXBlbmRl bnRseSBmb3IgaW5wdXQgYW5kIG91dHB1dC4KIFdoZW4gY2FsbGluZyAnbWFrZS1wcm9jZXNz JywgY29tbXVuaWNhdGlvbiB2aWEgcHR5IGNhbiBiZSBlbmFibGVkCiBzZWxlY3RpdmVseSBm b3IganVzdCBpbnB1dCBvciBvdXRwdXQgYnkgcGFzc2luZyBhIGNvbnMgY2VsbCBmb3IKLSc6 Y29ubmVjdGlvbi10eXBlJywgZS5nLiAnKHBpcGUgLiBwdHkpJy4KKyc6Y29ubmVjdGlvbi10 eXBlJywgZS5nLiAnKHBpcGUgLiBwdHkpJy4gIFdoZW4gZXhhbWluaW5nIGEgcHJvY2Vzcwor bGF0ZXIsIHlvdSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIHN0cmVhbSBm b3IgYSBwcm9jZXNzCit1c2VzIGEgcHR5IGJ5IHBhc3Npbmcgb25lIG9mICdzdGRpbicsICdz dGRvdXQnLCBvciAnc3RkZXJyJyBhcyB0aGUKK3NlY29uZCBhcmd1bWVudCB0byAncHJvY2Vz cy10dHktbmFtZScuCiAKICsrKwogKiogJ3NpZ25hbC1wcm9jZXNzJyBub3cgY29uc3VsdHMg dGhlIGxpc3QgJ3NpZ25hbC1wcm9jZXNzLWZ1bmN0aW9ucycuCmRpZmYgLS1naXQgYS9saXNw L2VzaGVsbC9lc2gtaW8uZWwgYi9saXNwL2VzaGVsbC9lc2gtaW8uZWwKaW5kZXggYzAzNTg5 MGRkZi4uNjhlNTJhMmM5YyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZXNoLWlvLmVsCisr KyBiL2xpc3AvZXNoZWxsL2VzaC1pby5lbApAQCAtMjc2LDE4ICsyNzYsMjEgQEAgZXNoZWxs LWNsb3NlLXRhcmdldAogICAgOzsgSWYgd2UncmUgcmVkaXJlY3RpbmcgdG8gYSBwcm9jZXNz ICh2aWEgYSBwaXBlLCBvciBwcm9jZXNzCiAgICA7OyByZWRpcmVjdGlvbiksIHNlbmQgaXQg RU9GIHNvIHRoYXQgaXQga25vd3Mgd2UncmUgZmluaXNoZWQuCiAgICAoKGVzaGVsbC1wcm9j ZXNzcCB0YXJnZXQpCi0gICAgOzsgQWNjb3JkaW5nIHRvIFBPU0lYLjEtMjAxNywgc2VjdGlv biAxMS4xLjksIHNlbmRpbmcgRU9GIGNhdXNlcwotICAgIDs7IGFsbCBieXRlcyB3YWl0aW5n IHRvIGJlIHJlYWQgdG8gYmUgc2VudCB0byB0aGUgcHJvY2VzcwotICAgIDs7IGltbWVkaWF0 ZWx5LiAgVGh1cywgaWYgdGhlcmUgYXJlIGFueSBieXRlcyB3YWl0aW5nLCB3ZSBuZWVkIHRv Ci0gICAgOzsgc2VuZCBFT0YgdHdpY2U6IG9uY2UgdG8gZmx1c2ggdGhlIGJ1ZmZlciwgYW5k IGEgc2Vjb25kIHRpbWUgdG8KLSAgICA7OyBjYXVzZSB0aGUgbmV4dCByZWFkKCkgdG8gcmV0 dXJuIGEgc2l6ZSBvZiAwLCBpbmRpY2F0aW5nCi0gICAgOzsgZW5kLW9mLWZpbGUgdG8gdGhl IHJlYWRpbmcgcHJvY2Vzcy4gIEhvd2V2ZXIsIHNvbWUgcGxhdGZvcm1zCi0gICAgOzsgKGUu Zy4gU29sYXJpcykgYWN0dWFsbHkgcmVxdWlyZSBzZW5kaW5nIGEgKnRoaXJkKiBFT0YuICBT aW5jZQotICAgIDs7IHNlbmRpbmcgZXh0cmEgRU9GcyB3aGlsZSB0aGUgcHJvY2VzcyBpcyBy dW5uaW5nIHNob3VsZG4ndCBicmVhawotICAgIDs7IGFueXRoaW5nLCB3ZSdsbCBqdXN0IHNl bmQgdGhlIG1heGltdW0gd2UnZCBldmVyIG5lZWQuICBTZWUKLSAgICA7OyBidWcjNTYwMjUg Zm9yIGZ1cnRoZXIgZGV0YWlscy4KLSAgICAobGV0ICgoaSAwKSkKLSAgICAgICh3aGlsZSAo YW5kICg8PSAoY2wtaW5jZiBpKSAzKQorICAgIDs7IEFjY29yZGluZyB0byBQT1NJWC4xLTIw MTcsIHNlY3Rpb24gMTEuMS45LCB3aGVuIGNvbW11bmljYXRpbmcKKyAgICA7OyB2aWEgdGVy bWluYWwsIHNlbmRpbmcgRU9GIGNhdXNlcyBhbGwgYnl0ZXMgd2FpdGluZyB0byBiZSByZWFk CisgICAgOzsgdG8gYmUgc2VudCB0byB0aGUgcHJvY2VzcyBpbW1lZGlhdGVseS4gIFRodXMs IGlmIHRoZXJlIGFyZSBhbnkKKyAgICA7OyBieXRlcyB3YWl0aW5nLCB3ZSBuZWVkIHRvIHNl bmQgRU9GIHR3aWNlOiBvbmNlIHRvIGZsdXNoIHRoZQorICAgIDs7IGJ1ZmZlciwgYW5kIGEg c2Vjb25kIHRpbWUgdG8gY2F1c2UgdGhlIG5leHQgcmVhZCgpIHRvIHJldHVybiBhCisgICAg Ozsgc2l6ZSBvZiAwLCBpbmRpY2F0aW5nIGVuZC1vZi1maWxlIHRvIHRoZSByZWFkaW5nIHBy b2Nlc3MuCisgICAgOzsgSG93ZXZlciwgc29tZSBwbGF0Zm9ybXMgKGUuZy4gU29sYXJpcykg YWN0dWFsbHkgcmVxdWlyZSBzZW5kaW5nCisgICAgOzsgYSAqdGhpcmQqIEVPRi4gIFNpbmNl IHNlbmRpbmcgZXh0cmEgRU9GcyB3aGlsZSB0aGUgcHJvY2VzcyBpcworICAgIDs7IHJ1bm5p bmcgYXJlIGEgbm8tb3AsIHdlJ2xsIGp1c3Qgc2VuZCB0aGUgbWF4aW11bSB3ZSdkIGV2ZXIK KyAgICA7OyBuZWVkLiAgU2VlIGJ1ZyM1NjAyNSBmb3IgZnVydGhlciBkZXRhaWxzLgorICAg IChsZXQgKChpIDApCisgICAgICAgICAgOzsgT25seSBjYWxsIGBwcm9jZXNzLXNlbmQtZW9m JyBvbmNlIGlmIGNvbW11bmljYXRpbmcgdmlhIGEKKyAgICAgICAgICA7OyBwaXBlIChpbiB0 cnV0aCwgdGhpcyBqdXN0IGNsb3NlcyB0aGUgcGlwZSkuCisgICAgICAgICAgKG1heC1hdHRl bXB0cyAoaWYgKHByb2Nlc3MtdHR5LW5hbWUgdGFyZ2V0ICdzdGRpbikgMyAxKSkpCisgICAg ICAod2hpbGUgKGFuZCAoPD0gKGNsLWluY2YgaSkgbWF4LWF0dGVtcHRzKQogICAgICAgICAg ICAgICAgICAgKGVxIChwcm9jZXNzLXN0YXR1cyB0YXJnZXQpICdydW4pKQogICAgICAgICAo cHJvY2Vzcy1zZW5kLWVvZiB0YXJnZXQpKSkpCiAKZGlmZiAtLWdpdCBhL3NyYy9wcm9jZXNz LmMgYi9zcmMvcHJvY2Vzcy5jCmluZGV4IGRhNWU5Y2IxODIuLmFkYzUwODE1NmYgMTAwNjQ0 Ci0tLSBhL3NyYy9wcm9jZXNzLmMKKysrIGIvc3JjL3Byb2Nlc3MuYwpAQCAtMTI0MywxNCAr MTI0MywyOSBAQCBERUZVTiAoInByb2Nlc3MtY29tbWFuZCIsIEZwcm9jZXNzX2NvbW1hbmQs IFNwcm9jZXNzX2NvbW1hbmQsIDEsIDEsIDAsCiAgIHJldHVybiBYUFJPQ0VTUyAocHJvY2Vz cyktPmNvbW1hbmQ7CiB9CiAKLURFRlVOICgicHJvY2Vzcy10dHktbmFtZSIsIEZwcm9jZXNz X3R0eV9uYW1lLCBTcHJvY2Vzc190dHlfbmFtZSwgMSwgMSwgMCwKK0RFRlVOICgicHJvY2Vz cy10dHktbmFtZSIsIEZwcm9jZXNzX3R0eV9uYW1lLCBTcHJvY2Vzc190dHlfbmFtZSwgMSwg MiwgMCwKICAgICAgICBkb2M6IC8qIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgdGVybWluYWwg UFJPQ0VTUyB1c2VzLCBvciBuaWwgaWYgbm9uZS4KIFRoaXMgaXMgdGhlIHRlcm1pbmFsIHRo YXQgdGhlIHByb2Nlc3MgaXRzZWxmIHJlYWRzIGFuZCB3cml0ZXMgb24sCi1ub3QgdGhlIG5h bWUgb2YgdGhlIHB0eSB0aGF0IEVtYWNzIHVzZXMgdG8gdGFsayB3aXRoIHRoYXQgdGVybWlu YWwuICAqLykKLSAgKHJlZ2lzdGVyIExpc3BfT2JqZWN0IHByb2Nlc3MpCitub3QgdGhlIG5h bWUgb2YgdGhlIHB0eSB0aGF0IEVtYWNzIHVzZXMgdG8gdGFsayB3aXRoIHRoYXQgdGVybWlu YWwuCisKK0lmIFNUUkVBTSBpcyBvbmUgb2YgYHN0ZGluJywgYHN0ZG91dCcsIG9yIGBzdGRl cnInLCByZXR1cm4gdGhlIG5hbWUgb2YKK3RoZSB0ZXJtaW5hbCBQUk9DRVNTIHVzZXMgZm9y IHRoYXQgc3RyZWFtLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlY3QKK3doZXRoZXIgYSBw YXJ0aWN1bGFyIHN0cmVhbSBpcyBjb25uZWN0ZWQgdmlhIGEgcGlwZSBvciBhIHB0eS4gICov KQorICAocmVnaXN0ZXIgTGlzcF9PYmplY3QgcHJvY2VzcywgTGlzcF9PYmplY3Qgc3RyZWFt KQogewogICBDSEVDS19QUk9DRVNTIChwcm9jZXNzKTsKLSAgcmV0dXJuIFhQUk9DRVNTIChw cm9jZXNzKS0+dHR5X25hbWU7CisgIHJlZ2lzdGVyIHN0cnVjdCBMaXNwX1Byb2Nlc3MgKnAg PSBYUFJPQ0VTUyAocHJvY2Vzcyk7CisKKyAgaWYgKE5JTFAgKHN0cmVhbSkpCisgICAgcmV0 dXJuIHAtPnR0eV9uYW1lOworICBlbHNlIGlmIChFUSAoc3RyZWFtLCBRc3RkaW4pKQorICAg IHJldHVybiBwLT5wdHlfaW4gPyBwLT50dHlfbmFtZSA6IFFuaWw7CisgIGVsc2UgaWYgKEVR IChzdHJlYW0sIFFzdGRvdXQpKQorICAgIHJldHVybiBwLT5wdHlfb3V0ID8gcC0+dHR5X25h bWUgOiBRbmlsOworICBlbHNlIGlmIChFUSAoc3RyZWFtLCBRc3RkZXJyKSkKKyAgICByZXR1 cm4gcC0+cHR5X291dCAmJiBOSUxQIChwLT5zdGRlcnJwcm9jKSA/IHAtPnR0eV9uYW1lIDog UW5pbDsKKyAgZWxzZQorICAgIHNpZ25hbF9lcnJvciAoIlVua25vd24gc3RyZWFtIiwgc3Ry ZWFtKTsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL3Byb2Nlc3Mt dGVzdHMuZWwgYi90ZXN0L3NyYy9wcm9jZXNzLXRlc3RzLmVsCmluZGV4IDQxMzIwNjcyYTAu LjZiYTU5MzBlZTYgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc3JjL3Byb2Nlc3MtdGVzdHMuZWwKKysr IGIvdGVzdC9zcmMvcHJvY2Vzcy10ZXN0cy5lbApAQCAtMjk0LDYgKzI5NCw5IEBAIG1ha2Ut cHJvY2Vzcy90ZXN0LWNvbm5lY3Rpb24tdHlwZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImlmIFsgLXQgMiBdOyB0aGVuIGVjaG8gc3RkZXJyOyBmaSIpKQog ICAgICAgICAgICAgICAgIDpidWZmZXIgc3Rkb3V0LWJ1ZmZlcgogICAgICAgICAgICAgICAg IGFyZ3MpKSkKKyAgICAoc2hvdWxkIChlcSAoYW5kIChwcm9jZXNzLXR0eS1uYW1lIHByb2Mg J3N0ZGluKSB0KSAobnRoIDAgdHR5cykpKQorICAgIChzaG91bGQgKGVxIChhbmQgKHByb2Nl c3MtdHR5LW5hbWUgcHJvYyAnc3Rkb3V0KSB0KSAobnRoIDEgdHR5cykpKQorICAgIChzaG91 bGQgKGVxIChhbmQgKHByb2Nlc3MtdHR5LW5hbWUgcHJvYyAnc3RkZXJyKSB0KSAobnRoIDIg dHR5cykpKQogICAgIChwcm9jZXNzLXRlc3Qtd2FpdC1mb3Itc2VudGluZWwgcHJvYyAwKQog ICAgIChzaG91bGQgKGVxdWFsICh3aXRoLWN1cnJlbnQtYnVmZmVyIHN0ZG91dC1idWZmZXIg KGJ1ZmZlci1zdHJpbmcpKQogICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLW91dHB1dCkp KSkKLS0gCjIuMjUuMQoK --------------9CD0D509F24949A641FCE254--