From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vladimir Kazanov Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] User-defined fringe tooltips (a request for review) Date: Mon, 8 Apr 2024 15:41:38 +0100 Message-ID: References: <83sf3xgimq.fsf@gnu.org> <83plyzfoe4.fsf@gnu.org> <83plyxca0t.fsf@gnu.org> <8334vrczig.fsf@gnu.org> <86frwejkxe.fsf@gnu.org> <86il12bxwj.fsf@gnu.org> <86y19pz6j9.fsf@gnu.org> <86le5pyq1p.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000004b137b061596ce85" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9870"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 08 16:42:54 2024 Return-path: Envelope-to: ged-emacs-devel@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 1rtqD0-0002S9-6P for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Apr 2024 16:42:54 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rtqCC-0002zf-DU; Mon, 08 Apr 2024 10:42:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rtqC8-0002zE-Fe for emacs-devel@gnu.org; Mon, 08 Apr 2024 10:42:01 -0400 Original-Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rtqC3-0007DS-07; Mon, 08 Apr 2024 10:41:58 -0400 Original-Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2d87660d5c9so21905111fa.2; Mon, 08 Apr 2024 07:41:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712587311; x=1713192111; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=SehPE6xM1LgeCBsH2lkMWkwDQT0GNddT0zQ3BuYOSps=; b=MsYKreibXJqbjAGZJOAuV6QhwrNgtk+8erTUd1x+O0QsTKzS/7AyLl4Ib0FwL1CTqo wk4ZKzmERGEvcu5BlMYJNHyQ0KyOm1Z8nVVUBs5jrWUd252uL0VPGgZqzWIp4R12q1Gp derz7a2a7IajGOC/zm/8y0pkExSSigBB1MYuDz15LyeX0pD5EZfB3LfHVfyHeZImkFDg 1npLhUbeadgZ28wOVUgM37LWpARkOtom0BfZRM/7FGzDIJDHy+3DMVY90hzcYz+dTkZg pCtXeWGpzMBwc8k3FdH2itpi4mP4UUM2Iw6muA3T/0OOP7WV4dJh/eicFtK8lOHijHgL r5sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712587311; x=1713192111; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=SehPE6xM1LgeCBsH2lkMWkwDQT0GNddT0zQ3BuYOSps=; b=DP58k55WwlXnYb93Qjb9DTRQ8iwfb6s54IvPaBSsdrCvJcWbjvCdL7nPB+3MExsuOV W+HiYVOk+mneFxuh0sLWeg1uZCp4NEszzSJrr5ELGwpdNqNZNaPwI/vZfcDSg6hqyBXD FkeW0/yi/406vzotMwpGWoW3A8QjVHz3CRVTk3qTU0o2y+l/lqPx1oVtId5GkfX80fcH F/lwZlnA7FToIMWRGNU8O/yBFc1bx3YQAjGrY59f9OdrMJutmr0ypcJ7PifzYIitnXhX 2bJMO0n1+n4Mhhn92puxQ670JaIpZT+4OEpBDtAR+fs9CrrPTHd3Xyk7kx4a7AfcKIaI rPug== X-Gm-Message-State: AOJu0YzLccQOV3hjRxtXHcjMKPYSrE4oyM9GWLBGNZIb+9fF0TQ7BCSM WnifZ/qDpdD0r7j60jS3G5h3kdn8l65Y0i1riZvoD/JJrPxF9aNFJ9uJsMlmp3LRGv7G8wDbjYi M3sq3M3t8EwG6IbuXALc5HRGv8GZ79jA= X-Google-Smtp-Source: AGHT+IFCT7G0myWrJfmuniP5cnhz+WwKs3TF/Ks2crQxs+Hus47qyBlXbhZ7Mqrf5RSKAjmMmGFiuAbLV5klX4HS/YY= X-Received: by 2002:a2e:3017:0:b0:2d8:7293:631e with SMTP id w23-20020a2e3017000000b002d87293631emr5580739ljw.48.1712587310561; Mon, 08 Apr 2024 07:41:50 -0700 (PDT) In-Reply-To: <86le5pyq1p.fsf@gnu.org> Received-SPF: pass client-ip=2a00:1450:4864:20::230; envelope-from=vekazanov@gmail.com; helo=mail-lj1-x230.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:317610 Archived-At: --0000000000004b137b061596ce85 Content-Type: text/plain; charset="UTF-8" Hi Eli, Here is the v4 patch. As we discussed, this is option 3 i.e., looking up properties in visible text only. In addition to the implementation, I've fixed the docs, NEWS and TODO files. Thanks -- Regards, Vladimir Kazanov --0000000000004b137b061596ce85 Content-Type: text/x-patch; charset="US-ASCII"; name="v4-0001-Tooltips-for-user-defined-fringe-indicators.patch" Content-Disposition: attachment; filename="v4-0001-Tooltips-for-user-defined-fringe-indicators.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lur26tz10 RnJvbSBlOTk4NGE4NTc5YmI3NDFjM2UzN2UxZWI3OTQxZmYzM2I1M2RmMDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBTdW4sIDI0IERlYyAyMDIzIDExOjEzOjEwICswMDAwClN1YmplY3Q6IFtQQVRDSCB2 NF0gVG9vbHRpcHMgZm9yIHVzZXItZGVmaW5lZCBmcmluZ2UgaW5kaWNhdG9ycwoKLS0tCiBkb2Mv bGlzcHJlZi9kaXNwbGF5LnRleGkgfCAgNCArKysKIGRvYy9saXNwcmVmL3RleHQudGV4aSAgICB8 ICA5ICsrKysrKwogZXRjL05FV1MgICAgICAgICAgICAgICAgIHwgIDYgKysrKwogZXRjL1RPRE8g ICAgICAgICAgICAgICAgIHwgIDQgLS0tCiBzcmMvZnJhbWUuYyAgICAgICAgICAgICAgfCAgMiAr Kwogc3JjL3hkaXNwLmMgICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLQogNiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aSBiL2RvYy9s aXNwcmVmL2Rpc3BsYXkudGV4aQppbmRleCBmODJjMmZhZDE0ZC4uZmQwODMwODNmZDIgMTAwNjQ0 Ci0tLSBhL2RvYy9saXNwcmVmL2Rpc3BsYXkudGV4aQorKysgYi9kb2MvbGlzcHJlZi9kaXNwbGF5 LnRleGkKQEAgLTU1MDEsNiArNTUwMSwxMCBAQCBPdGhlciBEaXNwbGF5IFNwZWNzCiBjb2xvcnMg YXJlIHRvIGJlIHVzZWQgZm9yIHRoZSBiaXRtYXAgZGlzcGxheS4gIEB4cmVme0ZyaW5nZSBCaXRt YXBzfSwKIGZvciB0aGUgZGV0YWlscy4KCitJdCBhbHNvIHBvc3NpYmxlIHRvIGFkZCBjb250ZXh0 IGhlbHAgZm9yIGZyaW5nZSBiaXRtYXBzIHRocm91Z2ggdGhlCitAY29kZXtzaG93LWhlbHAtZnVu Y3Rpb259IG1lY2hhbmlzbSBieSB1c2luZyBAY29kZXtsZWZ0LWZyaW5nZS1oZWxwfSBvcgorQGNv ZGV7cmlnaHQtZnJpbmdlLWhlbHB9IHRleHQgcHJvcGVydGllcyAoQHB4cmVme1NwZWNpYWwgUHJv cGVydGllc30pLgorCiBAaXRlbSAoc3BhY2Utd2lkdGggQHZhcntmYWN0b3J9KQogVGhpcyBkaXNw bGF5IHNwZWNpZmljYXRpb24gYWZmZWN0cyBhbGwgdGhlIHNwYWNlIGNoYXJhY3RlcnMgd2l0aGlu IHRoZQogdGV4dCB0aGF0IGhhcyB0aGUgc3BlY2lmaWNhdGlvbi4gIEl0IGRpc3BsYXlzIGFsbCBv ZiB0aGVzZSBzcGFjZXMKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL3RleHQudGV4aSBiL2RvYy9s aXNwcmVmL3RleHQudGV4aQppbmRleCAxOGYwZWU4OGZlNS4uM2RiODJkZjQ5YjMgMTAwNjQ0Ci0t LSBhL2RvYy9saXNwcmVmL3RleHQudGV4aQorKysgYi9kb2MvbGlzcHJlZi90ZXh0LnRleGkKQEAg LTM2NjMsNiArMzY2MywxNSBAQCBTcGVjaWFsIFByb3BlcnRpZXMKIGlzIGRpc3BsYXllZCBhcy1p cyBieSBAY29kZXtzaG93LWhlbHAtZnVuY3Rpb259LCB3aXRob3V0IGJlaW5nIHBhc3NlZAogdGhy b3VnaCBAY29kZXtzdWJzdGl0dXRlLWNvbW1hbmQta2V5c30uCgorQGl0ZW0gbGVmdC1mcmluZ2Ut aGVscAorQGl0ZW14IHJpZ2h0LWZyaW5nZS1oZWxwCitAY2luZGV4IGhlbHAtZWNobyB0ZXh0IG9u IGZyaW5nZXMKK0lmIGFueSB2aXNpYmxlIHRleHQgb2YgYSBidWZmZXIgbGluZSBoYXMgQGNvZGV7 bGVmdC1mcmluZ2UtaGVscH0gb3IKK0Bjb2Rle3JpZ2h0LWZyaW5nZS1oZWxwfSBzdHJpbmcgdGV4 dCBwcm9wZXJ0eSBkZWZpbmVkIG9uIGl0LCB0aGVuIHRoZQorc3RyaW5nIHdpbGwgYmUgZGlzcGxh eWVkIGZvciBhIGNvcnJlc3BvbmRpbmcgbGluZSdzIGZyaW5nZSB0aHJvdWdoCitAY29kZXtzaG93 LWhlbHAtZnVuY3Rpb259IChAcHhyZWZ7SGVscCBkaXNwbGF5fSkuICBUaGlzIGlzIHVzZWZ1bCB3 aGVuCit1c2VkIHRvZ2V0aGVyIHdpdGggZnJpbmdlIGN1cnNvcnMgYW5kIGJpdG1hcHMgKEBweHJl ZntGcmluZ2VzfSkuCisKIEBpdGVtIGtleW1hcAogQGNpbmRleCBrZXltYXAgb2YgY2hhcmFjdGVy CiBAa2luZGV4IGtleW1hcCBAcnsodGV4dCBwcm9wZXJ0eSl9CmRpZmYgLS1naXQgYS9ldGMvTkVX UyBiL2V0Yy9ORVdTCmluZGV4IDMyY2VjODJmOTcwLi4zOGZiOTgxOTcxNCAxMDA2NDQKLS0tIGEv ZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAgLTE4MTUsNiArMTgxNSwxMiBAQCB0aGUgaGFuZGxl ciBjb2RlIHdpdGhvdXQgdW53aW5kaW5nIHRoZSBzdGFjaywgc3VjaCB0aGF0IHdlIGNhbiByZWNv cmQKIHRoZSBiYWNrdHJhY2UgYW5kIG90aGVyIGR5bmFtaWMgc3RhdGUgYXQgdGhlIHBvaW50IG9m IHRoZSBlcnJvci4gIFNlZQogdGhlIEluZm8gbm9kZSAiKGVsaXNwKSBIYW5kbGluZyBFcnJvcnMi LgoKKysrKworKiogVG9vbHRpcHMgb24gZnJpbmdlcy4KK0l0IGlzIG5vdyBwb3NzaWJsZSB0byBw cm92aWRlIHRvb2x0aXBzIG9uIGZyaW5nZXMgYnkgYWRkaW5nIHNwZWNpYWwgdGV4dAorcHJvcGVy dGllcy4gIFNlZSB0aGUgIlNwZWNpYWwgUHJvcGVydGllcyIgSW5mbyBub2RlIGluIHRoZSBFbWFj cyBMaXNwCitSZWZlcmVuY2UgTWFudWFsLgorCiArKysKICoqIE5ldyAncG9wLXVwLWZyYW1lcycg YWN0aW9uIGFsaXN0IGVudHJ5IGZvciAnZGlzcGxheS1idWZmZXInLgogVGhpcyBoYXMgdGhlIHNh bWUgZWZmZWN0IGFzIHRoZSB2YXJpYWJsZSBvZiB0aGUgc2FtZSBuYW1lIGFuZCB0YWtlcwpkaWZm IC0tZ2l0IGEvZXRjL1RPRE8gYi9ldGMvVE9ETwppbmRleCA1MmM3N2NjYzI4ZC4uMjFiNTA0YWQx OGIgMTAwNjQ0Ci0tLSBhL2V0Yy9UT0RPCisrKyBiL2V0Yy9UT0RPCkBAIC0xNzIsMTAgKzE3Miw2 IEBAIENoYW5nZSB0aGVtIHRvIHVzZSByZXBvcnQtZW1hY3MtYnVnLgogKioqKiBsbS1yZXBvcnQt YnVnCiAqKioqIHRyYW1wLWJ1ZwogKioqKiBjLXN1Ym1pdC1idWctcmVwb3J0Ci0KLSoqIEFsbG93 IGZyaW5nZSBpbmRpY2F0b3JzIHRvIGRpc3BsYXkgYSB0b29sdGlwCi1Qcm92aWRlIGEgaGVscC1l Y2hvIHByb3BlcnR5PwotCiAqKiBBZGQgYSBkZWZjdXN0b20gdGhhdCBzdXBwbGllcyBhIGZ1bmN0 aW9uIHRvIG5hbWUgbnVtZXJpYyBiYWNrdXAgZmlsZXMKIExpa2UgJ21ha2UtYmFja3VwLWZpbGUt bmFtZS1mdW5jdGlvbicgZm9yIG5vbi1udW1lcmljIGJhY2t1cCBmaWxlcy4KCmRpZmYgLS1naXQg YS9zcmMvZnJhbWUuYyBiL3NyYy9mcmFtZS5jCmluZGV4IGFiZDZlZjAwOTAxLi5mZjk5YjAzNTNh ZiAxMDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmMKKysrIGIvc3JjL2ZyYW1lLmMKQEAgLTYzODMsNiAr NjM4Myw3IEBAIHN5bXNfb2ZfZnJhbWUgKHZvaWQpCiAgIERFRlNZTSAoUWNoaWxkX2ZyYW1lX2Jv cmRlcl93aWR0aCwgImNoaWxkLWZyYW1lLWJvcmRlci13aWR0aCIpOwogICBERUZTWU0gKFFpbnRl cm5hbF9ib3JkZXJfd2lkdGgsICJpbnRlcm5hbC1ib3JkZXItd2lkdGgiKTsKICAgREVGU1lNIChR bGVmdF9mcmluZ2UsICJsZWZ0LWZyaW5nZSIpOworICBERUZTWU0gKFFsZWZ0X2ZyaW5nZV9oZWxw LCAibGVmdC1mcmluZ2UtaGVscCIpOwogICBERUZTWU0gKFFsaW5lX3NwYWNpbmcsICJsaW5lLXNw YWNpbmciKTsKICAgREVGU1lNIChRbWVudV9iYXJfbGluZXMsICJtZW51LWJhci1saW5lcyIpOwog ICBERUZTWU0gKFF0YWJfYmFyX2xpbmVzLCAidGFiLWJhci1saW5lcyIpOwpAQCAtNjM5MCw2ICs2 MzkxLDcgQEAgc3ltc19vZl9mcmFtZSAodm9pZCkKICAgREVGU1lNIChRbmFtZSwgIm5hbWUiKTsK ICAgREVGU1lNIChRcmlnaHRfZGl2aWRlcl93aWR0aCwgInJpZ2h0LWRpdmlkZXItd2lkdGgiKTsK ICAgREVGU1lNIChRcmlnaHRfZnJpbmdlLCAicmlnaHQtZnJpbmdlIik7CisgIERFRlNZTSAoUXJp Z2h0X2ZyaW5nZV9oZWxwLCAicmlnaHQtZnJpbmdlLWhlbHAiKTsKICAgREVGU1lNIChRc2NyZWVu X2dhbW1hLCAic2NyZWVuLWdhbW1hIik7CiAgIERFRlNZTSAoUXNjcm9sbF9iYXJfYmFja2dyb3Vu ZCwgInNjcm9sbC1iYXItYmFja2dyb3VuZCIpOwogICBERUZTWU0gKFFzY3JvbGxfYmFyX2ZvcmVn cm91bmQsICJzY3JvbGwtYmFyLWZvcmVncm91bmQiKTsKZGlmZiAtLWdpdCBhL3NyYy94ZGlzcC5j IGIvc3JjL3hkaXNwLmMKaW5kZXggMTQwZDcxMTI5ZjMuLmI0ZDU3YjViNmYyIDEwMDY0NAotLS0g YS9zcmMveGRpc3AuYworKysgYi9zcmMveGRpc3AuYwpAQCAtMzU3MzAsNiArMzU3MzAsNTkgQEAg bm90ZV9tb2RlX2xpbmVfb3JfbWFyZ2luX2hpZ2hsaWdodCAoTGlzcF9PYmplY3Qgd2luZG93LCBp bnQgeCwgaW50IHksCiB9CgoKKy8qIFRha2UgcHJvcGVyIGFjdGlvbiB3aGVuIG1vdXNlIGhhcyBt b3ZlZCB0byB0aGUgd2luZG93IFdJTkRPVywgd2l0aAorICAgd2luZG93LWxvY2FsIHgtcG9zaXRp b24gWCBhbmQgeS1wb3NpdGlvbiBZLiBUaGlzIGlzIG9ubHkgdXNlZCBmb3IKKyAgIGRpc3BsYXlp bmcgdXNlci1kZWZpbmVkIGZyaW5nZSBpbmRpY2F0b3IgaGVscC1lY2hvIG1lc3NhZ2VzLiAgKi8K Kworc3RhdGljIHZvaWQKK25vdGVfZnJpbmdlX2hpZ2hsaWdodCAoTGlzcF9PYmplY3Qgd2luZG93 LCBpbnQgeCwgaW50IHksCisJCSAgICAgICBlbnVtIHdpbmRvd19wYXJ0IHBhcnQpCit7CisgIGlm ICghTklMUCAoaGVscF9lY2hvX3N0cmluZykpCisgICAgcmV0dXJuOworCisgIC8qIEZpbmQgYSBt ZXNzYWdlIHRvIGRpc3BsYXkgdGhyb3VnaCB0aGUgaGVscC1lY2hvIG1lY2hhbmlzbSB3aGVuZXZl cgorICAgICB0aGUgbW91c2UgaG92ZXJzIG92ZXIgYSBmcmluZ2UgaW5kaWNhdG9yLiAgQm90aCB0 ZXh0IHByb3BlcnRpZXMgYW5kCisgICAgIG92ZXJsYXlzIGhhdmUgdG8gYmUgY2hlY2tlZC4gICov CisKKyAgLyogQ2hlY2sgdGhlIHRleHQgcHJvcGVydHkgc3ltYm9sIHRvIHVzZS4gICovCisgIExp c3BfT2JqZWN0IHN5bTsKKyAgaWYgKHBhcnQgPT0gT05fTEVGVF9GUklOR0UpCisgICAgc3ltID0g UWxlZnRfZnJpbmdlX2hlbHA7CisgIGVsc2UKKyAgICBzeW0gPSBRcmlnaHRfZnJpbmdlX2hlbHA7 CisKKyAgLyogVHJhbnNsYXRlIHdpbmRvd3MgY29vcmRpbmF0ZXMgaW50byBhIHZlcnRpY2FsIHdp bmRvdyBwb3NpdGlvbi4gICovCisgIGludCBocG9zLCB2cG9zLCBhcmVhOworICBzdHJ1Y3Qgd2lu ZG93ICp3ID0gWFdJTkRPVyAod2luZG93KTsKKyAgeF95X3RvX2hwb3NfdnBvcyAodywgeCwgeSwg Jmhwb3MsICZ2cG9zLCAwLCAwLCAmYXJlYSk7CisKKyAgLyogR2V0IHRvIHRoZSBmaXJzdCBnbHlw aCBvZiBhIHRleHQgcm93IGJhc2VkIG9uIHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbgorICAgICBvZiB0 aGUgZnJpbmdlLiAgKi8KKyAgc3RydWN0IGdseXBoICpnbHlwaCA9IE1BVFJJWF9ST1dfR0xZUEhf U1RBUlQody0+Y3VycmVudF9tYXRyaXgsIHZwb3MpOworICBpbnQgZ2x5cGhfbnVtID0gTUFUUklY X1JPV19VU0VEKHctPmN1cnJlbnRfbWF0cml4LCB2cG9zKTsKKworICAvKiBDaGVjayBhbGwgZ2x5 cGhzIHdoaWxlIGxvb2tpbmcgZm9yIGZyaW5nZSB0b29sdGlwcy4gICovCisKKyAgLyogTk9URTog aXRlcmF0aW5nIG92ZXIgZ2x5cGhzIGNhbiBvbmx5IGZpbmQgdGV4dCBwcm9wZXJ0aWVzIGNvbWlu ZworICAgICBmcm9tIHZpc2libGUgdGV4dC4gIFRoaXMgbWVhbnMgdGhhdCB6ZXJvLWxlbmd0aCBv dmVybGF5cyBhbmQKKyAgICAgaW52aXNpYmlsZSB0ZXh0IGFyZSBOT1QgaW5zcGVjdGVkLiAgKi8K KyAgZm9yICg7Z2x5cGhfbnVtOyBnbHlwaF9udW0tLSwgZ2x5cGgrKykKKyAgICB7CisgICAgICBM aXNwX09iamVjdCBwb3MgPSBtYWtlX2ZpeG51bShnbHlwaC0+Y2hhcnBvcyk7CisgICAgICBMaXNw X09iamVjdCBoZWxwX2VjaG8gPSBRbmlsOworCisgICAgICBpZiAoU1RSSU5HUChnbHlwaC0+b2Jq ZWN0KSB8fCBCVUZGRVJQKGdseXBoLT5vYmplY3QpKQorCWhlbHBfZWNobyA9IGdldF9jaGFyX3By b3BlcnR5X2FuZF9vdmVybGF5IChwb3MsIHN5bSwgZ2x5cGgtPm9iamVjdCwgTlVMTCk7CisKKyAg ICAgIGlmIChTVFJJTkdQIChoZWxwX2VjaG8pKQorCXsKKwkgIGhlbHBfZWNob19zdHJpbmcgPSBo ZWxwX2VjaG87CisJICBicmVhazsKKwl9CisgICAgfQorfQorCiAvKiBFWFBPUlQ6CiAgICBUYWtl IHByb3BlciBhY3Rpb24gd2hlbiB0aGUgbW91c2UgaGFzIG1vdmVkIHRvIHBvc2l0aW9uIFgsIFkg b24KICAgIGZyYW1lIEYgd2l0aCByZWdhcmRzIHRvIGhpZ2hsaWdodGluZyBwb3J0aW9ucyBvZiBk aXNwbGF5IHRoYXQgaGF2ZQpAQCAtMzU5NTcsOCArMzYwMTAsMTIgQEAgbm90ZV9tb3VzZV9oaWdo bGlnaHQgKHN0cnVjdCBmcmFtZSAqZiwgaW50IHgsIGludCB5KQogICAgICAgfQogICAgIGVsc2UK ICAgICAgIGN1cnNvciA9IEZSQU1FX09VVFBVVF9EQVRBIChmKS0+bm9udGV4dF9jdXJzb3I7Ci0g IGVsc2UgaWYgKHBhcnQgPT0gT05fTEVGVF9GUklOR0UgfHwgcGFydCA9PSBPTl9SSUdIVF9GUklO R0UKLQkgICB8fCBwYXJ0ID09IE9OX1ZFUlRJQ0FMX1NDUk9MTF9CQVIKKyAgZWxzZSBpZiAocGFy dCA9PSBPTl9MRUZUX0ZSSU5HRSB8fCBwYXJ0ID09IE9OX1JJR0hUX0ZSSU5HRSkKKyAgICB7Cisg ICAgICBjdXJzb3IgPSBGUkFNRV9PVVRQVVRfREFUQSAoZiktPm5vbnRleHRfY3Vyc29yOworICAg ICAgbm90ZV9mcmluZ2VfaGlnaGxpZ2h0ICh3aW5kb3csIHgsIHksIHBhcnQpOworICAgIH0KKyAg ZWxzZSBpZiAocGFydCA9PSBPTl9WRVJUSUNBTF9TQ1JPTExfQkFSCiAJICAgfHwgcGFydCA9PSBP Tl9IT1JJWk9OVEFMX1NDUk9MTF9CQVIpCiAgICAgY3Vyc29yID0gRlJBTUVfT1VUUFVUX0RBVEEg KGYpLT5ub250ZXh0X2N1cnNvcjsKICAgZWxzZQotLQoyLjM0LjEK --0000000000004b137b061596ce85--