From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.devel Subject: Re: Lisp watchpoints Date: Sun, 22 Nov 2015 15:13:47 -0500 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7bdca97e0b0e75052526bf55 X-Trace: ger.gmane.org 1448223261 10932 80.91.229.3 (22 Nov 2015 20:14:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 22 Nov 2015 20:14:21 +0000 (UTC) Cc: John Wiegley , Eli Zaretskii , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Nov 22 21:14:20 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1a0b1f-00039U-4u for ged-emacs-devel@m.gmane.org; Sun, 22 Nov 2015 21:14:19 +0100 Original-Received: from localhost ([::1]:57322 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0b1a-0000Fz-8P for ged-emacs-devel@m.gmane.org; Sun, 22 Nov 2015 15:14:14 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45204) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0b1G-0000E6-Vk for emacs-devel@gnu.org; Sun, 22 Nov 2015 15:13:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a0b1E-0000OK-6Z for emacs-devel@gnu.org; Sun, 22 Nov 2015 15:13:54 -0500 Original-Received: from mail-ig0-x22f.google.com ([2607:f8b0:4001:c05::22f]:35205) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a0b1A-0000Mg-E5; Sun, 22 Nov 2015 15:13:48 -0500 Original-Received: by igl9 with SMTP id 9so40261005igl.0; Sun, 22 Nov 2015 12:13:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=XsRTYWgqYjE5rb/K8VE81lh4/xO79mDdRWrc+3KKHMc=; b=g4iRwQt5oXwoK9JFpyQKM1/8gbkuNw0z9b37NaH/bzMgM43dTO84FxBWItkSzzpvx9 dzc8Rl3EulsiOW05Ig+U36srYNBZD9kbQFVKa9SrsuAbnzAMdZNfcqQBMtFOlEan0PKD RqDhbhSvX4Wk71ZjviozklH4h+kxsNx2tsDqIdZu5AJ2vFoCtaJ0AQAN6NE15Z1SWsIl 7GN9HCFclCktL9RAP2xE2snLjaWV9TVAh2xpC/aBSC3224wjA6Wcb9AjChrKwoPJkLgD MIqzvnqt2UH97kPKx2lXIvHhuGriAtZMSfTpF1tF9hSk9BmDFM2k874et2MxNeFECBhB 3Gkg== X-Received: by 10.50.30.101 with SMTP id r5mr11402499igh.35.1448223227687; Sun, 22 Nov 2015 12:13:47 -0800 (PST) Original-Received: by 10.79.119.2 with HTTP; Sun, 22 Nov 2015 12:13:47 -0800 (PST) In-Reply-To: X-Google-Sender-Auth: UOKECfmc1fXBBP9TJJQzcWN4RxE X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4001:c05::22f X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:195064 Archived-At: --047d7bdca97e0b0e75052526bf55 Content-Type: text/plain; charset=UTF-8 Okay, I think I have something mostly working now. The first patch adds watchpoints, then the following 2 implement lisp debug on variable set, and ensure redisplay, respectively. The debugger part isn't quite right, I'm seeing it trigger a 2nd time after continuing. On Sat, Nov 14, 2015 at 5:29 PM, Stefan Monnier wrote: > OTOH if we make sure that the "read-only" hook can't be > overridden/changed/skipped by Elisp code, it might be fine. After thinking about it, I think the simplest thing is not to implement read-only with watchpoints, but rather keep it as a separate Lisp_Symbol setting. > - The risk involved in running arbitrary Lisp code for a variable-read > seems higher. We could make `add-variable-watcher' callable only from C, and manipulate some internal hash table instead of the symbol's plist. Of course this would make it less flexible, but it avoids the whole problem of running arbitrary Lisp code for variable-write (and read, though I don't plan to implement read watchpoints for now). --047d7bdca97e0b0e75052526bf55 Content-Type: text/x-diff; charset=US-ASCII; name="0001-Add-lisp-watchpoints.patch" Content-Disposition: attachment; filename="0001-Add-lisp-watchpoints.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ihavmp430 RnJvbSA0NjJlMjYwYjVjOTViYmVlMDdkNmY4NTVlNDYyMzMzZTk4N2E1ZTljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FtIFBvc3RhdnNreSA8bnBvc3RhdnNAZ21haWwuY29tPgpE YXRlOiBUaHUsIDE5IE5vdiAyMDE1IDE5OjUwOjA2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxLzNd IEFkZCBsaXNwIHdhdGNocG9pbnRzCgpUaGlzIGFsbG93cyB0byBjYWxsIGEgZnVuY3Rpb24gd2hl bmV2ZXIgYSBzeW1ib2wtdmFsdWUgaXMgY2hhbmdlZC4KCiogc3JjL2xpc3AuaCAobGlzcF9oX1NZ TUJPTF9UUkFQUEVEX1dSSVRFX1ApOiBSZW5hbWUgZnJvbQogIGxpc3BfaF9TWU1CT0xfQ09OU1RB TlRfUC4KICAoU1lNQk9MX1RSQVBQRURfV1JJVEVfUCk6IFJlbmFtZSBmcm9tIFNZTUJPTF9DT05T VEFOVF9QLgogIChlbnVtIHN5bWJvbF90cmFwcGVkX3dyaXRlKTogTmV3IGVudW1lcmF0aW9uLgog IChzdHJ1Y3QgTGlzcF9TeW1ib2wpOiBSZW5hbWUgZmllbGQgY29uc3RhbnQgdG8gdHJhcHBlZF93 cml0ZS4KICAobWFrZV9zeW1ib2xfY29uc3RhbnQpOiBOZXcgZnVuY3Rpb25zLgoKKiBzcmMvZGF0 YS5jIChGYWRkX3ZhcmlhYmxlX3dhdGNoZXIsIEZyZW1vdmVfdmFyaWFibGVfd2F0Y2hlcik6CiAg KHNldF9zeW1ib2xfdHJhcHBlZF93cml0ZSwgcmVzZXRfc3ltYm9sX3RyYXBwZWRfd3JpdGUpOgog IChub3RpZnlfdmFyaWFibGVfd2F0Y2hlcnMpOiBOZXcgZnVuY3Rpb25zLgoKKiBzcmMvZGF0YS5j IChGbWFrdW5ib3VuZCwgc2V0X2ludGVybmFsLCBGc2V0X2RlZmF1bHQpOiBDYWxsCiAgbm90aWZ5 X3ZhcmlhYmxlX3dhdGNoZXJzIGZvciB0cmFwcGVkIHN5bWJvbHMuCgoqIHNyYy9kYXRhLmMgKHN5 bXNfb2ZfZGF0YSk6Ciogc3JjL2RhdGEuYyAoc3ltc19vZl9kYXRhKToKKiBzcmMvZm9udC5jIChz eW1zX29mX2ZvbnQpOgoqIHNyYy9scmVhZC5jIChpbnRlcm5fc3ltLCBpbml0X29iYXJyYXkpOgoq IHNyYy9idWZmZXIuYyAoc3ltc19vZl9idWZmZXIpOiBVc2UgbWFrZV9zeW1ib2xfY29uc3RhbnQu CgoqIHNyYy9hbGxvYy5jIChpbml0X3N5bWJvbCk6Ciogc3JjL2J5dGVjb2RlLmMgKGV4ZWNfYnl0 ZV9jb2RlKTogVXNlIFNZTUJPTF9UUkFQUEVEX1dSSVRFX1AuCiogc3JjL2RhdGEuYyAoRm1ha2Vf dmFyaWFibGVfYnVmZmVyX2xvY2FsLCBGbWFrZV9sb2NhbF92YXJpYWJsZSk6CiAgKEZtYWtlX3Zh cmlhYmxlX2ZyYW1lX2xvY2FsKToKKiBzcmMvZXZhbC5jIChGZGVmdmFyYWxpYXMsIHNwZWNiaW5k KTogUmVmZXIgdG8KICBMaXNwX1N5bWJvbCdzIHRyYXBwZWRfd3JpdGUgaW5zdGVhZCBvZiBjb25z dGFudC4KLS0tCiBzcmMvYWxsb2MuYyAgICB8ICAgMiArLQogc3JjL2J1ZmZlci5jICAgfCAgIDIg Ky0KIHNyYy9ieXRlY29kZS5jIHwgICAyICstCiBzcmMvZGF0YS5jICAgICB8IDE1MyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9l dmFsLmMgICAgIHwgICA2ICstLQogc3JjL2ZvbnQuYyAgICAgfCAgIDYgKy0tCiBzcmMvbGlzcC5o ICAgICB8ICAzNSArKysrKysrKy0tLS0tCiBzcmMvbHJlYWQuYyAgICB8ICAgNiArLS0KIDggZmls ZXMgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy9hbGxvYy5jIGIvc3JjL2FsbG9jLmMKaW5kZXggYmVlN2NkMS4uNTZjM2E1NSAxMDA2 NDQKLS0tIGEvc3JjL2FsbG9jLmMKKysrIGIvc3JjL2FsbG9jLmMKQEAgLTMzNjgsNyArMzM2OCw3 IEBAIGluaXRfc3ltYm9sIChMaXNwX09iamVjdCB2YWwsIExpc3BfT2JqZWN0IG5hbWUpCiAgIHNl dF9zeW1ib2xfbmV4dCAodmFsLCBOVUxMKTsKICAgcC0+Z2NtYXJrYml0ID0gZmFsc2U7CiAgIHAt PmludGVybmVkID0gU1lNQk9MX1VOSU5URVJORUQ7Ci0gIHAtPmNvbnN0YW50ID0gMDsKKyAgcC0+ dHJhcHBlZF93cml0ZSA9IFNZTUJPTF9VTlRSQVBQRURfV1JJVEU7CiAgIHAtPmRlY2xhcmVkX3Nw ZWNpYWwgPSBmYWxzZTsKICAgcC0+cGlubmVkID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMv YnVmZmVyLmMgYi9zcmMvYnVmZmVyLmMKaW5kZXggYWI5MWFhYS4uMTFkYTg4NyAxMDA2NDQKLS0t IGEvc3JjL2J1ZmZlci5jCisrKyBiL3NyYy9idWZmZXIuYwpAQCAtNTY4OSw3ICs1Njg5LDcgQEAg c3ltc19vZl9idWZmZXIgKHZvaWQpCiBUaGlzIHZhcmlhYmxlIGlzIGJ1ZmZlci1sb2NhbCBidXQg eW91IGNhbm5vdCBzZXQgaXQgZGlyZWN0bHk7CiB1c2UgdGhlIGZ1bmN0aW9uIGBzZXQtYnVmZmVy LW11bHRpYnl0ZScgdG8gY2hhbmdlIGEgYnVmZmVyJ3MgcmVwcmVzZW50YXRpb24uCiBTZWUgYWxz byBJbmZvIG5vZGUgYChlbGlzcClUZXh0IFJlcHJlc2VudGF0aW9ucycuICAqLyk7Ci0gIFhTWU1C T0wgKGludGVybl9jX3N0cmluZyAoImVuYWJsZS1tdWx0aWJ5dGUtY2hhcmFjdGVycyIpKS0+Y29u c3RhbnQgPSAxOworICBtYWtlX3N5bWJvbF9jb25zdGFudCAoaW50ZXJuX2Nfc3RyaW5nICgiZW5h YmxlLW11bHRpYnl0ZS1jaGFyYWN0ZXJzIikpOwogCiAgIERFRlZBUl9QRVJfQlVGRkVSICgiYnVm ZmVyLWZpbGUtY29kaW5nLXN5c3RlbSIsCiAJCSAgICAgJkJWQVIgKGN1cnJlbnRfYnVmZmVyLCBi dWZmZXJfZmlsZV9jb2Rpbmdfc3lzdGVtKSwgUW5pbCwKZGlmZiAtLWdpdCBhL3NyYy9ieXRlY29k ZS5jIGIvc3JjL2J5dGVjb2RlLmMKaW5kZXggODY0ZGIxYS4uMDJlZGI0NCAxMDA2NDQKLS0tIGEv c3JjL2J5dGVjb2RlLmMKKysrIGIvc3JjL2J5dGVjb2RlLmMKQEAgLTc5OSw3ICs3OTksNyBAQCBl eGVjX2J5dGVfY29kZSAoTGlzcF9PYmplY3QgYnl0ZXN0ciwgTGlzcF9PYmplY3QgdmVjdG9yLCBM aXNwX09iamVjdCBtYXhkZXB0aCwKIAkgICAgaWYgKFNZTUJPTFAgKHN5bSkKIAkJJiYgIUVRICh2 YWwsIFF1bmJvdW5kKQogCQkmJiAhWFNZTUJPTCAoc3ltKS0+cmVkaXJlY3QKLQkJJiYgIVNZTUJP TF9DT05TVEFOVF9QIChzeW0pKQorCQkmJiAhU1lNQk9MX1RSQVBQRURfV1JJVEVfUCAoc3ltKSkK IAkgICAgICBTRVRfU1lNQk9MX1ZBTCAoWFNZTUJPTCAoc3ltKSwgdmFsKTsKIAkgICAgZWxzZQog CSAgICAgIHsKZGlmZiAtLWdpdCBhL3NyYy9kYXRhLmMgYi9zcmMvZGF0YS5jCmluZGV4IDUxNTQ2 MDQuLjdjNmZjMmMgMTAwNjQ0Ci0tLSBhL3NyYy9kYXRhLmMKKysrIGIvc3JjL2RhdGEuYwpAQCAt MzQsNiArMzQsMTEgQEAKICNpbmNsdWRlICJmcmFtZS5oIgogI2luY2x1ZGUgImtleW1hcC5oIgog CitzdGF0aWMgdm9pZCBub3RpZnlfdmFyaWFibGVfd2F0Y2hlcnMgKExpc3BfT2JqZWN0IG9wZXJh dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3BfT2JqZWN0IHdo ZXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3Qgc3lt Ym9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3QgbmV3 dmFsKTsKKwogc3RhdGljIHZvaWQgc3dhcF9pbl9zeW12YWxfZm9yd2FyZGluZyAoc3RydWN0IExp c3BfU3ltYm9sICosCiAJCQkJICAgICAgIHN0cnVjdCBMaXNwX0J1ZmZlcl9Mb2NhbF9WYWx1ZSAq KTsKIApAQCAtNjI5LDkgKzYzNCwxNyBAQCBERUZVTiAoIm1ha3VuYm91bmQiLCBGbWFrdW5ib3Vu ZCwgU21ha3VuYm91bmQsIDEsIDEsIDAsCiAgIChyZWdpc3RlciBMaXNwX09iamVjdCBzeW1ib2wp CiB7CiAgIENIRUNLX1NZTUJPTCAoc3ltYm9sKTsKLSAgaWYgKFNZTUJPTF9DT05TVEFOVF9QIChz eW1ib2wpKQorICBzd2l0Y2ggKFhTWU1CT0wgKHN5bWJvbCktPnRyYXBwZWRfd3JpdGUpIHsKKyAg Y2FzZSBTWU1CT0xfTk9XUklURToKICAgICB4c2lnbmFsMSAoUXNldHRpbmdfY29uc3RhbnQsIHN5 bWJvbCk7Ci0gIEZzZXQgKHN5bWJvbCwgUXVuYm91bmQpOworCisgIGNhc2UgU1lNQk9MX1RSQVBQ RURfV1JJVEU6CisgICAgbm90aWZ5X3ZhcmlhYmxlX3dhdGNoZXJzIChRdW5iaW5kLCBRbmlsLCBz eW1ib2wsIFFuaWwpOworICAgIC8qIGZhbGx0aHJvdWdoICovCisgIGNhc2UgU1lNQk9MX1VOVFJB UFBFRF9XUklURToKKyAgZGVmYXVsdDoKKyAgICBGc2V0IChzeW1ib2wsIFF1bmJvdW5kKTsKKyAg fQogICByZXR1cm4gc3ltYm9sOwogfQogCkBAIC0xMjMwLDE4ICsxMjQzLDI0IEBAIHNldF9pbnRl cm5hbCAoTGlzcF9PYmplY3Qgc3ltYm9sLCBMaXNwX09iamVjdCBuZXd2YWwsIExpc3BfT2JqZWN0 IHdoZXJlLAogICAgICAgcmV0dXJuOyAqLwogCiAgIENIRUNLX1NZTUJPTCAoc3ltYm9sKTsKLSAg aWYgKFNZTUJPTF9DT05TVEFOVF9QIChzeW1ib2wpKQotICAgIHsKLSAgICAgIGlmIChOSUxQIChG a2V5d29yZHAgKHN5bWJvbCkpCi0JICB8fCAhRVEgKG5ld3ZhbCwgRnN5bWJvbF92YWx1ZSAoc3lt Ym9sKSkpCi0JeHNpZ25hbDEgKFFzZXR0aW5nX2NvbnN0YW50LCBzeW1ib2wpOwotICAgICAgZWxz ZQotCS8qIEFsbG93IHNldHRpbmcga2V5d29yZHMgdG8gdGhlaXIgb3duIHZhbHVlLiAgKi8KLQly ZXR1cm47Ci0gICAgfQorICBzeW0gPSBYU1lNQk9MIChzeW1ib2wpOworICBzd2l0Y2ggKHN5bS0+ dHJhcHBlZF93cml0ZSkgeworICBjYXNlIFNZTUJPTF9OT1dSSVRFOgorICAgIGlmIChOSUxQIChG a2V5d29yZHAgKHN5bWJvbCkpCisgICAgICAgIHx8ICFFUSAobmV3dmFsLCBGc3ltYm9sX3ZhbHVl IChzeW1ib2wpKSkKKyAgICAgIHhzaWduYWwxIChRc2V0dGluZ19jb25zdGFudCwgc3ltYm9sKTsK KyAgICBlbHNlCisgICAgICAvKiBBbGxvdyBzZXR0aW5nIGtleXdvcmRzIHRvIHRoZWlyIG93biB2 YWx1ZS4gICovCisgICAgICByZXR1cm47CisKKyAgY2FzZSBTWU1CT0xfVFJBUFBFRF9XUklURToK KyAgICBub3RpZnlfdmFyaWFibGVfd2F0Y2hlcnMgKGJpbmRmbGFnPyBRbGV0IDogUXNldCwgd2hl cmUsIHN5bWJvbCwgbmV3dmFsKTsKKyAgICAvKiBmYWxsdGhyb3VnaCAqLworICBjYXNlIFNZTUJP TF9VTlRSQVBQRURfV1JJVEU6CisgIGRlZmF1bHQ6IDsKKyAgfQogCiAgIG1heWJlX3NldF9yZWRp c3BsYXkgKHN5bWJvbCk7Ci0gIHN5bSA9IFhTWU1CT0wgKHN5bWJvbCk7CiAKICBzdGFydDoKICAg c3dpdGNoIChzeW0tPnJlZGlyZWN0KQpAQCAtMTM2NSw2ICsxMzg0LDcyIEBAIHNldF9pbnRlcm5h bCAoTGlzcF9PYmplY3Qgc3ltYm9sLCBMaXNwX09iamVjdCBuZXd2YWwsIExpc3BfT2JqZWN0IHdo ZXJlLAogICAgIH0KICAgcmV0dXJuOwogfQorCisvKiBBIChTWU1CT0wgLiAoRlVOQ1RJT05TLi4u KSkgYWxpc3QgKi8KK3N0YXRpYyBMaXNwX09iamVjdCBzeW1fd2F0Y2hlcnNfdGFibGU7CisKK3N0 YXRpYyB2b2lkCitzZXRfc3ltYm9sX3RyYXBwZWRfd3JpdGUgKExpc3BfT2JqZWN0IHN5bWJvbCwg ZW51bSBzeW1ib2xfdHJhcHBlZF93cml0ZSB0cmFwKQoreworICBzdHJ1Y3QgTGlzcF9TeW1ib2wq IHN5bSA9IFhTWU1CT0wgKHN5bWJvbCk7CisgIGlmIChzeW0tPnRyYXBwZWRfd3JpdGUgPT0gU1lN Qk9MX05PV1JJVEUpCisgICAgeHNpZ25hbDEgKFF0cmFwcGluZ19jb25zdGFudCwgc3ltYm9sKTsK KyAgc3ltLT50cmFwcGVkX3dyaXRlID0gdHJhcDsKK30KKworc3RhdGljIHZvaWQKK3Jlc2V0X3N5 bWJvbF90cmFwcGVkX3dyaXRlIChMaXNwX09iamVjdCBzeW1ib2wpCit7CisgIHNldF9zeW1ib2xf dHJhcHBlZF93cml0ZSAoc3ltYm9sLCBTWU1CT0xfVFJBUFBFRF9XUklURSk7Cit9CisKK0RFRlVO ICgiYWRkLXZhcmlhYmxlLXdhdGNoZXIiLCBGYWRkX3ZhcmlhYmxlX3dhdGNoZXIsIFNhZGRfdmFy aWFibGVfd2F0Y2hlciwKKyAgICAgICAyLCAyLCAwLAorICAgICAgIGRvYzogLyogQ2F1c2UgV0FU Q0gtRlVOQ1RJT04gdG8gYmUgY2FsbGVkIHdoZW4gU1lNQk9MIGlzIHNldC4gKi8pCisgIChMaXNw X09iamVjdCBzeW1ib2wsIExpc3BfT2JqZWN0IHdhdGNoX2Z1bmN0aW9uKQoreworICBzZXRfc3lt Ym9sX3RyYXBwZWRfd3JpdGUgKHN5bWJvbCwgU1lNQk9MX1RSQVBQRURfV1JJVEUpOworCisgIExp c3BfT2JqZWN0IHdhdGNoZXJzID0gRmdldCAoc3ltYm9sLCBRd2F0Y2hlcnMpOworICBMaXNwX09i amVjdCBtZW1iZXIgPSBGbWVtYmVyICh3YXRjaF9mdW5jdGlvbiwgd2F0Y2hlcnMpOworICBpZiAo TklMUCAobWVtYmVyKSkKKyAgICBGcHV0IChzeW1ib2wsIFF3YXRjaGVycywgRmNvbnMgKHdhdGNo X2Z1bmN0aW9uLCB3YXRjaGVycykpOworICByZXR1cm4gUW5pbDsKK30KKworREVGVU4gKCJyZW1v dmUtdmFyaWFibGUtd2F0Y2hlciIsIEZyZW1vdmVfdmFyaWFibGVfd2F0Y2hlciwgU3JlbW92ZV92 YXJpYWJsZV93YXRjaGVyLAorICAgICAgIDIsIDIsIDAsCisgICAgICAgZG9jOiAvKiBDYXVzZSBX QVRDSC1GVU5DVElPTiB0byBiZSBjYWxsZWQgd2hlbiBTWU1CT0wgaXMgc2V0LiAqLykKKyAgKExp c3BfT2JqZWN0IHN5bWJvbCwgTGlzcF9PYmplY3Qgd2F0Y2hfZnVuY3Rpb24pCit7CisgIExpc3Bf T2JqZWN0IHdhdGNoZXJzID0gRmdldCAoc3ltYm9sLCBRd2F0Y2hlcnMpOworICB3YXRjaGVycyA9 IEZkZWxldGUgKHdhdGNoX2Z1bmN0aW9uLCB3YXRjaGVycyk7CisgIGlmIChOSUxQICh3YXRjaGVy cykpCisgICAgc2V0X3N5bWJvbF90cmFwcGVkX3dyaXRlIChzeW1ib2wsIFNZTUJPTF9VTlRSQVBQ RURfV1JJVEUpOworICBGcHV0IChzeW1ib2wsIFF3YXRjaGVycywgd2F0Y2hlcnMpOworICByZXR1 cm4gUW5pbDsKK30KKworc3RhdGljIHZvaWQKK25vdGlmeV92YXJpYWJsZV93YXRjaGVycyAoTGlz cF9PYmplY3Qgb3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXNwX09iamVj dCB3aGVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzcF9PYmplY3Qgc3ltYm9sLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXNwX09iamVjdCBuZXd2YWwpCit7CisgIExpc3Bf T2JqZWN0IHdhdGNoZXJzID0gRmdldCAoc3ltYm9sLCBRd2F0Y2hlcnMpOworCisgIHNldF9zeW1i b2xfdHJhcHBlZF93cml0ZSAoc3ltYm9sLCBTWU1CT0xfVU5UUkFQUEVEX1dSSVRFKTsgLyogYXZv aWQgcmVjdXJzaW9uICovCisgIHB0cmRpZmZfdCBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7Cisg IHJlY29yZF91bndpbmRfcHJvdGVjdCAoJnJlc2V0X3N5bWJvbF90cmFwcGVkX3dyaXRlLCBzeW1i b2wpOworCisgIHdoaWxlICghTklMUCAod2F0Y2hlcnMpKSB7CisgICAgQ0FMTE4gKEZmdW5jYWxs LCBYQ0FSICh3YXRjaGVycyksIG9wZXJhdGlvbiwgd2hlcmUsIHN5bWJvbCwgbmV3dmFsKTsKKyAg ICB3YXRjaGVycyA9IFhDRFIgKHdhdGNoZXJzKTsKKyAgfQorCisgIHVuYmluZF90byAoY291bnQs IFFuaWwpOworfQorCiAMCiAvKiBBY2Nlc3Mgb3Igc2V0IGEgYnVmZmVyLWxvY2FsIHN5bWJvbCdz IGRlZmF1bHQgdmFsdWUuICAqLwogCkBAIC0xNDUxLDE2ICsxNTM2LDIyIEBAIERFRlVOICgic2V0 LWRlZmF1bHQiLCBGc2V0X2RlZmF1bHQsIFNzZXRfZGVmYXVsdCwgMiwgMiwgMCwKICAgc3RydWN0 IExpc3BfU3ltYm9sICpzeW07CiAKICAgQ0hFQ0tfU1lNQk9MIChzeW1ib2wpOwotICBpZiAoU1lN Qk9MX0NPTlNUQU5UX1AgKHN5bWJvbCkpCi0gICAgewotICAgICAgaWYgKE5JTFAgKEZrZXl3b3Jk cCAoc3ltYm9sKSkKLQkgIHx8ICFFUSAodmFsdWUsIEZkZWZhdWx0X3ZhbHVlIChzeW1ib2wpKSkK LQl4c2lnbmFsMSAoUXNldHRpbmdfY29uc3RhbnQsIHN5bWJvbCk7Ci0gICAgICBlbHNlCi0JLyog QWxsb3cgc2V0dGluZyBrZXl3b3JkcyB0byB0aGVpciBvd24gdmFsdWUuICAqLwotCXJldHVybiB2 YWx1ZTsKLSAgICB9CiAgIHN5bSA9IFhTWU1CT0wgKHN5bWJvbCk7CisgIHN3aXRjaCAoc3ltLT50 cmFwcGVkX3dyaXRlKSB7CisgIGNhc2UgU1lNQk9MX05PV1JJVEU6CisgICAgaWYgKE5JTFAgKEZr ZXl3b3JkcCAoc3ltYm9sKSkKKyAgICAgICAgfHwgIUVRICh2YWx1ZSwgRnN5bWJvbF92YWx1ZSAo c3ltYm9sKSkpCisgICAgICB4c2lnbmFsMSAoUXNldHRpbmdfY29uc3RhbnQsIHN5bWJvbCk7Cisg ICAgZWxzZQorICAgICAgLyogQWxsb3cgc2V0dGluZyBrZXl3b3JkcyB0byB0aGVpciBvd24gdmFs dWUuICAqLworICAgICAgcmV0dXJuIHZhbHVlOworCisgIGNhc2UgU1lNQk9MX1RSQVBQRURfV1JJ VEU6CisgICAgbm90aWZ5X3ZhcmlhYmxlX3dhdGNoZXJzIChRc2V0X2RlZmF1bHQsIFFuaWwsIHN5 bWJvbCwgdmFsdWUpOworICAgIC8qIGZhbGx0aHJvdWdoICovCisgIGNhc2UgU1lNQk9MX1VOVFJB UFBFRF9XUklURToKKyAgZGVmYXVsdDogOworICB9CiAKICBzdGFydDoKICAgc3dpdGNoIChzeW0t PnJlZGlyZWN0KQpAQCAtMTYzMSw3ICsxNzIyLDcgQEAgREVGVU4gKCJtYWtlLXZhcmlhYmxlLWJ1 ZmZlci1sb2NhbCIsIEZtYWtlX3ZhcmlhYmxlX2J1ZmZlcl9sb2NhbCwKICAgICBkZWZhdWx0OiBl bWFjc19hYm9ydCAoKTsKICAgICB9CiAKLSAgaWYgKHN5bS0+Y29uc3RhbnQpCisgIGlmIChzeW0t PnRyYXBwZWRfd3JpdGUgPT0gU1lNQk9MX05PV1JJVEUpCiAgICAgZXJyb3IgKCJTeW1ib2wgJXMg bWF5IG5vdCBiZSBidWZmZXItbG9jYWwiLCBTREFUQSAoU1lNQk9MX05BTUUgKHZhcmlhYmxlKSkp OwogCiAgIGlmICghYmx2KQpAQCAtMTcwNiw3ICsxNzk3LDcgQEAgREVGVU4gKCJtYWtlLWxvY2Fs LXZhcmlhYmxlIiwgRm1ha2VfbG9jYWxfdmFyaWFibGUsIFNtYWtlX2xvY2FsX3ZhcmlhYmxlLAog ICAgIGRlZmF1bHQ6IGVtYWNzX2Fib3J0ICgpOwogICAgIH0KIAotICBpZiAoc3ltLT5jb25zdGFu dCkKKyAgaWYgKHN5bS0+dHJhcHBlZF93cml0ZSA9PSBTWU1CT0xfTk9XUklURSkKICAgICBlcnJv ciAoIlN5bWJvbCAlcyBtYXkgbm90IGJlIGJ1ZmZlci1sb2NhbCIsCiAJICAgU0RBVEEgKFNZTUJP TF9OQU1FICh2YXJpYWJsZSkpKTsKIApAQCAtMTkwMCw3ICsxOTkxLDcgQEAgREVGVU4gKCJtYWtl LXZhcmlhYmxlLWZyYW1lLWxvY2FsIiwgRm1ha2VfdmFyaWFibGVfZnJhbWVfbG9jYWwsIFNtYWtl X3ZhcmlhYmxlX2YKICAgICBkZWZhdWx0OiBlbWFjc19hYm9ydCAoKTsKICAgICB9CiAKLSAgaWYg KHN5bS0+Y29uc3RhbnQpCisgIGlmIChzeW0tPnRyYXBwZWRfd3JpdGUgPT0gU1lNQk9MX05PV1JJ VEUpCiAgICAgZXJyb3IgKCJTeW1ib2wgJXMgbWF5IG5vdCBiZSBmcmFtZS1sb2NhbCIsIFNEQVRB IChTWU1CT0xfTkFNRSAodmFyaWFibGUpKSk7CiAKICAgYmx2ID0gbWFrZV9ibHYgKHN5bSwgZm9y d2FyZGVkLCB2YWxjb250ZW50cyk7CkBAIC0zNDUxLDYgKzM1NDIsNyBAQCBzeW1zX29mX2RhdGEg KHZvaWQpCiAgIERFRlNZTSAoUWN5Y2xpY192YXJpYWJsZV9pbmRpcmVjdGlvbiwgImN5Y2xpYy12 YXJpYWJsZS1pbmRpcmVjdGlvbiIpOwogICBERUZTWU0gKFF2b2lkX3ZhcmlhYmxlLCAidm9pZC12 YXJpYWJsZSIpOwogICBERUZTWU0gKFFzZXR0aW5nX2NvbnN0YW50LCAic2V0dGluZy1jb25zdGFu dCIpOworICBERUZTWU0gKFF0cmFwcGluZ19jb25zdGFudCwgInRyYXBwaW5nLWNvbnN0YW50Iik7 CiAgIERFRlNZTSAoUWludmFsaWRfcmVhZF9zeW50YXgsICJpbnZhbGlkLXJlYWQtc3ludGF4Iik7 CiAKICAgREVGU1lNIChRaW52YWxpZF9mdW5jdGlvbiwgImludmFsaWQtZnVuY3Rpb24iKTsKQEAg LTM1MjYsNiArMzYxOCw4IEBAIHN5bXNfb2ZfZGF0YSAodm9pZCkKICAgUFVUX0VSUk9SIChRdm9p ZF92YXJpYWJsZSwgZXJyb3JfdGFpbCwgIlN5bWJvbCdzIHZhbHVlIGFzIHZhcmlhYmxlIGlzIHZv aWQiKTsKICAgUFVUX0VSUk9SIChRc2V0dGluZ19jb25zdGFudCwgZXJyb3JfdGFpbCwKIAkgICAg ICJBdHRlbXB0IHRvIHNldCBhIGNvbnN0YW50IHN5bWJvbCIpOworICBQVVRfRVJST1IgKFF0cmFw cGluZ19jb25zdGFudCwgZXJyb3JfdGFpbCwKKyAgICAgICAgICAgICAiQXR0ZW1wdCB0byB0cmFw IHdyaXRlcyB0byBhIGNvbnN0YW50IHN5bWJvbCIpOwogICBQVVRfRVJST1IgKFFpbnZhbGlkX3Jl YWRfc3ludGF4LCBlcnJvcl90YWlsLCAiSW52YWxpZCByZWFkIHN5bnRheCIpOwogICBQVVRfRVJS T1IgKFFpbnZhbGlkX2Z1bmN0aW9uLCBlcnJvcl90YWlsLCAiSW52YWxpZCBmdW5jdGlvbiIpOwog ICBQVVRfRVJST1IgKFF3cm9uZ19udW1iZXJfb2ZfYXJndW1lbnRzLCBlcnJvcl90YWlsLApAQCAt MzY5OCwxMCArMzc5MiwxNyBAQCBzeW1zX29mX2RhdGEgKHZvaWQpCiAgIERFRlZBUl9MSVNQICgi bW9zdC1wb3NpdGl2ZS1maXhudW0iLCBWbW9zdF9wb3NpdGl2ZV9maXhudW0sCiAJICAgICAgIGRv YzogLyogVGhlIGxhcmdlc3QgdmFsdWUgdGhhdCBpcyByZXByZXNlbnRhYmxlIGluIGEgTGlzcCBp bnRlZ2VyLiAgKi8pOwogICBWbW9zdF9wb3NpdGl2ZV9maXhudW0gPSBtYWtlX251bWJlciAoTU9T VF9QT1NJVElWRV9GSVhOVU0pOwotICBYU1lNQk9MIChpbnRlcm5fY19zdHJpbmcgKCJtb3N0LXBv c2l0aXZlLWZpeG51bSIpKS0+Y29uc3RhbnQgPSAxOworICBtYWtlX3N5bWJvbF9jb25zdGFudCAo aW50ZXJuX2Nfc3RyaW5nICgibW9zdC1wb3NpdGl2ZS1maXhudW0iKSk7CiAKICAgREVGVkFSX0xJ U1AgKCJtb3N0LW5lZ2F0aXZlLWZpeG51bSIsIFZtb3N0X25lZ2F0aXZlX2ZpeG51bSwKIAkgICAg ICAgZG9jOiAvKiBUaGUgc21hbGxlc3QgdmFsdWUgdGhhdCBpcyByZXByZXNlbnRhYmxlIGluIGEg TGlzcCBpbnRlZ2VyLiAgKi8pOwogICBWbW9zdF9uZWdhdGl2ZV9maXhudW0gPSBtYWtlX251bWJl ciAoTU9TVF9ORUdBVElWRV9GSVhOVU0pOwotICBYU1lNQk9MIChpbnRlcm5fY19zdHJpbmcgKCJt b3N0LW5lZ2F0aXZlLWZpeG51bSIpKS0+Y29uc3RhbnQgPSAxOworICBtYWtlX3N5bWJvbF9jb25z dGFudCAoaW50ZXJuX2Nfc3RyaW5nICgibW9zdC1uZWdhdGl2ZS1maXhudW0iKSk7CisKKyAgREVG U1lNIChRd2F0Y2hlcnMsICJ3YXRjaGVycyIpOworICBERUZTWU0gKFF1bmJpbmQsICJ1bmJpbmQi KTsKKyAgREVGU1lNIChRc2V0LCAic2V0Iik7CisgIERFRlNZTSAoUXNldF9kZWZhdWx0LCAiUXNl dF9kZWZhdWx0Iik7CisgIGRlZnN1YnIgKCZTYWRkX3ZhcmlhYmxlX3dhdGNoZXIpOworICBkZWZz dWJyICgmU3JlbW92ZV92YXJpYWJsZV93YXRjaGVyKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9ldmFs LmMgYi9zcmMvZXZhbC5jCmluZGV4IGFjOThjYTEuLjNkMTc4MjUgMTAwNjQ0Ci0tLSBhL3NyYy9l dmFsLmMKKysrIGIvc3JjL2V2YWwuYwpAQCAtNTg2LDcgKzU4Niw3IEBAIERFRlVOICgiZGVmdmFy YWxpYXMiLCBGZGVmdmFyYWxpYXMsIFNkZWZ2YXJhbGlhcywgMiwgMywgMCwKIAogICBzeW0gPSBY U1lNQk9MIChuZXdfYWxpYXMpOwogCi0gIGlmIChzeW0tPmNvbnN0YW50KQorICBpZiAoc3ltLT50 cmFwcGVkX3dyaXRlID09IFNZTUJPTF9OT1dSSVRFKQogICAgIC8qIE5vdCBzdXJlIHdoeSwgYnV0 IHdoeSBub3Q/ICAqLwogICAgIGVycm9yICgiQ2Fubm90IG1ha2UgYSBjb25zdGFudCBhbiBhbGlh cyIpOwogCkBAIC02MjMsNyArNjIzLDcgQEAgREVGVU4gKCJkZWZ2YXJhbGlhcyIsIEZkZWZ2YXJh bGlhcywgU2RlZnZhcmFsaWFzLCAyLCAzLCAwLAogICBYU1lNQk9MIChiYXNlX3ZhcmlhYmxlKS0+ ZGVjbGFyZWRfc3BlY2lhbCA9IDE7CiAgIHN5bS0+cmVkaXJlY3QgPSBTWU1CT0xfVkFSQUxJQVM7 CiAgIFNFVF9TWU1CT0xfQUxJQVMgKHN5bSwgWFNZTUJPTCAoYmFzZV92YXJpYWJsZSkpOwotICBz eW0tPmNvbnN0YW50ID0gU1lNQk9MX0NPTlNUQU5UX1AgKGJhc2VfdmFyaWFibGUpOworICBzeW0t PnRyYXBwZWRfd3JpdGUgPSBYU1lNQk9MIChiYXNlX3ZhcmlhYmxlKS0+dHJhcHBlZF93cml0ZTsK ICAgTE9BREhJU1RfQVRUQUNIIChuZXdfYWxpYXMpOwogICAvKiBFdmVuIGlmIGRvY3N0cmluZyBp cyBuaWw6IHJlbW92ZSBvbGQgZG9jc3RyaW5nLiAgKi8KICAgRnB1dCAobmV3X2FsaWFzLCBRdmFy aWFibGVfZG9jdW1lbnRhdGlvbiwgZG9jc3RyaW5nKTsKQEAgLTI5NzIsNyArMjk3Miw3IEBAIHNw ZWNiaW5kIChMaXNwX09iamVjdCBzeW1ib2wsIExpc3BfT2JqZWN0IHZhbHVlKQogICAgICAgc3Bl Y3BkbF9wdHItPmxldC5zeW1ib2wgPSBzeW1ib2w7CiAgICAgICBzcGVjcGRsX3B0ci0+bGV0Lm9s ZF92YWx1ZSA9IFNZTUJPTF9WQUwgKHN5bSk7CiAgICAgICBncm93X3NwZWNwZGwgKCk7Ci0gICAg ICBpZiAoIXN5bS0+Y29uc3RhbnQpCisgICAgICBpZiAoIXN5bS0+dHJhcHBlZF93cml0ZSkKIAlT RVRfU1lNQk9MX1ZBTCAoc3ltLCB2YWx1ZSk7CiAgICAgICBlbHNlCiAJc2V0X2ludGVybmFsIChz eW1ib2wsIHZhbHVlLCBRbmlsLCAxKTsKZGlmZiAtLWdpdCBhL3NyYy9mb250LmMgYi9zcmMvZm9u dC5jCmluZGV4IDAxNmI3ZTAuLjUwOWQzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9mb250LmMKKysrIGIv c3JjL2ZvbnQuYwpAQCAtNTM4OCwxOSArNTM4OCwxOSBAQCBzeW1zX29mX2ZvbnQgKHZvaWQpCiAg ICAgW05VTUVSSUMtVkFMVUUgU1lNQk9MSUMtTkFNRSBBTElBUy1OQU1FIC4uLl0KIE5VTUVSSUMt VkFMVUUgaXMgYW4gaW50ZWdlciwgYW5kIFNZTUJPTElDLU5BTUUgYW5kIEFMSUFTLU5BTUUgYXJl IHN5bWJvbHMuICovKTsKICAgVmZvbnRfd2VpZ2h0X3RhYmxlID0gQlVJTERfU1RZTEVfVEFCTEUg KHdlaWdodF90YWJsZSk7Ci0gIFhTWU1CT0wgKGludGVybl9jX3N0cmluZyAoImZvbnQtd2VpZ2h0 LXRhYmxlIikpLT5jb25zdGFudCA9IDE7CisgIG1ha2Vfc3ltYm9sX2NvbnN0YW50IChpbnRlcm5f Y19zdHJpbmcgKCJmb250LXdlaWdodC10YWJsZSIpKTsKIAogICBERUZWQVJfTElTUF9OT1BSTyAo ImZvbnQtc2xhbnQtdGFibGUiLCBWZm9udF9zbGFudF90YWJsZSwKIAkgICAgICAgZG9jOiAvKiAg VmVjdG9yIG9mIGZvbnQgc2xhbnQgc3ltYm9scyB2cyB0aGUgY29ycmVzcG9uZGluZyBudW1lcmlj IHZhbHVlcy4KIFNlZSBgZm9udC13ZWlnaHQtdGFibGUnIGZvciB0aGUgZm9ybWF0IG9mIHRoZSB2 ZWN0b3IuICovKTsKICAgVmZvbnRfc2xhbnRfdGFibGUgPSBCVUlMRF9TVFlMRV9UQUJMRSAoc2xh bnRfdGFibGUpOwotICBYU1lNQk9MIChpbnRlcm5fY19zdHJpbmcgKCJmb250LXNsYW50LXRhYmxl IikpLT5jb25zdGFudCA9IDE7CisgIG1ha2Vfc3ltYm9sX2NvbnN0YW50IChpbnRlcm5fY19zdHJp bmcgKCJmb250LXNsYW50LXRhYmxlIikpOwogCiAgIERFRlZBUl9MSVNQX05PUFJPICgiZm9udC13 aWR0aC10YWJsZSIsIFZmb250X3dpZHRoX3RhYmxlLAogCSAgICAgICBkb2M6IC8qICBBbGlzdCBv ZiBmb250IHdpZHRoIHN5bWJvbHMgdnMgdGhlIGNvcnJlc3BvbmRpbmcgbnVtZXJpYyB2YWx1ZXMu CiBTZWUgYGZvbnQtd2VpZ2h0LXRhYmxlJyBmb3IgdGhlIGZvcm1hdCBvZiB0aGUgdmVjdG9yLiAq Lyk7CiAgIFZmb250X3dpZHRoX3RhYmxlID0gQlVJTERfU1RZTEVfVEFCTEUgKHdpZHRoX3RhYmxl KTsKLSAgWFNZTUJPTCAoaW50ZXJuX2Nfc3RyaW5nICgiZm9udC13aWR0aC10YWJsZSIpKS0+Y29u c3RhbnQgPSAxOworICBtYWtlX3N5bWJvbF9jb25zdGFudCAoaW50ZXJuX2Nfc3RyaW5nICgiZm9u dC13aWR0aC10YWJsZSIpKTsKIAogICBzdGF0aWNwcm8gKCZmb250X3N0eWxlX3RhYmxlKTsKICAg Zm9udF9zdHlsZV90YWJsZSA9IG1ha2VfdW5pbml0X3ZlY3RvciAoMyk7CmRpZmYgLS1naXQgYS9z cmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAzZWZhNDkyLi5iODQzMWVlIDEwMDY0NAotLS0g YS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTMzNyw3ICszMzcsNyBAQCBlcnJvciAh OwogI2RlZmluZSBsaXNwX2hfTklMUCh4KSBFUSAoeCwgUW5pbCkKICNkZWZpbmUgbGlzcF9oX1NF VF9TWU1CT0xfVkFMKHN5bSwgdikgXAogICAgKGVhc3NlcnQgKChzeW0pLT5yZWRpcmVjdCA9PSBT WU1CT0xfUExBSU5WQUwpLCAoc3ltKS0+dmFsLnZhbHVlID0gKHYpKQotI2RlZmluZSBsaXNwX2hf U1lNQk9MX0NPTlNUQU5UX1Aoc3ltKSAoWFNZTUJPTCAoc3ltKS0+Y29uc3RhbnQpCisjZGVmaW5l IGxpc3BfaF9TWU1CT0xfVFJBUFBFRF9XUklURV9QKHN5bSkgKFhTWU1CT0wgKHN5bSktPnRyYXBw ZWRfd3JpdGUpCiAjZGVmaW5lIGxpc3BfaF9TWU1CT0xfVkFMKHN5bSkgXAogICAgKGVhc3NlcnQg KChzeW0pLT5yZWRpcmVjdCA9PSBTWU1CT0xfUExBSU5WQUwpLCAoc3ltKS0+dmFsLnZhbHVlKQog I2RlZmluZSBsaXNwX2hfU1lNQk9MUCh4KSAoWFRZUEUgKHgpID09IExpc3BfU3ltYm9sKQpAQCAt MzgzLDcgKzM4Myw3IEBAIGVycm9yICE7CiAjIGRlZmluZSBNSVNDUCh4KSBsaXNwX2hfTUlTQ1Ag KHgpCiAjIGRlZmluZSBOSUxQKHgpIGxpc3BfaF9OSUxQICh4KQogIyBkZWZpbmUgU0VUX1NZTUJP TF9WQUwoc3ltLCB2KSBsaXNwX2hfU0VUX1NZTUJPTF9WQUwgKHN5bSwgdikKLSMgZGVmaW5lIFNZ TUJPTF9DT05TVEFOVF9QKHN5bSkgbGlzcF9oX1NZTUJPTF9DT05TVEFOVF9QIChzeW0pCisjIGRl ZmluZSBTWU1CT0xfVFJBUFBFRF9XUklURV9QKHN5bSkgbGlzcF9oX1NZTUJPTF9UUkFQUEVEX1dS SVRFX1AgKHN5bSkKICMgZGVmaW5lIFNZTUJPTF9WQUwoc3ltKSBsaXNwX2hfU1lNQk9MX1ZBTCAo c3ltKQogIyBkZWZpbmUgU1lNQk9MUCh4KSBsaXNwX2hfU1lNQk9MUCAoeCkKICMgZGVmaW5lIFZF Q1RPUkxJS0VQKHgpIGxpc3BfaF9WRUNUT1JMSUtFUCAoeCkKQEAgLTYzMCw2ICs2MzAsMTMgQEAg ZW51bSBzeW1ib2xfcmVkaXJlY3QKICAgU1lNQk9MX0ZPUldBUkRFRCA9IDMKIH07CiAKK2VudW0g c3ltYm9sX3RyYXBwZWRfd3JpdGUKK3sKKyAgU1lNQk9MX1VOVFJBUFBFRF9XUklURSA9IDAsCisg IFNZTUJPTF9OT1dSSVRFID0gMSwKKyAgU1lNQk9MX1RSQVBQRURfV1JJVEUgPSAyCit9OworCiBz dHJ1Y3QgTGlzcF9TeW1ib2wKIHsKICAgYm9vbF9iZiBnY21hcmtiaXQgOiAxOwpAQCAtNjQxLDEw ICs2NDgsMTAgQEAgc3RydWN0IExpc3BfU3ltYm9sCiAgICAgIDMgOiBpdCdzIGEgZm9yd2FyZGlu ZyB2YXJpYWJsZSwgdGhlIHZhbHVlIGlzIGluIGBmb3J3YXJkJy4gICovCiAgIEVOVU1fQkYgKHN5 bWJvbF9yZWRpcmVjdCkgcmVkaXJlY3QgOiAzOwogCi0gIC8qIE5vbi16ZXJvIG1lYW5zIHN5bWJv bCBpcyBjb25zdGFudCwgaS5lLiBjaGFuZ2luZyBpdHMgdmFsdWUKLSAgICAgc2hvdWxkIHNpZ25h bCBhbiBlcnJvci4gIElmIHRoZSB2YWx1ZSBpcyAzLCB0aGVuIHRoZSB2YXIKLSAgICAgY2FuIGJl IGNoYW5nZWQsIGJ1dCBvbmx5IGJ5IGBkZWZjb25zdCcuICAqLwotICB1bnNpZ25lZCBjb25zdGFu dCA6IDI7CisgIC8qIDAgOiBub3JtYWwgY2FzZSwganVzdCBzZXQgdGhlIHZhbHVlCisgICAgIDEg OiBjb25zdGFudCwgY2Fubm90IHNldCwgZS5nLiBuaWwsIHQsIDprZXl3b3Jkcy4KKyAgICAgMiA6 IHRyYXAgdGhlIHdyaXRlLCBjYWxsIHdhdGNoZXIgZnVuY3Rpb25zLiAgKi8KKyAgRU5VTV9CRiAo c3ltYm9sX3RyYXBwZWRfd3JpdGUpIHRyYXBwZWRfd3JpdGUgOiAyOwogCiAgIC8qIEludGVybmVk IHN0YXRlIG9mIHRoZSBzeW1ib2wuICBUaGlzIGlzIGFuIGVudW1lcmF0b3IgZnJvbQogICAgICBl bnVtIHN5bWJvbF9pbnRlcm5lZC4gICovCkBAIC0xODI5LDE0ICsxODM2LDE0IEBAIFNZTUJPTF9J TlRFUk5FRF9JTl9JTklUSUFMX09CQVJSQVlfUCAoTGlzcF9PYmplY3Qgc3ltKQogICByZXR1cm4g WFNZTUJPTCAoc3ltKS0+aW50ZXJuZWQgPT0gU1lNQk9MX0lOVEVSTkVEX0lOX0lOSVRJQUxfT0JB UlJBWTsKIH0KIAotLyogVmFsdWUgaXMgbm9uLXplcm8gaWYgc3ltYm9sIGlzIGNvbnNpZGVyZWQg YSBjb25zdGFudCwgaS5lLiBpdHMKLSAgIHZhbHVlIGNhbm5vdCBiZSBjaGFuZ2VkICh0aGVyZSBp cyBhbiBleGNlcHRpb24gZm9yIGtleXdvcmQgc3ltYm9scywKLSAgIHdob3NlIHZhbHVlIGNhbiBi ZSBzZXQgdG8gdGhlIGtleXdvcmQgc3ltYm9sIGl0c2VsZikuICAqLworLyogVmFsdWUgaXMgbm9u LXplcm8gaWYgc3ltYm9sIGNhbm5vdCBiZSBjaGFuZ2VkIHRocm91Z2ggYSBzaW1wbGUgc2V0LAor IGkuZS4gaXQncyBhIGNvbnN0YW50IChlLmcuIG5pbCwgdCwgOmtleXdvcmRzKSwgb3IgaXQgaGFz IHNvbWUKKyB3YXRjaGluZyBmdW5jdGlvbnMuICAqLwogCiBJTkxJTkUgaW50Ci0oU1lNQk9MX0NP TlNUQU5UX1ApIChMaXNwX09iamVjdCBzeW0pCisoU1lNQk9MX1RSQVBQRURfV1JJVEVfUCkgKExp c3BfT2JqZWN0IHN5bSkKIHsKLSAgcmV0dXJuIGxpc3BfaF9TWU1CT0xfQ09OU1RBTlRfUCAoc3lt KTsKKyAgcmV0dXJuIGxpc3BfaF9TWU1CT0xfVFJBUFBFRF9XUklURV9QIChzeW0pOwogfQogCiAv KiBQbGFjZWhvbGRlciBmb3IgbWFrZS1kb2NmaWxlIHRvIHByb2Nlc3MuICBUaGUgYWN0dWFsIHN5 bWJvbApAQCAtMzI1Niw2ICszMjYzLDEyIEBAIHNldF9zeW1ib2xfbmV4dCAoTGlzcF9PYmplY3Qg c3ltLCBzdHJ1Y3QgTGlzcF9TeW1ib2wgKm5leHQpCiAgIFhTWU1CT0wgKHN5bSktPm5leHQgPSBu ZXh0OwogfQogCitJTkxJTkUgdm9pZAorbWFrZV9zeW1ib2xfY29uc3RhbnQgKExpc3BfT2JqZWN0 IHN5bSkKK3sKKyAgWFNZTUJPTCAoc3ltKS0+dHJhcHBlZF93cml0ZSA9IFNZTUJPTF9OT1dSSVRF OworfQorCiAvKiBCdWZmZXItbG9jYWwgKGFsc28gZnJhbWUtbG9jYWwpIHZhcmlhYmxlIGFjY2Vz cyBmdW5jdGlvbnMuICAqLwogCiBJTkxJTkUgaW50CmRpZmYgLS1naXQgYS9zcmMvbHJlYWQuYyBi L3NyYy9scmVhZC5jCmluZGV4IGM0NDU2ZjMuLjA4NTIyMTUgMTAwNjQ0Ci0tLSBhL3NyYy9scmVh ZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC0zNzIxLDcgKzM3MjEsNyBAQCBpbnRlcm5fc3ltIChM aXNwX09iamVjdCBzeW0sIExpc3BfT2JqZWN0IG9iYXJyYXksIExpc3BfT2JqZWN0IGluZGV4KQog CiAgIGlmIChTUkVGIChTWU1CT0xfTkFNRSAoc3ltKSwgMCkgPT0gJzonICYmIEVRIChvYmFycmF5 LCBpbml0aWFsX29iYXJyYXkpKQogICAgIHsKLSAgICAgIFhTWU1CT0wgKHN5bSktPmNvbnN0YW50 ID0gMTsKKyAgICAgIG1ha2Vfc3ltYm9sX2NvbnN0YW50IChzeW0pOwogICAgICAgWFNZTUJPTCAo c3ltKS0+cmVkaXJlY3QgPSBTWU1CT0xfUExBSU5WQUw7CiAgICAgICBTRVRfU1lNQk9MX1ZBTCAo WFNZTUJPTCAoc3ltKSwgc3ltKTsKICAgICB9CkBAIC00MDEwLDEyICs0MDEwLDEyIEBAIGluaXRf b2JhcnJheSAodm9pZCkKIAogICBERUZTWU0gKFFuaWwsICJuaWwiKTsKICAgU0VUX1NZTUJPTF9W QUwgKFhTWU1CT0wgKFFuaWwpLCBRbmlsKTsKLSAgWFNZTUJPTCAoUW5pbCktPmNvbnN0YW50ID0g MTsKKyAgbWFrZV9zeW1ib2xfY29uc3RhbnQgKFFuaWwpOwogICBYU1lNQk9MIChRbmlsKS0+ZGVj bGFyZWRfc3BlY2lhbCA9IHRydWU7CiAKICAgREVGU1lNIChRdCwgInQiKTsKICAgU0VUX1NZTUJP TF9WQUwgKFhTWU1CT0wgKFF0KSwgUXQpOwotICBYU1lNQk9MIChRdCktPmNvbnN0YW50ID0gMTsK KyAgbWFrZV9zeW1ib2xfY29uc3RhbnQgKFF0KTsKICAgWFNZTUJPTCAoUXQpLT5kZWNsYXJlZF9z cGVjaWFsID0gdHJ1ZTsKIAogICAvKiBRdCBpcyBjb3JyZWN0IGV2ZW4gaWYgQ0FOTk9UX0RVTVAu ICBsb2FkdXAuZWwgd2lsbCBzZXQgdG8gbmlsIGF0IGVuZC4gICovCi0tIAoyLjYuMgoK --047d7bdca97e0b0e75052526bf55 Content-Type: text/x-diff; charset=US-ASCII; name="0002-Add-function-to-trigger-debugger-on-variable-write.patch" Content-Disposition: attachment; filename="0002-Add-function-to-trigger-debugger-on-variable-write.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ihavmpcv1 RnJvbSA4NjU1ZjI2OTBmNTg5MTE3ZWE4Njc3ZjRlMWRmYjFiZWY3OGFjNzViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FtIFBvc3RhdnNreSA8bnBvc3RhdnNAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIxIE5vdiAyMDE1IDE2OjAzOjA2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzNd IEFkZCBmdW5jdGlvbiB0byB0cmlnZ2VyIGRlYnVnZ2VyIG9uIHZhcmlhYmxlIHdyaXRlCgoqIGxp c3AvZW1hY3MtbGlzcC9kZWJ1Zy5lbCAoZGVidWctb24tc2V0KToKKGRlYnVnLS12YXJpYWJsZS1s aXN0KToKKGNhbmNlbC1kZWJ1Zy1vbi1zZXQpOiBOZXcgZnVuY3Rpb25zLgotLS0KIGxpc3AvZW1h Y3MtbGlzcC9kZWJ1Zy5lbCB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDM5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9saXNw L2VtYWNzLWxpc3AvZGVidWcuZWwgYi9saXNwL2VtYWNzLWxpc3AvZGVidWcuZWwKaW5kZXggMGUz MDdmYS4uYTlmNjk3OCAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2RlYnVnLmVsCisrKyBi L2xpc3AvZW1hY3MtbGlzcC9kZWJ1Zy5lbApAQCAtNzY1LDYgKzc2NSw0NSBAQCAoZGVmdW4gZGVi dWctLWltcGxlbWVudC1kZWJ1Zy1vbi1lbnRyeSAoJnJlc3QgX2lnbm9yZSkKICAgICAgIChmdW5j YWxsIGRlYnVnZ2VyICdkZWJ1ZykpKSkKIAogOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBkZWJ1Zy1v bi1zZXQgKHZhcmlhYmxlKQorICAoaW50ZXJhY3RpdmUKKyAgIChsZXQqICgodmFyLWF0LXBvaW50 ICh2YXJpYWJsZS1hdC1wb2ludCkpCisgICAgICAgICAgKHZhciAoYW5kIChzeW1ib2xwIHZhci1h dC1wb2ludCkgdmFyLWF0LXBvaW50KSkKKyAgICAgICAgICAodmFsIChjb21wbGV0aW5nLXJlYWQK KyAgICAgICAgICAgICAgICAoY29uY2F0ICJEZWJ1ZyB3aGVuIHNldHRpbmcgdmFyaWFibGUiCisg ICAgICAgICAgICAgICAgICAgICAgICAoaWYgdmFyIChmb3JtYXQgIiAoZGVmYXVsdCAlcyk6ICIg dmFyKSAiOiAiKSkKKyAgICAgICAgICAgICAgICBvYmFycmF5ICMnYm91bmRwCisgICAgICAgICAg ICAgICAgdCBuaWwgbmlsIChhbmQgdmFyIChzeW1ib2wtbmFtZSB2YXIpKSkpKQorICAgICAobGlz dCAoaWYgKGVxdWFsIHZhbCAiIikgdmFyIChpbnRlcm4gdmFsKSkpKSkKKyAgKGFkZC12YXJpYWJs ZS13YXRjaGVyIHZhcmlhYmxlICMnZGVidWctLWltcGxlbWVudC1kZWJ1Zy1vbi1lbnRyeSkpCisK KworKGRlZnVuIGRlYnVnLS12YXJpYWJsZS1saXN0ICgpCisgICJMaXN0IG9mIHZhcmlhYmxlcyBj dXJyZW50bHkgc2V0IGZvciBkZWJ1ZyBvbiBzZXQuIgorICAobGV0ICgodmFycyAnKCkpKQorICAg IChtYXBhdG9tcworICAgICAobGFtYmRhIChzKQorICAgICAgICh3aGVuIChhbmQgKGJvdW5kcCBz KSAobWVtcSAjJ2RlYnVnLS1pbXBsZW1lbnQtZGVidWctb24tZW50cnkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGdldCBzICd3YXRjaGVycykpKQorICAgICAgICAgKHB1c2gg cyB2YXJzKSkpKQorICAgIHZhcnMpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIGNhbmNlbC1k ZWJ1Zy1vbi1zZXQgKCZvcHRpb25hbCB2YXJpYWJsZSkKKyAgKGludGVyYWN0aXZlCisgICAobGlz dCAobGV0ICgobmFtZQorICAgICAgICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQKKyAgICAgICAg ICAgICAgICAgIkNhbmNlbCBkZWJ1ZyBvbiBzZXQgZm9yIHZhcmlhYmxlIChkZWZhdWx0IGFsbCB2 YXJpYWJsZXMpOiAiCisgICAgICAgICAgICAgICAgIChtYXBjYXIgIydzeW1ib2wtbmFtZSAoZGVi dWctLXZhcmlhYmxlLWxpc3QpKSBuaWwgdCkpKQorICAgICAgICAgICAod2hlbiBuYW1lCisgICAg ICAgICAgICAgKHVubGVzcyAoc3RyaW5nPSBuYW1lICIiKQorICAgICAgICAgICAgICAgKGludGVy biBuYW1lKSkpKSkpCisgIChpZiB2YXJpYWJsZQorICAgICAgKHJlbW92ZS12YXJpYWJsZS13YXRj aGVyIHZhcmlhYmxlICMnZGVidWctLWltcGxlbWVudC1kZWJ1Zy1vbi1lbnRyeSkKKyAgICAobWVz c2FnZSAiQ2FuY2VsaW5nIGRlYnVnLW9uLXNldCBmb3IgYWxsIHZhcmlhYmxlcyIpCisgICAgKG1h cGMgIydjYW5jZWwtZGVidWctb24tc2V0IChkZWJ1Zy0tdmFyaWFibGUtbGlzdCkpKSkKKworOzs7 IyMjYXV0b2xvYWQKIChkZWZ1biBkZWJ1Zy1vbi1lbnRyeSAoZnVuY3Rpb24pCiAgICJSZXF1ZXN0 IEZVTkNUSU9OIHRvIGludm9rZSBkZWJ1Z2dlciBlYWNoIHRpbWUgaXQgaXMgY2FsbGVkLgogCi0t IAoyLjYuMgoK --047d7bdca97e0b0e75052526bf55 Content-Type: text/x-diff; charset=US-ASCII; name="0003-Ensure-redisplay-using-variable-watchers.patch" Content-Disposition: attachment; filename="0003-Ensure-redisplay-using-variable-watchers.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ihavmpdv2 RnJvbSBmM2U4MmFiNmQyOWRjMGI2NzM3MDRkYWZkN2U4YzhjNjM2YmYwNDA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FtIFBvc3RhdnNreSA8bnBvc3RhdnNAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIxIE5vdiAyMDE1IDE3OjAyOjQyIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAzLzNd IEVuc3VyZSByZWRpc3BsYXkgdXNpbmcgdmFyaWFibGUgd2F0Y2hlcnMKCkluc3RlYWQgb2YgbG9v a2luZyB1cCB0aGUgdmFyaWFibGUgbmFtZSBpbiByZWRpc3BsYXktLXZhcmlhYmxlcyB3aGVuCnNl dHRpbmcuCgoqIGxpc3AvZnJhbWUuZWw6IFJlcGxhY2UgcmVkaXNwbGF5LS12YXJpYWJsZXMgd2l0 aCBhZGQtdmFyaWFibGUtd2F0Y2hlcgogIGNhbGxzLgoqIHNyYy9kYXRhLmMgKHNldF9pbnRlcm5h bCk6IFJlbW92ZSBtYXliZV9zZXRfcmVkaXNwbGF5IGNhbGwuCiogc3JjL3hkaXNwLmMgKEZzZXRf cmVkaXNwbGF5KTogUmVuYW1lIGZyb20gbWF5YmVfc2V0X3JlZGlzcGxheSwgc2V0IHRoZQogIHJl ZGlzcGxheSBmbGFnIHVuY29uZGl0aW9uYWxseS4KLS0tCiBsaXNwL2ZyYW1lLmVsIHwgIDMgKy0t CiBzcmMvZGF0YS5jICAgIHwgIDIgLS0KIHNyYy93aW5kb3cuaCAgfCAgMSAtCiBzcmMveGRpc3Au YyAgIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZnJhbWUuZWwgYi9saXNw L2ZyYW1lLmVsCmluZGV4IGYwMjQwNjUuLjk1YzUxNGYgMTAwNjQ0Ci0tLSBhL2xpc3AvZnJhbWUu ZWwKKysrIGIvbGlzcC9mcmFtZS5lbApAQCAtMjIzMiw5ICsyMjMyLDggQEAgKG1ha2Utb2Jzb2xl dGUtdmFyaWFibGUKICAnd2luZG93LXN5c3RlbS12ZXJzaW9uICJpdCBkb2VzIG5vdCBnaXZlIHVz ZWZ1bCBpbmZvcm1hdGlvbi4iICIyNC4zIikKIAogOzsgVmFyaWFibGVzIHdoaWNoIHNob3VsZCB0 cmlnZ2VyIHJlZGlzcGxheSBvZiB0aGUgY3VycmVudCBidWZmZXIuCi0oc2V0cSByZWRpc3BsYXkt LXZhcmlhYmxlcyAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICdlcSA6c2l6ZSAxMCkpCiAobWFwYyAo bGFtYmRhICh2YXIpCi0gICAgICAgIChwdXRoYXNoIHZhciAxIHJlZGlzcGxheS0tdmFyaWFibGVz KSkKKyAgICAgICAgKGFkZC12YXJpYWJsZS13YXRjaGVyIHZhciAjJ3NldC1yZWRpc3BsYXkpKQog ICAgICAgJyhsaW5lLXNwYWNpbmcKICAgICAgICAgb3ZlcmxpbmUtbWFyZ2luCiAgICAgICAgIGxp bmUtcHJlZml4CmRpZmYgLS1naXQgYS9zcmMvZGF0YS5jIGIvc3JjL2RhdGEuYwppbmRleCA3YzZm YzJjLi5hNDExY2Y1IDEwMDY0NAotLS0gYS9zcmMvZGF0YS5jCisrKyBiL3NyYy9kYXRhLmMKQEAg LTEyNjAsOCArMTI2MCw2IEBAIHNldF9pbnRlcm5hbCAoTGlzcF9PYmplY3Qgc3ltYm9sLCBMaXNw X09iamVjdCBuZXd2YWwsIExpc3BfT2JqZWN0IHdoZXJlLAogICBkZWZhdWx0OiA7CiAgIH0KIAot ICBtYXliZV9zZXRfcmVkaXNwbGF5IChzeW1ib2wpOwotCiAgc3RhcnQ6CiAgIHN3aXRjaCAoc3lt LT5yZWRpcmVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9zcmMvd2luZG93 LmgKaW5kZXggMTM1ZjVkZS4uZWFmZjU3ZSAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisrKyBi L3NyYy93aW5kb3cuaApAQCAtMTA1Niw3ICsxMDU2LDYgQEAgZXh0ZXJuIHZvaWQgd3NldF9yZWRp c3BsYXkgKHN0cnVjdCB3aW5kb3cgKncpOwogZXh0ZXJuIHZvaWQgZnNldF9yZWRpc3BsYXkgKHN0 cnVjdCBmcmFtZSAqZik7CiBleHRlcm4gdm9pZCBic2V0X3JlZGlzcGxheSAoc3RydWN0IGJ1ZmZl ciAqYik7CiBleHRlcm4gdm9pZCBic2V0X3VwZGF0ZV9tb2RlX2xpbmUgKHN0cnVjdCBidWZmZXIg KmIpOwotZXh0ZXJuIHZvaWQgbWF5YmVfc2V0X3JlZGlzcGxheSAoTGlzcF9PYmplY3QpOwogLyog Q2FsbCB0aGlzIHRvIHRlbGwgcmVkaXNwbGF5IHRvIGxvb2sgZm9yIG90aGVyIHdpbmRvd3MgdGhh biBzZWxlY3RlZC13aW5kb3cKICAgIHRoYXQgbmVlZCB0byBiZSByZWRpc3BsYXllZC4gIENhbGxp bmcgb25lIG9mIHRoZSAqc2V0X3JlZGlzcGxheSBmdW5jdGlvbnMKICAgIGFib3ZlIGFscmVhZHkg ZG9lcyBpdCwgc28gaXQncyBvbmx5IG5lZWRlZCBpbiB1bnVzdWFsIGNhc2VzLiAgKi8KZGlmZiAt LWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggMzBkZmFjNS4uNzA1ZjM1MiAx MDA2NDQKLS0tIGEvc3JjL3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTYyMCwxNSArNjIw LDE0IEBAIGJzZXRfdXBkYXRlX21vZGVfbGluZSAoc3RydWN0IGJ1ZmZlciAqYikKICAgYi0+dGV4 dC0+cmVkaXNwbGF5ID0gdHJ1ZTsKIH0KIAotdm9pZAotbWF5YmVfc2V0X3JlZGlzcGxheSAoTGlz cF9PYmplY3Qgc3ltYm9sKQorREVGVU4gKCJzZXQtcmVkaXNwbGF5IiwgRnNldF9yZWRpc3BsYXks IFNzZXRfcmVkaXNwbGF5LAorICAgICAgIDAsIE1BTlksIDAsCisgICAgICAgZG9jOiAvKiBDYXVz ZSBhIGZ1bGwgcmVkaXNwbGF5IHRvIGhhcHBlbi4KKyAgICAgICB1c2FnZTogKCkgKi8pCisgIChw dHJkaWZmX3QgbmFyZ3MsIExpc3BfT2JqZWN0KiByZXN0KQogewotICBpZiAoSEFTSF9UQUJMRV9Q IChWcmVkaXNwbGF5X192YXJpYWJsZXMpCi0gICAgICAmJiBoYXNoX2xvb2t1cCAoWEhBU0hfVEFC TEUgKFZyZWRpc3BsYXlfX3ZhcmlhYmxlcyksIHN5bWJvbCwgTlVMTCkgPj0gMCkKLSAgICB7Ci0g ICAgICBic2V0X3VwZGF0ZV9tb2RlX2xpbmUgKGN1cnJlbnRfYnVmZmVyKTsKLSAgICAgIGN1cnJl bnRfYnVmZmVyLT5wcmV2ZW50X3JlZGlzcGxheV9vcHRpbWl6YXRpb25zX3AgPSB0cnVlOwotICAg IH0KKyAgYnNldF91cGRhdGVfbW9kZV9saW5lIChjdXJyZW50X2J1ZmZlcik7CisgIGN1cnJlbnRf YnVmZmVyLT5wcmV2ZW50X3JlZGlzcGxheV9vcHRpbWl6YXRpb25zX3AgPSB0cnVlOwogfQogCiAj aWZkZWYgR0xZUEhfREVCVUcKQEAgLTMxNDc4LDkgKzMxNDc3LDcgQEAgb3IgdCAobWVhbmluZyBh bGwgd2luZG93cykuICAqLyk7CiAJICAgICAgIGRvYzogLyogICovKTsKICAgVnJlZGlzcGxheV9f bW9kZV9saW5lc19jYXVzZSA9IEZtYWtlX2hhc2hfdGFibGUgKDAsIE5VTEwpOwogCi0gIERFRlZB Ul9MSVNQICgicmVkaXNwbGF5LS12YXJpYWJsZXMiLCBWcmVkaXNwbGF5X192YXJpYWJsZXMsCi0g ICAgIGRvYzogLyogQSBoYXNoLXRhYmxlIG9mIHZhcmlhYmxlcyBjaGFuZ2luZyB3aGljaCB0cmln Z2VycyBhIHRob3JvdWdoIHJlZGlzcGxheS4gICovKTsKLSAgVnJlZGlzcGxheV9fdmFyaWFibGVz ID0gUW5pbDsKKyAgZGVmc3ViciAoJlNzZXRfcmVkaXNwbGF5KTsKIH0KIAogCi0tIAoyLjYuMgoK --047d7bdca97e0b0e75052526bf55--