From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12215 invoked by alias); 23 Dec 2009 23:57:51 -0000 Received: (qmail 12207 invoked by uid 22791); 23 Dec 2009 23:57:50 -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-bw0-f219.google.com (HELO mail-bw0-f219.google.com) (209.85.218.219) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 23 Dec 2009 23:57:47 +0000 Received: by bwz19 with SMTP id 19so5802376bwz.8 for ; Wed, 23 Dec 2009 15:57:44 -0800 (PST) Received: by 10.204.27.13 with SMTP id g13mr7244879bkc.120.1261612662215; Wed, 23 Dec 2009 15:57:42 -0800 (PST) Received: from localhost (72-243-252-87-dynamic-pool.gprs.mts.by [87.252.243.72]) by mx.google.com with ESMTPS id 15sm2296038bwz.12.2009.12.23.15.56.43 (version=SSLv3 cipher=RC4-MD5); Wed, 23 Dec 2009 15:57:41 -0800 (PST) Date: Wed, 23 Dec 2009 23:57:00 -0000 From: Mihail Zenkov To: gdb-patches@sourceware.org Subject: D language support Message-Id: <20091224015617.7092112b.mihai.zenkov@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__24_Dec_2009_01_56_17_+0200_blz8JQbrM0fdr5lF" 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: 2009-12/txt/msg00369.txt.bz2 This is a multi-part message in MIME format. --Multipart=_Thu__24_Dec_2009_01_56_17_+0200_blz8JQbrM0fdr5lF Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-length: 100 Hi, I receive confirmation from FSF - assignment process completed. Patch updated for current git. --Multipart=_Thu__24_Dec_2009_01_56_17_+0200_blz8JQbrM0fdr5lF Content-Type: application/octet-stream; name="gdb-091223-d.patch" Content-Disposition: attachment; filename="gdb-091223-d.patch" Content-Transfer-Encoding: base64 Content-length: 31574 ZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5p bgppbmRleCAzNDhkODUzLi43NjhhZGZlIDEwMDY0NAotLS0gYS9nZGIvTWFr ZWZpbGUuaW4KKysrIGIvZ2RiL01ha2VmaWxlLmluCkBAIC02NDEsNiArNjQx LDcgQEAgU0ZJTEVTID0gYWRhLWV4cC55IGFkYS1sYW5nLmMgYWRhLXR5cGVw cmludC5jIGFkYS12YWxwcmludC5jIGFkYS10YXNrcy5jIFwKIAljaGFyc2V0 LmMgY2xpLW91dC5jIGNvZmZyZWFkLmMgY29mZi1wZS1yZWFkLmMgXAogCWNv bXBsYWludHMuYyBjb21wbGV0ZXIuYyBjb3JlZmlsZS5jIFwKIAljcC1hYmku YyBjcC1zdXBwb3J0LmMgY3AtbmFtZXNwYWNlLmMgY3AtdmFscHJpbnQuYyBc CisJZC1sYW5nLmMgZC12YWxwcmludC5jIFwKIAljcC1uYW1lLXBhcnNlci55 IFwKIAlkYnhyZWFkLmMgZGVtYW5nbGUuYyBkaWN0aW9uYXJ5LmMgZGlzYXNt LmMgZG91Ymxlc3QuYyBkdW1teS1mcmFtZS5jIFwKIAlkd2FyZjJleHByLmMg ZHdhcmYybG9jLmMgZHdhcmYycmVhZC5jIGR3YXJmMi1mcmFtZS5jIFwKQEAg LTgwOSw3ICs4MTAsNyBAQCBDT01NT05fT0JTID0gJChERVBGSUxFUykgJChD T05GSUdfT0JTKSAkKFlZT0JKKSBcCiAJZGJ4cmVhZC5vIGNvZmZyZWFkLm8g Y29mZi1wZS1yZWFkLm8gXAogCWR3YXJmMnJlYWQubyBtaXBzcmVhZC5vIHN0 YWJzcmVhZC5vIGNvcmVmaWxlLm8gXAogCWR3YXJmMmV4cHIubyBkd2FyZjJs b2MubyBkd2FyZjItZnJhbWUubyBcCi0JYWRhLWxhbmcubyBjLWxhbmcubyBm LWxhbmcubyBvYmpjLWxhbmcubyBcCisJYWRhLWxhbmcubyBjLWxhbmcubyBk LWxhbmcubyBmLWxhbmcubyBvYmpjLWxhbmcubyBcCiAJYWRhLXRhc2tzLm8g XAogCXVpLW91dC5vIGNsaS1vdXQubyBcCiAJdmFyb2JqLm8gdmVjLm8gd3Jh cHBlci5vIFwKQEAgLTgxOSw3ICs4MjAsNyBAQCBDT01NT05fT0JTID0gJChE RVBGSUxFUykgJChDT05GSUdfT0JTKSAkKFlZT0JKKSBcCiAJc2VudGluZWwt ZnJhbWUubyBcCiAJY29tcGxhaW50cy5vIHR5cGVwcmludC5vIFwKIAlhZGEt dHlwZXByaW50Lm8gYy10eXBlcHJpbnQubyBmLXR5cGVwcmludC5vIG0yLXR5 cGVwcmludC5vIFwKLQlhZGEtdmFscHJpbnQubyBjLXZhbHByaW50Lm8gY3At dmFscHJpbnQubyBmLXZhbHByaW50Lm8gbTItdmFscHJpbnQubyBcCisJYWRh LXZhbHByaW50Lm8gYy12YWxwcmludC5vIGNwLXZhbHByaW50Lm8gZC12YWxw cmludC5vIGYtdmFscHJpbnQubyBtMi12YWxwcmludC5vIFwKIAlzZXJpYWwu byBtZGVidWdyZWFkLm8gdG9wLm8gdXRpbHMubyBcCiAJdWktZmlsZS5vIFwK IAl1c2VyLXJlZ3MubyBcCmRpZmYgLS1naXQgYS9nZGIvYy1sYW5nLmMgYi9n ZGIvYy1sYW5nLmMKaW5kZXggNDA1YzQ4OS4uNGViMWJlYSAxMDA2NDQKLS0t IGEvZ2RiL2MtbGFuZy5jCisrKyBiL2dkYi9jLWxhbmcuYwpAQCAtMjUsNiAr MjUsNyBAQAogI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCiAjaW5jbHVkZSAi bGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJk LWxhbmcuaCIKICNpbmNsdWRlICJ2YWxwcmludC5oIgogI2luY2x1ZGUgIm1h Y3Jvc2NvcGUuaCIKICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCkBAIC0xMzgw LDEwICsxMzgxLDUwIEBAIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIG1p bmltYWxfbGFuZ3VhZ2VfZGVmbiA9CiAgIExBTkdfTUFHSUMKIH07CiAKK2Nv bnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuIGRfbGFuZ3VhZ2VfZGVmbiA9Cit7 CisgICJkIiwJCQkJLyogTGFuZ3VhZ2UgbmFtZSAqLworICBsYW5ndWFnZV9k LAorICByYW5nZV9jaGVja19vZmYsCisgIHR5cGVfY2hlY2tfb2ZmLAorICBj YXNlX3NlbnNpdGl2ZV9vbiwKKyAgYXJyYXlfcm93X21ham9yLAorICBtYWNy b19leHBhbnNpb25fYywKKyAgJmV4cF9kZXNjcmlwdG9yX2MsCisgIGNfcGFy c2UsCisgIGNfZXJyb3IsCisgIG51bGxfcG9zdF9wYXJzZXIsCisgIGNfcHJp bnRjaGFyLAkJCS8qIFByaW50IGEgY2hhcmFjdGVyIGNvbnN0YW50ICovCisg IGNfcHJpbnRzdHIsCQkJLyogRnVuY3Rpb24gdG8gcHJpbnQgc3RyaW5nIGNv bnN0YW50ICovCisgIGNfZW1pdF9jaGFyLAkJCS8qIFByaW50IGEgc2luZ2xl IGNoYXIgKi8KKyAgY19wcmludF90eXBlLAkJCS8qIFByaW50IGEgdHlwZSB1 c2luZyBhcHByb3ByaWF0ZSBzeW50YXggKi8KKyAgY19wcmludF90eXBlZGVm LCAgICAgICAgICAgICAgLyogUHJpbnQgYSB0eXBlZGVmIHVzaW5nIGFwcHJv cHJpYXRlIHN5bnRheCAqLworICBkX3ZhbF9wcmludCwJCQkvKiBQcmludCBh IHZhbHVlIHVzaW5nIGFwcHJvcHJpYXRlIHN5bnRheCAqLworICBjX3ZhbHVl X3ByaW50LAkJLyogUHJpbnQgYSB0b3AtbGV2ZWwgdmFsdWUgKi8KKyAgTlVM TCwJCQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgc2tpcF90cmFtcG9saW5lICov CisgICJ0aGlzIiwJCQkvKiBuYW1lX29mX3RoaXMgKi8KKyAgYmFzaWNfbG9v a3VwX3N5bWJvbF9ub25sb2NhbCwJLyogbG9va3VwX3N5bWJvbF9ub25sb2Nh bCAqLworICBiYXNpY19sb29rdXBfdHJhbnNwYXJlbnRfdHlwZSwvKiBsb29r dXBfdHJhbnNwYXJlbnRfdHlwZSAqLworICBkX2RlbWFuZ2xlLAkJCS8qIExh bmd1YWdlIHNwZWNpZmljIHN5bWJvbCBkZW1hbmdsZXIgKi8KKyAgTlVMTCwJ CQkJLyogTGFuZ3VhZ2Ugc3BlY2lmaWMgY2xhc3NfbmFtZV9mcm9tX3BoeXNu YW1lICovCisgIGNfb3BfcHJpbnRfdGFiLAkJLyogZXhwcmVzc2lvbiBvcGVy YXRvcnMgZm9yIHByaW50aW5nICovCisgIDEsCQkJCS8qIGMtc3R5bGUgYXJy YXlzICovCisgIDAsCQkJCS8qIFN0cmluZyBsb3dlciBib3VuZCAqLworICBk ZWZhdWx0X3dvcmRfYnJlYWtfY2hhcmFjdGVycywKKyAgZGVmYXVsdF9tYWtl X3N5bWJvbF9jb21wbGV0aW9uX2xpc3QsCisgIGNfbGFuZ3VhZ2VfYXJjaF9p bmZvLAorICBkZWZhdWx0X3ByaW50X2FycmF5X2luZGV4LAorICBkZWZhdWx0 X3Bhc3NfYnlfcmVmZXJlbmNlLAorICBjX2dldF9zdHJpbmcsCisgIExBTkdf TUFHSUMKK307CisKKwogdm9pZAogX2luaXRpYWxpemVfY19sYW5ndWFnZSAo dm9pZCkKIHsKICAgYWRkX2xhbmd1YWdlICgmY19sYW5ndWFnZV9kZWZuKTsK KyAgYWRkX2xhbmd1YWdlICgmZF9sYW5ndWFnZV9kZWZuKTsKICAgYWRkX2xh bmd1YWdlICgmY3BsdXNfbGFuZ3VhZ2VfZGVmbik7CiAgIGFkZF9sYW5ndWFn ZSAoJmFzbV9sYW5ndWFnZV9kZWZuKTsKICAgYWRkX2xhbmd1YWdlICgmbWlu aW1hbF9sYW5ndWFnZV9kZWZuKTsKZGlmZiAtLWdpdCBhL2dkYi9kLWxhbmcu YyBiL2dkYi9kLWxhbmcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41OGRkY2QzCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiL2QtbGFu Zy5jCkBAIC0wLDAgKzEsMjQxIEBACisKKy8qIEMgbGFuZ3VhZ2Ugc3VwcG9y dCByb3V0aW5lcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorICAgQ29w eXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5 OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQKKyAgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBH REIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAg IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwgNTkg VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICAgQm9zdG9uLCBNQSAwMjEx MS0xMzA3LCBVU0EuICAqLworCisjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1 ZGUgInN5bXRhYi5oIgorI2luY2x1ZGUgImxhbmd1YWdlLmgiCisjaW5jbHVk ZSAiZC1sYW5nLmgiCisjaW5jbHVkZSAiYy1sYW5nLmgiCisjaW5jbHVkZSAi Z2RiX3N0cmluZy5oIgorCisjaW5jbHVkZSA8Y3R5cGUuaD4KKwordHlwZWRl ZiBzdHJ1Y3QgeworICBzaXplX3QgbGVuOworICBjaGFyKiBzdHI7CisgIGNo YXIqIHBvczsKK30gU3RyaW5nOworCitzdGF0aWMgc2l6ZV90IHN0cl9sZWZ0 KFN0cmluZyogc3RyKSB7CisgIHJldHVybiAoc3RyLT5sZW4gLSAoc3RyLT5w b3MgLSBzdHItPnN0cikpOworfQorCitzdGF0aWMgdm9pZCBzdHJfcmVzaXpl KFN0cmluZyogc3RyLCBzaXplX3QgbmV3X3NpemUpIHsKKyAgaW50IHBvcyA9 IHN0ci0+cG9zIC0gc3RyLT5zdHI7CisgIGlmIChuZXdfc2l6ZSA9PSAwKQor ICAgIG5ld19zaXplID0gc3RybGVuKHN0ci0+c3RyKSArIDE7CisgIHN0ci0+ c3RyID0geHJlYWxsb2Moc3RyLT5zdHIsIG5ld19zaXplKTsKKyAgc3RyLT5s ZW4gPSBuZXdfc2l6ZTsKKyAgc3RyLT5wb3MgPSBzdHItPnN0ciArIHBvczsK K30KKworc3RhdGljIHZvaWQgYXBwZW5kX2xlbihTdHJpbmcqIHN0ciwgY2hh ciogc3JjLCBzaXplX3QgaSkgeworICBzaXplX3QgYW1udCA9IHN0cl9sZWZ0 KHN0cik7CisgIGlmIChpID4gYW1udCkgeworICAgIHN0cl9yZXNpemUoc3Ry LCBzdHItPmxlbiArIGkgKyAyMCk7CisgIH0KKyAgbWVtY3B5KHN0ci0+cG9z LCBzcmMsIGkpOworICBzdHItPnBvcyArPSBpOworfQorCitzdGF0aWMgdm9p ZCBhcHBlbmQoU3RyaW5nKiBzdHIsIGNoYXIqIHNyYykgeworICBhcHBlbmRf bGVuKHN0ciwgc3JjLCBzdHJsZW4oc3JjKSk7Cit9CisKK3N0YXRpYyBpbnQg ZXh0cmFjdGlkZW50aWZpZXJzKFN0cmluZyogb3V0cHV0LCBTdHJpbmcqIG1h bmdsZWQpIHsKKyAgbG9uZyBpID0gMDsKKyAgd2hpbGUgKGlzZGlnaXQoKm1h bmdsZWQtPnBvcykpIHsKKyAgICBpID0gc3RydG9sKG1hbmdsZWQtPnBvcywg Jm1hbmdsZWQtPnBvcywgMTApOworICAgIGlmIChpID09IDAgfHwgaSA9PSBM T05HX01BWCB8fCBpID09IExPTkdfTUlOKSB7CisgICAgICByZXR1cm4gLTE7 CisgICAgfQorICAgIGlmIChzdHJsZW4obWFuZ2xlZC0+cG9zKSA8IGkpCisg ICAgICByZXR1cm4gLTE7CisgICAgYXBwZW5kX2xlbihvdXRwdXQsIG1hbmds ZWQtPnBvcywgaSk7CisgICAgbWFuZ2xlZC0+cG9zICs9IGk7CisgICAgYXBw ZW5kKG91dHB1dCwgIi4iKTsKKyAgfQorICBpZiAoKm1hbmdsZWQtPnBvcyA9 PSAnXDAnIHx8IGkgPT0gMCkKKyAgICByZXR1cm4gLTE7CisgIG91dHB1dC0+ cG9zLS07CisgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IGV4dHJhY3R0 eXBlaW5mbyhTdHJpbmcqIGRlc3QsIFN0cmluZyogaWQpIHsKKyAgaWYgKCpp ZC0+cG9zID09ICdcMCcpCisgICAgcmV0dXJuIC0xOworICAvLyBFeHRyYWN0 IHRoZSB0eXBlIGluZm86CisgIHN3aXRjaCAoKmlkLT5wb3MrKykgeworICAg IC8vIGFycmF5LCBzdGF0aWMgYXJyYXksIGR5bmFtaWMgYXJyYXk6CisgIGNh c2UgJ0EnOiBjYXNlICdHJzogY2FzZSAnSCc6CisgICAgaWYgKGV4dHJhY3R0 eXBlaW5mbyhkZXN0LCBpZCkgPT0gLTEpCisgICAgICByZXR1cm4gLTE7Cisg ICAgYXBwZW5kKGRlc3QsICJbXSIpOworICAgIHJldHVybiAxOworICAgIC8v IHBvaW50ZXI6CisgIGNhc2UgJ1AnOgorICAgIGlmIChleHRyYWN0dHlwZWlu Zm8oZGVzdCwgaWQpID09IC0xKQorICAgICAgcmV0dXJuIC0xOworICAgIGFw cGVuZChkZXN0LCAiKiIpOworICAgIHJldHVybiAxOworICAgIC8vIHJlZmVy ZW5jZToKKyAgY2FzZSAnUic6CisgICAgaWYgKGV4dHJhY3R0eXBlaW5mbyhk ZXN0LCBpZCkgPT0gLTEpCisgICAgICByZXR1cm4gLTE7CisgICAgYXBwZW5k KGRlc3QsICImIik7CisgICAgcmV0dXJuIDE7CisgICAgLy8gcmV0dXJuIHZh bHVlOgorICBjYXNlICdaJzoKKyAgICByZXR1cm4gZXh0cmFjdHR5cGVpbmZv KGRlc3QsIGlkKTsKKyAgICAvLyBvdXQ6CisgIGNhc2UgJ0onOgorICAgIGFw cGVuZChkZXN0LCAib3V0ICIpOworICAgIHJldHVybiBleHRyYWN0dHlwZWlu Zm8oZGVzdCwgaWQpOworICAgIC8vIGlub3V0OgorICBjYXNlICdLJzoKKyAg ICBhcHBlbmQoZGVzdCwgImlub3V0ICIpOworICAgIHJldHVybiBleHRyYWN0 dHlwZWluZm8oZGVzdCwgaWQpOworICAgIAorICAgIC8vIGVudW06CisgIGNh c2UgJ0UnOiBjYXNlICdUJzogY2FzZSAnRCc6IGNhc2UgJ0MnOiBjYXNlICdT JzogY2FzZSAnSSc6CisgICAgcmV0dXJuIGV4dHJhY3RpZGVudGlmaWVycyhk ZXN0LCBpZCk7CisgICAgCisgICAgLy8gYmFzaWMgdHlwZXM6CisgIGNhc2Ug J24nOiBhcHBlbmQoZGVzdCwgIm5vbmUiKTsgcmV0dXJuIDE7ICAvLyBldmVy IHVzZWQ/CisgIGNhc2UgJ3YnOiBhcHBlbmQoZGVzdCwgInZvaWQiKTsgcmV0 dXJuIDE7CisgIGNhc2UgJ2cnOiBhcHBlbmQoZGVzdCwgImJ5dGUiKTsgcmV0 dXJuIDE7CisgIGNhc2UgJ2gnOiBhcHBlbmQoZGVzdCwgInVieXRlIik7IHJl dHVybiAxOworICBjYXNlICdzJzogYXBwZW5kKGRlc3QsICJzaG9ydCIpOyBy ZXR1cm4gMTsKKyAgY2FzZSAndCc6IGFwcGVuZChkZXN0LCAidXNob3J0Iik7 IHJldHVybiAxOworICBjYXNlICdpJzogYXBwZW5kKGRlc3QsICJpbnQiKTsg cmV0dXJuIDE7CisgIGNhc2UgJ2snOiBhcHBlbmQoZGVzdCwgInVpbnQiKTsg cmV0dXJuIDE7CisgIGNhc2UgJ2wnOiBhcHBlbmQoZGVzdCwgImxvbmciKTsg cmV0dXJuIDE7CisgIGNhc2UgJ20nOiBhcHBlbmQoZGVzdCwgInVsb25nIik7 IHJldHVybiAxOworICBjYXNlICdmJzogYXBwZW5kKGRlc3QsICJmbG9hdCIp OyByZXR1cm4gMTsKKyAgY2FzZSAnZCc6IGFwcGVuZChkZXN0LCAiZG91Ymxl Iik7IHJldHVybiAxOworICBjYXNlICdlJzogYXBwZW5kKGRlc3QsICJyZWFs Iik7IHJldHVybiAxOworCisgIC8vIGltYWdpbmFyeSBhbmQgY29tcGxleDoK KyAgY2FzZSAnbyc6IGFwcGVuZChkZXN0LCAiaWZsb2F0Iik7IHJldHVybiAx OworICBjYXNlICdwJzogYXBwZW5kKGRlc3QsICJpZG91YmxlIik7IHJldHVy biAxOworICBjYXNlICdqJzogYXBwZW5kKGRlc3QsICJpcmVhbCIpOyByZXR1 cm4gMTsKKyAgY2FzZSAncSc6IGFwcGVuZChkZXN0LCAiY2Zsb2F0Iik7IHJl dHVybiAxOworICBjYXNlICdyJzogYXBwZW5kKGRlc3QsICJjZG91YmxlIik7 IHJldHVybiAxOworICBjYXNlICdjJzogYXBwZW5kKGRlc3QsICJjcmVhbCIp OyByZXR1cm4gMTsKKworICAvLyBvdGhlciB0eXBlczoKKyAgY2FzZSAnYic6 IGFwcGVuZChkZXN0LCAiYml0Iik7IHJldHVybiAxOworICBjYXNlICdhJzog YXBwZW5kKGRlc3QsICJjaGFyIik7IHJldHVybiAxOworICBjYXNlICd1Jzog YXBwZW5kKGRlc3QsICJ3Y2hhciIpOyByZXR1cm4gMTsKKyAgY2FzZSAndyc6 IGFwcGVuZChkZXN0LCAiZGNoYXIiKTsgcmV0dXJuIDE7CisKKyAgLy8gdHlw ZWluZm8sIGVycm9yLCBpbnN0YW5jZToKKyAgY2FzZSAnQCc6IHJldHVybiBl eHRyYWN0aWRlbnRpZmllcnMoZGVzdCwgaWQpOyAvLyBCVUc6IGlzIHRoaXMg cmlnaHQ/CisKKyAgZGVmYXVsdDogYXBwZW5kKGRlc3QsICJ1bmtub3duIik7 IHJldHVybiAxOworICB9Cit9CisKK2NoYXIqIGRfZGVtYW5nbGUoY29uc3Qg Y2hhciogc3ltYm9sXywgaW50IG9wdGlvbnMpIHsKKyAgU3RyaW5nIG91dHB1 dDsKKyAgU3RyaW5nIG1hbmdsZWQ7CisgIHVuc2lnbmVkIGNoYXIgaXNGdW5j ID0gMDsKKyAgY2hhciogc3ltYm9sOworICAvL3ByaW50ZigiJXM6ICIsIHN5 bWJvbCk7CisgIGlmIChzeW1ib2xfID09IE5VTEwpIHsKKyAgICAvL3ByaW50 ZigiTlVMTDFcbiIpOworICAgIHJldHVybiBOVUxMOworICB9IGVsc2UgaWYg KHN0cmNtcChzeW1ib2xfLCAiX0RtYWluIikgPT0gMCkgeworICAgIHJldHVy biBzdHJkdXAoIkQgbWFpbiIpOworICB9CisKKyAgc3ltYm9sID0geHN0cmR1 cChzeW1ib2xfKTsKKyAgbWFuZ2xlZC5sZW4gPSBzdHJsZW4oc3ltYm9sKTsK KyAgbWFuZ2xlZC5zdHIgPSBzeW1ib2w7CisgIG1hbmdsZWQucG9zID0gc3lt Ym9sOworCisgIG91dHB1dC5sZW4gPSAyOworICBvdXRwdXQuc3RyID0geG1h bGxvYyhvdXRwdXQubGVuKTsKKyAgb3V0cHV0LnBvcyA9IG91dHB1dC5zdHI7 CisKKyAgaWYgKHN5bWJvbCA9PSBzdHJzdHIoc3ltYm9sLCAiX0QiKSkgewor ICAgIG1hbmdsZWQucG9zICs9IDI7CisgICAgaXNGdW5jID0gMTsKKyAgfSBl bHNlIGlmIChzeW1ib2wgPT0gc3Ryc3RyKHN5bWJvbCwgIl9fQ2xhc3NfIikp IHsKKyAgICBtYW5nbGVkLnBvcyArPSA4OworICB9IGVsc2UgaWYgKHN5bWJv bCA9PSBzdHJzdHIoc3ltYm9sLCAiX19pbml0XyIpKSB7CisgICAgbWFuZ2xl ZC5wb3MgKz0gNzsKKyAgfSBlbHNlIGlmIChzeW1ib2wgPT0gc3Ryc3RyKHN5 bWJvbCwgIl9fdnRibF8iKSkgeworICAgIG1hbmdsZWQucG9zICs9IDc7Cisg IH0gZWxzZSBpZiAoc3ltYm9sID09IHN0cnN0cihzeW1ib2wsICJfX21vZGN0 b3JfIikpIHsKKyAgICBtYW5nbGVkLnBvcyArPSAxMDsKKyAgfSBlbHNlIGlm IChzeW1ib2wgPT0gc3Ryc3RyKHN5bWJvbCwgIl9fbW9kZHRvcl8iKSkgewor ICAgIG1hbmdsZWQucG9zICs9IDEwOworICB9IGVsc2UgaWYgKHN5bWJvbCA9 PSBzdHJzdHIoc3ltYm9sLCAiX19Nb2R1bGVJbmZvXyIpKSB7CisgICAgbWFu Z2xlZC5wb3MgKz0gMTM7CisgIH0gZWxzZSB7CisgICAgeGZyZWUob3V0cHV0 LnN0cik7CisgICAgeGZyZWUoc3ltYm9sKTsKKyAgICAvL3ByaW50ZigiTlVM TDJcbiIpOworICAgIHJldHVybiBOVUxMOworICB9CisgIAorICAKKyAgaWYg KGV4dHJhY3RpZGVudGlmaWVycygmb3V0cHV0LCAmbWFuZ2xlZCkgPCAwKSB7 CisgICAgeGZyZWUob3V0cHV0LnN0cik7CisgICAgeGZyZWUoc3ltYm9sKTsK KyAgICAvL3ByaW50ZigiTlVMTDNcbiIpOworICAgIHJldHVybiBOVUxMOwor ICB9CisKKworCisgIGFwcGVuZCgmb3V0cHV0LCAiKCIpOworICBpZiAoaXNG dW5jID09IDEgJiYgKm1hbmdsZWQucG9zID09ICdGJykgeworICAgIG1hbmds ZWQucG9zKys7CisgICAgd2hpbGUgKCptYW5nbGVkLnBvcyAhPSAnXDAnICYm ICptYW5nbGVkLnBvcyAhPSAnWicpIHsKKyAgICAgIGlmIChpc0Z1bmMgPT0g MSkgeworCWlzRnVuYysrOworICAgICAgfSBlbHNlIHsKKwlhcHBlbmQoJm91 dHB1dCwgIiwgIik7CisgICAgICB9CisgICAgICBpZiAoZXh0cmFjdHR5cGVp bmZvKCZvdXRwdXQsICZtYW5nbGVkKSA8IDApIHsKKwl4ZnJlZShvdXRwdXQu c3RyKTsKKyAgICB4ZnJlZShzeW1ib2wpOworCXJldHVybiBOVUxMOworICAg ICAgfQorICAgIH0KKyAgfQorICBhcHBlbmQoJm91dHB1dCwgIikiKTsKKwor ICAvL0RvZXNuJ3QgZGlzcGxheSB0aGUgcmV0dXJuIHR5cGUsIGJ1dCB3b3Vs ZG4ndCBiZSB0b28gaGFyZCB0byBkby4KKworICBhcHBlbmRfbGVuKCZvdXRw dXQsICIiLCAxKTsKKyAgc3RyX3Jlc2l6ZSgmb3V0cHV0LCAwKTsKKyAgLy9w cmludGYoIiVzXG4iLCBvdXRwdXQuc3RyKTsKKyAgeGZyZWUoc3ltYm9sKTsK KyAgcmV0dXJuIG91dHB1dC5zdHI7Cit9CisKK2NoYXIqIGRfc3ltX2RlbWFu Z2xlKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9s KSB7CisgIHJldHVybiBkX2RlbWFuZ2xlKGdzeW1ib2wtPm5hbWUsIDApOwor fQpkaWZmIC0tZ2l0IGEvZ2RiL2QtbGFuZy5oIGIvZ2RiL2QtbGFuZy5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MDQ1NzkKLS0t IC9kZXYvbnVsbAorKysgYi9nZGIvZC1sYW5nLmgKQEAgLTAsMCArMSwzOSBA QAorLyogQyBsYW5ndWFnZSBzdXBwb3J0IGRlZmluaXRpb25zIGZvciBHREIs IHRoZSBHTlUgZGVidWdnZXIuCisgICBDb3B5cmlnaHQgMTk5MiwgMTk5NCwg MTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMjAwMCwgMjAwMgorICAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJ bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgICBCb3N0b24s IE1BIDAyMTExLTEzMDcsIFVTQS4gICovCisKKworI2lmICFkZWZpbmVkIChE X0xBTkdfSCkKKyNkZWZpbmUgRF9MQU5HX0ggMQorCisjaW5jbHVkZSAic3lt dGFiLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIEQg TGFuZ3VhZ2Ugc3R1ZmYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKworY2hhciogZF9kZW1hbmdsZShjb25zdCBjaGFyKiBtYW5nbGVkLCBp bnQgb3B0aW9ucyk7CisKK2NoYXIqIGRfc3ltX2RlbWFuZ2xlKGNvbnN0IHN0 cnVjdCBnZW5lcmFsX3N5bWJvbF9pbmZvICpnc3ltYm9sKTsKKworaW50IGRf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisgICAgICAgIAkgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAorICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7CisjZW5kaWYgLyogIWRlZmluZWQg KERfTEFOR19IKSAqLwpkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFscHJpbnQuYyBi L2dkYi9kLXZhbHByaW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMzg4ZjE4MwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi9kLXZh bHByaW50LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qIFN1cHBvcnQgZm9yIHBy aW50aW5nIEQgdmFsdWVzIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisK KyAgIENvcHlyaWdodCAoQykgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNywKKyAgIDIwMDggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworI2luY2x1ZGUgImRlZnMuaCIKKyNpbmNsdWRlICJzeW10YWIuaCIKKyNp bmNsdWRlICJnZGJ0eXBlcy5oIgorI2luY2x1ZGUgImdkYmNvcmUuaCIKKyNp bmNsdWRlICJleHByZXNzaW9uLmgiCisjaW5jbHVkZSAidmFsdWUuaCIKKyNp bmNsdWRlICJkZW1hbmdsZS5oIgorI2luY2x1ZGUgInZhbHByaW50LmgiCisj aW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKKyNp bmNsdWRlICJjLWxhbmcuaCIKKyNpbmNsdWRlICJhbm5vdGF0ZS5oIgorI2lu Y2x1ZGUgImdkYl9zdHJpbmcuaCIKKworc3RhdGljIGludAorZHluYW1pY19h cnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCisJCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FE RFIgYWRkcmVzcywKKwkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAorCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCit7CisgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUp ID09IDIKKyAgICAgICYmIFRZUEVfQ09ERSAoVFlQRV9GSUVMRF9UWVBFICh0 eXBlLCAwKSkgPT0gVFlQRV9DT0RFX0lOVAorICAgICAgJiYgc3RyY21wIChU WVBFX0ZJRUxEX05BTUUgKHR5cGUsIDApLCAibGVuZ3RoIikgPT0gMAorICAg ICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDEpLCAicHRy IikgPT0gMCkKKyAgICB7CisgICAgICBDT1JFX0FERFIgYWRkcjsKKyAgICAg IHN0cnVjdCB0eXBlICplbHR0eXBlOworICAgICAgc3RydWN0IHR5cGUgKnRy dWVfdHlwZTsKKyAgICAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKKyAgICAg IHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOworICAgICAgY29uc3QgZ2RiX2J5 dGUgKnB0cmFkZHI7CisgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKyAgICAg IGludCBsZW5ndGg7CisKKyAgICAgIGxlbmd0aCA9IHVucGFja19maWVsZF9h c19sb25nICh0eXBlLCB2YWxhZGRyICsgZW1iZWRkZWRfb2Zmc2V0LCAwKTsK KworICAgICAgcHRyX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDEp OworICAgICAgZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VU X1RZUEUgKHB0cl90eXBlKSk7CisgICAgICBhZGRyID0gdW5wYWNrX3BvaW50 ZXIgKHB0cl90eXBlLCB2YWxhZGRyICtUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgMSkgLyA4ICsgZW1iZWRkZWRfb2Zmc2V0KTsKKyAgICAgIHRydWVfdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKGVsdHR5cGUpOworCisgICAgICB0cnVlX3R5 cGUgPSBsb29rdXBfYXJyYXlfcmFuZ2VfdHlwZSAodHJ1ZV90eXBlLCAwLCBs ZW5ndGggLSAxKTsKKyAgICAgIHZhbCA9IHZhbHVlX2F0KHRydWVfdHlwZSwg YWRkcik7CisgICAgICBwdHJhZGRyID0gdmFsdWVfY29udGVudHModmFsKTsK KworICAgICAgdmFsX3ByaW50ICh0cnVlX3R5cGUsCisJCSBwdHJhZGRyLCAw LAorCQkgYWRkciwKKwkJIHN0cmVhbSwgcmVjdXJzZSArIDEsIG9wdGlvbnMs IGN1cnJlbnRfbGFuZ3VhZ2UpOworICAgICAgcmV0dXJuIDE7CisgICAgfQor ICByZXR1cm4gMDsKK30KKworLyogUHJpbnQgZGF0YSBvZiB0eXBlIFRZUEUg bG9jYXRlZCBhdCBWQUxBRERSICh3aXRoaW4gR0RCKSwgd2hpY2ggY2FtZSBm cm9tCisgICB0aGUgaW5mZXJpb3IgYXQgYWRkcmVzcyBBRERSRVNTLCBvbnRv IHN0ZGlvIHN0cmVhbSBTVFJFQU0gYWNjb3JkaW5nIHRvCisgICBPUFRJT05T LiAgVGhlIGRhdGEgYXQgVkFMQUREUiBpcyBpbiB0YXJnZXQgYnl0ZSBvcmRl ci4KKworICAgSWYgdGhlIGRhdGEgYXJlIGEgc3RyaW5nIHBvaW50ZXIsIHJl dHVybnMgdGhlIG51bWJlciBvZiBzdHJpbmcgY2hhcmFjdGVycworICAgcHJp bnRlZC4gICovCisKK2ludAorZF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29m ZnNldCwKKyAgICAgICAgICAgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCit7 CisgIENIRUNLX1RZUEVERUYgKHR5cGUpOworICBzd2l0Y2ggKFRZUEVfQ09E RSAodHlwZSkpCisgICAgeworICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoK KyAgICAgIGlmIChkeW5hbWljX2FycmF5X3R5cGUgKHR5cGUsIHZhbGFkZHIs IGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgc3RyZWFtLAorCSAgcmVjdXJz ZSwgb3B0aW9ucykpCisJICBicmVhazsKKyAgICBkZWZhdWx0OgorCXJldHVy biBjX3ZhbF9wcmludCAodHlwZSwgdmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0 LCBhZGRyZXNzLCBzdHJlYW0sCisJCQkgICAgcmVjdXJzZSwgb3B0aW9ucyk7 CisgICAgfQorCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ2RiL2Rl ZnMuaCBiL2dkYi9kZWZzLmgKaW5kZXggYjk0NGZmYi4uZmUzMTkyNiAxMDA2 NDQKLS0tIGEvZ2RiL2RlZnMuaAorKysgYi9nZGIvZGVmcy5oCkBAIC0xODgs NiArMTg4LDcgQEAgZW51bSBsYW5ndWFnZQogICAgIGxhbmd1YWdlX2F1dG8s CQkvKiBQbGFjZWhvbGRlciBmb3IgYXV0b21hdGljIHNldHRpbmcgKi8KICAg ICBsYW5ndWFnZV9jLAkJCS8qIEMgKi8KICAgICBsYW5ndWFnZV9jcGx1cywJ CS8qIEMrKyAqLworICAgIGxhbmd1YWdlX2QsCQkJLyogRCAqLwogICAgIGxh bmd1YWdlX29iamMsCQkvKiBPYmplY3RpdmUtQyAqLwogICAgIGxhbmd1YWdl X2phdmEsCQkvKiBKYXZhICovCiAgICAgbGFuZ3VhZ2VfZm9ydHJhbiwJCS8q IEZvcnRyYW4gKi8KZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8g Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCmluZGV4IGU4ODA4MzguLjAxNjcxNzcg MTAwNjQ0Ci0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2Rv Yy9nZGIudGV4aW5mbwpAQCAtMjEzLDYgKzIxMywxMCBAQCBZb3UgY2FuIHVz ZSBAdmFsdWV7R0RCTn0gdG8gZGVidWcgcHJvZ3JhbXMgd3JpdHRlbiBpbiBD IGFuZCBDQHR7Kyt9LgogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVm e1N1cHBvcnRlZCBMYW5ndWFnZXMsLFN1cHBvcnRlZCBMYW5ndWFnZXN9Lgog Rm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBAcmVme0MsLEMgYW5kIEMrK30u CiAKK0BjaW5kZXggRAorU3VwcG9ydCBmb3IgRCBpcyBwYXJ0aWFsLiAgRm9y IGluZm9ybWF0aW9uIG9uIEQsIHNlZQorQHJlZntELCxEfS4KKwogQGNpbmRl eCBNb2R1bGEtMgogU3VwcG9ydCBmb3IgTW9kdWxhLTIgaXMgcGFydGlhbC4g IEZvciBpbmZvcm1hdGlvbiBvbiBNb2R1bGEtMiwgc2VlCiBAcmVme01vZHVs YS0yLCxNb2R1bGEtMn0uCkBAIC0xMDQxNCw2ICsxMDQxOCw5IEBAIEMgc291 cmNlIGZpbGUKIEBpdGVteCAuYysrCiBDQHR7Kyt9IHNvdXJjZSBmaWxlCiAK K0BpdGVtIC5kCitEIHNvdXJjZSBmaWxlCisKIEBpdGVtIC5tCiBPYmplY3Rp dmUtQyBzb3VyY2UgZmlsZQogCkBAIC0xMDY5MSw3ICsxMDY5OCw3IEBAIGJl aW5nIHNldCBhdXRvbWF0aWNhbGx5IGJ5IEB2YWx1ZXtHREJOfS4KIEBub2Rl IFN1cHBvcnRlZCBMYW5ndWFnZXMKIEBzZWN0aW9uIFN1cHBvcnRlZCBMYW5n dWFnZXMKIAotQHZhbHVle0dEQk59IHN1cHBvcnRzIEMsIENAdHsrK30sIE9i amVjdGl2ZS1DLCBGb3J0cmFuLCBKYXZhLCBQYXNjYWwsCitAdmFsdWV7R0RC Tn0gc3VwcG9ydHMgQywgQ0B0eysrfSwgRCwgT2JqZWN0aXZlLUMsIEZvcnRy YW4sIEphdmEsIFBhc2NhbCwKIGFzc2VtYmx5LCBNb2R1bGEtMiwgYW5kIEFk YS4KIEBjIFRoaXMgaXMgZmFsc2UgLi4uCiBTb21lIEB2YWx1ZXtHREJOfSBm ZWF0dXJlcyBtYXkgYmUgdXNlZCBpbiBleHByZXNzaW9ucyByZWdhcmRsZXNz IG9mIHRoZQpAQCAtMTA3MTAsNiArMTA3MTcsNyBAQCBsYW5ndWFnZSByZWZl cmVuY2Ugb3IgdHV0b3JpYWwuCiAKIEBtZW51CiAqIEM6OiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEMgYW5kIENAdHsrK30KKyogRDo6ICAgICAgICAg ICAgICAgICAgICAgICAgICAgRAogKiBPYmplY3RpdmUtQzo6ICAgICAgICAg ICAgICAgICBPYmplY3RpdmUtQwogKiBGb3J0cmFuOjogICAgICAgICAgICAg ICAgICAgICBGb3J0cmFuCiAqIFBhc2NhbDo6ICAgICAgICAgICAgICAgICAg ICAgIFBhc2NhbApAQCAtMTEyNDcsNiArMTEyNTUsMTQgQEAgSW4gdGhlIFBv d2VyUEMgYXJjaGl0ZWN0dXJlLCBAdmFsdWV7R0RCTn0gcHJvdmlkZXMgYSBz ZXQgb2YgcHNldWRvLXJlZ2lzdGVycwogdG8gaW5zcGVjdCBAY29kZXtfRGVj aW1hbDEyOH0gdmFsdWVzIHN0b3JlZCBpbiBmbG9hdGluZyBwb2ludCByZWdp c3RlcnMuCiBTZWUgQHJlZntQb3dlclBDLCxQb3dlclBDfSBmb3IgbW9yZSBk ZXRhaWxzLgogCitAbm9kZSBECitAc3Vic2VjdGlvbiBECisKK0BjaW5kZXgg RAorQHZhbHVle0dEQk59IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHByb2dyYW1z IHdyaXR0ZW4gaW4gRCBhbmQgY29tcGlsZWQgd2l0aAorR0RDLCBMREMgb3Ig RE1ELiBDdXJyZW50bHkgQHZhbHVle0dEQk59IHN1cHBvcnRzIG9ubHkgb25l IEQgc3BlY2lmaWMKK2ZlYXR1cmVzIC0gZHluYW1pYyBhcnJheXMuCisKIEBu b2RlIE9iamVjdGl2ZS1DCiBAc3Vic2VjdGlvbiBPYmplY3RpdmUtQwogCmRp ZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQu YwppbmRleCBmZmVhYWYyLi45M2Y4NTUyIDEwMDY0NAotLS0gYS9nZGIvZHdh cmYycmVhZC5jCisrKyBiL2dkYi9kd2FyZjJyZWFkLmMKQEAgLTc1MTUsNiAr NzUxNSw5IEBAIHNldF9jdV9sYW5ndWFnZSAodW5zaWduZWQgaW50IGxhbmcs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgIGNhc2UgRFdfTEFOR19DX3Bs dXNfcGx1czoKICAgICAgIGN1LT5sYW5ndWFnZSA9IGxhbmd1YWdlX2NwbHVz OwogICAgICAgYnJlYWs7CisgICAgY2FzZSBEV19MQU5HX0Q6CisgICAgICBj dS0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9kOworICAgICAgYnJlYWs7CiAgICAg Y2FzZSBEV19MQU5HX0ZvcnRyYW43NzoKICAgICBjYXNlIERXX0xBTkdfRm9y dHJhbjkwOgogICAgIGNhc2UgRFdfTEFOR19Gb3J0cmFuOTU6CkBAIC04MDgz LDcgKzgwODYsNyBAQCBkd2FyZl9kZWNvZGVfbGluZXMgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIGNoYXIgKmNvbXBfZGlyLCBiZmQgKmFiZmQsCiAgICAg ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBmZSA9ICZsaC0+ZmlsZV9uYW1lc1tmaWxlIC0gMV07 Ci0gICAgICAgICAgICAgICAgICAgIGlmIChmZS0+ZGlyX2luZGV4KQorICAg ICAgICAgICAgICAgICAgICBpZiAoZmUtPmRpcl9pbmRleCAmJiBsaC0+aW5j bHVkZV9kaXJzICE9IE5VTEwpCiAgICAgICAgICAgICAgICAgICAgICAgZGly ID0gbGgtPmluY2x1ZGVfZGlyc1tmZS0+ZGlyX2luZGV4IC0gMV07CiAgICAg ICAgICAgICAgICAgICAgIGlmICghZGVjb2RlX2Zvcl9wc3RfcCkKICAgICAg ICAgICAgICAgICAgICAgICB7CmRpZmYgLS1naXQgYS9nZGIvbGFuZ3VhZ2Uu YyBiL2dkYi9sYW5ndWFnZS5jCmluZGV4IDVkYmU4MWMuLmJjNmZkZWYgMTAw NjQ0Ci0tLSBhL2dkYi9sYW5ndWFnZS5jCisrKyBiL2dkYi9sYW5ndWFnZS5j CkBAIC00ODUsNiArNDg1LDcgQEAgYmlub3BfcmVzdWx0X3R5cGUgKHN0cnVj dCB2YWx1ZSAqdjEsIHN0cnVjdCB2YWx1ZSAqdjIpCiAgICAgewogICAgIGNh c2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAg IGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAg ICAgICBpZiAoVFlQRV9DT0RFICh0MSkgPT0gVFlQRV9DT0RFX0ZMVCkKIAly ZXR1cm4gVFlQRV9DT0RFICh0MikgPT0gVFlQRV9DT0RFX0ZMVCAmJiBsMiA+ IGwxID8KQEAgLTU5Niw2ICs1OTcsNyBAQCBpbnRlZ3JhbF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKICAgICB7CiAgICAgY2FzZSBsYW5ndWFnZV9jOgog ICAgIGNhc2UgbGFuZ3VhZ2VfY3BsdXM6CisgICAgY2FzZSBsYW5ndWFnZV9k OgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAgICAgIHJldHVybiAoVFlQ RV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfSU5UKSAmJgogCShUWVBFX0NP REUgKHR5cGUpICE9IFRZUEVfQ09ERV9FTlVNKSA/IDAgOiAxOwpAQCAtNjM2 LDYgKzYzOCw3IEBAIGNoYXJhY3Rlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSkKIAogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAgICBjYXNlIGxhbmd1YWdl X2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1 YWdlX29iamM6CiAgICAgICByZXR1cm4gKFRZUEVfQ09ERSAodHlwZSkgPT0g VFlQRV9DT0RFX0lOVCkgJiYKIAlUWVBFX0xFTkdUSCAodHlwZSkgPT0gc2l6 ZW9mIChjaGFyKQpAQCAtNjU4LDYgKzY2MSw3IEBAIHN0cmluZ190eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZSkKIAogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAg ICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoK ICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICAvKiBDIGRvZXMgbm90 IGhhdmUgZGlzdGluY3Qgc3RyaW5nIHR5cGUuICovCiAgICAgICByZXR1cm4g KDApOwpAQCAtNjc3LDYgKzY4MSw3IEBAIGJvb2xlYW5fdHlwZSAoc3RydWN0 IHR5cGUgKnR5cGUpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2VfYzoKICAg ICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3VhZ2VfZDoK ICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICAvKiBNaWdodCBiZSBt b3JlIGNsZWFubHkgaGFuZGxlZCBieSBoYXZpbmcgYQogICAgICAgICAgVFlQ RV9DT0RFX0lOVF9OT1RfQk9PTCBmb3IgKHRoZSBkZWxldGVkKSBDSElMTCBh bmQgc3VjaApAQCAtNzE0LDYgKzcxOSw3IEBAIHN0cnVjdHVyZWRfdHlwZSAo c3RydWN0IHR5cGUgKnR5cGUpCiAgICAgewogICAgIGNhc2UgbGFuZ3VhZ2Vf YzoKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFuZ3Vh Z2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX29iamM6CiAgICAgICByZXR1cm4g KFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUlVDVCkgfHwKIAko VFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfVU5JT04pIHx8CmRpZmYg LS1naXQgYS9nZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZpbGUuYwppbmRleCA4 ZjQ4NmUzLi5hZTRiYmMxIDEwMDY0NAotLS0gYS9nZGIvc3ltZmlsZS5jCisr KyBiL2dkYi9zeW1maWxlLmMKQEAgLTI1MTMsNiArMjUxMyw3IEBAIGluaXRf ZmlsZW5hbWVfbGFuZ3VhZ2VfdGFibGUgKHZvaWQpCiAgICAgICBmaWxlbmFt ZV9sYW5ndWFnZV90YWJsZSA9CiAJeG1hbGxvYyAoZmxfdGFibGVfc2l6ZSAq IHNpemVvZiAoKmZpbGVuYW1lX2xhbmd1YWdlX3RhYmxlKSk7CiAgICAgICBh ZGRfZmlsZW5hbWVfbGFuZ3VhZ2UgKCIuYyIsIGxhbmd1YWdlX2MpOworICAg ICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLmQiLCBsYW5ndWFnZV9kKTsK ICAgICAgIGFkZF9maWxlbmFtZV9sYW5ndWFnZSAoIi5DIiwgbGFuZ3VhZ2Vf Y3BsdXMpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdlICgiLmNjIiwg bGFuZ3VhZ2VfY3BsdXMpOwogICAgICAgYWRkX2ZpbGVuYW1lX2xhbmd1YWdl ICgiLmNwIiwgbGFuZ3VhZ2VfY3BsdXMpOwpkaWZmIC0tZ2l0IGEvZ2RiL3N5 bXRhYi5jIGIvZ2RiL3N5bXRhYi5jCmluZGV4IDk1MGJlMjYuLjExNDkwNjkg MTAwNjQ0Ci0tLSBhL2dkYi9zeW10YWIuYworKysgYi9nZGIvc3ltdGFiLmMK QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJzb3VyY2UuaCIKICNpbmNs dWRlICJmaWxlbmFtZXMuaCIJCS8qIGZvciBGSUxFTkFNRV9DTVAgKi8KICNp bmNsdWRlICJvYmpjLWxhbmcuaCIKKyNpbmNsdWRlICJkLWxhbmcuaCIKICNp bmNsdWRlICJhZGEtbGFuZy5oIgogI2luY2x1ZGUgInAtbGFuZy5oIgogI2lu Y2x1ZGUgImFkZHJtYXAuaCIKQEAgLTQxMyw2ICs0MTQsNyBAQCBzeW1ib2xf aW5pdF9sYW5ndWFnZV9zcGVjaWZpYyAoc3RydWN0IGdlbmVyYWxfc3ltYm9s X2luZm8gKmdzeW1ib2wsCiB7CiAgIGdzeW1ib2wtPmxhbmd1YWdlID0gbGFu Z3VhZ2U7CiAgIGlmIChnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9j cGx1cworICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf ZAogICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2 YQogICAgICAgfHwgZ3N5bWJvbC0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vfb2Jq YykKICAgICB7CkBAIC00ODMsNiArNDg1LDE1IEBAIHN5bWJvbF9maW5kX2Rl bWFuZ2xlZF9uYW1lIChzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5 bWJvbCwKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09IGxhbmd1YWdlX3Vu a25vd24pCiAgICAgZ3N5bWJvbC0+bGFuZ3VhZ2UgPSBsYW5ndWFnZV9hdXRv OwogCisgIGlmIChnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9kCisg ICAgICB8fCBnc3ltYm9sLT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hdXRvKSB7 CisgICAgZGVtYW5nbGVkID0gZF9kZW1hbmdsZShtYW5nbGVkLCAwKTsKKyAg ICBpZiAoZGVtYW5nbGVkICE9IE5VTEwpIHsKKyAgICAgIGdzeW1ib2wtPmxh bmd1YWdlID0gbGFuZ3VhZ2VfZDsKKyAgICAgIHJldHVybiBkZW1hbmdsZWQ7 CisgICAgfQorICB9CisKICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlID09IGxh bmd1YWdlX29iamMKICAgICAgIHx8IGdzeW1ib2wtPmxhbmd1YWdlID09IGxh bmd1YWdlX2F1dG8pCiAgICAgewpAQCAtNjkzLDYgKzcwNCw3IEBAIHN5bWJv bF9uYXR1cmFsX25hbWUgKGNvbnN0IHN0cnVjdCBnZW5lcmFsX3N5bWJvbF9p bmZvICpnc3ltYm9sKQogICBzd2l0Y2ggKGdzeW1ib2wtPmxhbmd1YWdlKQog ICAgIHsKICAgICBjYXNlIGxhbmd1YWdlX2NwbHVzOgorICAgIGNhc2UgbGFu Z3VhZ2VfZDoKICAgICBjYXNlIGxhbmd1YWdlX2phdmE6CiAgICAgY2FzZSBs YW5ndWFnZV9vYmpjOgogICAgICAgaWYgKGdzeW1ib2wtPmxhbmd1YWdlX3Nw ZWNpZmljLmNwbHVzX3NwZWNpZmljLmRlbWFuZ2xlZF9uYW1lICE9IE5VTEwp CkBAIC03MTgsNiArNzMwLDcgQEAgc3ltYm9sX2RlbWFuZ2xlZF9uYW1lIChj b25zdCBzdHJ1Y3QgZ2VuZXJhbF9zeW1ib2xfaW5mbyAqZ3N5bWJvbCkKICAg c3dpdGNoIChnc3ltYm9sLT5sYW5ndWFnZSkKICAgICB7CiAgICAgY2FzZSBs YW5ndWFnZV9jcGx1czoKKyAgICBjYXNlIGxhbmd1YWdlX2Q6CiAgICAgY2Fz ZSBsYW5ndWFnZV9qYXZhOgogICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoKICAg ICAgIGlmIChnc3ltYm9sLT5sYW5ndWFnZV9zcGVjaWZpYy5jcGx1c19zcGVj aWZpYy5kZW1hbmdsZWRfbmFtZSAhPSBOVUxMKQpAQCAtMTI2Myw3ICsxMjc2 LDcgQEAgbG9va3VwX3N5bWJvbF9pbl9sYW5ndWFnZSAoY29uc3QgY2hhciAq bmFtZSwgY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaywKIAogICBtb2RpZmll ZF9uYW1lID0gbmFtZTsKIAotICAvKiBJZiB3ZSBhcmUgdXNpbmcgQysrIG9y IEphdmEsIGRlbWFuZ2xlIHRoZSBuYW1lIGJlZm9yZSBkb2luZyBhIGxvb2t1 cCwgc28KKyAgLyogSWYgd2UgYXJlIHVzaW5nIEMrKywgRCwgb3IgSmF2YSwg ZGVtYW5nbGUgdGhlIG5hbWUgYmVmb3JlIGRvaW5nIGEgbG9va3VwLCBzbwog ICAgICB3ZSBjYW4gYWx3YXlzIGJpbmFyeSBzZWFyY2guICovCiAgIGlmIChs YW5nID09IGxhbmd1YWdlX2NwbHVzKQogICAgIHsKQEAgLTEyODYsNiArMTI5 OSwxNiBAQCBsb29rdXBfc3ltYm9sX2luX2xhbmd1YWdlIChjb25zdCBjaGFy ICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLAogCSAgICB9CiAJ fQogICAgIH0KKyAgZWxzZSBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFu Z3VhZ2UgPT0gbGFuZ3VhZ2VfZCkKKyAgICB7CisgICAgICBkZW1hbmdsZWRf bmFtZSA9IGRfZGVtYW5nbGUgKG5hbWUsIDApOworICAgICAgaWYgKGRlbWFu Z2xlZF9uYW1lKQorCXsKKwkgIG1hbmdsZWRfbmFtZSA9IG5hbWU7CisJICBt b2RpZmllZF9uYW1lID0gZGVtYW5nbGVkX25hbWU7CisJICBtYWtlX2NsZWFu dXAgKHhmcmVlLCBkZW1hbmdsZWRfbmFtZSk7CisJfQorICAgIH0KICAgZWxz ZSBpZiAobGFuZyA9PSBsYW5ndWFnZV9qYXZhKQogICAgIHsKICAgICAgIGRl bWFuZ2xlZF9uYW1lID0gY3BsdXNfZGVtYW5nbGUgKG5hbWUsCkBAIC0xNzMy LDYgKzE3NTUsNyBAQCBzeW1ib2xfbWF0Y2hlc19kb21haW4gKGVudW0gbGFu Z3VhZ2Ugc3ltYm9sX2xhbmd1YWdlLAogICAgICBBIEphdmEgY2xhc3MgZGVj bGFyYXRpb24gYWxzbyBkZWZpbmVzIGEgdHlwZWRlZiBmb3IgdGhlIGNsYXNz LgogICAgICBTaW1pbGFybHksIGFueSBBZGEgdHlwZSBkZWNsYXJhdGlvbiBp bXBsaWNpdGx5IGRlZmluZXMgYSB0eXBlZGVmLiAgKi8KICAgaWYgKHN5bWJv bF9sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cworICAgICAgfHwgc3ltYm9s X2xhbmd1YWdlID09IGxhbmd1YWdlX2QKICAgICAgIHx8IHN5bWJvbF9sYW5n dWFnZSA9PSBsYW5ndWFnZV9qYXZhCiAgICAgICB8fCBzeW1ib2xfbGFuZ3Vh Z2UgPT0gbGFuZ3VhZ2VfYWRhKQogICAgIHsK --Multipart=_Thu__24_Dec_2009_01_56_17_+0200_blz8JQbrM0fdr5lF--