From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9339CC10F0B for ; Thu, 18 Apr 2019 08:03:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 35E5A214DA for ; Thu, 18 Apr 2019 08:03:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=preh.de header.i=@preh.de header.b="NNc9QkM3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388229AbfDRIDJ (ORCPT ); Thu, 18 Apr 2019 04:03:09 -0400 Received: from mail01.preh.com ([80.149.130.22]:57254 "EHLO mail01.preh.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726873AbfDRIDJ (ORCPT ); Thu, 18 Apr 2019 04:03:09 -0400 From: Kloetzke Jan To: "oneukum@suse.com" CC: "netdev@vger.kernel.org" , "jan@kloetzke.net" , "linux-usb@vger.kernel.org" Subject: Re: [PATCH] usbnet: fix kernel crash after disconnect Thread-Topic: [PATCH] usbnet: fix kernel crash after disconnect Thread-Index: AQHU9P6lIDgQA+tBpkOiuoVbyUaoWaZBVvAAgAAX0AA= Date: Thu, 18 Apr 2019 08:02:59 +0000 Message-ID: <1555574578.4173.215.camel@preh.de> References: <20190417091849.7475-1-Jan.Kloetzke@preh.de> <1555569464.7835.4.camel@suse.com> In-Reply-To: <1555569464.7835.4.camel@suse.com> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tm-snts-smtp: 90C63F4CF35663E050CF5B6A00D3126C025306EC0BC6340CE9FD1D8888E9011A2000:8 x-exclaimer-md-config: 142fe46c-4d13-4ac1-9970-1f36f118897a Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; d=preh.de; s=key1; c=relaxed/relaxed; h=from:to:cc:subject:date:message-id:references:content-type:mime-version; bh=BwCIWxnxAIPyUKT5QqfU1Xo67SlY+FEqaWxA4MZpqXU=; b=NNc9QkM3rX5jw0Qze2BJn3crzEeEtGfNuQTMEszgJ9D+VPKAiwdsRNLe0g4DTY09iX/LYo/aILXI th2ixmfyeOG3VFzntb0DoO+DTCGwuMjRylr7sFox9B4F9e/oRmTj8V5LY0ojl2kIZ5hc9cVfBucR oBNCsB5kcvuVOGIXmMArV5oWQV37w9bGj2gf/jeS9aBuGrKkK3KUTcI1raFP+rZAW/D8G86Brbvk nLICjSj2SEtqx1Vmlr7tMqi45NL+27AS6t1Mmio5iFUV6qZogFev600DHgzVTfRYj1gVXi/OgQuc j2+DU89qB0ZVee9jDWI3AinWs2quZPVwuZhEuA== Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org SGksDQoNCkFtIERvbm5lcnN0YWcsIGRlbiAxOC4wNC4yMDE5LCAwODozNyArMDIwMCBzY2hyaWVi IE9saXZlciBOZXVrdW06DQo+IE9uIE1pLCAyMDE5LTA0LTE3IGF0IDA5OjE5ICswMDAwLCBLbG9l dHprZSBKYW4gd3JvdGU6DQo+ID4gV2hlbiBkaXNjb25uZWN0aW5nIGNkY19uY20gdGhlIGtlcm5l bCBzcG9yYWRpY2FsbHkgY3Jhc2hlcyBzaG9ydGx5DQo+ID4gYWZ0ZXIgdGhlIGRpc2Nvbm5lY3Q6 DQo+ID4gDQo+ID4gwqAgW8KgwqDCoDU3Ljg2ODgxMl0gVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlDQo+ID4gYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDAw DQo+ID4gwqAgLi4uDQo+ID4gwqAgW8KgwqDCoDU4LjAwNjY1M10gUEMgaXMgYXQgMHgwDQo+ID4g wqAgW8KgwqDCoDU4LjAwOTIwMl0gTFIgaXMgYXQgY2FsbF90aW1lcl9mbisweGVjLzB4MWI0DQo+ ID4gwqAgW8KgwqDCoDU4LjAxMzU2N10gcGMgOiBbPDAwMDAwMDAwMDAwMDAwMDA+XSBsciA6DQo+ ID4gWzxmZmZmZmY4MDA4MGY1MTMwPl0gcHN0YXRlOiAwMDAwMDE0NQ0KPiA+IMKgIFvCoMKgwqA1 OC4wMjA5NzZdIHNwIDogZmZmZmZmODAwODAwM2RhMA0KPiA+IMKgIFvCoMKgwqA1OC4wMjQyOTVd IHgyOTogZmZmZmZmODAwODAwM2RhMCB4Mjg6IDAwMDAwMDAwMDAwMDAwMDENCj4gPiDCoCBbwqDC oMKgNTguMDI5NjE4XSB4Mjc6IDAwMDAwMDAwMDAwMDAwMGEgeDI2OiAwMDAwMDAwMDAwMDAwMTAw DQo+ID4gwqAgW8KgwqDCoDU4LjAzNDk0MV0geDI1OiAwMDAwMDAwMDAwMDAwMDAwIHgyNDogZmZm ZmZmODAwODAwM2U2OA0KPiA+IMKgIFvCoMKgwqA1OC4wNDAyNjNdIHgyMzogMDAwMDAwMDAwMDAw MDAwMCB4MjI6IDAwMDAwMDAwMDAwMDAwMDANCj4gPiDCoCBbwqDCoMKgNTguMDQ1NTg3XSB4MjE6 IDAwMDAwMDAwMDAwMDAwMDAgeDIwOiBmZmZmZmZjNjhmYWMxODA4DQo+ID4gwqAgW8KgwqDCoDU4 LjA1MDkxMF0geDE5OiAwMDAwMDAwMDAwMDAwMTAwIHgxODogMDAwMDAwMDAwMDAwMDAwMA0KPiA+ IMKgIFvCoMKgwqA1OC4wNTYyMzJdIHgxNzogMDAwMDAwN2Y4ODVhZmY4YyB4MTY6IDAwMDAwMDdm ODgzYTlmMTANCj4gPiDCoCBbwqDCoMKgNTguMDYxNTU2XSB4MTU6IDAwMDAwMDAwMDAwMDAwMDEg eDE0OiAwMDAwMDAwMDAwMDAwMDZlDQo+ID4gwqAgW8KgwqDCoDU4LjA2Njg3OF0geDEzOiAwMDAw MDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDBiYQ0KPiA+IMKgIFvCoMKgwqA1OC4wNzIy MDFdIHgxMTogZmZmZmZmYzY5ZmYxZGIzMCB4MTA6IDAwMDAwMDAwMDAwMDAwMjANCj4gPiDCoCBb wqDCoMKgNTguMDc3NTI0XSB4OSA6IDgwMDAxMDAwMDgwMDEwMDAgeDggOiAwMDAwMDAwMDAwMDAw MDAxDQo+ID4gwqAgW8KgwqDCoDU4LjA4Mjg0N10geDcgOiAwMDAwMDAwMDAwMDAwODAwIHg2IDog ZmZmZmZmODAwODAwM2U3MA0KPiA+IMKgIFvCoMKgwqA1OC4wODgxNjldIHg1IDogZmZmZmZmYzY5 ZmYxN2EyOCB4NCA6IDAwMDAwMDAwZmZmZjEzOGINCj4gPiDCoCBbwqDCoMKgNTguMDkzNDkyXSB4 MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIgOiAwMDAwMDAwMDAwMDAwMDAwDQo+ID4gwqAgW8KgwqDC oDU4LjA5ODgxNF0geDEgOiAwMDAwMDAwMDAwMDAwMDAwIHgwIDogMDAwMDAwMDAwMDAwMDAwMA0K PiA+IMKgIC4uLg0KPiA+IMKgIFvCoMKgwqA1OC4yMDU4MDBdIFs8wqDCoMKgwqDCoMKgwqDCoMKg wqAobnVsbCk+XcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAobnVsbCkNCj4gPiDCoCBbwqDCoMKgNTgu MjEwNTIxXSBbPGZmZmZmZjgwMDgwZjUyOTg+XSBleHBpcmVfdGltZXJzKzB4YTAvMHgxNGMNCj4g PiDCoCBbwqDCoMKgNTguMjE1OTM3XSBbPGZmZmZmZjgwMDgwZjU0MmM+XSBydW5fdGltZXJfc29m dGlycSsweGU4LzB4MTI4DQo+ID4gwqAgW8KgwqDCoDU4LjIyMTcwMl0gWzxmZmZmZmY4MDA4MDgx MTIwPl0gX19kb19zb2Z0aXJxKzB4Mjk4LzB4MzQ4DQo+ID4gwqAgW8KgwqDCoDU4LjIyNzExOF0g WzxmZmZmZmY4MDA4MGE2MzA0Pl0gaXJxX2V4aXQrMHg3NC8weGJjDQo+ID4gwqAgW8KgwqDCoDU4 LjIzMjAwOV0gWzxmZmZmZmY4MDA4MGUxN2RjPl0gX19oYW5kbGVfZG9tYWluX2lycSsweDc4LzB4 YWMNCj4gPiDCoCBbwqDCoMKgNTguMjM3ODU3XSBbPGZmZmZmZjgwMDgwODBjZjQ+XSBnaWNfaGFu ZGxlX2lycSsweDgwLzB4YWMNCj4gPiDCoCAuLi4NCj4gPiANCj4gPiBUaGUgY3Jhc2ggaGFwcGVu cyByb3VnaGx5IDEyNS4uMTMwbXMgYWZ0ZXIgdGhlIGRpc2Nvbm5lY3QuIFRoaXMNCj4gPiBjb3Jy ZWxhdGVzIHdpdGggdGhlICdkZWxheScgdGltZXIgdGhhdCBpcyBzdGFydGVkIG9uIGNlcnRhaW4g VVNCDQo+ID4gdHgvcngNCj4gPiBlcnJvcnMgaW4gdGhlIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIu DQo+ID4gDQo+ID4gVGhlIHN1c3BlY3RlZCBwcm9ibGVtIGlzIGEgcmFjZSBvZiB1c2JuZXRfc3Rv cCgpIHdpdGgNCj4gPiB1c2JuZXRfc3RhcnRfeG1pdCgpLiBJbiB1c2JuZXRfc3RvcCgpIHdlIGNh bGwNCj4gPiB1c2JuZXRfdGVybWluYXRlX3VyYnMoKQ0KPiA+IHRvIGNhbmNlbCBhbGwgVVJCcyBp biBmbGlnaHQuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiBubyBuZXcgVVJCcw0KPiA+IGFyZQ0K PiA+IHN1Ym1pdHRlZCBjb25jdXJyZW50bHksIHRob3VnaC4gQnV0IHRoZSB1c2JuZXRfc3RhcnRf eG1pdCgpIGNhbiBydW4NCj4gPiBhdA0KPiA+IHRoZSBzYW1lIHRpbWUgb24gYW5vdGhlciBDUFUg d2hpY2ggYWxtb3N0IHVuY29uZGl0aW9uYWxseSBzdWJtaXRzDQo+ID4gYW4NCj4gPiBVUkIuIFRo ZSBlcnJvciBjYWxsYmFjayBvZiB0aGUgbmV3IFVSQiB3aWxsIHRoZW4gc2NoZWR1bGUgdGhlIHRp bWVyDQo+ID4gYWZ0ZXIgaXQgd2FzIGFscmVhZHkgc3RvcHBlZC4NCj4gDQo+IEhpLA0KPiANCj4g aW50ZXJlc3RpbmcuIEhvdyBzdXJlIGFyZSB5b3Ugb2YgdGhlIGRldGFpbHMgb2YgeW91ciBhbmFs eXNpcz8NCg0KV2UgaGF2ZSBzZWVuIHRoZSBpc3N1ZSBzcG9yYWRpY2FsbHksIG1heWJlIG9uY2Ug YSBtb250aCwgb24gb3VyIElWSQ0Kc3lzdGVtIHdpdGggZG96ZW5zIG9mIHVuaXRzIGJlaW5nIHRl c3RlZCBhbGwgZGF5IGxvbmcuIFdlIGhhdmUgdGhlIGZpeA0KaW4gdGhlIGZpZWxkIHNpbmNlIHRo cmVlIG1vbnRocyBhbmQgZ290IG5vIGZ1cnRoZXIgcmVwb3J0cyBzbyBmYXIuIFNvDQpJJ20gcmVs YXRpdmVseSBvcHRpbWlzdGljIHRoYXQgdGhlIHBhdGNoIHNvbHZlcyB0aGUgcHJvYmxlbS4NCg0K PiBJIGFtIGFza2luZyBiZWNhdXNlIHVzYm5ldF9zdG9wKCkgZG9lcyBhIGRlbF90aW1lcl9zeW5j KCkuDQo+IEl0IGlzIGluZGVlZCB3cml0dGVuIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhl IHVwcGVyIGxheWVyDQo+IHdpbGwgaGF2ZSBjZWFzZWQgdHJhbnNtaXNzaW9uIHdoZW4gaXQgc3Rv cHMgYW4gaW50ZXJmYWNlLg0KDQpJIHRoaW5rIHRoaXMgYXNzdW1wdGlvbiBpcyBub3QgY29ycmVj dC4gQXMgZmFyIGFzIEkgdW5kZXJzdGFuZCB0aGUNCm5ldHdvcmtpbmcgY29kZSBpdCBpcyBzdGls bCBwb3NzaWJsZSB0aGF0IHRoZSBuZG9fc3RhcnRfeG1pdCBjYWxsYmFjaw0KaXMgY2FsbGVkIHdo aWxlIG5kb19zdG9wIGlzIHJ1bm5pbmcgYW5kIGV2ZW4gYWZ0ZXIgbmRvX3N0b3AgaGFzDQpyZXR1 cm5lZC4gWW91IGNhbiBvbmx5IGJlIHN1cmUgYWZ0ZXIgdW5yZWdpc3Rlcl9uZXRkZXYoKSBoYXMg cmV0dXJuZWQuDQpNYXliZSBzb21lIG5ldHdvcmtpbmcgZm9sa3MgY2FuIGNvbW1lbnQgb24gdGhh dC4NCg0KPiBTbyBJIGFtIHdvbmRlcmluZyB3aGV0aGVyIHRoZSBjb3JyZWN0IGZpeCB3b3VsZCBu b3QgYmUgdG8gbWFrZQ0KPiBzdXJlIHRoZSB0aW1lciBpcyBzdGFydGVkLg0KDQpJIHRoaW5rIHRo ZSByZWFsIHByb2JsZW0gaXMgdGhhdCBuZXcgVVJCcyBhcmUgc3VibWl0dGVkIGNvbmN1cnJlbnRs eS4NClRoZSB0aW1lciBpcyBqdXN0IGEgc2Vjb25kYXJ5IHByb2JsZW0gdGhhdCBibG93cyB1cCBs YXRlci4gQnV0IGlmIG15DQphYm92ZSBhc3N1bXB0aW9uIHdydC4gbmRvX3N0b3AvbmRvX3N0YXJ0 X3htaXQgaXMgbm90IGNvcnJlY3QgdGhlbiB0aGUNCnBhdGNoIHdvdWxkIGJlIGluZGVlZCB3cm9u Zy4NCg0KUmVnYXJkcywNCkphbg== From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usbnet: fix kernel crash after disconnect From: Kloetzke Jan Message-Id: <1555574578.4173.215.camel@preh.de> Date: Thu, 18 Apr 2019 08:02:59 +0000 To: "oneukum@suse.com" Cc: "netdev@vger.kernel.org" , "jan@kloetzke.net" , "linux-usb@vger.kernel.org" List-ID: SGksDQoNCkFtIERvbm5lcnN0YWcsIGRlbiAxOC4wNC4yMDE5LCAwODozNyArMDIwMCBzY2hyaWVi IE9saXZlciBOZXVrdW06DQo+IE9uIE1pLCAyMDE5LTA0LTE3IGF0IDA5OjE5ICswMDAwLCBLbG9l dHprZSBKYW4gd3JvdGU6DQo+ID4gV2hlbiBkaXNjb25uZWN0aW5nIGNkY19uY20gdGhlIGtlcm5l bCBzcG9yYWRpY2FsbHkgY3Jhc2hlcyBzaG9ydGx5DQo+ID4gYWZ0ZXIgdGhlIGRpc2Nvbm5lY3Q6 DQo+ID4gDQo+ID4gwqAgW8KgwqDCoDU3Ljg2ODgxMl0gVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlDQo+ID4gYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDAw DQo+ID4gwqAgLi4uDQo+ID4gwqAgW8KgwqDCoDU4LjAwNjY1M10gUEMgaXMgYXQgMHgwDQo+ID4g wqAgW8KgwqDCoDU4LjAwOTIwMl0gTFIgaXMgYXQgY2FsbF90aW1lcl9mbisweGVjLzB4MWI0DQo+ ID4gwqAgW8KgwqDCoDU4LjAxMzU2N10gcGMgOiBbPDAwMDAwMDAwMDAwMDAwMDA+XSBsciA6DQo+ ID4gWzxmZmZmZmY4MDA4MGY1MTMwPl0gcHN0YXRlOiAwMDAwMDE0NQ0KPiA+IMKgIFvCoMKgwqA1 OC4wMjA5NzZdIHNwIDogZmZmZmZmODAwODAwM2RhMA0KPiA+IMKgIFvCoMKgwqA1OC4wMjQyOTVd IHgyOTogZmZmZmZmODAwODAwM2RhMCB4Mjg6IDAwMDAwMDAwMDAwMDAwMDENCj4gPiDCoCBbwqDC oMKgNTguMDI5NjE4XSB4Mjc6IDAwMDAwMDAwMDAwMDAwMGEgeDI2OiAwMDAwMDAwMDAwMDAwMTAw DQo+ID4gwqAgW8KgwqDCoDU4LjAzNDk0MV0geDI1OiAwMDAwMDAwMDAwMDAwMDAwIHgyNDogZmZm ZmZmODAwODAwM2U2OA0KPiA+IMKgIFvCoMKgwqA1OC4wNDAyNjNdIHgyMzogMDAwMDAwMDAwMDAw MDAwMCB4MjI6IDAwMDAwMDAwMDAwMDAwMDANCj4gPiDCoCBbwqDCoMKgNTguMDQ1NTg3XSB4MjE6 IDAwMDAwMDAwMDAwMDAwMDAgeDIwOiBmZmZmZmZjNjhmYWMxODA4DQo+ID4gwqAgW8KgwqDCoDU4 LjA1MDkxMF0geDE5OiAwMDAwMDAwMDAwMDAwMTAwIHgxODogMDAwMDAwMDAwMDAwMDAwMA0KPiA+ IMKgIFvCoMKgwqA1OC4wNTYyMzJdIHgxNzogMDAwMDAwN2Y4ODVhZmY4YyB4MTY6IDAwMDAwMDdm ODgzYTlmMTANCj4gPiDCoCBbwqDCoMKgNTguMDYxNTU2XSB4MTU6IDAwMDAwMDAwMDAwMDAwMDEg eDE0OiAwMDAwMDAwMDAwMDAwMDZlDQo+ID4gwqAgW8KgwqDCoDU4LjA2Njg3OF0geDEzOiAwMDAw MDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDBiYQ0KPiA+IMKgIFvCoMKgwqA1OC4wNzIy MDFdIHgxMTogZmZmZmZmYzY5ZmYxZGIzMCB4MTA6IDAwMDAwMDAwMDAwMDAwMjANCj4gPiDCoCBb wqDCoMKgNTguMDc3NTI0XSB4OSA6IDgwMDAxMDAwMDgwMDEwMDAgeDggOiAwMDAwMDAwMDAwMDAw MDAxDQo+ID4gwqAgW8KgwqDCoDU4LjA4Mjg0N10geDcgOiAwMDAwMDAwMDAwMDAwODAwIHg2IDog ZmZmZmZmODAwODAwM2U3MA0KPiA+IMKgIFvCoMKgwqA1OC4wODgxNjldIHg1IDogZmZmZmZmYzY5 ZmYxN2EyOCB4NCA6IDAwMDAwMDAwZmZmZjEzOGINCj4gPiDCoCBbwqDCoMKgNTguMDkzNDkyXSB4 MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIgOiAwMDAwMDAwMDAwMDAwMDAwDQo+ID4gwqAgW8KgwqDC oDU4LjA5ODgxNF0geDEgOiAwMDAwMDAwMDAwMDAwMDAwIHgwIDogMDAwMDAwMDAwMDAwMDAwMA0K PiA+IMKgIC4uLg0KPiA+IMKgIFvCoMKgwqA1OC4yMDU4MDBdIFs8wqDCoMKgwqDCoMKgwqDCoMKg wqAobnVsbCk+XcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAobnVsbCkNCj4gPiDCoCBbwqDCoMKgNTgu MjEwNTIxXSBbPGZmZmZmZjgwMDgwZjUyOTg+XSBleHBpcmVfdGltZXJzKzB4YTAvMHgxNGMNCj4g PiDCoCBbwqDCoMKgNTguMjE1OTM3XSBbPGZmZmZmZjgwMDgwZjU0MmM+XSBydW5fdGltZXJfc29m dGlycSsweGU4LzB4MTI4DQo+ID4gwqAgW8KgwqDCoDU4LjIyMTcwMl0gWzxmZmZmZmY4MDA4MDgx MTIwPl0gX19kb19zb2Z0aXJxKzB4Mjk4LzB4MzQ4DQo+ID4gwqAgW8KgwqDCoDU4LjIyNzExOF0g WzxmZmZmZmY4MDA4MGE2MzA0Pl0gaXJxX2V4aXQrMHg3NC8weGJjDQo+ID4gwqAgW8KgwqDCoDU4 LjIzMjAwOV0gWzxmZmZmZmY4MDA4MGUxN2RjPl0gX19oYW5kbGVfZG9tYWluX2lycSsweDc4LzB4 YWMNCj4gPiDCoCBbwqDCoMKgNTguMjM3ODU3XSBbPGZmZmZmZjgwMDgwODBjZjQ+XSBnaWNfaGFu ZGxlX2lycSsweDgwLzB4YWMNCj4gPiDCoCAuLi4NCj4gPiANCj4gPiBUaGUgY3Jhc2ggaGFwcGVu cyByb3VnaGx5IDEyNS4uMTMwbXMgYWZ0ZXIgdGhlIGRpc2Nvbm5lY3QuIFRoaXMNCj4gPiBjb3Jy ZWxhdGVzIHdpdGggdGhlICdkZWxheScgdGltZXIgdGhhdCBpcyBzdGFydGVkIG9uIGNlcnRhaW4g VVNCDQo+ID4gdHgvcngNCj4gPiBlcnJvcnMgaW4gdGhlIFVSQiBjb21wbGV0aW9uIGhhbmRsZXIu DQo+ID4gDQo+ID4gVGhlIHN1c3BlY3RlZCBwcm9ibGVtIGlzIGEgcmFjZSBvZiB1c2JuZXRfc3Rv cCgpIHdpdGgNCj4gPiB1c2JuZXRfc3RhcnRfeG1pdCgpLiBJbiB1c2JuZXRfc3RvcCgpIHdlIGNh bGwNCj4gPiB1c2JuZXRfdGVybWluYXRlX3VyYnMoKQ0KPiA+IHRvIGNhbmNlbCBhbGwgVVJCcyBp biBmbGlnaHQuIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiBubyBuZXcgVVJCcw0KPiA+IGFyZQ0K PiA+IHN1Ym1pdHRlZCBjb25jdXJyZW50bHksIHRob3VnaC4gQnV0IHRoZSB1c2JuZXRfc3RhcnRf eG1pdCgpIGNhbiBydW4NCj4gPiBhdA0KPiA+IHRoZSBzYW1lIHRpbWUgb24gYW5vdGhlciBDUFUg d2hpY2ggYWxtb3N0IHVuY29uZGl0aW9uYWxseSBzdWJtaXRzDQo+ID4gYW4NCj4gPiBVUkIuIFRo ZSBlcnJvciBjYWxsYmFjayBvZiB0aGUgbmV3IFVSQiB3aWxsIHRoZW4gc2NoZWR1bGUgdGhlIHRp bWVyDQo+ID4gYWZ0ZXIgaXQgd2FzIGFscmVhZHkgc3RvcHBlZC4NCj4gDQo+IEhpLA0KPiANCj4g aW50ZXJlc3RpbmcuIEhvdyBzdXJlIGFyZSB5b3Ugb2YgdGhlIGRldGFpbHMgb2YgeW91ciBhbmFs eXNpcz8NCg0KV2UgaGF2ZSBzZWVuIHRoZSBpc3N1ZSBzcG9yYWRpY2FsbHksIG1heWJlIG9uY2Ug YSBtb250aCwgb24gb3VyIElWSQ0Kc3lzdGVtIHdpdGggZG96ZW5zIG9mIHVuaXRzIGJlaW5nIHRl c3RlZCBhbGwgZGF5IGxvbmcuIFdlIGhhdmUgdGhlIGZpeA0KaW4gdGhlIGZpZWxkIHNpbmNlIHRo cmVlIG1vbnRocyBhbmQgZ290IG5vIGZ1cnRoZXIgcmVwb3J0cyBzbyBmYXIuIFNvDQpJJ20gcmVs YXRpdmVseSBvcHRpbWlzdGljIHRoYXQgdGhlIHBhdGNoIHNvbHZlcyB0aGUgcHJvYmxlbS4NCg0K PiBJIGFtIGFza2luZyBiZWNhdXNlIHVzYm5ldF9zdG9wKCkgZG9lcyBhIGRlbF90aW1lcl9zeW5j KCkuDQo+IEl0IGlzIGluZGVlZCB3cml0dGVuIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhl IHVwcGVyIGxheWVyDQo+IHdpbGwgaGF2ZSBjZWFzZWQgdHJhbnNtaXNzaW9uIHdoZW4gaXQgc3Rv cHMgYW4gaW50ZXJmYWNlLg0KDQpJIHRoaW5rIHRoaXMgYXNzdW1wdGlvbiBpcyBub3QgY29ycmVj dC4gQXMgZmFyIGFzIEkgdW5kZXJzdGFuZCB0aGUNCm5ldHdvcmtpbmcgY29kZSBpdCBpcyBzdGls bCBwb3NzaWJsZSB0aGF0IHRoZSBuZG9fc3RhcnRfeG1pdCBjYWxsYmFjaw0KaXMgY2FsbGVkIHdo aWxlIG5kb19zdG9wIGlzIHJ1bm5pbmcgYW5kIGV2ZW4gYWZ0ZXIgbmRvX3N0b3AgaGFzDQpyZXR1 cm5lZC4gWW91IGNhbiBvbmx5IGJlIHN1cmUgYWZ0ZXIgdW5yZWdpc3Rlcl9uZXRkZXYoKSBoYXMg cmV0dXJuZWQuDQpNYXliZSBzb21lIG5ldHdvcmtpbmcgZm9sa3MgY2FuIGNvbW1lbnQgb24gdGhh dC4NCg0KPiBTbyBJIGFtIHdvbmRlcmluZyB3aGV0aGVyIHRoZSBjb3JyZWN0IGZpeCB3b3VsZCBu b3QgYmUgdG8gbWFrZQ0KPiBzdXJlIHRoZSB0aW1lciBpcyBzdGFydGVkLg0KDQpJIHRoaW5rIHRo ZSByZWFsIHByb2JsZW0gaXMgdGhhdCBuZXcgVVJCcyBhcmUgc3VibWl0dGVkIGNvbmN1cnJlbnRs eS4NClRoZSB0aW1lciBpcyBqdXN0IGEgc2Vjb25kYXJ5IHByb2JsZW0gdGhhdCBibG93cyB1cCBs YXRlci4gQnV0IGlmIG15DQphYm92ZSBhc3N1bXB0aW9uIHdydC4gbmRvX3N0b3AvbmRvX3N0YXJ0 X3htaXQgaXMgbm90IGNvcnJlY3QgdGhlbiB0aGUNCnBhdGNoIHdvdWxkIGJlIGluZGVlZCB3cm9u Zy4NCg0KUmVnYXJkcywNCkphbgo=