From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25913 invoked by alias); 8 Aug 2012 08:31:11 -0000 Received: (qmail 25903 invoked by uid 22791); 8 Aug 2012 08:31:10 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,MSGID_MULTIPLE_AT,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 08 Aug 2012 08:30:56 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.21]) by service87.mimecast.com; Wed, 08 Aug 2012 09:30:54 +0100 Received: from shawin053 ([10.164.2.89]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.0); Wed, 8 Aug 2012 09:32:29 +0100 From: "Terry Guo" To: Cc: "'Jonathan Larmour'" Subject: [Patch] Enable GDB remote protocol to support zlib-compressed xml Date: Wed, 08 Aug 2012 08:31:00 -0000 Message-ID: <000401cd7540$59679610$0c36c230$@guo@arm.com> MIME-Version: 1.0 X-MC-Unique: 112080809305418301 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0005_01CD7583.678AD610" 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: 2012-08/txt/msg00249.txt.bz2 This is a multi-part message in MIME format. ------=_NextPart_000_0005_01CD7583.678AD610 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Content-length: 1492 Hi, This patch intends to implement a new feature discussed in thread http://sourceware.org/ml/gdb-patches/2012-06/msg00271.html. With this patch, stub can return host gdb with zlib-compressed object which consumes less space and communication overhead compared to its uncompressed format. A minor change from our discussion is that "compressedXML" is replaced with "compressedXfer" which I think is more representative because we may transfer something other than XML file. Please help to review and comment this patch. Thanks in advance. BR, Terry gdb/doc/ChangeLog: 2012-08-07 Terry Guo * gdb.texinfo (General Query Packets): Document new=20 compressedXfer stub feature. (General Query Packets): Document new zread packets. gdb/ChangeLog: 2012-08-07 Terry Guo * defs.h (gdb_zlib_error): Declare. * utils.c (gdb_zlib_error): New function. * remote.c (struct remote_state): New field has_cmprs_xfer. (enum packet_cmprs_xfer): New enum. (struct packet_config): New field xfer_status. (add_packet_config_cmd): Initialize the field xfer_status. (remote_packet_is_cmprs_xfer): New function. (remote_compressed_xfer_feature): New function. (remote_protocol_features): New feature compressedXfer. (remote_read_qxfer): Try zread and fallback to plain read when fails. * target.c (target_decompress_buf): New function. (target_read_stralloc): Decompress buffer first if any. * target.h (remote_packet_is_cmprs_xfer): Declare.= ------=_NextPart_000_0005_01CD7583.678AD610 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="gdb-zlib-compressed-object-v3.patch" Content-Disposition: attachment; filename="gdb-zlib-compressed-object-v3.patch" Content-length: 22916 ZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5oDQppbmRleCAx YzZmYTc5Li4xNDU3NjI0IDEwMDY0NA0KLS0tIGEvZ2RiL2RlZnMuaA0KKysr IGIvZ2RiL2RlZnMuaA0KQEAgLTI5MSw2ICsyOTEsOCBAQCBleHRlcm4gdm9p ZCBzZXRfZGlzcGxheV90aW1lIChpbnQpOw0KIA0KIGV4dGVybiB2b2lkIHNl dF9kaXNwbGF5X3NwYWNlIChpbnQpOw0KIA0KK2V4dGVybiB2b2lkIGdkYl96 bGliX2Vycm9yIChpbnQpOw0KKw0KIC8qIENsZWFudXAgdXRpbGl0aWVzLiAg Ki8NCiANCiAjaW5jbHVkZSAiY2xlYW51cHMuaCINCmRpZmYgLS1naXQgYS9n ZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbw0KaW5k ZXggYTkyZGY4Ni4uYzg3NzcxMCAxMDA2NDQNCi0tLSBhL2dkYi9kb2MvZ2Ri LnRleGluZm8NCisrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8NCkBAIC0zNjcw NCw2ICszNjcwNCwxMSBAQCBUaGVzZSBhcmUgdGhlIGN1cnJlbnRseSBkZWZp bmVkIHN0dWIgZmVhdHVyZXMgYW5kIHRoZWlyIHByb3BlcnRpZXM6DQogQHRh YiBAc2FtcHstfQ0KIEB0YWIgTm8NCiANCitAaXRlbSBAc2FtcHtjb21wcmVz c2VkWGZlcn0NCitAdGFiIE5vDQorQHRhYiBAc2FtcHstfQ0KK0B0YWIgWWVz DQorDQogQGVuZCBtdWx0aXRhYmxlDQogDQogVGhlc2UgYXJlIHRoZSBjdXJy ZW50bHkgZGVmaW5lZCBzdHViIGZlYXR1cmVzLCBpbiBtb3JlIGRldGFpbDoN CkBAIC0zNjg1OCw2ICszNjg2MywxMyBAQCBTZWUgQHJlZntCeXRlY29kZSBE ZXNjcmlwdGlvbnN9IGZvciBkZXRhaWxzIGFib3V0IHRoZSBieXRlY29kZS4N CiBUaGUgcmVtb3RlIHN0dWIgc3VwcG9ydHMgcnVubmluZyBhIGJyZWFrcG9p bnQncyBjb21tYW5kIGxpc3QgaXRzZWxmLA0KIHJhdGhlciB0aGFuIHJlcG9y dGluZyB0aGUgaGl0IHRvIEB2YWx1ZXtHREJOfS4NCiANCitAaXRlbSBjb21w cmVzc2VkWGZlcg0KK1RoZSByZW1vdGUgc3R1YiBjYW4gcmVwbHkgR0RCIEBz YW1we3FYZmVyOm9iamVjdDp6cmVhZDphbm5leDpvZmZzZXQsbGVuZ3RofQ0K KyhAcHhyZWZ7cVhmZXIgcmVhZH0pIHJlcXVlc3Qgd2l0aCBjb250ZW50cyBj b21wcmVzc2VkIGluIHpsaWIgZm9ybWF0IHJhdGhlcg0KK3RoYW4gdGhlIHBs YWluIGZvcm1hdC4gIFRoaXMgZG9lc24ndCBtZWFuIGFsbCB0aGUgcmVwbGll cyB3aWxsIGJlIGluIGNvbXByZXNzZWQNCitmb3JtYXQuICBJbiB0aGUgZXZl bnQgb2YgdGhpcyBmZWF0dXJlLCB0aGUgaG9zdCBHREIgd2lsbCBhbHdheXMg dHJ5IEBzYW1we3pyZWFkfQ0KK2ZpcnN0IGFuZCBmYWxsIGJhY2sgdG8gcGxh aW4gQHNhbXB7cmVhZH0gd2hlbiBmYWlscy4NCisNCiBAZW5kIHRhYmxlDQog DQogQGl0ZW0gcVN5bWJvbDo6DQpAQCAtMzY5NTQsNiArMzY5NjYsNyBAQCBw YWNrZXRzLikNCiBAeHJlZntUcmFjZXBvaW50IFBhY2tldHN9Lg0KIA0KIEBp dGVtIHFYZmVyOkB2YXJ7b2JqZWN0fTpyZWFkOkB2YXJ7YW5uZXh9OkB2YXJ7 b2Zmc2V0fSxAdmFye2xlbmd0aH0NCitAaXRlbSBxWGZlcjpAdmFye29iamVj dH06enJlYWQ6QHZhcnthbm5leH06QHZhcntvZmZzZXR9LEB2YXJ7bGVuZ3Ro fQ0KIEBjaW5kZXggcmVhZCBzcGVjaWFsIG9iamVjdCwgcmVtb3RlIHJlcXVl c3QNCiBAY2luZGV4IEBzYW1we3FYZmVyfSBwYWNrZXQNCiBAYW5jaG9ye3FY ZmVyIHJlYWR9DQpAQCAtMzY5NjMsNiArMzY5NzYsMTIgQEAgc3RhcnRpbmcg YXQgQHZhcntvZmZzZXR9IGJ5dGVzIGludG8gdGhlIGRhdGEuICBUaGUgY29u dGVudCBhbmQNCiBlbmNvZGluZyBvZiBAdmFye2FubmV4fSBpcyBzcGVjaWZp YyB0byBAdmFye29iamVjdH07IGl0IGNhbiBzdXBwbHkNCiBhZGRpdGlvbmFs IGRldGFpbHMgYWJvdXQgd2hhdCBkYXRhIHRvIGFjY2Vzcy4NCiANCitUaGUg QHZhcnt6cmVhZH0gd29ya3MgYXMgdGhlIEB2YXJ7cmVhZH0gZXhjZXB0IHRo YXQgdGhlIHRyYW5zZmVycmVkIG9iamVjdHMNCitzaG91bGQgYmUgemxpYi1j b21wcmVzc2VkLiAgVGhpcyBjYW4gZW5hYmxlIHN0dWIgdG8gc2F2ZSBzcGFj ZXMgYnkNCitjb21wcmlzaW5nIHByZS1idWlsdCBjb250ZW50cyBpbiB6bGli IGZvcm1hdCBpbnN0ZWFkIG9mIHBsYWluIGZvcm1hdC4gVGhlDQorY29tcHJl c3NlZCBmb3JtYXQgY2FuIGFsc28gcmVkdWNlIHRoZSBjb21tdW5pY2F0aW9u IG92ZXJoZWFkLiAgVGhlIEB2YXJ7enJlYWR9DQorc2hvdWxkIGJlIHVzZWQg b25seSB3aGVuIHRoZSBob3N0IGdkYiBpcyBidWlsdCB3aXRoIGFwcHJvcHJp YXRlIHpsaWIgbGlicmFyeS4NCisNCiBIZXJlIGFyZSB0aGUgc3BlY2lmaWMg cmVxdWVzdHMgb2YgdGhpcyBmb3JtIGRlZmluZWQgc28gZmFyLiAgQWxsDQog QHNhbXB7cVhmZXI6QHZhcntvYmplY3R9OnJlYWQ6QGRvdHN7fX0gcmVxdWVz dHMgdXNlIHRoZSBzYW1lIHJlcGx5DQogZm9ybWF0cywgbGlzdGVkIGJlbG93 Lg0KZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYw0K aW5kZXggMWM5MzY3ZC4uNTNhNWVkOCAxMDA2NDQNCi0tLSBhL2dkYi9yZW1v dGUuYw0KKysrIGIvZ2RiL3JlbW90ZS5jDQpAQCAtMzUzLDYgKzM1Myw5IEBA IHN0cnVjdCByZW1vdGVfc3RhdGUNCiAgIC8qIE5vbnplcm8gaWYgdGhlIHVz ZXIgaGFzIHByZXNzZWQgQ3RybC1DLCBidXQgdGhlIHRhcmdldCBoYXNuJ3QN CiAgICAgIHJlc3BvbmRlZCB0byB0aGF0LiAgKi8NCiAgIGludCBjdHJsY19w ZW5kaW5nX3A7DQorDQorICAvKiBOb256ZXJvIGlmIHRoZSBzdHViIHJlcG9y dHMgc3VwcG9ydCBmb3IgemxpYi1jb21wcmVzc2VkIHRyYW5zZmVyLiAgKi8N CisgIGludCBoYXNfY21wcnNfeGZlcjsNCiB9Ow0KIA0KIC8qIFByaXZhdGUg ZGF0YSB0aGF0IHdlJ2xsIHN0b3JlIGluIChzdHJ1Y3QgdGhyZWFkX2luZm8p LT5wcml2YXRlLiAgKi8NCkBAIC0xMDQzLDEyICsxMDQ2LDIwIEBAIGVudW0g cGFja2V0X3N1cHBvcnQNCiAgICAgUEFDS0VUX0RJU0FCTEUNCiAgIH07DQog DQorZW51bSBwYWNrZXRfY21wcnNfeGZlcg0KKyAgew0KKyAgICBDTVBSU19Y RkVSX0RJU0FCTEUgPSAwLA0KKyAgICBDTVBSU19YRkVSX0VOQUJMRSwNCisg ICAgQ01QUlNfWEZFUl9VTktOT1dODQorICB9Ow0KKw0KIHN0cnVjdCBwYWNr ZXRfY29uZmlnDQogICB7DQogICAgIGNvbnN0IGNoYXIgKm5hbWU7DQogICAg IGNvbnN0IGNoYXIgKnRpdGxlOw0KICAgICBlbnVtIGF1dG9fYm9vbGVhbiBk ZXRlY3Q7DQogICAgIGVudW0gcGFja2V0X3N1cHBvcnQgc3VwcG9ydDsNCisg ICAgZW51bSBwYWNrZXRfY21wcnNfeGZlciB4ZmVyX3N0YXR1czsNCiAgIH07 DQogDQogLyogQW5hbHl6ZSBhIHBhY2tldCdzIHJldHVybiB2YWx1ZSBhbmQg dXBkYXRlIHRoZSBwYWNrZXQgY29uZmlnDQpAQCAtMTEyMiw2ICsxMTMzLDcg QEAgYWRkX3BhY2tldF9jb25maWdfY21kIChzdHJ1Y3QgcGFja2V0X2NvbmZp ZyAqY29uZmlnLCBjb25zdCBjaGFyICpuYW1lLA0KICAgY29uZmlnLT50aXRs ZSA9IHRpdGxlOw0KICAgY29uZmlnLT5kZXRlY3QgPSBBVVRPX0JPT0xFQU5f QVVUTzsNCiAgIGNvbmZpZy0+c3VwcG9ydCA9IFBBQ0tFVF9TVVBQT1JUX1VO S05PV047DQorICBjb25maWctPnhmZXJfc3RhdHVzID0gQ01QUlNfWEZFUl9V TktOT1dOOw0KICAgc2V0X2RvYyA9IHhzdHJwcmludGYgKCJTZXQgdXNlIG9m IHJlbW90ZSBwcm90b2NvbCBgJXMnICglcykgcGFja2V0IiwNCiAJCQluYW1l LCB0aXRsZSk7DQogICBzaG93X2RvYyA9IHhzdHJwcmludGYgKCJTaG93IGN1 cnJlbnQgdXNlIG9mIHJlbW90ZSAiDQpAQCAtMTM4MCw2ICsxMzkyLDc0IEBA IHNob3dfcmVtb3RlX3Byb3RvY29sX1pfcGFja2V0X2NtZCAoc3RydWN0IHVp X2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwNCiAgICAgfQ0KIH0NCiANCisv KiBSZXR1cm4gdG8gdGFyZ2V0IHdoZXRoZXIgdGhlIGN1cnJlbnQgb2JqIGlz IHRyYW5zZmVycmVkIGluIHpsaWItY29tcHJlc3NlZA0KKyAgIGZvcm1hdC4g ICovDQorDQoraW50DQorcmVtb3RlX3BhY2tldF9pc19jbXByc194ZmVyIChl bnVtIHRhcmdldF9vYmplY3Qgb2JqLCBjb25zdCBjaGFyICphbm5leCwNCisJ CQkgICAgIGludCB0eXBlX3JlYWQpDQorew0KKyAgc3dpdGNoIChvYmopDQor ICAgIHsNCisgICAgY2FzZSBUQVJHRVRfT0JKRUNUX1NQVToNCisgICAgICBp ZiAodHlwZV9yZWFkKQ0KKwlyZXR1cm4gKHJlbW90ZV9wcm90b2NvbF9wYWNr ZXRzW1BBQ0tFVF9xWGZlcl9zcHVfcmVhZF0ueGZlcl9zdGF0dXMNCisJCT09 IENNUFJTX1hGRVJfRU5BQkxFKTsNCisgICAgICBlbHNlDQorCXJldHVybiAo cmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FYZmVyX3NwdV93cml0 ZV0ueGZlcl9zdGF0dXMNCisJCT09IENNUFJTX1hGRVJfRU5BQkxFKTsNCisg ICAgY2FzZSBUQVJHRVRfT0JKRUNUX1NJR05BTF9JTkZPOg0KKyAgICAgIGlm ICh0eXBlX3JlYWQpDQorCXJldHVybiAocmVtb3RlX3Byb3RvY29sX3BhY2tl dHNbUEFDS0VUX3FYZmVyX3NpZ2luZm9fcmVhZF0ueGZlcl9zdGF0dXMNCisJ CT09IENNUFJTX1hGRVJfRU5BQkxFKTsNCisgICAgICBlbHNlDQorCXJldHVy biAocmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FYZmVyX3NpZ2lu Zm9fd3JpdGVdLnhmZXJfc3RhdHVzDQorCQk9PSBDTVBSU19YRkVSX0VOQUJM RSk7DQorICAgIGNhc2UgVEFSR0VUX09CSkVDVF9TVEFUSUNfVFJBQ0VfREFU QToNCisgICAgICBpZiAodHlwZV9yZWFkKQ0KKwlyZXR1cm4NCisJICAocmVt b3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FYZmVyX3N0YXRpY3RyYWNl X3JlYWRdLnhmZXJfc3RhdHVzDQorCSAgID09IENNUFJTX1hGRVJfRU5BQkxF KTsNCisgICAgICBlbHNlDQorCXJldHVybiAwOw0KKyAgICBjYXNlIFRBUkdF VF9PQkpFQ1RfQVVYVjoNCisgICAgICByZXR1cm4gKHJlbW90ZV9wcm90b2Nv bF9wYWNrZXRzW1BBQ0tFVF9xWGZlcl9hdXh2XS54ZmVyX3N0YXR1cw0KKwkg ICAgICA9PSBDTVBSU19YRkVSX0VOQUJMRSk7DQorICAgIGNhc2UgVEFSR0VU X09CSkVDVF9BVkFJTEFCTEVfRkVBVFVSRVM6DQorICAgICAgcmV0dXJuIChy ZW1vdGVfcHJvdG9jb2xfcGFja2V0c1tQQUNLRVRfcVhmZXJfZmVhdHVyZXNd LnhmZXJfc3RhdHVzDQorCSAgICAgID09IENNUFJTX1hGRVJfRU5BQkxFKTsN CisgICAgY2FzZSBUQVJHRVRfT0JKRUNUX0xJQlJBUklFUzoNCisgICAgICBy ZXR1cm4gKHJlbW90ZV9wcm90b2NvbF9wYWNrZXRzW1BBQ0tFVF9xWGZlcl9s aWJyYXJpZXNdLnhmZXJfc3RhdHVzDQorCSAgICAgID09IENNUFJTX1hGRVJf RU5BQkxFKTsNCisgICAgY2FzZSBUQVJHRVRfT0JKRUNUX0xJQlJBUklFU19T VlI0Og0KKyAgICAgIHJldHVybiAocmVtb3RlX3Byb3RvY29sX3BhY2tldHNb UEFDS0VUX3FYZmVyX2xpYnJhcmllc19zdnI0XS54ZmVyX3N0YXR1cw0KKwkg ICAgICA9PSBDTVBSU19YRkVSX0VOQUJMRSk7DQorICAgIGNhc2UgVEFSR0VU X09CSkVDVF9NRU1PUllfTUFQOg0KKyAgICAgIHJldHVybiAocmVtb3RlX3By b3RvY29sX3BhY2tldHNbUEFDS0VUX3FYZmVyX21lbW9yeV9tYXBdLnhmZXJf c3RhdHVzDQorCSAgICAgID09IENNUFJTX1hGRVJfRU5BQkxFKTsNCisgICAg Y2FzZSBUQVJHRVRfT0JKRUNUX09TREFUQToNCisgICAgICBnZGJfYXNzZXJ0 IChyZW1vdGVfZGVzYyk7DQorICAgICAgcmV0dXJuIChyZW1vdGVfcHJvdG9j b2xfcGFja2V0c1tQQUNLRVRfcVhmZXJfb3NkYXRhXS54ZmVyX3N0YXR1cw0K KwkgICAgICA9PSBDTVBSU19YRkVSX0VOQUJMRSk7DQorICAgIGNhc2UgVEFS R0VUX09CSkVDVF9USFJFQURTOg0KKyAgICAgIGdkYl9hc3NlcnQgKGFubmV4 ID09IE5VTEwpOw0KKyAgICAgIHJldHVybiAocmVtb3RlX3Byb3RvY29sX3Bh Y2tldHNbUEFDS0VUX3FYZmVyX3RocmVhZHNdLnhmZXJfc3RhdHVzDQorCSAg ICAgID09IENNUFJTX1hGRVJfRU5BQkxFKTsNCisgICAgY2FzZSBUQVJHRVRf T0JKRUNUX1RSQUNFRlJBTUVfSU5GTzoNCisgICAgICBnZGJfYXNzZXJ0IChh bm5leCA9PSBOVUxMKTsNCisgICAgICByZXR1cm4gKHJlbW90ZV9wcm90b2Nv bF9wYWNrZXRzW1BBQ0tFVF9xWGZlcl90cmFjZWZyYW1lX2luZm9dLnhmZXJf c3RhdHVzDQorCSAgICAgID09IENNUFJTX1hGRVJfRU5BQkxFKTsNCisgICAg Y2FzZSBUQVJHRVRfT0JKRUNUX0ZEUElDOg0KKyAgICAgIHJldHVybiAocmVt b3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FYZmVyX2ZkcGljXS54ZmVy X3N0YXR1cw0KKwkgICAgICA9PSBDTVBSU19YRkVSX0VOQUJMRSk7DQorICAg IGNhc2UgVEFSR0VUX09CSkVDVF9PUEVOVk1TX1VJQjoNCisgICAgICByZXR1 cm4gKHJlbW90ZV9wcm90b2NvbF9wYWNrZXRzW1BBQ0tFVF9xWGZlcl91aWJd LnhmZXJfc3RhdHVzDQorCSAgICAgID09IENNUFJTX1hGRVJfRU5BQkxFKTsN CisgICAgZGVmYXVsdDoNCisgICAgICByZXR1cm4gMDsNCisgICAgfQ0KK307 DQorDQogLyogU2hvdWxkIHdlIHRyeSB0aGUgJ1RocmVhZEluZm8nIHF1ZXJ5 IHBhY2tldD8NCiANCiAgICBUaGlzIHZhcmlhYmxlIChOT1QgYXZhaWxhYmxl IHRvIHRoZSB1c2VyOiBhdXRvLWRldGVjdCBvbmx5ISkNCkBAIC0zODc3LDYg KzM5NTcsMTYgQEAgcmVtb3RlX3N0cmluZ190cmFjaW5nX2ZlYXR1cmUgKGNv bnN0IHN0cnVjdCBwcm90b2NvbF9mZWF0dXJlICpmZWF0dXJlLA0KICAgcnMt PnN0cmluZ190cmFjaW5nID0gKHN1cHBvcnQgPT0gUEFDS0VUX0VOQUJMRSk7 DQogfQ0KIA0KK3N0YXRpYyB2b2lkDQorcmVtb3RlX2NvbXByZXNzZWRfeGZl cl9mZWF0dXJlIChjb25zdCBzdHJ1Y3QgcHJvdG9jb2xfZmVhdHVyZSAqZmVh dHVyZSwNCisJCQkJZW51bSBwYWNrZXRfc3VwcG9ydCBzdXBwb3J0LA0KKwkJ CQljb25zdCBjaGFyICp2YWx1ZSkNCit7DQorICBzdHJ1Y3QgcmVtb3RlX3N0 YXRlICpycyA9IGdldF9yZW1vdGVfc3RhdGUgKCk7DQorDQorICBycy0+aGFz X2NtcHJzX3hmZXIgPSAoc3VwcG9ydCAhPSBQQUNLRVRfRElTQUJMRSk7DQor fQ0KKw0KIHN0YXRpYyBzdHJ1Y3QgcHJvdG9jb2xfZmVhdHVyZSByZW1vdGVf cHJvdG9jb2xfZmVhdHVyZXNbXSA9IHsNCiAgIHsgIlBhY2tldFNpemUiLCBQ QUNLRVRfRElTQUJMRSwgcmVtb3RlX3BhY2tldF9zaXplLCAtMSB9LA0KICAg eyAicVhmZXI6YXV4djpyZWFkIiwgUEFDS0VUX0RJU0FCTEUsIHJlbW90ZV9z dXBwb3J0ZWRfcGFja2V0LA0KQEAgLTM5NDQsNiArNDAzNCw3IEBAIHN0YXRp YyBzdHJ1Y3QgcHJvdG9jb2xfZmVhdHVyZSByZW1vdGVfcHJvdG9jb2xfZmVh dHVyZXNbXSA9IHsNCiAgIHsgIlFBZ2VudCIsIFBBQ0tFVF9ESVNBQkxFLCBy ZW1vdGVfc3VwcG9ydGVkX3BhY2tldCwgUEFDS0VUX1FBZ2VudH0sDQogICB7 ICJ0cmFjZW56IiwgUEFDS0VUX0RJU0FCTEUsDQogICAgIHJlbW90ZV9zdHJp bmdfdHJhY2luZ19mZWF0dXJlLCAtMSB9LA0KKyAgeyAiY29tcHJlc3NlZFhm ZXIiLCBQQUNLRVRfRElTQUJMRSwgcmVtb3RlX2NvbXByZXNzZWRfeGZlcl9m ZWF0dXJlLCAtMSB9LA0KIH07DQogDQogc3RhdGljIGNoYXIgKnJlbW90ZV9z dXBwb3J0X3htbDsNCkBAIC04NDQzLDkgKzg1MzQsMTIgQEAgcmVtb3RlX3Jl YWRfcXhmZXIgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsIGNvbnN0IGNoYXIg Km9iamVjdF9uYW1lLA0KICAgc3RhdGljIGNoYXIgKmZpbmlzaGVkX29iamVj dDsNCiAgIHN0YXRpYyBjaGFyICpmaW5pc2hlZF9hbm5leDsNCiAgIHN0YXRp YyBVTE9OR0VTVCBmaW5pc2hlZF9vZmZzZXQ7DQorICBpbnQgeGZlcl9vayA9 IDE7DQorICBzdHJ1Y3QgcGFja2V0X2NvbmZpZyB6cGFja2V0ID0gKnBhY2tl dDsNCisgIGNoYXIgKnpuYW1lID0gTlVMTDsNCiANCiAgIHN0cnVjdCByZW1v dGVfc3RhdGUgKnJzID0gZ2V0X3JlbW90ZV9zdGF0ZSAoKTsNCi0gIExPTkdF U1QgaSwgbiwgcGFja2V0X2xlbjsNCisgIExPTkdFU1QgaSwgbiwgcGFja2V0 X2xlbiA9IDA7DQogDQogICBpZiAocGFja2V0LT5zdXBwb3J0ID09IFBBQ0tF VF9ESVNBQkxFKQ0KICAgICByZXR1cm4gLTE7DQpAQCAtODQ3MiwxOCArODU2 Niw3OSBAQCByZW1vdGVfcmVhZF9xeGZlciAoc3RydWN0IHRhcmdldF9vcHMg Km9wcywgY29uc3QgY2hhciAqb2JqZWN0X25hbWUsDQogICAgICB0aGUgdGFy Z2V0IGlzIGZyZWUgdG8gcmVzcG9uZCB3aXRoIHNsaWdodGx5IGxlc3MgZGF0 YS4gIFdlIHN1YnRyYWN0DQogICAgICBmaXZlIHRvIGFjY291bnQgZm9yIHRo ZSByZXNwb25zZSB0eXBlIGFuZCB0aGUgcHJvdG9jb2wgZnJhbWUuICAqLw0K ICAgbiA9IG1pbiAoZ2V0X3JlbW90ZV9wYWNrZXRfc2l6ZSAoKSAtIDUsIGxl bik7DQotICBzbnByaW50ZiAocnMtPmJ1ZiwgZ2V0X3JlbW90ZV9wYWNrZXRf c2l6ZSAoKSAtIDQsICJxWGZlcjolczpyZWFkOiVzOiVzLCVzIiwNCi0JICAg IG9iamVjdF9uYW1lLCBhbm5leCA/IGFubmV4IDogIiIsDQotCSAgICBwaGV4 X256IChvZmZzZXQsIHNpemVvZiBvZmZzZXQpLA0KLQkgICAgcGhleF9ueiAo biwgc2l6ZW9mIG4pKTsNCi0gIGkgPSBwdXRwa3QgKHJzLT5idWYpOw0KLSAg aWYgKGkgPCAwKQ0KLSAgICByZXR1cm4gLTE7DQogDQotICBycy0+YnVmWzBd ID0gJ1wwJzsNCi0gIHBhY2tldF9sZW4gPSBnZXRwa3Rfc2FuZSAoJnJzLT5i dWYsICZycy0+YnVmX3NpemUsIDApOw0KLSAgaWYgKHBhY2tldF9sZW4gPCAw IHx8IHBhY2tldF9vayAocnMtPmJ1ZiwgcGFja2V0KSAhPSBQQUNLRVRfT0sp DQotICAgIHJldHVybiAtMTsNCisgIC8qIElmIGNvbXByZXNzZWQgb2JqZWN0 IGlzIHN1cHBvcnRlZCwgdHJ5IGl0IGZpcnN0LiAgKi8NCisgIGlmIChycy0+ aGFzX2NtcHJzX3hmZXIgJiYgcGFja2V0LT54ZmVyX3N0YXR1cyAhPSBDTVBS U19YRkVSX0RJU0FCTEUpDQorICAgIHsNCisgICAgICAvKiBXaGVuIHN0YXJ0 IHRvIHRyYW5zZmVyIGEgbmV3IG9iamVjdCwgZmFrZSBhIHpyZWFkIHBhY2tl dCB0byBkZXRlY3QNCisgICAgICAgICB3aGV0aGVyIHRoZSByZW1vdGUgc3R1 YiBzdXBwb3J0IHpyZWFkIGZvciB0aGlzIG9iamVjdC4gICovDQorICAgICAg aWYgKHBhY2tldC0+eGZlcl9zdGF0dXMgPT0gQ01QUlNfWEZFUl9VTktOT1dO KQ0KKwl7DQorCSAgaW50IHpuYW1lX2xlbiA9IHN0cmxlbihvYmplY3RfbmFt ZSkgKyAxMzsNCisJICB6bmFtZSA9IChjaGFyICopeGNhbGxvYyAoem5hbWVf bGVuLCAxKTsNCisJICBzbnByaW50ZiAoem5hbWUsIHpuYW1lX2xlbiwgInFY ZmVyOiVzOnpyZWFkIiwgb2JqZWN0X25hbWUpOw0KKwkgIHpwYWNrZXQubmFt ZSA9IHpuYW1lOw0KKwkgIHpwYWNrZXQuc3VwcG9ydCA9IFBBQ0tFVF9TVVBQ T1JUX1VOS05PV047DQorCX0NCisNCisgICAgICBzbnByaW50ZiAocnMtPmJ1 ZiwgZ2V0X3JlbW90ZV9wYWNrZXRfc2l6ZSAoKSAtIDQsICJxWGZlcjolczp6 cmVhZDolczolcywlcyIsDQorCQlvYmplY3RfbmFtZSwgYW5uZXggPyBhbm5l eCA6ICIiLA0KKwkJcGhleF9ueiAob2Zmc2V0LCBzaXplb2Ygb2Zmc2V0KSwN CisJCXBoZXhfbnogKG4sIHNpemVvZiBuKSk7DQorICAgICAgaSA9IHB1dHBr dCAocnMtPmJ1Zik7DQorICAgICAgaWYgKGkgPj0gMCkNCisJew0KKwkgIHJz LT5idWZbMF0gPSAnXDAnOw0KKwkgIHBhY2tldF9sZW4gPSBnZXRwa3Rfc2Fu ZSAoJnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOw0KKwkgIGlmIChwYWNr ZXRfbGVuIDwgMCB8fCBwYWNrZXRfb2sgKHJzLT5idWYsICZ6cGFja2V0KSAh PSBQQUNLRVRfT0spDQorCSAgICB4ZmVyX29rID0gMDsNCisJfQ0KKyAgICAg IGVsc2UNCisJeGZlcl9vayA9IDA7DQorDQorICAgICAgaWYgKHpuYW1lKQ0K Kwl4ZnJlZSAoem5hbWUpOw0KKw0KKyAgICAgIGlmIChwYWNrZXQtPnhmZXJf c3RhdHVzID09IENNUFJTX1hGRVJfRU5BQkxFICYmIHhmZXJfb2sgPT0gMCkN CisJew0KKwkgIC8qIFdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHRyYW5zZmVy cmluZyBhIGxhcmdlIG9iamVjdCwNCisJICAgICB0aGUgZmFpbCBvZiBjdXJy ZW50IHRyYW5zZmVyIHdpbGwgaW52YWxpZCBhbGwgZmluaXNoZWQNCisJICAg ICB0cmFuc2Zlciwgc28gd2UgZG9uJ3QgZmFsbCBiYWNrIHRvIHBsYWluIGZv cm1hdC4gICovDQorCSAgcmV0dXJuIC0xOw0KKwl9DQorICAgICAgZWxzZSBp ZiAocGFja2V0LT54ZmVyX3N0YXR1cyA9PSBDTVBSU19YRkVSX1VOS05PV04g JiYgeGZlcl9vayA9PSAxKQ0KKwl7DQorCSAgLyogSWYgc3VjY2Vzc2Z1bGx5 IHRyYW5zZmVycmVkIHRoZSBmaXJzdCBjaHVuayBpbiBjb21wcmVzc2VkIGZv cm1hdCwNCisJICAgICBjaGFuZ2UgeGZlcl9zdGF0dXMgb2YgcGFja2V0IHRv IHRlbGwgbmV4dCB0cmFuc2ZlciB0aGF0IHdlIGRlY2lkZWQNCisJICAgICB0 byB1c2UgY29tcHJlc3NlZCBmb3JtYXQgdG8gdHJhbnNmZXIgcmVtYWluaW5n IGNodW5rcywgc28gdGhlIG5leHQNCisJICAgICB0cmFuc2ZlciB3b24ndCBm YWxsIGJhY2sgdG8gdXNlIHBsYWluIGZvcm1hdCB3aGVuIGl0IGZhaWxzLiAg Ki8NCisJICBwYWNrZXQtPnhmZXJfc3RhdHVzID0gQ01QUlNfWEZFUl9FTkFC TEU7DQorCX0NCisgICAgICBlbHNlIGlmIChwYWNrZXQtPnhmZXJfc3RhdHVz ID09IENNUFJTX1hGRVJfVU5LTk9XTiAmJiB4ZmVyX29rID09IDApDQorCXsN CisJICAvKiBJZiB0aGUgZmlyc3QgYXR0ZW1wdCBmYWlscywNCisJICAgICBq dXN0IGZhbGwgYmFjayB0byB1c2UgcGxhaW4gZm9ybWF0LiAgKi8NCisJICBw YWNrZXQtPnhmZXJfc3RhdHVzID0gQ01QUlNfWEZFUl9ESVNBQkxFOw0KKwl9 DQorICAgIH0NCisNCisgIC8qIFRoZSBjb21wcmVzc2VkIG9iamVjdCBpc24n dCBzdXBwb3J0ZWQsIGZhbGwgYmFjayB0byB1c2UgcGxhaW4gZm9ybWF0LiAg Ki8NCisgIGlmIChycy0+aGFzX2NtcHJzX3hmZXIgPT0gMCB8fCBwYWNrZXQt PnhmZXJfc3RhdHVzID09IENNUFJTX1hGRVJfRElTQUJMRSkNCisgICAgew0K KyAgICAgIHNucHJpbnRmIChycy0+YnVmLCBnZXRfcmVtb3RlX3BhY2tldF9z aXplICgpIC0gNCwgInFYZmVyOiVzOnJlYWQ6JXM6JXMsJXMiLA0KKwkJb2Jq ZWN0X25hbWUsIGFubmV4ID8gYW5uZXggOiAiIiwNCisJCXBoZXhfbnogKG9m ZnNldCwgc2l6ZW9mIG9mZnNldCksDQorCQlwaGV4X256IChuLCBzaXplb2Yg bikpOw0KKw0KKyAgICAgIGkgPSBwdXRwa3QgKHJzLT5idWYpOw0KKyAgICAg IGlmIChpIDwgMCkNCisJcmV0dXJuIC0xOw0KKw0KKyAgICAgIHJzLT5idWZb MF0gPSAnXDAnOw0KKyAgICAgIHBhY2tldF9sZW4gPSBnZXRwa3Rfc2FuZSAo JnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOw0KKyAgICAgIGlmIChwYWNr ZXRfbGVuIDwgMCB8fCBwYWNrZXRfb2sgKHJzLT5idWYsIHBhY2tldCkgIT0g UEFDS0VUX09LKQ0KKwlyZXR1cm4gLTE7DQorICAgIH0NCiANCiAgIGlmIChy cy0+YnVmWzBdICE9ICdsJyAmJiBycy0+YnVmWzBdICE9ICdtJykNCiAgICAg ZXJyb3IgKF8oIlVua25vd24gcmVtb3RlIHFYZmVyIHJlcGx5OiAlcyIpLCBy cy0+YnVmKTsNCmRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFy Z2V0LmMNCmluZGV4IGJiOGVhZTguLjI0NWNiOWUgMTAwNjQ0DQotLS0gYS9n ZGIvdGFyZ2V0LmMNCisrKyBiL2dkYi90YXJnZXQuYw0KQEAgLTQzLDYgKzQz LDkgQEANCiAjaW5jbHVkZSAidHJhY2Vwb2ludC5oIg0KICNpbmNsdWRlICJn ZGIvZmlsZWlvLmgiDQogI2luY2x1ZGUgImFnZW50LmgiDQorI2lmZGVmIEhB VkVfWkxJQl9IDQorI2luY2x1ZGUgPHpsaWIuaD4NCisjZW5kaWYNCiANCiBz dGF0aWMgdm9pZCB0YXJnZXRfaW5mbyAoY2hhciAqLCBpbnQpOw0KIA0KQEAg LTE5OTgsNiArMjAwMSw4MCBAQCB0YXJnZXRfd3JpdGVfcGFydGlhbCAoc3Ry dWN0IHRhcmdldF9vcHMgKm9wcywNCiAgIHJldHVybiB0YXJnZXRfeGZlcl9w YXJ0aWFsIChvcHMsIG9iamVjdCwgYW5uZXgsIE5VTEwsIGJ1Ziwgb2Zmc2V0 LCBsZW4pOw0KIH0NCiANCisvKiBEZWNvbXByZXNzIHRoZSB6bGliLWNvbXBy ZXNzZWQgYnVmZmVyIGJ1Zl9wLg0KKyAgIEluc2lkZSB0aGUgYnVmX3AsIHRo ZSBsZW5ndGggb2YgcmVjZWl2ZWQgY29tcHJlc3NlZCBkYXRhIGlzIGRhdGFf c2l6ZS4NCisgICBJZiBkZWNvbXByZXNzIHN1Y2Nlc3NmdWxseSwgZnJlZSB0 aGUgYnVmZmVyIHBvaW50ZWQgYnkgYnVmX3AgYW5kIHJlZGlyZWN0DQorICAg YnVmX3AgdG8gdGhlIG5ldyBkZWNvbXByZXNzZWQgZGF0YSBidWZmZXIuDQor ICAgVGhlIHNpemUgb2YgZGVjb21wcmVzc2VkIGRhdGEgd2lsbCBiZSByZXR1 cm5lZC4NCisgICBPdGhlcndpc2UgdGhlIGJ1Zl9wIHdvbid0IGJlIHRvdWNo ZWQgYW5kIHNpbXBseSByZXR1cm4gZGF0YV9zaXplLiAgKi8NCisNCitzdGF0 aWMgdW5zaWduZWQgaW50DQordGFyZ2V0X2RlY29tcHJlc3NfYnVmIChnZGJf Ynl0ZSAqKmJ1Zl9wLCBzaXplX3QgZGF0YV9zaXplKQ0KK3sNCisjaWZuZGVm IEhBVkVfWkxJQl9IDQorICBlcnJvciAoXygiU3VwcG9ydCBmb3IgemxpYi1j b21wcmVzc2VkIGRhdGEgaXMgZGlzYWJsZWQgaW4gdGhpcyBjb3B5IG9mIEdE QiIpKTsNCisjZWxzZQ0KKyAgc2l6ZV90IHJldCwgdW5jb21wcmVzc2VkX3Np emUsIGNvbXByZXNzZWRfc2l6ZSwgaTsNCisgIGdkYl9ieXRlICpidWY7DQor DQorICBpZiAocmVtb3RlX2RlYnVnKQ0KKyAgICB7DQorICAgICAgaW50IGk7 DQorDQorICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLA0K KwkJCSAgIlpsaWItY29tcHJlc3NlZCBwYWNrZXQgcmVjZWl2ZWQgd2l0aCBz aXplICVkIGJ5dGVzOiAiLA0KKwkJCSAgZGF0YV9zaXplKTsNCisNCisgICAg ICBmb3IgKGkgPSAwOyBpIDwgZGF0YV9zaXplOyBpKyspDQorCWZwcmludGZf dW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIiUwMngiLCAodW5zaWduZWQgY2hh cikoKmJ1Zl9wKVtpXSk7DQorDQorICAgICAgZnByaW50Zl91bmZpbHRlcmVk IChnZGJfc3RkbG9nLCAiXG4iKTsNCisgICAgfQ0KKw0KKyAgLyogRm9yIHps aWItYmFzZWQgY29tcHJlc3NlZCBidWZmZXIsIHdlIGFzc3VtZSB0aGF0IHRo ZSBmaXJzdCA4IGJ5dGVzIGFyZQ0KKyAgICAgdXNlZCB0byBlbmNvZGUgdGhl IGxlbmd0aCBvZiB1bmNvbXByZXNzZWQgZGF0YSwgYW5kIHRoZSBmb2xsb3dp bmcgNCBieXRlcw0KKyAgICAgZW5jb2RlIHRoZSB6bGliIGhlYWQsIHNvIHRo ZSB0b3RhbCBsZW5ndGggc2hvdWxkIGJlIGJpZ2dlciB0aGFuIDEyLiAgKi8N CisgIGlmIChkYXRhX3NpemUgPD0gMTIpDQorICAgIGVycm9yIChfKCJabGli IEVycm9yOiB0aGUgZGF0YSBzaXplICVkIGlzIHRvbyBzaG9ydCB0byBkZWNv bXByZXNzIiksDQorCSAgIGRhdGFfc2l6ZSk7DQorDQorICB1bmNvbXByZXNz ZWRfc2l6ZSA9ICAoKmJ1Zl9wKVswXTsNCisgIHVuY29tcHJlc3NlZF9zaXpl ICs9ICgqYnVmX3ApWzFdPDw0Ow0KKyAgdW5jb21wcmVzc2VkX3NpemUgKz0g KCpidWZfcClbMl08PDg7DQorICB1bmNvbXByZXNzZWRfc2l6ZSArPSAoKmJ1 Zl9wKVszXTw8MTI7DQorICB1bmNvbXByZXNzZWRfc2l6ZSArPSAoKmJ1Zl9w KVs0XTw8MTY7DQorICB1bmNvbXByZXNzZWRfc2l6ZSArPSAoKmJ1Zl9wKVs1 XTw8MjA7DQorICB1bmNvbXByZXNzZWRfc2l6ZSArPSAoKmJ1Zl9wKVs2XTw8 MjQ7DQorICB1bmNvbXByZXNzZWRfc2l6ZSArPSAoKmJ1Zl9wKVs3XTw8Mjg7 DQorDQorICBjb21wcmVzc2VkX3NpemUgPSBkYXRhX3NpemUgLSA4Ow0KKw0K KyAgLyogVGhlIGV4dHJhIDEgYnl0ZSBpcyB0byBjb3BlIHdpdGggdGhlIGV4 aXN0aW5nIGFsbG9jIHN0cmF0ZWd5IHdoaWNoIGFsd2F5cw0KKyAgICAgYWxs b2MgbW9yZSBzcGFjZXMgYW5kIGhhdmUgY29kZSBsaWtlIGJ1ZmZlcltsZW5d ID0gMC4gICovDQorICBidWYgPSB4bWFsbG9jICh1bmNvbXByZXNzZWRfc2l6 ZSArIDEpOw0KKw0KKyAgcmV0ID0gdW5jb21wcmVzcyAoKEJ5dGVmICopYnVm LCAodUxvbmdmICopJnVuY29tcHJlc3NlZF9zaXplLA0KKwkJICAgIChjb25z dCBCeXRlZiAqKSgoKmJ1Zl9wKSArIDgpLCAodUxvbmcpY29tcHJlc3NlZF9z aXplKTsNCisNCisgIGlmIChyZXQgPT0gWl9PSykNCisgICAgew0KKyAgICAg IGlmIChyZW1vdGVfZGVidWcpDQorCWZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywgIlBhY2tldCBkZWNvbXByZXNzZWQgaW4gc2l6ZSAlZCBieXRl cyBhczogJXNcbiIsDQorCQkJICAgIHVuY29tcHJlc3NlZF9zaXplLCAoY2hh ciAqKWJ1Zik7DQorDQorICAgICAgeGZyZWUgKCpidWZfcCk7DQorICAgICAg KmJ1Zl9wID0gYnVmOw0KKyAgICAgIHJldHVybiB1bmNvbXByZXNzZWRfc2l6 ZTsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgeGZyZWUgKGJ1 Zik7DQorICAgICAgZ2RiX3psaWJfZXJyb3IgKHJldCk7DQorICAgICAgcmV0 dXJuIGRhdGFfc2l6ZTsNCisgICAgfQ0KKyNlbmRpZg0KK30NCisNCiAvKiBX cmFwcGVycyB0byBwZXJmb3JtIHRoZSBmdWxsIHRyYW5zZmVyLiAgKi8NCiAN CiAvKiBGb3IgZG9jcyBvbiB0YXJnZXRfcmVhZCBzZWUgdGFyZ2V0LmguICAq Lw0KQEAgLTIzNzIsNiArMjQ0OSwxMyBAQCB0YXJnZXRfcmVhZF9zdHJhbGxv YyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgZW51bSB0YXJnZXRfb2JqZWN0 IG9iamVjdCwNCiAgIGlmICh0cmFuc2ZlcnJlZCA9PSAwKQ0KICAgICByZXR1 cm4geHN0cmR1cCAoIiIpOw0KIA0KKyAgLyogSWYgaXQgaXMgY29tcHJlc3Nl ZCBvYmplY3QsIG5lZWQgdG8gZGVjb21wcmVzcyBpdC4NCisgICAgIFRoZSBm aXJzdCA4IGJ5dGVzIGVuY29kZSB0aGUgc2l6ZSBvZiB1bmNvbXByZXNzZWQg ZGF0YS4NCisgICAgIFRoZSBmb2xsb3dpbmcgNCBieXRlcyBlbmNvZGUgdGhl IGhlYWQgb2YgemxpYi1iYXNlZCBjb21wcmVzc2VkDQorICAgICBidWZmZXIu ICAqLw0KKyAgaWYgKHRyYW5zZmVycmVkID4gMTIgJiYgcmVtb3RlX3BhY2tl dF9pc19jbXByc194ZmVyIChvYmplY3QsIGFubmV4LCAxKSkNCisgICAgdHJh bnNmZXJyZWQgPSB0YXJnZXRfZGVjb21wcmVzc19idWYgKCZidWZmZXIsIHRy YW5zZmVycmVkKTsNCisNCiAgIGJ1ZmZlclt0cmFuc2ZlcnJlZF0gPSAwOw0K IA0KICAgLyogQ2hlY2sgZm9yIGVtYmVkZGVkIE5VTCBieXRlczsgYnV0IGFs bG93IHRyYWlsaW5nIE5VTHMuICAqLw0KZGlmZiAtLWdpdCBhL2dkYi90YXJn ZXQuaCBiL2dkYi90YXJnZXQuaA0KaW5kZXggNTRjNThkNi4uY2YwN2YzOCAx MDA2NDQNCi0tLSBhL2dkYi90YXJnZXQuaA0KKysrIGIvZ2RiL3RhcmdldC5o DQpAQCAtMTg2MSw2ICsxODYxLDEwIEBAIGV4dGVybiBzdHJ1Y3QgdGFyZ2V0 X29wcyAqZmluZF90YXJnZXRfYmVuZWF0aCAoc3RydWN0IHRhcmdldF9vcHMg Kik7DQogDQogZXh0ZXJuIGNoYXIgKnRhcmdldF9nZXRfb3NkYXRhIChjb25z dCBjaGFyICp0eXBlKTsNCiANCisvKiBGcm9tIHJlbW90ZS5jICovDQorDQor ZXh0ZXJuIGludCByZW1vdGVfcGFja2V0X2lzX2NtcHJzX3hmZXIgKGVudW0g dGFyZ2V0X29iamVjdCwgY29uc3QgY2hhciAqLCBpbnQpOw0KKw0KIAwNCiAv KiBTdHVmZiB0aGF0IHNob3VsZCBiZSBzaGFyZWQgYW1vbmcgdGhlIHZhcmlv dXMgcmVtb3RlIHRhcmdldHMuICAqLw0KIA0KZGlmZiAtLWdpdCBhL2dkYi91 dGlscy5jIGIvZ2RiL3V0aWxzLmMNCmluZGV4IDU1NjYxNDkuLjM3MDM2MDcg MTAwNjQ0DQotLS0gYS9nZGIvdXRpbHMuYw0KKysrIGIvZ2RiL3V0aWxzLmMN CkBAIC03OCw2ICs3OCwxMCBAQA0KICNpbmNsdWRlICJpbnRlcnBzLmgiDQog I2luY2x1ZGUgImdkYl9yZWdleC5oIg0KIA0KKyNpZmRlZiBIQVZFX1pMSUJf SA0KKyNpbmNsdWRlIDx6bGliLmg+DQorI2VuZGlmDQorDQogI2lmICFIQVZF X0RFQ0xfTUFMTE9DDQogZXh0ZXJuIFBUUiBtYWxsb2MgKCk7CQkvKiBBUkk6 IFBUUiAqLw0KICNlbmRpZg0KQEAgLTM4OTMsMyArMzg5NywzOSBAQCBfaW5p dGlhbGl6ZV91dGlscyAodm9pZCkNCiAgIGFkZF9pbnRlcm5hbF9wcm9ibGVt X2NvbW1hbmQgKCZpbnRlcm5hbF9lcnJvcl9wcm9ibGVtKTsNCiAgIGFkZF9p bnRlcm5hbF9wcm9ibGVtX2NvbW1hbmQgKCZpbnRlcm5hbF93YXJuaW5nX3By b2JsZW0pOw0KIH0NCisNCisvKiBSZXBvcnQgemxpYiBlcnJvciBtZXNzYWdl LiAgKi8NCisNCit2b2lkDQorZ2RiX3psaWJfZXJyb3IgKGludCByZXRfY29k ZSkNCit7DQorI2lmbmRlZiBIQVZFX1pMSUJfSA0KKyAgZXJyb3IgKF8oIlps aWIgc3VwcG9ydCBpcyBkaXNhYmxlZCBpbiB0aGlzIGNvcHkgb2YgR0RCIikp Ow0KKyNlbHNlDQorICBzd2l0Y2ggKHJldF9jb2RlKQ0KKyAgICB7DQorICAg IGNhc2UgWl9PSzoNCisgICAgICBicmVhazsNCisgICAgY2FzZSBaX0VSUk5P Og0KKyAgICAgIGlmIChmZXJyb3Ioc3RkaW4pKQ0KKwllcnJvciAoXygiWmxp YiBFcnJvcjogZXJyb3IgcmVhZGluZyBzdGRpbiIpKTsNCisgICAgICBpZiAo ZmVycm9yKHN0ZG91dCkpDQorCWVycm9yIChfKCJabGliIEVycm9yOiBlcnJv ciB3cml0aW5nIHN0ZG91dCIpKTsNCisgICAgICBicmVhazsNCisgICAgY2Fz ZSBaX1NUUkVBTV9FUlJPUjoNCisgICAgICBlcnJvciAoXygiWmxpYiBFcnJv cjogaW52YWxpZCBjb21wcmVzc2lvbiBsZXZlbCIpKTsNCisgICAgICBicmVh azsNCisgICAgY2FzZSBaX0RBVEFfRVJST1I6DQorICAgICAgZXJyb3IgKF8o IlpsaWIgRXJyb3I6IGludmFsaWQgb3IgaW5jb21wbGV0ZSBkZWZsYXRlIGRh dGEiKSk7DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgWl9NRU1fRVJST1I6 DQorICAgICAgZXJyb3IgKF8oIlpsaWIgRXJyb3I6IG91dCBvZiBtZW1vcnki KSk7DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgWl9WRVJTSU9OX0VSUk9S Og0KKyAgICAgIGVycm9yIChfKCJabGliIEVycm9yOiB6bGliIHZlcnNpb24g bWlzbWF0Y2giKSk7DQorICAgICAgYnJlYWs7DQorICAgIGRlZmF1bHQ6DQor ICAgICAgZXJyb3IgKF8oIlpsaWIgRXJyb3I6IHVua25vd24gZXJyb3IgY29k ZSIpKTsNCisgICAgfQ0KKyNlbmRpZg0KK30NCg== ------=_NextPart_000_0005_01CD7583.678AD610--