From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Re: Do you recognize these modules? Date: Wed, 11 Jul 2012 13:59:06 -0400 Message-ID: References: <87zk9r8p1s.fsf@gnuvola.org> <8762bz89zg.fsf@gnuvola.org> <87r4unszj2.fsf@gnu.org> <87k40eg0k1.fsf@gnuvola.org> <87mx59kxqw.fsf@pobox.com> <87ehq8od4e.fsf@gnuvola.org> <87wr40s9yk.fsf@pobox.com> <87396onqi0.fsf@gnuvola.org> <87sjcypoet.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8fb1f8d6626dcf04c4919afe X-Trace: dough.gmane.org 1342029557 7644 80.91.229.3 (11 Jul 2012 17:59:17 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 11 Jul 2012 17:59:17 +0000 (UTC) Cc: =?ISO-8859-1?Q?Ludovic_Court=E8s?= , Thien-Thi Nguyen , guile-devel@gnu.org To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Jul 11 19:59:15 2012 Return-path: Envelope-to: guile-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 1Sp1Bx-0003Hm-8j for guile-devel@m.gmane.org; Wed, 11 Jul 2012 19:59:13 +0200 Original-Received: from localhost ([::1]:50833 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sp1Bw-0004RQ-Ee for guile-devel@m.gmane.org; Wed, 11 Jul 2012 13:59:12 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:46298) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sp1Bt-0004RL-9C for guile-devel@gnu.org; Wed, 11 Jul 2012 13:59:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sp1Br-0004wJ-UB for guile-devel@gnu.org; Wed, 11 Jul 2012 13:59:09 -0400 Original-Received: from mail-qc0-f169.google.com ([209.85.216.169]:47025) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sp1Br-0004wE-Mc; Wed, 11 Jul 2012 13:59:07 -0400 Original-Received: by qcsd16 with SMTP id d16so1115412qcs.0 for ; Wed, 11 Jul 2012 10:59:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=JMJEhFIFInFdF7SorhN7eRZII1jvnt/1X+03uSfwQX8=; b=SqQUCNIA9cbYAZld0YqjeYgBXf+HOxp71ukJFsaoM369Uhb45AHL4If5OnaEvy7CQz WM7oj/utbfu0/0xKDWW9d5cIatZt3p7pxVsvjEicTRP6xX5lF94Y5L4V1QmohuEO4RZi TUjcRGMcM5LMG6t5bDhjKp10fNJTB6Gee63W9CgF41h7eIO+mgWcUwMU1EcytNN06cnM mb0KTEFtdS97ZWPAVJHVUNRxSg4/5dgVxsq6wOflzRIonjM5eDE8TX6Ppvk4HoMWWv32 KeLIncrq2O1g0Z5UQcc3pipJp/0zkEmULlifnm4S+drHPJ6z/4++8iJ8nWPOL3reDRVV Uw6w== Original-Received: by 10.60.29.38 with SMTP id g6mr29107548oeh.45.1342029546286; Wed, 11 Jul 2012 10:59:06 -0700 (PDT) Original-Received: by 10.76.82.68 with HTTP; Wed, 11 Jul 2012 10:59:06 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: KwFlUUf-kNZnu6agygKJx4JS6Qk X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.216.169 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14745 Archived-At: --e89a8fb1f8d6626dcf04c4919afe Content-Type: text/plain; charset=ISO-8859-1 And here is a patch to remove all of the @twerp* comments. But did you mean that I should remove them in the same patches that import the documentation? I thought it was easier to do it separately, but I could probably do it that way too. Noah On Wed, Jul 11, 2012 at 11:20 AM, Noah Lavine wrote: > Ooops, I think those errors are because I forgot to commit my changes > to guile.texi for patches 3 and 4. Here are updated versions. (I > believe the second patch from earlier should work.) > > I will make another patch to clean out the @twerpcommentary lines. > > Noah > > On Wed, Jul 11, 2012 at 6:44 AM, Andy Wingo wrote: >> On Wed 11 Jul 2012 05:02, Noah Lavine writes: >> >>> I'm sorry to miss 2.0.6 by only a few days, but I have turned this >>> documentation into some patches. Here they are; I think they are ready >>> to apply to stable-2.0. >> >> Cool. I applied the first one. When applying the rest, I got: >> >> /home/wingo/src/guile/doc/ref//lineio.texi:12: Prev reference to nonexistent node `Double-Key Hash Tables' (perhaps incorrect sectioning?). >> /home/wingo/src/guile/doc/ref//hcons.texi:12: `Eq? Hash Consing' has no Up field (perhaps incorrect sectioning?). >> /home/wingo/src/guile/doc/ref//gap-buffer.texi:12: Next reference to nonexistent node `Double-Key Hash Tables' (perhaps incorrect sectioning?). >> /home/wingo/src/guile/doc/ref//guile.texi:375: Menu reference to nonexistent node `Double-Key Hash Tables' (perhaps incorrect sectioning?). >> /home/wingo/src/guile/doc/ref//hcons.texi:12: warning: unreferenced node `Eq? Hash Consing'. >> makeinfo: Removing output file `guile.info' due to errors; use --force to preserve. >> make[4]: *** [guile.info] Error 1 >> >> As Thien-Thi suggests, it's probably good to filter out the >> @twerpcommentary etcetera in your next patches. >> >> Cheers, >> >> Andy >> -- >> http://wingolog.org/ --e89a8fb1f8d6626dcf04c4919afe Content-Type: application/octet-stream; name="0001-Remove-twerp-comments-in-documentation.patch" Content-Disposition: attachment; filename="0001-Remove-twerp-comments-in-documentation.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h4ippvcx2 RnJvbSBlMTdkMDhiODNlNzUzYTc3MmVlNGY2YTEyNmM2OTE5ZTA5YjAyZjIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bm9haC5iLmxhdmluZUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVsIDIwMTIgMTM6NTU6NDUgLTA0MDAKU3ViamVjdDogW1BBVENIXSBS ZW1vdmUgQHR3ZXJwIGNvbW1lbnRzIGluIGRvY3VtZW50YXRpb24KCiAqIGRvYy9yZWYvY2FsbGlu Zy50ZXhpOgogKiBkb2MvcmVmL2NvbW1vbi1saXN0LnRleGk6CiAqIGRvYy9yZWYvZ2FwLWJ1ZmZl ci50ZXhpOgogKiBkb2MvcmVmL2hjb25zLnRleGk6CiAqIGRvYy9yZWYvbGluZWlvLnRleGk6CiAq IGRvYy9yZWYvbHMudGV4aToKICogZG9jL3JlZi9tYXBwaW5nLnRleGk6CiAqIGRvYy9yZWYvcG9l LnRleGk6CiAqIGRvYy9yZWYvcG9wZW4udGV4aToKICogZG9jL3JlZi9ydW5xLnRleGk6CiAqIGRv Yy9yZWYvc2Vzc2lvbi50ZXhpOgogKiBkb2MvcmVmL3N0YWNrLWNhdGNoLnRleGk6CiAqIGRvYy9y ZWYvc3RyaW5nLWZ1bi50ZXhpOgogKiBkb2MvcmVmL3RocmVhZHMudGV4aTogcmVtb3ZlIEB0d2Vy cCBjb21tZW50cy4gVGhleSBzZWVtIHRvIGhhdmUKIGJlZW4gZ2VuZXJhdGVkIGJ5IGFuIG9sZCBk b2N1bWVudGF0aW9uIHN5c3RlbS4KLS0tCiBkb2MvcmVmL2NhbGxpbmcudGV4aSAgICAgfCAgIDI2 ICsrKy0tLS0tLS0KIGRvYy9yZWYvY29tbW9uLWxpc3QudGV4aSB8ICAgNzIgKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCiBkb2MvcmVmL2dhcC1idWZmZXIudGV4aSAgfCAgMTEyICsrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZG9jL3JlZi9oY29ucy50 ZXhpICAgICAgIHwgICAyNSArKystLS0tLS0tCiBkb2MvcmVmL2xpbmVpby50ZXhpICAgICAgfCAg IDExICstLS0KIGRvYy9yZWYvbHMudGV4aSAgICAgICAgICB8ICAgMTQgKystLS0tCiBkb2MvcmVm L21hcHBpbmcudGV4aSAgICAgfCAgIDE3ICsrLS0tLS0KIGRvYy9yZWYvcG9lLnRleGkgICAgICAg ICB8ICAgIDYgKy0tCiBkb2MvcmVmL3BvcGVuLnRleGkgICAgICAgfCAgIDEwICstLS0KIGRvYy9y ZWYvcnVucS50ZXhpICAgICAgICB8ICAgMjMgKysrLS0tLS0tLQogZG9jL3JlZi9zZXNzaW9uLnRl eGkgICAgIHwgICAyNSArKystLS0tLS0tLQogZG9jL3JlZi9zdGFjay1jYXRjaC50ZXhpIHwgICAg NCAtLQogZG9jL3JlZi9zdHJpbmctZnVuLnRleGkgIHwgICAgMiAtCiBkb2MvcmVmL3RocmVhZHMu dGV4aSAgICAgfCAgIDEwIC0tLS0KIDE0IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyks IDI1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvcmVmL2NhbGxpbmcudGV4aSBiL2Rv Yy9yZWYvY2FsbGluZy50ZXhpCmluZGV4IDE3MmY3NDQuLmVjNmIyMjkgMTAwNjQ0Ci0tLSBhL2Rv Yy9yZWYvY2FsbGluZy50ZXhpCisrKyBiL2RvYy9yZWYvY2FsbGluZy50ZXhpCkBAIC0xOCw4ICsx OCw2IEBAIFRvIG1ha2UgdXNlIG9mIGlkaW9tYXRpYyBjYWxsaW5nLWNvbnZlbnRpb24gbWFjcm9z LCBldmFsdWF0ZSB0aGUgZm9ybToKICh1c2UtbW9kdWxlcyAoaWNlLTkgY2FsbGluZykpCiBAZW5k IHNtYWxsbGlzcAogCi1AYyBAdHdlcnBtYWNkb2MgKHNhdmUtYmluZGluZ3MtZXhjdXJzaW9uKQot QGMgLi4vLi4vaWNlLTkvY2FsbGluZy5kb2MKIEBkZWZmbiB7U2NoZW1lIE1hY3JvfSBzYXZlLWJp bmRpbmdzLWV4Y3Vyc2lvbiB2YXJzIFtib2R5Li4uXQogRXhwYW5kIHRvIGEgZm9ybSB0aGF0IHNh dmVzIHRoZSB2YWx1ZXMgZm9yIGVhY2ggYmluZGluZyBuYW1lZCBpbgogQHZhcnt2YXJzfSwgYSBs aXN0IG9mIHVuZXZhbHVhdGVkIHN5bWJvbHMgbmFtaW5nIGJpbmRpbmdzIGluIHRoZQpAQCAtMzks OCArMzcsNyBAQCB0aGVuIHJlc3RvcmVzIHRoZSB2YWx1ZXMuICBUaGVzZSBvcGVyYXRpb25zIGZv cm0gdGhlIHRocmVlIGJyYW5jaGVzIG9mIGEKICAgKGNoayEpKQogQGVuZCBleGFtcGxlCiBAZW5k IGRlZmZuCi1AYyBAdHdlcnBtYWNkb2MgKHdpdGgtZXhjdXJzaW9uLWZ1bmN0aW9uKQotQGMgLi4v Li4vaWNlLTkvY2FsbGluZy5kb2MKKwogQGRlZmZuIHtTY2hlbWUgTWFjcm99IHdpdGgtZXhjdXJz aW9uLWZ1bmN0aW9uIHZhcnMgY29sbGVjdAogRXhwYW5kIHRvIGFuIGFwcGxpY2F0aW9uIG9mIEB2 YXJ7Y29sbGVjdH0gdG8gYW4gZXhjdXJzaW9uIHByb2MgQHZhcntleH0uCiBAdmFye2V4fSB0YWtl cyBvbmUgYXJndW1lbnQsIGEgdGh1bmssIHdoaWNoIGZvcm1zIHRoZSBtaWRkbGUgYnJhbmNoIG9m IGEKQEAgLTY1LDggKzYyLDcgQEAgZXhjdXJzaW9uIHByb2MgaXMgbmFtZWQgQGNvZGV7ZXh9LiAg Tm90ZSB0aGF0IHRoaXMgaXMgZnVuY3Rpb25hbGx5CiBlcXVpdmFsZW50IHRvIHRoZSBvbmUgZm9y IEBjb2Rle3NhdmUtYmluZGluZ3MtZXhjdXJzaW9ufSAod2l0aCBzZXR1cAogZGVmaW5pdGlvbnMg ZWxpZGVkKS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycG1hY2RvYyAod2l0aC1nZXR0ZXItYW5kLXNl dHRlcikKLUBjIC4uLy4uL2ljZS05L2NhbGxpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1lIE1hY3Jv fSB3aXRoLWdldHRlci1hbmQtc2V0dGVyIHZhcnMgY29sbGVjdAogRXhwYW5kIHRvIGFuIGFwcGxp Y2F0aW9uIG9mIEB2YXJ7Y29sbGVjdH0gdG8gQHZhcntnZXR0ZXJ9IGFuZCBAdmFye3NldHRlcn0K IHByb2NzIGZvciBAdmFye3ZhcnN9LCBhbiB1bmV2YWx1YXRlZCBsaXN0IG9mIHN5bWJvbHMgbmFt aW5nIGJpbmRpbmdzIGluCkBAIC0xMTQsMTMgKzExMCwxMSBAQCBUaGVzZSBjYWxsaW5nIHNlcXVl bmNlcyBzdXBwb3J0cyB0d28gaGFuZHkgaWRpb21zOgogICAobGFtYmRhIChmb28gYmFyKSAuLi4u KSkKIEBlbmQgZXhhbXBsZQogQGVuZCBkZWZmbgotQGMgQHR3ZXJwbWFjZG9jICh3aXRoLWdldHRl cikKLUBjIC4uLy4uL2ljZS05L2NhbGxpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1lIE1hY3JvfSB3 aXRoLWdldHRlciB2YXJzIGNvbGxlY3QKIExpa2UgQGNvZGV7d2l0aC1nZXR0ZXItYW5kLXNldHRl cn0gYnV0IGNvbGxlY3Qgb25seSBAdmFye2dldHRlcn0uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBt YWNkb2MgKHdpdGgtZGVsZWdhdGluZy1nZXR0ZXItYW5kLXNldHRlcikKLUBjIC4uLy4uL2ljZS05 L2NhbGxpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1lIE1hY3JvfSB3aXRoLWRlbGVnYXRpbmctZ2V0 dGVyLWFuZC1zZXR0ZXIgdmFycyBzdWItZyBzdWItcyBjb2xsZWN0CiBFeHBhbmQgdG8gYW4gYXBw bGljYXRpb24gb2YgQHZhcntjb2xsZWN0fSB0byBAdmFye2dldHRlcn0gYW5kIEB2YXJ7c2V0dGVy fQogcHJvY3MgZm9yIEB2YXJ7dmFyc30sIGFuIHVuZXZhbHVhdGVkIGxpc3Qgb2Ygc3ltYm9scyBu YW1pbmcgYmluZGluZ3MgaW4KQEAgLTEzNCw4ICsxMjgsNyBAQCBsaWtlOgogSWYgZ2l2ZW4gYSBu YW1lIG5vdCBpbiBAdmFye3ZhcnN9LCBAdmFye2dldHRlcn0gYW5kIEB2YXJ7c2V0dGVyfSBjYWxs CiBAdmFye3N1Yi1nfSBhbmQgQHZhcntzdWItc30sIHJlc3BlY3RpdmVseS4KIEBlbmQgZGVmZm4K LUBjIEB0d2VycG1hY2RvYyAod2l0aC1leGN1cnNpb24tZ2V0dGVyLWFuZC1zZXR0ZXIpCi1AYyAu Li8uLi9pY2UtOS9jYWxsaW5nLmRvYworCiBAZGVmZm4ge1NjaGVtZSBNYWNyb30gd2l0aC1leGN1 cnNpb24tZ2V0dGVyLWFuZC1zZXR0ZXIgdmFycyBjb2xsZWN0CiBFeHBhbmQgdG8gYW4gYXBwbGlj YXRpb24gb2YgQHZhcntjb2xsZWN0fSB0byBleGN1cnNpb24gcHJvYyBAdmFye2V4fSwKIEB2YXJ7 Z2V0dGVyfSBhbmQgQHZhcntzZXR0ZXJ9IHByb2NzIGZvciBAdmFye3ZhcnN9LCBhbiB1bmV2YWx1 YXRlZCBsaXN0IG9mCkBAIC0xNDgsOCArMTQxLDcgQEAgc3ltYm9scyBuYW1pbmcgYmluZGluZ3Mg aW4gdGhlIGNhbGxlciBvZgogCiBTZWUgQGNvZGV7d2l0aC1leGN1cnNpb24tZnVuY3Rpb259IGFu ZCBAY29kZXt3aXRoLWdldHRlci1hbmQtc2V0dGVyfS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycG1h Y2RvYyAod2l0aC1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyKQotQGMgLi4vLi4vaWNl LTkvY2FsbGluZy5kb2MKKwogQGRlZmZuIHtTY2hlbWUgTWFjcm99IHdpdGgtY29uZmlndXJhdGlv bi1nZXR0ZXItYW5kLXNldHRlciB2YXJzLWV0YyBjb2xsZWN0CiBFeHBhbmQgdG8gYW4gYXBwbGlj YXRpb24gb2YgQHZhcntjb2xsZWN0fSB0byBAdmFye2dldHRlcn0gYW5kIEB2YXJ7c2V0dGVyfQog cHJvY3MgZm9yIEB2YXJ7dmFycy1ldGN9LCBhIGxpc3Qgb2YgYmluZGluZyBzcGVjaWZpZXJzIGZv ciBiaW5kaW5ncwpAQCAtMTc2LDE0ICsxNjgsMTIgQEAgbmFtZS4gIElmIG9taXR0ZWQgKG9yICNm IGlzIHBhc3NlZCksIHVzZSB0aGUgbm9ybWFsIHZhbHVlIG9mIEBjb2Rle25hbWV9LgogQHZhcntz ZXR0ZXItaG9va30gaXMgYSBwcm9jZWR1cmUgb2Ygb25lIGFyZ3VtZW50IHRoYXQgYWNjZXB0cyBh IG5ldyB2YWx1ZQogZm9yIEB2YXJ7bmFtZX0uICBJZiBvbWl0dGVkLCBAdmFye25hbWV9IGlzIHNp bXBseSB1cGRhdGVkIHdpdGggQGNvZGV7c2V0IX0uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBtYWNk b2MgKHdpdGgtZGVsZWdhdGluZy1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyKQotQGMg Li4vLi4vaWNlLTkvY2FsbGluZy5kb2MKKwogQGRlZmZuIHtTY2hlbWUgTWFjcm99IHdpdGgtZGVs ZWdhdGluZy1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyIHZhcnMtZXRjIHN1Yi1nIHN1 Yi1zIGNvbGxlY3QKIExpa2UgQGNvZGV7d2l0aC1kZWxlZ2F0aW5nLWdldHRlci1hbmQtc2V0dGVy fSBidXQgdXNpbmcgQHZhcnt2YXJzLWV0Y30KIGFzIHdpdGggQGNvZGV7d2l0aC1jb25maWd1cmF0 aW9uLWdldHRlci1hbmQtc2V0dGVyfS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycG1hY2RvYyAobGV0 LXdpdGgtY29uZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNldHRlcikKLUBjIC4uLy4uL2ljZS05L2Nh bGxpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1lIE1hY3JvfSBsZXQtd2l0aC1jb25maWd1cmF0aW9u LWdldHRlci1hbmQtc2V0dGVyIHZhcnMtZXRjIGNvbGxlY3QKIExpa2UgQGNvZGV7d2l0aC1jb25m aWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyfQogZXhjZXB0IHRoYXQgZWFjaCBlbGVtZW50IG9m IEB2YXJ7dmFycy1ldGN9IGlzOgpkaWZmIC0tZ2l0IGEvZG9jL3JlZi9jb21tb24tbGlzdC50ZXhp IGIvZG9jL3JlZi9jb21tb24tbGlzdC50ZXhpCmluZGV4IDI3NDFjNTMuLjAzNjQ4ZGIgMTAwNjQ0 Ci0tLSBhL2RvYy9yZWYvY29tbW9uLWxpc3QudGV4aQorKysgYi9kb2MvcmVmL2NvbW1vbi1saXN0 LnRleGkKQEAgLTIyLDQzICsyMiwzNiBAQCBmb3IgR3VpbGUuICBUbyBsb2FkIGl0OgogCiBAeHJl ZntTUkZJLTF9LCBmb3IgYW5vdGhlciBsaXN0IGxpYnJhcnkuCiAKLUBjIEB0d2VycGRvYyAoYWRq b2luKQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFBy b2NlZHVyZX0gYWRqb2luIGUgbAogUmV0dXJuIGxpc3QgTCwgcG9zc2libHkgd2l0aCBlbGVtZW50 IEUgYWRkZWQgaWYgaXQgaXMgbm90IGFscmVhZHkgaW4gTC4KIEBlbmQgZGVmZm4KLUBjIEB0d2Vy cGRvYyAodW5pb24pCi1AYyAuLi8uLi9pY2UtOS9jb21tb24tbGlzdC5kb2MKKwogQGRlZmZuIHtT Y2hlbWUgUHJvY2VkdXJlfSB1bmlvbiBsMSBsMgogUmV0dXJuIGEgbmV3IGxpc3QgdGhhdCBpcyB0 aGUgdW5pb24gb2YgTDEgYW5kIEwyLgogRWxlbWVudHMgdGhhdCBvY2N1ciBpbiBib3RoIGxpc3Rz IG9jY3VyIG9ubHkgb25jZSBpbgogdGhlIHJlc3VsdCBsaXN0LgogQGVuZCBkZWZmbgotQGMgQHR3 ZXJwZG9jIChpbnRlcnNlY3Rpb24pCi1AYyAuLi8uLi9pY2UtOS9jb21tb24tbGlzdC5kb2MKKwog QGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBpbnRlcnNlY3Rpb24gbDEgbDIKIFJldHVybiBhIG5l dyBsaXN0IHRoYXQgaXMgdGhlIGludGVyc2VjdGlvbiBvZiBMMSBhbmQgTDIuCiBPbmx5IGVsZW1l bnRzIHRoYXQgb2NjdXIgaW4gYm90aCBsaXN0cyBvY2N1ciBpbiB0aGUgcmVzdWx0IGxpc3QuCiBA ZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKHNldC1kaWZmZXJlbmNlKQotQGMgLi4vLi4vaWNlLTkv Y29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gc2V0LWRpZmZlcmVu Y2UgbDEgbDIKIFJldHVybiBlbGVtZW50cyBmcm9tIGxpc3QgTDEgdGhhdCBhcmUgbm90IGluIGxp c3QgTDIuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKHJlZHVjZS1pbml0KQotQGMgLi4vLi4v aWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gcmVkdWNl LWluaXQgcCBpbml0IGwKIFNhbWUgYXMgYHJlZHVjZScgZXhjZXB0IGl0IGltcGxpY2l0bHkgaW5z ZXJ0cyBJTklUIGF0IHRoZSBzdGFydCBvZiBMLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChy ZWR1Y2UpCi1AYyAuLi8uLi9zcmZpL3NyZmktMS5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSByZWR1Y2UgZiByaWRlbnRpdHkgbHN0CiBAY29kZXtyZWR1Y2V9IGlzIGEgdmFyaWFudCBv ZiBAY29kZXtmb2xkfS4gIElmIEB2YXJ7bHN0fSBpcwogQGNvZGV7KCl9LCBAdmFye3JpZGVudGl0 eX0gaXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIEBjb2Rleyhmb2xkIChjYXIKIEB2YXJ7bHN0fSkg KGNkciBAdmFye2xzdH0pKX0gaXMgcmV0dXJuZWQuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2Mg KHNvbWUpCi1AYyAuLi8uLi9pY2UtOS9jb21tb24tbGlzdC5kb2MKKwogQGRlZmZuIHtTY2hlbWUg UHJvY2VkdXJlfSBzb21lIHByZWQgbCBbcmVzdC4uLl0KIFBSRUQgaXMgYSBib29sZWFuIGZ1bmN0 aW9uIG9mIGFzIG1hbnkgYXJndW1lbnRzIGFzIHRoZXJlIGFyZSBsaXN0CiBhcmd1bWVudHMgdG8g YHNvbWUnLCBpLmUuLCBMIHBsdXMgYW55IG9wdGlvbmFsIGFyZ3VtZW50cy4gIFBSRUQgaXMKQEAg LTY3LDEwMCArNjAsODMgQEAgYXMgb25lIG9mIHRoZXNlIGFwcGxpY2F0aW9ucyByZXR1cm5zIGEg dHJ1ZSB2YWx1ZSwgcmV0dXJuIHRoYXQgdmFsdWUuCiBJZiBubyBhcHBsaWNhdGlvbiByZXR1cm5z IGEgdHJ1ZSB2YWx1ZSwgcmV0dXJuICNmLgogQWxsIHRoZSBsaXN0cyBzaG91bGQgaGF2ZSB0aGUg c2FtZSBsZW5ndGguCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGV2ZXJ5KQotQGMgLi4vLi4v c3JmaS9zcmZpLTEuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZXZlcnkgcHJlZCBs cyBbbGlzdHMuLi5dCiBBcHBseSBAdmFye3ByZWR9IGFjcm9zcyB0aGUgbGlzdHMgYW5kIHJldHVy biBhIHRydWUgdmFsdWUgaWYgdGhlCiBwcmVkaWNhdGUgcmV0dXJucyB0cnVlIGZvciBldmVyeSBv ZiB0aGUgbGlzdCBlbGVtZW50cyhzKTsgcmV0dXJuCiBAY29kZXsjZn0gb3RoZXJ3aXNlLiAgVGhl IHRydWUgdmFsdWUgcmV0dXJuZWQgaXMgYWx3YXlzIHRoZSByZXN1bHQgb2YKIHRoZSBmaW5hbCBz dWNjZXNzZnVsIGFwcGxpY2F0aW9uIG9mIEB2YXJ7cHJlZH0uCiBAZW5kIGRlZmZuCi1AYyBAdHdl cnBkb2MgKG5vdGFueSkKLUBjIC4uLy4uL2ljZS05L2NvbW1vbi1saXN0LmRvYworCiBAZGVmZm4g e1NjaGVtZSBQcm9jZWR1cmV9IG5vdGFueSBwcmVkIFtscy4uLl0KIFJldHVybiAjdCBpZmYgZXZl cnkgYXBwbGljYXRpb24gb2YgUFJFRCB0byBMLCBldGMuLCByZXR1cm5zICNmLgogQW5hbG9nb3Vz IHRvIHNvbWUgYnV0IHJldHVybnMgI3QgaWYgbm8gYXBwbGljYXRpb24gb2YgUFJFRCByZXR1cm5z IGEKIHRydWUgdmFsdWUgb3IgI2YgYXMgc29vbiBhcyBhbnkgb25lIGRvZXMuCiBAZW5kIGRlZmZu Ci1AYyBAdHdlcnBkb2MgKG5vdGV2ZXJ5KQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9j CisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbm90ZXZlcnkgcHJlZCBbbHMuLi5dCiBSZXR1 cm4gI3QgaWZmIHRoZXJlIGlzIGFuIGFwcGxpY2F0aW9uIG9mIFBSRUQgdG8gTCwgZXRjLiwgdGhh dCByZXR1cm5zICNmLgogQW5hbG9nb3VzIHRvIHNvbWUgYnV0IHJldHVybnMgI3QgYXMgc29vbiBh cyBhbiBhcHBsaWNhdGlvbiBvZiBQUkVEIHJldHVybnMgI2YsCiBvciAjZiBvdGhlcndpc2UuCiBA ZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGNvdW50LWlmKQotQGMgLi4vLi4vaWNlLTkvY29tbW9u LWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gY291bnQtaWYgcHJlZCBsCiBS ZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBMIGZvciB3aGljaCAoUFJFRCBlbGVtZW50 KSByZXR1cm5zIHRydWUuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGZpbmQtaWYpCi1AYyAu Li8uLi9pY2UtOS9jb21tb24tbGlzdC5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBm aW5kLWlmIHByZWQgbAogU2VhcmNoIGZvciB0aGUgZmlyc3QgZWxlbWVudCBpbiBMIGZvciB3aGlj aCAoUFJFRCBlbGVtZW50KSByZXR1cm5zIHRydWUuCiBJZiBmb3VuZCwgcmV0dXJuIHRoYXQgZWxl bWVudCwgb3RoZXJ3aXNlIHJldHVybiAjZi4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAobWVt YmVyLWlmKQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1l IFByb2NlZHVyZX0gbWVtYmVyLWlmIHByZWQgbAogUmV0dXJuIHRoZSBmaXJzdCBzdWJsaXN0IG9m IEwgZm9yIHdob3NlIGNhciBQUkVEIGlzIHRydWUuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2Mg KHJlbW92ZS1pZikKLUBjIC4uLy4uL2ljZS05L2NvbW1vbi1saXN0LmRvYworCiBAZGVmZm4ge1Nj aGVtZSBQcm9jZWR1cmV9IHJlbW92ZS1pZiBwcmVkIGwKIFJlbW92ZSBhbGwgZWxlbWVudHMgZnJv bSBMIHdoZXJlIChQUkVEIGVsZW1lbnQpIGlzIHRydWUuCiBSZXR1cm4gZXZlcnl0aGluZyB0aGF0 J3MgbGVmdC4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAocmVtb3ZlLWlmLW5vdCkKLUBjIC4u Ly4uL2ljZS05L2NvbW1vbi1saXN0LmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IHJl bW92ZS1pZi1ub3QgcHJlZCBsCiBSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gTCB3aGVyZSAoUFJF RCBlbGVtZW50KSBpcyAjZi4KIFJldHVybiBldmVyeXRoaW5nIHRoYXQncyBsZWZ0LgogQGVuZCBk ZWZmbgotQGMgQHR3ZXJwZG9jIChkZWxldGUtaWYhKQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxp c3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZGVsZXRlLWlmISBwcmVkIGwKIERl c3RydWN0aXZlIHZlcnNpb24gb2YgYHJlbW92ZS1pZicuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBk b2MgKGRlbGV0ZS1pZi1ub3QhKQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBk ZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZGVsZXRlLWlmLW5vdCEgcHJlZCBsCiBEZXN0cnVjdGl2 ZSB2ZXJzaW9uIG9mIGByZW1vdmUtaWYtbm90Jy4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAo YnV0bGFzdCkKLUBjIC4uLy4uL2ljZS05L2NvbW1vbi1saXN0LmRvYworCiBAZGVmZm4ge1NjaGVt ZSBQcm9jZWR1cmV9IGJ1dGxhc3QgbHN0IG4KIFJldHVybiBhbGwgYnV0IHRoZSBsYXN0IE4gZWxl bWVudHMgb2YgTFNULgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChhbmQ/KQotQGMgLi4vLi4v aWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gYW5kPyBb YXJncy4uLl0KIFJldHVybiAjdCBpZmYgYWxsIG9mIEFSR1MgYXJlIHRydWUuCiBAZW5kIGRlZmZu Ci1AYyBAdHdlcnBkb2MgKG9yPykKLUBjIC4uLy4uL2ljZS05L2NvbW1vbi1saXN0LmRvYworCiBA ZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IG9yPyBbYXJncy4uLl0KIFJldHVybiAjdCBpZmYgYW55 IG9mIEFSR1MgaXMgdHJ1ZS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoaGFzLWR1cGxpY2F0 ZXM/KQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFBy b2NlZHVyZX0gaGFzLWR1cGxpY2F0ZXM/IGxzdAogUmV0dXJuICN0IGlmZiAyIG1lbWJlcnMgb2Yg TFNUIGFyZSBlcXVhbD8sIGVsc2UgI2YuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKHBpY2sp Ci1AYyAuLi8uLi9pY2UtOS9jb21tb24tbGlzdC5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSBwaWNrIHAgbAogQXBwbHkgUCB0byBlYWNoIGVsZW1lbnQgb2YgTCwgcmV0dXJuaW5nIGEg bGlzdCBvZiBlbHRzCiBmb3Igd2hpY2ggUCByZXR1cm5zIGEgbm9uLSNmIHZhbHVlLgogQGVuZCBk ZWZmbgotQGMgQHR3ZXJwZG9jIChwaWNrLW1hcHBpbmdzKQotQGMgLi4vLi4vaWNlLTkvY29tbW9u LWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gcGljay1tYXBwaW5ncyBwIGwK IEFwcGx5IFAgdG8gZWFjaCBlbGVtZW50IG9mIEwsIHJldHVybmluZyBhIGxpc3Qgb2YgdGhlCiBu b24tI2YgcmV0dXJuIHZhbHVlcyBvZiBQLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jICh1bmlx KQotQGMgLi4vLi4vaWNlLTkvY29tbW9uLWxpc3QuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2Nl ZHVyZX0gdW5pcSBsCiBSZXR1cm4gYSBsaXN0IGNvbnRhaW5pbmcgZWxlbWVudHMgb2YgTCwgd2l0 aCBkdXBsaWNhdGVzIHJlbW92ZWQuCiBAZW5kIGRlZmZuCmRpZmYgLS1naXQgYS9kb2MvcmVmL2dh cC1idWZmZXIudGV4aSBiL2RvYy9yZWYvZ2FwLWJ1ZmZlci50ZXhpCmluZGV4IDM2MzU1MGMuLjMy NzMwNzUgMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvZ2FwLWJ1ZmZlci50ZXhpCisrKyBiL2RvYy9yZWYv Z2FwLWJ1ZmZlci50ZXhpCkBAIC0xOCw3ICsxOCw2IEBAIFRvIGxvYWQgc3VwcG9ydCBmb3IgZWZm aWNpZW50IGluc2VydC9kZWxldGUgb3BlcmF0aW9ucyBvbiBzdHJpbmdzOgogKHVzZS1tb2R1bGVz IChpY2UtOSBnYXAtYnVmZmVyKSkKIEBlbmQgbGlzcAogCi1AYyBAdHdlcnBjb21tZW50YXJ5ICh2 ZXJiYXRpbSAoaWNlLTkgZ2FwLWJ1ZmZlcikpCiBAdmVyYmF0aW0KIEEgZ2FwIGJ1ZmZlciBpcyBh IHN0cnVjdHVyZSB0aGF0IG1vZGVscyBhIHN0cmluZyBidXQgYWxsb3dzIHJlbGF0aXZlbHkKIGVm ZmljaWVudCBpbnNlcnRpb24gb2YgdGV4dCBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZS4gIFRoZSBp bnNlcnRpb24KQEAgLTY2LDIxICs2NSwxNyBAQCB3aXRoIGFsbCBmaWVsZHMgKEdBUC1TSVpFLCBB TExPQy1TSVpFLCBNSU5ULU1JTiwgUE9JTlQsIGFuZCBQT0lOVC1NQVgpCiBpbnRlZ2VycywgYW5k IGV2ZXJ5dGhpbmcgZWxzZSBhcyBzaG93biBoZXJlLgogQGVuZCB2ZXJiYXRpbQogCi1AYyBAdHdl cnBkb2MgKGdiPykKLUBjIC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCiBAZGVmZm4ge1NjaGVt ZSBQcm9jZWR1cmV9IGdiPyBvYmplY3QKIFJldHVybiAjdCBpZmYgQHZhcntvYmplY3R9IGlzIGEg Z2FwIGJ1ZmZlciBvYmplY3QuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKG1ha2UtZ2FwLWJ1 ZmZlcikKLUBjIC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFBy b2NlZHVyZX0gbWFrZS1nYXAtYnVmZmVyIFtpbml0XQogUmV0dXJuIGEgbmV3IGdhcCBidWZmZXIu ICBPcHRpb25hbCBhcmcgQHZhcntpbml0fSBpcyBlaXRoZXIgYSBwb3J0CiB0byByZWFkIGZyb207 IGEgc3RyaW5nLCB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGJ1ZmZlciBjb250ZW50czsKIG9yIGFu IGludGVnZXIgc3BlY2lmeWluZyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gKGluIGJ5dGVzKSByZXF1 ZXN0ZWQuCiBQb2ludCBpcyBsZWZ0IGF0IHRoZSBtYXhpbXVtIHBvc2l0aW9uLgogQGVuZCBkZWZm bgotQGMgQHR3ZXJwZG9jIChnYi10b2dnbGUtcmVhZC1vbmx5KQotQGMgLi4vLi4vaWNlLTkvZ2Fw LWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBnYi10b2dnbGUtcmVhZC1v bmx5IGdiIFthcmddCiBDaGFuZ2Ugd2hldGhlciBAdmFye2difSBpcyByZWFkLW9ubHkuCiBXaXRo IGFyZywgc2V0IHJlYWQtb25seSBpZmYgYXJnIGlzIHBvc2l0aXZlLgpAQCAtOTMsNzQgKzg4LDYw IEBAIHdhc3RlZnVsIGRhdGEgbW90aW9uLgogCiBAc3Vic2VjdGlvbiBxdWVyeWluZwogCi1AYyBA dHdlcnBkb2MgKGdiLXBvaW50KQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKIEBkZWZm biB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItcG9pbnQgZ2IKIFJldHVybiB0aGUgcG9zaXRpb24gb2Yg cG9pbnQgaW4gQHZhcntnYn0uCiBUaGlzIGlzIGFuIGludGVnZXIgc3RhcnRpbmcgd2l0aCAxIChv bmUpLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1wb2ludC1taW4pCi1AYyAuLi8uLi9p Y2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLXBvaW50 LW1pbiBnYgogUmV0dXJuIHRoZSBtaW5pbXVtIHBvc2l0aW9uIHBvc3NpYmxlIGZvciBwb2ludCBp biBAdmFye2difS4KIEF0IHRoaXMgdGltZSwgdGhpcyB2YWx1ZSBpcyBhbHdheXMgMSAob25lKS4K IEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoZ2ItcG9pbnQtbWF4KQotQGMgLi4vLi4vaWNlLTkv Z2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBnYi1wb2ludC1tYXgg Z2IKIFJldHVybiB0aGUgbWF4aW11bSBwb3NpdGlvbiBwb3NzaWJsZSBmb3IgcG9pbnQgaW4gQHZh cntnYn0uCiBUaGlzIHZhbHVlIGNhbiBiZSBjaGFuZ2VkIGJ5IGluc2VydGluZyB0ZXh0IGludG8g dGhlIGJ1ZmZlciwKIGFuZCBpcyBsaW1pdGVkIGJ5IEd1aWxlJ3Mgc3RyaW5nIGltcGxlbWVudGF0 aW9uLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1jaGFyLWFmdGVyKQotQGMgLi4vLi4v aWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBnYi1jaGFy LWFmdGVyIGdiIFtwb3MuLi5dCiBSZXR1cm4gY2hhciBhZnRlciBAdmFye3Bvc30sIG9yICNmIGlm IHRoZXJlIGlzIG5vIGNoYXIgdGhlcmUuCiBJZiBAdmFye3Bvc30gaXMgbm90IHNwZWNpZmllZCwg aXQgZGVmYXVsdHMgdG8gcG9pbnQuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLWNoYXIt YmVmb3JlKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUg UHJvY2VkdXJlfSBnYi1jaGFyLWJlZm9yZSBnYiBbcG9zLi4uXQogUmV0dXJuIGNoYXIgYmVmb3Jl IEB2YXJ7cG9zfSwgb3IgI2YgaWYgdGhlcmUgaXMgbm8gY2hhciB0aGVyZS4KIElmIEB2YXJ7cG9z fSBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBwb2ludC4KIEBlbmQgZGVmZm4KLUBj IEB0d2VycGRvYyAoZ2ItYm9scCkKLUBjIC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBk ZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItYm9scCBnYgogUmV0dXJuICN0IGlmIHBvaW50IGlu IEB2YXJ7Z2J9IGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lLgogQGVuZCBkZWZmbgotQGMg QHR3ZXJwZG9jIChnYi1lb2xwKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRl ZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBnYi1lb2xwIGdiCiBSZXR1cm4gI3QgaWYgcG9pbnQgaW4g QHZhcntnYn0gaXMgYXQgdGhlIGVuZCBvZiBhIGxpbmUuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBk b2MgKGdiLWJvYnApCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1Nj aGVtZSBQcm9jZWR1cmV9IGdiLWJvYnAgZ2IKIFJldHVybiAjdCBpZiBwb2ludCBpcyBhdCB0aGUg YmVnaW5uaW5nIG9mIEB2YXJ7Z2J9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1lb2Jw KQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSBnYi1lb2JwIGdiCiBSZXR1cm4gI3QgaWYgcG9pbnQgaXMgYXQgdGhlIGVuZCBvZiBAdmFy e2difS4KIEBlbmQgZGVmZm4KIAogQHN1YnNlY3Rpb24gbXVuZ2luZwogCi1AYyBAdHdlcnBkb2Mg KGdiLWluc2VydC1zdHJpbmchKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKIEBkZWZm biB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItaW5zZXJ0LXN0cmluZyEgZ2Igc3RyaW5nCiBJbnNlcnQg aW50byBAdmFye2difSBhIEB2YXJ7c3RyaW5nfSwgbW92aW5nIHBvaW50IGZvcndhcmQgYXMgd2Vs bCBhcwogaW5jcmVhc2luZyB0aGUgdmFsdWUgdGhhdCB3b3VsZCBiZSByZXR1cm5lZCBieSBAY29k ZXtnYi1wb2ludC1tYXh9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1pbnNlcnQtY2hh ciEpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9j ZWR1cmV9IGdiLWluc2VydC1jaGFyISBnYiBjaGFyCiBJbnNlcnQgaW50byBAdmFye2difSBhIHNp bmdsZSBAdmFye2NoYXJ9LCBtb3ZpbmcgcG9pbnQgZm9yd2FyZCBhcyB3ZWxsIGFzCiBpbmNyZWFz aW5nIHRoZSB2YWx1ZSB0aGF0IHdvdWxkIGJlIHJldHVybmVkIGJ5IEBjb2Rle2diLXBvaW50LW1h eH0uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLWluc2VydCkKLUBjIC4uLy4uL2ljZS05 L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItaW5zZXJ0IGdi IFthcmdzLi4uXQogSW5zZXJ0IHRoZSBhcmd1bWVudHMgYXQgcG9pbnQuCiBJZiBhbiBhcmcgaXMg YSBnYXAtYnVmZmVyLCBpbnNlcnQgaXRzIGNvbnRlbnRzLgpAQCAtMTY5LDggKzE1MCw3IEBAIElm IGFuIGFyZyBpcyBhIG51bWJlciwgaW5zZXJ0IHRoZSByZXN1bHQgb2YgQGNvZGV7bnVtYmVyLT5z dHJpbmd9LgogT3RoZXIgdHlwZXMgYWNjZXB0ZWQ6IGNoYXIsIHN0cmluZywgc3ltYm9sLgogUG9p bnQgbW92ZXMgZm9yd2FyZCB0byBlbmQgdXAgYWZ0ZXIgdGhlIGluc2VydGVkIHRleHQuCiBAZW5k IGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLWRlbGV0ZS1jaGFyISkKLUBjIC4uLy4uL2ljZS05L2dh cC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItZGVsZXRlLWNoYXIh IGdiIGNvdW50CiBJbiBAdmFye2difSwgZGVsZXRlIEB2YXJ7Y291bnR9IGNoYXJhY3RlcnMgZnJv bSBwb2ludCwgZm9yd2FyZCBpZgogQHZhcntjb3VudH0gaXMgcG9zaXRpdmUsIGJhY2t3YXJkIGlm IEB2YXJ7Y291bnR9IGlzIG5lZ2F0aXZlLiAgKElmCkBAIC0xNzgsMTMgKzE1OCwxMSBAQCBJbiBA dmFye2difSwgZGVsZXRlIEB2YXJ7Y291bnR9IGNoYXJhY3RlcnMgZnJvbSBwb2ludCwgZm9yd2Fy ZCBpZgogYmFja3dhcmRzLiAgRGVsZXRpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzIGRlY3JlYXNl cyB0aGUgdmFsdWUgdGhhdCB3b3VsZAogYmUgcmV0dXJuZWQgYnkgQGNvZGV7Z2ItcG9pbnQtbWF4 fS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoZ2ItZGVsZXRlLXJlZ2lvbikKLUBjIC4uLy4u L2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItZGVs ZXRlLXJlZ2lvbiBnYiBiZWcgZW5kCiBEZWxldGUgdGV4dCBiZXR3ZWVuIEB2YXJ7YmVnfSBhbmQg QHZhcntlbmR9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1lcmFzZSEpCi1AYyAuLi8u Li9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLWVy YXNlISBnYgogQ29tcGxldGVseSBlcmFzZSBAdmFye2difS4gIFBvaW50IGlzIGxlZnQgYXQgdGhl IG1pbmltdW0gcG9zaXRpb24gcG9zc2libGUKICh3aGljaCBoYXBwZW5zIHRvIGJlIGFsc28gdGhl IG1heGltdW0gcG9zaXRpb24gcG9zc2libGUgc2luY2UgdGhlIGJ1ZmZlcgpAQCAtMTkzLDI2ICsx NzEsMjEgQEAgaXMgZW1wdHkpLgogCiBAc3Vic2VjdGlvbiBtb3ZpbmcKIAotQGMgQHR3ZXJwZG9j IChnYi1nb3RvLWNoYXIpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYwogQGRlZmZuIHtT Y2hlbWUgUHJvY2VkdXJlfSBnYi1nb3RvLWNoYXIgZ2IgbmV3LXBvaW50CiBJbiBAdmFye2difSwg bW92ZSBwb2ludCB0byBAdmFye25ldy1wb2ludH0gYW5kIHJldHVybiBpdC4gIElmCiBAdmFye25l dy1wb2ludH0gaXMgb3V0c2lkZSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBwb3NpdGlvbnMgcG9z c2libGUsIGl0CiBpcyBhZGp1c3RlZCB0byB0aGUgdGhlIG5lYXJlc3QgYm91bmRhcnkgKGhvd2V2 ZXIsIHRoZSByZXR1cm4gdmFsdWUgaXMKIEB2YXJ7bmV3LXBvaW50fSB1bmNoYW5nZWQpLgogQGVu ZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1mb3J3YXJkLWNoYXIpCi1AYyAuLi8uLi9pY2UtOS9n YXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLWZvcndhcmQtY2hh ciBnYiBuCiBJbiBnYXAtYnVmZmVyIEB2YXJ7Z2J9LCBtb3ZlIHBvaW50IGZvcndhcmQgQHZhcntu fSBjaGFyYWN0ZXJzLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1iYWNrd2FyZC1jaGFy KQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSBnYi1iYWNrd2FyZC1jaGFyIGdiIG4KIEluIGdhcC1idWZmZXIgQHZhcntnYn0sIG1vdmUg cG9pbnQgYmFja3dhcmQgQHZhcntufSBjaGFyYWN0ZXJzLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJw ZG9jIChnYi1mb3J3YXJkLWxpbmUpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBA ZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLWZvcndhcmQtbGluZSBnYiBbbi4uLl0KIEluIGdh cC1idWZmZXIgQHZhcntnYn0sIG1vdmUgcG9pbnQgQHZhcntufSBsaW5lcyBmb3J3YXJkIChiYWNr d2FyZCBpZgogQHZhcntufSBpcyBuZWdhdGl2ZSkuICBQcmVjaXNlbHksIGlmIHBvaW50IGlzIG9u IGxpbmUgQGNvZGV7SX0sIG1vdmUgdG8gdGhlCkBAIC0yMjIsMTUgKzE5NSwxMyBAQCBpcyBAdmFy e259IC0gbnVtYmVyIG9mIGxpbmVzIG1vdmVkOyBpZiBiYWNrd2FyZCwgQHZhcntufSArIG51bWJl ciBtb3ZlZC4KIFdpdGggcG9zaXRpdmUgQHZhcntufSwgYSBub24tZW1wdHkgbGluZSBhdCB0aGUg ZW5kIGNvdW50cyBhcyBvbmUgbGluZQogc3VjY2Vzc2Z1bGx5IG1vdmVkIChmb3IgdGhlIHJldHVy biB2YWx1ZSkuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLWJlZ2lubmluZy1vZi1saW5l KQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2Vk dXJlfSBnYi1iZWdpbm5pbmctb2YtbGluZSBnYiBbbi4uLl0KIEluIGdhcC1idWZmZXIgQHZhcntn Yn0sIG1vdmUgcG9pbnQgdG8gYmVnaW5uaW5nIG9mIGN1cnJlbnQgbGluZS4KIFdpdGggYXJndW1l bnQgQHZhcntufSBub3QgI2Ygb3IgMSwgbW92ZSBmb3J3YXJkIEB2YXJ7bn0gLSAxIGxpbmVzIGZp cnN0LgogSWYgcG9pbnQgcmVhY2hlcyB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBidWZmZXIsIGl0 IHN0b3BzIHRoZXJlLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1lbmQtb2YtbGluZSkK LUBjIC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVy ZX0gZ2ItZW5kLW9mLWxpbmUgZ2IgW24uLi5dCiBJbiBnYXAtYnVmZmVyIEB2YXJ7Z2J9LCBtb3Zl IHBvaW50IHRvIGVuZCBvZiBjdXJyZW50IGxpbmUuCiBXaXRoIGFyZ3VtZW50IEB2YXJ7bn0gbm90 ICNmIG9yIDEsIG1vdmUgZm9yd2FyZCBAdmFye259IC0gMSBsaW5lcyBmaXJzdC4KQEAgLTIzOSw4 ICsyMTAsNiBAQCBJZiBwb2ludCByZWFjaGVzIHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGJ1ZmZl ciwgaXQgc3RvcHMgdGhlcmUuCiAKIEBzdWJzZWN0aW9uIHNlYXJjaCAoYW5kIHJlcGxhY2UpCiAK LUBjIEB0d2VycGRvYyAoZ2ItbWF0Y2gtc3RyaW5nKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZl ci5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2ItbWF0Y2gtc3RyaW5nIGdiIG4KIFJl dHVybiBzdHJpbmcgb2YgdGV4dCBtYXRjaGVkIGJ5IGxhc3Qgc2VhcmNoLgogQHZhcntufSBzcGVj aWZpZXMgd2hpY2ggcGFyZW50aGVzaXplZCBleHByZXNzaW9uIGluIHRoZSBsYXN0IHJlZ2V4cC4K QEAgLTI0OCwxNiArMjE3LDE0IEBAIFZhbHVlIGlzICNmIGlmIEB2YXJ7bn10aCBwYWlyIGRpZG4n dCBtYXRjaCwgb3IgdGhlcmUgd2VyZSBsZXNzIHRoYW4KIEB2YXJ7bn0gcGFpcnMuICBaZXJvIG1l YW5zIHRoZSBlbnRpcmUgdGV4dCBtYXRjaGVkIGJ5IHRoZSB3aG9sZSByZWdleHAKIG9yIHdob2xl IHN0cmluZy4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoZ2ItbG9va2luZy1hdCkKLUBjIC4u Ly4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2It bG9va2luZy1hdCBnYiByZS1zdHIKIFJldHVybiAjdCBpZiB0ZXh0IGFmdGVyIHBvaW50IG1hdGNo ZXMgcmVndWxhciBleHByZXNzaW9uIEB2YXJ7cmUtc3RyfS4KIFRoaXMgZnVuY3Rpb24gbW9kaWZp ZXMgdGhlIG1hdGNoIGRhdGEgdGhhdCBAY29kZXtnYi1tYXRjaC1iZWdpbm5pbmd9LAogQGNvZGV7 Z2ItbWF0Y2gtZW5kfSBhbmQgQGNvZGV7Z2ItbWF0Y2gtZGF0YX0gYWNjZXNzOyBzYXZlIGFuZCBy ZXN0b3JlCiB0aGUgbWF0Y2ggZGF0YSBpZiB5b3Ugd2FudCB0byBwcmVzZXJ2ZSB0aGVtLgogQGVu ZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1tYXRjaC1iZWdpbm5pbmcpCi1AYyAuLi8uLi9pY2Ut OS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLW1hdGNoLWJl Z2lubmluZyBbbl0KIFJldHVybiBwb3NpdGlvbiBvZiBzdGFydCBvZiB0ZXh0IG1hdGNoZWQgYnkg bGFzdCBzZWFyY2guCiBAdmFye3N1YmV4cH0sIGEgbnVtYmVyLCBzcGVjaWZpZXMgd2hpY2ggcGFy ZW50aGVzaXplZCBleHByZXNzaW9uCkBAIC0yNjUsOCArMjMyLDcgQEAgaW4gdGhlIGxhc3QgcmVn ZXhwLiAgVmFsdWUgaXMgI2YgaWYgQHZhcntzdWJleHB9dGggcGFpciBkaWRuJ3QgbWF0Y2gsCiBv ciB0aGVyZSB3ZXJlIGxlc3MgdGhhbiBAdmFye3N1YmV4cH0gcGFpcnMuICBaZXJvIG1lYW5zIHRo ZSBlbnRpcmUgdGV4dAogbWF0Y2hlZCBieSB0aGUgd2hvbGUgcmVnZXhwLgogQGVuZCBkZWZmbgot QGMgQHR3ZXJwZG9jIChnYi1tYXRjaC1lbmQpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRv YworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLW1hdGNoLWVuZCBbbl0KIFJldHVybiBw b3NpdGlvbiBvZiBlbmQgb2YgdGV4dCBtYXRjaGVkIGJ5IGxhc3Qgc2VhcmNoLgogQHZhcntzdWJl eHB9LCBhIG51bWJlciwgc3BlY2lmaWVzIHdoaWNoIHBhcmVudGhlc2l6ZWQgZXhwcmVzc2lvbiBp biB0aGUKQEAgLTI3NCw4ICsyNDAsNyBAQCBsYXN0IHJlZ2V4cC4gIFZhbHVlIGlzIG5pbCBpZiBA dmFye3N1YmV4cH10aCBwYWlyIGRpZG4ndCBtYXRjaCwgb3IgdGhlcmUKIHdlcmUgbGVzcyB0aGFu IEB2YXJ7c3ViZXhwfSBwYWlycy4gIFplcm8gbWVhbnMgdGhlIGVudGlyZSB0ZXh0IG1hdGNoZWQg YnkKIHRoZSB3aG9sZSByZWdleHAuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLXNlYXJj aC1mb3J3YXJkKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hl bWUgUHJvY2VkdXJlfSBnYi1zZWFyY2gtZm9yd2FyZCBzdHJpbmcgW2JvdW5kIFtub2Vycm9yIFtj b3VudF1dXQogU2VhcmNoIGZvcndhcmQgZnJvbSBwb2ludCBmb3IgQHZhcntzdHJpbmd9LgogU2V0 IHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIG9jY3VycmVuY2UgZm91bmQsIGFuZCByZXR1cm4gcG9p bnQuCkBAIC0yODYsOCArMjUxLDcgQEAgT3B0aW9uYWwgdGhpcmQgYXJndW1lbnQsIGlmICN0LCBt ZWFucyBpZiBmYWlsIGp1c3QgcmV0dXJuICNmIChubyBlcnJvcikuCiAgIElmIG5vdCAjZiBhbmQg bm90ICN0LCBtb3ZlIHRvIGxpbWl0IG9mIHNlYXJjaCBhbmQgcmV0dXJuICNmLgogT3B0aW9uYWwg Zm91cnRoIGFyZ3VtZW50IGlzIHJlcGVhdCBjb3VudC0tc2VhcmNoIGZvciBzdWNjZXNzaXZlIG9j Y3VycmVuY2VzLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1zZWFyY2gtYmFja3dhcmQp Ci1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1 cmV9IGdiLXNlYXJjaC1iYWNrd2FyZCBzdHJpbmcgW2JvdW5kIFtub2Vycm9yIFtyZXBlYXRdXV0K IFNlYXJjaCBiYWNrd2FyZCBmcm9tIHBvaW50IGZvciBAdmFye3N0cmluZ30uCiBTZXQgcG9pbnQg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgb2NjdXJyZW5jZSBmb3VuZCwgYW5kIHJldHVybiBwb2lu dC4KQEAgLTI5Nyw4ICsyNjEsNyBAQCBPcHRpb25hbCB0aGlyZCBhcmd1bWVudCwgaWYgdCwgbWVh bnMgaWYgZmFpbCBqdXN0IHJldHVybiBuaWwgKG5vIGVycm9yKS4KICBJZiBub3QgbmlsIGFuZCBu b3QgdCwgcG9zaXRpb24gYXQgbGltaXQgb2Ygc2VhcmNoIGFuZCByZXR1cm4gbmlsLgogT3B0aW9u YWwgZm91cnRoIGFyZ3VtZW50IGlzIHJlcGVhdCBjb3VudC0tc2VhcmNoIGZvciBzdWNjZXNzaXZl IG9jY3VycmVuY2VzLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1yZS1zZWFyY2gtZm9y d2FyZCkKLUBjIC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFBy b2NlZHVyZX0gZ2ItcmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIFtib3VuZCBbbm9lcnJvciBbcmVw ZWF0XV1dCiBTZWFyY2ggZm9yd2FyZCBmcm9tIHBvaW50IGZvciByZWd1bGFyIGV4cHJlc3Npb24g QHZhcntyZWdleHB9LgogU2V0IHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIG9jY3VycmVuY2UgZm91 bmQsIGFuZCByZXR1cm4gcG9pbnQuCkBAIC0zMTMsOCArMjc2LDcgQEAgT3B0aW9uYWwgZm91cnRo IGFyZ3VtZW50IGlzIHJlcGVhdCBjb3VudC0tc2VhcmNoIGZvciBzdWNjZXNzaXZlIG9jY3VycmVu Y2VzLgogbm90IHRvIGluY2x1ZGUgdGhlIGZsYWcgQGNvZGV7cmVnZXhwL25ld2xpbmV9IChub3Jt YWxseSB1c2VkIHdoZW4KIEB2YXJ7cmVnZXhwfSBpcyBhIHN0cmluZyB0byBjb21waWxlIGl0IGlu dGVybmFsbHkpLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChnYi1yZXBsYWNlLW1hdGNoKQot QGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJl fSBnYi1yZXBsYWNlLW1hdGNoIG5ld3RleHQgW0lHTk9SRUQgW2xpdGVyYWxdXQogUmVwbGFjZSB0 ZXh0IG1hdGNoZWQgYnkgbGFzdCBzZWFyY2ggd2l0aCBAdmFye25ld3RleHR9LgogVGhlIHNlY29u ZCBhcmcgaXMgb3B0aW9uYWwgYW5kIGlnbm9yZWQgKGZvciBub3cgLS0gaW4gdGhlCkBAIC0zMzQs NDggKzI5Niw0MCBAQCBMZWF2ZSBwb2ludCBhdCBlbmQgb2YgcmVwbGFjZW1lbnQgdGV4dC4KIAog QHN1YnNlY3Rpb24gbWlzYwogCi1AYyBAdHdlcnBkb2MgKGdiLT5wb3J0ISkKLUBjIC4uLy4uL2lj ZS05L2dhcC1idWZmZXIuZG9jCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLT5wb3J0ISBn YiBwb3J0IFtiZWcgW2VuZF1dCiBTZW5kIHRoZSBjb250ZW50cyBvZiBAdmFye2difSB0byB0aGUg b3V0cHV0IEB2YXJ7cG9ydH0uCiBPcHRpb25hbCBhcmdzIEB2YXJ7YmVnfSBhbmQgQHZhcntlbmR9 IHNwZWNpZnkgYSByZWdpb24gdG8gc2VuZC4KIFBvaW50IGRvZXMgbm90IG1vdmUuCiBAZW5kIGRl ZmZuCi1AYyBAdHdlcnBkb2MgKGdiLT5zdHJpbmcpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVy LmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGdiLT5zdHJpbmcgZ2IKIFJldHVybiBh IG5ldyBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0ZXh0IG9mIEB2YXJ7Z2J9LgogUG9pbnQgZG9l cyBub3QgbW92ZS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoZ2ItPnN1YnN0cmluZykKLUBj IC4uLy4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0g Z2ItPnN1YnN0cmluZyBnYiBzdGFydCBlbmQKIFJldHVybiB0aGUgcmVnaW9uIG9mIEB2YXJ7Z2J9 IGZyb20gQHZhcntzdGFydH0gdG8gQHZhcntlbmR9IGFzIGEgc3RyaW5nLgogQGVuZCBkZWZmbgot QGMgQHR3ZXJwZG9jIChnYi1maWx0ZXIhKQotQGMgLi4vLi4vaWNlLTkvZ2FwLWJ1ZmZlci5kb2MK KwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBnYi1maWx0ZXIhIGdiIHN0cmluZy1wcm9jCiBQ YXNzIHRoZSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB0ZXh0IG9mIEB2YXJ7Z2J9IHRvIEB2YXJ7 c3RyaW5nLXByb2N9IGFuZAogdXNlIGl0cyByZXR1cm4gdmFsdWUgdG8gY29tcGxldGVseSByZXBs YWNlIHRoZSBjb250ZW50cyBvZiBAdmFye2difS4KIFBvaW50IGlzIGxlZnQgYXQgdGhlIG1heGlt dW0gcG9zaXRpb24uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdiLT5saW5lcykKLUBjIC4u Ly4uL2ljZS05L2dhcC1idWZmZXIuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gZ2It PmxpbmVzIGdiCiBSZXR1cm4gYSBsaXN0IG9mIHN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSBsaW5l cyBvZiB0ZXh0IG9mIEB2YXJ7Z2J9LgogTmV3bGluZXMgYXJlIGF1dG9tYXRpY2FsbHkgcmVtb3Zl ZC4gIEEgYnVmZmVyIHdpdGggTiBuZXdsaW5lcyByZXN1bHRzCiBpbiBhIGxpc3Qgb2YgbGVuZ3Ro IE4rMS4gIFBvaW50IGRvZXMgbm90IG1vdmUuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGdi LWZpbHRlci1saW5lcyEpCi1AYyAuLi8uLi9pY2UtOS9nYXAtYnVmZmVyLmRvYworCiBAZGVmZm4g e1NjaGVtZSBQcm9jZWR1cmV9IGdiLWZpbHRlci1saW5lcyEgZ2IgbGluZXMtcHJvYwogUGFzcyB0 aGUgbGlzdCBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgbGluZXMgb2YgdGV4dCBvZiBAdmFy e2difSB0bwogQHZhcntsaW5lcy1wcm9jfSBhbmQgdXNlIGl0cyByZXR1cm4gdmFsdWUgKGFub3Ro ZXIgbGlzdCBvZiBzdHJpbmdzKSB0bwogY29tcGxldGVseSByZXBsYWNlIHRoZSBjb250ZW50cyBv ZiBAdmFye2difS4gIE5ld2xpbmVzIGFyZSBhdXRvbWF0aWNhbGx5CiByZW1vdmVkIGFuZCBhZGRl ZCBiYWNrLiAgUG9pbnQgaXMgbGVmdCBhdCB0aGUgbWF4aW11bSBwb3NpdGlvbi4KIEBlbmQgZGVm Zm4KLUBjIEB0d2VycGRvYyAobWFrZS1nYXAtYnVmZmVyLXBvcnQpCi1AYyAuLi8uLi9pY2UtOS9n YXAtYnVmZmVyLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IG1ha2UtZ2FwLWJ1ZmZl ci1wb3J0IGdiCiBSZXR1cm4gYSAic29mdCBwb3J0IiBvbiBAdmFye2difSB0aGF0IHN1cHBvcnRz IHRoZSB3cml0ZS1jaGFyYWN0ZXIsCiB3cml0ZS1zdHJpbmcgYW5kIHJlYWQtY2hhcmFjdGVyIG9w ZXJhdGlvbnMgKGZsdXNoLW91dHB1dCBhbmQgY2xvc2UtcG9ydApkaWZmIC0tZ2l0IGEvZG9jL3Jl Zi9oY29ucy50ZXhpIGIvZG9jL3JlZi9oY29ucy50ZXhpCmluZGV4IDI3M2E4NzEuLmZkNWM3YmUg MTAwNjQ0Ci0tLSBhL2RvYy9yZWYvaGNvbnMudGV4aQorKysgYi9kb2MvcmVmL2hjb25zLnRleGkK QEAgLTIzLDUwICsyMyw0MSBAQCBUbyB1c2UgZXE/LWhhc2ggY29uc2VycywgZXZhbHVhdGUKICh1 c2UtbW9kdWxlcyAoaWNlLTkgaGNvbnMpKQogQGVuZCBzbWFsbGxpc3AKIAotQGMgQHR3ZXJwZG9j IChoYXNocS1jb25zLWhhc2gpCi1AYyAuLi8uLi9pY2UtOS9oY29ucy5kb2MKIEBkZWZmbiB7U2No ZW1lIFByb2NlZHVyZX0gaGFzaHEtY29ucy1oYXNoIHBhaXIgbgogUmV0dXJuIHRoZSBoYXNoIG9m IEB2YXJ7cGFpcn0gbW9kdWxvIEB2YXJ7bn0uCiBVc2UgYW4gQGNvZGV7ZXE/fSBoYXNoIG9mIHRo ZSBAc2N7Y2FyfSBhbmQKIEBzY3tjZHJ9IG9mIEB2YXJ7cGFpcn0gZm9yIHRoZSBjb21wdXRhdGlv bi4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoaGFzaHEtY29ucy1hc3NvYykKLUBjIC4uLy4u L2ljZS05L2hjb25zLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGhhc2hxLWNvbnMt YXNzb2Mga2V5IGFsaXN0CiBSZXR1cm4gdGhlIGZpcnN0IGVsZW1lbnQgaW4gQHZhcnthbGlzdH0g d2hvc2UgQHNje2Nhcn0gYW5kIEBzY3tjZHJ9IGFyZQogQGNvZGV7ZXE/fSB0byB0aGF0IG9mIHRo ZSBwYWlyIEB2YXJ7a2V5fS4gIFJldHVybiAjZiBpZiBubyBtYXRjaCBleGlzdHMuCiBAZW5kIGRl ZmZuCi1AYyBAdHdlcnBkb2MgKGhhc2hxLWNvbnMtZ2V0LWhhbmRsZSkKLUBjIC4uLy4uL2ljZS05 L2hjb25zLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGhhc2hxLWNvbnMtZ2V0LWhh bmRsZSB0YWJsZSBrZXkKIFJldHVybiB0aGUgaGFuZGxlIGZyb20gaGFzaCBAdmFye3RhYmxlfSB3 aG9zZSBAc2N7Y2FyfSBhbmQgQHNje2Nkcn0KIGFyZSBAY29kZXtlcT99IHRvIHRoYXQgb2YgdGhl IHBhaXIgQHZhcntrZXl9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChoYXNocS1jb25zLWNy ZWF0ZS1oYW5kbGUhKQotQGMgLi4vLi4vaWNlLTkvaGNvbnMuZG9jCisKIEBkZWZmbiB7U2NoZW1l IFByb2NlZHVyZX0gaGFzaHEtY29ucy1jcmVhdGUtaGFuZGxlISB0YWJsZSBrZXkgaW5pdAogQ3Jl YXRlIGEgaGFuZGxlIGluIGhhc2ggQHZhcnt0YWJsZX0gZm9yIHBhaXIgQHZhcntrZXl9IGFuZAog c3RvcmUgdGhlIGluaXRpYWwgdmFsdWUgQHZhcntpbml0fSB0aGVyZS4gIFJldHVybiB0aGUgaGFu ZGxlLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChoYXNocS1jb25zLXJlZikKLUBjIC4uLy4u L2ljZS05L2hjb25zLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGhhc2hxLWNvbnMt cmVmIHRhYmxlIGtleQogUmV0dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggcGFpciBAdmFy e2tleX0gaW4gaGFzaCBAdmFye3RhYmxlfSwKIG9yICNmIGlmIEB2YXJ7a2V5fSBpcyBub3QgdG8g YmUgZm91bmQuCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGhhc2hxLWNvbnMtc2V0ISkKLUBj IC4uLy4uL2ljZS05L2hjb25zLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGhhc2hx LWNvbnMtc2V0ISB0YWJsZSBrZXkgdmFsCiBJbiBoYXNoIEB2YXJ7dGFibGV9LCBhc3NvY2lhdGUg d2l0aCBwYWlyIEB2YXJ7a2V5fSB0aGUgdmFsdWUgQHZhcnt2YWx9LgogQGVuZCBkZWZmbgotQGMg QHR3ZXJwZG9jIChoYXNocS1jb25zKQotQGMgLi4vLi4vaWNlLTkvaGNvbnMuZG9jCisKIEBkZWZm biB7U2NoZW1lIFByb2NlZHVyZX0gaGFzaHEtY29ucyB0YWJsZSBhIGQKIEFkZCB0byBoYXNoIEB2 YXJ7dGFibGV9IGFuIGVudHJ5IGZvciB0aGUgZG91YmxlLWtleSBAdmFye2F9IGFuZAogQHZhcntk fS4gIFRoZSBhc3NvY2lhdGVkIHZhbHVlIGlzICNmLiAgUmV0dXJuIHRoZSBjb21iaW5lZCBrZXkg KHBhaXIpLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChoYXNocS1jb25zZXIpCi1AYyAuLi8u Li9pY2UtOS9oY29ucy5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBoYXNocS1jb25z ZXIgaGFzaC10YWItb3Itc2l6ZQogUmV0dXJuIGEgcHJvY2VkdXJlIHRoYXQgZG9lcyBAY29kZXto YXNocS1jb25zfSBvbiBAdmFye2hhc2gtdGFiLW9yLXNpemV9LgogSWYgQHZhcntoYXNoLXRhYi1v ci1zaXplfSBpcyBhIG51bWJlciwgYWxsb2NhdGUgYW5kIGEgaGFzaCB0YWJsZSBvZiB0aGF0CkBA IC03Niw4ICs2Nyw2IEBAIHNhbWUgYXMgdGhlIGxhdHRlciB0d28gYXJncyBvZiBAY29kZXtoYXNo cS1jb25zfS4KIAogQGMgW1RoZSBmb2xsb3dpbmcgcHJvYyByZWFsbHkgZG9lc24ndCBiZWxvbmcg aGVyZS4gLS10dG5dCiAKLUBjIEB0d2VycGRvYyAobWFrZS1nYy1idWZmZXIpCi1AYyAuLi8uLi9p Y2UtOS9oY29ucy5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbWFrZS1nYy1idWZmZXIg bgogQ29uc3RydWN0IGEgcHJpdmF0ZSByaW5nIChjaXJjdWxhciBsaXN0KSBvZiBAdmFye259IGVs ZW1lbnRzIGFuZCByZXR1cm4gYQogcHJvY2VkdXJlIEB2YXJ7cHJvY30gdGhhdCB1cGRhdGVzIGl0 LiAgQHZhcntwcm9jfSB0YWtlcyBvbmUgYXJndW1lbnQsCmRpZmYgLS1naXQgYS9kb2MvcmVmL2xp bmVpby50ZXhpIGIvZG9jL3JlZi9saW5laW8udGV4aQppbmRleCAxZDE1NDk0Li5mN2I5NmI0IDEw MDY0NAotLS0gYS9kb2MvcmVmL2xpbmVpby50ZXhpCisrKyBiL2RvYy9yZWYvbGluZWlvLnRleGkK QEAgLTMzLDE0ICszMywxMSBAQCBhcmUgcHV0IGJhY2sgdXNpbmcgQGNvZGV7dW5yZWFkLXN0cmlu Z30sIHRoZXkgY2FuIGJlIGJyb2tlbiBhcmJpdHJhcmlseSAtLQogdGhhdCBpcywgQGNvZGV7cmVh ZC1zdHJpbmd9IHJldHVybnMgc3RyaW5ncyBwYXNzZWQgdG8gQGNvZGV7dW5yZWFkLXN0cmluZ30g KG9yCiBzaGFyZWQgc3Vic3RyaW5ncyBvZiB0aGVtKS4KIAotQGMgQHR3ZXJwZG9jIChsaW5laW8t cG9ydD8pCi1AYyAuLi8uLi9pY2UtOS9saW5laW8uZG9jCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1 cmV9IGxpbmVpby1wb3J0PyBwb3J0CiBSZXR1cm4gI3QgaWZmIEB2YXJ7cG9ydH0gaXMgYSBwb3J0 IGNhcGFibGUgb2YgaGFuZGxpbmcKIEBjb2Rle3JlYWQtc3RyaW5nfSBhbmQgQGNvZGV7dW5yZWFk LXN0cmluZ30uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKG1ha2UtbGluZS1idWZmZXJpbmct aW5wdXQtcG9ydCkKLUBjIC4uLy4uL2ljZS05L2xpbmVpby5kb2MKKwogQGRlZmZuIHtTY2hlbWUg UHJvY2VkdXJlfSBtYWtlLWxpbmUtYnVmZmVyaW5nLWlucHV0LXBvcnQgdW5kZXJseWluZy1wb3J0 CiBSZXR1cm4gYSB3cmFwcGVyIHBvcnQgZm9yIEB2YXJ7dW5kZXJseWluZy1wb3J0fS4KIApAQCAt NDgsMTQgKzQ1LDEyIEBAIFRoZSB3cmFwcGVyIHBvcnQgYnVmZmVycyBjaGFyYWN0ZXJzIHJlYWQg ZnJvbSBAdmFye3VuZGVybHlpbmctcG9ydH0KIGludGVybmFsbHksIGFuZCBwYXJjZWxzIHRoZW0g b3V0IHZpYSBjYWxscyB0byBAY29kZXtyZWFkLWNoYXJ9LAogQGNvZGV7cmVhZC1zdHJpbmd9IGFu ZCBAY29kZXt1bnJlYWQtc3RyaW5nfS4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAocmVhZC1z dHJpbmcpCi1AYyAuLi8uLi9pY2UtOS9saW5laW8uZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2Nl ZHVyZX0gcmVhZC1zdHJpbmcgbGluZS1idWZmZXJpbmctaW5wdXQtcG9ydAogUmVhZCBhIGxpbmUg ZnJvbSBAdmFye2xpbmUtYnVmZmVyaW5nLWlucHV0LXBvcnR9LgogUmV0dXJuIGl0IGFzIGEgc3Ry aW5nLCBlbmRpbmcgd2l0aCBuZXdsaW5lLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jICh1bnJl YWQtc3RyaW5nKQotQGMgLi4vLi4vaWNlLTkvbGluZWlvLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQ cm9jZWR1cmV9IHVucmVhZC1zdHJpbmcgc3RyIGxpbmUtYnVmZmVyaW5nLWlucHV0LXBvcnQKIFJl dHVybiBzdHJpbmcgQHZhcntzdHJ9IHRvIEB2YXJ7bGluZS1idWZmZXJpbmctaW5wdXQtcG9ydH0u CiBBIHN1YnNlcXVlbnQgY2FsbCB0byBAY29kZXtyZWFkLXN0cmluZ30gb3IgQGNvZGV7cmVhZC1j aGFyfSBmcm9tCmRpZmYgLS1naXQgYS9kb2MvcmVmL2xzLnRleGkgYi9kb2MvcmVmL2xzLnRleGkK aW5kZXggN2ZlNWUyZC4uOWZiNGJhZSAxMDA2NDQKLS0tIGEvZG9jL3JlZi9scy50ZXhpCisrKyBi L2RvYy9yZWYvbHMudGV4aQpAQCAtMjUsMjEgKzI1LDE3IEBAIHRoaXMgaGllcmFyY2h5LCBldmFs dWF0ZSB0aGUgZm9ybToKIFRoaXMgcHJvdmlkZXMgc2V2ZXJhbCBwcm9jZWR1cmVzIHRoYXQgYXJl IHJvdWdobHkgYWtpbiB0byB0aGUgdW5peG9pZCBscygxKQogY29tbWFuZCwgaGVuY2UgdGhlIG5h bWUuCiAKLUBjIEB0d2VycGRvYyAobG9jYWwtZGVmaW5pdGlvbnMtaW4pCi1AYyAuLi8uLi9pY2Ut OS9scy5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbG9jYWwtZGVmaW5pdGlvbnMtaW4g cm9vdCBuYW1lcwogUmV0dXJuIGEgbGlzdCBvZiBuYW1lcyBkZWZpbmVkIGxvY2FsbHkgaW4gdGhl IG5hbWVkIHN1YmRpcmVjdG9yeSBvZgogQHZhcntyb290fS4KIEBlbmQgZGVmZm4KLUBjIEB0d2Vy cGRvYyAoZGVmaW5pdGlvbnMtaW4pCi1AYyAuLi8uLi9pY2UtOS9scy5kb2MKKwogQGRlZmZuIHtT Y2hlbWUgUHJvY2VkdXJlfSBkZWZpbml0aW9ucy1pbiByb290IG5hbWVzCiBSZXR1cm4gYSBsaXN0 IG9mIGFsbCBuYW1lcyBkZWZpbmVkIGluIHRoZSBuYW1lZCBzdWJkaXJlY3Rvcnkgb2YKIEB2YXJ7 cm9vdH0uICBUaGUgbGlzdCBpbmNsdWRlcyBhbGwgbG9jYWxseSBkZWZpbmVkIG5hbWVzIGFzIHdl bGwgYXMKIGFsbCBuYW1lcyBpbmhlcml0ZWQgZnJvbSBhIG1lbWJlciBvZiBhIHVzZS1saXN0Lgog QGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChscykKLUBjIC4uLy4uL2ljZS05L2xzLmRvYworCiBA ZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGxzIFt2YXJpb3VzLXJlZnMuLi5dCiBXaXRoIG5vIGFy Z3VtZW50cywgcmV0dXJuIGEgbGlzdCBvZiBkZWZpbml0aW9ucyBpbiB0aGUgY3VycmVudCBtb2R1 bGUuCiAKQEAgLTU2LDEzICs1MiwxMSBAQCByZXR1cm4gYSBsaXN0OgogIC4uLikKIEBlbmQgc21h bGxsaXNwCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGxscykKLUBjIC4uLy4uL2ljZS05L2xz LmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGxscyBbdmFyaW91cy1yZWZzLi4uXQog QW5hbG9nb3VzIHRvIEBjb2Rle2xzfSwgYnV0IHdpdGggbG9jYWwgZGVmaW5pdGlvbnMgb25seS4K IEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAocmVjdXJzaXZlLWxvY2FsLWRlZmluZSkKLUBjIC4u Ly4uL2ljZS05L2xzLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IHJlY3Vyc2l2ZS1s b2NhbC1kZWZpbmUgbmFtZSB2YWx1ZQogRGVmaW5lIEB2YXJ7bmFtZX0gdG8gaGF2ZSB2YWx1ZSBA dmFye3ZhbHVlfS4KIEB2YXJ7bmFtZX0gaXMgYSBsaXN0IG9mIHN5bWJvbHMsIHRoZSBsYXN0IG9u ZSBiZWluZyB0aGUKZGlmZiAtLWdpdCBhL2RvYy9yZWYvbWFwcGluZy50ZXhpIGIvZG9jL3JlZi9t YXBwaW5nLnRleGkKaW5kZXggNWJjZjlhMC4uYTM5ODI5MCAxMDA2NDQKLS0tIGEvZG9jL3JlZi9t YXBwaW5nLnRleGkKKysrIGIvZG9jL3JlZi9tYXBwaW5nLnRleGkKQEAgLTE4LDggKzE4LDYgQEAg VG8gY3JlYXRlIGFuZCB1c2UgbmV3IGhhc2ggdGFibGUgbWFwcGluZ3MsIGV2YWx1YXRlIHRoZSBm b3JtOgogKHVzZS1tb2R1bGVzIChpY2UtOSBtYXBwaW5nKSkKIEBlbmQgc21hbGxsaXNwCiAKLUBj IEB0d2VycGRvYyAoaGFzaC10YWJsZS1tYXBwaW5nKQotQGMgLi4vLi4vaWNlLTkvbWFwcGluZy5k b2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gaGFzaC10YWJsZS1tYXBwaW5nIFtvcHRpb25z Li4uXQogUmV0dXJuIGEgbWFwcGluZyBvYmplY3QsIGNvbmZpZ3VyZWQgYnkgQHZhcntvcHRpb25z fS4KIApAQCAtNDUsMzMgKzQzLDI4IEBAIFRoZSBtYXBwaW5nIG9iamVjdCBwcmludHMgdXNpbmcg aGFzaCBub3RhdGlvbjoKIEByZXN1bHR7fSAjPG1hcHBpbmcgaGFzaC9zdHJpbmctY2k9PyAzIDQw MjJmY2Y4PgogQGVuZCBleGFtcGxlCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKG1hcHBpbmct Z2V0LWhhbmRsZSkKLUBjIC4uLy4uL2ljZS05L21hcHBpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1l IFByb2NlZHVyZX0gbWFwcGluZy1nZXQtaGFuZGxlIG1hcCBrZXkKIFJldHVybiB0aGUgaGFuZGxl IGZyb20gbWFwcGluZyBAdmFye21hcH0gZm9yIEB2YXJ7a2V5fSwgb3IgI2YKIGlmIEB2YXJ7a2V5 fSBpcyBub3QgaW4gQHZhcnttYXB9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChtYXBwaW5n LWNyZWF0ZS1oYW5kbGUhKQotQGMgLi4vLi4vaWNlLTkvbWFwcGluZy5kb2MKKwogQGRlZmZuIHtT Y2hlbWUgUHJvY2VkdXJlfSBtYXBwaW5nLWNyZWF0ZS1oYW5kbGUhIG1hcCBrZXkgW2RlZmF1bHRd CiBSZXR1cm4gdGhlIGhhbmRsZSBmcm9tIG1hcHBpbmcgQHZhcnttYXB9IGZvciBAdmFye2tleX0s IG9yIGlmCiBAdmFye2tleX0gaXMgbm90IGluIEB2YXJ7bWFwfSwgY3JlYXRlIGEgbmV3IGhhbmRs ZSB3aXRoIHZhbHVlCiBAdmFye2RlZmF1bHR9IGFuZCByZXR1cm4gdGhlIG5ldyBoYW5kbGUuCiBA ZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKG1hcHBpbmctcmVtb3ZlISkKLUBjIC4uLy4uL2ljZS05 L21hcHBpbmcuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbWFwcGluZy1yZW1vdmUh IG1hcCBrZXkKIFJlbW92ZSBAdmFye2tleX0gYW5kIGl0cyBhc3NvY2lhdGVkIHZhbHVlIGZyb20g bWFwcHBpbmcgQHZhcnttYXB9LgogUmV0dXJuIHRoZSBoYW5kbGUuCiBAZW5kIGRlZmZuCi1AYyBA dHdlcnBkb2MgKG1hcHBpbmctcmVmKQotQGMgLi4vLi4vaWNlLTkvbWFwcGluZy5kb2MKKwogQGRl ZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBtYXBwaW5nLXJlZiBtYXAga2V5IFtkZWZhdWx0XQogUmV0 dXJuIHRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggQHZhcntrZXl9IGluIG1hcHBpbmcgQHZhcntt YXB9LAogb3IgQHZhcntkZWZhdWx0fSBpZiB0aGVyZSBpcyBubyBzdWNoIGFzc29jaWF0aW9uLgog QGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChtYXBwaW5nLXNldCEpCi1AYyAuLi8uLi9pY2UtOS9t YXBwaW5nLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IG1hcHBpbmctc2V0ISBtYXAg a2V5IHZhbAogQXNzb2NpYXRlIEB2YXJ7a2V5fSB3aXRoIEB2YXJ7dmFsfSBpbiBtYXBwaW5nIEB2 YXJ7bWFwfS4KIFJldHVybiBAdmFye3ZhbH0uCmRpZmYgLS1naXQgYS9kb2MvcmVmL3BvZS50ZXhp IGIvZG9jL3JlZi9wb2UudGV4aQppbmRleCA1YzM3N2U5Li42NmVmOWY4IDEwMDY0NAotLS0gYS9k b2MvcmVmL3BvZS50ZXhpCisrKyBiL2RvYy9yZWYvcG9lLnRleGkKQEAgLTIxLDcgKzIxLDYgQEAg VG8gbWFrZSB1c2Ugb2YgdGhlIG1lbW9pemF0aW9uIGZhY2lsaXRpZXMsIGV2YWx1YXRlIHRoZSBm b3JtOgogVGhpcyBwcm92aWRlcyB0d28gYGBwdXJpdHkgb2YgZXNzZW5jZScnIFtpbnNlcnQgYWN0 dWFsIFZvbm5lZ3V0IGFsbHVzaW9uIGhlcmUsCiBzb21lZGF5LCBvciBub3RdIHByb2NlZHVyZXMg Zm9yIG1lbW9pemluZyBAZGZue3B1cmUgZnVuY3Rpb25zfS4KIAotQGMgQHR3ZXJwY29tbWVudGFy eSAoaW5jbHVkZSAoaWNlLTkgcG9lKSkKIEEgcHVyZSBmdW5jdGlvbiAob2Ygc29tZSBzb3J0KSBp cyBjaGFyYWN0ZXJpemVkIGJ5IHR3byBlcXVhbGl0eQogcmVsYXRpb25zOiBvbmUgb24gYXJndW1l bnQgbGlzdHMgYW5kIG9uZSBvbiByZXR1cm4gdmFsdWVzLgogQSBwdXJlIGZ1bmN0aW9uIGlzIG9u ZSB0aGF0IHdoZW4gYXBwbGllZCB0byBlcXVhbCBhcmd1bWVudHMgbGlzdHMKQEAgLTM0LDE1ICsz MywxMiBAQCBlcXVhbGl0eSByZWxhdGlvbiBvbiBhcmd1bWVudHMgaXMgdHJpY2t5LgogVGhlIHNp bXBsZXN0IGNhc2Ugb2YgcHVyZSBmdW5jdGlvbnMgYXJlIHRob3NlIGluIHdoaWNoIHJlc3VsdHMK IGFyZSBvbmx5IGNlcnRhaW5seSBAY29kZXtlcT99IGlmIGFsbCBvZiB0aGUgYXJndW1lbnRzIGFy ZS4KIAotQGMgQHR3ZXJwZG9jIChwdXJlLWZ1bmNxKQotQGMgLi4vLi4vaWNlLTkvcG9lLmRvYwog QGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBwdXJlLWZ1bmNxIGJhc2UKIFJldHVybiBhIHByb2Nl ZHVyZSBAdmFye3BmfSB0aGF0IHdyYXBzIHByb2NlZHVyZSBAdmFye2Jhc2V9LCBhc3NvY2lhdGlu ZwogdGhlIGFyZyBsaXN0IG9mIGVhY2ggY2FsbCB0byBAdmFye3BmfSB0byBpdHMgcmV0dXJuIHZh bHVlIGluIGEgZ2xvYmFsbHkKIHNoYXJlZCAoYnV0IGJvdW5kZWQgbm9uZXRoZWxlc3MpIHRhYmxl LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChwZXJmZWN0LWZ1bmNxKQotQGMgLi4vLi4vaWNl LTkvcG9lLmRvYworCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IHBlcmZlY3QtZnVuY3Egc2l6 ZSBiYXNlCiBSZXR1cm4gYSBwcm9jZWR1cmUgQHZhcntwZn0gdGhhdCB3cmFwcyBwcm9jZWR1cmUg QHZhcntiYXNlfSwgYXNzb2NpYXRpbmcKIHRoZSBhcmcgbGlzdCBvZiBlYWNoIGNhbGwgdG8gQHZh cntwZn0gdG8gaXRzIHJldHVybiB2YWx1ZSBpbiBhIHByaXZhdGUKZGlmZiAtLWdpdCBhL2RvYy9y ZWYvcG9wZW4udGV4aSBiL2RvYy9yZWYvcG9wZW4udGV4aQppbmRleCAzMjAzZDg4Li5hMjEwZmVh IDEwMDY0NAotLS0gYS9kb2MvcmVmL3BvcGVuLnRleGkKKysrIGIvZG9jL3JlZi9wb3Blbi50ZXhp CkBAIC0yMSw4ICsyMSw3IEBAIG1vZHVsZToKIEBlbmQgc21hbGxsaXNwCiAKIEBmaW5kZXggcG9w ZW4KLUBjIEB0d2VycGRvYyAob3Blbi1waXBlKQotQGMgLi4vLi4vaWNlLTkvcG9wZW4uZG9jCisK IEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gb3Blbi1waXBlIGNvbW1hbmQgbW9kZQogRXhlY3V0 ZSB0aGUgc2hlbGwgY29tbWFuZCBAdmFye2NvbW1hbmR9IChhIHN0cmluZykgaW4gYSBzdWJwcm9j ZXNzLgogQSBwaXBlIHRvIHRoZSBwcm9jZXNzIGlzIGNyZWF0ZWQgYW5kIHJldHVybmVkLiAgQHZh cnttb2Rlc30gc3BlY2lmaWVzCkBAIC0zMCwyMSArMjksMTYgQEAgd2hldGhlciBhbiBpbnB1dCBv ciBvdXRwdXQgcGlwZSB0byB0aGUgcHJvY2VzcyBpcyBjcmVhdGVkOiBpdCBzaG91bGQKIGJlIHRo ZSB2YWx1ZSBvZiBAY29kZXtPUEVOX1JFQUR9IG9yIEBjb2Rle09QRU5fV1JJVEV9LgogQGVuZCBk ZWZmbgogCi1AYyBAdHdlcnBkb2MgKG9wZW4taW5wdXQtcGlwZSkKLUBjIC4uLy4uL2ljZS05L3Bv cGVuLmRvYwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBvcGVuLWlucHV0LXBpcGUgY29tbWFu ZAogRXF1aXZhbGVudCB0byBAY29kZXtvcGVuLXBpcGV9IHdpdGggbW9kZSBAY29kZXtPUEVOX1JF QUR9LgogQGVuZCBkZWZmbgogCi1AYyBAdHdlcnBkb2MgKG9wZW4tb3V0cHV0LXBpcGUpCi1AYyAu Li8uLi9pY2UtOS9wb3Blbi5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gb3Blbi1vdXRw dXQtcGlwZSBjb21tYW5kCiBFcXVpdmFsZW50IHRvIEBjb2Rle29wZW4tcGlwZX0gd2l0aCBtb2Rl IEBjb2Rle09QRU5fV1JJVEV9LgogQGVuZCBkZWZmbgogCiBAZmluZGV4IHBjbG9zZQotQGMgQHR3 ZXJwZG9jIChjbG9zZS1waXBlKQotQGMgLi4vLi4vaWNlLTkvcG9wZW4uZG9jCisKIEBkZWZmbiB7 U2NoZW1lIFByb2NlZHVyZX0gY2xvc2UtcGlwZSBwCiBDbG9zZSB0aGUgcGlwZSBjcmVhdGVkIGJ5 IEBjb2Rle29wZW4tcGlwZX0sIHdhaXQgZm9yIHRoZSBwcm9jZXNzCiB0byB0ZXJtaW5hdGUsIGFu ZCByZXR1cm4gaXRzIHN0YXR1cyB2YWx1ZS4gIEB4cmVme1Byb2Nlc3Nlcywgd2FpdHBpZH0sCmRp ZmYgLS1naXQgYS9kb2MvcmVmL3J1bnEudGV4aSBiL2RvYy9yZWYvcnVucS50ZXhpCmluZGV4IGY2 NmUyYzQuLjEzODgwOTAgMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvcnVucS50ZXhpCisrKyBiL2RvYy9y ZWYvcnVucS50ZXhpCkBAIC0xOSw4ICsxOSw2IEBAIGNvbXB1dGF0aW9ucywgZXZhbHVhdGUgdGhl IGZvcm06CiAodXNlLW1vZHVsZXMgKGljZS05IHJ1bnEpKQogQGVuZCBzbWFsbGxpc3AKIAotQGMg QHR3ZXJwY29tbWVudGFyeSAodmVyYmF0aW0gKGljZS05IHJ1bnEpKQotQHZlcmJhdGltCiBPbmUg d2F5IHRvIHNjaGVkdWxlIHBhcmFsbGVsIGNvbXB1dGF0aW9ucyBpbiBhIHNlcmlhbCBlbnZpcm9u bWVudCBpcwogdG8gZXhwbGljaXRseSBkaXZpZGUgZWFjaCB0YXNrIHVwIGludG8gc21hbGwsIGZp bml0ZSBleGVjdXRpb24gdGltZSwKIHN0cmlwcy4gIFRoZW4geW91IGludGVybGVhdmUgdGhlIGV4 ZWN1dGlvbiBvZiBzdHJpcHMgZnJvbSB2YXJpb3VzCkBAIC00NSwxMCArNDMsNyBAQCBvcmlnaW5h bCBzdHJpcCBpZiB0aGF0IHN0cmlwIGhhcyAyKyBlbGVtZW50cy4gIFRoZSBydW5xIHB1dHMgd2hp Y2hldmVyCiBvZiB0aGVzZSBzdHJpcHMgZXhpc3QgYmFjayBvbiB0aGUgcXVldWUuICAoVGhlIGV4 YWN0IG9yZGVyIGluIHdoaWNoCiBzdHJpcHMgYXJlIHB1dCBiYWNrIG9uIHRoZSBxdWV1ZSBkZXRl cm1pbmVzIHRoZSBzY2hlZHVsaW5nIGJlaGF2aW9yIG9mCiBhIHBhcnRpY3VsYXIgcXVldWUgLS0g aXQncyBhIHBhcmFtZXRlci4pCi1AZW5kIHZlcmJhdGltCiAKLUBjIEB0d2VycGRvYyAocnVucS1j b250cm9sKQotQGMgLi4vLi4vaWNlLTkvcnVucS5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVy ZX0gcnVucS1jb250cm9sIHEgbXNnIFthcmdzLi4uXQogRm9yIHJ1bnEgQHZhcntxfSwgcHJvY2Vz cyBpbiB0aGUgZGVmYXVsdCB3YXkgdGhlIGNvbnRyb2wKIG1lc3NhZ2UgQHZhcnttc2d9IChhIHN5 bWJvbCkgYW5kIGl0cyBAdmFye2FyZ3N9LiAgVGhlc2UKQEAgLTc1LDE0ICs3MCwxMiBAQCBFbXB0 eSB0aGUgcnVucS4KIFNpZ25hbCBlcnJvciBmb3IgYW55IG90aGVyIG1lc3NhZ2UsIHdpdGgga2V5 IEBjb2Rle25vdC11bmRlcnN0b29kfQogYW5kIHR3byBhcmd1bWVudHMgQHZhcnttc2d9IGFuZCBA dmFye2FyZ3N9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChtYWtlLXZvaWQtcnVucSkKLUBj IC4uLy4uL2ljZS05L3J1bnEuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbWFrZS12 b2lkLXJ1bnEKIFJldHVybiBhIHJ1bnEgdGhhdCBkaXNjYXJkcyBhbGwgbWVzc2FnZXMgZXhjZXB0 IEBjb2Rle2xlbmd0aH0sCiBmb3Igd2hpY2ggaXQgcmV0dXJucyAwLgogQGVuZCBkZWZmbgotQGMg QHR3ZXJwZG9jIChtYWtlLWZhaXItcnVucSkKLUBjIC4uLy4uL2ljZS05L3J1bnEuZG9jCisKIEBk ZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gbWFrZS1mYWlyLXJ1bnEKIFJldHVybiBhIHJ1bnEgcHJv Y2VkdXJlLgogQ2FsbGVkIHdpdGggbm8gYXJndW1lbnRzLCB0aGUgcHJvY2VkdXJlIHByb2Nlc3Nl cyBvbmUgc3RyaXAgZnJvbSB0aGUgcXVldWUuCkBAIC05Miw4ICs4NSw3IEBAIEluIGEgZmFpciBy dW5xLCBpZiBhIHN0cmlwIHJldHVybnMgYSBuZXcgc3RyaXAgQGNvZGV7WH0sIHRoYXQgaXMgYWRk ZWQKIHRvIHRoZSBlbmQgb2YgdGhlIHF1ZXVlLCBtZWFuaW5nIGl0IHdpbGwgYmUgdGhlIGxhc3Qg dG8gZXhlY3V0ZQogb2YgYWxsIHRoZSByZW1haW5pbmcgc3RyaXBzLgogQGVuZCBkZWZmbgotQGMg QHR3ZXJwZG9jIChtYWtlLWV4Y2x1c2l2ZS1ydW5xKQotQGMgLi4vLi4vaWNlLTkvcnVucS5kb2MK KwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBtYWtlLWV4Y2x1c2l2ZS1ydW5xCiBSZXR1cm4g YSBydW5xIHByb2NlZHVyZS4KIENhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cywgdGhlIHByb2NlZHVy ZSBwcm9jZXNzZXMgb25lIHN0cmlwIGZyb20gdGhlIHF1ZXVlLgpAQCAtMTA5LDggKzEwMSw3IEBA IHF1ZXVlLCB0aGUgQHNje2Nkcn0gb2YgdGhlIGxpc3Qgb2Ygc3RyaXBzIGlzIHB1c2hlZCBpbiBm cm9udCBvZiB0aGF0IChpZgogdGhlIEBzY3tjZHJ9IGlzIG5vdCBlbXB0eSkuICBUaGlzIHdheSwg dGhlIHJlc3Qgb2YgdGhlIHRodW5rcyBpbiB0aGUgbGlzdAogdGhhdCBjb250YWluZWQgQGNvZGV7 V30gaGF2ZSBwcmlvcml0eSBvdmVyIEBjb2Rle1h9LgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9j IChtYWtlLXN1Ym9yZGluYXRlLXJ1bnEtdG8pCi1AYyAuLi8uLi9pY2UtOS9ydW5xLmRvYworCiBA ZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IG1ha2Utc3Vib3JkaW5hdGUtcnVucS10byBzdXBlcmlv ciBiYXNpYy1pbmZlcmlvcgogUmV0dXJuIGEgcnVucSBwcm94eSBmb3IgdGhlIHJ1bnEgQHZhcnti YXNpYy1pbmZlcmlvcn0uCiAKQEAgLTEyMiwxMyArMTEzLDExIEBAIG9mIHRoYXQgdGFzayBwcm9j ZXNzZXMgQGNvZGV7Tn0gc3RyaXBzIGZyb20gQHZhcntiYXNpYy1pbmZlcmlvcn0gd2hlcmUKIEBj b2Rle059IGlzIHRoZSBsZW5ndGggb2YgQHZhcntiYXNpYy1pbmZlcmlvcn0gd2hlbiB0aGUgcHJv eHkKIHN0cmlwIGlzIGVudGVyZWQuICBbQ291bnRsZXNzIHNjaGVkdWxpbmcgdmFyaWF0aW9ucyBh cmUgcG9zc2libGUuXQogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChzdHJpcC1zZXF1ZW5jZSkK LUBjIC4uLy4uL2ljZS05L3J1bnEuZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gc3Ry aXAtc2VxdWVuY2UgW3N0cmlwcy4uLl0KIFJldHVybiBhIG5ldyBzdHJpcCB3aGljaCBpcyB0aGUg Y29uY2F0ZW5hdGlvbiBvZiBAdmFye3N0cmlwc30uCiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2Mg KGZhaXItc3RyaXAtc3VidGFzaykKLUBjIC4uLy4uL2ljZS05L3J1bnEuZG9jCisKIEBkZWZmbiB7 U2NoZW1lIFByb2NlZHVyZX0gZmFpci1zdHJpcC1zdWJ0YXNrIFtpbml0aWFsLXN0cmlwcy4uLl0K IFJldHVybiBhIG5ldyBzdHJpcCB3aGljaCBpcyB0aGUgc3luY2hyb25vdXMsIGZhaXIsCiBwYXJh bGxlbCBleGVjdXRpb24gb2YgdGhlIEB2YXJ7aW5pdGlhbC1zdHJpcHN9LgpkaWZmIC0tZ2l0IGEv ZG9jL3JlZi9zZXNzaW9uLnRleGkgYi9kb2MvcmVmL3Nlc3Npb24udGV4aQppbmRleCBkNTllNzkw Li5hZTNmNmRiIDEwMDY0NAotLS0gYS9kb2MvcmVmL3Nlc3Npb24udGV4aQorKysgYi9kb2MvcmVm L3Nlc3Npb24udGV4aQpAQCAtMjksMTQgKzI5LDExIEBAIGhvd2V2ZXIsIHlvdSBjYW4gbG9hZCB0 aGVtIGV4cGxpY2l0bHkgd2l0aCB0aGUgZXhwcmVzc2lvbjoKIFRoZSByZXN0IG9mIHRoaXMgc2Vj dGlvbiBkZXNjcmliZXMgdGhlIHByb2NlZHVyZXMgYW5kIG1hY3JvcyBhdmFpbGFibGUKIGJ5IGxv YWRpbmcgbW9kdWxlIEBjb2RleyhpY2UtOSBzZXNzc2lvbil9LgogCi1AYyBAdHdlcnBkb2MgKGFk ZC10by1sb2FkLXBhdGghKQotQGMgLi4vLi4vaWNlLTkvc2Vzc2lvbi5kb2MKIEBkZWZmbiB7U2No ZW1lIFByb2NlZHVyZX0gYWRkLXRvLWxvYWQtcGF0aCEgZGlyZWN0b3J5IFthcHBlbmQ/XQogQWRk IEB2YXJ7ZGlyZWN0b3J5fSB0byBAY29kZXslbG9hZC1wYXRofSwgaWYgaXQgaXMgbm90IGFscmVh ZHkgdGhlcmUuCiBBZGQgYXQgdGhlIGJlZ2lubmluZywgdW5sZXNzIG9wdGlvbmFsIGFyZyBAdmFy e2FwcGVuZD99IGlzIG5vbi0jZi4KIEBlbmQgZGVmZm4KLUBjIEB0d2VycGRvYyAoc2V0LWZhbmN5 LXJlcGwtcHJvbXB0ISkKLUBjIC4uLy4uL2ljZS05L3Nlc3Npb24uZG9jCisKIEBkZWZmbiB7U2No ZW1lIFByb2NlZHVyZX0gc2V0LWZhbmN5LXJlcGwtcHJvbXB0ISBmb3JtYXQtc3RyaW5nCiBTZXQg dGhlIHJlcGwgcHJvbXB0IGJhc2VkIG9uIEB2YXJ7Zm9ybWF0LXN0cmluZ30uCiBFYWNoIGNoYXJh Y3RlciBpbiBAdmFye2Zvcm1hdC1zdHJpbmd9IHN0YW5kcyBmb3IgaXRzZWxmLApAQCAtNTQsMTkg KzUxLDE1IEBAIERpc3BsYXkgdmFyaW91cyBmb3JtcyBvZiBoZWxwIGRlcGVuZGluZyBvbiBAdmFy e2FyZ3N9LCBvciBhCiBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiBAY29kZXtoZWxwfSB1c2FnZSBp ZiBnaXZlbiBubyBhcmdzLgogQGVuZCBkZWZmbgogCi1AYyBAdHdlcnBkb2MgKGFwcm9wb3MpCi1A YyAuLi8uLi9pY2UtOS9zZXNzaW9uLmRvYwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBhcHJv cG9zIHJneCBbb3B0aW9ucy4uLl0KIFNlYXJjaCBmb3IgYmluZGluZ3MgbWF0Y2hpbmcgQHZhcnty Z3h9LCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBzdHJpbmcuCiBAdmFye29wdGlvbnN9IGFyZSBzeW1i b2xzOiBAY29kZXtmdWxsfSwgQGNvZGV7c2hhZG93fSwgQGNvZGV7dmFsdWV9LgogQGVuZCBkZWZm bgotQGMgQHR3ZXJwZG9jIChhcHJvcG9zLWludGVybmFsKQotQGMgLi4vLi4vaWNlLTkvc2Vzc2lv bi5kb2MKKwogQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBhcHJvcG9zLWludGVybmFsIHJneAog UmV0dXJuIGEgbGlzdCBvZiBhY2Nlc3NpYmxlIHZhcmlhYmxlIG5hbWVzIGZvciBAdmFye3JneH0u CiBAZW5kIGRlZmZuCi1AYyBAdHdlcnBkb2MgKGFwcm9wb3MtZm9sZCkKLUBjIC4uLy4uL2ljZS05 L3Nlc3Npb24uZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gYXByb3Bvcy1mb2xkIHBy b2MgaW5pdCByZ3ggZm9sZGVyCiBGb2xkIFBST0NFRFVSRSBvdmVyIGJpbmRpbmdzIG1hdGNoaW5n IHRoaXJkIGFyZyBSRUdFWFAuCiAKQEAgLTg5LDI1ICs4MiwxOSBAQCBGb3VydGggYXJnIEZPTERF UiBpcyBvbmUgb2YKICAgYXByb3Bvcy1mb2xkLWFsbCAgICAgICAgICAgICAgICAgO2ZvbGQgb3Zl ciBhbGwgYmluZGluZ3MKIEBlbmQgZXhhbXBsZQogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChh cHJvcG9zLWZvbGQtYWNjZXNzaWJsZSkKLUBjIC4uLy4uL2ljZS05L3Nlc3Npb24uZG9jCisKIEBk ZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gYXByb3Bvcy1mb2xkLWFjY2Vzc2libGUgbW9kdWxlCiBG SVhNRTogRG9jcyBpbmNvbXBsZXRlLgogQGVuZCBkZWZmbgotQGMgKyBAdHdlcnBkb2MgKGFwcm9w b3MtZm9sZC1leHBvcnRlZCkKLUBjICsgQHR3ZXJwZG9jIChhcHJvcG9zLWZvbGQtYWxsKQotQGMg QHR3ZXJwZG9jIChzb3VyY2UpCi1AYyAuLi8uLi9pY2UtOS9zZXNzaW9uLmRvYworCiBAZGVmZm4g e1NjaGVtZSBQcm9jZWR1cmV9IHNvdXJjZSBvYmoKIFJldHVybiB0aGUgc291cmNlIGNvZGUgZm9y IEB2YXJ7b2JqfSwgYSBwcm9jZWR1cmUgb3IgbWFjcm8uCiBUaGUgc291cmNlIGNvZGUgaXMgYW4g YWN5Y2xpYyBzdHJ1Y3R1cmVkIGV4cHJlc3Npb24gKHRyZWUgb2Ygc3ltYm9scywgZXRjKS4KIElm IEB2YXJ7b2JqfSBkb2VzIG5vdCBoYXZlIHNvdXJjZSBjb2RlIGFzc29jaWF0ZWQgd2l0aCBpdCwg cmV0dXJuICNmLgogQGVuZCBkZWZmbgotQGMgQHR3ZXJwZG9jIChhcml0eSkKLUBjIC4uLy4uL2lj ZS05L3Nlc3Npb24uZG9jCisKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gYXJpdHkgcHJvYwog RGlzcGxheSB0aGUgYXJpdHkgb2YgcHJvY2VkdXJlIEB2YXJ7cHJvY30uCiBAZW5kIGRlZmZuCi1A YyArIEB0d2VycGRvYyAoc3lzdGVtLW1vZHVsZSkKIAogQGMgc2Vzc2lvbi50ZXhpIGVuZHMgaGVy ZQpkaWZmIC0tZ2l0IGEvZG9jL3JlZi9zdGFjay1jYXRjaC50ZXhpIGIvZG9jL3JlZi9zdGFjay1j YXRjaC50ZXhpCmluZGV4IDE5NjI2OGMuLjgwMjBlODkgMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvc3Rh Y2stY2F0Y2gudGV4aQorKysgYi9kb2MvcmVmL3N0YWNrLWNhdGNoLnRleGkKQEAgLTE5LDggKzE5 LDYgQEAgb25lIGltcG9ydGFudCByZXNwZWN0OiB0aGUgaGFuZGxlciBwcm9jZWR1cmUgaXMgZXhl Y3V0ZWQgd2l0aG91dAogdW53aW5kaW5nIHRoZSBjYWxsIHN0YWNrIGZyb20gdGhlIGNvbnRleHQg b2YgdGhlIEBjb2Rle3Rocm93fSBleHByZXNzaW9uCiB0aGF0IGNhdXNlZCB0aGUgaGFuZGxlciB0 byBiZSBpbnZva2VkLgogCi1AYyBAdHdlcnBkb2MgKGxhenktY2F0Y2ggKEMgc2NtX2xhenlfY2F0 Y2gpKQotQGMgLi4vLi4vbGliZ3VpbGUvdGhyb3cuZG9jCiBAZGVmZm4ge1NjaGVtZSBQcm9jZWR1 cmV9IGxhenktY2F0Y2ggdGFnIHRodW5rIGhhbmRsZXIKIEBkZWZmbngge0MgRnVuY3Rpb259IHNj bV9sYXp5X2NhdGNoICh0YWcsIHRodW5rLCBoYW5kbGVyKQogQmVoYXZlIGxpa2UgQGNvZGV7Y2F0 Y2h9LCBleGNlcHQgdGhhdCB0aGUgc3RhY2sgaXMKQEAgLTEwNiw4ICsxMDQsNiBAQCBhdmFpbGFi bGUgYWZ0ZXIgZXZhbHVhdGluZyB0aGUgZm9ybToKICh1c2UtbW9kdWxlcyAoaWNlLTkgc3RhY2st Y2F0Y2gpKQogQGVuZCBsaXNwCiAKLUBjIEB0d2VycGRvYyAoc3RhY2stY2F0Y2gpCi1AYyAuLi8u Li9pY2UtOS9zdGFjay1jYXRjaC5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gc3RhY2st Y2F0Y2gga2V5IHRodW5rIGhhbmRsZXIKIExpa2UgQGNvZGV7Y2F0Y2h9LCBpbnZva2UgQHZhcnt0 aHVua30gaW4gdGhlIGR5bmFtaWMgY29udGV4dCBvZgogQHZhcntoYW5kbGVyfSBmb3IgZXhjZXB0 aW9ucyBtYXRjaGluZyBAdmFye2tleX0sIGJ1dCBhbHNvIHNhdmUgdGhlCmRpZmYgLS1naXQgYS9k b2MvcmVmL3N0cmluZy1mdW4udGV4aSBiL2RvYy9yZWYvc3RyaW5nLWZ1bi50ZXhpCmluZGV4IDlh NzA3MzguLmNjYTY2ODggMTAwNjQ0Ci0tLSBhL2RvYy9yZWYvc3RyaW5nLWZ1bi50ZXhpCisrKyBi L2RvYy9yZWYvc3RyaW5nLWZ1bi50ZXhpCkBAIC0yMSw4ICsyMSw2IEBAIHNoYXJlZCBzdWJzdHJp bmcgY2FwYWJpbGl0eS4gIFRoZXNlIGFyZSBhdmFpbGFibGUgYnkgZXZhbHVhdGluZzoKICh1c2Ut bW9kdWxlcyAoaWNlLTkgc3RyaW5nLWZ1bikpCiBAZW5kIGxpc3AKIAotQGMgQHR3ZXJwY29tbWVu dGFyeSAodmVyYmF0aW0gKGljZS05IHN0cmluZy1mdW4pKQotCiBUaGlzIG1vZHVsZSBwcm92aWRl cyB0aGUgZm9sbG93aW5nIHByb2NlZHVyZXM6CiAKIEB2ZXJiYXRpbQpkaWZmIC0tZ2l0IGEvZG9j L3JlZi90aHJlYWRzLnRleGkgYi9kb2MvcmVmL3RocmVhZHMudGV4aQppbmRleCBmMjI1MjM5Li4x OTMzMDI4IDEwMDY0NAotLS0gYS9kb2MvcmVmL3RocmVhZHMudGV4aQorKysgYi9kb2MvcmVmL3Ro cmVhZHMudGV4aQpAQCAtMjEsOCArMjEsNiBAQCBIaWdoZXIgbGV2ZWwgdGhyZWFkIHByb2NlZHVy ZXMgYXJlIGF2YWlsYWJsZSBieSBldmFsdWF0aW5nOgogVGhlIGZvbGxvd2luZyBwcm9jZWR1cmVz IGFuZCBtYWNyb3MgcHJvdmlkZSBzdGFuZGFyZGl6ZWQKIHRocmVhZCBjcmVhdGlvbiBhbmQgbXV0 ZXggaW50ZXJhY3Rpb24uCiAKLUBjIEB0d2VycGRvYyAoJXRocmVhZC1oYW5kbGVyKQotQGMgLi4v Li4vaWNlLTkvdGhyZWFkcy5kb2MKIEBkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gJXRocmVhZC1o YW5kbGVyIHRhZyBbYXJncy4uLl0KIFRoaXMgcHJvY2VkdXJlIGlzIHNwZWNpZmllZCBhcyB0aGUg c3RhbmRhcmQgZXJyb3ItaGFuZGxlciBmb3IKIEBjb2Rle21ha2UtdGhyZWFkfSBhbmQgQGNvZGV7 YmVnaW4tdGhyZWFkfS4gIElmIHRoZSBudW1iZXIgb2YgQHZhcnthcmdzfQpAQCAtMzYsMzEgKzM0 LDIzIEBAIGFuZCBzaWduYWxzIGFyZSB1bm1hc2tlZCB3aXRoIEBjb2Rle3VubWFzay1zaWduYWxz fS4KIEBjIFtGSVhNRTogV2h5IGRpc3Rpbmd1aXNoIGJhc2VkIG9uIG51bWJlciBvZiBhcmdzPyEg IEN1ZSB2b29kb28gbXVzaWMgaGVyZS5dCiBAZW5kIGRlZmZuCiAKLUBjIEB0d2VycG1hY2RvYyAo bWFrZS10aHJlYWQpCi1AYyAuLi8uLi9pY2UtOS90aHJlYWRzLmRvYwogQGRlZmZuIHtTY2hlbWUg TWFjcm99IG1ha2UtdGhyZWFkIHByb2MgW2FyZ3MuLi5dCiBBcHBseSBAdmFye3Byb2N9IHRvIEB2 YXJ7YXJnc30gaW4gYSBuZXcgdGhyZWFkIGZvcm1lZCBieQogQGNvZGV7Y2FsbC13aXRoLW5ldy10 aHJlYWR9IHVzaW5nIEBjb2RleyV0aHJlYWQtaGFuZGxlcn0gYXMgdGhlIGVycm9yCiBoYW5kbGVy LgogQGVuZCBkZWZmbgogCi1AYyBAdHdlcnBtYWNkb2MgKGJlZ2luLXRocmVhZCkKLUBjIC4uLy4u L2ljZS05L3RocmVhZHMuZG9jCiBAZGVmZm4ge1NjaGVtZSBNYWNyb30gYmVnaW4tdGhyZWFkIGZp cnN0IFtyZXN0Li4uXQogRXZhbHVhdGUgZm9ybXMgQHZhcntmaXJzdH0gYW5kIEB2YXJ7cmVzdH0g aW4gYSBuZXcgdGhyZWFkIGZvcm1lZCBieQogQGNvZGV7Y2FsbC13aXRoLW5ldy10aHJlYWR9IHVz aW5nIEBjb2RleyV0aHJlYWQtaGFuZGxlcn0gYXMgdGhlIGVycm9yCiBoYW5kbGVyLgogQGVuZCBk ZWZmbgogCi1AYyBAdHdlcnBtYWNkb2MgKHdpdGgtbXV0ZXgpCi1AYyAuLi8uLi9pY2UtOS90aHJl YWRzLmRvYwogQGRlZmZuIHtTY2hlbWUgTWFjcm99IHdpdGgtbXV0ZXggbSBbYm9keS4uLl0KIExv Y2sgbXV0ZXggQHZhcnttfSwgZXZhbHVhdGUgQHZhcntib2R5fSwgYW5kIHRoZW4gdW5sb2NrIEB2 YXJ7bX0uCiBUaGVzZSBzdWItb3BlcmF0aW9ucyBmb3JtIHRoZSBicmFuY2hlcyBvZiBhIEBjb2Rl e2R5bmFtaWMtd2luZH0uCiBAZW5kIGRlZmZuCiAKLUBjIEB0d2VycG1hY2RvYyAobW9uaXRvcikK LUBjIC4uLy4uL2ljZS05L3RocmVhZHMuZG9jCiBAZGVmZm4ge1NjaGVtZSBNYWNyb30gbW9uaXRv ciBmaXJzdCBbcmVzdC4uLl0KIEV2YWx1YXRlIGZvcm1zIEB2YXJ7Zmlyc3R9IGFuZCBAdmFye3Jl c3R9IHVuZGVyIGEgbmV3bHkgY3JlYXRlZAogYW5vbnltb3VzIG11dGV4LCB1c2luZyBAY29kZXt3 aXRoLW11dGV4fS4KLS0gCjEuNy42Cgo= --e89a8fb1f8d6626dcf04c4919afe--