From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: kobarity Newsgroups: gmane.emacs.bugs Subject: bug#56635: 29.0.50; [PATCH] hide-show in python-mode supports ONLY function and class blocks Date: Sat, 13 Aug 2022 21:36:57 +0900 Message-ID: References: <87v8ruysep.fsf@secretsauce.net> <87zgh01cqm.fsf@gnus.org> <87sfmr5zi9.fsf@secretsauce.net> <87wnbt3vnq.fsf@secretsauce.net> <878rnyg40d.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000005bbc8a05e61ea8c1" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10434"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Lars Ingebrigtsen , Dima Kogan , 56635@debbugs.gnu.org To: Augusto Stoffel Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Aug 13 14:38:25 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 1oMqPI-0002Zm-Lh for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 13 Aug 2022 14:38:24 +0200 Original-Received: from localhost ([::1]:55566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oMqPH-0000uQ-A1 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 13 Aug 2022 08:38:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55296) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMqOw-0000u7-1P for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2022 08:38:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:42046) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oMqOv-00054u-PL for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2022 08:38:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oMqOv-0005MZ-LT for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2022 08:38:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: kobarity Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Aug 2022 12:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56635 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 56635-submit@debbugs.gnu.org id=B56635.166039424020548 (code B ref 56635); Sat, 13 Aug 2022 12:38:01 +0000 Original-Received: (at 56635) by debbugs.gnu.org; 13 Aug 2022 12:37:20 +0000 Original-Received: from localhost ([127.0.0.1]:60022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMqOG-0005LM-Dv for submit@debbugs.gnu.org; Sat, 13 Aug 2022 08:37:20 -0400 Original-Received: from mail-ed1-f49.google.com ([209.85.208.49]:44658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMqOD-0005Kv-DY for 56635@debbugs.gnu.org; Sat, 13 Aug 2022 08:37:18 -0400 Original-Received: by mail-ed1-f49.google.com with SMTP id t5so4223012edc.11 for <56635@debbugs.gnu.org>; Sat, 13 Aug 2022 05:37:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=a8djiyCuvz965ToKS8IPUObxC2nYFkxedcE4UgZ0h+4=; b=FIR+9PFT89KKXTOcdrsQMR+V5mYIvScMNFkBR2wZRrYIx7xjvw+EZkcZB7xD/k9Y3D bA/MWCFON/OMVO7vzapnF5/mLeyIPT/V+cOZL6RoS14NoVh61NCFQUNfLWuK7srWyMDQ c0bjCr+8/5+bIhBLA0F9c9wQRalXfgLVMSPpF5Yv7qXIJDj9FD0zKa/O2w6XZsEPawcS zxZnGlb7sytHncP9pPK/eYsUum6Nnbl6lDZ/achhguo27FXFpmcsdSHP0bt3jcscgpd9 QiT5Ct5ggd1ZtSXBVknLweZUiUbjMywPIOCCKOn06TPd3XykMtYZbkwNT8bvYQb2ggFJ BG9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=a8djiyCuvz965ToKS8IPUObxC2nYFkxedcE4UgZ0h+4=; b=w6VDfzt/mc2PJdFfEAWhpzcRHUUHjWLiwYvRkBStt/D0SFACH8PeHCjQ9mJGEmHFIX tgCgj5zYyBFMyWx3ljaVYKkBWAW9nX4YypAw2m/bl0PSFGZhXXx5g71nSBJVgM4BFhwC MZVGD+z9kDMmgwsjLIeP/Ile++8jMqFk4067YcrREA5gxzgcPI6aX0zpzpsgStBdUbbz iPrLXbu9aoejt/Otf/Ws23k+lNJU/F5WToTMfHCHus9fXid4UG3yQ6YIPFguDmB/5Zvo P3J3I75FNQvUDN7vVVF7O84kfSiUv0GsgjR/TaouFRw9rscKKGZOTsf6qOfQl9ybGOqt sy1A== X-Gm-Message-State: ACgBeo1P22l2YeizNJEY32iGARR0awVXfvl2X6qNgUPqc0B38B6Urlfr S/hvh89zDI+LyARfV/O37+WRA/sM5bfw+GKsu44= X-Google-Smtp-Source: AA6agR7vrRfnveyWqih8Kzaya1u7+fMiUgSQVE1BDOHORAUHdwWSK0tZjtTFm1qzeblfpjCxvzfFdDT18SyXwUmFRGQ= X-Received: by 2002:a05:6402:331d:b0:43d:9e2e:6966 with SMTP id e29-20020a056402331d00b0043d9e2e6966mr7487916eda.214.1660394231525; Sat, 13 Aug 2022 05:37:11 -0700 (PDT) In-Reply-To: <878rnyg40d.fsf@gmail.com> 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:239536 Archived-At: --0000000000005bbc8a05e61ea8c1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Augusto Stoffel wrote: > > This is a marginally related remark, but I noticed that python-mode sets > > (setq-local outline-heading-end-regexp ":[^\n]*\n") > > and this doesn't work well with the new-ish type annotation syntax. > > Wouldn't it be better to simply remove this setting, reverting back to > the default "\n"? Then folding by outline-minor-mode would behave like > hideshow currently does when it comes to something like > > def f( > x: int > ) -> int: > pass I agree with removing the `outline-heading-end-regexp' setting. I thought about adding a custom variable since some people might prefer the current setting, but I reconsidered that setting it as a file local variable would be sufficient as described in docstring: #+begin_quote The recommended way to set this is with a =E2=80=98Local Variables:=E2=80= =99 list in the file it applies to. #+end_quote Is there any comments on extending `hs-special-modes-alist'? Attached are revised patches. I would like to know if it is worth extending `hs-special-modes-alist'. Best Regards, --0000000000005bbc8a05e61ea8c1 Content-Type: application/octet-stream; name="fix-56635-hideshow.patch" Content-Disposition: attachment; filename="fix-56635-hideshow.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6rvokyx0 Y29tbWl0IGIxNjM1Njc2MTBmMzA5ZjFmZDI2NGJjYjQ2YmI4MWM2ZjgwMTNjZGUKQXV0aG9yOiBr b2Jhcml0eSA8a29iYXJpdHlAZ21haWwuY29tPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTY6MjI6NDAg MjAyMiArMDkwMAoKICAgIEV4dGVuZCBgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdCcgZm9yIGxhbmd1 YWdlcyBzdWNoIGFzIFB5dGhvbgogICAgCiAgICAqIGxpc3AvcHJvZ21vZGVzL2hpZGVzaG93LmVs IChocy1zcGVjaWFsLW1vZGVzLWFsaXN0KTogQWRkCiAgICBlbGVtZW50cyBGSU5ELUJMT0NLLUJF R0lOTklORy1GVU5DLCBGSU5ELU5FWFQtQkxPQ0stRlVOQywgYW5kCiAgICBMT09LSU5HLUFULUJM T0NLLVNUQVJULVAtRlVOQy4KICAgIChocy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jKTogTmV3 IHZhcmlhYmxlIHRvIGhvbGQKICAgIEZJTkQtQkxPQ0stQkVHSU5OSU5HLUZVTkMuCiAgICAoaHMt ZmluZC1uZXh0LWJsb2NrLWZ1bmMpOiBOZXcgdmFyaWFibGUgdG8gaG9sZAogICAgRklORC1ORVhU LUJMT0NLLUZVTkMuCiAgICAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMpOiBOZXcg dmFyaWFibGUgdG8gaG9sZAogICAgTE9PS0lORy1BVC1CTE9DSy1TVEFSVC1QLUZVTkMuCiAgICAo aHMtZ3Jvay1tb2RlLXR5cGUpOiBTZXQgbmV3IHZhcmlhYmxlcyBmcm9tCiAgICBgaHMtc3BlY2lh bC1tb2Rlcy1hbGlzdCcuCiAgICAoaHMtZmluZC1uZXh0LWJsb2NrKTogTmV3IGZ1bmN0aW9uLgog ICAgKE1pc2MuKTogVXBkYXRlIGNhbGxlcnMgb2YgdGhlIGFib3ZlIGZ1bmN0aW9ucy4KICAgIAog ICAgKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL2hpZGVzaG93LXRlc3RzLmVsOiBOZXcgdGVzdCBmaWxl LgoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2hpZGVzaG93LmVsIGIvbGlzcC9wcm9nbW9k ZXMvaGlkZXNob3cuZWwKaW5kZXggZjU3NGVjODRmYi4uYzA3OTZmYzJlZSAxMDA2NDQKLS0tIGEv bGlzcC9wcm9nbW9kZXMvaGlkZXNob3cuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3cu ZWwKQEAgLTI2Nyw3ICsyNjcsOSBAQCBocy1zcGVjaWFsLW1vZGVzLWFsaXN0CiAgICAgKSkKICAg IkFsaXN0IGZvciBpbml0aWFsaXppbmcgdGhlIGhpZGVzaG93IHZhcmlhYmxlcyBmb3IgZGlmZmVy ZW50IG1vZGVzLgogRWFjaCBlbGVtZW50IGhhcyB0aGUgZm9ybQotICAoTU9ERSBTVEFSVCBFTkQg Q09NTUVOVC1TVEFSVCBGT1JXQVJELVNFWFAtRlVOQyBBREpVU1QtQkVHLUZVTkMpLgorICAoTU9E RSBTVEFSVCBFTkQgQ09NTUVOVC1TVEFSVCBGT1JXQVJELVNFWFAtRlVOQyBBREpVU1QtQkVHLUZV TkMKKyAgIEZJTkQtQkxPQ0stQkVHSU5OSU5HLUZVTkMgRklORC1ORVhULUJMT0NLLUZVTkMKKyAg IExPT0tJTkctQVQtQkxPQ0stU1RBUlQtUC1GVU5DKS4KIAogSWYgbm9uLW5pbCwgaGlkZXNob3cg d2lsbCB1c2UgdGhlc2UgdmFsdWVzIGFzIHJlZ2V4cHMgdG8gZGVmaW5lIGJsb2NrcwogYW5kIGNv bW1lbnRzLCByZXNwZWN0aXZlbHkgZm9yIG1ham9yIG1vZGUgTU9ERS4KQEAgLTI4OCw2ICsyOTAs MTUgQEAgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdAogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBg aHMtYWRqdXN0LWJsb2NrLWJlZ2lubmluZycgdG8gc2VlIHdoYXQgaXMgdGhlCiB1c2Ugb2YgQURK VVNULUJFRy1GVU5DLgogCitTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGBocy1maW5kLWJsb2Nr LWJlZ2lubmluZy1mdW5jJyB0byBzZWUKK3doYXQgaXMgdGhlIHVzZSBvZiBGSU5ELUJMT0NLLUJF R0lOTklORy1GVU5DLgorCitTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIGBocy1maW5kLW5leHQt YmxvY2stZnVuYycgdG8gc2VlIHdoYXQKK2lzIHRoZSB1c2Ugb2YgRklORC1ORVhULUJMT0NLLUZV TkMuCisKK1NlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYGhzLWxvb2tpbmctYXQtYmxvY2stc3Rh cnQtcC1mdW5jJyB0bworc2VlIHdoYXQgaXMgdGhlIHVzZSBvZiBMT09LSU5HLUFULUJMT0NLLVNU QVJULVAtRlVOQy4KKwogSWYgYW55IG9mIHRoZSBlbGVtZW50cyBpcyBsZWZ0IG5pbCBvciBvbWl0 dGVkLCBoaWRlc2hvdyB0cmllcyB0byBndWVzcwogYXBwcm9wcmlhdGUgdmFsdWVzLiAgVGhlIHJl Z2V4cHMgc2hvdWxkIG5vdCBjb250YWluIGxlYWRpbmcgb3IgdHJhaWxpbmcKIHdoaXRlc3BhY2Uu ICBDYXNlIGRvZXMgbm90IG1hdHRlci4iKQpAQCAtNDMzLDYgKzQ0NCwzOSBAQCBocy1hZGp1c3Qt YmxvY2stYmVnaW5uaW5nCiAKIFNlZSBgaHMtYy1saWtlLWFkanVzdC1ibG9jay1iZWdpbm5pbmcn IGZvciBhbiBleGFtcGxlIG9mIHVzaW5nIHRoaXMuIikKIAorKGRlZnZhci1sb2NhbCBocy1maW5k LWJsb2NrLWJlZ2lubmluZy1mdW5jICMnaHMtZmluZC1ibG9jay1iZWdpbm5pbmcKKyAgIkZ1bmN0 aW9uIHVzZWQgdG8gZG8gYGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nJy4KK0l0IHNob3VsZCByZXBv c2l0aW9uIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgYmxvY2sKK2FuZCBy ZXR1cm4gcG9pbnQsIG9yIG5pbCBpZiBvcmlnaW5hbCBwb2ludCB3YXMgbm90IGluIGEgYmxvY2su CisKK1NwZWNpZnlpbmcgdGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgZm9yIGxhbmd1YWdlcyBz dWNoIGFzCitQeXRob24sIHdoZXJlIHJlZ2V4cCBzZWFyY2ggYW5kIGBzeW50YXgtcHBzcycgY2hl Y2sgaXMgbm90IGVub3VnaAordG8gZmluZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IGJs b2NrLiIpCisKKyhkZWZ2YXItbG9jYWwgaHMtZmluZC1uZXh0LWJsb2NrLWZ1bmMgIydocy1maW5k LW5leHQtYmxvY2sKKyAgIkZ1bmN0aW9uIHVzZWQgdG8gZG8gYGhzLWZpbmQtbmV4dC1ibG9jaycu CitJdCBzaG91bGQgcmVwb3NpdGlvbiBwb2ludCBhdCBuZXh0IGJsb2NrIHN0YXJ0LgorCitJdCBp cyBjYWxsZWQgd2l0aCB0aHJlZSBhcmd1bWVudHMgUkVHRVhQLCBNQVhQLCBhbmQgQ09NTUVOVFMu CitSRUdFWFAgaXMgYSByZWdleHAgcmVwcmVzZW50aW5nIGJsb2NrIHN0YXJ0LiAgV2hlbiBibG9j ayBzdGFydCBpcworZm91bmQsIGBtYXRjaC1kYXRhJyBzaG91bGQgYmUgc2V0IHVzaW5nIFJFR0VY UC4gIE1BWFAgaXMgYSBidWZmZXIKK3Bvc2l0aW9uIHRoYXQgYm91bmRzIHRoZSBzZWFyY2guICBX aGVuIENPTU1FTlRTIGlzIG5pbCwgY29tbWVudHMKK3Nob3VsZCBiZSBza2lwcGVkLiAgV2hlbiBD T01NRU5UUyBpcyBub3QgbmlsLCBSRUdFWFAgbWF0Y2hlcyBub3QKK29ubHkgYmVnaW5uaW5nIG9m IGEgYmxvY2sgYnV0IGFsc28gYmVnaW5uaW5nIG9mIGEgY29tbWVudC4gIEluCit0aGlzIGNhc2Us IHRoZSBmdW5jdGlvbiBzaG91bGQgZmluZCBuZWFyZXN0IGJsb2NrIG9yIGNvbW1lbnQuCisKK1Nw ZWNpZnlpbmcgdGhpcyBmdW5jdGlvbiBpcyBuZWNlc3NhcnkgZm9yIGxhbmd1YWdlcyBzdWNoIGFz CitQeXRob24sIHdoZXJlIHJlZ2V4cCBzZWFyY2ggaXMgbm90IGVub3VnaCB0byBmaW5kIHRoZSBi ZWdpbm5pbmcKK29mIHRoZSBuZXh0IGJsb2NrLiIpCisKKyhkZWZ2YXItbG9jYWwgaHMtbG9va2lu Zy1hdC1ibG9jay1zdGFydC1wLWZ1bmMgIydocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXAKKyAg IkZ1bmN0aW9uIHVzZWQgdG8gZG8gYGhzLWxvb2tpbmctYXQtYmxvY2stc3RhcnQtcCcuCitJdCBz aG91bGQgcmV0dXJuIG5vbi1uaWwgaWYgdGhlIHBvaW50IGlzIGF0IHRoZSBibG9jayBzdGFydC4K KworU3BlY2lmeWluZyB0aGlzIGZ1bmN0aW9uIGlzIG5lY2Vzc2FyeSBmb3IgbGFuZ3VhZ2VzIHN1 Y2ggYXMKK1B5dGhvbiwgd2hlcmUgYGxvb2tpbmctYXQnIGFuZCBgc3ludGF4LXBwc3MnIGNoZWNr IGlzIG5vdCBlbm91Z2gKK3RvIGNoZWNrIGlmIHRoZSBwb2ludCBpcyBhdCB0aGUgYmxvY2sgc3Rh cnQuIikKKwogKGRlZnZhciBocy1oZWFkbGluZSBuaWwKICAgIlRleHQgb2YgdGhlIGxpbmUgd2hl cmUgYSBoaWRkZW4gYmxvY2sgYmVnaW5zLCBzZXQgZHVyaW5nIGlzZWFyY2guCiBZb3UgY2FuIGRp c3BsYXkgdGhpcyBpbiB0aGUgbW9kZSBsaW5lIGJ5IGFkZGluZyB0aGUgc3ltYm9sIGBocy1oZWFk bGluZScKQEAgLTU2NSw3ICs2MDksNyBAQCBocy1oaWRlLWJsb2NrLWF0LXBvaW50CiBhbmQgdGhl biBmdXJ0aGVyIGFkanVzdGVkIHRvIGJlIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuIgogICAoaWYg Y29tbWVudC1yZWcKICAgICAgIChocy1oaWRlLWNvbW1lbnQtcmVnaW9uIChjYXIgY29tbWVudC1y ZWcpIChjYWRyIGNvbW1lbnQtcmVnKSBlbmQpCi0gICAgKHdoZW4gKGhzLWxvb2tpbmctYXQtYmxv Y2stc3RhcnQtcCkKKyAgICAod2hlbiAoZnVuY2FsbCBocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0 LXAtZnVuYykKICAgICAgIChsZXQgKChtZGF0YSAobWF0Y2gtZGF0YSB0KSkKICAgICAgICAgICAg IChoZWFkZXItZW5kIChtYXRjaC1lbmQgMCkpCiAgICAgICAgICAgICBwIHEgb3YpCkBAIC02NzIs NyArNzE2LDE0IEBAIGhzLWdyb2stbW9kZS10eXBlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgKDEtIChtYXRjaC1lbmQgMCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMtc3RhcnQtcmVnZXhwKSkpCiAgICAg ICAgICAgICAgIGhzLWZvcndhcmQtc2V4cC1mdW5jIChvciAobnRoIDQgbG9va3VwKSAjJ2Zvcndh cmQtc2V4cCkKLSAgICAgICAgICAgICAgaHMtYWRqdXN0LWJsb2NrLWJlZ2lubmluZyAob3IgKG50 aCA1IGxvb2t1cCkgIydpZGVudGl0eSkpKQorICAgICAgICAgICAgICBocy1hZGp1c3QtYmxvY2st YmVnaW5uaW5nIChvciAobnRoIDUgbG9va3VwKSAjJ2lkZW50aXR5KQorICAgICAgICAgICAgICBo cy1maW5kLWJsb2NrLWJlZ2lubmluZy1mdW5jIChvciAobnRoIDYgbG9va3VwKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2hzLWZpbmQtYmxvY2stYmVn aW5uaW5nKQorICAgICAgICAgICAgICBocy1maW5kLW5leHQtYmxvY2stZnVuYyAob3IgKG50aCA3 IGxvb2t1cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnaHMt ZmluZC1uZXh0LWJsb2NrKQorICAgICAgICAgICAgICBocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0 LXAtZnVuYworICAgICAgICAgICAgICAob3IgKG50aCA4IGxvb2t1cCkKKyAgICAgICAgICAgICAg ICAgICMnaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKSkpCiAgICAgKHNldHEgaHMtbWlub3It bW9kZSBuaWwpCiAgICAgKGVycm9yICIlcyBNb2RlIGRvZXNuJ3Qgc3VwcG9ydCBIaWRlc2hvdyBN aW5vciBNb2RlIgogICAgICAgICAgICAoZm9ybWF0LW1vZGUtbGluZSBtb2RlLW5hbWUpKSkpCkBA IC02ODMsNyArNzM0LDcgQEAgaHMtZmluZC1ibG9jay1iZWdpbm5pbmcKICAgKGxldCAoKGRvbmUg bmlsKQogICAgICAgICAoaGVyZSAocG9pbnQpKSkKICAgICA7OyBsb29rIGlmIGN1cnJlbnQgbGlu ZSBpcyBibG9jayBzdGFydAotICAgIChpZiAoaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wKQor ICAgIChpZiAoZnVuY2FsbCBocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXAtZnVuYykKICAgICAg ICAgKHBvaW50KQogICAgICAgOzsgbG9vayBiYWNrd2FyZCBmb3IgdGhlIHN0YXJ0IG9mIGEgYmxv Y2sgdGhhdCBjb250YWlucyB0aGUgY3Vyc29yCiAgICAgICAod2hpbGUgKGFuZCAocmUtc2VhcmNo LWJhY2t3YXJkIGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBuaWwgdCkKQEAgLTY5OCwxOSArNzQ5LDI1 IEBAIGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nCiAgICAgICAgIChnb3RvLWNoYXIgaGVyZSkKICAg ICAgICAgbmlsKSkpKQogCisoZGVmdW4gaHMtZmluZC1uZXh0LWJsb2NrIChyZWdleHAgbWF4cCBj b21tZW50cykKKyAgIlJlcG9zaXRpb24gcG9pbnQgYXQgbmV4dCBibG9jay1zdGFydC4KK1NraXAg Y29tbWVudHMgaWYgQ09NTUVOVFMgaXMgbmlsLCBhbmQgc2VhcmNoIGZvciBSRUdFWFAgaW4KK3Jl Z2lvbiAocG9pbnQgTUFYUCkuIgorICAod2hlbiAobm90IGNvbW1lbnRzKQorICAgIChmb3J3YXJk LWNvbW1lbnQgKHBvaW50LW1heCkpKQorICAoYW5kICg8IChwb2ludCkgbWF4cCkKKyAgICAgICAo cmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIG1heHAgdCkpKQorCiAoZGVmdW4gaHMtaGlkZS1sZXZl bC1yZWN1cnNpdmUgKGFyZyBtaW5wIG1heHApCiAgICJSZWN1cnNpdmVseSBoaWRlIGJsb2NrcyBB UkcgbGV2ZWxzIGJlbG93IHBvaW50IGluIHJlZ2lvbiAoTUlOUCBNQVhQKS4iCi0gICh3aGVuICho cy1maW5kLWJsb2NrLWJlZ2lubmluZykKKyAgKHdoZW4gKGZ1bmNhbGwgaHMtZmluZC1ibG9jay1i ZWdpbm5pbmctZnVuYykKICAgICAoc2V0cSBtaW5wICgxKyAocG9pbnQpKSkKICAgICAoZnVuY2Fs bCBocy1mb3J3YXJkLXNleHAtZnVuYyAxKQogICAgIChzZXRxIG1heHAgKDEtIChwb2ludCkpKSkK ICAgKHVubGVzcyBocy1hbGxvdy1uZXN0aW5nCiAgICAgKGhzLWRpc2NhcmQtb3ZlcmxheXMgbWlu cCBtYXhwKSkKICAgKGdvdG8tY2hhciBtaW5wKQotICAod2hpbGUgKHByb2duCi0gICAgICAgICAg IChmb3J3YXJkLWNvbW1lbnQgKGJ1ZmZlci1zaXplKSkKLSAgICAgICAgICAgKGFuZCAoPCAocG9p bnQpIG1heHApCi0gICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGhzLWJsb2NrLXN0 YXJ0LXJlZ2V4cCBtYXhwIHQpKSkKKyAgKHdoaWxlIChmdW5jYWxsIGhzLWZpbmQtbmV4dC1ibG9j ay1mdW5jIGhzLWJsb2NrLXN0YXJ0LXJlZ2V4cCBtYXhwIG5pbCkKICAgICAod2hlbiAoc2F2ZS1t YXRjaC1kYXRhCiAJICAgIChub3QgKG50aCA4IChzeW50YXgtcHBzcykpKSkgOyBub3QgaW5zaWRl IGNvbW1lbnRzIG9yIHN0cmluZ3MKICAgICAgIChpZiAoPiBhcmcgMSkKQEAgLTc0Nyw4ICs4MDQs OCBAQCBocy1hbHJlYWR5LWhpZGRlbi1wCiAgICAgICAgICAgKGdvdG8tY2hhciAobnRoIDAgYy1y ZWcpKQogICAgICAgICAoZW5kLW9mLWxpbmUpCiAgICAgICAgICh3aGVuIChhbmQgKG5vdCBjLXJl ZykKLSAgICAgICAgICAgICAgICAgICAoaHMtZmluZC1ibG9jay1iZWdpbm5pbmcpCi0JCSAgICho cy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXApKQorICAgICAgICAgICAgICAgICAgIChmdW5jYWxs IGhzLWZpbmQtYmxvY2stYmVnaW5uaW5nLWZ1bmMpCisJCSAgIChmdW5jYWxsIGhzLWxvb2tpbmct YXQtYmxvY2stc3RhcnQtcC1mdW5jKSkKICAgICAgICAgICA7OyBwb2ludCBpcyBpbnNpZGUgYSBi bG9jawogICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpKSkKICAgICAoZW5kLW9m LWxpbmUpCkBAIC03OTAsMTAgKzg0Nyw4IEBAIGhzLWhpZGUtYWxsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGhzLWMtc3RhcnQtcmVnZXhwCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJcXCkiKQogICAgICAgICAgICAgICAgICAgICAgICAgICIiKSkpKQot ICAgICAgICh3aGlsZSAocHJvZ24KLSAgICAgICAgICAgICAgICAodW5sZXNzIGhzLWhpZGUtY29t bWVudHMtd2hlbi1oaWRpbmctYWxsCi0gICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jb21tZW50 IChwb2ludC1tYXgpKSkKLSAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWZvcndhcmQgcmUgKHBv aW50LW1heCkgdCkpCisgICAgICAgKHdoaWxlIChmdW5jYWxsIGhzLWZpbmQtbmV4dC1ibG9jay1m dW5jIHJlIChwb2ludC1tYXgpCisgICAgICAgICAgICAgICAgICAgICAgIGhzLWhpZGUtY29tbWVu dHMtd2hlbi1oaWRpbmctYWxsKQogICAgICAgICAgKGlmIChtYXRjaC1iZWdpbm5pbmcgMSkKICAg ICAgICAgICAgICA7OyBXZSBoYXZlIGZvdW5kIGEgYmxvY2sgYmVnaW5uaW5nLgogICAgICAgICAg ICAgIChwcm9nbgpAQCAtODM4LDggKzg5Myw4IEBAIGhzLWhpZGUtYmxvY2sKICAgICAgICAgICAg ICAgICAgICAgICAoPD0gKGNvdW50LWxpbmVzIChjYXIgYy1yZWcpIChudGggMSBjLXJlZykpIDEp KSkKICAgICAgICAobWVzc2FnZSAiKG5vdCBlbm91Z2ggY29tbWVudCBsaW5lcyB0byBoaWRlKSIp KQogICAgICAgKChvciBjLXJlZwotCSAgIChocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXApCi0g ICAgICAgICAgIChocy1maW5kLWJsb2NrLWJlZ2lubmluZykpCisJICAgKGZ1bmNhbGwgaHMtbG9v a2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMpCisgICAgICAgICAgIChmdW5jYWxsIGhzLWZpbmQt YmxvY2stYmVnaW5uaW5nLWZ1bmMpKQogICAgICAgIChocy1oaWRlLWJsb2NrLWF0LXBvaW50IGVu ZCBjLXJlZykKICAgICAgICAocnVuLWhvb2tzICdocy1oaWRlLWhvb2spKSkpKSkKIApAQCAtODY4 LDkgKzkyMyw5IEBAIGhzLXNob3ctYmxvY2sKICAgICAgICAgICAgICAod2hlbiAoY2FyIGMtcmVn KQogICAgICAgICAgICAgICAgKHNldHEgcCAoY2FyIGMtcmVnKQogICAgICAgICAgICAgICAgICAg ICAgcSAoY2FkciBjLXJlZykpKSkKLSAgICAgICAgICAgICgoYW5kIChocy1maW5kLWJsb2NrLWJl Z2lubmluZykKKyAgICAgICAgICAgICgoYW5kIChmdW5jYWxsIGhzLWZpbmQtYmxvY2stYmVnaW5u aW5nLWZ1bmMpCiAgICAgICAgICAgICAgICAgICA7OyB1Z2gsIGZyZXNoIG1hdGNoLWRhdGEKLSAg ICAgICAgICAgICAgICAgIChocy1sb29raW5nLWF0LWJsb2NrLXN0YXJ0LXApKQorICAgICAgICAg ICAgICAgICAgKGZ1bmNhbGwgaHMtbG9va2luZy1hdC1ibG9jay1zdGFydC1wLWZ1bmMpKQogICAg ICAgICAgICAgIChzZXRxIHAgKHBvaW50KQogICAgICAgICAgICAgICAgICAgIHEgKHByb2duICho cy1mb3J3YXJkLXNleHAgKG1hdGNoLWRhdGEgdCkgMSkgKHBvaW50KSkpKSkKICAgICAgICh3aGVu IChhbmQgcCBxKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9oaWRlc2hvdy10ZXN0 cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3ctdGVzdHMuZWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWUyYTBjN2M0YwotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3QvbGlzcC9wcm9nbW9kZXMvaGlkZXNob3ctdGVzdHMuZWwKQEAgLTAsMCArMSwyNjggQEAK Kzs7OyBoaWRlc2hvdy10ZXN0cy5lbCAtLS0gVGVzdCBzdWl0ZSBmb3IgaGlkZXNob3cuZWwgIC0q LSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1h Y3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7 IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorCis7OzsgQ29kZToK KworKHJlcXVpcmUgJ2VydCkKKyhyZXF1aXJlICdlcnQteCkKKyhyZXF1aXJlICdoaWRlc2hvdykK KworOzsgRGVwZW5kZW5jaWVzIGZvciB0ZXN0aW5nOgorKHJlcXVpcmUgJ2NjLW1vZGUpCisKKwor KGRlZm1hY3JvIGhpZGVzaG93LXRlc3RzLXdpdGgtdGVtcC1idWZmZXIgKG1vZGUgY29udGVudHMg JnJlc3QgYm9keSkKKyAgIkNyZWF0ZSBhIGBocy1taW5vci1tb2RlJyBlbmFibGVkIE1PREUgdGVt cCBidWZmZXIgd2l0aCBDT05URU5UUy4KK0JPRFkgaXMgY29kZSB0byBiZSBleGVjdXRlZCB3aXRo aW4gdGhlIHRlbXAgYnVmZmVyLiAgUG9pbnQgaXMKK2Fsd2F5cyBsb2NhdGVkIGF0IHRoZSBiZWdp bm5pbmcgb2YgYnVmZmVyLiIKKyAgKGRlY2xhcmUgKGluZGVudCAxKSAoZGVidWcgdCkpCisgIGAo d2l0aC10ZW1wLWJ1ZmZlcgorICAgICAoLG1vZGUpCisgICAgIChocy1taW5vci1tb2RlIDEpCisg ICAgIChpbnNlcnQgLGNvbnRlbnRzKQorICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAg ICAsQGJvZHkpKQorCisoZGVmdW4gaGlkZXNob3ctdGVzdHMtbG9vay1hdCAoc3RyaW5nICZvcHRp b25hbCBudW0gcmVzdG9yZS1wb2ludCkKKyAgIk1vdmUgcG9pbnQgYXQgYmVnaW5uaW5nIG9mIFNU UklORyBpbiB0aGUgY3VycmVudCBidWZmZXIuCitPcHRpb25hbCBhcmd1bWVudCBOVU0gZGVmYXVs dHMgdG8gMSBhbmQgaXMgYW4gaW50ZWdlciBpbmRpY2F0aW5nCitob3cgbWFueSBvY2N1cnJlbmNl cyBtdXN0IGJlIGZvdW5kLCB3aGVuIHBvc2l0aXZlIHRoZSBzZWFyY2ggaXMKK2RvbmUgZm9yd2Fy ZHMsIG90aGVyd2lzZSBiYWNrd2FyZHMuICBXaGVuIFJFU1RPUkUtUE9JTlQgaXMKK25vbi1uaWwg dGhlIHBvaW50IGlzIG5vdCBtb3ZlZCBidXQgdGhlIHBvc2l0aW9uIGZvdW5kIGlzIHN0aWxsCity ZXR1cm5lZC4gIFdoZW4gc2VhcmNoaW5nIGZvcndhcmQgYW5kIHBvaW50IGlzIGFscmVhZHkgbG9v a2luZyBhdAorU1RSSU5HLCBpdCBpcyBza2lwcGVkIHNvIHRoZSBuZXh0IFNUUklORyBvY2N1cnJl bmNlIGlzIHNlbGVjdGVkLiIKKyAgKGxldCogKChudW0gKG9yIG51bSAxKSkKKyAgICAgICAgIChz dGFydGluZy1wb2ludCAocG9pbnQpKQorICAgICAgICAgKHN0cmluZyAocmVnZXhwLXF1b3RlIHN0 cmluZykpCisgICAgICAgICAoc2VhcmNoLWZuIChpZiAoPiBudW0gMCkgIydyZS1zZWFyY2gtZm9y d2FyZCAjJ3JlLXNlYXJjaC1iYWNrd2FyZCkpCisgICAgICAgICAoZGVpbmMtZm4gKGlmICg+IG51 bSAwKSAjJzEtICMnMSspKQorICAgICAgICAgKGZvdW5kLXBvaW50KSkKKyAgICAocHJvZzIKKyAg ICAgICAgKGNhdGNoICdleGl0CisgICAgICAgICAgKHdoaWxlIChub3QgKD0gbnVtIDApKQorICAg ICAgICAgICAgKHdoZW4gKGFuZCAoPiBudW0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgKGxv b2tpbmctYXQgc3RyaW5nKSkKKyAgICAgICAgICAgICAgOzsgTW92aW5nIGZvcndhcmQgYW5kIGFs cmVhZHkgbG9va2luZyBhdCBTVFJJTkcsIHNraXAgaXQuCisgICAgICAgICAgICAgIChmb3J3YXJk LWNoYXIgKGxlbmd0aCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMCkpKSkKKyAgICAgICAg ICAgIChhbmQgKG5vdCAoZnVuY2FsbCBzZWFyY2gtZm4gc3RyaW5nIG5pbCB0KSkKKyAgICAgICAg ICAgICAgICAgKHRocm93ICdleGl0IHQpKQorICAgICAgICAgICAgKHdoZW4gKD4gbnVtIDApCisg ICAgICAgICAgICAgIDs7IGByZS1zZWFyY2gtZm9yd2FyZCcgbGVhdmVzIHBvaW50IGF0IHRoZSBl bmQgb2YgdGhlCisgICAgICAgICAgICAgIDs7IG9jY3VycmVuY2UsIG1vdmUgYmFjayBzbyBwb2lu dCBpcyBhdCB0aGUgYmVnaW5uaW5nCisgICAgICAgICAgICAgIDs7IGluc3RlYWQuCisgICAgICAg ICAgICAgIChmb3J3YXJkLWNoYXIgKC0gKGxlbmd0aCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRp ZXMgMCkpKSkpCisgICAgICAgICAgICAoc2V0cQorICAgICAgICAgICAgIG51bSAoZnVuY2FsbCBk ZWluYy1mbiBudW0pCisgICAgICAgICAgICAgZm91bmQtcG9pbnQgKHBvaW50KSkpKQorICAgICAg ICBmb3VuZC1wb2ludAorICAgICAgKGFuZCByZXN0b3JlLXBvaW50IChnb3RvLWNoYXIgc3RhcnRp bmctcG9pbnQpKSkpKQorCisoZGVmdW4gaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1zdHJpbmcgKCZv cHRpb25hbCBtaW4gbWF4KQorICAiUmV0dXJuIHRoZSBidWZmZXIgc3RyaW5nIGV4Y2x1ZGluZyBp bnZpc2libGUgb3ZlcmxheXMuCitBcmd1bWVudCBNSU4gYW5kIE1BWCBkZWxpbWl0IHRoZSByZWdp b24gdG8gYmUgcmV0dXJuZWQgYW5kCitkZWZhdWx0IHRvIGBwb2ludC1taW4nIGFuZCBgcG9pbnQt bWF4JyByZXNwZWN0aXZlbHkuIgorICAobGV0KiAoKG1pbiAob3IgbWluIChwb2ludC1taW4pKSkK KyAgICAgICAgIChtYXggKG9yIG1heCAocG9pbnQtbWF4KSkpCisgICAgICAgICAoYnVmZmVyLWNv bnRlbnRzIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbWluIG1heCkpCisgICAgICAg ICAob3ZlcmxheXMKKyAgICAgICAgICAoc29ydCAob3ZlcmxheXMtaW4gbWluIG1heCkKKyAgICAg ICAgICAgICAgICAobGFtYmRhIChhIGIpCisgICAgICAgICAgICAgICAgICAobGV0ICgob3Zlcmxh eS1lbmQtYSAob3ZlcmxheS1lbmQgYSkpCisgICAgICAgICAgICAgICAgICAgICAgICAob3Zlcmxh eS1lbmQtYiAob3ZlcmxheS1lbmQgYikpKQorICAgICAgICAgICAgICAgICAgICAoPiBvdmVybGF5 LWVuZC1hIG92ZXJsYXktZW5kLWIpKSkpKSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAg KGluc2VydCBidWZmZXItY29udGVudHMpCisgICAgICAoZG9saXN0IChvdmVybGF5IG92ZXJsYXlz KQorICAgICAgICAoaWYgKG92ZXJsYXktZ2V0IG92ZXJsYXkgJ2ludmlzaWJsZSkKKyAgICAgICAg ICAgIChkZWxldGUtcmVnaW9uIChvdmVybGF5LXN0YXJ0IG92ZXJsYXkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAob3ZlcmxheS1lbmQgb3ZlcmxheSkpKSkKKyAgICAgIChidWZmZXItc3Vi c3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkpKSkpCisKKyhlcnQt ZGVmdGVzdCBoaWRlc2hvdy1oaWRlLWJsb2NrLTEgKCkKKyAgIlNob3VsZCBoaWRlIGN1cnJlbnQg YmxvY2suIgorICAobGV0ICgoY29udGVudHMgIgoraW50CittYWluKCkKK3sKKyAgcHJpbnRmKFwi SGVsbG9cXG5cIik7Cit9CisiKSkKKyAgICAoaGlkZXNob3ctdGVzdHMtd2l0aC10ZW1wLWJ1ZmZl cgorICAgICBjLW1vZGUKKyAgICAgY29udGVudHMKKyAgICAgKGhpZGVzaG93LXRlc3RzLWxvb2st YXQgInByaW50ZiIpCisgICAgIChocy1oaWRlLWJsb2NrKQorICAgICAoc2hvdWxkIChzdHJpbmc9 CisgICAgICAgICAgICAgIChoaWRlc2hvdy10ZXN0cy12aXNpYmxlLXN0cmluZykKKyAgICAgICAg ICAgICAgIgoraW50CittYWluKCkKK3t9CisiKSkKKyAgICAgKGhzLXNob3ctYmxvY2spCisgICAg IChzaG91bGQgKHN0cmluZz0gKGhpZGVzaG93LXRlc3RzLXZpc2libGUtc3RyaW5nKSBjb250ZW50 cykpKSkpCisKKyhlcnQtZGVmdGVzdCBoaWRlc2hvdy1oaWRlLWFsbC0xICgpCisgICJTaG91bGQg aGlkZSBhbGwgYmxvY2tzIGFuZCBjb21tZW50cy4iCisgIChsZXQgKChjb250ZW50cyAiCisvKgor ICAgQ29tbWVudHMKKyovCisKK2ludAorbWFpbigpCit7CisgIHN1YigpOworfQorCit2b2lkCitz dWIoKQoreworICBwcmludGYoXCJIZWxsb1xcblwiKTsKK30KKyIpKQorICAgIChoaWRlc2hvdy10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAgIGMtbW9kZQorICAgICBjb250ZW50cworICAgICAo aHMtaGlkZS1hbGwpCisgICAgIChzaG91bGQgKHN0cmluZz0KKyAgICAgICAgICAgICAgKGhpZGVz aG93LXRlc3RzLXZpc2libGUtc3RyaW5nKQorICAgICAgICAgICAgICAiCisvKgorCitpbnQKK21h aW4oKQore30KKwordm9pZAorc3ViKCkKK3t9CisiKSkKKyAgICAgKGhzLXNob3ctYWxsKQorICAg ICAoc2hvdWxkIChzdHJpbmc9IChoaWRlc2hvdy10ZXN0cy12aXNpYmxlLXN0cmluZykgY29udGVu dHMpKSkpKQorCisoZXJ0LWRlZnRlc3QgaGlkZXNob3ctaGlkZS1hbGwtMiAoKQorICAiU2hvdWxk IG5vdCBoaWRlIGNvbW1lbnRzIHdoZW4gYGhzLWhpZGUtY29tbWVudHMtd2hlbi1oaWRpbmctYWxs JyBpcyBuaWwuIgorICAobGV0ICgoY29udGVudHMgIgorLyoKKyAgIENvbW1lbnRzCisqLworCitp bnQKK21haW4oKQoreworICBzdWIoKTsKK30KKwordm9pZAorc3ViKCkKK3sKKyAgcHJpbnRmKFwi SGVsbG9cXG5cIik7Cit9CisiKSkKKyAgICAoaGlkZXNob3ctdGVzdHMtd2l0aC10ZW1wLWJ1ZmZl cgorICAgICBjLW1vZGUKKyAgICAgY29udGVudHMKKyAgICAgKGxldCAoKGhzLWhpZGUtY29tbWVu dHMtd2hlbi1oaWRpbmctYWxsIG5pbCkpCisgICAgICAgKGhzLWhpZGUtYWxsKSkKKyAgICAgKHNo b3VsZCAoc3RyaW5nPQorICAgICAgICAgICAgICAoaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1zdHJp bmcpCisgICAgICAgICAgICAgICIKKy8qCisgICBDb21tZW50cworKi8KKworaW50CittYWluKCkK K3t9CisKK3ZvaWQKK3N1YigpCit7fQorIikpCisgICAgIChocy1zaG93LWFsbCkKKyAgICAgKHNo b3VsZCAoc3RyaW5nPSAoaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1zdHJpbmcpIGNvbnRlbnRzKSkp KSkKKworKGVydC1kZWZ0ZXN0IGhpZGVzaG93LWhpZGUtbGV2ZWwtMSAoKQorICAiU2hvdWxkIGhp ZGUgMXN0IGxldmVsIGJsb2Nrcy4iCisgIChoaWRlc2hvdy10ZXN0cy13aXRoLXRlbXAtYnVmZmVy CisgICBjLW1vZGUKKyAgICIKKy8qCisgICBDb21tZW50cworKi8KKworaW50CittYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKK3sKKyAgaWYgKGFyZ2MgPiAxKSB7CisgICAgcHJpbnRmKFwiSGVs bG9cXG5cIik7CisgIH0KK30KKyIKKyAgIChocy1oaWRlLWxldmVsIDEpCisgICAoc2hvdWxkIChz dHJpbmc9CisgICAgICAgICAgICAoaGlkZXNob3ctdGVzdHMtdmlzaWJsZS1zdHJpbmcpCisgICAg ICAgICAgICAiCisvKgorICAgQ29tbWVudHMKKyovCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCit7fQorIikpKSkKKworKGVydC1kZWZ0ZXN0IGhpZGVzaG93LWhpZGUtbGV2ZWwt MiAoKQorICAiU2hvdWxkIGhpZGUgMm5kIGxldmVsIGJsb2Nrcy4iCisgIChoaWRlc2hvdy10ZXN0 cy13aXRoLXRlbXAtYnVmZmVyCisgICBjLW1vZGUKKyAgICIKKy8qCisgICBDb21tZW50cworKi8K KworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgaWYgKGFyZ2MgPiAxKSB7 CisgICAgcHJpbnRmKFwiSGVsbG9cXG5cIik7CisgIH0KK30KKyIKKyAgIChocy1oaWRlLWxldmVs IDIpCisgICAoc2hvdWxkIChzdHJpbmc9CisgICAgICAgICAgICAoaGlkZXNob3ctdGVzdHMtdmlz aWJsZS1zdHJpbmcpCisgICAgICAgICAgICAiCisvKgorICAgQ29tbWVudHMKKyovCisKK2ludAor bWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgIGlmIChhcmdjID4gMSkge30KK30KKyIp KSkpCisKKyhwcm92aWRlICdoaWRlc2hvdy10ZXN0cykKKworOzs7IGhpZGVzaG93LXRlc3RzLmVs IGVuZHMgaGVyZQo= --0000000000005bbc8a05e61ea8c1 Content-Type: application/octet-stream; name="fix-56635-python.patch" Content-Disposition: attachment; filename="fix-56635-python.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6rvowvd1 Y29tbWl0IGViM2U5ZDE4NzBlZWNiMmY2NmQ0NzUyNGE4MjVjZDNhMjhjOWJkZGUKQXV0aG9yOiBr b2Jhcml0eSA8a29iYXJpdHlAZ21haWwuY29tPgpEYXRlOiAgIFNhdCBBdWcgMTMgMjA6MzM6NDYg MjAyMiArMDkwMAoKICAgIEFkZCBQeXRob24gYmxvY2tzIHN1cHBvcnQgZm9yIGhpZGVzaG93CiAg ICAKICAgICogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIChweXRob24tbmF2LWJlZ2lubmluZy1v Zi1ibG9jay1yZWdleHApOgogICAgTmV3IHZhcmlhYmxlLgogICAgKHB5dGhvbi1oaWRlc2hvdy1m b3J3YXJkLXNleHAtZnVuY3Rpb24pOiBDaGFuZ2UgdG8gY2FsbAogICAgYHB5dGhvbi1uYXYtZW5k LW9mLWJsb2NrJy4KICAgIChweXRob24taGlkZXNob3ctZmluZC1uZXh0LWJsb2NrKTogTmV3IGZ1 bmN0aW9uIHRvIGJlIHVzZWQgYXMKICAgIEZJTkQtTkVYVC1CTE9DSy1GVU5DIGluIGBocy1zcGVj aWFsLW1vZGVzLWFsaXN0Jy4KICAgIChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1v Zi1ibG9jayk6IE5ldyBmdW5jdGlvbiB0byBiZQogICAgdXNlZCBhcyBMT09LSU5HLUFULUJMT0NL LVNUQVJULVAtRlVOQyBpbiBgaHMtc3BlY2lhbC1tb2Rlcy1hbGlzdCcuCiAgICAocHl0aG9uLW1v ZGUpOiBDaGFuZ2Ugc2V0dGluZ3Mgb2YgYGhzLXNwZWNpYWwtbW9kZXMtYWxpc3QnLgogICAgCiAg ICAqIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCiAgICAocHl0aG9uLWhpZGVz aG93LWhpZGUtbGV2ZWxzLTEpOiBGaXggdG8ga2VlcCBlbXB0eSBsaW5lcy4KICAgIChweXRob24t aW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jay0xKQogICAgKHB5dGhvbi1oaWRlc2hv dy1oaWRlLWxldmVscy0zLCBweXRob24taGlkZXNob3ctaGlkZS1sZXZlbHMtNCkKICAgIChweXRo b24taGlkZXNob3ctaGlkZS1hbGwtMSwgcHl0aG9uLWhpZGVzaG93LWhpZGUtYWxsLTIpCiAgICAo cHl0aG9uLWhpZGVzaG93LWhpZGUtYWxsLTMsIHB5dGhvbi1oaWRlc2hvdy1oaWRlLWJsb2NrLTEp OiBOZXcKICAgIHRlc3RzLgoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBi L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCA5NmY5ZDE0ODMyLi45MzhjYTQzZTg2IDEw MDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMv cHl0aG9uLmVsCkBAIC0xNTA0LDYgKzE1MDQsMTAgQEAgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2Yt ZGVmdW4tcmVnZXhwCiBUaGUgbmFtZSBvZiB0aGUgZGVmdW4gc2hvdWxkIGJlIGdyb3VwZWQgc28g aXQgY2FuIGJlIHJldHJpZXZlZAogdmlhIGBtYXRjaC1zdHJpbmcnLiIpCiAKKyhkZWZ2YXIgcHl0 aG9uLW5hdi1iZWdpbm5pbmctb2YtYmxvY2stcmVnZXhwCisgIChweXRob24tcnggbGluZS1zdGFy dCAoKiBzcGFjZSkgYmxvY2stc3RhcnQpCisgICJSZWdleHAgbWF0Y2hpbmcgYmxvY2sgc3RhcnQu IikKKwogKGRlZnVuIHB5dGhvbi1uYXYtLWJlZ2lubmluZy1vZi1kZWZ1biAoJm9wdGlvbmFsIGFy ZykKICAgIkludGVybmFsIGltcGxlbWVudGF0aW9uIG9mIGBweXRob24tbmF2LWJlZ2lubmluZy1v Zi1kZWZ1bicuCiBXaXRoIHBvc2l0aXZlIEFSRyBzZWFyY2ggYmFja3dhcmRzLCBlbHNlIHNlYXJj aCBmb3J3YXJkcy4iCkBAIC00ODg1LDkgKzQ4ODksMzIgQEAgcHl0aG9uLWRlc2NyaWJlLWF0LXBv aW50CiAoZGVmdW4gcHl0aG9uLWhpZGVzaG93LWZvcndhcmQtc2V4cC1mdW5jdGlvbiAoX2FyZykK ICAgIlB5dGhvbiBzcGVjaWZpYyBgZm9yd2FyZC1zZXhwJyBmdW5jdGlvbiBmb3IgYGhzLW1pbm9y LW1vZGUnLgogQXJndW1lbnQgQVJHIGlzIGlnbm9yZWQuIgotICAocHl0aG9uLW5hdi1lbmQtb2Yt ZGVmdW4pCi0gICh1bmxlc3MgKHB5dGhvbi1pbmZvLWN1cnJlbnQtbGluZS1lbXB0eS1wKQotICAg IChiYWNrd2FyZC1jaGFyKSkpCisgIChweXRob24tbmF2LWVuZC1vZi1ibG9jaykpCisKKyhkZWZ1 biBweXRob24taGlkZXNob3ctZmluZC1uZXh0LWJsb2NrIChyZWdleHAgbWF4cCBjb21tZW50cykK KyAgIlB5dGhvbiBzcGVjaWZpYyBgaHMtZmluZC1uZXh0LWJsb2NrJyBmdW5jdGlvbiBmb3IgYGhz LW1pbm9yLW1vZGUnLgorQ2FsbCBgcHl0aG9uLW5hdi1mb3J3YXJkLWJsb2NrJyB0byBmaW5kIG5l eHQgYmxvY2sgYW5kIGNoZWNrIGlmCitibG9jay1zdGFydCBlbmRzIHdpdGhpbiBNQVhQLiAgSWYg Q09NTUVOVFMgaXMgbm90IG5pbCwgY29tbWVudHMKK2FyZSBhbHNvIHNlYXJjaGVkLiAgUkVHRVhQ IGlzIHBhc3NlZCB0byBgbG9va2luZy1hdCcgdG8gc2V0CitgbWF0Y2gtZGF0YScuIgorICAobGV0 KiAoKG5leHQtYmxvY2sgKG9yIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGFuZCAocHl0aG9uLW5hdi1mb3J3YXJkLWJsb2NrKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocmUtc2VhcmNoLWZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChweXRob24tcnggYmxvY2stc3RhcnQpIG1heHAgdCkpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICgxKyBtYXhwKSkpCisgICAgICAgICAobmV4dC1jb21tZW50CisgICAgICAg ICAgKG9yICh3aGVuIGNvbW1lbnRzCisgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisg ICAgICAgICAgICAgICAgICAoY2wtbG9vcCB3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgIiMiIG1h eHAgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChweXRob24tc3ludGF4LWNvbnRl eHQgJ2NvbW1lbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBvaW50KSkp KQorICAgICAgICAgICAgICAoMSsgbWF4cCkpKQorICAgICAgICAgKG5leHQtYmxvY2stb3ItY29t bWVudCAobWluIG5leHQtYmxvY2sgbmV4dC1jb21tZW50KSkpCisgICAgKHdoZW4gKDw9IG5leHQt YmxvY2stb3ItY29tbWVudCBtYXhwKQorICAgICAgKGdvdG8tY2hhciBuZXh0LWJsb2NrLW9yLWNv bW1lbnQpCisgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l KQorICAgICAgICAobG9va2luZy1hdCByZWdleHApKSkpKQogCiAMCiA7OzsgSW1lbnUKQEAgLTUz ODQsNiArNTQxMSwxOSBAQCBweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1kZWZ1 bgogICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lIDEpCiAgICAgICAgICAobG9va2luZy1hdCBw eXRob24tbmF2LWJlZ2lubmluZy1vZi1kZWZ1bi1yZWdleHApKSkpCiAKKyhkZWZ1biBweXRob24t aW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jayAoKQorICAiQ2hlY2sgaWYgcG9pbnQg aXMgYXQgdGhlIGJlZ2lubmluZyBvZiBibG9jay4iCisgIChsZXQqICgobGluZS1iZWctcG9zIChs aW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAobGluZS1jb250ZW50LXN0YXJ0ICgr IGxpbmUtYmVnLXBvcyAoY3VycmVudC1pbmRlbnRhdGlvbikpKQorICAgICAgICAgKGJsb2NrLWJl Zy1wb3MgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24t bmF2LWJlZ2lubmluZy1vZi1ibG9jaykpKSkKKyAgICAoYW5kIGJsb2NrLWJlZy1wb3MKKyAgICAg ICAgICg9IGJsb2NrLWJlZy1wb3MgbGluZS1jb250ZW50LXN0YXJ0KQorICAgICAgICAgKDw9IChw b2ludCkgbGluZS1jb250ZW50LXN0YXJ0KQorICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAg ICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgKGxvb2tpbmctYXQgcHl0aG9u LW5hdi1iZWdpbm5pbmctb2YtYmxvY2stcmVnZXhwKSkpKSkKKwogKGRlZnVuIHB5dGhvbi1pbmZv LWN1cnJlbnQtbGluZS1jb21tZW50LXAgKCkKICAgIlJldHVybiBub24tbmlsIGlmIGN1cnJlbnQg bGluZSBpcyBhIGNvbW1lbnQgbGluZS4iCiAgIChjaGFyLWVxdWFsCkBAIC01ODMzLDE0ICs1ODcz LDE3IEBAIHB5dGhvbi1tb2RlCiAKICAgKGFkZC10by1saXN0CiAgICAnaHMtc3BlY2lhbC1tb2Rl cy1hbGlzdAotICAgJyhweXRob24tbW9kZQotICAgICAiXFxzLSpcXF88XFwoPzpkZWZcXHxjbGFz c1xcKVxcXz4iCisgICBgKHB5dGhvbi1tb2RlCisgICAgICxweXRob24tbmF2LWJlZ2lubmluZy1v Zi1ibG9jay1yZWdleHAKICAgICAgOzsgVXNlIHRoZSBlbXB0eSBzdHJpbmcgYXMgZW5kIHJlZ2V4 cCBzbyBpdCBkb2Vzbid0IGRlZmF1bHQgdG8KICAgICAgOzsgIlxccykiLiAgVGhpcyB3YXkgcGFy ZW5zIGF0IGVuZCBvZiBkZWZ1biBhcmUgcHJvcGVybHkgaGlkZGVuLgogICAgICAiIgogICAgICAi IyIKICAgICAgcHl0aG9uLWhpZGVzaG93LWZvcndhcmQtc2V4cC1mdW5jdGlvbgotICAgICBuaWwp KQorICAgICBuaWwKKyAgICAgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtYmxvY2sKKyAgICAgcHl0 aG9uLWhpZGVzaG93LWZpbmQtbmV4dC1ibG9jaworICAgICBweXRob24taW5mby1sb29raW5nLWF0 LWJlZ2lubmluZy1vZi1ibG9jaykpCiAKICAgKHNldHEtbG9jYWwgb3V0bGluZS1yZWdleHAgKHB5 dGhvbi1yeCAoKiBzcGFjZSkgYmxvY2stc3RhcnQpKQogICAoc2V0cS1sb2NhbCBvdXRsaW5lLWhl YWRpbmctZW5kLXJlZ2V4cCAiOlteXG5dKlxuIikKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9n bW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMu ZWwKaW5kZXggZDMwMzA1MGZhZC4uMmZhOTFkYzc5YiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3By b2dtb2Rlcy9weXRob24tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24t dGVzdHMuZWwKQEAgLTU1ODIsNiArNTU4MiwzOSBAQCBweXRob24taW5mby1sb29raW5nLWF0LWJl Z2lubmluZy1vZi1kZWZ1bi0yCiAgICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZvLWxvb2tpbmct YXQtYmVnaW5uaW5nLW9mLWRlZnVuKSkpCiAgICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZvLWxv b2tpbmctYXQtYmVnaW5uaW5nLW9mLWRlZnVuIG5pbCB0KSkpKSkKIAorKGVydC1kZWZ0ZXN0IHB5 dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrLTEgKCkKKyAgKHB5dGhvbi10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiCitkZWYgZigpOgorICAgIGlmIFRydWU6CisgICAg ICAgIHBhc3MKKyAgICBsID0gW3ggKiAyCisgICAgICAgICBmb3IgeCBpbiByYW5nZSg1KQorICAg ICAgICAgaWYgeCA8IDNdCisjIGlmIEZhbHNlOgorXCJcIlwiCitpZiAwOgorXCJcIlwiCisiCisg ICAocHl0aG9uLXRlc3RzLWxvb2stYXQgImRlZiBmKCk6IikKKyAgIChzaG91bGQgKHB5dGhvbi1p bmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKSkKKyAgIChmb3J3YXJkLWNoYXIpCisg ICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2Nr KSkpCisgICAocHl0aG9uLXRlc3RzLWxvb2stYXQgImlmIFRydWU6IikKKyAgIChzaG91bGQgKHB5 dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKSkKKyAgIChmb3J3YXJkLWNo YXIpCisgICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9m LWJsb2NrKSkpCisgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAoc2hvdWxkIChweXRob24taW5m by1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jaykpCisgICAocHl0aG9uLXRlc3RzLWxvb2st YXQgImZvciB4IikKKyAgIChzaG91bGQgKG5vdCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdp bm5pbmctb2YtYmxvY2spKSkKKyAgIChweXRob24tdGVzdHMtbG9vay1hdCAiaWYgeCA8IDMiKQor ICAgKHNob3VsZCAobm90IChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9j aykpKQorICAgKHB5dGhvbi10ZXN0cy1sb29rLWF0ICJpZiBGYWxzZToiKQorICAgKHNob3VsZCAo bm90IChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmluZy1vZi1ibG9jaykpKQorICAgKHB5 dGhvbi10ZXN0cy1sb29rLWF0ICJpZiAwOiIpCisgICAoc2hvdWxkIChub3QgKHB5dGhvbi1pbmZv LWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWJsb2NrKSkpKSkKKwogKGVydC1kZWZ0ZXN0IHB5dGhv bi1pbmZvLWN1cnJlbnQtbGluZS1jb21tZW50LXAtMSAoKQogICAocHl0aG9uLXRlc3RzLXdpdGgt dGVtcC1idWZmZXIKICAgICIKQEAgLTYwMzUsOCArNjA2OCwxMSBAQCBweXRob24taGlkZXNob3ct aGlkZS1sZXZlbHMtMQogY2xhc3MgU29tZUNsYXNzOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs IGFyZywga3dhcmc9MSk6CisKICAgICBkZWYgZmlsdGVyKHNlbGYsIG51bXMpOgotICAgIGRlZiBf X3N0cl9fKHNlbGYpOiIpKSkpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyIpKSkpCiAgICAg ICAob3IgZW5hYmxlZCAoaHMtbWlub3ItbW9kZSAtMSkpKSkpCiAKIChlcnQtZGVmdGVzdCBweXRo b24taGlkZXNob3ctaGlkZS1sZXZlbHMtMiAoKQpAQCAtNjA4Miw2ICs2MTE4LDE1NiBAQCBweXRo b24taGlkZXNob3ctaGlkZS1sZXZlbHMtMgogIikpKSkKICAgICAgIChvciBlbmFibGVkIChocy1t aW5vci1tb2RlIC0xKSkpKSkKIAorKGVydC1kZWZ0ZXN0IHB5dGhvbi1oaWRlc2hvdy1oaWRlLWxl dmVscy0zICgpCisgICJTaG91bGQgaGlkZSBhbGwgYmxvY2tzLiIKKyAgKHB5dGhvbi10ZXN0cy13 aXRoLXRlbXAtYnVmZmVyCisgICAiCitkZWYgZigpOgorICAgIGlmIDA6CisgICAgICAgIGwgPSBb aSBmb3IgaSBpbiByYW5nZSg1KQorICAgICAgICAgICAgIGlmIGkgPCAzXQorICAgICAgICBhYmMg PSBvLm1hdGNoKDEsIDIsIDMpCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKGhzLWhpZGUt bGV2ZWwgMSkKKyAgIChzaG91bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRlc3RzLXZp c2libGUtc3RyaW5nKQorICAgICAiCitkZWYgZigpOgorIikpKSkKKworKGVydC1kZWZ0ZXN0IHB5 dGhvbi1oaWRlc2hvdy1oaWRlLWxldmVscy00ICgpCisgICJTaG91bGQgaGlkZSAybmQgbGV2ZWwg YmxvY2suIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICIKK2RlZiBmKCk6 CisgICAgaWYgMDoKKyAgICAgICAgbCA9IFtpIGZvciBpIGluIHJhbmdlKDUpCisgICAgICAgICAg ICAgaWYgaSA8IDNdCisgICAgICAgIGFiYyA9IG8ubWF0Y2goMSwgMiwgMykKKyIKKyAgIChocy1t aW5vci1tb2RlIDEpCisgICAoaHMtaGlkZS1sZXZlbCAyKQorICAgKHNob3VsZAorICAgIChzdHJp bmc9CisgICAgIChweXRob24tdGVzdHMtdmlzaWJsZS1zdHJpbmcpCisgICAgICIKK2RlZiBmKCk6 CisgICAgaWYgMDoKKyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24taGlkZXNob3ctaGlkZS1h bGwtMSAoKQorICAiU2hvdWxkIGhpZGUgYWxsIGJsb2Nrcy4iCisgIChweXRob24tdGVzdHMtd2l0 aC10ZW1wLWJ1ZmZlcgorICAgIgoraWYgMDoKKworICAgIGFhYQorICAgIGwgPSBbaSBmb3IgaSBp biByYW5nZSg1KQorICAgICAgICAgaWYgaSA8IDNdCisgICAgY2NjCisgICAgYWJjID0gby5tYXRj aCgxLCAyLCAzKQorICAgIGRkZAorCitkZWYgZigpOgorICAgIHBhc3MKKyIKKyAgIChocy1taW5v ci1tb2RlIDEpCisgICAoaHMtaGlkZS1hbGwpCisgICAoc2hvdWxkCisgICAgKHN0cmluZz0KKyAg ICAgKHB5dGhvbi10ZXN0cy12aXNpYmxlLXN0cmluZykKKyAgICAgIgoraWYgMDoKKworZGVmIGYo KToKKyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24taGlkZXNob3ctaGlkZS1hbGwtMiAoKQor ICAiU2hvdWxkIGhpZGUgY29tbWVudHMuIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZm ZXIKKyAgICIKKyMgTXVsdGkgbGluZQorIyBjb21tZW50CisKK1wiXCJcIgorIyBNdWx0aSBsaW5l CisjIHN0cmluZworXCJcIlwiCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKGhzLWhpZGUt YWxsKQorICAgKHNob3VsZAorICAgIChzdHJpbmc9CisgICAgIChweXRob24tdGVzdHMtdmlzaWJs ZS1zdHJpbmcpCisgICAgICIKKyMgTXVsdGkgbGluZQorCitcIlwiXCIKKyMgTXVsdGkgbGluZQor IyBzdHJpbmcKK1wiXCJcIgorIikpKSkKKworKGVydC1kZWZ0ZXN0IHB5dGhvbi1oaWRlc2hvdy1o aWRlLWFsbC0zICgpCisgICJTaG91bGQgbm90IGhpZGUgY29tbWVudHMgd2hlbiBgaHMtaGlkZS1j b21tZW50cy13aGVuLWhpZGluZy1hbGwnIGlzIG5pbC4iCisgIChweXRob24tdGVzdHMtd2l0aC10 ZW1wLWJ1ZmZlcgorICAgIgorIyBNdWx0aSBsaW5lCisjIGNvbW1lbnQKKworXCJcIlwiCisjIE11 bHRpIGxpbmUKKyMgc3RyaW5nCitcIlwiXCIKKyIKKyAgIChocy1taW5vci1tb2RlIDEpCisgICAo bGV0ICgoaHMtaGlkZS1jb21tZW50cy13aGVuLWhpZGluZy1hbGwgbmlsKSkKKyAgICAgKGhzLWhp ZGUtYWxsKSkKKyAgIChzaG91bGQKKyAgICAoc3RyaW5nPQorICAgICAocHl0aG9uLXRlc3RzLXZp c2libGUtc3RyaW5nKQorICAgICAiCisjIE11bHRpIGxpbmUKKyMgY29tbWVudAorCitcIlwiXCIK KyMgTXVsdGkgbGluZQorIyBzdHJpbmcKK1wiXCJcIgorIikpKSkKKworKGVydC1kZWZ0ZXN0IHB5 dGhvbi1oaWRlc2hvdy1oaWRlLWJsb2NrLTEgKCkKKyAgIlNob3VsZCBoaWRlIGN1cnJlbnQgYmxv Y2suIgorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXIKKyAgICIKK2lmIDA6CisKKyAg ICBhYWEKKyAgICBsID0gW2kgZm9yIGkgaW4gcmFuZ2UoNSkKKyAgICAgICAgIGlmIGkgPCAzXQor ICAgIGNjYworICAgIGFiYyA9IG8ubWF0Y2goMSwgMiwgMykKKyAgICBkZGQKKworZGVmIGYoKToK KyAgICBwYXNzCisiCisgICAoaHMtbWlub3ItbW9kZSAxKQorICAgKHB5dGhvbi10ZXN0cy1sb29r LWF0ICJkZGQiKQorICAgKGZvcndhcmQtbGluZSkKKyAgIChocy1oaWRlLWJsb2NrKQorICAgKHNo b3VsZAorICAgIChzdHJpbmc9CisgICAgIChweXRob24tdGVzdHMtdmlzaWJsZS1zdHJpbmcpCisg ICAgICIKK2lmIDA6CisKK2RlZiBmKCk6CisgICAgcGFzcworIikpKSkKKwogCiAoZXJ0LWRlZnRl c3QgcHl0aG9uLXRlc3RzLS1weXRob24tbmF2LWVuZC1vZi1zdGF0ZW1lbnQtLWluZmxvb3AgKCkK ICAgIkNoZWNrcyB0aGF0IGBweXRob24tbmF2LWVuZC1vZi1zdGF0ZW1lbnQnIGRvZXNuJ3QgaW5m bG9vcCBpbiBhCg== --0000000000005bbc8a05e61ea8c1--