From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2554 invoked by alias); 9 Jan 2010 06:29:14 -0000 Received: (qmail 2545 invoked by uid 22791); 9 Jan 2010 06:29:14 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,RCVD_IN_SORBS_WEB,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-ew0-f223.google.com (HELO mail-ew0-f223.google.com) (209.85.219.223) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 09 Jan 2010 06:29:10 +0000 Received: by ewy23 with SMTP id 23so6576928ewy.4 for ; Fri, 08 Jan 2010 22:29:07 -0800 (PST) Received: by 10.213.0.151 with SMTP id 23mr357590ebb.43.1263018546894; Fri, 08 Jan 2010 22:29:06 -0800 (PST) Received: from localhost (5-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.5]) by mx.google.com with ESMTPS id 24sm4679240eyx.14.2010.01.08.22.28.38 (version=SSLv3 cipher=RC4-MD5); Fri, 08 Jan 2010 22:29:06 -0800 (PST) Date: Sat, 09 Jan 2010 06:29:00 -0000 From: Mihail Zenkov To: Joel Brobecker Cc: gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100109082830.dd984de8.mihai.zenkov@gmail.com> In-Reply-To: <20100109082524.263bcb17.mihai.zenkov@gmail.com> References: <20091224015617.7092112b.mihai.zenkov@gmail.com> <20091230125539.GF2788@adacore.com> <20100109082524.263bcb17.mihai.zenkov@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Sat__9_Jan_2010_08_28_30_+0200_AowT8rwqBTBIaT8P" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-01/txt/msg00205.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Sat__9_Jan_2010_08_28_30_+0200_AowT8rwqBTBIaT8P Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 1306 On Sat, 9 Jan 2010 08:25:24 +0200 Mihail Zenkov wrote: > On Wed, 30 Dec 2009 16:55:39 +0400 > Joel Brobecker wrote: > > > Mihail, > > > > Not bad :). There were a lot of little things, so I focused on the obvious > > (procedural) ones for now, and I will review the contents of your code > > again more carefully on the next revision. > > > > Before I go into the details, I have a question, though: Are you the sole > > author of this patch? I am asking because there are really two distinctive > > coding styles used in this case. One is very different from the style > > used in GDB (and other GNU projects written in C), and the other one > > is pretty spot on in terms of the coding style. Hard to believe that > > the same person wrote both parts! It's very important to know, because > > only the author may assign the copyright to the FSF (IANAL, but I believe > > this to be true). > > You right. Initial author is John Demme. I update his patch and add > dynamic array support. AFAIK John Demme also assign copyright papers. > > http://sourceware.org/bugzilla/show_bug.cgi?id=10142 > http://sourceware.org/ml/gdb-patches/2005-04/msg00074.html > http://sourceware.org/ml/gdb-patches/2009-08/msg00264.html > Sorry, forget attach new patch. --Multipart=_Sat__9_Jan_2010_08_28_30_+0200_AowT8rwqBTBIaT8P Content-Type: application/octet-stream; name="gdb-100109-d.patch" Content-Disposition: attachment; filename="gdb-100109-d.patch" Content-Transfer-Encoding: base64 Content-length: 36255 Z2RiL0NoYW5nZUxvZzoKICAgICAgICBEIGxhbmd1YWdlIHN1cHBvcnQuCiAg ICAgICAgKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkIGQtbGFuZy5jIGQt dmFscHJpbnQuYy4KICAgICAgICAgICAgICAgICAgICAgIChDT01NT05fT0JT KTogQWRkIGQtbGFuZy5vIGQtdmFscHJpbnQuby4KICAgICAgICAgICAgICAg ICAgICAgIChIRklMRVNfTk9fU1JDRElSKTogQWRkIGQtbGFuZy5oLgogICAg ICAgICogYy1hbG5nLmM6IE1ha2UgY19lbWl0X2NoYXIgYW5kIGV4cF9kZXNj cmlwdG9yX2MgcHVibGljLgoJKiBjLWxhbmcuaDogQWRkIGRlY2xhcmF0aW9u IGNfZW1pdF9jaGFyIGFuZCBleHBfZGVzY3JpcHRvcl9jLgoJKiBkLWxhbmcu YzogTmV3IGZpbGUuCgkqIGQtbGFuZy5oOiBOZXcgZmlsZS4KCSogZC12YWxw cmludC5jOiBOZXcgZmlsZS4KCSogZGVmcy5oIChlbnVtIGxhbmd1YWdlKTog QWRkIGxhbmd1YWdlX2QuCgkqIGRvYy9nZGIudGV4aW5mbzogQWRkIG1lbnRp b24gYWJvdXQgRCBsYW5ndWFnZSBzdXBwb3J0LgoJKiBkd2FyZjJyZWFkLmMg KHNldF9jdV9sYW5ndWFnZSk6IEFkZCBEV19MQU5HX0QuCgkqIGxhbmd1YWdl LmMgKGJpbm9wX3Jlc3VsdF90eXBlKTogQWRkIGxhbmd1YWdlX2QuCgkJICAg ICAoaW50ZWdyYWxfdHlwZSk6IEFkZCBsYW5ndWFnZV9kLiAKCQkgICAgIChj aGFyYWN0ZXJfdHlwZSk6IEFkZCBsYW5ndWFnZV9kLiAKCQkgICAgIChzdHJp bmdfdHlwZSk6IEFkZCBsYW5ndWFnZV9kLiAKCQkgICAgIChib29sZWFuX3R5 cGUpOiBBZGQgbGFuZ3VhZ2VfZC4gCgkJICAgICAoc3RydWN0dXJlZF90eXBl KTogQWRkIGxhbmd1YWdlX2QuCgkqIHN5bWZpbGUuYyAoaW5pdF9maWxlbmFt ZV9sYW5ndWFnZV90YWJsZSk6IEFkZCBsYW5ndWFnZV9kLgoJKiBzeW10YWIu YyBJbmNsdWRlIGQtbGFuZy5oLgoJCSAgIChzeW1ib2xfaW5pdF9sYW5ndWFn ZV9zcGVjaWZpYyk6IEFkZCBsYW5ndWFnZV9kLgoJCSAgIChzeW1ib2xfZmlu ZF9kZW1hbmdsZWRfbmFtZSk6IEFkZCBsYW5ndWFnZV9kLgoJCSAgIChzeW1i b2xfbmF0dXJhbF9uYW1lKTogQWRkIGxhbmd1YWdlX2QuCgkJICAgKHN5bWJv bF9kZW1hbmdsZWRfbmFtZSk6IEFkZCBsYW5ndWFnZV9kLgoJCSAgIChsb29r dXBfc3ltYm9sX2luX2xhbmd1YWdlKTogQWRkIGxhbmd1YWdlX2QuCgkJICAg KHN5bWJvbF9tYXRjaGVzX2RvbWFpbik6IEFkZCBsYW5ndWFnZV9kLgoKCmRp ZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4K aW5kZXggNGQzZTAyYS4uN2FjZDk2OCAxMDA2NDQKLS0tIGEvZ2RiL01ha2Vm aWxlLmluCisrKyBiL2dkYi9NYWtlZmlsZS5pbgpAQCAtNjQxLDYgKzY0MSw3 IEBAIFNGSUxFUyA9IGFkYS1leHAueSBhZGEtbGFuZy5jIGFkYS10eXBlcHJp bnQuYyBhZGEtdmFscHJpbnQuYyBhZGEtdGFza3MuYyBcCiAJY2hhcnNldC5j IGNsaS1vdXQuYyBjb2ZmcmVhZC5jIGNvZmYtcGUtcmVhZC5jIFwKIAljb21w bGFpbnRzLmMgY29tcGxldGVyLmMgY29yZWZpbGUuYyBcCiAJY3AtYWJpLmMg Y3Atc3VwcG9ydC5jIGNwLW5hbWVzcGFjZS5jIGNwLXZhbHByaW50LmMgXAor CWQtbGFuZy5jIGQtdmFscHJpbnQuYyBcCiAJY3AtbmFtZS1wYXJzZXIueSBc CiAJZGJ4cmVhZC5jIGRlbWFuZ2xlLmMgZGljdGlvbmFyeS5jIGRpc2FzbS5j IGRvdWJsZXN0LmMgZHVtbXktZnJhbWUuYyBcCiAJZHdhcmYyZXhwci5jIGR3 YXJmMmxvYy5jIGR3YXJmMnJlYWQuYyBkd2FyZjItZnJhbWUuYyBcCkBAIC03 MDcsNyArNzA4LDcgQEAgY2xpLW91dC5oIGdkYl9leHBhdC5oIGJyZWFrcG9p bnQuaCBpbmZjYWxsLmggb2JzZC10ZGVwLmggZ251LXYyLWFiaS5oIFwKIGV4 ZWMuaCBtMzJyLXRkZXAuaCBvc2FiaS5oIGdkYmNvcmUuaCBzb2xpYi1zb20u aCBcCiBpMzg2YnNkLW5hdC5oIHhtbC1zdXBwb3J0LmggeG1sLXRkZXNjLmgg YWxwaGFic2QtdGRlcC5oIGdkYl9vYnN0YWNrLmggXAogaWE2NC10ZGVwLmgg YWRhLWxhbmcuaCB2YXJvYmouaCBmcnYtdGRlcC5oIG50by10ZGVwLmggc2Vy aWFsLmggXAotYy1sYW5nLmggZnJhbWUuaCBldmVudC1sb29wLmggYmxvY2su aCBjbGkvY2xpLXNldHNob3cuaAlcCitjLWxhbmcuaCBkLWxhbmcuaCBmcmFt ZS5oIGV2ZW50LWxvb3AuaCBibG9jay5oIGNsaS9jbGktc2V0c2hvdy5oCVwK IGNsaS9jbGktZGVjb2RlLmggY2xpL2NsaS1jbWRzLmggY2xpL2NsaS1kdW1w LmggXAogY2xpL2NsaS1zY3JpcHQuaCBtYWNyb3RhYi5oIHN5bXRhYi5oIHZl cnNpb24uaCBnbnVsaWIvd2NoYXIuaW4uaCBcCiBnbnVsaWIvc3RyaW5nLmlu LmggZ251bGliL3N0ci10d28td2F5LmggZ251bGliL2V4dHJhL2xpbmstd2Fy bmluZy5oIFwKQEAgLTgxMCw3ICs4MTEsNyBAQCBDT01NT05fT0JTID0gJChE RVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZT0JKKSBcCiAJZGJ4cmVhZC5v IGNvZmZyZWFkLm8gY29mZi1wZS1yZWFkLm8gXAogCWR3YXJmMnJlYWQubyBt aXBzcmVhZC5vIHN0YWJzcmVhZC5vIGNvcmVmaWxlLm8gXAogCWR3YXJmMmV4 cHIubyBkd2FyZjJsb2MubyBkd2FyZjItZnJhbWUubyBcCi0JYWRhLWxhbmcu byBjLWxhbmcubyBmLWxhbmcubyBvYmpjLWxhbmcubyBcCisJYWRhLWxhbmcu byBjLWxhbmcubyBkLWxhbmcubyBmLWxhbmcubyBvYmpjLWxhbmcubyBcCiAJ YWRhLXRhc2tzLm8gXAogCXVpLW91dC5vIGNsaS1vdXQubyBcCiAJdmFyb2Jq Lm8gdmVjLm8gd3JhcHBlci5vIFwKQEAgLTgyMCw3ICs4MjEsOCBAQCBDT01N T05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZT0JKKSBc CiAJc2VudGluZWwtZnJhbWUubyBcCiAJY29tcGxhaW50cy5vIHR5cGVwcmlu dC5vIFwKIAlhZGEtdHlwZXByaW50Lm8gYy10eXBlcHJpbnQubyBmLXR5cGVw cmludC5vIG0yLXR5cGVwcmludC5vIFwKLQlhZGEtdmFscHJpbnQubyBjLXZh bHByaW50Lm8gY3AtdmFscHJpbnQubyBmLXZhbHByaW50Lm8gbTItdmFscHJp bnQubyBcCisJYWRhLXZhbHByaW50Lm8gYy12YWxwcmludC5vIGNwLXZhbHBy aW50Lm8gZC12YWxwcmludC5vIGYtdmFscHJpbnQubyBcCisJbTItdmFscHJp bnQubyBcCiAJc2VyaWFsLm8gbWRlYnVncmVhZC5vIHRvcC5vIHV0aWxzLm8g XAogCXVpLWZpbGUubyBcCiAJdXNlci1yZWdzLm8gXApkaWZmIC0tZ2l0IGEv Z2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5jCmluZGV4IDY2YTk5MDEuLjdi N2U1ZGEgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxhbmcuYworKysgYi9nZGIvYy1s YW5nLmMKQEAgLTI1Myw3ICsyNTMsNyBAQCBwcmludF93Y2hhciAoZ2RiX3dp bnRfdCB3LCBjb25zdCBnZGJfYnl0ZSAqb3JpZywgaW50IG9yaWdfbGVuLAog ICAgc3RyaW5nIHdob3NlIGRlbGltaXRlciBpcyBRVU9URVIuICBOb3RlIHRo YXQgdGhhdCBmb3JtYXQgZm9yIHByaW50aW5nCiAgICBjaGFyYWN0ZXJzIGFu ZCBzdHJpbmdzIGlzIGxhbmd1YWdlIHNwZWNpZmljLiAqLwogCi1zdGF0aWMg dm9pZAordm9pZAogY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHF1b3RlcikKIHsK ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKQEAgLTExMzMsNyArMTEz Myw3IEBAIGNfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCwKICAgbGFpLT5ib29sX3R5cGVfZGVmYXVsdCA9IGJ1aWx0aW4t PmJ1aWx0aW5faW50OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV4cF9k ZXNjcmlwdG9yIGV4cF9kZXNjcmlwdG9yX2MgPSAKK2NvbnN0IHN0cnVjdCBl eHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jID0gCiB7CiAgIHByaW50 X3N1YmV4cF9zdGFuZGFyZCwKICAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJk LApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5oIGIvZ2RiL2MtbGFuZy5oCmlu ZGV4IGMyYzUyNTIuLjRkMjMzNjQgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxhbmcu aAorKysgYi9nZGIvYy1sYW5nLmgKQEAgLTg3LDYgKzg3LDEwIEBAIGV4dGVy biB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFtLCBz dHJ1Y3QgdHlwZSAqZWx0dHlwZSwKIGV4dGVybiB2b2lkIGNfbGFuZ3VhZ2Vf YXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCQkgIHN0 cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKmxhaSk7CiAKK2V4dGVybiBjb25z dCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0b3IgZXhwX2Rlc2NyaXB0b3JfYzsKKwor ZXh0ZXJuIHZvaWQgY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHF1b3Rlcik7CisK IC8qIFRoZXNlIGFyZSBpbiBjLXR5cGVwcmludC5jOiAqLwogCiBleHRlcm4g dm9pZCBjX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvZ2RiL2QtbGFu Zy5jIGIvZ2RiL2QtbGFuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjYyMTFiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvZC1s YW5nLmMKQEAgLTAsMCArMSwzMjYgQEAKKy8qIEQgbGFuZ3VhZ2Ugc3VwcG9y dCByb3V0aW5lcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBD b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIwMTAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIKKyNp bmNsdWRlICJsYW5ndWFnZS5oIgorI2luY2x1ZGUgImQtbGFuZy5oIgorI2lu Y2x1ZGUgImMtbGFuZy5oIgorI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKKyNp bmNsdWRlICJwYXJzZXItZGVmcy5oIgorCisjaW5jbHVkZSA8Y3R5cGUuaD4K KwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgc2l6ZV90IGxlbjsKKyAgY2hhciog c3RyOworICBjaGFyKiBwb3M7Cit9IHVuYm91bmRlZF9zdHJpbmc7CisKKy8q IFJlc2l6ZSB1bmJvdW5kZWQgc3RyaW5nIFNUUi4gTkVXX1NJWkUgaXMgdGhl IG5ldyBsZW5ndGggb2YgU1RSLiAgKi8KK3N0YXRpYyB2b2lkCitzdHJfcmVz aXplICh1bmJvdW5kZWRfc3RyaW5nKiBzdHIsIHNpemVfdCBuZXdfc2l6ZSkK K3sKKyAgaW50IHBvcyA9IHN0ci0+cG9zIC0gc3RyLT5zdHI7CisgIGlmIChu ZXdfc2l6ZSA9PSAwKQorICAgIG5ld19zaXplID0gc3RybGVuKHN0ci0+c3Ry KSArIDE7CisgIHN0ci0+c3RyID0geHJlYWxsb2Moc3RyLT5zdHIsIG5ld19z aXplKTsKKyAgc3RyLT5sZW4gPSBuZXdfc2l6ZTsKKyAgc3RyLT5wb3MgPSBz dHItPnN0ciArIHBvczsKK30KKworLyogQXBwZW5kIHN0cmluZyBTUkMgdG8g dGhlIGVuZCBvZiB1bmJvdW5kZWQgc3RyaW5nIFNUUi4KKyAgIExFTiBpcyB0 aGUgbGVuZ3RoIG9mIFNSQy4gICovCitzdGF0aWMgdm9pZAorYXBwZW5kX2xl biAodW5ib3VuZGVkX3N0cmluZyogc3RyLCBjaGFyKiBzcmMsIHNpemVfdCBs ZW4pCit7CisgIHNpemVfdCBhbW50ID0gc3RyLT5sZW4gLSAoc3RyLT5wb3Mg LSBzdHItPnN0cik7CisgIGlmIChsZW4gPiBhbW50KQorICAgIHN0cl9yZXNp emUoc3RyLCBzdHItPmxlbiArIGxlbiArIDIwKTsKKyAgbWVtY3B5KHN0ci0+ cG9zLCBzcmMsIGxlbik7CisgIHN0ci0+cG9zICs9IGxlbjsKK30KKworLyog QXBwZW5kIHN0cmluZyBTUkMgdG8gdGhlIGVuZCBvZiB1bmJvdW5kZWQgc3Ry aW5nIFNUUi4gICovCitzdGF0aWMgdm9pZAorYXBwZW5kICh1bmJvdW5kZWRf c3RyaW5nKiBzdHIsIGNoYXIqIHNyYykKK3sKKyAgYXBwZW5kX2xlbihzdHIs IHNyYywgc3RybGVuKHNyYykpOworfQorCisvKiBFeHRyYWN0IGlkZW50aWZp ZXJzIGZyb20gTUFOR0xFRCBhbmQgYXBwZW5kIGl0IHRvIE9VVFBVVC4KKyAg IFJldHVybiAxIG9uIHN1Y2Nlc3Mgb3IgLTEgb24gZmFpbHVyZS4gICovCitz dGF0aWMgaW50CitleHRyYWN0aWRlbnRpZmllcnMgKHVuYm91bmRlZF9zdHJp bmcqIG91dHB1dCwgdW5ib3VuZGVkX3N0cmluZyogbWFuZ2xlZCkKK3sKKyAg bG9uZyBpID0gMDsKKyAgd2hpbGUgKGlzZGlnaXQoKm1hbmdsZWQtPnBvcykp CisgICAgeworICAgICAgaSA9IHN0cnRvbChtYW5nbGVkLT5wb3MsICZtYW5n bGVkLT5wb3MsIDEwKTsKKyAgICAgIGlmIChpID09IDAgfHwgaSA9PSBMT05H X01BWCB8fCBpID09IExPTkdfTUlOKQorICAgICAgICByZXR1cm4gLTE7Cisg ICAgICBpZiAoc3RybGVuKG1hbmdsZWQtPnBvcykgPCBpKQorICAgICAgICBy ZXR1cm4gLTE7CisgICAgICBhcHBlbmRfbGVuKG91dHB1dCwgbWFuZ2xlZC0+ cG9zLCBpKTsKKyAgICAgIG1hbmdsZWQtPnBvcyArPSBpOworICAgICAgYXBw ZW5kKG91dHB1dCwgIi4iKTsKKyAgICB9CisgIGlmICgqbWFuZ2xlZC0+cG9z ID09ICdcMCcgfHwgaSA9PSAwKQorICAgIHJldHVybiAtMTsKKyAgb3V0cHV0 LT5wb3MtLTsKKyAgcmV0dXJuIDE7Cit9CisKKy8qIEV4dHJhY3QgYW5kIGRl bWFuZ2xlIHR5cGUgZnJvbSBJRCBhbmQgYXBwZW5kIGl0IHRvIERFU1QuCisg ICBSZXR1cm4gMSBvbiBzdWNjZXNzIG9yIC0xIG9uIGZhaWx1cmUuICAqLwor c3RhdGljIGludAorZXh0cmFjdHR5cGVpbmZvICh1bmJvdW5kZWRfc3RyaW5n KiBkZXN0LCB1bmJvdW5kZWRfc3RyaW5nKiBpZCkKK3sKKyAgaWYgKCppZC0+ cG9zID09ICdcMCcpCisgICAgcmV0dXJuIC0xOworICBzd2l0Y2ggKCppZC0+ cG9zKyspCisgICAgeworICAgICAgY2FzZSAnQSc6IC8qIGR5bmFtaWMgYXJy YXkgKi8KKyAgICAgIGNhc2UgJ0cnOiAvKiBzdGF0aWMgYXJyYXkgKi8KKyAg ICAgIGNhc2UgJ0gnOiAvKiBhc3NvY2lhdGl2ZSBhcnJheSAqLworCWlmIChl eHRyYWN0dHlwZWluZm8oZGVzdCwgaWQpID09IC0xKQorCSAgcmV0dXJuIC0x OworCWFwcGVuZChkZXN0LCAiW10iKTsKKwlyZXR1cm4gMTsKKyAgICAgIGNh c2UgJ1AnOiAvKiBwb2ludGVyICovCisJaWYgKGV4dHJhY3R0eXBlaW5mbyhk ZXN0LCBpZCkgPT0gLTEpCisJICByZXR1cm4gLTE7CisJYXBwZW5kKGRlc3Qs ICIqIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNlICdSJzogLyogcmVmZXJl bmNlICovCisJaWYgKGV4dHJhY3R0eXBlaW5mbyhkZXN0LCBpZCkgPT0gLTEp CisJICByZXR1cm4gLTE7CisJYXBwZW5kKGRlc3QsICImIik7CisJcmV0dXJu IDE7CisgICAgICBjYXNlICdaJzogLyogcmV0dXJuIHZhbHVlICovCisJcmV0 dXJuIGV4dHJhY3R0eXBlaW5mbyhkZXN0LCBpZCk7CisgICAgICBjYXNlICdK JzogLyogb3V0ICovCisJYXBwZW5kKGRlc3QsICJvdXQgIik7CisJcmV0dXJu IGV4dHJhY3R0eXBlaW5mbyhkZXN0LCBpZCk7CisgICAgICBjYXNlICdLJzog LyogaW5vdXQgKi8KKwlhcHBlbmQoZGVzdCwgImlub3V0ICIpOworCXJldHVy biBleHRyYWN0dHlwZWluZm8oZGVzdCwgaWQpOworICAgICAgY2FzZSAnRSc6 IC8qIGVudW0gKi8KKyAgICAgIGNhc2UgJ1QnOiAvKiB0eXBlZGVmICovCisg ICAgICBjYXNlICdEJzogLyogZGVsZWdhdGUgKi8KKyAgICAgIGNhc2UgJ0Mn OiAvKiBjbGFzcyAqLworICAgICAgY2FzZSAnUyc6IC8qIHN0cnVjdCAqLwor CXJldHVybiBleHRyYWN0aWRlbnRpZmllcnMoZGVzdCwgaWQpOworCisgICAg ICAvKiBiYXNpYyB0eXBlczogKi8KKyAgICAgIGNhc2UgJ24nOiBhcHBlbmQo ZGVzdCwgIm5vbmUiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICd2JzogYXBw ZW5kKGRlc3QsICJ2b2lkIik7IHJldHVybiAxOworICAgICAgY2FzZSAnZyc6 IGFwcGVuZChkZXN0LCAiYnl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2Ug J2gnOiBhcHBlbmQoZGVzdCwgInVieXRlIik7IHJldHVybiAxOworICAgICAg Y2FzZSAncyc6IGFwcGVuZChkZXN0LCAic2hvcnQiKTsgcmV0dXJuIDE7Cisg ICAgICBjYXNlICd0JzogYXBwZW5kKGRlc3QsICJ1c2hvcnQiKTsgcmV0dXJu IDE7CisgICAgICBjYXNlICdpJzogYXBwZW5kKGRlc3QsICJpbnQiKTsgcmV0 dXJuIDE7CisgICAgICBjYXNlICdrJzogYXBwZW5kKGRlc3QsICJ1aW50Iik7 IHJldHVybiAxOworICAgICAgY2FzZSAnbCc6IGFwcGVuZChkZXN0LCAibG9u ZyIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ20nOiBhcHBlbmQoZGVzdCwg InVsb25nIik7IHJldHVybiAxOworICAgICAgY2FzZSAnZic6IGFwcGVuZChk ZXN0LCAiZmxvYXQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdkJzogYXBw ZW5kKGRlc3QsICJkb3VibGUiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICdl JzogYXBwZW5kKGRlc3QsICJyZWFsIik7IHJldHVybiAxOworCisgICAgICAv KiBpbWFnaW5hcnkgYW5kIGNvbXBsZXg6ICovCisgICAgICBjYXNlICdvJzog YXBwZW5kKGRlc3QsICJpZmxvYXQiKTsgcmV0dXJuIDE7CisgICAgICBjYXNl ICdwJzogYXBwZW5kKGRlc3QsICJpZG91YmxlIik7IHJldHVybiAxOworICAg ICAgY2FzZSAnaic6IGFwcGVuZChkZXN0LCAiaXJlYWwiKTsgcmV0dXJuIDE7 CisgICAgICBjYXNlICdxJzogYXBwZW5kKGRlc3QsICJjZmxvYXQiKTsgcmV0 dXJuIDE7CisgICAgICBjYXNlICdyJzogYXBwZW5kKGRlc3QsICJjZG91Ymxl Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnYyc6IGFwcGVuZChkZXN0LCAi Y3JlYWwiKTsgcmV0dXJuIDE7CisKKyAgICAgIC8qIG90aGVyIHR5cGVzOiAq LworICAgICAgY2FzZSAnYic6IGFwcGVuZChkZXN0LCAiYml0Iik7IHJldHVy biAxOworICAgICAgY2FzZSAnYSc6IGFwcGVuZChkZXN0LCAiY2hhciIpOyBy ZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3UnOiBhcHBlbmQoZGVzdCwgIndjaGFy Iik7IHJldHVybiAxOworICAgICAgY2FzZSAndyc6IGFwcGVuZChkZXN0LCAi ZGNoYXIiKTsgcmV0dXJuIDE7CisKKyAgICAgIGRlZmF1bHQ6CisJYXBwZW5k KGRlc3QsICJ1bmtub3duIik7CisJcmV0dXJuIDE7CisgICAgfQorfQorCisv KiBEIHNwZWNpZmljIHN5bWJvbCBkZW1hbmdsZXIuIFNZTUJPTF8gaXMgYSBt YW5nbGVkIG5hbWUuCisgICBPUFRJT05TIGlzIGRlbWFuZ2xlciBvcHRpb25z LiBSZXR1cm4gZGVtYW5nbGVkIG5hbWUgb3IgTlVMTCBvbiBmYWlsdXJlLiAg Ki8KK2NoYXIqCitkX2RlbWFuZ2xlIChjb25zdCBjaGFyKiBzeW1ib2xfLCBp bnQgb3B0aW9ucykKK3sKKyAgdW5ib3VuZGVkX3N0cmluZyBvdXRwdXQ7Cisg IHVuYm91bmRlZF9zdHJpbmcgbWFuZ2xlZDsKKyAgdW5zaWduZWQgY2hhciBp c0Z1bmMgPSAwOworICBjaGFyKiBzeW1ib2w7CisgIGlmIChzeW1ib2xfID09 IE5VTEwpCisgICAgcmV0dXJuIE5VTEw7CisgIGVsc2UgaWYgKHN0cmNtcChz eW1ib2xfLCAiX0RtYWluIikgPT0gMCkKKyAgICByZXR1cm4gc3RyZHVwKCJE IG1haW4iKTsKKworICBzeW1ib2wgPSB4c3RyZHVwKHN5bWJvbF8pOworICBt YW5nbGVkLmxlbiA9IHN0cmxlbihzeW1ib2wpOworICBtYW5nbGVkLnN0ciA9 IHN5bWJvbDsKKyAgbWFuZ2xlZC5wb3MgPSBzeW1ib2w7CisKKyAgb3V0cHV0 LmxlbiA9IDI7CisgIG91dHB1dC5zdHIgPSB4bWFsbG9jKG91dHB1dC5sZW4p OworICBvdXRwdXQucG9zID0gb3V0cHV0LnN0cjsKKworICBpZiAoc3ltYm9s ID09IHN0cnN0cihzeW1ib2wsICJfRCIpKQorICAgIHsKKyAgICAgIG1hbmds ZWQucG9zICs9IDI7CisgICAgICBpc0Z1bmMgPSAxOworICAgIH0gZWxzZSBp ZiAoc3ltYm9sID09IHN0cnN0cihzeW1ib2wsICJfX0NsYXNzXyIpKQorICAg ICAgbWFuZ2xlZC5wb3MgKz0gODsKKyAgICBlbHNlIGlmIChzeW1ib2wgPT0g c3Ryc3RyKHN5bWJvbCwgIl9faW5pdF8iKSkKKyAgICAgIG1hbmdsZWQucG9z ICs9IDc7CisgICAgZWxzZSBpZiAoc3ltYm9sID09IHN0cnN0cihzeW1ib2ws ICJfX3Z0YmxfIikpCisgICAgICBtYW5nbGVkLnBvcyArPSA3OworICAgIGVs c2UgaWYgKHN5bWJvbCA9PSBzdHJzdHIoc3ltYm9sLCAiX19tb2RjdG9yXyIp KQorICAgICAgbWFuZ2xlZC5wb3MgKz0gMTA7CisgICAgZWxzZSBpZiAoc3lt Ym9sID09IHN0cnN0cihzeW1ib2wsICJfX21vZGR0b3JfIikpCisgICAgICBt YW5nbGVkLnBvcyArPSAxMDsKKyAgICBlbHNlIGlmIChzeW1ib2wgPT0gc3Ry c3RyKHN5bWJvbCwgIl9fTW9kdWxlSW5mb18iKSkKKyAgICAgIG1hbmdsZWQu cG9zICs9IDEzOworICAgIGVsc2UKKyAgICAgIHsKKwl4ZnJlZShvdXRwdXQu c3RyKTsKKwl4ZnJlZShzeW1ib2wpOworCXJldHVybiBOVUxMOworICAgICAg fQorICAKKyAgaWYgKGV4dHJhY3RpZGVudGlmaWVycygmb3V0cHV0LCAmbWFu Z2xlZCkgPCAwKQorICAgIHsKKyAgICAgIHhmcmVlKG91dHB1dC5zdHIpOwor ICAgICAgeGZyZWUoc3ltYm9sKTsKKyAgICAgIHJldHVybiBOVUxMOworICAg IH0KKworICBhcHBlbmQoJm91dHB1dCwgIigiKTsKKyAgaWYgKGlzRnVuYyA9 PSAxICYmICptYW5nbGVkLnBvcyA9PSAnRicpCisgICAgeworICAgICAgbWFu Z2xlZC5wb3MrKzsKKyAgICAgIHdoaWxlICgqbWFuZ2xlZC5wb3MgIT0gJ1ww JyAmJiAqbWFuZ2xlZC5wb3MgIT0gJ1onKQorCXsKKwkgIGlmIChpc0Z1bmMg PT0gMSkKKwkgICAgaXNGdW5jKys7CisJICBlbHNlCisJICAgIGFwcGVuZCgm b3V0cHV0LCAiLCAiKTsKKwkgIGlmIChleHRyYWN0dHlwZWluZm8oJm91dHB1 dCwgJm1hbmdsZWQpIDwgMCkKKwkgICAgeworCSAgICAgIHhmcmVlKG91dHB1 dC5zdHIpOworCSAgICAgIHhmcmVlKHN5bWJvbCk7CisJICAgICAgcmV0dXJu IE5VTEw7CisJICAgfQorCX0KKyAgICAgfQorICBhcHBlbmQoJm91dHB1dCwg IikiKTsKKworICAvKiBEb2Vzbid0IGRpc3BsYXkgdGhlIHJldHVybiB0eXBl LCBidXQgd291bGRuJ3QgYmUgdG9vIGhhcmQgdG8gZG8uICAqLworCisgIGFw cGVuZF9sZW4oJm91dHB1dCwgIiIsIDEpOworICBzdHJfcmVzaXplKCZvdXRw dXQsIDApOworICB4ZnJlZShzeW1ib2wpOworICByZXR1cm4gb3V0cHV0LnN0 cjsKK30KKworLyogVGFibGUgbWFwcGluZyBvcGNvZGVzIGludG8gc3RyaW5n cyBmb3IgcHJpbnRpbmcgb3BlcmF0b3JzCisgICBhbmQgcHJlY2VkZW5jZXMg b2YgdGhlIG9wZXJhdG9ycy4gICovCitjb25zdCBzdHJ1Y3Qgb3BfcHJpbnQg ZF9vcF9wcmludF90YWJbXSA9Cit7CisgIHsiLCIsIEJJTk9QX0NPTU1BLCBQ UkVDX0NPTU1BLCAwfSwKKyAgeyI9IiwgQklOT1BfQVNTSUdOLCBQUkVDX0FT U0lHTiwgMX0sCisgIHsifHwiLCBCSU5PUF9MT0dJQ0FMX09SLCBQUkVDX0xP R0lDQUxfT1IsIDB9LAorICB7IiYmIiwgQklOT1BfTE9HSUNBTF9BTkQsIFBS RUNfTE9HSUNBTF9BTkQsIDB9LAorICB7InwiLCBCSU5PUF9CSVRXSVNFX0lP UiwgUFJFQ19CSVRXSVNFX0lPUiwgMH0sCisgIHsiXiIsIEJJTk9QX0JJVFdJ U0VfWE9SLCBQUkVDX0JJVFdJU0VfWE9SLCAwfSwKKyAgeyImIiwgQklOT1Bf QklUV0lTRV9BTkQsIFBSRUNfQklUV0lTRV9BTkQsIDB9LAorICB7Ij09Iiwg QklOT1BfRVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7IiE9IiwgQklOT1Bf Tk9URVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7Ijw9IiwgQklOT1BfTEVR LCBQUkVDX09SREVSLCAwfSwKKyAgeyI+PSIsIEJJTk9QX0dFUSwgUFJFQ19P UkRFUiwgMH0sCisgIHsiPiIsIEJJTk9QX0dUUiwgUFJFQ19PUkRFUiwgMH0s CisgIHsiPCIsIEJJTk9QX0xFU1MsIFBSRUNfT1JERVIsIDB9LAorICB7Ij4+ IiwgQklOT1BfUlNILCBQUkVDX1NISUZULCAwfSwKKyAgeyI8PCIsIEJJTk9Q X0xTSCwgUFJFQ19TSElGVCwgMH0sCisgIHsiKyIsIEJJTk9QX0FERCwgUFJF Q19BREQsIDB9LAorICB7Ii0iLCBCSU5PUF9TVUIsIFBSRUNfQURELCAwfSwK KyAgeyIqIiwgQklOT1BfTVVMLCBQUkVDX01VTCwgMH0sCisgIHsiLyIsIEJJ Tk9QX0RJViwgUFJFQ19NVUwsIDB9LAorICB7IiUiLCBCSU5PUF9SRU0sIFBS RUNfTVVMLCAwfSwKKyAgeyJAIiwgQklOT1BfUkVQRUFULCBQUkVDX1JFUEVB VCwgMH0sCisgIHsiLSIsIFVOT1BfTkVHLCBQUkVDX1BSRUZJWCwgMH0sCisg IHsiISIsIFVOT1BfTE9HSUNBTF9OT1QsIFBSRUNfUFJFRklYLCAwfSwKKyAg eyJ+IiwgVU5PUF9DT01QTEVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHsi KiIsIFVOT1BfSU5ELCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiJiIsIFVOT1Bf QUREUiwgUFJFQ19QUkVGSVgsIDB9LAorICB7InNpemVvZiAiLCBVTk9QX1NJ WkVPRiwgUFJFQ19QUkVGSVgsIDB9LAorICB7IisrIiwgVU5PUF9QUkVJTkNS RU1FTlQsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyItLSIsIFVOT1BfUFJFREVD UkVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHtOVUxMLCAwLCAwLCAwfQor fTsKKworY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gZF9sYW5ndWFnZV9k ZWZuID0KK3sKKyAgImQiLAkJCS8qIExhbmd1YWdlIG5hbWUgKi8KKyAgbGFu Z3VhZ2VfZCwKKyAgcmFuZ2VfY2hlY2tfb2ZmLAorICB0eXBlX2NoZWNrX29m ZiwKKyAgY2FzZV9zZW5zaXRpdmVfb24sCisgIGFycmF5X3Jvd19tYWpvciwK KyAgbWFjcm9fZXhwYW5zaW9uX2MsCisgICZleHBfZGVzY3JpcHRvcl9jLAor ICBjX3BhcnNlLAorICBjX2Vycm9yLAorICBudWxsX3Bvc3RfcGFyc2VyLAor ICBjX3ByaW50Y2hhciwJCS8qIFByaW50IGEgY2hhcmFjdGVyIGNvbnN0YW50 ICovCisgIGNfcHJpbnRzdHIsCQkvKiBGdW5jdGlvbiB0byBwcmludCBzdHJp bmcgY29uc3RhbnQgKi8KKyAgY19lbWl0X2NoYXIsCQkvKiBQcmludCBhIHNp bmdsZSBjaGFyICovCisgIGNfcHJpbnRfdHlwZSwJCS8qIFByaW50IGEgdHlw ZSB1c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KKyAgY19wcmludF90eXBl ZGVmLAkvKiBQcmludCBhIHR5cGVkZWYgdXNpbmcgYXBwcm9wcmlhdGUgc3lu dGF4ICovCisgIGRfdmFsX3ByaW50LAkJLyogUHJpbnQgYSB2YWx1ZSB1c2lu ZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KKyAgY192YWx1ZV9wcmludCwJLyog UHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KKyAgTlVMTCwJCQkvKiBMYW5n dWFnZSBzcGVjaWZpYyBza2lwX3RyYW1wb2xpbmUgKi8KKyAgInRoaXMiLAkJ LyogbmFtZV9vZl90aGlzICovCisgIGJhc2ljX2xvb2t1cF9zeW1ib2xfbm9u bG9jYWwsIC8qIGxvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKi8KKyAgYmFzaWNf bG9va3VwX3RyYW5zcGFyZW50X3R5cGUsLyogbG9va3VwX3RyYW5zcGFyZW50 X3R5cGUgKi8KKyAgZF9kZW1hbmdsZSwJCS8qIExhbmd1YWdlIHNwZWNpZmlj IHN5bWJvbCBkZW1hbmdsZXIgKi8KKyAgTlVMTCwJCQkvKiBMYW5ndWFnZSBz cGVjaWZpYyBjbGFzc19uYW1lX2Zyb21fcGh5c25hbWUgKi8KKyAgZF9vcF9w cmludF90YWIsCS8qIGV4cHJlc3Npb24gb3BlcmF0b3JzIGZvciBwcmludGlu ZyAqLworICAxLAkJCS8qIGMtc3R5bGUgYXJyYXlzICovCisgIDAsCQkJLyog U3RyaW5nIGxvd2VyIGJvdW5kICovCisgIGRlZmF1bHRfd29yZF9icmVha19j aGFyYWN0ZXJzLAorICBkZWZhdWx0X21ha2Vfc3ltYm9sX2NvbXBsZXRpb25f bGlzdCwKKyAgY19sYW5ndWFnZV9hcmNoX2luZm8sCisgIGRlZmF1bHRfcHJp bnRfYXJyYXlfaW5kZXgsCisgIGRlZmF1bHRfcGFzc19ieV9yZWZlcmVuY2Us CisgIGNfZ2V0X3N0cmluZywKKyAgTEFOR19NQUdJQworfTsKKwordm9pZAor X2luaXRpYWxpemVfZF9sYW5ndWFnZSAodm9pZCkKK3sKKyAgYWRkX2xhbmd1 YWdlICgmZF9sYW5ndWFnZV9kZWZuKTsKK30KZGlmZiAtLWdpdCBhL2dkYi9k LWxhbmcuaCBiL2dkYi9kLWxhbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jYjRjNDUwCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L2QtbGFuZy5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qIEQgbGFuZ3VhZ2Ugc3Vw cG9ydCBkZWZpbml0aW9ucyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgor CisgICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIw MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKworI2lmICFkZWZpbmVkIChEX0xBTkdfSCkKKyNkZWZpbmUgRF9M QU5HX0ggMQorCisjaW5jbHVkZSAic3ltdGFiLmgiCisKK2V4dGVybiBjaGFy KiBkX2RlbWFuZ2xlKGNvbnN0IGNoYXIqIG1hbmdsZWQsIGludCBvcHRpb25z KTsKKworZXh0ZXJuIGludCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorCQkJaW50IGVtYmVkZGVk X29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisJCQlzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKwkJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKKyNlbmRpZiAvKiAhZGVmaW5l ZCAoRF9MQU5HX0gpICovCmRpZmYgLS1naXQgYS9nZGIvZC12YWxwcmludC5j IGIvZ2RiL2QtdmFscHJpbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zZjE3OTNlCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2Qt dmFscHJpbnQuYwpAQCAtMCwwICsxLDk0IEBACisvKiBTdXBwb3J0IGZvciBw cmludGluZyBEIHZhbHVlcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgor CisgICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lu Y2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJnZGJ0eXBlcy5oIgorI2luY2x1 ZGUgImdkYmNvcmUuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKKyNpbmNsdWRl ICJjLWxhbmcuaCIKKworLyogRGV0ZWN0IGR5bmFtaWMgYXJyYXkgYW5kIHBy aW50IGhpcyBjb250ZW50cy4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN0cmlu ZworICAgY2hhcmFjdGVycyBwcmludGVkIG9yIC0xIGlmIFRZUEUgbm90IGR5 bmFtaWMgYXJyYXkuICAqLworc3RhdGljIGludAorZHluYW1pY19hcnJheV90 eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCisJCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRk cmVzcywKKwkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAorCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCit7CisgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDIK KyAgICAgICYmIFRZUEVfQ09ERSAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCAw KSkgPT0gVFlQRV9DT0RFX0lOVAorICAgICAgJiYgc3RyY21wIChUWVBFX0ZJ RUxEX05BTUUgKHR5cGUsIDApLCAibGVuZ3RoIikgPT0gMAorICAgICAgJiYg c3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDEpLCAicHRyIikgPT0g MCkKKyAgICB7CisgICAgICBDT1JFX0FERFIgYWRkcjsKKyAgICAgIHN0cnVj dCB0eXBlICplbHR0eXBlOworICAgICAgc3RydWN0IHR5cGUgKnRydWVfdHlw ZTsKKyAgICAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKKyAgICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlOworICAgICAgY29uc3QgZ2RiX2J5dGUgKnB0 cmFkZHI7CisgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKyAgICAgIGludCBs ZW5ndGg7CisKKyAgICAgIGxlbmd0aCA9IHVucGFja19maWVsZF9hc19sb25n ICh0eXBlLCB2YWxhZGRyICsgZW1iZWRkZWRfb2Zmc2V0LCAwKTsKKworICAg ICAgcHRyX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDEpOworICAg ICAgZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUg KHB0cl90eXBlKSk7CisgICAgICBhZGRyID0gdW5wYWNrX3BvaW50ZXIgKHB0 cl90eXBlLAorCQkJICAgICB2YWxhZGRyICsgVFlQRV9GSUVMRF9CSVRQT1Mg KHR5cGUsIDEpIC8gOAorCQkJICAgICArIGVtYmVkZGVkX29mZnNldCk7Cisg ICAgICB0cnVlX3R5cGUgPSBjaGVja190eXBlZGVmIChlbHR0eXBlKTsKKwor ICAgICAgdHJ1ZV90eXBlID0gbG9va3VwX2FycmF5X3JhbmdlX3R5cGUgKHRy dWVfdHlwZSwgMCwgbGVuZ3RoIC0gMSk7CisgICAgICB2YWwgPSB2YWx1ZV9h dCh0cnVlX3R5cGUsIGFkZHIpOworICAgICAgcHRyYWRkciA9IHZhbHVlX2Nv bnRlbnRzKHZhbCk7CisKKyAgICAgIHJldHVybiBkX3ZhbF9wcmludCAodHJ1 ZV90eXBlLCBwdHJhZGRyLCAwLCBhZGRyLCBzdHJlYW0sIHJlY3Vyc2UgKyAx LAorCQkJICBvcHRpb25zKTsKKyAgICB9CisgIHJldHVybiAtMTsKK30KKwor LyogUHJpbnQgZGF0YSBvZiB0eXBlIFRZUEUgbG9jYXRlZCBhdCBWQUxBRERS ICh3aXRoaW4gR0RCKSwgd2hpY2ggY2FtZSBmcm9tCisgICB0aGUgaW5mZXJp b3IgYXQgYWRkcmVzcyBBRERSRVNTLCBvbnRvIHN0ZGlvIHN0cmVhbSBTVFJF QU0gYWNjb3JkaW5nIHRvCisgICBPUFRJT05TLiAgVGhlIGRhdGEgYXQgVkFM QUREUiBpcyBpbiB0YXJnZXQgYnl0ZSBvcmRlci4KKworICAgSWYgdGhlIGRh dGEgYXJlIGEgc3RyaW5nIHBvaW50ZXIsIHJldHVybnMgdGhlIG51bWJlciBv ZiBzdHJpbmcgY2hhcmFjdGVycworICAgcHJpbnRlZC4gICovCitpbnQKK2Rf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisgICAgICAgICAgICAg Q09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAorICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKQoreworICBpbnQgcmV0OworCisgIENI RUNLX1RZUEVERUYgKHR5cGUpOworICBzd2l0Y2ggKFRZUEVfQ09ERSAodHlw ZSkpCisgICAgeworICAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgorICAg ICAgICByZXQgPSBkeW5hbWljX2FycmF5X3R5cGUgKHR5cGUsIHZhbGFkZHIs IGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywKKwkJCQkgIHN0cmVhbSwgcmVj dXJzZSwgb3B0aW9ucyk7CisJaWYgKHJldCAhPSAtMSkKKwkgICBicmVhazsK KyAgICAgIGRlZmF1bHQ6CisJcmV0ID0gY192YWxfcHJpbnQgKHR5cGUsIHZh bGFkZHIsIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgc3RyZWFtLAorCQkJ ICAgcmVjdXJzZSwgb3B0aW9ucyk7CisgICAgfQorCisgIHJldHVybiByZXQ7 Cit9CmRpZmYgLS1naXQgYS9nZGIvZGVmcy5oIGIvZ2RiL2RlZnMuaAppbmRl eCA1ZDI1MWI1Li4yYzE0YzgwIDEwMDY0NAotLS0gYS9nZGIvZGVmcy5oCisr KyBiL2dkYi9kZWZzLmgKQEAgLTE4OCw2ICsxODgsNyBAQCBlbnVtIGxhbmd1 YWdlCiAgICAgbGFuZ3VhZ2VfYXV0bywJCS8qIFBsYWNlaG9sZGVyIGZvciBh dXRvbWF0aWMgc2V0dGluZyAqLwogICAgIGxhbmd1YWdlX2MsCQkJLyogQyAq LwogICAgIGxhbmd1YWdlX2NwbHVzLAkJLyogQysrICovCisgICAgbGFuZ3Vh Z2VfZCwJCQkvKiBEICovCiAgICAgbGFuZ3VhZ2Vfb2JqYywJCS8qIE9iamVj dGl2ZS1DICovCiAgICAgbGFuZ3VhZ2VfamF2YSwJCS8qIEphdmEgKi8KICAg ICBsYW5ndWFnZV9mb3J0cmFuLAkJLyogRm9ydHJhbiAqLwpkaWZmIC0tZ2l0 IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8K aW5kZXggNWI3OGY1MC4uZDIwMzY0OSAxMDA2NDQKLS0tIGEvZ2RiL2RvYy9n ZGIudGV4aW5mbworKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCkBAIC0yMTMs NiArMjEzLDEwIEBAIFlvdSBjYW4gdXNlIEB2YWx1ZXtHREJOfSB0byBkZWJ1 ZyBwcm9ncmFtcyB3cml0dGVuIGluIEMgYW5kIENAdHsrK30uCiBGb3IgbW9y ZSBpbmZvcm1hdGlvbiwgc2VlIEByZWZ7U3VwcG9ydGVkIExhbmd1YWdlcyws U3VwcG9ydGVkIExhbmd1YWdlc30uCiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwg c2VlIEByZWZ7QywsQyBhbmQgQysrfS4KIAorQGNpbmRleCBECitTdXBwb3J0 IGZvciBEIGlzIHBhcnRpYWwuICBGb3IgaW5mb3JtYXRpb24gb24gRCwgc2Vl CitAcmVme0QsLER9LgorCiBAY2luZGV4IE1vZHVsYS0yCiBTdXBwb3J0IGZv ciBNb2R1bGEtMiBpcyBwYXJ0aWFsLiAgRm9yIGluZm9ybWF0aW9uIG9uIE1v ZHVsYS0yLCBzZWUKIEByZWZ7TW9kdWxhLTIsLE1vZHVsYS0yfS4KQEAgLTEw NTU0LDYgKzEwNTU4LDkgQEAgQyBzb3VyY2UgZmlsZQogQGl0ZW14IC5jKysK IENAdHsrK30gc291cmNlIGZpbGUKIAorQGl0ZW0gLmQKK0Qgc291cmNlIGZp bGUKKwogQGl0ZW0gLm0KIE9iamVjdGl2ZS1DIHNvdXJjZSBmaWxlCiAKQEAg LTEwODMxLDcgKzEwODM4LDcgQEAgYmVpbmcgc2V0IGF1dG9tYXRpY2FsbHkg YnkgQHZhbHVle0dEQk59LgogQG5vZGUgU3VwcG9ydGVkIExhbmd1YWdlcwog QHNlY3Rpb24gU3VwcG9ydGVkIExhbmd1YWdlcwogCi1AdmFsdWV7R0RCTn0g c3VwcG9ydHMgQywgQ0B0eysrfSwgT2JqZWN0aXZlLUMsIEZvcnRyYW4sIEph dmEsIFBhc2NhbCwKK0B2YWx1ZXtHREJOfSBzdXBwb3J0cyBDLCBDQHR7Kyt9 LCBELCBPYmplY3RpdmUtQywgRm9ydHJhbiwgSmF2YSwgUGFzY2FsLAogYXNz ZW1ibHksIE1vZHVsYS0yLCBhbmQgQWRhLgogQGMgVGhpcyBpcyBmYWxzZSAu Li4KIFNvbWUgQHZhbHVle0dEQk59IGZlYXR1cmVzIG1heSBiZSB1c2VkIGlu IGV4cHJlc3Npb25zIHJlZ2FyZGxlc3Mgb2YgdGhlCkBAIC0xMDg1MCw2ICsx MDg1Nyw3IEBAIGxhbmd1YWdlIHJlZmVyZW5jZSBvciB0dXRvcmlhbC4KIAog QG1lbnUKICogQzo6ICAgICAgICAgICAgICAgICAgICAgICAgICAgQyBhbmQg Q0B0eysrfQorKiBEOjogICAgICAgICAgICAgICAgICAgICAgICAgICBECiAq IE9iamVjdGl2ZS1DOjogICAgICAgICAgICAgICAgIE9iamVjdGl2ZS1DCiAq IEZvcnRyYW46OiAgICAgICAgICAgICAgICAgICAgIEZvcnRyYW4KICogUGFz Y2FsOjogICAgICAgICAgICAgICAgICAgICAgUGFzY2FsCkBAIC0xMTM4Nyw2 ICsxMTM5NSwxNCBAQCBJbiB0aGUgUG93ZXJQQyBhcmNoaXRlY3R1cmUsIEB2 YWx1ZXtHREJOfSBwcm92aWRlcyBhIHNldCBvZiBwc2V1ZG8tcmVnaXN0ZXJz CiB0byBpbnNwZWN0IEBjb2Rle19EZWNpbWFsMTI4fSB2YWx1ZXMgc3RvcmVk IGluIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KIFNlZSBAcmVme1Bvd2Vy UEMsLFBvd2VyUEN9IGZvciBtb3JlIGRldGFpbHMuCiAKK0Bub2RlIEQKK0Bz dWJzZWN0aW9uIEQKKworQGNpbmRleCBECitAdmFsdWV7R0RCTn0gY2FuIGJl IHVzZWQgdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBEIGFuZCBjb21w aWxlZCB3aXRoCitHREMsIExEQyBvciBETUQuIEN1cnJlbnRseSBAdmFsdWV7 R0RCTn0gc3VwcG9ydHMgb25seSBvbmUgRCBzcGVjaWZpYworZmVhdHVyZXMg LSBkeW5hbWljIGFycmF5cy4KKwogQG5vZGUgT2JqZWN0aXZlLUMKIEBzdWJz ZWN0aW9uIE9iamVjdGl2ZS1DCiAKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJy ZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCmluZGV4IDc2MjMwMzUuLjRlYWZk YzUgMTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrIGIvZ2RiL2R3 YXJmMnJlYWQuYwpAQCAtNzUxNSw2ICs3NTE1LDkgQEAgc2V0X2N1X2xhbmd1 YWdlICh1bnNpZ25lZCBpbnQgbGFuZywgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICAgY2FzZSBEV19MQU5HX0NfcGx1c19wbHVzOgogICAgICAgY3UtPmxh bmd1YWdlID0gbGFuZ3VhZ2VfY3BsdXM7CiAgICAgICBicmVhazsKKyAgICBj YXNlIERXX0xBTkdfRDoKKyAgICAgIGN1LT5sYW5ndWFnZSA9IGxhbmd1YWdl X2Q7CisgICAgICBicmVhazsKICAgICBjYXNlIERXX0xBTkdfRm9ydHJhbjc3 OgogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuOTA6CiAgICAgY2FzZSBEV19M QU5HX0ZvcnRyYW45NToKZGlmZiAtLWdpdCBhL2dkYi9sYW5ndWFnZS5jIGIv Z2RiL2xhbmd1YWdlLmMKaW5kZXggMzUwMGE5Ny4uNmFhOGYwZSAxMDA2NDQK LS0tIGEvZ2RiL2xhbmd1YWdlLmMKKysrIGIvZ2RiL2xhbmd1YWdlLmMKQEAg LTQ4Niw2ICs0ODYsNyBAQCBiaW5vcF9yZXN1bHRfdHlwZSAoc3RydWN0IHZh bHVlICp2MSwgc3RydWN0IHZhbHVlICp2MikKICAgICB7CiAgICAgY2FzZSBs YW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2Fz ZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAg IGlmIChUWVBFX0NPREUgKHQxKSA9PSBUWVBFX0NPREVfRkxUKQogCXJldHVy biBUWVBFX0NPREUgKHQyKSA9PSBUWVBFX0NPREVfRkxUICYmIGwyID4gbDEg PwpAQCAtNTk3LDYgKzU5OCw3IEBAIGludGVncmFsX3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2M6CiAgICAg Y2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAg ICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgcmV0dXJuIChUWVBFX0NP REUgKHR5cGUpICE9IFRZUEVfQ09ERV9JTlQpICYmCiAJKFRZUEVfQ09ERSAo dHlwZSkgIT0gVFlQRV9DT0RFX0VOVU0pID8gMCA6IDE7CkBAIC02MzcsNiAr NjM5LDcgQEAgY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlKQog CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3Bs dXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vf b2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBF X0NPREVfSU5UKSAmJgogCVRZUEVfTEVOR1RIICh0eXBlKSA9PSBzaXplb2Yg KGNoYXIpCkBAIC02NTksNiArNjYyLDcgQEAgc3RyaW5nX3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNh c2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAg IGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIEMgZG9lcyBub3QgaGF2 ZSBkaXN0aW5jdCBzdHJpbmcgdHlwZS4gKi8KICAgICAgIHJldHVybiAoMCk7 CkBAIC02NzgsNiArNjgyLDcgQEAgYm9vbGVhbl90eXBlIChzdHJ1Y3QgdHlw ZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNh c2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAg IGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIE1pZ2h0IGJlIG1vcmUg Y2xlYW5seSBoYW5kbGVkIGJ5IGhhdmluZyBhCiAgICAgICAgICBUWVBFX0NP REVfSU5UX05PVF9CT09MIGZvciAodGhlIGRlbGV0ZWQpIENISUxMIGFuZCBz dWNoCkBAIC03MTcsNiArNzIyLDcgQEAgc3RydWN0dXJlZF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgog ICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9k OgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQ RV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSVUNUKSB8fAogCShUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9VTklPTikgfHwKZGlmZiAtLWdp dCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCmluZGV4IGNlZTg0 ZGIuLjQ4ZDIzZGEgMTAwNjQ0Ci0tLSBhL2dkYi9zeW1maWxlLmMKKysrIGIv Z2RiL3N5bWZpbGUuYwpAQCAtMjUzNCw2ICsyNTM0LDcgQEAgaW5pdF9maWxl bmFtZV9sYW5ndWFnZV90YWJsZSAodm9pZCkKICAgICAgIGZpbGVuYW1lX2xh bmd1YWdlX3RhYmxlID0KIAl4bWFsbG9jIChmbF90YWJsZV9zaXplICogc2l6 ZW9mICgqZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUpKTsKICAgICAgIGFkZF9m aWxlbmFtZV9sYW5ndWFnZSAoIi5jIiwgbGFuZ3VhZ2VfYyk7CisgICAgICBh ZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuZCIsIGxhbmd1YWdlX2QpOwogICAg ICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLkMiLCBsYW5ndWFnZV9jcGx1 cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuY2MiLCBsYW5n dWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIu Y3AiLCBsYW5ndWFnZV9jcGx1cyk7CmRpZmYgLS1naXQgYS9nZGIvc3ltdGFi LmMgYi9nZGIvc3ltdGFiLmMKaW5kZXggN2Y1ZGFiZC4uYmU2ZjIzYSAxMDA2 NDQKLS0tIGEvZ2RiL3N5bXRhYi5jCisrKyBiL2dkYi9zeW10YWIuYwpAQCAt MzksNiArMzksNyBAQAogI2luY2x1ZGUgInNvdXJjZS5oIgogI2luY2x1ZGUg ImZpbGVuYW1lcy5oIgkJLyogZm9yIEZJTEVOQU1FX0NNUCAqLwogI2luY2x1 ZGUgIm9iamMtbGFuZy5oIgorI2luY2x1ZGUgImQtbGFuZy5oIgogI2luY2x1 ZGUgImFkYS1sYW5nLmgiCiAjaW5jbHVkZSAicC1sYW5nLmgiCiAjaW5jbHVk ZSAiYWRkcm1hcC5oIgpAQCAtNDEzLDYgKzQxNCw3IEBAIHN5bWJvbF9pbml0 X2xhbmd1YWdlX3NwZWNpZmljIChzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5m byAqZ3N5bWJvbCwKIHsKICAgZ3N5bWJvbC0+bGFuZ3VhZ2UgPSBsYW5ndWFn ZTsKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVz CisgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCiAg ICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhCiAg ICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9vYmpjKQog ICAgIHsKQEAgLTUxNiw2ICs1MTgsMTYgQEAgc3ltYm9sX2ZpbmRfZGVtYW5n bGVkX25hbWUgKHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9s LAogCSAgcmV0dXJuIGRlbWFuZ2xlZDsKIAl9CiAgICAgfQorICBpZiAoZ3N5 bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAorICAgICAgfHwgZ3N5bWJv bC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYXV0bykKKyAgICB7CisgICAgICBk ZW1hbmdsZWQgPSBkX2RlbWFuZ2xlKG1hbmdsZWQsIDApOworICAgICAgaWYg KGRlbWFuZ2xlZCAhPSBOVUxMKQorICAgICAgICB7CisgICAgICAgICAgZ3N5 bWJvbC0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9kOworICAgICAgICAgIHJldHVy biBkZW1hbmdsZWQ7CisgICAgICAgIH0KKyAgICB9CiAgIHJldHVybiBOVUxM OwogfQogCkBAIC02OTMsNiArNzA1LDcgQEAgc3ltYm9sX25hdHVyYWxfbmFt ZSAoY29uc3Qgc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8gKmdzeW1ib2wp CiAgIHN3aXRjaCAoZ3N5bWJvbC0+bGFuZ3VhZ2UpCiAgICAgewogICAgIGNh c2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAg IGNhc2UgbGFuZ3VhZ2VfamF2YToKICAgICBjYXNlIGxhbmd1YWdlX29iamM6 CiAgICAgICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2Vfc3BlY2lmaWMuY3BsdXNf c3BlY2lmaWMuZGVtYW5nbGVkX25hbWUgIT0gTlVMTCkKQEAgLTcxOCw2ICs3 MzEsNyBAQCBzeW1ib2xfZGVtYW5nbGVkX25hbWUgKGNvbnN0IHN0cnVjdCBn ZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1i b2wtPmxhbmd1YWdlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVz OgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2ph dmE6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1i b2wtPmxhbmd1YWdlX3NwZWNpZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xl ZF9uYW1lICE9IE5VTEwpCkBAIC0xMjYzLDcgKzEyNzcsNyBAQCBsb29rdXBf c3ltYm9sX2luX2xhbmd1YWdlIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBz dHJ1Y3QgYmxvY2sgKmJsb2NrLAogCiAgIG1vZGlmaWVkX25hbWUgPSBuYW1l OwogCi0gIC8qIElmIHdlIGFyZSB1c2luZyBDKysgb3IgSmF2YSwgZGVtYW5n bGUgdGhlIG5hbWUgYmVmb3JlIGRvaW5nIGEgbG9va3VwLCBzbworICAvKiBJ ZiB3ZSBhcmUgdXNpbmcgQysrLCBELCBvciBKYXZhLCBkZW1hbmdsZSB0aGUg bmFtZSBiZWZvcmUgZG9pbmcgYSBsb29rdXAsIHNvCiAgICAgIHdlIGNhbiBh bHdheXMgYmluYXJ5IHNlYXJjaC4gKi8KICAgaWYgKGxhbmcgPT0gbGFuZ3Vh Z2VfY3BsdXMpCiAgICAgewpAQCAtMTI4Niw2ICsxMzAwLDE2IEBAIGxvb2t1 cF9zeW1ib2xfaW5fbGFuZ3VhZ2UgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IHN0cnVjdCBibG9jayAqYmxvY2ssCiAJICAgIH0KIAl9CiAgICAgfQorICBl bHNlIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5n dWFnZV9kKQorICAgIHsKKyAgICAgIGRlbWFuZ2xlZF9uYW1lID0gZF9kZW1h bmdsZSAobmFtZSwgMCk7CisgICAgICBpZiAoZGVtYW5nbGVkX25hbWUpCisJ eworCSAgbWFuZ2xlZF9uYW1lID0gbmFtZTsKKwkgIG1vZGlmaWVkX25hbWUg PSBkZW1hbmdsZWRfbmFtZTsKKwkgIG1ha2VfY2xlYW51cCAoeGZyZWUsIGRl bWFuZ2xlZF9uYW1lKTsKKwl9CisgICAgfQogICBlbHNlIGlmIChsYW5nID09 IGxhbmd1YWdlX2phdmEpCiAgICAgewogICAgICAgZGVtYW5nbGVkX25hbWUg PSBjcGx1c19kZW1hbmdsZSAobmFtZSwKQEAgLTE3MzQsNiArMTc1OCw3IEBA IHN5bWJvbF9tYXRjaGVzX2RvbWFpbiAoZW51bSBsYW5ndWFnZSBzeW1ib2xf bGFuZ3VhZ2UsCiAgICAgIEEgSmF2YSBjbGFzcyBkZWNsYXJhdGlvbiBhbHNv IGRlZmluZXMgYSB0eXBlZGVmIGZvciB0aGUgY2xhc3MuCiAgICAgIFNpbWls YXJseSwgYW55IEFkYSB0eXBlIGRlY2xhcmF0aW9uIGltcGxpY2l0bHkgZGVm aW5lcyBhIHR5cGVkZWYuICAqLwogICBpZiAoc3ltYm9sX2xhbmd1YWdlID09 IGxhbmd1YWdlX2NwbHVzCisgICAgICB8fCBzeW1ib2xfbGFuZ3VhZ2UgPT0g bGFuZ3VhZ2VfZAogICAgICAgfHwgc3ltYm9sX2xhbmd1YWdlID09IGxhbmd1 YWdlX2phdmEKICAgICAgIHx8IHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFn ZV9hZGEpCiAgICAgewo= --Multipart=_Sat__9_Jan_2010_08_28_30_+0200_AowT8rwqBTBIaT8P--