From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Keith David Bershatsky Newsgroups: gmane.emacs.devel Subject: Re: Universal functions to manage multiple window caches. Date: Fri, 19 Apr 2019 23:58:27 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Fri_Apr_19_23:58:27_2019-1" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="138267"; mail-complaints-to="usenet@blaine.gmane.org" Cc: emacs-devel@gnu.org To: Alex Gramiak Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 20 08:59:25 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHjy8-000ZlL-3g for ged-emacs-devel@m.gmane.org; Sat, 20 Apr 2019 08:59:24 +0200 Original-Received: from localhost ([127.0.0.1]:37749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHjy7-0001hj-48 for ged-emacs-devel@m.gmane.org; Sat, 20 Apr 2019 02:59:23 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60164) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHjxS-0001hG-Eg for emacs-devel@gnu.org; Sat, 20 Apr 2019 02:58:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hHjxR-0001x6-Hr for emacs-devel@gnu.org; Sat, 20 Apr 2019 02:58:42 -0400 Original-Received: from gateway32.websitewelcome.com ([192.185.145.113]:38418) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hHjxR-0001tC-4P for emacs-devel@gnu.org; Sat, 20 Apr 2019 02:58:41 -0400 Original-Received: from cm17.websitewelcome.com (cm17.websitewelcome.com [100.42.49.20]) by gateway32.websitewelcome.com (Postfix) with ESMTP id EB3FA2659E for ; Sat, 20 Apr 2019 01:58:28 -0500 (CDT) Original-Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id HjxEhJezy90onHjxEhUB0N; Sat, 20 Apr 2019 01:58:28 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date: Sender:Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=+BfYdDtkP5rQJxRDSWjY+/xelEB/uw9CSbhfaVLTFVA=; b=hvhcluXLHELM/szbMzgHfLp+0R DGikhvcn4EJyPuG/K7NOfrPu6PkaNrlnRyxeymfC04DcYdweh9MeL4Z1ZxN/OwDohhElODiiX5Je3 hBeqIZO49An2E5pKcRPgmC+vxoQUL6wKfsq959hW6RHErSrfMSlTbR1psRNGmZw4mGU5Fn+I57p1g ENy35AGCzYI+yAfzOP4QH+M3Ct3rd641anhmm24cRtpGCcO/p2SS32hc0cADFfTbdHqppFFMogYXA VOjWZji5xVDpJwVi/zbTi3VmMu2x4XmWxgv+QFymefrbWpe4+BVgom8fdFThL9HjACa9Saf9NsTu2 RuMqiLoQ==; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50442 helo=server.local) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.91) (envelope-from ) id 1hHjxE-002SNC-34; Sat, 20 Apr 2019 01:58:28 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1hHjxE-002SNC-34 X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.local) [45.48.239.195]:50442 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 192.185.145.113 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235687 Archived-At: --Multipart_Fri_Apr_19_23:58:27_2019-1 Content-Type: text/plain; charset=US-ASCII Thank you, Alex, for helping me to better understand how best to organize the cache structures. Attached is another attempt by me at implementing your suggestions (as I understand them). [The need for a temporary cache has been eliminated in the most recent working draft of multiple fake cursors, so there are only three flavors of caches now: mc, ch and fc.] Does the attached patch accurately reflect your suggested approach? --Multipart_Fri_Apr_19_23:58:27_2019-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="cache_rewrite_002.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9idWZmZXIuYyBiL3NyYy9idWZmZXIuYwppbmRleCBhYjQ3NzQ4Li4w MzY0ZWJhIDEwMDY0NAotLS0gYS9zcmMvYnVmZmVyLmMKKysrIGIvc3JjL2J1ZmZlci5jCkBAIC0x MzMsNiArMTMzLDIxIEBAIENIRUNLX09WRVJMQVkgKExpc3BfT2JqZWN0IHgpCiAKIC8qIFRoZXNl IHNldHRlcnMgYXJlIHVzZWQgb25seSBpbiB0aGlzIGZpbGUsIHNvIHRoZXkgY2FuIGJlIHByaXZh dGUuCiAgICBUaGUgcHVibGljIHNldHRlcnMgYXJlIGlubGluZSBmdW5jdGlvbnMgZGVmaW5lZCBp biBidWZmZXIuaC4gICovCisKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisvKiBiZWdpbiBN VUxUSVBMRS1DVVJTT1JTICovCisKK3N0YXRpYyB2b2lkCitic2V0X2Nyb3NzaGFpcnMgKHN0cnVj dCBidWZmZXIgKmIsIExpc3BfT2JqZWN0IHZhbCkKK3sKKyAgYi0+Y3Jvc3NoYWlyc18gPSB2YWw7 Cit9CisKKy8qIGVuZCBNVUxUSVBMRS1DVVJTT1JTICovCisvKiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiog Ki8KKworCiBzdGF0aWMgdm9pZAogYnNldF9hYmJyZXZfbW9kZSAoc3RydWN0IGJ1ZmZlciAqYiwg TGlzcF9PYmplY3QgdmFsKQogewpAQCAtNTE0Miw2ICs1MTU3LDE2IEBAIGluaXRfYnVmZmVyX29u Y2UgKHZvaWQpCiAgIGJzZXRfbGFzdF9zZWxlY3RlZF93aW5kb3cgKCZidWZmZXJfbG9jYWxfZmxh Z3MsIG1ha2VfZml4bnVtICgwKSk7CiAKICAgaWR4ID0gMTsKKworCisvKiAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworICBYU0VURkFTVElOVCAoQlZBUiAo JmJ1ZmZlcl9sb2NhbF9mbGFncywgY3Jvc3NoYWlycyksIGlkeCk7ICsraWR4OworCisvKiAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogKi8KKworCiAgIFhTRVRGQVNUSU5UIChCVkFSICgmYnVmZmVyX2xvY2Fs X2ZsYWdzLCBtb2RlX2xpbmVfZm9ybWF0KSwgaWR4KTsgKytpZHg7CiAgIFhTRVRGQVNUSU5UIChC VkFSICgmYnVmZmVyX2xvY2FsX2ZsYWdzLCBhYmJyZXZfbW9kZSksIGlkeCk7ICsraWR4OwogICBY U0VURkFTVElOVCAoQlZBUiAoJmJ1ZmZlcl9sb2NhbF9mbGFncywgb3ZlcndyaXRlX21vZGUpLCBp ZHgpOyArK2lkeDsKQEAgLTUyMjgsNiArNTI1MywxNiBAQCBpbml0X2J1ZmZlcl9vbmNlICh2b2lk KQogICAvKiBNdXN0IGRvIHRoZXNlIGJlZm9yZSBtYWtpbmcgdGhlIGZpcnN0IGJ1ZmZlciEgKi8K IAogICAvKiByZWFsIHNldHVwIGlzIGRvbmUgaW4gYmluZGluZ3MuZWwgKi8KKworCisvKiAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworICBic2V0X2Nyb3Nz aGFpcnMgKCZidWZmZXJfZGVmYXVsdHMsIFFuaWwpOworCisvKiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiog Ki8KKworCiAgIGJzZXRfbW9kZV9saW5lX2Zvcm1hdCAoJmJ1ZmZlcl9kZWZhdWx0cywgYnVpbGRf cHVyZV9jX3N0cmluZyAoIiUtIikpOwogICBic2V0X2hlYWRlcl9saW5lX2Zvcm1hdCAoJmJ1ZmZl cl9kZWZhdWx0cywgUW5pbCk7CiAgIGJzZXRfYWJicmV2X21vZGUgKCZidWZmZXJfZGVmYXVsdHMs IFFuaWwpOwpAQCAtNTQ2NCw2ICs1NDk5LDE1IEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lkKQogICBz dGF0aWNwcm8gKCZRU0Z1bmRhbWVudGFsKTsKICAgc3RhdGljcHJvICgmVmJ1ZmZlcl9hbGlzdCk7 CiAKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisvKiBNVUxUSVBMRS1DVVJTT1JTICovCisK KyAgREVGU1lNIChRY3Jvc3NoYWlycywgImNyb3NzaGFpcnMiKTsKKworLyogKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqICovCisKKwogICBERUZTWU0gKFFjaG9pY2UsICJjaG9pY2UiKTsKICAgREVGU1lNIChR bGVmdCwgImxlZnQiKTsKICAgREVGU1lNIChRcmlnaHQsICJyaWdodCIpOwpAQCAtNTUwMSw2ICs1 NTQ1LDE2IEBAIHN5bXNfb2ZfYnVmZmVyICh2b2lkKQogICBGcHV0IChRcHJvdGVjdGVkX2ZpZWxk LCBRZXJyb3JfbWVzc2FnZSwKIAlidWlsZF9wdXJlX2Nfc3RyaW5nICgiQXR0ZW1wdCB0byBtb2Rp ZnkgYSBwcm90ZWN0ZWQgZmllbGQiKSk7CiAKKworLyogKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisv KiBNVUxUSVBMRS1DVVJTT1JTICovCisKKyAgREVGVkFSX1BFUl9CVUZGRVIgKCJjcm9zc2hhaXJz IiwgJkJWQVIgKGN1cnJlbnRfYnVmZmVyLCBjcm9zc2hhaXJzKSwgUW5pbCwKKyAgICBkb2M6IC8q IEEgYnVmZXItbG9jYWwgdmFyaWFibGUgdG8gYWN0aXZhdGUvZGVhY3RpdmF0ZSBjcm9zc2hhaXJz LiAqLyk7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCisKICAgREVGVkFSX1BFUl9CVUZG RVIgKCJoZWFkZXItbGluZS1mb3JtYXQiLAogCQkgICAgICZCVkFSIChjdXJyZW50X2J1ZmZlciwg aGVhZGVyX2xpbmVfZm9ybWF0KSwKIAkJICAgICBRbmlsLApkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZl ci5oIGIvc3JjL2J1ZmZlci5oCmluZGV4IGY0MmMzZTkuLjIzM2RiY2EgMTAwNjQ0Ci0tLSBhL3Ny Yy9idWZmZXIuaAorKysgYi9zcmMvYnVmZmVyLmgKQEAgLTYzNiw2ICs2MzYsMTYgQEAgc3RydWN0 IGJ1ZmZlcgogICAgICBjYWNoZSBhcmUgZW5hYmxlZC4gIFNlZSBzZWFyY2guYywgaW5kZW50LmMg YW5kIGJpZGkuYyBmb3IgZGV0YWlscy4gICovCiAgIExpc3BfT2JqZWN0IGNhY2hlX2xvbmdfc2Nh bnNfOwogCisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworLyogTVVMVElQTEUtQ1VSU09SUyAq LworCisgIC8qIFRoZSBuYW1lIG9mIHRoZSBidWZmZXItbG9jYWwgdmFyaWFibGUuICovCisgIExp c3BfT2JqZWN0IGNyb3NzaGFpcnNfOworCisvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKworCiAg IC8qIElmIHRoZSB3aWR0aCBydW4gY2FjaGUgaXMgZW5hYmxlZCwgdGhpcyB0YWJsZSBjb250YWlu cyB0aGUKICAgICAgY2hhcmFjdGVyIHdpZHRocyB3aWR0aF9ydW5fY2FjaGUgKHNlZSBhYm92ZSkg YXNzdW1lcy4gIFdoZW4gd2UKICAgICAgZG8gYSB0aG9yb3VnaCByZWRpc3BsYXksIHdlIGNvbXBh cmUgdGhpcyBhZ2FpbnN0IHRoZSBidWZmZXIncwpkaWZmIC0tZ2l0IGEvc3JjL2Rpc3BuZXcuYyBi L3NyYy9kaXNwbmV3LmMKaW5kZXggY2NiMDhlYy4uNzYwNTlkNSAxMDA2NDQKLS0tIGEvc3JjL2Rp c3BuZXcuYworKysgYi9zcmMvZGlzcG5ldy5jCkBAIC0zMzgwLDYgKzMzODAsMTEwIEBAIGNoZWNr X2N1cnJlbnRfbWF0cml4X2ZsYWdzIChzdHJ1Y3Qgd2luZG93ICp3KQogCiAjZW5kaWYgLyogR0xZ UEhfREVCVUcgKi8KIAorZW51bSB0eXBlX29mX2NhY2hlCit7CisgIE5PX0NBQ0hFLAorICBNQ19D QUNIRSwKKyAgQ0hfQ0FDSEUsCisgIEZDX0NBQ0hFCit9OworCitzdGF0aWMgdm9pZAorbWNfcmVz ZXRfY2FjaGUgKHN0cnVjdCB3aW5kb3cgKncsIGVudW0gdHlwZV9vZl9jYWNoZSBjYWNoZV90eXBl KQoreworICBzd2l0Y2ggKGNhY2hlX3R5cGUpCisgICAgeworICAgICAgY2FzZSBOT19DQUNIRToK KyAgICAgICAgeworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgY2FzZSBNQ19D QUNIRToKKyAgICAgICAgeworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICBjYXNl IENIX0NBQ0hFOgorICAgICAgICB7CisgICAgICAgICAgLyogRklYTUU6ICBNYWtlIGEgZGVjaXNp b24gcmVnYXJkaW5nIHdoYXQgdG8gZG8gd2hlbiBjcm9zc2hhaXJzIGlzCisgICAgICAgICAgZGlz YWJsZWQ7IGkuZS4sIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBhcnJheTsgb3IsIHNldCB2YWx1 ZXMgb2YgYWxsCisgICAgICAgICAgc3RydWN0IGVsZW1lbnRzIHRvIHplcm8uICovCisgICAgICAg ICAgaWYgKEJVRkZFUlAgKHctPmNvbnRlbnRzKSAmJiBOSUxQIChCVkFSIChYQlVGRkVSICh3LT5j b250ZW50cyksIGNyb3NzaGFpcnMpKQorICAgICAgICAgICAgICAmJiB3LT5tY19lbHRzLnVzZWQg PiAxKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAvKiBEZWNyZWFzZSB0aGUgc2l6ZSBv ZiB0aGUgYXJyYXkgdG8gYSBiYXJlIG1pbmltdW0uICovCisgICAgICAgICAgICAgIHhucmVhbGxv YyAody0+bWNfZWx0cy5jYWNoZXMsIDEsIHNpemVvZiAqdy0+bWNfZWx0cy5jYWNoZXMpOworICAg ICAgICAgICAgICB3LT5tY19lbHRzLnVzZWQgPSAwOworICAgICAgICAgICAgICB3LT5tY19lbHRz LmFsbG9jYXRlZCA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgLy8gIGlmIChCVUZGRVJQ ICh3LT5jb250ZW50cykgJiYgTklMUCAoQlZBUiAoWEJVRkZFUiAody0+Y29udGVudHMpLCBjcm9z c2hhaXJzKSkpCisgICAgICAgICAgLy8gICAgeworICAgICAgICAgIC8vICAgICAgLyogU2V0IGFs bCBfdXNlZF8gZWxlbWVudHMgb2YgdGhlIGFycmF5IHRvIHplcm8uCisgICAgICAgICAgLy8gICAg ICBlbHRzX2FsbG9jYXRlZCByZW1haW4gdGhlIHNhbWUuICovCisgICAgICAgICAgLy8gICAgICBt ZW1zZXQgKHctPm1jX2VsdHMuY2FjaGVzLCAwLCB3LT5tY19lbHRzLnVzZWQgKiAoc2l6ZW9mICp3 LT5tY19lbHRzLmNhY2hlcykpOworICAgICAgICAgIC8vICAgICAgdy0+bWNfZWx0cy51c2VkID0g MDsKKyAgICAgICAgICAvLyAgICB9CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg IGNhc2UgRkNfQ0FDSEU6CisgICAgICAgIHsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor ICAgIH0KK30KKworc3RhdGljIHZvaWQKK21jX3BvcHVsYXRlX2NhY2hlIChzdHJ1Y3Qgd2luZG93 ICp3LCBlbnVtIHR5cGVfb2ZfY2FjaGUgY2FjaGVfdHlwZSkKK3sKKyAgc3dpdGNoIChjYWNoZV90 eXBlKQorICAgIHsKKyAgICAgIGNhc2UgTk9fQ0FDSEU6CisgICAgICAgIHsKKyAgICAgICAgICBy ZXR1cm47CisgICAgICAgIH0KKyAgICAgIGNhc2UgTUNfQ0FDSEU6CisgICAgICAgIHsKKyAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgY2FzZSBDSF9DQUNIRToKKyAgICAgICAgewor ICAgICAgICAgIGlmIChCVUZGRVJQICh3LT5jb250ZW50cykKKyAgICAgICAgICAgICAgJiYgIU5J TFAgKEJWQVIgKFhCVUZGRVIgKHctPmNvbnRlbnRzKSwgY3Jvc3NoYWlycykpKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICBpbnQgbWF4X2VsdHMgPSAyNTAwMDsKKyAgICAgICAgICAgICAg LyogRXhhbXBsZSBhc3N1bWVzIHRoZXJlIGlzIG9uZSAoMSkgbmV3IGVsdCBlYWNoIHdpbmRvdyB1 cGRhdGUuICovCisgICAgICAgICAgICAgICsrdy0+bWNfZWx0cy51c2VkOworICAgICAgICAgICAg ICAvKiBNYXliZSBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgYXJyYXkuICovCisgICAgICAgICAg ICAgIGlmICh3LT5tY19lbHRzLmFsbG9jYXRlZCA8IHctPm1jX2VsdHMudXNlZAorICAgICAgICAg ICAgICAgICAgJiYgdy0+bWNfZWx0cy51c2VkIDwgbWF4X2VsdHMpCisgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgaW50IG9sZF9hbGxvYyA9IHctPm1jX2VsdHMuYWxsb2NhdGVk OworICAgICAgICAgICAgICAgICAgaW50IG5ld19lbHRzID0gdy0+bWNfZWx0cy51c2VkIC0gdy0+ bWNfZWx0cy5hbGxvY2F0ZWQ7CisgICAgICAgICAgICAgICAgICB3LT5tY19lbHRzLmNhY2hlcyA9 IHhwYWxsb2MgKHctPm1jX2VsdHMuY2FjaGVzLCAmdy0+bWNfZWx0cy5hbGxvY2F0ZWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfZWx0cywgSU5U X01BWCwgc2l6ZW9mICp3LT5tY19lbHRzLmNhY2hlcyk7CisgICAgICAgICAgICAgICAgICBtZW1z ZXQgKHctPm1jX2VsdHMuY2FjaGVzICsgb2xkX2FsbG9jLCAwLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHctPm1jX2VsdHMuYWxsb2NhdGVkIC0gb2xkX2FsbG9jKSAqIHNpemVvZiAqdy0+ bWNfZWx0cy5jYWNoZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaW50IG50 aCA9IHctPm1jX2VsdHMudXNlZCAtIDE7CisgICAgICAgICAgICAgIGZvciAoaW50IGVsdCA9IDA7 IGVsdCA8IHctPm1jX2VsdHMudXNlZDsgKytlbHQpCisgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgaWYgKGVsdCA9PSBudGgpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgICB3LT5tY19lbHRzLmNhY2hlc1tudGhdLnggPSBlbHQ7CisgICAgICAg ICAgICAgICAgICAgICAgZG91YmxlIHJlZCA9IGVsdDsgCisgICAgICAgICAgICAgICAgICAgICAg dy0+bWNfZWx0cy5jYWNoZXNbZWx0XS5mb3JlZ3JvdW5kLnJlZCA9IHJlZDsKKyAgICAgICAgICAg ICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJ3LT5tY19lbHRzLnVzZWQgKCVkKSB8IHctPm1j X2VsdHMuYWxsb2NhdGVkICglZClcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdy0+bWNfZWx0cy51c2VkLCB3LT5tY19lbHRzLmFsbG9jYXRlZCk7CisgICAgICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgY2FzZSBGQ19DQUNIRToKKyAgICAgICAgewor ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQogCiAvKiBVcGRhdGUgZGlzcGxh eSBvZiB3aW5kb3cgVy4KICAgIElmIEZPUkNFX1AsIGRvbid0IHN0b3AgdXBkYXRpbmcgd2hlbiBp bnB1dCBpcyBwZW5kaW5nLiAgKi8KQEAgLTMzODgsNiArMzQ5MiwyMSBAQCBzdGF0aWMgYm9vbAog dXBkYXRlX3dpbmRvdyAoc3RydWN0IHdpbmRvdyAqdywgYm9vbCBmb3JjZV9wKQogewogICBzdHJ1 Y3QgZ2x5cGhfbWF0cml4ICpkZXNpcmVkX21hdHJpeCA9IHctPmRlc2lyZWRfbWF0cml4OworCisK Ky8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiAqLworLyogYmVnaW4gTVVMVElQTEUtQ1VSU09SUyAqLwor CittY19yZXNldF9jYWNoZSAodywgTUNfQ0FDSEUpOworCittY19yZXNldF9jYWNoZSAodywgQ0hf Q0FDSEUpOworCittY19yZXNldF9jYWNoZSAodywgRkNfQ0FDSEUpOworCisvKiBlbmQgTVVMVElQ TEUtQ1VSU09SUyAqLworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisKKwogICBib29sIHBhdXNl ZF9wOwogICBpbnQgcHJlZW1wdF9jb3VudCA9IGNsaXBfdG9fYm91bmRzICgxLCBiYXVkX3JhdGUg LyAyNDAwICsgMSwgSU5UX01BWCk7CiAgIHN0cnVjdCByZWRpc3BsYXlfaW50ZXJmYWNlICpyaWYg PSBGUkFNRV9SSUYgKFhGUkFNRSAoV0lORE9XX0ZSQU1FICh3KSkpOwpAQCAtMzQ5Nyw2ICszNjE2 LDE5IEBAIHVwZGF0ZV93aW5kb3cgKHN0cnVjdCB3aW5kb3cgKncsIGJvb2wgZm9yY2VfcCkKIAog ICAgIHNldF9jdXJzb3I6CiAKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisvKiBNVUxUSVBM RS1DVVJTT1JTICovCisKK21jX3BvcHVsYXRlX2NhY2hlICh3LCBNQ19DQUNIRSk7CisKK21jX3Bv cHVsYXRlX2NhY2hlICh3LCBDSF9DQUNIRSk7CisKK21jX3BvcHVsYXRlX2NhY2hlICh3LCBGQ19D QUNIRSk7CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCisKICAgICAgIC8qIFVwZGF0ZSB0 aGUgaGVhZGVyIGxpbmUgYWZ0ZXIgc2Nyb2xsaW5nIGJlY2F1c2UgYSBuZXcgaGVhZGVyCiAJIGxp bmUgd291bGQgb3RoZXJ3aXNlIG92ZXJ3cml0ZSBsaW5lcyBhdCB0aGUgdG9wIG9mIHRoZSB3aW5k b3cKIAkgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuICAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BkdW1wZXIu YyBiL3NyYy9wZHVtcGVyLmMKaW5kZXggY2IyOTE1Yy4uZGM3OWViMSAxMDA2NDQKLS0tIGEvc3Jj L3BkdW1wZXIuYworKysgYi9zcmMvcGR1bXBlci5jCkBAIC0yNzcwLDcgKzI3NzAsNyBAQCBkdW1w X2hhc2hfdGFibGUgKHN0cnVjdCBkdW1wX2NvbnRleHQgKmN0eCwKIHN0YXRpYyBkdW1wX29mZgog ZHVtcF9idWZmZXIgKHN0cnVjdCBkdW1wX2NvbnRleHQgKmN0eCwgY29uc3Qgc3RydWN0IGJ1ZmZl ciAqaW5fYnVmZmVyKQogewotI2lmIENIRUNLX1NUUlVDVFMgJiYgIWRlZmluZWQgSEFTSF9idWZm ZXJfRTM0QTExQzZCOQorI2lmIENIRUNLX1NUUlVDVFMgJiYgIWRlZmluZWQgSEFTSF9idWZmZXJf QjcxMkY2QjNEQwogIyBlcnJvciAiYnVmZmVyIGNoYW5nZWQuIFNlZSBDSEVDS19TVFJVQ1RTIGNv bW1lbnQuIgogI2VuZGlmCiAgIHN0cnVjdCBidWZmZXIgbXVuZ2VkX2J1ZmZlciA9ICppbl9idWZm ZXI7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggZmRlZjQw Ny4uY2M3Y2RhOCAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApA QCAtODgsNiArODgsNDEgQEAgZGlzcGxheSB0aGUgbWVudSBiYXIgb3IgdGhlIHRvb2wgYmFyICh3 aGVuIEVtYWNzIHVzZXMgdG9vbGtpdHMgdGhhdAogZG9uJ3QgZGlzcGxheSB0aGVpciBvd24gbWVu dSBiYXIgYW5kIHRvb2wgYmFyKSBvciBhIHRvb2x0aXAgaW4gYQogdG9vbHRpcCBmcmFtZSAod2hl biB0b29sdGlwcyBhcmUgbm90IGRpc3BsYXkgYnkgdGhlIHRvb2xraXQpLiAgKi8KIAorCisvKiAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworc3RydWN0IG11 bHRpcGxlX2N1cnNvcl9jYWNoZQoreworICBwdHJkaWZmX3QgYWxsb2NhdGVkOworICBwdHJkaWZm X3QgdXNlZDsKKyAgc3RydWN0IGl0ZW1zCisgIHsKKyAgICBpbnQgeDsKKyAgICBpbnQgZng7Cisg ICAgaW50IHk7CisgICAgaW50IGZ5OworICAgIGludCBocG9zOworICAgIGludCB2cG9zOworICAg IGludCB3ZDsKKyAgICBpbnQgaDsKKyAgICBpbnQgY3Vyc29yX3R5cGU7CisgICAgaW50IGN1cnNv cl93aWR0aDsKKyAgICBzdHJ1Y3QgUkdCCisgICAgeworICAgICAgZG91YmxlIHJlZDsKKyAgICAg IGRvdWJsZSBncmVlbjsKKyAgICAgIGRvdWJsZSBibHVlOworICAgIH0gZm9yZWdyb3VuZCwgYmFj a2dyb3VuZDsKKyAgICBib29sIGFjdGl2ZV9wOworICAgIGludCBnbHlwaF9mbGF2b3I7CisgICAg Ym9vbCBlbmFibGVkX3A7CisgIH0gKmNhY2hlczsKK307CisKKy8qICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiAqLworCisKIHN0cnVjdCBjdXJzb3JfcG9zCiB7CiAgIC8qIFBpeGVsIHBvc2l0aW9uLiAgVGhl c2UgYXJlIGFsd2F5cyB3aW5kb3cgcmVsYXRpdmUuICAqLwpAQCAtMzI0LDYgKzM1OSwxOSBAQCBz dHJ1Y3Qgd2luZG93CiAKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KIAorCisvKiAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiogKi8KKy8qIE1VTFRJUExFLUNVUlNPUlMgKi8KKworICAgIHN0cnVjdCBtdWx0 aXBsZV9jdXJzb3JfY2FjaGUgbWNfZWx0czsKKworICAgIHN0cnVjdCBtdWx0aXBsZV9jdXJzb3Jf Y2FjaGUgY2hfZWx0czsKKworICAgIHN0cnVjdCBtdWx0aXBsZV9jdXJzb3JfY2FjaGUgZmNfZWx0 czsKKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqICovCisKKwogICAgIC8qIEN1cnNvciB0eXBlIG9m IGxhc3QgY3Vyc29yIGRyYXduIG9uIHRoZSB3aW5kb3cuICAqLwogICAgIGVudW0gdGV4dF9jdXJz b3Jfa2luZHMgcGh5c19jdXJzb3JfdHlwZTsKIAo= --Multipart_Fri_Apr_19_23:58:27_2019-1--