From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10755 invoked by alias); 22 Apr 2010 01:53:48 -0000 Received: (qmail 10661 invoked by uid 22791); 22 Apr 2010 01:53:44 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB X-Spam-Check-By: sourceware.org Received: from mail-bw0-f228.google.com (HELO mail-bw0-f228.google.com) (209.85.218.228) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 22 Apr 2010 01:53:36 +0000 Received: by bwz28 with SMTP id 28so9065679bwz.14 for ; Wed, 21 Apr 2010 18:53:31 -0700 (PDT) Received: by 10.204.45.207 with SMTP id g15mr432799bkf.210.1271901211815; Wed, 21 Apr 2010 18:53:31 -0700 (PDT) Received: from localhost (186-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.186]) by mx.google.com with ESMTPS id 13sm4322520bwz.15.2010.04.21.18.52.34 (version=SSLv3 cipher=RC4-MD5); Wed, 21 Apr 2010 18:53:31 -0700 (PDT) Date: Thu, 22 Apr 2010 01:53:00 -0000 From: Mihail Zenkov To: Joel Brobecker Cc: Mihail Zenkov , tromey@redhat.com, gdb-patches@sourceware.org Subject: Re: D language support Message-Id: <20100422045136.bc397747.mihai.zenkov@gmail.com> In-Reply-To: <20100422004441.GE19194@adacore.com> References: <20100109082524.263bcb17.mihai.zenkov@gmail.com> <20100109082830.dd984de8.mihai.zenkov@gmail.com> <20100109142327.GC2007@adacore.com> <20100113064026.14f75ff2.mihai.zenkov@gmail.com> <20100415012124.91ce1769.mihai.zenkov@gmail.com> <20100421025919.ad3a0830.mihai.zenkov@gmail.com> <20100421155657.GA19194@adacore.com> <20100422030910.7e84f7ea.mihai.zenkov@gmail.com> <20100422004441.GE19194@adacore.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__22_Apr_2010_04_51_36_+0300_alboNTeN7LJme3fg" 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-04/txt/msg00728.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Thu__22_Apr_2010_04_51_36_+0300_alboNTeN7LJme3fg Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 476 > > > > + if (gsymbol->language == language_d > > > > + || gsymbol->language == language_auto) > > > > + { > > > > + demangled = > > > > + d_demangle(mangled, 0); > [...] > > Still i should join it? > > Yes, please. It's not a matter of style for this line. In your case, > the whole statement fits in one line, and thus should be written as > such. For the cases you quoted, it did not, and thus the statement was > split across 2 or more lines... OK, fixed. --Multipart=_Thu__22_Apr_2010_04_51_36_+0300_alboNTeN7LJme3fg Content-Type: application/octet-stream; name="gdb-100422-d.patch" Content-Disposition: attachment; filename="gdb-100422-d.patch" Content-Transfer-Encoding: base64 Content-length: 37027 Z2RiL05FV1M6CiogRCBsYW5ndWFnZSBzdXBwb3J0LgogU3VwcG9ydCBmb3Ig ZGVidWdnaW5nIHRoZSBEIHByb2dyYW1taW5nIGxhbmd1YWdlIGhhcyBiZWVu CiBpbnRlZ3JhdGVkIGludG8gR0RCLgpnZGIvQ2hhbmdlTG9nOgoJRCBsYW5n dWFnZSBzdXBwb3J0LgoJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkIGQt bGFuZy5jIGQtdmFscHJpbnQuYy4KCShDT01NT05fT0JTKTogQWRkIGQtbGFu Zy5vIGQtdmFscHJpbnQuby4KCShIRklMRVNfTk9fU1JDRElSKTogQWRkIGQt bGFuZy5oLgoJKiBjLWxhbmcuYyAoY19lbWl0X2NoYXIsIGV4cF9kZXNjcmlw dG9yX2MpOiBNYWtlIHB1YmxpYy4KCSogYy1sYW5nLmggKGNfZW1pdF9jaGFy LCBleHBfZGVzY3JpcHRvcl9jKTogQWRkIGRlY2xhcmF0aW9uLgoJKiBkLWxh bmcuYzogTmV3IGZpbGUuCgkqIGQtbGFuZy5oOiBOZXcgZmlsZS4KCSogZC12 YWxwcmludC5jOiBOZXcgZmlsZS4KCSogZGVmcy5oIChlbnVtIGxhbmd1YWdl KTogQWRkIGxhbmd1YWdlX2QuCgkqIGR3YXJmMnJlYWQuYyAoc2V0X2N1X2xh bmd1YWdlKTogQWRkIERXX0xBTkdfRC4KCSogbGFuZ3VhZ2UuYyAoYmlub3Bf cmVzdWx0X3R5cGUsIGludGVncmFsX3R5cGUsIGNoYXJhY3Rlcl90eXBlKSAK CShzdHJpbmdfdHlwZSwgYm9vbGVhbl90eXBlLCBzdHJ1Y3R1cmVkX3R5cGUp OiBBZGQgbGFuZ3VhZ2VfZC4KCSogc3ltZmlsZS5jIChpbml0X2ZpbGVuYW1l X2xhbmd1YWdlX3RhYmxlKTogQWRkIGxhbmd1YWdlX2QuCgkqIHN5bXRhYi5j OiBJbmNsdWRlIGQtbGFuZy5oLgoJKHN5bWJvbF9pbml0X2xhbmd1YWdlX3Nw ZWNpZmljLCBzeW1ib2xfZmluZF9kZW1hbmdsZWRfbmFtZSkKCShzeW1ib2xf bmF0dXJhbF9uYW1lLCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlKQoJKHN5 bWJvbF9kZW1hbmdsZWRfbmFtZSwgc3ltYm9sX21hdGNoZXNfZG9tYWluKTog QWRkIGxhbmd1YWdlX2QuCmdkYi9kb2MvQ2hhbmdlTG9nOgoJKiBnZGIudGV4 aW5mbzogQWRkIG1lbnRpb24gYWJvdXQgRCBsYW5ndWFnZSBzdXBwb3J0Lgpn ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCSogZ2RiLmJhc2UvZGVmYXVsdC5l eHA6IEZpeCAic2V0IGxhbmd1YWdlIiB0ZXN0LgpkaWZmIC0tZ2l0IGEvZ2Ri L01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCmluZGV4IGZjMTZmYmYu LjFjNWVhZDIgMTAwNjQ0Ci0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysgYi9n ZGIvTWFrZWZpbGUuaW4KQEAgLTY1Niw2ICs2NTYsNyBAQCBTRklMRVMgPSBh ZGEtZXhwLnkgYWRhLWxhbmcuYyBhZGEtdHlwZXByaW50LmMgYWRhLXZhbHBy aW50LmMgYWRhLXRhc2tzLmMgXAogCWNoYXJzZXQuYyBjbGktb3V0LmMgY29m ZnJlYWQuYyBjb2ZmLXBlLXJlYWQuYyBcCiAJY29tcGxhaW50cy5jIGNvbXBs ZXRlci5jIGNvcmVmaWxlLmMgXAogCWNwLWFiaS5jIGNwLXN1cHBvcnQuYyBj cC1uYW1lc3BhY2UuYyBjcC12YWxwcmludC5jIFwKKwlkLWxhbmcuYyBkLXZh bHByaW50LmMgXAogCWNwLW5hbWUtcGFyc2VyLnkgXAogCWRieHJlYWQuYyBk ZW1hbmdsZS5jIGRpY3Rpb25hcnkuYyBkaXNhc20uYyBkb3VibGVzdC5jIGR1 bW15LWZyYW1lLmMgXAogCWR3YXJmMmV4cHIuYyBkd2FyZjJsb2MuYyBkd2Fy ZjJyZWFkLmMgZHdhcmYyLWZyYW1lLmMgXApAQCAtNzIzLDcgKzcyNCw3IEBA IGNsaS1vdXQuaCBnZGJfZXhwYXQuaCBicmVha3BvaW50LmggaW5mY2FsbC5o IG9ic2QtdGRlcC5oIFwKIGV4ZWMuaCBtMzJyLXRkZXAuaCBvc2FiaS5oIGdk YmNvcmUuaCBzb2xpYi1zb20uaCBcCiBpMzg2YnNkLW5hdC5oIHhtbC1zdXBw b3J0LmggeG1sLXRkZXNjLmggYWxwaGFic2QtdGRlcC5oIGdkYl9vYnN0YWNr LmggXAogaWE2NC10ZGVwLmggYWRhLWxhbmcuaCB2YXJvYmouaCBmcnYtdGRl cC5oIG50by10ZGVwLmggc2VyaWFsLmggXAotYy1sYW5nLmggZnJhbWUuaCBl dmVudC1sb29wLmggYmxvY2suaCBjbGkvY2xpLXNldHNob3cuaAlcCitjLWxh bmcuaCBkLWxhbmcuaCBmcmFtZS5oIGV2ZW50LWxvb3AuaCBibG9jay5oIGNs aS9jbGktc2V0c2hvdy5oCVwKIGNsaS9jbGktZGVjb2RlLmggY2xpL2NsaS1j bWRzLmggY2xpL2NsaS1kdW1wLmggXAogY2xpL2NsaS1zY3JpcHQuaCBtYWNy b3RhYi5oIHN5bXRhYi5oIHZlcnNpb24uaCBnbnVsaWIvd2NoYXIuaW4uaCBc CiBnbnVsaWIvc3RyaW5nLmluLmggZ251bGliL3N0ci10d28td2F5LmggZ251 bGliL2V4dHJhL2xpbmstd2FybmluZy5oIFwKQEAgLTgyOCw3ICs4MjksNyBA QCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZ T0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8gY29mZi1wZS1yZWFkLm8g XAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0YWJzcmVhZC5vIGNvcmVm aWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJsb2MubyBkd2FyZjItZnJh bWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBmLWxhbmcubyBvYmpjLWxh bmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBkLWxhbmcubyBmLWxhbmcu byBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8gXAogCXVpLW91dC5vIGNs aS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3JhcHBlci5vIFwKQEAgLTgz OCw3ICs4MzksOCBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChDT05G SUdfT0JTKSAkKFlZT0JKKSBcCiAJc2VudGluZWwtZnJhbWUubyBcCiAJY29t cGxhaW50cy5vIHR5cGVwcmludC5vIFwKIAlhZGEtdHlwZXByaW50Lm8gYy10 eXBlcHJpbnQubyBmLXR5cGVwcmludC5vIG0yLXR5cGVwcmludC5vIFwKLQlh ZGEtdmFscHJpbnQubyBjLXZhbHByaW50Lm8gY3AtdmFscHJpbnQubyBmLXZh bHByaW50Lm8gbTItdmFscHJpbnQubyBcCisJYWRhLXZhbHByaW50Lm8gYy12 YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZC12YWxwcmludC5vIGYtdmFscHJp bnQubyBcCisJbTItdmFscHJpbnQubyBcCiAJc2VyaWFsLm8gbWRlYnVncmVh ZC5vIHRvcC5vIHV0aWxzLm8gXAogCXVpLWZpbGUubyBcCiAJdXNlci1yZWdz Lm8gXApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5j CmluZGV4IGZlZmQ2NzUuLjgyNWViNGQgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuYworKysgYi9nZGIvYy1sYW5nLmMKQEAgLTI1Myw4ICsyNTMsOSBAQCBw cmludF93Y2hhciAoZ2RiX3dpbnRfdCB3LCBjb25zdCBnZGJfYnl0ZSAqb3Jp ZywgaW50IG9yaWdfbGVuLAogICAgc3RyaW5nIHdob3NlIGRlbGltaXRlciBp cyBRVU9URVIuICBOb3RlIHRoYXQgdGhhdCBmb3JtYXQgZm9yIHByaW50aW5n CiAgICBjaGFyYWN0ZXJzIGFuZCBzdHJpbmdzIGlzIGxhbmd1YWdlIHNwZWNp ZmljLiAqLwogCi1zdGF0aWMgdm9pZAotY19lbWl0X2NoYXIgKGludCBjLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50 IHF1b3RlcikKK3ZvaWQKK2NfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5 cGUgKnR5cGUsCisJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQg cXVvdGVyKQogewogICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICBz dHJ1Y3Qgb2JzdGFjayB3Y2hhcl9idWYsIG91dHB1dDsKQEAgLTExMzUsNyAr MTEzNiw3IEBAIGNfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKICAgbGFpLT5ib29sX3R5cGVfZGVmYXVsdCA9IGJ1aWx0 aW4tPmJ1aWx0aW5faW50OwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV4 cF9kZXNjcmlwdG9yIGV4cF9kZXNjcmlwdG9yX2MgPSAKK2NvbnN0IHN0cnVj dCBleHBfZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9jID0gCiB7CiAgIHBy aW50X3N1YmV4cF9zdGFuZGFyZCwKICAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5k YXJkLApkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5oIGIvZ2RiL2MtbGFuZy5o CmluZGV4IDQyM2NlZTAuLjQwNGMyMTIgMTAwNjQ0Ci0tLSBhL2dkYi9jLWxh bmcuaAorKysgYi9nZGIvYy1sYW5nLmgKQEAgLTg3LDYgKzg3LDEwIEBAIGV4 dGVybiB2b2lkIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwKIGV4dGVybiB2b2lkIGNfbGFuZ3Vh Z2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCQkg IHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKmxhaSk7CiAKK2V4dGVybiBj b25zdCBzdHJ1Y3QgZXhwX2Rlc2NyaXB0b3IgZXhwX2Rlc2NyaXB0b3JfYzsK KworZXh0ZXJuIHZvaWQgY19lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHF1b3Rlcik7 CisKIC8qIFRoZXNlIGFyZSBpbiBjLXR5cGVwcmludC5jOiAqLwogCiBleHRl cm4gdm9pZCBjX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHVpX2ZpbGUgKiwgaW50LCBpbnQpOwpkaWZmIC0tZ2l0IGEvZ2RiL2Qt bGFuZy5jIGIvZ2RiL2QtbGFuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjFhZTI3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIv ZC1sYW5nLmMKQEAgLTAsMCArMSwyODQgQEAKKy8qIEQgbGFuZ3VhZ2Ugc3Vw cG9ydCByb3V0aW5lcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisg ICBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIK KyNpbmNsdWRlICJsYW5ndWFnZS5oIgorI2luY2x1ZGUgImQtbGFuZy5oIgor I2luY2x1ZGUgImMtbGFuZy5oIgorI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIK KyNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgorI2luY2x1ZGUgImdkYl9vYnN0 YWNrLmgiCisKKyNpbmNsdWRlIDxjdHlwZS5oPgorCisKK3N0YXRpYyBjb25z dCBjaGFyICptYW5nbGVkX3N0cjsKKy8qIFRlbXBvcmFyeSBvYnN0YWNrIHVz ZWQgZm9yIGhvbGRpbmcgc3RyaW5ncy4gICovCitzdGF0aWMgc3RydWN0IG9i c3RhY2sgdGVtcGJ1ZjsKKworLyogRXh0cmFjdCBpZGVudGlmaWVycyBmcm9t IE1BTkdMRURfU1RSIGFuZCBhcHBlbmQgaXQgdG8gVEVNUEJVRi4KKyAgIFJl dHVybiAxIG9uIHN1Y2Nlc3Mgb3IgMCBvbiBmYWlsdXJlLiAgKi8KK3N0YXRp YyBpbnQKK2V4dHJhY3RfaWRlbnRpZmllcnMgKHZvaWQpCit7CisgIGxvbmcg aSA9IDA7CisKKyAgd2hpbGUgKGlzZGlnaXQgKCptYW5nbGVkX3N0cikpCisg ICAgeworICAgICAgaSA9IHN0cnRvbCAobWFuZ2xlZF9zdHIsIE5VTEwsIDEw KTsKKyAgICAgIG1hbmdsZWRfc3RyKys7CisgICAgICBpZiAoaSA8PSAwICAm JiBzdHJsZW4gKG1hbmdsZWRfc3RyKSA8IGkpCisgICAgICAgIHJldHVybiAw OworICAgICAgb2JzdGFja19ncm93ICgmdGVtcGJ1ZiwgbWFuZ2xlZF9zdHIs IGkpOworICAgICAgbWFuZ2xlZF9zdHIgKz0gaTsKKyAgICAgIG9ic3RhY2tf Z3Jvd19zdHIgKCZ0ZW1wYnVmLCAiLiIpOworICAgIH0KKyAgaWYgKCptYW5n bGVkX3N0ciA9PSAnXDAnIHx8IGkgPT0gMCkKKyAgICByZXR1cm4gMDsKKyAg b2JzdGFja19ibGFuayAoJnRlbXBidWYsIC0xKTsKKyAgcmV0dXJuIDE7Cit9 CisKKy8qIEV4dHJhY3QgYW5kIGRlbWFuZ2xlIHR5cGUgZnJvbSBNQU5HTEVE X1NUUiBhbmQgYXBwZW5kIGl0IHRvIFRFTVBCVUYuCisgICBSZXR1cm4gMSBv biBzdWNjZXNzIG9yIDAgb24gZmFpbHVyZS4gICovCitzdGF0aWMgaW50Citl eHRyYWN0X3R5cGVfaW5mbyAodm9pZCkKK3sKKyAgaWYgKCptYW5nbGVkX3N0 ciA9PSAnXDAnKQorICAgIHJldHVybiAwOworICBzd2l0Y2ggKCptYW5nbGVk X3N0cisrKQorICAgIHsKKyAgICAgIGNhc2UgJ0EnOiAvKiBkeW5hbWljIGFy cmF5ICovCisgICAgICBjYXNlICdHJzogLyogc3RhdGljIGFycmF5ICovCisg ICAgICBjYXNlICdIJzogLyogYXNzb2NpYXRpdmUgYXJyYXkgKi8KKwlpZiAo IWV4dHJhY3RfdHlwZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFj a19ncm93X3N0ciAoJnRlbXBidWYsICJbXSIpOworCXJldHVybiAxOworICAg ICAgY2FzZSAnUCc6IC8qIHBvaW50ZXIgKi8KKwlpZiAoIWV4dHJhY3RfdHlw ZV9pbmZvICgpKQorCSAgcmV0dXJuIDA7CisJb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICIqIik7CisJcmV0dXJuIDE7CisgICAgICBjYXNlICdSJzog LyogcmVmZXJlbmNlICovCisJaWYgKCFleHRyYWN0X3R5cGVfaW5mbyAoKSkK KwkgIHJldHVybiAwOworCW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAi JiIpOworCXJldHVybiAxOworICAgICAgY2FzZSAnWic6IC8qIHJldHVybiB2 YWx1ZSAqLworCXJldHVybiBleHRyYWN0X3R5cGVfaW5mbyAoKTsKKyAgICAg IGNhc2UgJ0onOiAvKiBvdXQgKi8KKwlvYnN0YWNrX2dyb3dfc3RyICgmdGVt cGJ1ZiwgIm91dCAiKTsKKwlyZXR1cm4gZXh0cmFjdF90eXBlX2luZm8gKCk7 CisgICAgICBjYXNlICdLJzogLyogaW5vdXQgKi8KKwlvYnN0YWNrX2dyb3df c3RyICgmdGVtcGJ1ZiwgImlub3V0ICIpOworCXJldHVybiBleHRyYWN0X3R5 cGVfaW5mbyAoKTsKKyAgICAgIGNhc2UgJ0UnOiAvKiBlbnVtICovCisgICAg ICBjYXNlICdUJzogLyogdHlwZWRlZiAqLworICAgICAgY2FzZSAnRCc6IC8q IGRlbGVnYXRlICovCisgICAgICBjYXNlICdDJzogLyogY2xhc3MgKi8KKyAg ICAgIGNhc2UgJ1MnOiAvKiBzdHJ1Y3QgKi8KKwlyZXR1cm4gZXh0cmFjdF9p ZGVudGlmaWVycyAoKTsKKworICAgICAgLyogYmFzaWMgdHlwZXM6ICovCisg ICAgICBjYXNlICduJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJu b25lIik7IHJldHVybiAxOworICAgICAgY2FzZSAndic6IG9ic3RhY2tfZ3Jv d19zdHIgKCZ0ZW1wYnVmLCAidm9pZCIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ2cnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImJ5dGUiKTsg cmV0dXJuIDE7CisgICAgICBjYXNlICdoJzogb2JzdGFja19ncm93X3N0ciAo JnRlbXBidWYsICJ1Ynl0ZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ3Mn OiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgInNob3J0Iik7IHJldHVy biAxOworICAgICAgY2FzZSAndCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1w YnVmLCAidXNob3J0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAnaSc6IG9i c3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaW50Iik7IHJldHVybiAxOwor ICAgICAgY2FzZSAnayc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAi dWludCIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2wnOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImxvbmciKTsgcmV0dXJuIDE7CisgICAgICBj YXNlICdtJzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ1bG9uZyIp OyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2YnOiBvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgImZsb2F0Iik7IHJldHVybiAxOworICAgICAgY2FzZSAn ZCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiZG91YmxlIik7IHJl dHVybiAxOworICAgICAgY2FzZSAnZSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0 ZW1wYnVmLCAicmVhbCIpOyByZXR1cm4gMTsKKworICAgICAgLyogaW1hZ2lu YXJ5IGFuZCBjb21wbGV4OiAqLworICAgICAgY2FzZSAnbyc6IG9ic3RhY2tf Z3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaWZsb2F0Iik7IHJldHVybiAxOworICAg ICAgY2FzZSAncCc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiaWRv dWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2onOiBvYnN0YWNrX2dy b3dfc3RyICgmdGVtcGJ1ZiwgImlyZWFsIik7IHJldHVybiAxOworICAgICAg Y2FzZSAncSc6IG9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAiY2Zsb2F0 Iik7IHJldHVybiAxOworICAgICAgY2FzZSAncic6IG9ic3RhY2tfZ3Jvd19z dHIgKCZ0ZW1wYnVmLCAiY2RvdWJsZSIpOyByZXR1cm4gMTsKKyAgICAgIGNh c2UgJ2MnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImNyZWFsIik7 IHJldHVybiAxOworCisgICAgICAvKiBvdGhlciB0eXBlczogKi8KKyAgICAg IGNhc2UgJ2InOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVtcGJ1ZiwgImJpdCIp OyByZXR1cm4gMTsKKyAgICAgIGNhc2UgJ2EnOiBvYnN0YWNrX2dyb3dfc3Ry ICgmdGVtcGJ1ZiwgImNoYXIiKTsgcmV0dXJuIDE7CisgICAgICBjYXNlICd1 Jzogb2JzdGFja19ncm93X3N0ciAoJnRlbXBidWYsICJ3Y2hhciIpOyByZXR1 cm4gMTsKKyAgICAgIGNhc2UgJ3cnOiBvYnN0YWNrX2dyb3dfc3RyICgmdGVt cGJ1ZiwgImRjaGFyIik7IHJldHVybiAxOworCisgICAgICBkZWZhdWx0Ogor CW9ic3RhY2tfZ3Jvd19zdHIgKCZ0ZW1wYnVmLCAidW5rbm93biIpOworCXJl dHVybiAxOworICAgIH0KK30KKworLyogSW1wbGVtZW50cyB0aGUgbGFfZGVt YW5nbGUgbGFuZ3VhZ2VfZGVmbiByb3V0aW5lIGZvciBsYW5ndWFnZSBELiAg Ki8KK2NoYXIgKgorZF9kZW1hbmdsZSAoY29uc3QgY2hhciogc3ltYm9sLCBp bnQgb3B0aW9ucykKK3sKKyAgY2hhciogb3V0X3N0cjsKKyAgdW5zaWduZWQg Y2hhciBpc19mdW5jID0gMDsKKworICBtYW5nbGVkX3N0ciA9IHN5bWJvbDsK KworICBpZiAobWFuZ2xlZF9zdHIgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVM TDsKKyAgZWxzZSBpZiAoc3RyY21wIChtYW5nbGVkX3N0ciwgIl9EbWFpbiIp ID09IDApCisgICAgcmV0dXJuIHhzdHJkdXAgKCJEIG1haW4iKTsKKworICBv YnN0YWNrX2luaXQgKCZ0ZW1wYnVmKTsKKyAgCisgIGlmIChtYW5nbGVkX3N0 clswXSA9PSAnXycgJiYgbWFuZ2xlZF9zdHJbMV0gPT0gJ0QnKQorICAgIHsK KyAgICAgIG1hbmdsZWRfc3RyICs9IDI7CisgICAgICBpc19mdW5jID0gMTsK KyAgICB9CisgICAgZWxzZSBpZiAoc3RybmNtcCAobWFuZ2xlZF9zdHIsICJf X0NsYXNzXyIsIDgpID09IDApCisgICAgICBtYW5nbGVkX3N0ciArPSA4Owor ICAgIGVsc2UgaWYgKHN0cm5jbXAgKG1hbmdsZWRfc3RyLCAiX19pbml0XyIs IDcpID09IDApCisgICAgICBtYW5nbGVkX3N0ciArPSA3OworICAgIGVsc2Ug aWYgKHN0cm5jbXAgKG1hbmdsZWRfc3RyLCAiX192dGJsXyIsIDcpID09IDAp CisgICAgICBtYW5nbGVkX3N0ciArPSA3OworICAgIGVsc2UgaWYgKHN0cm5j bXAgKG1hbmdsZWRfc3RyLCAiX19tb2RjdG9yXyIsIDEwKSA9PSAwKQorICAg ICAgbWFuZ2xlZF9zdHIgKz0gMTA7CisgICAgZWxzZSBpZiAoc3RybmNtcCAo bWFuZ2xlZF9zdHIsICJfX21vZGR0b3JfIiwgMTApID09IDApCisgICAgICBt YW5nbGVkX3N0ciArPSAxMDsKKyAgICBlbHNlIGlmIChzdHJuY21wIChtYW5n bGVkX3N0ciwgIl9fTW9kdWxlSW5mb18iLCAxMykgPT0gMCkKKyAgICAgIG1h bmdsZWRfc3RyICs9IDEzOworICAgIGVsc2UKKyAgICAgIHsKKwlvYnN0YWNr X2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKwlyZXR1cm4gTlVMTDsKKyAgICAg IH0KKyAgCisgIGlmICghZXh0cmFjdF9pZGVudGlmaWVycyAoKSkKKyAgICB7 CisgICAgICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxMKTsKKyAgICAg IHJldHVybiBOVUxMOworICAgIH0KKworICBvYnN0YWNrX2dyb3dfc3RyICgm dGVtcGJ1ZiwgIigiKTsKKyAgaWYgKGlzX2Z1bmMgPT0gMSAmJiAqbWFuZ2xl ZF9zdHIgPT0gJ0YnKQorICAgIHsKKyAgICAgIG1hbmdsZWRfc3RyKys7Cisg ICAgICB3aGlsZSAoKm1hbmdsZWRfc3RyICE9ICdcMCcgJiYgKm1hbmdsZWRf c3RyICE9ICdaJykKKwl7CisJICBpZiAoaXNfZnVuYyA9PSAxKQorCSAgICBp c19mdW5jKys7CisJICBlbHNlCisJICAgIG9ic3RhY2tfZ3Jvd19zdHIgKCZ0 ZW1wYnVmLCAiLCAiKTsKKwkgIGlmICghZXh0cmFjdF90eXBlX2luZm8gKCkp CisJICAgIHsKKwkgICAgICBvYnN0YWNrX2ZyZWUgKCZ0ZW1wYnVmLCBOVUxM KTsKKwkgICAgICByZXR1cm4gTlVMTDsKKwkgICB9CisJfQorICAgICB9Cisg IG9ic3RhY2tfZ3Jvd19zdHIwICgmdGVtcGJ1ZiwgIikiKTsKKworICAvKiBE b2Vzbid0IGRpc3BsYXkgdGhlIHJldHVybiB0eXBlLCBidXQgd291bGRuJ3Qg YmUgdG9vIGhhcmQgdG8gZG8uICAqLworCisgIG91dF9zdHIgPSB4c3RyZHVw IChvYnN0YWNrX2ZpbmlzaCAoJnRlbXBidWYpKTsKKyAgb2JzdGFja19mcmVl ICgmdGVtcGJ1ZiwgTlVMTCk7CisgIHJldHVybiBvdXRfc3RyOworfQorCisv KiBUYWJsZSBtYXBwaW5nIG9wY29kZXMgaW50byBzdHJpbmdzIGZvciBwcmlu dGluZyBvcGVyYXRvcnMKKyAgIGFuZCBwcmVjZWRlbmNlcyBvZiB0aGUgb3Bl cmF0b3JzLiAgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3BfcHJpbnQgZF9v cF9wcmludF90YWJbXSA9Cit7CisgIHsiLCIsIEJJTk9QX0NPTU1BLCBQUkVD X0NPTU1BLCAwfSwKKyAgeyI9IiwgQklOT1BfQVNTSUdOLCBQUkVDX0FTU0lH TiwgMX0sCisgIHsifHwiLCBCSU5PUF9MT0dJQ0FMX09SLCBQUkVDX0xPR0lD QUxfT1IsIDB9LAorICB7IiYmIiwgQklOT1BfTE9HSUNBTF9BTkQsIFBSRUNf TE9HSUNBTF9BTkQsIDB9LAorICB7InwiLCBCSU5PUF9CSVRXSVNFX0lPUiwg UFJFQ19CSVRXSVNFX0lPUiwgMH0sCisgIHsiXiIsIEJJTk9QX0JJVFdJU0Vf WE9SLCBQUkVDX0JJVFdJU0VfWE9SLCAwfSwKKyAgeyImIiwgQklOT1BfQklU V0lTRV9BTkQsIFBSRUNfQklUV0lTRV9BTkQsIDB9LAorICB7Ij09IiwgQklO T1BfRVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7IiE9IiwgQklOT1BfTk9U RVFVQUwsIFBSRUNfRVFVQUwsIDB9LAorICB7Ijw9IiwgQklOT1BfTEVRLCBQ UkVDX09SREVSLCAwfSwKKyAgeyI+PSIsIEJJTk9QX0dFUSwgUFJFQ19PUkRF UiwgMH0sCisgIHsiPiIsIEJJTk9QX0dUUiwgUFJFQ19PUkRFUiwgMH0sCisg IHsiPCIsIEJJTk9QX0xFU1MsIFBSRUNfT1JERVIsIDB9LAorICB7Ij4+Iiwg QklOT1BfUlNILCBQUkVDX1NISUZULCAwfSwKKyAgeyI8PCIsIEJJTk9QX0xT SCwgUFJFQ19TSElGVCwgMH0sCisgIHsiKyIsIEJJTk9QX0FERCwgUFJFQ19B REQsIDB9LAorICB7Ii0iLCBCSU5PUF9TVUIsIFBSRUNfQURELCAwfSwKKyAg eyIqIiwgQklOT1BfTVVMLCBQUkVDX01VTCwgMH0sCisgIHsiLyIsIEJJTk9Q X0RJViwgUFJFQ19NVUwsIDB9LAorICB7IiUiLCBCSU5PUF9SRU0sIFBSRUNf TVVMLCAwfSwKKyAgeyJAIiwgQklOT1BfUkVQRUFULCBQUkVDX1JFUEVBVCwg MH0sCisgIHsiLSIsIFVOT1BfTkVHLCBQUkVDX1BSRUZJWCwgMH0sCisgIHsi ISIsIFVOT1BfTE9HSUNBTF9OT1QsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyJ+ IiwgVU5PUF9DT01QTEVNRU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiKiIs IFVOT1BfSU5ELCBQUkVDX1BSRUZJWCwgMH0sCisgIHsiJiIsIFVOT1BfQURE UiwgUFJFQ19QUkVGSVgsIDB9LAorICB7InNpemVvZiAiLCBVTk9QX1NJWkVP RiwgUFJFQ19QUkVGSVgsIDB9LAorICB7IisrIiwgVU5PUF9QUkVJTkNSRU1F TlQsIFBSRUNfUFJFRklYLCAwfSwKKyAgeyItLSIsIFVOT1BfUFJFREVDUkVN RU5ULCBQUkVDX1BSRUZJWCwgMH0sCisgIHtOVUxMLCAwLCAwLCAwfQorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIGRfbGFuZ3Vh Z2VfZGVmbiA9Cit7CisgICJkIiwKKyAgbGFuZ3VhZ2VfZCwKKyAgcmFuZ2Vf Y2hlY2tfb2ZmLAorICB0eXBlX2NoZWNrX29mZiwKKyAgY2FzZV9zZW5zaXRp dmVfb24sCisgIGFycmF5X3Jvd19tYWpvciwKKyAgbWFjcm9fZXhwYW5zaW9u X2MsCisgICZleHBfZGVzY3JpcHRvcl9jLAorICBjX3BhcnNlLAorICBjX2Vy cm9yLAorICBudWxsX3Bvc3RfcGFyc2VyLAorICBjX3ByaW50Y2hhciwJCQkv KiBQcmludCBhIGNoYXJhY3RlciBjb25zdGFudC4gICovCisgIGNfcHJpbnRz dHIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3RyaW5nIGNvbnN0YW50LiAg Ki8KKyAgY19lbWl0X2NoYXIsCQkJLyogUHJpbnQgYSBzaW5nbGUgY2hhci4g ICovCisgIGNfcHJpbnRfdHlwZSwJCQkvKiBQcmludCBhIHR5cGUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAgY19wcmludF90eXBlZGVmLAkJ LyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheC4g ICovCisgIGRfdmFsX3ByaW50LAkJCS8qIFByaW50IGEgdmFsdWUgdXNpbmcg YXBwcm9wcmlhdGUgc3ludGF4LiAgKi8KKyAgY192YWx1ZV9wcmludCwJCS8q IFByaW50IGEgdG9wLWxldmVsIHZhbHVlLiAgKi8KKyAgTlVMTCwJCQkJLyog TGFuZ3VhZ2Ugc3BlY2lmaWMgc2tpcF90cmFtcG9saW5lLiAgKi8KKyAgInRo aXMiLAorICBiYXNpY19sb29rdXBfc3ltYm9sX25vbmxvY2FsLCAKKyAgYmFz aWNfbG9va3VwX3RyYW5zcGFyZW50X3R5cGUsCisgIGRfZGVtYW5nbGUsCQkJ LyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc3ltYm9sIGRlbWFuZ2xlci4gICovCisg IE5VTEwsCQkJCS8qIExhbmd1YWdlIHNwZWNpZmljIGNsYXNzX25hbWVfZnJv bV9waHlzbmFtZS4gICovCisgIGRfb3BfcHJpbnRfdGFiLAkJLyogRXhwcmVz c2lvbiBvcGVyYXRvcnMgZm9yIHByaW50aW5nLiAgKi8KKyAgMSwJCQkJLyog Qy1zdHlsZSBhcnJheXMuICAqLworICAwLAkJCQkvKiBTdHJpbmcgbG93ZXIg Ym91bmQuICAqLworICBkZWZhdWx0X3dvcmRfYnJlYWtfY2hhcmFjdGVycywK KyAgZGVmYXVsdF9tYWtlX3N5bWJvbF9jb21wbGV0aW9uX2xpc3QsCisgIGNf bGFuZ3VhZ2VfYXJjaF9pbmZvLAorICBkZWZhdWx0X3ByaW50X2FycmF5X2lu ZGV4LAorICBkZWZhdWx0X3Bhc3NfYnlfcmVmZXJlbmNlLAorICBjX2dldF9z dHJpbmcsCisgIExBTkdfTUFHSUMKK307CisKK3ZvaWQKK19pbml0aWFsaXpl X2RfbGFuZ3VhZ2UgKHZvaWQpCit7CisgIGFkZF9sYW5ndWFnZSAoJmRfbGFu Z3VhZ2VfZGVmbik7Cit9CmRpZmYgLS1naXQgYS9nZGIvZC1sYW5nLmggYi9n ZGIvZC1sYW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMGRlZTgxZAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLWxhbmcuaApA QCAtMCwwICsxLDMyIEBACisvKiBEIGxhbmd1YWdlIHN1cHBvcnQgZGVmaW5p dGlvbnMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJp Z2h0IChDKSAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNp ZiAhZGVmaW5lZCAoRF9MQU5HX0gpCisjZGVmaW5lIERfTEFOR19IIDEKKwor I2luY2x1ZGUgInN5bXRhYi5oIgorCitleHRlcm4gY2hhciogZF9kZW1hbmds ZSAoY29uc3QgY2hhciogbWFuZ2xlZCwgaW50IG9wdGlvbnMpOworCitleHRl cm4gaW50IGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCisJCQlpbnQgZW1iZWRkZWRfb2Zmc2V0LCBD T1JFX0FERFIgYWRkcmVzcywKKwkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAorCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOworCisjZW5kaWYgLyogIWRlZmluZWQgKERfTEFO R19IKSAqLwpkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFscHJpbnQuYyBiL2dkYi9k LXZhbHByaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjdiMzJiNwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLXZhbHByaW50 LmMKQEAgLTAsMCArMSw5MSBAQAorLyogU3VwcG9ydCBmb3IgcHJpbnRpbmcg RCB2YWx1ZXMgZm9yIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29w eXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIu CisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlICJk ZWZzLmgiCisjaW5jbHVkZSAiZ2RidHlwZXMuaCIKKyNpbmNsdWRlICJnZGJj b3JlLmgiCisjaW5jbHVkZSAiZC1sYW5nLmgiCisjaW5jbHVkZSAiYy1sYW5n LmgiCisKKy8qIEFzc3VtaW5nIHRoYXQgVFlQRSBpcyBhIFRZUEVfQ09ERV9T VFJVQ1QsIHZlcmlmeSB0aGF0IFRZUEUgaXMKKyAgIGEgZHluYW1pYyBhcnJh eSwgYW5kIHRoZW4gcHJpbnQgaXRzIHZhbHVlIHRvIFNUUkVBTS4gIFJldHVy bgorICAgdGhlIG51bWJlciBvZiBzdHJpbmcgY2hhcmFjdGVycyBwcmludGVk LCBvciAtMSBpZiBUWVBFIGlzIG5vdAorICAgYSBkeW5hbWljIGFycmF5LiAg Ki8KK3N0YXRpYyBpbnQKK2R5bmFtaWNfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorCQkgICAgaW50 IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisJCSAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKwkJICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorewor ICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAyCisgICAgICAmJiBUWVBF X0NPREUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgMCkpID09IFRZUEVfQ09E RV9JTlQKKyAgICAgICYmIHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCAwKSwgImxlbmd0aCIpID09IDAKKyAgICAgICYmIHN0cmNtcCAoVFlQRV9G SUVMRF9OQU1FICh0eXBlLCAxKSwgInB0ciIpID09IDApCisgICAgeworICAg ICAgQ09SRV9BRERSIGFkZHI7CisgICAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlw ZTsKKyAgICAgIHN0cnVjdCB0eXBlICp0cnVlX3R5cGU7CisgICAgICBzdHJ1 Y3QgdHlwZSAqcHRyX3R5cGU7CisgICAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2Vf dHlwZTsKKyAgICAgIGNvbnN0IGdkYl9ieXRlICpwdHJhZGRyOworICAgICAg c3RydWN0IHZhbHVlICp2YWw7CisgICAgICBpbnQgbGVuZ3RoOworCisgICAg ICBsZW5ndGggPSB1bnBhY2tfZmllbGRfYXNfbG9uZyAodHlwZSwgdmFsYWRk ciArIGVtYmVkZGVkX29mZnNldCwgMCk7CisKKyAgICAgIHB0cl90eXBlID0g VFlQRV9GSUVMRF9UWVBFICh0eXBlLCAxKTsKKyAgICAgIGVsdHR5cGUgPSBj aGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChwdHJfdHlwZSkpOwor ICAgICAgYWRkciA9IHVucGFja19wb2ludGVyIChwdHJfdHlwZSwKKwkJCSAg ICAgdmFsYWRkciArIFRZUEVfRklFTERfQklUUE9TICh0eXBlLCAxKSAvIDgK KwkJCSAgICAgKyBlbWJlZGRlZF9vZmZzZXQpOworICAgICAgdHJ1ZV90eXBl ID0gY2hlY2tfdHlwZWRlZiAoZWx0dHlwZSk7CisKKyAgICAgIHRydWVfdHlw ZSA9IGxvb2t1cF9hcnJheV9yYW5nZV90eXBlICh0cnVlX3R5cGUsIDAsIGxl bmd0aCAtIDEpOworICAgICAgdmFsID0gdmFsdWVfYXQgKHRydWVfdHlwZSwg YWRkcik7CisgICAgICBwdHJhZGRyID0gdmFsdWVfY29udGVudHMgKHZhbCk7 CisKKyAgICAgIHJldHVybiBkX3ZhbF9wcmludCAodHJ1ZV90eXBlLCBwdHJh ZGRyLCAwLCBhZGRyLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLAorCQkJICBvcHRp b25zKTsKKyAgICB9CisgIHJldHVybiAtMTsKK30KKworLyogSW1wbGVtZW50 cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEQuICAq LworaW50CitkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorICAg ICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKK3sKKyAgaW50IHJl dDsKKworICBDSEVDS19UWVBFREVGICh0eXBlKTsKKyAgc3dpdGNoIChUWVBF X0NPREUgKHR5cGUpKQorICAgIHsKKyAgICAgIGNhc2UgVFlQRV9DT0RFX1NU UlVDVDoKKyAgICAgICAgcmV0ID0gZHluYW1pY19hcnJheV90eXBlICh0eXBl LCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsCisJCQkJICBz dHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnMpOworCWlmIChyZXQgIT0gLTEpCisJ ICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorCXJldCA9IGNfdmFsX3ByaW50 ICh0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHN0 cmVhbSwKKwkJCSAgIHJlY3Vyc2UsIG9wdGlvbnMpOworICAgIH0KKworICBy ZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZ2RiL2RlZnMuaCBiL2dkYi9k ZWZzLmgKaW5kZXggZThhMWRkNC4uZDRhOWIxOSAxMDA2NDQKLS0tIGEvZ2Ri L2RlZnMuaAorKysgYi9nZGIvZGVmcy5oCkBAIC0xODgsNiArMTg4LDcgQEAg ZW51bSBsYW5ndWFnZQogICAgIGxhbmd1YWdlX2F1dG8sCQkvKiBQbGFjZWhv bGRlciBmb3IgYXV0b21hdGljIHNldHRpbmcgKi8KICAgICBsYW5ndWFnZV9j LAkJCS8qIEMgKi8KICAgICBsYW5ndWFnZV9jcGx1cywJCS8qIEMrKyAqLwor ICAgIGxhbmd1YWdlX2QsCQkJLyogRCAqLwogICAgIGxhbmd1YWdlX29iamMs CQkvKiBPYmplY3RpdmUtQyAqLwogICAgIGxhbmd1YWdlX2phdmEsCQkvKiBK YXZhICovCiAgICAgbGFuZ3VhZ2VfZm9ydHJhbiwJCS8qIEZvcnRyYW4gKi8K ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCmluZGV4IDk3YTU1MzEuLjY2YTI2NWEgMTAwNjQ0Ci0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwpAQCAtMjE0LDYgKzIxNCwxMCBAQCBZb3UgY2FuIHVzZSBAdmFsdWV7R0RC Tn0gdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBDIGFuZCBDQHR7Kyt9 LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVme1N1cHBvcnRlZCBM YW5ndWFnZXMsLFN1cHBvcnRlZCBMYW5ndWFnZXN9LgogRm9yIG1vcmUgaW5m b3JtYXRpb24sIHNlZSBAcmVme0MsLEMgYW5kIEMrK30uCiAKK0BjaW5kZXgg RAorU3VwcG9ydCBmb3IgRCBpcyBwYXJ0aWFsLiAgRm9yIGluZm9ybWF0aW9u IG9uIEQsIHNlZQorQHJlZntELCxEfS4KKwogQGNpbmRleCBNb2R1bGEtMgog U3VwcG9ydCBmb3IgTW9kdWxhLTIgaXMgcGFydGlhbC4gIEZvciBpbmZvcm1h dGlvbiBvbiBNb2R1bGEtMiwgc2VlCiBAcmVme01vZHVsYS0yLCxNb2R1bGEt Mn0uCkBAIC0xMDc3Niw2ICsxMDc4MCw5IEBAIEMgc291cmNlIGZpbGUKIEBp dGVteCAuYysrCiBDQHR7Kyt9IHNvdXJjZSBmaWxlCiAKK0BpdGVtIC5kCitE IHNvdXJjZSBmaWxlCisKIEBpdGVtIC5tCiBPYmplY3RpdmUtQyBzb3VyY2Ug ZmlsZQogCkBAIC0xMTA1Myw3ICsxMTA2MCw3IEBAIGJlaW5nIHNldCBhdXRv bWF0aWNhbGx5IGJ5IEB2YWx1ZXtHREJOfS4KIEBub2RlIFN1cHBvcnRlZCBM YW5ndWFnZXMKIEBzZWN0aW9uIFN1cHBvcnRlZCBMYW5ndWFnZXMKIAotQHZh bHVle0dEQk59IHN1cHBvcnRzIEMsIENAdHsrK30sIE9iamVjdGl2ZS1DLCBG b3J0cmFuLCBKYXZhLCBQYXNjYWwsCitAdmFsdWV7R0RCTn0gc3VwcG9ydHMg QywgQ0B0eysrfSwgRCwgT2JqZWN0aXZlLUMsIEZvcnRyYW4sIEphdmEsIFBh c2NhbCwKIGFzc2VtYmx5LCBNb2R1bGEtMiwgYW5kIEFkYS4KIEBjIFRoaXMg aXMgZmFsc2UgLi4uCiBTb21lIEB2YWx1ZXtHREJOfSBmZWF0dXJlcyBtYXkg YmUgdXNlZCBpbiBleHByZXNzaW9ucyByZWdhcmRsZXNzIG9mIHRoZQpAQCAt MTEwNzIsNiArMTEwNzksNyBAQCBsYW5ndWFnZSByZWZlcmVuY2Ugb3IgdHV0 b3JpYWwuCiAKIEBtZW51CiAqIEM6OiAgICAgICAgICAgICAgICAgICAgICAg ICAgIEMgYW5kIENAdHsrK30KKyogRDo6ICAgICAgICAgICAgICAgICAgICAg ICAgICAgRAogKiBPYmplY3RpdmUtQzo6ICAgICAgICAgICAgICAgICBPYmpl Y3RpdmUtQwogKiBGb3J0cmFuOjogICAgICAgICAgICAgICAgICAgICBGb3J0 cmFuCiAqIFBhc2NhbDo6ICAgICAgICAgICAgICAgICAgICAgIFBhc2NhbApA QCAtMTE2MDksNiArMTE2MTcsMTQgQEAgSW4gdGhlIFBvd2VyUEMgYXJjaGl0 ZWN0dXJlLCBAdmFsdWV7R0RCTn0gcHJvdmlkZXMgYSBzZXQgb2YgcHNldWRv LXJlZ2lzdGVycwogdG8gaW5zcGVjdCBAY29kZXtfRGVjaW1hbDEyOH0gdmFs dWVzIHN0b3JlZCBpbiBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCiBTZWUg QHJlZntQb3dlclBDLCxQb3dlclBDfSBmb3IgbW9yZSBkZXRhaWxzLgogCitA bm9kZSBECitAc3Vic2VjdGlvbiBECisKK0BjaW5kZXggRAorQHZhbHVle0dE Qk59IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHByb2dyYW1zIHdyaXR0ZW4gaW4g RCBhbmQgY29tcGlsZWQgd2l0aAorR0RDLCBMREMgb3IgRE1ELiBDdXJyZW50 bHkgQHZhbHVle0dEQk59IHN1cHBvcnRzIG9ubHkgb25lIEQgc3BlY2lmaWMK K2ZlYXR1cmUgLSBkeW5hbWljIGFycmF5cy4KKwogQG5vZGUgT2JqZWN0aXZl LUMKIEBzdWJzZWN0aW9uIE9iamVjdGl2ZS1DCiAKZGlmZiAtLWdpdCBhL2dk Yi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCmluZGV4IDMwOTZh YjcuLmY0Y2JjNTkgMTAwNjQ0Ci0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysr IGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAtNzYxOSw2ICs3NjE5LDkgQEAgc2V0 X2N1X2xhbmd1YWdlICh1bnNpZ25lZCBpbnQgbGFuZywgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgY2FzZSBEV19MQU5HX0NfcGx1c19wbHVzOgogICAg ICAgY3UtPmxhbmd1YWdlID0gbGFuZ3VhZ2VfY3BsdXM7CiAgICAgICBicmVh azsKKyAgICBjYXNlIERXX0xBTkdfRDoKKyAgICAgIGN1LT5sYW5ndWFnZSA9 IGxhbmd1YWdlX2Q7CisgICAgICBicmVhazsKICAgICBjYXNlIERXX0xBTkdf Rm9ydHJhbjc3OgogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuOTA6CiAgICAg Y2FzZSBEV19MQU5HX0ZvcnRyYW45NToKZGlmZiAtLWdpdCBhL2dkYi9sYW5n dWFnZS5jIGIvZ2RiL2xhbmd1YWdlLmMKaW5kZXggZGNkNzBiMC4uYWJhOGE5 ZSAxMDA2NDQKLS0tIGEvZ2RiL2xhbmd1YWdlLmMKKysrIGIvZ2RiL2xhbmd1 YWdlLmMKQEAgLTQ4Niw2ICs0ODYsNyBAQCBiaW5vcF9yZXN1bHRfdHlwZSAo c3RydWN0IHZhbHVlICp2MSwgc3RydWN0IHZhbHVlICp2MikKICAgICB7CiAg ICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6 CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2Jq YzoKICAgICAgIGlmIChUWVBFX0NPREUgKHQxKSA9PSBUWVBFX0NPREVfRkxU KQogCXJldHVybiBUWVBFX0NPREUgKHQyKSA9PSBUWVBFX0NPREVfRkxUICYm IGwyID4gbDEgPwpAQCAtNTk3LDYgKzU5OCw3IEBAIGludGVncmFsX3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlKQogICAgIHsKICAgICBjYXNlIGxhbmd1YWdl X2M6CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1 YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9vYmpjOgogICAgICAgcmV0dXJu IChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9JTlQpICYmCiAJKFRZ UEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0VOVU0pID8gMCA6IDE7CkBA IC02MzcsNiArNjM5LDcgQEAgY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9jOgogICAgIGNhc2UgbGFu Z3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9kOgogICAgIGNhc2Ug bGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQRV9DT0RFICh0eXBl KSA9PSBUWVBFX0NPREVfSU5UKSAmJgogCVRZUEVfTEVOR1RIICh0eXBlKSA9 PSBzaXplb2YgKGNoYXIpCkBAIC02NTksNiArNjYyLDcgQEAgc3RyaW5nX3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlKQogCiAgICAgY2FzZSBsYW5ndWFnZV9j OgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFn ZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIEMgZG9l cyBub3QgaGF2ZSBkaXN0aW5jdCBzdHJpbmcgdHlwZS4gKi8KICAgICAgIHJl dHVybiAoMCk7CkBAIC02NzgsNiArNjgyLDcgQEAgYm9vbGVhbl90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9j OgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFn ZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIC8qIE1pZ2h0 IGJlIG1vcmUgY2xlYW5seSBoYW5kbGVkIGJ5IGhhdmluZyBhCiAgICAgICAg ICBUWVBFX0NPREVfSU5UX05PVF9CT09MIGZvciAodGhlIGRlbGV0ZWQpIENI SUxMIGFuZCBzdWNoCkBAIC03MTcsNiArNzIyLDcgQEAgc3RydWN0dXJlZF90 eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5n dWFnZV9jOgogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBs YW5ndWFnZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJl dHVybiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSVUNUKSB8 fAogCShUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9VTklPTikgfHwK ZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCmlu ZGV4IGVkYTI2Y2MuLmNmN2I0MWEgMTAwNjQ0Ci0tLSBhL2dkYi9zeW1maWxl LmMKKysrIGIvZ2RiL3N5bWZpbGUuYwpAQCAtMjYxOCw2ICsyNjE4LDcgQEAg aW5pdF9maWxlbmFtZV9sYW5ndWFnZV90YWJsZSAodm9pZCkKICAgICAgIGZp bGVuYW1lX2xhbmd1YWdlX3RhYmxlID0KIAl4bWFsbG9jIChmbF90YWJsZV9z aXplICogc2l6ZW9mICgqZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUpKTsKICAg ICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5jIiwgbGFuZ3VhZ2VfYyk7 CisgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuZCIsIGxhbmd1YWdl X2QpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLkMiLCBsYW5n dWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIu Y2MiLCBsYW5ndWFnZV9jcGx1cyk7CiAgICAgICBhZGRfZmlsZW5hbWVfbGFu Z3VhZ2UgKCIuY3AiLCBsYW5ndWFnZV9jcGx1cyk7CmRpZmYgLS1naXQgYS9n ZGIvc3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKaW5kZXggMjkxNDJkYS4uNjAy NmMyOSAxMDA2NDQKLS0tIGEvZ2RiL3N5bXRhYi5jCisrKyBiL2dkYi9zeW10 YWIuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgInNvdXJjZS5oIgog I2luY2x1ZGUgImZpbGVuYW1lcy5oIgkJLyogZm9yIEZJTEVOQU1FX0NNUCAq LwogI2luY2x1ZGUgIm9iamMtbGFuZy5oIgorI2luY2x1ZGUgImQtbGFuZy5o IgogI2luY2x1ZGUgImFkYS1sYW5nLmgiCiAjaW5jbHVkZSAicC1sYW5nLmgi CiAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAtMzQ2LDYgKzM0Nyw3IEBAIHN5 bWJvbF9pbml0X2xhbmd1YWdlX3NwZWNpZmljIChzdHJ1Y3QgZ2VuZXJhbF9z eW1ib2xfaW5mbyAqZ3N5bWJvbCwKIHsKICAgZ3N5bWJvbC0+bGFuZ3VhZ2Ug PSBsYW5ndWFnZTsKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1 YWdlX2NwbHVzCisgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9kCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFn ZV9qYXZhCiAgICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFn ZV9vYmpjKQogICAgIHsKQEAgLTQ0OSw2ICs0NTEsMTYgQEAgc3ltYm9sX2Zp bmRfZGVtYW5nbGVkX25hbWUgKHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZv ICpnc3ltYm9sLAogCSAgcmV0dXJuIGRlbWFuZ2xlZDsKIAl9CiAgICAgfQor ICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZAorICAgICAg fHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYXV0bykKKyAgICB7 CisgICAgICBkZW1hbmdsZWQgPSBkX2RlbWFuZ2xlKG1hbmdsZWQsIDApOwor ICAgICAgaWYgKGRlbWFuZ2xlZCAhPSBOVUxMKQorCXsKKwkgIGdzeW1ib2wt Pmxhbmd1YWdlID0gbGFuZ3VhZ2VfZDsKKwkgIHJldHVybiBkZW1hbmdsZWQ7 CisJfQorICAgIH0KICAgcmV0dXJuIE5VTEw7CiB9CiAKQEAgLTYyNiw2ICs2 MzgsNyBAQCBzeW1ib2xfbmF0dXJhbF9uYW1lIChjb25zdCBzdHJ1Y3QgZ2Vu ZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCkKICAgc3dpdGNoIChnc3ltYm9s LT5sYW5ndWFnZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jcGx1czoK KyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2FzZSBsYW5ndWFnZV9qYXZh OgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIGlmIChnc3ltYm9s LT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVjaWZpYy5kZW1hbmdsZWRf bmFtZSAhPSBOVUxMKQpAQCAtNjUxLDYgKzY2NCw3IEBAIHN5bWJvbF9kZW1h bmdsZWRfbmFtZSAoY29uc3Qgc3RydWN0IGdlbmVyYWxfc3ltYm9sX2luZm8g KmdzeW1ib2wpCiAgIHN3aXRjaCAoZ3N5bWJvbC0+bGFuZ3VhZ2UpCiAgICAg ewogICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFn ZV9kOgogICAgIGNhc2UgbGFuZ3VhZ2VfamF2YToKICAgICBjYXNlIGxhbmd1 YWdlX29iamM6CiAgICAgICBpZiAoZ3N5bWJvbC0+bGFuZ3VhZ2Vfc3BlY2lm aWMuY3BsdXNfc3BlY2lmaWMuZGVtYW5nbGVkX25hbWUgIT0gTlVMTCkKQEAg LTk0MCw3ICs5NTQsNyBAQCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlIChj b25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAog CiAgIG1vZGlmaWVkX25hbWUgPSBuYW1lOwogCi0gIC8qIElmIHdlIGFyZSB1 c2luZyBDKysgb3IgSmF2YSwgZGVtYW5nbGUgdGhlIG5hbWUgYmVmb3JlIGRv aW5nIGEgbG9va3VwLCBzbworICAvKiBJZiB3ZSBhcmUgdXNpbmcgQysrLCBE LCBvciBKYXZhLCBkZW1hbmdsZSB0aGUgbmFtZSBiZWZvcmUgZG9pbmcgYSBs b29rdXAsIHNvCiAgICAgIHdlIGNhbiBhbHdheXMgYmluYXJ5IHNlYXJjaC4g Ki8KICAgaWYgKGxhbmcgPT0gbGFuZ3VhZ2VfY3BsdXMpCiAgICAgewpAQCAt OTcyLDYgKzk4NiwxNSBAQCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlIChj b25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAog CSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgZGVtYW5nbGVkX25hbWUpOwogCX0K ICAgICB9CisgIGVsc2UgaWYgKGxhbmcgPT0gbGFuZ3VhZ2VfZCkKKyAgICB7 CisgICAgICBkZW1hbmdsZWRfbmFtZSA9IGRfZGVtYW5nbGUgKG5hbWUsIDAp OworICAgICAgaWYgKGRlbWFuZ2xlZF9uYW1lKQorCXsKKwkgIG1vZGlmaWVk X25hbWUgPSBkZW1hbmdsZWRfbmFtZTsKKwkgIG1ha2VfY2xlYW51cCAoeGZy ZWUsIGRlbWFuZ2xlZF9uYW1lKTsKKwl9CisgICAgfQogCiAgIGlmIChjYXNl X3NlbnNpdGl2aXR5ID09IGNhc2Vfc2Vuc2l0aXZlX29mZikKICAgICB7CkBA IC0xNDEyLDYgKzE0MzUsNyBAQCBzeW1ib2xfbWF0Y2hlc19kb21haW4gKGVu dW0gbGFuZ3VhZ2Ugc3ltYm9sX2xhbmd1YWdlLAogICAgICBBIEphdmEgY2xh c3MgZGVjbGFyYXRpb24gYWxzbyBkZWZpbmVzIGEgdHlwZWRlZiBmb3IgdGhl IGNsYXNzLgogICAgICBTaW1pbGFybHksIGFueSBBZGEgdHlwZSBkZWNsYXJh dGlvbiBpbXBsaWNpdGx5IGRlZmluZXMgYSB0eXBlZGVmLiAgKi8KICAgaWYg KHN5bWJvbF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cworICAgICAgfHwg c3ltYm9sX2xhbmd1YWdlID09IGxhbmd1YWdlX2QKICAgICAgIHx8IHN5bWJv bF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhCiAgICAgICB8fCBzeW1ib2xf bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYWRhKQogICAgIHsKZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2RlZmF1bHQuZXhwCmluZGV4IDk3ZDU0MDcuLjJh MTMwMDcgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVm YXVsdC5leHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0 LmV4cApAQCAtNTMxLDcgKzUzMSw3IEBAIGdkYl90ZXN0ICJzZXQgaGlzdG9y eSBzaXplIiAiQXJndW1lbnQgcmVxdWlyZWQgLmludGVnZXIgdG8gc2V0IGl0 IHRvLioiICJzZXQgaGlzCiAjdGVzdCBzZXQgaGlzdG9yeQogZ2RiX3Rlc3Qg InNldCBoaXN0b3J5IiAiXCJzZXQgaGlzdG9yeVwiIG11c3QgYmUgZm9sbG93 ZWQgYnkgdGhlIG5hbWUgb2YgYSBoaXN0b3J5IHN1YmNvbW1hbmQuKFxbXlxy XG5cXSpcW1xyXG5cXSkrTGlzdCBvZiBzZXQgaGlzdG9yeSBzdWJjb21tYW5k czooXFteXHJcblxdKlxbXHJcblxdKStzZXQgaGlzdG9yeSBleHBhbnNpb24g LS0gU2V0IGhpc3RvcnkgZXhwYW5zaW9uIG9uIGNvbW1hbmQgaW5wdXQoXFte XHJcblxdKlxbXHJcblxdKStzZXQgaGlzdG9yeSBmaWxlbmFtZSAtLSBTZXQg dGhlIGZpbGVuYW1lIGluIHdoaWNoIHRvIHJlY29yZCB0aGUgY29tbWFuZCBo aXN0b3J5KFxbXlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhpc3Rvcnkgc2F2ZSAt LSBTZXQgc2F2aW5nIG9mIHRoZSBoaXN0b3J5IHJlY29yZCBvbiBleGl0KFxb XlxyXG5cXSpcW1xyXG5cXSkrc2V0IGhpc3Rvcnkgc2l6ZSAtLSBTZXQgdGhl IHNpemUgb2YgdGhlIGNvbW1hbmQgaGlzdG9yeShcW15cclxuXF0qXFtcclxu XF0pK1R5cGUgXCJoZWxwIHNldCBoaXN0b3J5XCIgZm9sbG93ZWQgYnkgc2V0 IGhpc3Rvcnkgc3ViY29tbWFuZCBuYW1lIGZvciBmdWxsIGRvY3VtZW50YXRp b24uKFxbXlxyXG5cXSpcW1xyXG5cXSkrQ29tbWFuZCBuYW1lIGFiYnJldmlh dGlvbnMgYXJlIGFsbG93ZWQgaWYgdW5hbWJpZ3VvdXMuIiAic2V0IGhpc3Rv cnkiCiAjdGVzdCBzZXQgbGFuZ3VhZ2UKLWdkYl90ZXN0ICJzZXQgbGFuZ3Vh Z2UiICJSZXF1aXJlcyBhbiBhcmd1bWVudC4gVmFsaWQgYXJndW1lbnRzIGFy ZSBhdXRvLCBsb2NhbCwgdW5rbm93biwgYWRhLCBjLCBjLi4sIGFzbSwgbWlu aW1hbCwgZm9ydHJhbiwgb2JqZWN0aXZlLWMsIGphdmEsIG1vZHVsYS0yLCBw YXNjYWwsIHNjaGVtZS4iICJzZXQgbGFuZ3VhZ2UiCitnZGJfdGVzdCAic2V0 IGxhbmd1YWdlIiAiUmVxdWlyZXMgYW4gYXJndW1lbnQuIFZhbGlkIGFyZ3Vt ZW50cyBhcmUgYXV0bywgbG9jYWwsIHVua25vd24sIGFkYSwgYywgYy4uLCBh c20sIG1pbmltYWwsIGQsIGZvcnRyYW4sIG9iamVjdGl2ZS1jLCBqYXZhLCBt b2R1bGEtMiwgcGFzY2FsLCBzY2hlbWUuIiAic2V0IGxhbmd1YWdlIgogI3Rl c3Qgc2V0IGxpc3RzaXplCiBnZGJfdGVzdCAic2V0IGxpc3RzaXplIiAiQXJn dW1lbnQgcmVxdWlyZWQgLmludGVnZXIgdG8gc2V0IGl0IHRvLioiICJzZXQg bGlzdHNpemUiCiAjdGVzdCBzZXQgcHJpbnQgInAiIGFiYnJldmlhdGlvbgo= --Multipart=_Thu__22_Apr_2010_04_51_36_+0300_alboNTeN7LJme3fg--