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#50179: [WIP PATCH v3] Add support for "bright" ANSI colors to ansi-color and term-mode Date: Wed, 22 Sep 2021 12:39:55 -0700 Message-ID: <0e61dc90-c315-f3cd-df83-22b9ecb029c1@gmail.com> References: <838s0rvyfu.fsf@gnu.org> <83zgt6vi43.fsf@gnu.org> <87a6l5k9xr.fsf@gnus.org> <87lf4p3210.fsf@gnus.org> <831r6hv51r.fsf@gnu.org> <87h7fc2vd4.fsf@gnus.org> <871r5kpqsj.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B46408E9A6DA1B106410C7A4" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25810"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 50179@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Sep 22 21:41:26 2021 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 1mT87Q-0006Vi-QY for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Sep 2021 21:41:25 +0200 Original-Received: from localhost ([::1]:33408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mT87P-0006eY-CJ for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Sep 2021 15:41:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34520) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mT874-0006Wi-Ed for bug-gnu-emacs@gnu.org; Wed, 22 Sep 2021 15:41:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:40193) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mT874-0007Sr-5A for bug-gnu-emacs@gnu.org; Wed, 22 Sep 2021 15:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mT874-0005WQ-03 for bug-gnu-emacs@gnu.org; Wed, 22 Sep 2021 15:41: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: Wed, 22 Sep 2021 19:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50179 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 50179-submit@debbugs.gnu.org id=B50179.163233961021138 (code B ref 50179); Wed, 22 Sep 2021 19:41:01 +0000 Original-Received: (at 50179) by debbugs.gnu.org; 22 Sep 2021 19:40:10 +0000 Original-Received: from localhost ([127.0.0.1]:51738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mT86C-0005Uq-9w for submit@debbugs.gnu.org; Wed, 22 Sep 2021 15:40:09 -0400 Original-Received: from mail-pg1-f174.google.com ([209.85.215.174]:47019) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mT868-0005U9-BN for 50179@debbugs.gnu.org; Wed, 22 Sep 2021 15:40:06 -0400 Original-Received: by mail-pg1-f174.google.com with SMTP id m21so3786651pgu.13 for <50179@debbugs.gnu.org>; Wed, 22 Sep 2021 12:40:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=EWA8RFffiiUPwDEo6LzGqZAW5QyUAhbvnYvZAYrEhIc=; b=bxwJ0D0jDddkAJvdkZyQIMI6MSUhft9eQGdSL3wFrWAz95x1V5uQKgnvGxXjvBWz48 OTPr529PRQb1DOR7JDGFlT1Qmulpe8qqYZgi0tDxduEyoEjSyjRgPochN0KXw5rMMtQA YwFCBcmJf4+x7AcHV/dIBC7p4JdFf/Kj92BSGa4Cr1LkoxyxeiBv93RPp72g9V/Po3OL QhsiUqHeazExHAaEotD9bhKzi6YdM8khE98peZalE2Ouz6OkxgVwFLxwJG/rP5rDwjI/ vxgZACpw7U+3Se0rtaUSLjfKpe3sGQMJr5syk/GIHuxGzMKmAiIeL5MZWxEUtzLJAC3o QTlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=EWA8RFffiiUPwDEo6LzGqZAW5QyUAhbvnYvZAYrEhIc=; b=2+XAfY+wkAzmI6NK//oDyDa7qQmtPRlTIamgssbGqUz6STBqt4Uudodh91t0QEGVd8 czkCsiN/NMacxHoQPPiUXfj84p6bllkBKgmf/bMEBueg/3oWGeiaB5TuTj/yRw27JNPZ 9EEdzWc+LKSykd3pkzXo/KssP1iUttPkp4WIqWpOKX2c/1lbSMCn0+FAt87rBPuuZqLj /KWacXLNM7dbzDqem87UulTd1xCep2o/x4BeVRA/O/URfSS5Z0oETFcbzcegTEn3PGzE eqY+OF7T3DKdJrwSupibdP1iosy6H4FkfhA7yCtjC3Te4T23V2RQHyk87RL044ww9SXP lERA== X-Gm-Message-State: AOAM533KfbP9tRlNJkN4vDcWhorkCZoGPSnhZPXBDakCfKbGKcBjWR+N xM7LeJjRU5ByO4vI1IH+nnvV5tP6KoY= X-Google-Smtp-Source: ABdhPJyRP2abY1xxJQOtTxZKo2afEMKkTCBMYUfgR/zSU1yHNpxMALot2ZE4dMLf+qHKmmv9nXzHHA== X-Received: by 2002:a63:778d:: with SMTP id s135mr567008pgc.290.1632339597266; Wed, 22 Sep 2021 12:39:57 -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 d14sm3326642pfq.61.2021.09.22.12.39.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Sep 2021 12:39:56 -0700 (PDT) In-Reply-To: <871r5kpqsj.fsf@gnus.org> 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:215120 Archived-At: This is a multi-part message in MIME format. --------------B46408E9A6DA1B106410C7A4 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 9/19/2021 7:45 AM, Lars Ingebrigtsen wrote: > It seems like term.el was reworked in > > commit ae4969c2d69a74c896eb49c9a34aeb645ffed082 > Author: Julien Danjou > AuthorDate: Thu Jun 28 12:40:24 2012 +0200 > > to use faces instead of colour names, but ansi-color wasn't. Looking at > the code in both ansi-color and term, I think it would indeed make sense > to rework ansi-color to use faces, too, and inheriting like you suggest > makes sense to me. (We generally prefer using faces instead of colour > names these days.) Since no one chimed in opposing this change, here's a WIP patch that adds faces to ansi-color. This removes the use for `ansi-color-map', since `ansi-color-get-face-1' does all the work now. I benchmarked this a bit and the performance seems on par with the old implementation, except when we fontify *more* stuff thanks to the support for additional ANSI escapes; in that case, it takes longer, scaling linearly with the amount that gets fontified. I also took the opportunity to redefine a couple of the faces. For example, ANSI SGR 7 (negative image) was defined to use the `error' face. Given that `:inverse-video' exists, that seems pretty suboptimal. I don't quite know what to do about man.el though. It has overrides for a few of the faces used by ansi-color. I could maintain that behavior fairly easily, but maybe it makes sense to have it use the defaults from ansi-color. More generally, I wonder what we should do to accommodate users of ansi-color who want to apply non-default faces for a specific case. I guess they could redefine `ansi-color-basic-faces-vector' and friends? That's basically how man.el used to work, and it wouldn't be hard to continue supporting that if we wanted. --------------B46408E9A6DA1B106410C7A4 Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-bright-ANSI-colors-in-ansi-color.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Add-support-for-bright-ANSI-colors-in-ansi-color.patch" RnJvbSAzNGNkNzY3MjQxM2VjOGNmNDM5MTgwOTBiY2VhMDNjODY3NWJlNzRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjIgU2VwIDIwMjEgMTI6MDI6MjggLTA3MDAKU3ViamVjdDogW1BB VENIIDEvMl0gQWRkIHN1cHBvcnQgZm9yICJicmlnaHQiIEFOU0kgY29sb3JzIGluIGFuc2kt Y29sb3IKCiogbGlzcC9hbnNpLWNvbG9yLmVsIChhbnNpLWNvbG9yLWJvbGQsIGFuc2ktY29s b3ItZmFpbnQsIGFuc2ktY29sb3ItaXRhbGljKQooYW5zaS1jb2xvci11bmRlcmxpbmUsIGFu c2ktY29sb3Itc2xvdy1ibGluaywgYW5zaS1jb2xvci1mYXN0LWJsaW5rKQooYW5zaS1jb2xv ci1pbnZlcnNlLCBhbnNpLWNvbG9yLXJlZCwgYW5zaS1jb2xvci1ncmVlbiwgYW5zaS1jb2xv ci15ZWxsb3cpCihhbnNpLWNvbG9yLWJsdWUsIGFuc2ktY29sb3ItbWFnZW50YSwgYW5zaS1j b2xvci1jeWFuLCBhbnNpLWNvbG9yLXdoaXRlKQooYW5zaS1jb2xvci1icmlnaHQtcmVkLCBh bnNpLWNvbG9yLWJyaWdodC1ncmVlbiwgYW5zaS1jb2xvci1icmlnaHQteWVsbG93KQooYW5z aS1jb2xvci1icmlnaHQtYmx1ZSwgYW5zaS1jb2xvci1icmlnaHQtbWFnZW50YSwgYW5zaS1j b2xvci1icmlnaHQtY3lhbikKKGFuc2ktY29sb3ItYnJpZ2h0LXdoaXRlKTogTmV3IGZhY2Vz LgooYW5zaS1jb2xvci1iYXNpYy1mYWNlcy12ZWN0b3IsIGFuc2ktY29sb3Itbm9ybWFsLWNv bG9ycy12ZWN0b3IpCihhbnNpLWNvbG9yLWJyaWdodC1jb2xvcnMtdmVjdG9yKTogTmV3IGNv bnN0YW50cy4KKGFuc2ktY29sb3ItZmFjZXMtdmVjdG9yLCBhbnNpLWNvbG9yLW5hbWVzLXZl Y3Rvcik6IFJlbW92ZWQuCihhbnNpLWNvbG9yLWJvbGQtaXMtYnJpZ2h0KTogTmV3IGRlZmN1 c3RvbS4KKGFuc2ktY29sb3ItLWZpbmQtZmFjZSk6IFNvcnQgQU5TSSBjb2RlcyBhbmQgY2hl Y2sKJ2Fuc2ktY29sb3ItYm9sZC1pcy1icmlnaHQnLgooYW5zaS1jb2xvci1hcHBseS1zZXF1 ZW5jZSk6IFN1cHBvcnQgYnJpZ2h0IEFOU0kgY29sb3JzLgooYW5zaS1jb2xvci0tZmlsbC1j b2xvci1tYXApOiBOZXcgZnVuY3Rpb24uCihhbnNpLWNvbG9yLW1ha2UtY29sb3ItbWFwLCBh bnNpLWNvbG9yLW1hcCwgYW5zaS1jb2xvci1tYXAtdXBkYXRlKTogUmVtb3ZlZC4KKGFuc2kt Y29sb3ItZ2V0LWZhY2UtMSk6IEFkZCBCUklHSFQgcGFyYW1ldGVyLgoqIGxpc3AvbWFuLmVs IChNYW4tYW5zaS1jb2xvci1tYXApOiBSZW1vdmVkLgoqIHRlc3QvbGlzcC9hbnNpLWNvbG9y LXRlc3RzLmVsCihhbnNpLWNvbG9yLWFwcGx5LW9uLXJlZ2lvbi1ib2xkLWlzLWJyaWdodC10 ZXN0KTogTmV3IGZ1bmN0aW9uLgotLS0KIGV0Yy9ORVdTICAgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsrCiBsaXNwL2Fuc2ktY29sb3IuZWwgICAgICAgICAgICB8IDM2NyArKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBsaXNwL21hbi5lbCAgICAgICAgICAgICAg ICAgICB8ICAgOSArLQogdGVzdC9saXNwL2Fuc2ktY29sb3ItdGVzdHMuZWwgfCAgNTUgKysr Ky0KIDQgZmlsZXMgY2hhbmdlZCwgMzA3IGluc2VydGlvbnMoKyksIDEzOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IGYyNzNiOGU4MmEu LmNmNjgyM2Y1MWIgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0y NzAzLDYgKzI3MDMsMjEgQEAgc2VxdWVuY2VzLgogKioqICdjb21pbnQtZGVsZXRlLW91dHB1 dCcgY2FuIG5vdyBzYXZlIGRlbGV0ZWQgdGV4dCBpbiB0aGUga2lsbC1yaW5nLgogSW50ZXJh Y3RpdmVseSwgJ0MtdSBDLWMgQy1vJyB0cmlnZ2VycyB0aGlzIG5ldyBvcHRpb25hbCBiZWhh dmlvci4KIAorKiogYW5zaS1jb2xvci5lbAorCistLS0KKyoqKiBDb2xvcnMgYXJlIG5vdyBk ZWZpbmVkIGJ5IGZhY2VzLgorQU5TSSBTR1IgY29kZXMgbm93IGhhdmUgY29ycmVzcG9uZGlu ZyBmYWNlcyB0byBkZXNjcmliZSB0aGVpcgorYXBwZWFyYW5jZSwgZS5nLiAnYW5zaS1jb2xv ci1ib2xkJy4KKworLS0tCisqKiogU3VwcG9ydCBmb3IgImJyaWdodCIgY29sb3IgY29kZXMu CisiQnJpZ2h0IiBBTlNJIGNvbG9yIGNvZGVzIGFyZSBub3cgZGlzcGxheWVkIHdoZW4gYXBw bHlpbmcgQU5TSSBjb2xvcgorZmlsdGVycyB1c2luZyB0aGUgY29sb3IgdmFsdWVzIGRlZmlu ZWQgYnkgdGhlIGZhY2VzCisnYW5zaS1jb2xvci1icmlnaHQtQ09MT1InLiAgSW4gYWRkaXRp b24sIGJvbGQgdGV4dCB3aXRoIHJlZ3VsYXIgQU5TSQorY29sb3JzIGNhbiBiZSBkaXNwbGF5 ZWQgYXMgImJyaWdodCIgaWYgJ2Fuc2ktY29sb3ItYm9sZC1pcy1icmlnaHQnIGlzCitub24t bmlsLgorCiAqKiBFUkMKIAogLS0tCmRpZmYgLS1naXQgYS9saXNwL2Fuc2ktY29sb3IuZWwg Yi9saXNwL2Fuc2ktY29sb3IuZWwKaW5kZXggNDMxNWE3ZjNjZS4uYWFiZGE3MTA2OCAxMDA2 NDQKLS0tIGEvbGlzcC9hbnNpLWNvbG9yLmVsCisrKyBiL2xpc3AvYW5zaS1jb2xvci5lbApA QCAtOTAsMzYgKzkwLDE3NyBAQCBhbnNpLWNvbG9ycwogICA6dmVyc2lvbiAiMjEuMSIKICAg Omdyb3VwICdwcm9jZXNzZXMpCiAKLShkZWZjdXN0b20gYW5zaS1jb2xvci1mYWNlcy12ZWN0 b3IKLSAgW2RlZmF1bHQgYm9sZCBkZWZhdWx0IGl0YWxpYyB1bmRlcmxpbmUgc3VjY2VzcyB3 YXJuaW5nIGVycm9yXQorKGRlZmZhY2UgYW5zaS1jb2xvci1ib2xkCisgICcoKHQgOmluaGVy aXQgJ2JvbGQpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBib2xkIHRleHQuIgorICA6Z3Jv dXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikKKworKGRlZmZhY2UgYW5zaS1j b2xvci1mYWludAorICAnKCh0IDp3ZWlnaHQgbGlnaHQpKQorICAiRmFjZSB1c2VkIHRvIHJl bmRlciBmYWludCB0ZXh0LiIKKyAgOmdyb3VwICdhbnNpLWNvbG9ycworICA6dmVyc2lvbiAi MjguMSIpCisKKyhkZWZmYWNlIGFuc2ktY29sb3ItaXRhbGljCisgICcoKHQgOmluaGVyaXQg J2l0YWxpYykpCisgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGl0YWxpYyB0ZXh0LiIKKyAgOmdy b3VwICdhbnNpLWNvbG9ycworICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIGFuc2kt Y29sb3ItdW5kZXJsaW5lCisgICcoKHQgOmluaGVyaXQgJ3VuZGVybGluZSkpCisgICJGYWNl IHVzZWQgdG8gcmVuZGVyIHVuZGVybGluZWQgdGV4dC4iCisgIDpncm91cCAnYW5zaS1jb2xv cnMKKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLXNsb3ctYmxp bmsKKyAgJygodCA6Ym94ICg6bGluZS13aWR0aCAtMSkpKQorICAiRmFjZSB1c2VkIHRvIHJl bmRlciBzbG93bHkgYmxpbmtpbmcgdGV4dC4iCisgIDpncm91cCAnYW5zaS1jb2xvcnMKKyAg OnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLWZhc3QtYmxpbmsKKyAg JygodCA6Ym94ICg6bGluZS13aWR0aCAtMSkpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBy YXBpZGx5IGJsaW5raW5nIHRleHQuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJz aW9uICIyOC4xIikKKworKGRlZmZhY2UgYW5zaS1jb2xvci1pbnZlcnNlCisgICcoKHQgOmlu dmVyc2UtdmlkZW8gdCkpCisgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGludmVydGVkIHZpZGVv IHRleHQuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikKKwor KGRlZmZhY2UgYW5zaS1jb2xvci1ibGFjaworICAnKCh0IDpmb3JlZ3JvdW5kICJibGFjayIg OmJhY2tncm91bmQgImJsYWNrIikpCisgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGJsYWNrIGNv bG9yIGNvZGUuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikK KworKGRlZmZhY2UgYW5zaS1jb2xvci1yZWQKKyAgJygodCA6Zm9yZWdyb3VuZCAicmVkMyIg OmJhY2tncm91bmQgInJlZDMiKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgcmVkIGNvbG9y IGNvZGUuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikKKwor KGRlZmZhY2UgYW5zaS1jb2xvci1ncmVlbgorICAnKCh0IDpmb3JlZ3JvdW5kICJncmVlbjMi IDpiYWNrZ3JvdW5kICJncmVlbjMiKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgZ3JlZW4g Y29sb3IgY29kZS4iCisgIDpncm91cCAnYW5zaS1jb2xvcnMKKyAgOnZlcnNpb24gIjI4LjEi KQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLXllbGxvdworICAnKCh0IDpmb3JlZ3JvdW5kICJ5 ZWxsb3czIiA6YmFja2dyb3VuZCAieWVsbG93MyIpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRl ciB5ZWxsb3cgY29sb3IgY29kZS4iCisgIDpncm91cCAnYW5zaS1jb2xvcnMKKyAgOnZlcnNp b24gIjI4LjEiKQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLWJsdWUKKyAgJygodCA6Zm9yZWdy b3VuZCAiYmx1ZTIiIDpiYWNrZ3JvdW5kICJibHVlMiIpKQorICAiRmFjZSB1c2VkIHRvIHJl bmRlciBibHVlIGNvbG9yIGNvZGUuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJz aW9uICIyOC4xIikKKworKGRlZmZhY2UgYW5zaS1jb2xvci1tYWdlbnRhCisgICcoKHQgOmZv cmVncm91bmQgIm1hZ2VudGEzIiA6YmFja2dyb3VuZCAibWFnZW50YTMiKSkKKyAgIkZhY2Ug dXNlZCB0byByZW5kZXIgbWFnZW50YSBjb2xvciBjb2RlLiIKKyAgOmdyb3VwICdhbnNpLWNv bG9ycworICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIGFuc2ktY29sb3ItY3lhbgor ICAnKCh0IDpmb3JlZ3JvdW5kICJjeWFuMyIgOmJhY2tncm91bmQgImN5YW4zIikpCisgICJG YWNlIHVzZWQgdG8gcmVuZGVyIGN5YW4gY29sb3IgY29kZS4iCisgIDpncm91cCAnYW5zaS1j b2xvcnMKKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLXdoaXRl CisgICcoKHQgOmZvcmVncm91bmQgImdyZXk5MCIgOmJhY2tncm91bmQgImdyYXk5MCIpKQor ICAiRmFjZSB1c2VkIHRvIHJlbmRlciB3aGl0ZSBjb2xvciBjb2RlLiIKKyAgOmdyb3VwICdh bnNpLWNvbG9ycworICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIGFuc2ktY29sb3It YnJpZ2h0LWJsYWNrCisgICcoKHQgOmZvcmVncm91bmQgImdyYXkzMCIgOmJhY2tncm91bmQg ImdyYXkzMCIpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBicmlnaHQgYmxhY2sgY29sb3Ig Y29kZS4iCisgIDpncm91cCAnYW5zaS1jb2xvcnMKKyAgOnZlcnNpb24gIjI4LjEiKQorCiso ZGVmZmFjZSBhbnNpLWNvbG9yLWJyaWdodC1yZWQKKyAgJygodCA6Zm9yZWdyb3VuZCAicmVk MiIgOmJhY2tncm91bmQgInJlZDIiKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0 IHJlZCBjb2xvciBjb2RlLiIKKyAgOmdyb3VwICdhbnNpLWNvbG9ycworICA6dmVyc2lvbiAi MjguMSIpCisKKyhkZWZmYWNlIGFuc2ktY29sb3ItYnJpZ2h0LWdyZWVuCisgICcoKHQgOmZv cmVncm91bmQgImdyZWVuMiIgOmJhY2tncm91bmQgImdyZWVuMiIpKQorICAiRmFjZSB1c2Vk IHRvIHJlbmRlciBicmlnaHQgZ3JlZW4gY29sb3IgY29kZS4iCisgIDpncm91cCAnYW5zaS1j b2xvcnMKKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSBhbnNpLWNvbG9yLWJyaWdo dC15ZWxsb3cKKyAgJygodCA6Zm9yZWdyb3VuZCAieWVsbG93MiIgOmJhY2tncm91bmQgInll bGxvdzIiKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IHllbGxvdyBjb2xvciBj b2RlLiIKKyAgOmdyb3VwICdhbnNpLWNvbG9ycykKKworKGRlZmZhY2UgYW5zaS1jb2xvci1i cmlnaHQtYmx1ZQorICAnKCh0IDpmb3JlZ3JvdW5kICJibHVlMSIgOmJhY2tncm91bmQgImJs dWUxIikpCisgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGJyaWdodCBibHVlIGNvbG9yIGNvZGUu IgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikKKworKGRlZmZh Y2UgYW5zaS1jb2xvci1icmlnaHQtbWFnZW50YQorICAnKCh0IDpmb3JlZ3JvdW5kICJtYWdl bnRhMiIgOmJhY2tncm91bmQgIm1hZ2VudGEyIikpCisgICJGYWNlIHVzZWQgdG8gcmVuZGVy IGJyaWdodCBtYWdlbnRhIGNvbG9yIGNvZGUuIgorICA6Z3JvdXAgJ2Fuc2ktY29sb3JzCisg IDp2ZXJzaW9uICIyOC4xIikKKworKGRlZmZhY2UgYW5zaS1jb2xvci1icmlnaHQtY3lhbgor ICAnKCh0IDpmb3JlZ3JvdW5kICJjeWFuMiIgOmJhY2tncm91bmQgImN5YW4yIikpCisgICJG YWNlIHVzZWQgdG8gcmVuZGVyIGJyaWdodCBjeWFuIGNvbG9yIGNvZGUuIgorICA6Z3JvdXAg J2Fuc2ktY29sb3JzCisgIDp2ZXJzaW9uICIyOC4xIikKKworKGRlZmZhY2UgYW5zaS1jb2xv ci1icmlnaHQtd2hpdGUKKyAgJygodCA6Zm9yZWdyb3VuZCAid2hpdGUiIDpiYWNrZ3JvdW5k ICJ3aGl0ZSIpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBicmlnaHQgd2hpdGUgY29sb3Ig Y29kZS4iCisgIDpncm91cCAnYW5zaS1jb2xvcnMKKyAgOnZlcnNpb24gIjI4LjEiKQorCiso ZGVmY29uc3QgYW5zaS1jb2xvci1iYXNpYy1mYWNlcy12ZWN0b3IKKyAgW25pbAorICAgYW5z aS1jb2xvci1ib2xkCisgICBhbnNpLWNvbG9yLWZhaW50CisgICBhbnNpLWNvbG9yLWl0YWxp YworICAgYW5zaS1jb2xvci11bmRlcmxpbmUKKyAgIGFuc2ktY29sb3Itc2xvdy1ibGluawor ICAgYW5zaS1jb2xvci1mYXN0LWJsaW5rCisgICBhbnNpLWNvbG9yLWludmVyc2VdCiAgICJG YWNlcyB1c2VkIGZvciBTR1IgY29udHJvbCBzZXF1ZW5jZXMgZGV0ZXJtaW5pbmcgYSBmYWNl LgogVGhpcyB2ZWN0b3IgaG9sZHMgdGhlIGZhY2VzIHVzZWQgZm9yIFNHUiBjb250cm9sIHNl cXVlbmNlIHBhcmFtZXRlcnMgMAogdG8gNy4KIAotUGFyYW1ldGVyICBEZXNjcmlwdGlvbiAg ICAgICAgRmFjZSB1c2VkIGJ5IGRlZmF1bHQKLSAgMCAgICAgICAgZGVmYXVsdCAgICAgICAg ICAgIGRlZmF1bHQKLSAgMSAgICAgICAgYm9sZCAgICAgICAgICAgICAgIGJvbGQKLSAgMiAg ICAgICAgZmFpbnQgICAgICAgICAgICAgIGRlZmF1bHQKLSAgMyAgICAgICAgaXRhbGljICAg ICAgICAgICAgIGl0YWxpYwotICA0ICAgICAgICB1bmRlcmxpbmVkICAgICAgICAgdW5kZXJs aW5lCi0gIDUgICAgICAgIHNsb3dseSBibGlua2luZyAgICBzdWNjZXNzCi0gIDYgICAgICAg IHJhcGlkbHkgYmxpbmtpbmcgICB3YXJuaW5nCi0gIDcgICAgICAgIG5lZ2F0aXZlIGltYWdl ICAgICBlcnJvcgotCi1Ob3RlIHRoYXQgdGhlIHN5bWJvbCBgZGVmYXVsdCcgaXMgc3BlY2lh bDogSXQgd2lsbCBub3QgYmUgY29tYmluZWQKLXdpdGggdGhlIGN1cnJlbnQgZmFjZS4KLQot VGhpcyB2ZWN0b3IgaXMgdXNlZCBieSBgYW5zaS1jb2xvci1tYWtlLWNvbG9yLW1hcCcgdG8g Y3JlYXRlIGEgY29sb3IKLW1hcC4gIFRoaXMgY29sb3IgbWFwIGlzIHN0b3JlZCBpbiB0aGUg dmFyaWFibGUgYGFuc2ktY29sb3ItbWFwJy4iCi0gIDp0eXBlICcodmVjdG9yIGZhY2UgZmFj ZSBmYWNlIGZhY2UgZmFjZSBmYWNlIGZhY2UgZmFjZSkKLSAgOnNldCAnYW5zaS1jb2xvci1t YXAtdXBkYXRlCi0gIDppbml0aWFsaXplICdjdXN0b20taW5pdGlhbGl6ZS1kZWZhdWx0Ci0g IDpncm91cCAnYW5zaS1jb2xvcnMpCi0KLShkZWZjdXN0b20gYW5zaS1jb2xvci1uYW1lcy12 ZWN0b3IKLSAgWyJibGFjayIgInJlZDMiICJncmVlbjMiICJ5ZWxsb3czIiAiYmx1ZTIiICJt YWdlbnRhMyIgImN5YW4zIiAiZ3JheTkwIl0KLSAgIkNvbG9ycyB1c2VkIGZvciBTR1IgY29u dHJvbCBzZXF1ZW5jZXMgZGV0ZXJtaW5pbmcgYSBjb2xvci4KLVRoaXMgdmVjdG9yIGhvbGRz IHRoZSBjb2xvcnMgdXNlZCBmb3IgU0dSIGNvbnRyb2wgc2VxdWVuY2VzIHBhcmFtZXRlcnMK K1BhcmFtZXRlciAgRGVzY3JpcHRpb24KKyAgMCAgICAgICAgZGVmYXVsdAorICAxICAgICAg ICBib2xkCisgIDIgICAgICAgIGZhaW50CisgIDMgICAgICAgIGl0YWxpYworICA0ICAgICAg ICB1bmRlcmxpbmVkCisgIDUgICAgICAgIHNsb3dseSBibGlua2luZworICA2ICAgICAgICBy YXBpZGx5IGJsaW5raW5nCisgIDcgICAgICAgIG5lZ2F0aXZlIGltYWdlIikKKworKGRlZmNv bnN0IGFuc2ktY29sb3Itbm9ybWFsLWNvbG9ycy12ZWN0b3IKKyAgW2Fuc2ktY29sb3ItYmxh Y2sKKyAgIGFuc2ktY29sb3ItcmVkCisgICBhbnNpLWNvbG9yLWdyZWVuCisgICBhbnNpLWNv bG9yLXllbGxvdworICAgYW5zaS1jb2xvci1ibHVlCisgICBhbnNpLWNvbG9yLW1hZ2VudGEK KyAgIGFuc2ktY29sb3ItY3lhbgorICAgYW5zaS1jb2xvci13aGl0ZV0KKyAgIkZhY2VzIHVz ZWQgZm9yIFNHUiBjb250cm9sIHNlcXVlbmNlcyBkZXRlcm1pbmluZyBhIGNvbG9yLgorVGhp cyB2ZWN0b3IgaG9sZHMgdGhlIGZhY2VzIHVzZWQgZm9yIFNHUiBjb250cm9sIHNlcXVlbmNl cyBwYXJhbWV0ZXJzCiAzMCB0byAzNyAoZm9yZWdyb3VuZCBjb2xvcnMpIGFuZCA0MCB0byA0 NyAoYmFja2dyb3VuZCBjb2xvcnMpLgogCiBQYXJhbWV0ZXIgIENvbG9yCkBAIC0xMzAsMjQg KzI3MSwzNyBAQCBhbnNpLWNvbG9yLW5hbWVzLXZlY3RvcgogICAzNCAgNDQgICBibHVlCiAg IDM1ICA0NSAgIG1hZ2VudGEKICAgMzYgIDQ2ICAgY3lhbgotICAzNyAgNDcgICB3aGl0ZQot Ci1UaGlzIHZlY3RvciBpcyB1c2VkIGJ5IGBhbnNpLWNvbG9yLW1ha2UtY29sb3ItbWFwJyB0 byBjcmVhdGUgYSBjb2xvcgotbWFwLiAgVGhpcyBjb2xvciBtYXAgaXMgc3RvcmVkIGluIHRo ZSB2YXJpYWJsZSBgYW5zaS1jb2xvci1tYXAnLgotCi1FYWNoIGVsZW1lbnQgbWF5IGFsc28g YmUgYSBjb25zIGNlbGwgd2hlcmUgdGhlIGNhciBhbmQgY2RyIHNwZWNpZnkgdGhlCi1mb3Jl Z3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGNvbG9ycywgcmVzcGVjdGl2ZWx5LiIKLSAgOnR5cGUg Jyh2ZWN0b3IgKGNob2ljZSBjb2xvciAoY29ucyBjb2xvciBjb2xvcikpCi0gICAgICAgICAg ICAgICAgIChjaG9pY2UgY29sb3IgKGNvbnMgY29sb3IgY29sb3IpKQotICAgICAgICAgICAg ICAgICAoY2hvaWNlIGNvbG9yIChjb25zIGNvbG9yIGNvbG9yKSkKLSAgICAgICAgICAgICAg ICAgKGNob2ljZSBjb2xvciAoY29ucyBjb2xvciBjb2xvcikpCi0gICAgICAgICAgICAgICAg IChjaG9pY2UgY29sb3IgKGNvbnMgY29sb3IgY29sb3IpKQotICAgICAgICAgICAgICAgICAo Y2hvaWNlIGNvbG9yIChjb25zIGNvbG9yIGNvbG9yKSkKLSAgICAgICAgICAgICAgICAgKGNo b2ljZSBjb2xvciAoY29ucyBjb2xvciBjb2xvcikpCi0gICAgICAgICAgICAgICAgIChjaG9p Y2UgY29sb3IgKGNvbnMgY29sb3IgY29sb3IpKSkKLSAgOnNldCAnYW5zaS1jb2xvci1tYXAt dXBkYXRlCi0gIDppbml0aWFsaXplICdjdXN0b20taW5pdGlhbGl6ZS1kZWZhdWx0Ci0gIDp2 ZXJzaW9uICIyNC40IiA7IGRlZmF1bHQgY29sb3JzIGNvcGllZCBmcm9tIGB4dGVybS1zdGFu ZGFyZC1jb2xvcnMnCisgIDM3ICA0NyAgIHdoaXRlIikKKworKGRlZmNvbnN0IGFuc2ktY29s b3ItYnJpZ2h0LWNvbG9ycy12ZWN0b3IKKyAgW2Fuc2ktY29sb3ItYnJpZ2h0LWJsYWNrCisg ICBhbnNpLWNvbG9yLWJyaWdodC1yZWQKKyAgIGFuc2ktY29sb3ItYnJpZ2h0LWdyZWVuCisg ICBhbnNpLWNvbG9yLWJyaWdodC15ZWxsb3cKKyAgIGFuc2ktY29sb3ItYnJpZ2h0LWJsdWUK KyAgIGFuc2ktY29sb3ItYnJpZ2h0LW1hZ2VudGEKKyAgIGFuc2ktY29sb3ItYnJpZ2h0LWN5 YW4KKyAgIGFuc2ktY29sb3ItYnJpZ2h0LXdoaXRlXQorICAiRmFjZXMgdXNlZCBmb3IgU0dS IGNvbnRyb2wgc2VxdWVuY2VzIGRldGVybWluaW5nIGEgXCJicmlnaHRcIiBjb2xvci4KK1Ro aXMgdmVjdG9yIGhvbGRzIHRoZSBmYWNlcyB1c2VkIGZvciBTR1IgY29udHJvbCBzZXF1ZW5j ZXMgcGFyYW1ldGVycworOTAgdG8gOTcgKGJyaWdodCBmb3JlZ3JvdW5kIGNvbG9ycykgYW5k IDEwMCB0byAxMDcgKGJyaWdodCBiYWNrZ3JvdW5kCitjb2xvcnMpLgorCitQYXJhbWV0ZXIg ICBDb2xvcgorICA5MCAgMTAwICAgYnJpZ2h0IGJsYWNrCisgIDkxICAxMDEgICBicmlnaHQg cmVkCisgIDkyICAxMDIgICBicmlnaHQgZ3JlZW4KKyAgOTMgIDEwMyAgIGJyaWdodCB5ZWxs b3cKKyAgOTQgIDEwNCAgIGJyaWdodCBibHVlCisgIDk1ICAxMDUgICBicmlnaHQgbWFnZW50 YQorICA5NiAgMTA2ICAgYnJpZ2h0IGN5YW4KKyAgOTcgIDEwNyAgIGJyaWdodCB3aGl0ZSIp CisKKyhkZWZjdXN0b20gYW5zaS1jb2xvci1ib2xkLWlzLWJyaWdodCBuaWwKKyAgIklmIHNl dCB0byBub24tbmlsLCBjb21iaW5pbmcgQU5TSSBib2xkIGFuZCBhIGNvbG9yIHByb2R1Y2Vz IHRoZSBicmlnaHQKK3ZlcnNpb24gb2YgdGhhdCBjb2xvci4iCisgIDp0eXBlICdib29sZWFu CisgIDp2ZXJzaW9uICIyOC4xIgogICA6Z3JvdXAgJ2Fuc2ktY29sb3JzKQogCiAoZGVmY29u c3QgYW5zaS1jb2xvci1jb250cm9sLXNlcS1yZWdleHAKQEAgLTMwNCwxMyArNDU4LDE1IEBA IGFuc2ktY29sb3ItZmlsdGVyLWFwcGx5CiAKIChkZWZ1biBhbnNpLWNvbG9yLS1maW5kLWZh Y2UgKGNvZGVzKQogICAiUmV0dXJuIHRoZSBmYWNlIGNvcnJlc3BvbmRpbmcgdG8gQ09ERVMu IgotICAobGV0IChmYWNlcykKKyAgOzsgU29ydCB0aGUgY29kZXMgaW4gYXNjZW5kaW5nIG9y ZGVyIHRvIGd1YXJhbnRlZSB0aGF0ICJib2xkIiBjb21lcyBiZWZvcmUKKyAgOzsgYW55IG9m IHRoZSBjb2xvcnMuICBUaGlzIGVuc3VyZXMgdGhhdCBgYW5zaS1jb2xvci1ib2xkLWlzLWJy aWdodCcgaXMKKyAgOzsgYXBwbGllZCBjb3JyZWN0bHkuCisgIChsZXQgKGZhY2VzIGJyaWdo dCAoY29kZXMgKHNvcnQgKGNvcHktc2VxdWVuY2UgY29kZXMpICMnPCkpKQogICAgICh3aGls ZSBjb2RlcwotICAgICAgKGxldCAoKGZhY2UgKGFuc2ktY29sb3ItZ2V0LWZhY2UtMSAocG9w IGNvZGVzKSkpKQotCTs7IEluIHRoZSAoZGVmYXVsdCB1bmRlcmxpbmUpIGZhY2UsIHNheSwg dGhlIHZhbHVlIG9mIHRoZQotCTs7ICJ1bmRlcmxpbmUiIGF0dHJpYnV0ZSBvZiB0aGUgYGRl ZmF1bHQnIGZhY2Ugd2lucy4KLQkodW5sZXNzIChlcSBmYWNlICdkZWZhdWx0KQotCSAgKHB1 c2ggZmFjZSBmYWNlcykpKSkKKyAgICAgICh3aGVuLWxldCAoKGZhY2UgKGFuc2ktY29sb3It Z2V0LWZhY2UtMSAocG9wIGNvZGVzKSBicmlnaHQpKSkKKyAgICAgICAgKHdoZW4gKGFuZCBh bnNpLWNvbG9yLWJvbGQtaXMtYnJpZ2h0IChlcSBmYWNlICdhbnNpLWNvbG9yLWJvbGQpKQor ICAgICAgICAgIChzZXRxIGJyaWdodCB0KSkKKyAgICAgICAgKHB1c2ggZmFjZSBmYWNlcykp KQogICAgIDs7IEF2b2lkIHNvbWUgbG9uZy1saXZlZCBjb25zZXMgaW4gdGhlIGNvbW1vbiBj YXNlLgogICAgIChpZiAoY2RyIGZhY2VzKQogCShucmV2ZXJzZSBmYWNlcykKQEAgLTMyMSw5 ICs0NzcsOCBAQCBhbnNpLWNvbG9yLWFwcGx5CiBEZWxldGUgYWxsIG90aGVyIGNvbnRyb2wg c2VxdWVuY2VzIHdpdGhvdXQgcHJvY2Vzc2luZyB0aGVtLgogCiBBcHBsaWVzIFNHUiBjb250 cm9sIHNlcXVlbmNlcyBzZXR0aW5nIGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3Jz Ci10byBTVFJJTkcgdXNpbmcgdGV4dCBwcm9wZXJ0aWVzIGFuZCByZXR1cm5zIHRoZSByZXN1 bHQuICBUaGUgY29sb3JzIHVzZWQKLWFyZSBnaXZlbiBpbiBgYW5zaS1jb2xvci1mYWNlcy12 ZWN0b3InIGFuZCBgYW5zaS1jb2xvci1uYW1lcy12ZWN0b3InLgotU2VlIGZ1bmN0aW9uIGBh bnNpLWNvbG9yLWFwcGx5LXNlcXVlbmNlJyBmb3IgZGV0YWlscy4KK3RvIFNUUklORyB1c2lu ZyB0ZXh0IHByb3BlcnRpZXMgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4gIFNlZSBmdW5jdGlv bgorYGFuc2ktY29sb3ItYXBwbHktc2VxdWVuY2UnIGZvciBkZXRhaWxzLgogCiBFdmVyeSBj YWxsIHRvIHRoaXMgZnVuY3Rpb24gd2lsbCBzZXQgYW5kIHVzZSB0aGUgYnVmZmVyLWxvY2Fs IHZhcmlhYmxlCiBgYW5zaS1jb2xvci1jb250ZXh0JyB0byBzYXZlIHBhcnRpYWwgZXNjYXBl IHNlcXVlbmNlcyBhbmQgY3VycmVudCBhbnNpIGNvZGVzLgpAQCAtNDAyLDggKzU1Nyw3IEBA IGFuc2ktY29sb3ItYXBwbHktb24tcmVnaW9uCiBTR1IgY29udHJvbCBzZXF1ZW5jZXMgYXJl IGFwcGxpZWQgYnkgY2FsbGluZyB0aGUgZnVuY3Rpb24KIHNwZWNpZmllZCBieSBgYW5zaS1j b2xvci1hcHBseS1mYWNlLWZ1bmN0aW9uJy4gIFRoZSBkZWZhdWx0CiBmdW5jdGlvbiBzZXRz IGZvcmVncm91bmQgYW5kIGJhY2tncm91bmQgY29sb3JzIHRvIHRoZSB0ZXh0Ci1iZXR3ZWVu IEJFR0lOIGFuZCBFTkQsIHVzaW5nIG92ZXJsYXlzLiAgVGhlIGNvbG9ycyB1c2VkIGFyZSBn aXZlbgotaW4gYGFuc2ktY29sb3ItZmFjZXMtdmVjdG9yJyBhbmQgYGFuc2ktY29sb3ItbmFt ZXMtdmVjdG9yJy4gIFNlZQorYmV0d2VlbiBCRUdJTiBhbmQgRU5ELCB1c2luZyBvdmVybGF5 cy4gIFNlZSBmdW5jdGlvbgogYGFuc2ktY29sb3ItYXBwbHktc2VxdWVuY2UnIGZvciBkZXRh aWxzLgogCiBFdmVyeSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gd2lsbCBzZXQgYW5kIHVzZSB0 aGUgYnVmZmVyLWxvY2FsCkBAIC01NzAsMTEgKzcyNCwxMSBAQCBhbnNpLWNvbG9yLWFwcGx5 LXNlcXVlbmNlCiAKIEZvciBlYWNoIG5ldyBjb2RlLCB0aGUgZm9sbG93aW5nIGhhcHBlbnM6 IGlmIGl0IGlzIDEtNywgYWRkIGl0IHRvCiB0aGUgbGlzdCBvZiBjb2RlczsgaWYgaXQgaXMg MjEtMjUgb3IgMjcsIGRlbGV0ZSBhcHByb3ByaWF0ZQotcGFyYW1ldGVycyBmcm9tIHRoZSBs aXN0IG9mIGNvZGVzOyBpZiBpdCBpcyAzMC0zNyByZXNwLiAzOSwgdGhlCi1mb3JlZ3JvdW5k IGNvbG9yIGNvZGUgaXMgcmVwbGFjZWQgb3IgYWRkZWQgcmVzcC4gZGVsZXRlZDsgaWYgaXQK LWlzIDQwLTQ3IHJlc3AuIDQ5LCB0aGUgYmFja2dyb3VuZCBjb2xvciBjb2RlIGlzIHJlcGxh Y2VkIG9yIGFkZGVkCi1yZXNwLiBkZWxldGVkOyBhbnkgb3RoZXIgY29kZSBpcyBkaXNjYXJk ZWQgdG9nZXRoZXIgd2l0aCB0aGUgb2xkCi1jb2Rlcy4JRmluYWxseSwgdGhlIHNvIGNoYW5n ZWQgbGlzdCBvZiBjb2RlcyBpcyByZXR1cm5lZC4iCitwYXJhbWV0ZXJzIGZyb20gdGhlIGxp c3Qgb2YgY29kZXM7IGlmIGl0IGlzIDMwLTM3IChvciA5MC05NykgcmVzcC4gMzksCit0aGUg Zm9yZWdyb3VuZCBjb2xvciBjb2RlIGlzIHJlcGxhY2VkIG9yIGFkZGVkIHJlc3AuIGRlbGV0 ZWQ7IGlmIGl0CitpcyA0MC00NyAob3IgMTAwLTEwNykgcmVzcC4gNDksIHRoZSBiYWNrZ3Jv dW5kIGNvbG9yIGNvZGUgaXMgcmVwbGFjZWQKK29yIGFkZGVkIHJlc3AuIGRlbGV0ZWQ7IGFu eSBvdGhlciBjb2RlIGlzIGRpc2NhcmRlZCB0b2dldGhlciB3aXRoIHRoZQorb2xkIGNvZGVz LiAgRmluYWxseSwgdGhlIHNvIGNoYW5nZWQgbGlzdCBvZiBjb2RlcyBpcyByZXR1cm5lZC4i CiAgIChsZXQgKChuZXctY29kZXMgKGFuc2ktY29sb3ItcGFyc2Utc2VxdWVuY2UgZXNjYXBl LXNlcXVlbmNlKSkpCiAgICAgKHdoaWxlIG5ldy1jb2RlcwogICAgICAgKGxldCogKChuZXcg KHBvcCBuZXctY29kZXMpKQpAQCAtNTkxLDcgKzc0NSw3IEBAIGFuc2ktY29sb3ItYXBwbHkt c2VxdWVuY2UKIAkJCQkJKDIyIChyZW1xIDEgY29kZXMpKQogCQkJCQkoMjUgKHJlbXEgNiBj b2RlcykpCiAJCQkJCShfIGNvZGVzKSkpKSkKLQkJKChvciAzIDQpIChsZXQgKChyIChtb2Qg bmV3IDEwKSkpCisJCSgob3IgMyA0IDkgMTApIChsZXQgKChyIChtb2QgbmV3IDEwKSkpCiAJ CQkgICAgKHVubGVzcyAoPSByIDgpCiAJCQkgICAgICAobGV0IChiZWcpCiAJCQkJKHdoaWxl IChhbmQgY29kZXMgKC89IHEgKC8gKGNhciBjb2RlcykgMTApKSkKQEAgLTYwMyw2OSArNzU3 LDM0IEBAIGFuc2ktY29sb3ItYXBwbHktc2VxdWVuY2UKIAkJKF8gbmlsKSkpKSkKICAgICBj b2RlcykpCiAKLShkZWZ1biBhbnNpLWNvbG9yLW1ha2UtY29sb3ItbWFwICgpCi0gICJDcmVh dGUgYSB2ZWN0b3Igb2YgZmFjZSBkZWZpbml0aW9ucyBhbmQgcmV0dXJuIGl0LgotCi1UaGUg aW5kZXggaW50byB0aGUgdmVjdG9yIGlzIGFuIEFOU0kgY29kZS4gIFNlZSB0aGUgZG9jdW1l bnRhdGlvbiBvZgotYGFuc2ktY29sb3ItbWFwJyBmb3IgYW4gZXhhbXBsZS4KLQotVGhlIGZh Y2UgZGVmaW5pdGlvbnMgYXJlIGJhc2VkIHVwb24gdGhlIHZhcmlhYmxlcwotYGFuc2ktY29s b3ItZmFjZXMtdmVjdG9yJyBhbmQgYGFuc2ktY29sb3ItbmFtZXMtdmVjdG9yJy4iCi0gIChs ZXQgKChtYXAgKG1ha2UtdmVjdG9yIDUwIG5pbCkpCi0gICAgICAgIChpbmRleCAwKSkKLSAg ICA7OyBtaXNjZWxsYW5lb3VzIGF0dHJpYnV0ZXMKLSAgICAobWFwYwotICAgICAobGFtYmRh IChlKQotICAgICAgIChhc2V0IG1hcCBpbmRleCBlKQotICAgICAgIChzZXRxIGluZGV4ICgx KyBpbmRleCkpICkKLSAgICAgYW5zaS1jb2xvci1mYWNlcy12ZWN0b3IpCi0gICAgOzsgZm9y ZWdyb3VuZCBhdHRyaWJ1dGVzCi0gICAgKHNldHEgaW5kZXggMzApCi0gICAgKG1hcGMKLSAg ICAgKGxhbWJkYSAoZSkKLSAgICAgICAoYXNldCBtYXAgaW5kZXgKLSAgICAgICAgICAgICAo YW5zaS1jb2xvci1tYWtlLWZhY2UgJ2ZvcmVncm91bmQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAoaWYgKGNvbnNwIGUpIChjYXIgZSkgZSkpKQotICAgICAgIChzZXRxIGluZGV4ICgx KyBpbmRleCkpICkKLSAgICAgYW5zaS1jb2xvci1uYW1lcy12ZWN0b3IpCi0gICAgOzsgYmFj a2dyb3VuZCBhdHRyaWJ1dGVzCi0gICAgKHNldHEgaW5kZXggNDApCi0gICAgKG1hcGMKLSAg ICAgKGxhbWJkYSAoZSkKLSAgICAgICAoYXNldCBtYXAgaW5kZXgKLSAgICAgICAgICAgICAo YW5zaS1jb2xvci1tYWtlLWZhY2UgJ2JhY2tncm91bmQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAoaWYgKGNvbnNwIGUpIChjZHIgZSkgZSkpKQotICAgICAgIChzZXRxIGluZGV4ICgx KyBpbmRleCkpICkKLSAgICAgYW5zaS1jb2xvci1uYW1lcy12ZWN0b3IpCi0gICAgbWFwKSkK LQotKGRlZnZhciBhbnNpLWNvbG9yLW1hcCAoYW5zaS1jb2xvci1tYWtlLWNvbG9yLW1hcCkK LSAgIkEgYnJhbmQgbmV3IGNvbG9yIG1hcCBzdWl0YWJsZSBmb3IgYGFuc2ktY29sb3ItZ2V0 LWZhY2UnLgotCi1UaGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSBpcyB1c3VhbGx5IGNvbnN0 cnVjdGVkIGJ5Ci1gYW5zaS1jb2xvci1tYWtlLWNvbG9yLW1hcCcuICBUaGUgdmFsdWVzIGlu IHRoZSBhcnJheSBhcmUgc3VjaCB0aGF0IHRoZQotbnVtYmVycyBpbmNsdWRlZCBpbiBhbiBT R1IgY29udHJvbCBzZXF1ZW5jZXMgcG9pbnQgdG8gdGhlIGNvcnJlY3QKLWZvcmVncm91bmQg b3IgYmFja2dyb3VuZCBjb2xvcnMuCi0KLUV4YW1wbGU6IFRoZSBzZXF1ZW5jZSBcXDAzM1sz NG0gc3BlY2lmaWVzIGEgYmx1ZSBmb3JlZ3JvdW5kLiAgVGhlcmVmb3JlOgotICAgICAoYXJl ZiBhbnNpLWNvbG9yLW1hcCAzNCkKLSAgICAgICAgICA9PiAoZm9yZWdyb3VuZC1jb2xvciAu IFwiYmx1ZVwiKSIpCi0KLShkZWZ1biBhbnNpLWNvbG9yLW1hcC11cGRhdGUgKHN5bWJvbCB2 YWx1ZSkKLSAgIlVwZGF0ZSBgYW5zaS1jb2xvci1tYXAnLgotCi1XaGVuZXZlciB0aGUgdmVj dG9ycyB1c2VkIHRvIGNvbnN0cnVjdCBgYW5zaS1jb2xvci1tYXAnIGFyZSBjaGFuZ2VkLAot dGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuICBUaGVyZWZvcmUgdGhpcyBmdW5jdGlvbiBpcyBs aXN0ZWQgYXMgdGhlIDpzZXQKLXByb3BlcnR5IG9mIGBhbnNpLWNvbG9yLWZhY2VzLXZlY3Rv cicgYW5kIGBhbnNpLWNvbG9yLW5hbWVzLXZlY3RvcicuIgotICAoc2V0LWRlZmF1bHQgc3lt Ym9sIHZhbHVlKQotICAoc2V0cSBhbnNpLWNvbG9yLW1hcCAoYW5zaS1jb2xvci1tYWtlLWNv bG9yLW1hcCkpKQotCi0oZGVmdW4gYW5zaS1jb2xvci1nZXQtZmFjZS0xIChhbnNpLWNvZGUp Ci0gICJHZXQgZmFjZSBkZWZpbml0aW9uIGZyb20gYGFuc2ktY29sb3ItbWFwJy4KLUFOU0kt Q09ERSBpcyB1c2VkIGFzIGFuIGluZGV4IGludG8gdGhlIHZlY3Rvci4iCi0gIChjb25kaXRp b24tY2FzZSBuaWwKLSAgICAgIChhcmVmIGFuc2ktY29sb3ItbWFwIGFuc2ktY29kZSkKLSAg ICAoYXJncy1vdXQtb2YtcmFuZ2UgbmlsKSkpCisoZGVmdW4gYW5zaS1jb2xvci1nZXQtZmFj ZS0xIChhbnNpLWNvZGUgJm9wdGlvbmFsIGJyaWdodCkKKyAgIkdldCBmYWNlIGRlZmluaXRp b24gZm9yIEFOU0ktQ09ERS4KK0JSSUdIVCwgaWYgbm9uLW5pbCwgcmVxdWVzdHMgXCJicmln aHRcIiBBTlNJIGNvbG9ycywgZXZlbiBpZiBBTlNJLUNPREUKK2lzIGEgbm9ybWFsLWludGVu c2l0eSBjb2xvci4iCisgICh3aGVuIChhbmQgYnJpZ2h0ICg8PSAzMCBhbnNpLWNvZGUgNDkp KQorICAgIChzZXRxIGFuc2ktY29kZSAoKyBhbnNpLWNvZGUgNjApKSkKKyAgKGNvbmQgKCg8 PSAwIGFuc2ktY29kZSA3KQorICAgICAgICAgKGFyZWYgYW5zaS1jb2xvci1iYXNpYy1mYWNl cy12ZWN0b3IgYW5zaS1jb2RlKSkKKyAgICAgICAgKCg8PSAzMCBhbnNpLWNvZGUgMzgpCisg ICAgICAgICAobGlzdCA6Zm9yZWdyb3VuZAorICAgICAgICAgICAgICAgKGZhY2UtZm9yZWdy b3VuZAorICAgICAgICAgICAgICAgIChhcmVmIGFuc2ktY29sb3Itbm9ybWFsLWNvbG9ycy12 ZWN0b3IgKC0gYW5zaS1jb2RlIDMwKSkKKyAgICAgICAgICAgICAgICBuaWwgJ2RlZmF1bHQp KSkKKyAgICAgICAgKCg8PSA0MCBhbnNpLWNvZGUgNDgpCisgICAgICAgICAobGlzdCA6YmFj a2dyb3VuZAorICAgICAgICAgICAgICAgKGZhY2UtYmFja2dyb3VuZAorICAgICAgICAgICAg ICAgIChhcmVmIGFuc2ktY29sb3Itbm9ybWFsLWNvbG9ycy12ZWN0b3IgKC0gYW5zaS1jb2Rl IDQwKSkKKyAgICAgICAgICAgICAgICBuaWwgJ2RlZmF1bHQpKSkKKyAgICAgICAgKCg8PSA5 MCBhbnNpLWNvZGUgOTgpCisgICAgICAgICAobGlzdCA6Zm9yZWdyb3VuZAorICAgICAgICAg ICAgICAgKGZhY2UtZm9yZWdyb3VuZAorICAgICAgICAgICAgICAgIChhcmVmIGFuc2ktY29s b3ItYnJpZ2h0LWNvbG9ycy12ZWN0b3IgKC0gYW5zaS1jb2RlIDkwKSkKKyAgICAgICAgICAg ICAgICBuaWwgJ2RlZmF1bHQpKSkKKyAgICAgICAgKCg8PSAxMDAgYW5zaS1jb2RlIDEwOCkK KyAgICAgICAgIChsaXN0IDpiYWNrZ3JvdW5kCisgICAgICAgICAgICAgICAoZmFjZS1iYWNr Z3JvdW5kCisgICAgICAgICAgICAgICAgKGFyZWYgYW5zaS1jb2xvci1icmlnaHQtY29sb3Jz LXZlY3RvciAoLSBhbnNpLWNvZGUgMTAwKSkKKyAgICAgICAgICAgICAgICBuaWwgJ2RlZmF1 bHQpKSkpKQogCiAocHJvdmlkZSAnYW5zaS1jb2xvcikKIApkaWZmIC0tZ2l0IGEvbGlzcC9t YW4uZWwgYi9saXNwL21hbi5lbAppbmRleCA2MDA5YTMxOTE5Li45YWEyN2MzZmQ2IDEwMDY0 NAotLS0gYS9saXNwL21hbi5lbAorKysgYi9saXNwL21hbi5lbApAQCAtMTQxLDEyICsxNDEs NiBAQCBNYW4tcmV2ZXJzZQogICA6Z3JvdXAgJ21hbgogICA6dmVyc2lvbiAiMjQuMyIpCiAK LShkZWZ2YXIgTWFuLWFuc2ktY29sb3ItbWFwIChsZXQgKChhbnNpLWNvbG9yLWZhY2VzLXZl Y3RvcgotCQkJCSAgWyBkZWZhdWx0IE1hbi1vdmVyc3RyaWtlIGRlZmF1bHQgTWFuLXVuZGVy bGluZQotCQkJCSAgICBNYW4tdW5kZXJsaW5lIGRlZmF1bHQgZGVmYXVsdCBNYW4tcmV2ZXJz ZSBdKSkKLQkJCSAgICAgKGFuc2ktY29sb3ItbWFrZS1jb2xvci1tYXApKQotICAiVGhlIHZh bHVlIHVzZWQgaGVyZSBmb3IgYGFuc2ktY29sb3ItbWFwJy4iKQotCiAoZGVmY3VzdG9tIE1h bi1ub3RpZnktbWV0aG9kICdmcmllbmRseQogICAiU2VsZWN0cyB0aGUgYmVoYXZpb3Igd2hl biBtYW5wYWdlIGlzIHJlYWR5LgogVGhpcyB2YXJpYWJsZSBtYXkgaGF2ZSBvbmUgb2YgdGhl IGZvbGxvd2luZyB2YWx1ZXMsIHdoZXJlIChzZikgbWVhbnMKQEAgLTEyNDIsOCArMTIzNiw3 IEBAIE1hbi1mb250aWZ5LW1hbnBhZ2UKICAgKGludGVyYWN0aXZlIG5pbCBtYW4tY29tbW9u KQogICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICA7OyBGb250aWZ5IEFOU0kgZXNjYXBl cy4KLSAgKGxldCAoKGFuc2ktY29sb3ItYXBwbHktZmFjZS1mdW5jdGlvbiAjJ2Fuc2ktY29s b3ItYXBwbHktdGV4dC1wcm9wZXJ0eS1mYWNlKQotCShhbnNpLWNvbG9yLW1hcCBNYW4tYW5z aS1jb2xvci1tYXApKQorICAobGV0ICgoYW5zaS1jb2xvci1hcHBseS1mYWNlLWZ1bmN0aW9u ICMnYW5zaS1jb2xvci1hcHBseS10ZXh0LXByb3BlcnR5LWZhY2UpKQogICAgIChhbnNpLWNv bG9yLWFwcGx5LW9uLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpCiAgIDs7IE90 aGVyIGhpZ2hsaWdodGluZy4KICAgKGxldCAoKGJ1ZmZlci11bmRvLWxpc3QgdCkpCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvYW5zaS1jb2xvci10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9hbnNp LWNvbG9yLXRlc3RzLmVsCmluZGV4IDEwN2RjOGU0MDAuLmRmNjc0ZGZjN2YgMTAwNjQ0Ci0t LSBhL3Rlc3QvbGlzcC9hbnNpLWNvbG9yLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9hbnNp LWNvbG9yLXRlc3RzLmVsCkBAIC0yNSwxNyArMjUsNTggQEAKIDs7OyBDb2RlOgogCiAocmVx dWlyZSAnYW5zaS1jb2xvcikKKyhldmFsLXdoZW4tY29tcGlsZSAocmVxdWlyZSAnY2wtbGli KSkKIAotKGRlZnZhciB0ZXN0LXN0cmluZ3MgJygoIlxlWzMzbUhlbGxvIFdvcmxkXGVbMG0i IC4gIkhlbGxvIFdvcmxkIikKLSAgICAgICAgICAgICAgICAgICAgICAgKCJcZVsxbVxlWzNt XGVbNW1ib2xkIGl0YWxpY3MgYmxpbmtcZVswbSIgLiAiYm9sZCBpdGFsaWNzIGJsaW5rIikp KQorKGRlZnZhciB5ZWxsb3cgKGZhY2UtZm9yZWdyb3VuZCAnYW5zaS1jb2xvci15ZWxsb3cg bmlsICdkZWZhdWx0KSkKKyhkZWZ2YXIgYnJpZ2h0LXllbGxvdyAoZmFjZS1mb3JlZ3JvdW5k ICdhbnNpLWNvbG9yLWJyaWdodC15ZWxsb3cgbmlsICdkZWZhdWx0KSkKKworKGRlZnZhciB0 ZXN0LXN0cmluZ3MKKyAgYCgoIkhlbGxvIFdvcmxkIiAiSGVsbG8gV29ybGQiKQorICAgICgi XGVbMzNtSGVsbG8gV29ybGRcZVswbSIgIkhlbGxvIFdvcmxkIgorICAgICAoOmZvcmVncm91 bmQgLHllbGxvdykpCisgICAgKCJcZVs0M21IZWxsbyBXb3JsZFxlWzBtIiAiSGVsbG8gV29y bGQiCisgICAgICg6YmFja2dyb3VuZCAseWVsbG93KSkKKyAgICAoIlxlWzkzbUhlbGxvIFdv cmxkXGVbMG0iICJIZWxsbyBXb3JsZCIKKyAgICAgKDpmb3JlZ3JvdW5kICxicmlnaHQteWVs bG93KSkKKyAgICAoIlxlWzEwM21IZWxsbyBXb3JsZFxlWzBtIiAiSGVsbG8gV29ybGQiCisg ICAgICg6YmFja2dyb3VuZCAsYnJpZ2h0LXllbGxvdykpCisgICAgKCJcZVsxOzMzbUhlbGxv IFdvcmxkXGVbMG0iICJIZWxsbyBXb3JsZCIKKyAgICAgKGFuc2ktY29sb3ItYm9sZCAoOmZv cmVncm91bmQgLHllbGxvdykpCisgICAgIChhbnNpLWNvbG9yLWJvbGQgKDpmb3JlZ3JvdW5k ICxicmlnaHQteWVsbG93KSkpCisgICAgKCJcZVszMzsxbUhlbGxvIFdvcmxkXGVbMG0iICJI ZWxsbyBXb3JsZCIKKyAgICAgKGFuc2ktY29sb3ItYm9sZCAoOmZvcmVncm91bmQgLHllbGxv dykpCisgICAgIChhbnNpLWNvbG9yLWJvbGQgKDpmb3JlZ3JvdW5kICxicmlnaHQteWVsbG93 KSkpCisgICAgKCJcZVsxbVxlWzMzbUhlbGxvIFdvcmxkXGVbMG0iICJIZWxsbyBXb3JsZCIK KyAgICAgKGFuc2ktY29sb3ItYm9sZCAoOmZvcmVncm91bmQgLHllbGxvdykpCisgICAgIChh bnNpLWNvbG9yLWJvbGQgKDpmb3JlZ3JvdW5kICxicmlnaHQteWVsbG93KSkpCisgICAgKCJc ZVszM21cZVsxbUhlbGxvIFdvcmxkXGVbMG0iICJIZWxsbyBXb3JsZCIKKyAgICAgKGFuc2kt Y29sb3ItYm9sZCAoOmZvcmVncm91bmQgLHllbGxvdykpCisgICAgIChhbnNpLWNvbG9yLWJv bGQgKDpmb3JlZ3JvdW5kICxicmlnaHQteWVsbG93KSkpCisgICAgKCJcZVsxbVxlWzNtXGVb NW1ib2xkIGl0YWxpY3MgYmxpbmtcZVswbSIgImJvbGQgaXRhbGljcyBibGluayIKKyAgICAg KGFuc2ktY29sb3ItYm9sZCBhbnNpLWNvbG9yLWl0YWxpYyBhbnNpLWNvbG9yLXNsb3ctYmxp bmspKQorICAgICgiXGVbMTBtdW5yZWNvZ25pemVkXGVbMG0iICJ1bnJlY29nbml6ZWQiKSkp CiAKIChlcnQtZGVmdGVzdCBhbnNpLWNvbG9yLWFwcGx5LW9uLXJlZ2lvbi10ZXN0ICgpCi0g ICAgKGRvbGlzdCAocGFpciB0ZXN0LXN0cmluZ3MpCi0gICAgICAod2l0aC10ZW1wLWJ1ZmZl cgotICAgICAgICAoaW5zZXJ0IChjYXIgcGFpcikpCisgIChwY2FzZS1kb2xpc3QgKGAoLGlu cHV0ICx0ZXh0ICxmYWNlKSB0ZXN0LXN0cmluZ3MpCisgICAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAgIChpbnNlcnQgaW5wdXQpCisgICAgICAoYW5zaS1jb2xvci1hcHBseS1vbi1yZWdp b24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoYnVm ZmVyLXN0cmluZykgdGV4dCkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoZ2V0LWNoYXItcHJv cGVydHkgKHBvaW50LW1pbikgJ2ZhY2UpIGZhY2UpKQorICAgICAgKHdoZW4gZmFjZQorICAg ICAgICAoc2hvdWxkIChub3QgKGVxdWFsIChvdmVybGF5cy1hdCAocG9pbnQtbWluKSkgbmls KSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgYW5zaS1jb2xvci1hcHBseS1vbi1yZWdpb24tYm9s ZC1pcy1icmlnaHQtdGVzdCAoKQorICAocGNhc2UtZG9saXN0IChgKCxpbnB1dCAsdGV4dCAs bm9ybWFsLWZhY2UgLGJyaWdodC1mYWNlKSB0ZXN0LXN0cmluZ3MpCisgICAgKHdpdGgtdGVt cC1idWZmZXIKKyAgICAgIChsZXQgKChhbnNpLWNvbG9yLWJvbGQtaXMtYnJpZ2h0IHQpCisg ICAgICAgICAgICAoZmFjZSAob3IgYnJpZ2h0LWZhY2Ugbm9ybWFsLWZhY2UpKSkKKyAgICAg ICAgKGluc2VydCBpbnB1dCkKICAgICAgICAgKGFuc2ktY29sb3ItYXBwbHktb24tcmVnaW9u IChwb2ludC1taW4pIChwb2ludC1tYXgpKQotICAgICAgICAoc2hvdWxkIChlcXVhbCAoYnVm ZmVyLXN0cmluZykgKGNkciBwYWlyKSkpCi0gICAgICAgIChzaG91bGQgKG5vdCAoZXF1YWwg KG92ZXJsYXlzLWF0IChwb2ludC1taW4pKSBuaWwpKSkpKSkKKyAgICAgICAgKHNob3VsZCAo ZXF1YWwgKGJ1ZmZlci1zdHJpbmcpIHRleHQpKQorICAgICAgICAoc2hvdWxkIChlcXVhbCAo Z2V0LWNoYXItcHJvcGVydHkgKHBvaW50LW1pbikgJ2ZhY2UpIGZhY2UpKQorICAgICAgICAo d2hlbiBmYWNlCisgICAgICAgICAgKHNob3VsZCAobm90IChlcXVhbCAob3ZlcmxheXMtYXQg KHBvaW50LW1pbikpIG5pbCkpKSkpKSkpCiAKIChlcnQtZGVmdGVzdCBhbnNpLWNvbG9yLWFw cGx5LW9uLXJlZ2lvbi1wcmVzZXJ2aW5nLXRlc3QgKCkKICAgICAoZG9saXN0IChwYWlyIHRl c3Qtc3RyaW5ncykKLS0gCjIuMjUuMQoK --------------B46408E9A6DA1B106410C7A4 Content-Type: text/plain; charset=UTF-8; name="0002-Add-support-for-bright-ANSI-colors-in-term-mode.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Add-support-for-bright-ANSI-colors-in-term-mode.patch" RnJvbSAxMTNkOWY4ZDJkZjdiNTg2NTU4NTBjYTllMGEwNThhNTViZDM2NjE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjIgU2VwIDIwMjEgMTI6MDk6MDMgLTA3MDAKU3ViamVjdDogW1BB VENIIDIvMl0gQWRkIHN1cHBvcnQgZm9yICJicmlnaHQiIEFOU0kgY29sb3JzIGluIHRlcm0t bW9kZQoKKiBsaXN0L3Rlcm0uZWwgKGFuc2ktdGVybS1jb2xvci12ZWN0b3IpOiBBZGQgbmV3 IGZhY2VzLgoodGVybS1jb2xvci1ibGFjaywgdGVybS1jb2xvci1yZWQsIHRlcm0tY29sb3It Z3JlZW4sIHRlcm0tY29sb3IteWVsbG93KQoodGVybS1jb2xvci1ibHVlLCB0ZXJtLWNvbG9y LW1hZ2VudGEsIHRlcm0tY29sb3ItY3lhbiwgdGVybS1jb2xvci13aGl0ZSk6CkluaGVyaXQg ZnJvbSAnYW5zaS1jb2xvci1DT0xPUicuCih0ZXJtLWNvbG9yLWJyaWdodC1ibGFjaywgdGVy bS1jb2xvci1icmlnaHQtcmVkLCB0ZXJtLWNvbG9yLWJyaWdodC1ncmVlbikKKHRlcm0tY29s b3ItYnJpZ2h0LXllbGxvdywgdGVybS1jb2xvci1icmlnaHQtYmx1ZSkKKHRlcm0tY29sb3It YnJpZ2h0LW1hZ2VudGEsIHRlcm0tY29sb3ItYnJpZ2h0LWN5YW4pCih0ZXJtLWNvbG9yLWJy aWdodC13aGl0ZSk6IE5ldyBmYWNlcy4KKHRlcm0tLW1heWJlLWJyaWdodGVuLWNvbG9yKTog TmV3IGZ1bmN0aW9uLgoodGVybS1oYW5kbGUtY29sb3JzLWFycmF5KTogSGFuZGxlIGJyaWdo dCBjb2xvcnMuCiogdGVzdC9saXNwL3Rlcm0tdGVzdHMuZWwgKHRlcm0tY29sb3JzLCB0ZXJt LWNvbG9ycy1ib2xkLWlzLWJyaWdodCk6Ck5ldyBmdW5jdGlvbnMuCi0tLQogZXRjL05FV1Mg ICAgICAgICAgICAgICAgfCAgIDcgKysKIGxpc3AvdGVybS5lbCAgICAgICAgICAgIHwgMTg2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC90 ZXJtLXRlc3RzLmVsIHwgIDY1ICsrKysrKysrKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDIw OCBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ldGMvTkVX UyBiL2V0Yy9ORVdTCmluZGV4IGNmNjgyM2Y1MWIuLjI3YzY5OTZiYjMgMTAwNjQ0Ci0tLSBh L2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0xNTA4LDYgKzE1MDgsMTMgQEAgYmFzZWQg b24gdGhlIGN1cnJlbnQgd2luZG93IHNpemUuICBJbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiBF bWFjcywgdGhpcwogd2FzIGFsd2F5cyBkb25lIChhbmQgdGhhdCBjb3VsZCBsZWFkIHRvIG9k ZCBkaXNwbGF5cyB3aGVuIHJlc2l6aW5nIHRoZQogd2luZG93IGFmdGVyIHN0YXJ0aW5nKS4g IFRoaXMgdmFyaWFibGUgZGVmYXVsdHMgdG8gbmlsLgogCistLS0KKyoqKiAndGVybS1tb2Rl JyBub3cgc3VwcG9ydHMgImJyaWdodCIgY29sb3IgY29kZXMuCisiQnJpZ2h0IiBBTlNJIGNv bG9yIGNvZGVzIGFyZSBub3cgZGlzcGxheWVkIHVzaW5nIHRoZSBjb2xvciB2YWx1ZXMKK2Rl ZmluZWQgaW4gJ3Rlcm0tY29sb3ItYnJpZ2h0LSonLiAgSW4gYWRkaXRpb24sIGJvbGQgdGV4 dCB3aXRoIHJlZ3VsYXIKK0FOU0kgY29sb3JzIGNhbiBiZSBkaXNwbGF5ZWQgYXMgImJyaWdo dCIgaWYgJ2Fuc2ktY29sb3ItYm9sZC1pcy1icmlnaHQnCitpcyBub24tbmlsLgorCiAqKiBF c2hlbGwKIAogLS0tCmRpZmYgLS1naXQgYS9saXNwL3Rlcm0uZWwgYi9saXNwL3Rlcm0uZWwK aW5kZXggYWY5MzA4OTEwNC4uZjU3ZmNjOGNkNSAxMDA2NDQKLS0tIGEvbGlzcC90ZXJtLmVs CisrKyBiL2xpc3AvdGVybS5lbApAQCAtNzI3LDcgKzcyNywxNSBAQCBhbnNpLXRlcm0tY29s b3ItdmVjdG9yCiAgICB0ZXJtLWNvbG9yLWJsdWUKICAgIHRlcm0tY29sb3ItbWFnZW50YQog ICAgdGVybS1jb2xvci1jeWFuCi0gICB0ZXJtLWNvbG9yLXdoaXRlXSkKKyAgIHRlcm0tY29s b3Itd2hpdGUKKyAgIHRlcm0tY29sb3ItYnJpZ2h0LWJsYWNrCisgICB0ZXJtLWNvbG9yLWJy aWdodC1yZWQKKyAgIHRlcm0tY29sb3ItYnJpZ2h0LWdyZWVuCisgICB0ZXJtLWNvbG9yLWJy aWdodC15ZWxsb3cKKyAgIHRlcm0tY29sb3ItYnJpZ2h0LWJsdWUKKyAgIHRlcm0tY29sb3It YnJpZ2h0LW1hZ2VudGEKKyAgIHRlcm0tY29sb3ItYnJpZ2h0LWN5YW4KKyAgIHRlcm0tY29s b3ItYnJpZ2h0LXdoaXRlXSkKIAogKGRlZmN1c3RvbSB0ZXJtLWRlZmF1bHQtZmctY29sb3Ig bmlsCiAgICJJZiBub24tbmlsLCBkZWZhdWx0IGNvbG9yIGZvciBmb3JlZ3JvdW5kIGluIFRl cm0gbW9kZS4iCkBAIC03NTIsNTUgKzc2MCwxMTIgQEAgdGVybQogICA6Z3JvdXAgJ3Rlcm0p CiAKIChkZWZmYWNlIHRlcm0tYm9sZAotICAnKCh0IDpib2xkIHQpKQorICAnKCh0IDppbmhl cml0IGFuc2ktY29sb3ItYm9sZCkpCiAgICJEZWZhdWx0IGZhY2UgdG8gdXNlIGZvciBib2xk IHRleHQuIgotICA6Z3JvdXAgJ3Rlcm0pCisgIDpncm91cCAndGVybQorICA6dmVyc2lvbiAi MjguMSIpCiAKIChkZWZmYWNlIHRlcm0tdW5kZXJsaW5lCi0gICcoKHQgOnVuZGVybGluZSB0 KSkKKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLXVuZGVybGluZSkpCiAgICJEZWZhdWx0 IGZhY2UgdG8gdXNlIGZvciB1bmRlcmxpbmVkIHRleHQuIgotICA6Z3JvdXAgJ3Rlcm0pCisg IDpncm91cCAndGVybQorICA6dmVyc2lvbiAiMjguMSIpCiAKIChkZWZmYWNlIHRlcm0tY29s b3ItYmxhY2sKLSAgJygodCA6Zm9yZWdyb3VuZCAiYmxhY2siIDpiYWNrZ3JvdW5kICJibGFj ayIpKQorICAnKCh0IDppbmhlcml0IGFuc2ktY29sb3ItYmxhY2spKQogICAiRmFjZSB1c2Vk IHRvIHJlbmRlciBibGFjayBjb2xvciBjb2RlLiIKLSAgOmdyb3VwICd0ZXJtKQorICA6Z3Jv dXAgJ3Rlcm0KKyAgOnZlcnNpb24gIjI4LjEiKQogCiAoZGVmZmFjZSB0ZXJtLWNvbG9yLXJl ZAotICAnKCh0IDpmb3JlZ3JvdW5kICJyZWQzIiA6YmFja2dyb3VuZCAicmVkMyIpKQorICAn KCh0IDppbmhlcml0IGFuc2ktY29sb3ItcmVkKSkKICAgIkZhY2UgdXNlZCB0byByZW5kZXIg cmVkIGNvbG9yIGNvZGUuIgotICA6Z3JvdXAgJ3Rlcm0pCisgIDpncm91cCAndGVybQorICA6 dmVyc2lvbiAiMjguMSIpCiAKIChkZWZmYWNlIHRlcm0tY29sb3ItZ3JlZW4KLSAgJygodCA6 Zm9yZWdyb3VuZCAiZ3JlZW4zIiA6YmFja2dyb3VuZCAiZ3JlZW4zIikpCisgICcoKHQgOmlu aGVyaXQgYW5zaS1jb2xvci1ncmVlbikpCiAgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGdyZWVu IGNvbG9yIGNvZGUuIgotICA6Z3JvdXAgJ3Rlcm0pCisgIDpncm91cCAndGVybQorICA6dmVy c2lvbiAiMjguMSIpCiAKIChkZWZmYWNlIHRlcm0tY29sb3IteWVsbG93Ci0gICcoKHQgOmZv cmVncm91bmQgInllbGxvdzMiIDpiYWNrZ3JvdW5kICJ5ZWxsb3czIikpCisgICcoKHQgOmlu aGVyaXQgYW5zaS1jb2xvci15ZWxsb3cpKQogICAiRmFjZSB1c2VkIHRvIHJlbmRlciB5ZWxs b3cgY29sb3IgY29kZS4iCi0gIDpncm91cCAndGVybSkKKyAgOmdyb3VwICd0ZXJtCisgIDp2 ZXJzaW9uICIyOC4xIikKIAogKGRlZmZhY2UgdGVybS1jb2xvci1ibHVlCi0gICcoKHQgOmZv cmVncm91bmQgImJsdWUyIiA6YmFja2dyb3VuZCAiYmx1ZTIiKSkKKyAgJygodCA6aW5oZXJp dCBhbnNpLWNvbG9yLWJsdWUpKQogICAiRmFjZSB1c2VkIHRvIHJlbmRlciBibHVlIGNvbG9y IGNvZGUuIgotICA6Z3JvdXAgJ3Rlcm0pCisgIDpncm91cCAndGVybQorICA6dmVyc2lvbiAi MjguMSIpCiAKIChkZWZmYWNlIHRlcm0tY29sb3ItbWFnZW50YQotICAnKCh0IDpmb3JlZ3Jv dW5kICJtYWdlbnRhMyIgOmJhY2tncm91bmQgIm1hZ2VudGEzIikpCisgICcoKHQgOmluaGVy aXQgYW5zaS1jb2xvci1tYWdlbnRhKSkKICAgIkZhY2UgdXNlZCB0byByZW5kZXIgbWFnZW50 YSBjb2xvciBjb2RlLiIKLSAgOmdyb3VwICd0ZXJtKQorICA6Z3JvdXAgJ3Rlcm0KKyAgOnZl cnNpb24gIjI4LjEiKQogCiAoZGVmZmFjZSB0ZXJtLWNvbG9yLWN5YW4KLSAgJygodCA6Zm9y ZWdyb3VuZCAiY3lhbjMiIDpiYWNrZ3JvdW5kICJjeWFuMyIpKQorICAnKCh0IDppbmhlcml0 IGFuc2ktY29sb3ItY3lhbikpCiAgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGN5YW4gY29sb3Ig Y29kZS4iCi0gIDpncm91cCAndGVybSkKKyAgOmdyb3VwICd0ZXJtCisgIDp2ZXJzaW9uICIy OC4xIikKIAogKGRlZmZhY2UgdGVybS1jb2xvci13aGl0ZQotICAnKCh0IDpmb3JlZ3JvdW5k ICJ3aGl0ZSIgOmJhY2tncm91bmQgIndoaXRlIikpCisgICcoKHQgOmluaGVyaXQgYW5zaS1j b2xvci13aGl0ZSkpCiAgICJGYWNlIHVzZWQgdG8gcmVuZGVyIHdoaXRlIGNvbG9yIGNvZGUu IgorICA6Z3JvdXAgJ3Rlcm0KKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSB0ZXJt LWNvbG9yLWJyaWdodC1ibGFjaworICAnKCh0IDppbmhlcml0IGFuc2ktY29sb3ItYnJpZ2h0 LWJsYWNrKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IGJsYWNrIGNvbG9yIGNv ZGUuIgorICA6Z3JvdXAgJ3Rlcm0KKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSB0 ZXJtLWNvbG9yLWJyaWdodC1yZWQKKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLWJyaWdo dC1yZWQpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBicmlnaHQgcmVkIGNvbG9yIGNvZGUu IgorICA6Z3JvdXAgJ3Rlcm0KKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSB0ZXJt LWNvbG9yLWJyaWdodC1ncmVlbgorICAnKCh0IDppbmhlcml0IGFuc2ktY29sb3ItYnJpZ2h0 LWdyZWVuKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IGdyZWVuIGNvbG9yIGNv ZGUuIgorICA6Z3JvdXAgJ3Rlcm0KKyAgOnZlcnNpb24gIjI4LjEiKQorCisoZGVmZmFjZSB0 ZXJtLWNvbG9yLWJyaWdodC15ZWxsb3cKKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLWJy aWdodC15ZWxsb3cpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBicmlnaHQgeWVsbG93IGNv bG9yIGNvZGUuIgogICA6Z3JvdXAgJ3Rlcm0pCiAKKyhkZWZmYWNlIHRlcm0tY29sb3ItYnJp Z2h0LWJsdWUKKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLWJyaWdodC1ibHVlKSkKKyAg IkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IGJsdWUgY29sb3IgY29kZS4iCisgIDpncm91 cCAndGVybQorICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIHRlcm0tY29sb3ItYnJp Z2h0LW1hZ2VudGEKKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLWJyaWdodC1tYWdlbnRh KSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IG1hZ2VudGEgY29sb3IgY29kZS4i CisgIDpncm91cCAndGVybQorICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIHRlcm0t Y29sb3ItYnJpZ2h0LWN5YW4KKyAgJygodCA6aW5oZXJpdCBhbnNpLWNvbG9yLWJyaWdodC1j eWFuKSkKKyAgIkZhY2UgdXNlZCB0byByZW5kZXIgYnJpZ2h0IGN5YW4gY29sb3IgY29kZS4i CisgIDpncm91cCAndGVybQorICA6dmVyc2lvbiAiMjguMSIpCisKKyhkZWZmYWNlIHRlcm0t Y29sb3ItYnJpZ2h0LXdoaXRlCisgICcoKHQgOmluaGVyaXQgYW5zaS1jb2xvci1icmlnaHQt d2hpdGUpKQorICAiRmFjZSB1c2VkIHRvIHJlbmRlciBicmlnaHQgd2hpdGUgY29sb3IgY29k ZS4iCisgIDpncm91cCAndGVybQorICA6dmVyc2lvbiAiMjguMSIpCisKIChkZWZjdXN0b20g dGVybS1idWZmZXItbWF4aW11bS1zaXplIDgxOTIKICAgIlRoZSBtYXhpbXVtIHNpemUgaW4g bGluZXMgZm9yIHRlcm0gYnVmZmVycy4KIFRlcm0gYnVmZmVycyBhcmUgdHJ1bmNhdGVkIGZy b20gdGhlIHRvcCB0byBiZSBubyBncmVhdGVyIHRoYW4gdGhpcyBudW1iZXIuCkBAIC0zMjIz LDYgKzMyODgsMTUgQEAgdGVybS1yZXNldC10ZXJtaW5hbAogICA7OyBGSVhNRTogTm8gaWRl YSB3aHkgdGhpcyBpcyBoZXJlLCBpdCBsb29rcyB3cm9uZy4gIC0tU3RlZgogICAoc2V0cSB0 ZXJtLWFuc2ktZmFjZS1hbHJlYWR5LWRvbmUgbmlsKSkKIAorKGRlZnVuIHRlcm0tLW1heWJl LWJyaWdodGVuLWNvbG9yIChjb2xvciBib2xkKQorICAiUG9zc2libHkgY29udmVydCBDT0xP UiB0byBpdHMgYnJpZ2h0IHZhcmlhbnQuCitDT0xPUiBpcyBhbiBpbmRleCBpbnRvIGBhbnNp LXRlcm0tY29sb3ItdmVjdG9yJy4gIElmIEJPTEQgYW5kCitgYW5zaS1jb2xvci1ib2xkLWlz LWJyaWdodCcgYXJlIG5vbi1uaWwgYW5kIENPTE9SIGlzIGEgcmVndWxhciBjb2xvciwKK3Jl dHVybiB0aGUgYnJpZ2h0IHZlcnNpb24gb2YgQ09MT1I7IG90aGVyd2lzZSwgcmV0dXJuIENP TE9SLiIKKyAgKGlmIChhbmQgYW5zaS1jb2xvci1ib2xkLWlzLWJyaWdodCBib2xkICg8PSAx IGNvbG9yIDgpKQorICAgICAgKCsgY29sb3IgOCkKKyAgICBjb2xvcikpCisKIDs7IE5ldyBm dW5jdGlvbiB0byBkZWFsIHdpdGggYW5zaSBjb2xvcml6ZWQgb3V0cHV0LCBhcyB5b3UgY2Fu IHNlZSB5b3UgY2FuCiA7OyBoYXZlIGFueSBib2xkL3VuZGVybGluZS9mZy9iZy9yZXZlcnNl IGNvbWJpbmF0aW9uLiAtbW0KIApAQCAtMzI2Miw2ICszMzM2LDEwIEBAIHRlcm0taGFuZGxl LWNvbG9ycy1hcnJheQogICAgKChhbmQgKD49IHBhcmFtZXRlciAzMCkgKDw9IHBhcmFtZXRl ciAzNykpCiAgICAgKHNldHEgdGVybS1hbnNpLWN1cnJlbnQtY29sb3IgKC0gcGFyYW1ldGVy IDI5KSkpCiAKKyAgIDs7IEJyaWdodCBmb3JlZ3JvdW5kCisgICAoKGFuZCAoPj0gcGFyYW1l dGVyIDkwKSAoPD0gcGFyYW1ldGVyIDk3KSkKKyAgICAoc2V0cSB0ZXJtLWFuc2ktY3VycmVu dC1jb2xvciAoLSBwYXJhbWV0ZXIgODEpKSkKKwogICAgOzsgUmVzZXQgZm9yZWdyb3VuZAog ICAgKChlcSBwYXJhbWV0ZXIgMzkpCiAgICAgKHNldHEgdGVybS1hbnNpLWN1cnJlbnQtY29s b3IgMCkpCkBAIC0zMjcwLDYgKzMzNDgsMTAgQEAgdGVybS1oYW5kbGUtY29sb3JzLWFycmF5 CiAgICAoKGFuZCAoPj0gcGFyYW1ldGVyIDQwKSAoPD0gcGFyYW1ldGVyIDQ3KSkKICAgICAo c2V0cSB0ZXJtLWFuc2ktY3VycmVudC1iZy1jb2xvciAoLSBwYXJhbWV0ZXIgMzkpKSkKIAor ICAgOzsgQnJpZ2h0IGZvcmVncm91bmQKKyAgICgoYW5kICg+PSBwYXJhbWV0ZXIgMTAwKSAo PD0gcGFyYW1ldGVyIDEwNykpCisgICAgKHNldHEgdGVybS1hbnNpLWN1cnJlbnQtYmctY29s b3IgKC0gcGFyYW1ldGVyIDkxKSkpCisKICAgIDs7IFJlc2V0IGJhY2tncm91bmQKICAgICgo ZXEgcGFyYW1ldGVyIDQ5KQogICAgIChzZXRxIHRlcm0tYW5zaS1jdXJyZW50LWJnLWNvbG9y IDApKQpAQCAtMzI4OCwzNyArMzM3MCw0MyBAQCB0ZXJtLWhhbmRsZS1jb2xvcnMtYXJyYXkK ICAgOzsgICAgICAgICAgdGVybS1hbnNpLWN1cnJlbnQtYmctY29sb3IpCiAKICAgKHVubGVz cyB0ZXJtLWFuc2ktZmFjZS1hbHJlYWR5LWRvbmUKLSAgICAoaWYgdGVybS1hbnNpLWN1cnJl bnQtaW52aXNpYmxlCi0gICAgICAgIChsZXQgKChjb2xvcgotICAgICAgICAgICAgICAgKGlm IHRlcm0tYW5zaS1jdXJyZW50LXJldmVyc2UKLSAgICAgICAgICAgICAgICAgICAoZmFjZS1m b3JlZ3JvdW5kCi0gICAgICAgICAgICAgICAgICAgIChlbHQgYW5zaS10ZXJtLWNvbG9yLXZl Y3RvciB0ZXJtLWFuc2ktY3VycmVudC1jb2xvcikKLSAgICAgICAgICAgICAgICAgICAgbmls ICdkZWZhdWx0KQotICAgICAgICAgICAgICAgICAoZmFjZS1iYWNrZ3JvdW5kCi0gICAgICAg ICAgICAgICAgICAoZWx0IGFuc2ktdGVybS1jb2xvci12ZWN0b3IgdGVybS1hbnNpLWN1cnJl bnQtYmctY29sb3IpCi0gICAgICAgICAgICAgICAgICBuaWwgJ2RlZmF1bHQpKSkpCi0gICAg ICAgICAgKHNldHEgdGVybS1jdXJyZW50LWZhY2UKLSAgICAgICAgICAgICAgICAobGlzdCA6 YmFja2dyb3VuZCBjb2xvcgotICAgICAgICAgICAgICAgICAgICAgIDpmb3JlZ3JvdW5kIGNv bG9yKSkKLSAgICAgICAgICApIDs7IE5vIG5lZWQgdG8gYm90aGVyIHdpdGggYW55dGhpbmcg ZWxzZSBpZiBpdCdzIGludmlzaWJsZS4KLSAgICAgIChzZXRxIHRlcm0tY3VycmVudC1mYWNl Ci0gICAgICAgICAgICAobGlzdCA6Zm9yZWdyb3VuZAotICAgICAgICAgICAgICAgICAgKGZh Y2UtZm9yZWdyb3VuZAotICAgICAgICAgICAgICAgICAgIChlbHQgYW5zaS10ZXJtLWNvbG9y LXZlY3RvciB0ZXJtLWFuc2ktY3VycmVudC1jb2xvcikKLSAgICAgICAgICAgICAgICAgICBu aWwgJ2RlZmF1bHQpCi0gICAgICAgICAgICAgICAgICA6YmFja2dyb3VuZAotICAgICAgICAg ICAgICAgICAgKGZhY2UtYmFja2dyb3VuZAotICAgICAgICAgICAgICAgICAgIChlbHQgYW5z aS10ZXJtLWNvbG9yLXZlY3RvciB0ZXJtLWFuc2ktY3VycmVudC1iZy1jb2xvcikKLSAgICAg ICAgICAgICAgICAgICBuaWwgJ2RlZmF1bHQpCi0gICAgICAgICAgICAgICAgICA6aW52ZXJz ZS12aWRlbyB0ZXJtLWFuc2ktY3VycmVudC1yZXZlcnNlKSkKLQotICAgICAgKHdoZW4gdGVy bS1hbnNpLWN1cnJlbnQtYm9sZAorICAgIChsZXQgKChjdXJyZW50LWNvbG9yICh0ZXJtLS1t YXliZS1icmlnaHRlbi1jb2xvcgorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtLWFu c2ktY3VycmVudC1jb2xvcgorICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtLWFuc2kt Y3VycmVudC1ib2xkKSkKKyAgICAgICAgICAoY3VycmVudC1iZy1jb2xvciAodGVybS0tbWF5 YmUtYnJpZ2h0ZW4tY29sb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVybS1h bnNpLWN1cnJlbnQtYmctY29sb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVy bS1hbnNpLWN1cnJlbnQtYm9sZCkpKQorICAgICAgKGlmIHRlcm0tYW5zaS1jdXJyZW50LWlu dmlzaWJsZQorICAgICAgICAgIChsZXQgKChjb2xvcgorICAgICAgICAgICAgICAgICAoaWYg dGVybS1hbnNpLWN1cnJlbnQtcmV2ZXJzZQorICAgICAgICAgICAgICAgICAgICAgKGZhY2Ut Zm9yZWdyb3VuZAorICAgICAgICAgICAgICAgICAgICAgIChlbHQgYW5zaS10ZXJtLWNvbG9y LXZlY3RvciBjdXJyZW50LWNvbG9yKQorICAgICAgICAgICAgICAgICAgICAgIG5pbCAnZGVm YXVsdCkKKyAgICAgICAgICAgICAgICAgICAoZmFjZS1iYWNrZ3JvdW5kCisgICAgICAgICAg ICAgICAgICAgIChlbHQgYW5zaS10ZXJtLWNvbG9yLXZlY3RvciBjdXJyZW50LWJnLWNvbG9y KQorICAgICAgICAgICAgICAgICAgICBuaWwgJ2RlZmF1bHQpKSkpCisgICAgICAgICAgICAo c2V0cSB0ZXJtLWN1cnJlbnQtZmFjZQorICAgICAgICAgICAgICAgICAgKGxpc3QgOmJhY2tn cm91bmQgY29sb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIDpmb3JlZ3JvdW5kIGNvbG9y KSkKKyAgICAgICAgICAgICkgOzsgTm8gbmVlZCB0byBib3RoZXIgd2l0aCBhbnl0aGluZyBl bHNlIGlmIGl0J3MgaW52aXNpYmxlLgogICAgICAgICAoc2V0cSB0ZXJtLWN1cnJlbnQtZmFj ZQotICAgICAgICAgICAgICBgKCx0ZXJtLWN1cnJlbnQtZmFjZSA6aW5oZXJpdCB0ZXJtLWJv bGQpKSkKKyAgICAgICAgICAgICAgKGxpc3QgOmZvcmVncm91bmQKKyAgICAgICAgICAgICAg ICAgICAgKGZhY2UtZm9yZWdyb3VuZAorICAgICAgICAgICAgICAgICAgICAgKGVsdCBhbnNp LXRlcm0tY29sb3ItdmVjdG9yIGN1cnJlbnQtY29sb3IpCisgICAgICAgICAgICAgICAgICAg ICBuaWwgJ2RlZmF1bHQpCisgICAgICAgICAgICAgICAgICAgIDpiYWNrZ3JvdW5kCisgICAg ICAgICAgICAgICAgICAgIChmYWNlLWJhY2tncm91bmQKKyAgICAgICAgICAgICAgICAgICAg IChlbHQgYW5zaS10ZXJtLWNvbG9yLXZlY3RvciBjdXJyZW50LWJnLWNvbG9yKQorICAgICAg ICAgICAgICAgICAgICAgbmlsICdkZWZhdWx0KQorICAgICAgICAgICAgICAgICAgICA6aW52 ZXJzZS12aWRlbyB0ZXJtLWFuc2ktY3VycmVudC1yZXZlcnNlKSkKKworICAgICAgICAod2hl biB0ZXJtLWFuc2ktY3VycmVudC1ib2xkCisgICAgICAgICAgKHNldHEgdGVybS1jdXJyZW50 LWZhY2UKKyAgICAgICAgICAgICAgICBgKCx0ZXJtLWN1cnJlbnQtZmFjZSA6aW5oZXJpdCB0 ZXJtLWJvbGQpKSkKIAotICAgICAgKHdoZW4gdGVybS1hbnNpLWN1cnJlbnQtdW5kZXJsaW5l Ci0gICAgICAgIChzZXRxIHRlcm0tY3VycmVudC1mYWNlCi0gICAgICAgICAgICAgIGAoLHRl cm0tY3VycmVudC1mYWNlIDppbmhlcml0IHRlcm0tdW5kZXJsaW5lKSkpKSkKKyAgICAgICAg KHdoZW4gdGVybS1hbnNpLWN1cnJlbnQtdW5kZXJsaW5lCisgICAgICAgICAgKHNldHEgdGVy bS1jdXJyZW50LWZhY2UKKyAgICAgICAgICAgICAgICBgKCx0ZXJtLWN1cnJlbnQtZmFjZSA6 aW5oZXJpdCB0ZXJtLXVuZGVybGluZSkpKSkpKQogCiAgIDs7CShtZXNzYWdlICJEZWJ1ZyAl UyIgdGVybS1jdXJyZW50LWZhY2UpCiAgIDs7IEZJWE1FOiBzaG91bGRuJ3Qgd2Ugc2V0IHRl cm0tYW5zaS1mYWNlLWFscmVhZHktZG9uZSB0byB0IGhlcmU/ICAtLVN0ZWYKZGlmZiAtLWdp dCBhL3Rlc3QvbGlzcC90ZXJtLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Rlcm0tdGVzdHMuZWwK aW5kZXggNTBhYzM3MGI1Yi4uOTZiNmQ3MzQ4OCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL3Rl cm0tdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL3Rlcm0tdGVzdHMuZWwKQEAgLTI4LDYgKzI4 LDUxIEBACiAoZGVmdmFyIHRlcm0taGVpZ2h0KSAgICAgICAgICAgICAgICAgICAgOyBOdW1i ZXIgb2YgbGluZXMgaW4gd2luZG93LgogKGRlZnZhciB0ZXJtLXdpZHRoKSAgICAgICAgICAg ICAgICAgICAgIDsgTnVtYmVyIG9mIGNvbHVtbnMgaW4gd2luZG93LgogCisoZGVmdmFyIHll bGxvdy1mZy1wcm9wcworICBgKCA6Zm9yZWdyb3VuZCAsKGZhY2UtZm9yZWdyb3VuZCAndGVy bS1jb2xvci15ZWxsb3cgbmlsICdkZWZhdWx0KQorICAgICA6YmFja2dyb3VuZCAidW5zcGVj aWZpZWQtYmciIDppbnZlcnNlLXZpZGVvIG5pbCkpCisoZGVmdmFyIHllbGxvdy1iZy1wcm9w cworICBgKCA6Zm9yZWdyb3VuZCAidW5zcGVjaWZpZWQtZmciCisgICAgIDpiYWNrZ3JvdW5k ICwoZmFjZS1iYWNrZ3JvdW5kICd0ZXJtLWNvbG9yLXllbGxvdyBuaWwgJ2RlZmF1bHQpCisg ICAgIDppbnZlcnNlLXZpZGVvIG5pbCkpCisoZGVmdmFyIGJyaWdodC15ZWxsb3ctZmctcHJv cHMKKyAgYCggOmZvcmVncm91bmQgLChmYWNlLWZvcmVncm91bmQgJ3Rlcm0tY29sb3ItYnJp Z2h0LXllbGxvdyBuaWwgJ2RlZmF1bHQpCisgICAgIDpiYWNrZ3JvdW5kICJ1bnNwZWNpZmll ZC1iZyIgOmludmVyc2UtdmlkZW8gbmlsKSkKKyhkZWZ2YXIgYnJpZ2h0LXllbGxvdy1iZy1w cm9wcworICBgKCA6Zm9yZWdyb3VuZCAidW5zcGVjaWZpZWQtZmciCisgICAgIDpiYWNrZ3Jv dW5kICwoZmFjZS1iYWNrZ3JvdW5kICd0ZXJtLWNvbG9yLWJyaWdodC15ZWxsb3cgbmlsICdk ZWZhdWx0KQorICAgICA6aW52ZXJzZS12aWRlbyBuaWwpKQorCisoZGVmdmFyIGFuc2ktdGVz dC1zdHJpbmdzCisgIGAoKCJcZVszM21IZWxsbyBXb3JsZFxlWzBtIgorICAgICAsKHByb3Bl cnRpemUgIkhlbGxvIFdvcmxkIiAnZm9udC1sb2NrLWZhY2UgeWVsbG93LWZnLXByb3BzKSkK KyAgICAoIlxlWzQzbUhlbGxvIFdvcmxkXGVbMG0iCisgICAgICwocHJvcGVydGl6ZSAiSGVs bG8gV29ybGQiICdmb250LWxvY2stZmFjZSB5ZWxsb3ctYmctcHJvcHMpKQorICAgICgiXGVb OTNtSGVsbG8gV29ybGRcZVswbSIKKyAgICAgLChwcm9wZXJ0aXplICJIZWxsbyBXb3JsZCIg J2ZvbnQtbG9jay1mYWNlIGJyaWdodC15ZWxsb3ctZmctcHJvcHMpKQorICAgICgiXGVbMTAz bUhlbGxvIFdvcmxkXGVbMG0iCisgICAgICwocHJvcGVydGl6ZSAiSGVsbG8gV29ybGQiICdm b250LWxvY2stZmFjZSBicmlnaHQteWVsbG93LWJnLXByb3BzKSkKKyAgICAoIlxlWzE7MzNt SGVsbG8gV29ybGRcZVswbSIKKyAgICAgLChwcm9wZXJ0aXplICJIZWxsbyBXb3JsZCIgJ2Zv bnQtbG9jay1mYWNlCisgICAgICAgICAgICAgICAgICBgKCx5ZWxsb3ctZmctcHJvcHMgOmlu aGVyaXQgdGVybS1ib2xkKSkKKyAgICAgLChwcm9wZXJ0aXplICJIZWxsbyBXb3JsZCIgJ2Zv bnQtbG9jay1mYWNlCisgICAgICAgICAgICAgICAgICBgKCxicmlnaHQteWVsbG93LWZnLXBy b3BzIDppbmhlcml0IHRlcm0tYm9sZCkpKQorICAgICgiXGVbMzM7MW1IZWxsbyBXb3JsZFxl WzBtIgorICAgICAsKHByb3BlcnRpemUgIkhlbGxvIFdvcmxkIiAnZm9udC1sb2NrLWZhY2UK KyAgICAgICAgICAgICAgICAgIGAoLHllbGxvdy1mZy1wcm9wcyA6aW5oZXJpdCB0ZXJtLWJv bGQpKQorICAgICAsKHByb3BlcnRpemUgIkhlbGxvIFdvcmxkIiAnZm9udC1sb2NrLWZhY2UK KyAgICAgICAgICAgICAgICAgIGAoLGJyaWdodC15ZWxsb3ctZmctcHJvcHMgOmluaGVyaXQg dGVybS1ib2xkKSkpCisgICAgKCJcZVsxbVxlWzMzbUhlbGxvIFdvcmxkXGVbMG0iCisgICAg ICwocHJvcGVydGl6ZSAiSGVsbG8gV29ybGQiICdmb250LWxvY2stZmFjZQorICAgICAgICAg ICAgICAgICAgYCgseWVsbG93LWZnLXByb3BzIDppbmhlcml0IHRlcm0tYm9sZCkpCisgICAg ICwocHJvcGVydGl6ZSAiSGVsbG8gV29ybGQiICdmb250LWxvY2stZmFjZQorICAgICAgICAg ICAgICAgICAgYCgsYnJpZ2h0LXllbGxvdy1mZy1wcm9wcyA6aW5oZXJpdCB0ZXJtLWJvbGQp KSkKKyAgICAoIlxlWzMzbVxlWzFtSGVsbG8gV29ybGRcZVswbSIKKyAgICAgLChwcm9wZXJ0 aXplICJIZWxsbyBXb3JsZCIgJ2ZvbnQtbG9jay1mYWNlCisgICAgICAgICAgICAgICAgICBg KCx5ZWxsb3ctZmctcHJvcHMgOmluaGVyaXQgdGVybS1ib2xkKSkKKyAgICAgLChwcm9wZXJ0 aXplICJIZWxsbyBXb3JsZCIgJ2ZvbnQtbG9jay1mYWNlCisgICAgICAgICAgICAgICAgICBg KCxicmlnaHQteWVsbG93LWZnLXByb3BzIDppbmhlcml0IHRlcm0tYm9sZCkpKSkpCisKIChk ZWZ1biB0ZXJtLXRlc3Qtc2NyZWVuLWZyb20taW5wdXQgKHdpZHRoIGhlaWdodCBpbnB1dCAm b3B0aW9uYWwgcmV0dXJuLXZhcikKICAgKHdpdGgtdGVtcC1idWZmZXIKICAgICAodGVybS1t b2RlKQpAQCAtNDgsNyArOTMsNyBAQCB0ZXJtLXRlc3Qtc2NyZWVuLWZyb20taW5wdXQKICAg ICAgICAgICAgICAgICAobWFwYyAobGFtYmRhIChpbnB1dCkgKHRlcm0tZW11bGF0ZS10ZXJt aW5hbCBwcm9jIGlucHV0KSkgaW5wdXQpCiAgICAgICAgICAgICAgICh0ZXJtLWVtdWxhdGUt dGVybWluYWwgcHJvYyBpbnB1dCkpCiAgICAgICAoaWYgcmV0dXJuLXZhciAoYnVmZmVyLWxv Y2FsLXZhbHVlIHJldHVybi12YXIgKGN1cnJlbnQtYnVmZmVyKSkKLSAgICAgICAgKGJ1ZmZl ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkp CisgICAgICAgIChidWZmZXItc3Vic3RyaW5nIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkp KSkKIAogKGVydC1kZWZ0ZXN0IHRlcm0tc2ltcGxlLWxpbmVzICgpCiAgIChza2lwLXVubGVz cyAobm90IChtZW1xIHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1kb3MpKSkpCkBAIC03 Nyw2ICsxMjIsMjQgQEAgdGVybS1saW5lLXdyYXAKICAgICAgICAgICAgKHRlcm0tdGVzdC1z Y3JlZW4tZnJvbS1pbnB1dCA0MCAxMiAobGV0ICgoc3RyIChtYWtlLXN0cmluZyAzMCA/YSkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxp c3Qgc3RyIHN0cikpKSkpKQogCisoZXJ0LWRlZnRlc3QgdGVybS1jb2xvcnMgKCkKKyAgKHNr aXAtdW5sZXNzIChub3QgKG1lbXEgc3lzdGVtLXR5cGUgJyh3aW5kb3dzLW50IG1zLWRvcykp KSkKKyAgKHBjYXNlLWRvbGlzdCAoYCgsc3RyICxleHBlY3RlZCkgYW5zaS10ZXN0LXN0cmlu Z3MpCisgICAgKGxldCAoKHJlc3VsdCAodGVybS10ZXN0LXNjcmVlbi1mcm9tLWlucHV0IDQw IDEyIHN0cikpKQorICAgICAgKHNob3VsZCAoZXF1YWwgcmVzdWx0IGV4cGVjdGVkKSkKKyAg ICAgIChzaG91bGQgKGVxdWFsICh0ZXh0LXByb3BlcnRpZXMtYXQgMCByZXN1bHQpCisgICAg ICAgICAgICAgICAgICAgICAodGV4dC1wcm9wZXJ0aWVzLWF0IDAgZXhwZWN0ZWQpKSkpKSkK KworKGVydC1kZWZ0ZXN0IHRlcm0tY29sb3JzLWJvbGQtaXMtYnJpZ2h0ICgpCisgIChza2lw LXVubGVzcyAobm90IChtZW1xIHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1kb3MpKSkp CisgIChsZXQgKChhbnNpLWNvbG9yLWJvbGQtaXMtYnJpZ2h0IHQpKQorICAgIChwY2FzZS1k b2xpc3QgKGAoLHN0ciAsZXhwZWN0ZWQgLGJyaWdodC1leHBlY3RlZCkgYW5zaS10ZXN0LXN0 cmluZ3MpCisgICAgICAobGV0ICgoZXhwZWN0ZWQgKG9yIGJyaWdodC1leHBlY3RlZCBleHBl Y3RlZCkpCisgICAgICAgICAgICAocmVzdWx0ICh0ZXJtLXRlc3Qtc2NyZWVuLWZyb20taW5w dXQgNDAgMTIgc3RyKSkpCisgICAgICAgIChzaG91bGQgKGVxdWFsIHJlc3VsdCBleHBlY3Rl ZCkpCisgICAgICAgIChzaG91bGQgKGVxdWFsICh0ZXh0LXByb3BlcnRpZXMtYXQgMCByZXN1 bHQpCisgICAgICAgICAgICAgICAgICAgICAgICh0ZXh0LXByb3BlcnRpZXMtYXQgMCBleHBl Y3RlZCkpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IHRlcm0tY3Vyc29yLW1vdmVtZW50ICgpCiAg IChza2lwLXVubGVzcyAobm90IChtZW1xIHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1k b3MpKSkpCiAgIDs7IEFic29sdXRlIHBvc2l0aW9uaW5nLgotLSAKMi4yNS4xCgo= --------------B46408E9A6DA1B106410C7A4--