From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mta21.hihonor.com (mta21.honor.com [81.70.160.142]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E23B417597 for ; Tue, 18 Feb 2025 02:51:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=81.70.160.142 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739847071; cv=none; b=LO0n2rKx3cikkpizDs4o5dmsRFoxryn3XxD1TV5Ccv1bw3oKLvWQ/0ZkmsfGtvgQj8+A2Y6j/NWO2EN7+T+kJEmq9o8PvWydooZyVhpGGv0UHVIrfwTa4YhSs8Wf5RKuPfV0fGuwYZh9DaSm7GAmE8Lyd25wjBIDKSd553rI6oY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739847071; c=relaxed/simple; bh=P405UDpZTeFjNC1+dD9AS62yWRFp1ndqDVHC8Aqn6V0=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=MCZkkn9Rs/vpR/x4E7qgrXSZPolbq/B0oeGrfk3j8BDqA4nzA0K9Bp/1Apht3HqBPHUO9f98YwRxl7DkTFOEfxHnQaRTEnMMfVfuzmhfs+KDRMm860nMDehCyy9AH40tqBLHnxnCO9J7HGyZsmTgMbwPXBCLlzIbxJm9b5aDkfs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=honor.com; spf=pass smtp.mailfrom=honor.com; arc=none smtp.client-ip=81.70.160.142 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=honor.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=honor.com Received: from w013.hihonor.com (unknown [10.68.26.19]) by mta21.hihonor.com (SkyGuard) with ESMTPS id 4YxkXK2W9YzYkyMK; Tue, 18 Feb 2025 10:50:09 +0800 (CST) Received: from a008.hihonor.com (10.68.30.56) by w013.hihonor.com (10.68.26.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 18 Feb 2025 10:51:01 +0800 Received: from a007.hihonor.com (10.68.22.31) by a008.hihonor.com (10.68.30.56) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 18 Feb 2025 10:51:00 +0800 Received: from a007.hihonor.com ([fe80::e866:83ac:f23b:c25c]) by a007.hihonor.com ([fe80::e866:83ac:f23b:c25c%10]) with mapi id 15.02.1544.011; Tue, 18 Feb 2025 10:51:00 +0800 From: gaoxu To: Barry Song <21cnbao@gmail.com> CC: Andrew Morton , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Suren Baghdasaryan , Yosry Ahmed , yipengxiang Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjNdIG1tOiBGaXggcG9zc2libGUgTlVMTCBwb2lu?= =?utf-8?B?dGVyIGRlcmVmZXJlbmNlIGluIF9fc3dhcF9kdXBsaWNhdGU=?= Thread-Topic: [PATCH v3] mm: Fix possible NULL pointer dereference in __swap_duplicate Thread-Index: Adt/iIz/pSZ7Q3r8TEmsD6w3AazKUAASHxkAAHYtS4A= Date: Tue, 18 Feb 2025 02:51:00 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 PiANCj4gT24gU2F0LCBGZWIgMTUsIDIwMjUgYXQgMTA6MDXigK9QTSBnYW94dSA8Z2FveHUyQGhv bm9yLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBBZGQgYSBOVUxMIGNoZWNrIG9uIHRoZSByZXR1cm4g dmFsdWUgb2Ygc3dwX3N3YXBfaW5mbyBpbg0KPiA+IF9fc3dhcF9kdXBsaWNhdGUgdG8gcHJldmVu dCBjcmFzaGVzIGNhdXNlZCBieSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuDQo+ID4NCj4gPiBU aGUgcmVhc29uIHdoeSBzd3Bfc3dhcF9pbmZvKCkgcmV0dXJucyBOVUxMIGlzIHVuY2xlYXI7IGl0 IG1heSBiZSBkdWUNCj4gPiB0byBDUFUgY2FjaGUgaXNzdWVzIG9yIEREUiBiaXQgZmxpcHMuIFRo ZSBwcm9iYWJpbGl0eSBvZiB0aGlzIGlzc3VlIGlzDQo+ID4gdmVyeSBzbWFsbCwgYW5kIHRoZSBz dGFjayBpbmZvIHdlIGVuY291bnRlcmVkIGlzIGFzIGZvbGxvd3PvvJoNCj4gPiBVbmFibGUgdG8g aGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNz DQo+ID4gMDAwMDAwMDAwMDAwMDA1OA0KPiA+IFtSQi9FXXJiX3NyZWFzb25fc3RyX3NldDogc3Jl YXNvbl9zdHIgc2V0IG51bGxfcG9pbnRlciBNZW0gYWJvcnQgaW5mbzoNCj4gPiAgIEVTUiA9IDB4 MDAwMDAwMDA5NjAwMDAwNQ0KPiA+ICAgRUMgPSAweDI1OiBEQUJUIChjdXJyZW50IEVMKSwgSUwg PSAzMiBiaXRzDQo+ID4gICBTRVQgPSAwLCBGblYgPSAwDQo+ID4gICBFQSA9IDAsIFMxUFRXID0g MA0KPiA+ICAgRlNDID0gMHgwNTogbGV2ZWwgMSB0cmFuc2xhdGlvbiBmYXVsdCBEYXRhIGFib3J0 IGluZm86DQo+ID4gICBJU1YgPSAwLCBJU1MgPSAweDAwMDAwMDA1LCBJU1MyID0gMHgwMDAwMDAw MA0KPiA+ICAgQ00gPSAwLCBXblIgPSAwLCBUbkQgPSAwLCBUYWdBY2Nlc3MgPSAwDQo+ID4gICBH Q1MgPSAwLCBPdmVybGF5ID0gMCwgRGlydHlCaXQgPSAwLCBYcyA9IDAgdXNlciBwZ3RhYmxlOiA0 ayBwYWdlcywNCj4gPiAzOS1iaXQgVkFzLCBwZ2RwPTAwMDAwMDA4YTgwZTUwMDAgWzAwMDAwMDAw MDAwMDAwNThdDQo+ID4gcGdkPTAwMDAwMDAwMDAwMDAwMDAsIHA0ZD0wMDAwMDAwMDAwMDAwMDAw LA0KPiA+IHB1ZD0wMDAwMDAwMDAwMDAwMDAwDQo+ID4gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDAw MDAwMDAwOTYwMDAwMDUgWyMxXSBQUkVFTVBUIFNNUCBTa2lwIG1kIGZ0cmFjZQ0KPiA+IGJ1ZmZl ciBkdW1wIGZvcjogMHgxNjA5ZTAgLi4uDQo+ID4gcGMgOiBzd2FwX2R1cGxpY2F0ZSsweDQ0LzB4 MTY0DQo+ID4gbHIgOiBjb3B5X3BhZ2VfcmFuZ2UrMHg1MDgvMHgxZTc4DQo+ID4gc3AgOiBmZmZm ZmZjMGYyYTY5OWUwDQo+ID4geDI5OiBmZmZmZmZjMGYyYTY5OWUwIHgyODogZmZmZmZmOGE1YjI4 ZDM4OCB4Mjc6IGZmZmZmZjhiMDY2MDMzODgNCj4gPiB4MjY6IGZmZmZmZmRmNzI5MWZlNzAgeDI1 OiAwMDAwMDAwMDAwMDAwMDA2IHgyNDogMDAwMDAwMDAwMDEwMDA3Mw0KPiA+IHgyMzogMDAwMDAw MDAwMDJkMmQyZiB4MjI6IDAwMDAwMDAwMDAwMDAwMDggeDIxOiAwMDAwMDAwMDAwMDAwMDAwDQo+ ID4geDIwOiAwMDAwMDAwMDAwMmQyZDJmIHgxOTogMTgwMDAwMDAwMDJkMmQyZiB4MTg6IGZmZmZm ZmRmNzI2ZmFlYzANCj4gPiB4MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2OiAwMDEwMDAwMDAwMDAw MDAxIHgxNTogMDA0MDAwMDAwMDAwMDAwMQ0KPiA+IHgxNDogMDQwMDAwMDAwMDAwMDAwMSB4MTM6 IGZmN2ZmZmZmZmZmZmZiN2YgeDEyOiBmZmVmZmZmZmZmZmZmYmZmDQo+ID4geDExOiBmZmZmZmY4 YTVjN2UxODk4IHgxMDogMDAwMDAwMDAwMDAwMDAxOCB4OSA6IDAwMDAwMDAwMDAwMDAwMDYNCj4g PiB4OCA6IDE4MDAwMDAwMDAwMDAwMDAgeDcgOiAwMDAwMDAwMDAwMDAwMDAwIHg2IDogZmZmZmZm ODA1N2MwMWYxMA0KPiA+IHg1IDogMDAwMDAwMDAwMDAwYTMxOCB4NCA6IDAwMDAwMDAwMDAwMDAw MDAgeDMgOiAwMDAwMDAwMDAwMDAwMDAwDQo+ID4geDIgOiAwMDAwMDA2ZGFmMjAwMDAwIHgxIDog MDAwMDAwMDAwMDAwMDAwMSB4MCA6IDE4MDAwMDAwMDAyZDJkMmYgQ2FsbA0KPiA+IHRyYWNlOg0K PiA+ICBzd2FwX2R1cGxpY2F0ZSsweDQ0LzB4MTY0DQo+ID4gIGNvcHlfcGFnZV9yYW5nZSsweDUw OC8weDFlNzgNCj4gDQo+IFRoaXMgaXMgcmVhbGx5IHN0cmFuZ2Ugc2luY2Ugd2UgYWxyZWFkeSBo YXZlIGEgc3dhcCBlbnRyeSBjaGVjayBiZWZvcmUgY2FsbGluZw0KPiBzd2FwX2R1cGxpY2F0ZSgp Lg0KPiANCj4gY29weV9ub25wcmVzZW50X3B0ZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3RfbW0sIHN0 cnVjdCBtbV9zdHJ1Y3QgKnNyY19tbSwNCj4gICAgICAgICAgICAgICAgIHB0ZV90ICpkc3RfcHRl LCBwdGVfdCAqc3JjX3B0ZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0DQo+ICpkc3Rfdm1hLA0KPiAg ICAgICAgICAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpzcmNfdm1hLCB1bnNpZ25lZCBs b25nIGFkZHIsIGludA0KPiAqcnNzKSB7DQo+ICAgICAgICAgdW5zaWduZWQgbG9uZyB2bV9mbGFn cyA9IGRzdF92bWEtPnZtX2ZsYWdzOw0KPiAgICAgICAgIHB0ZV90IG9yaWdfcHRlID0gcHRlcF9n ZXQoc3JjX3B0ZSk7DQo+ICAgICAgICAgcHRlX3QgcHRlID0gb3JpZ19wdGU7DQo+ICAgICAgICAg c3RydWN0IGZvbGlvICpmb2xpbzsNCj4gICAgICAgICBzdHJ1Y3QgcGFnZSAqcGFnZTsNCj4gICAg ICAgICBzd3BfZW50cnlfdCBlbnRyeSA9IHB0ZV90b19zd3BfZW50cnkob3JpZ19wdGUpOw0KPiAN Cj4gICAgICAgICBpZiAobGlrZWx5KCFub25fc3dhcF9lbnRyeShlbnRyeSkpKSB7DQo+ICAgICAg ICAgICAgICAgICBpZiAoc3dhcF9kdXBsaWNhdGUoZW50cnkpIDwgMCkNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU87DQo+IC4uLg0KPiB9DQo+IA0KPiBsaWtlbHkgdGhlIHN3 YXBfdHlwZSBpcyBsYXJnZXIgdGhhbiBNQVhfU1dBUEZJTEVTIHNvIHdlIGdldCBhIE5VTEw/DQo+ IA0KPiBzdGF0aWMgc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnN3YXBfdHlwZV90b19zd2FwX2lu Zm8oaW50IHR5cGUpIHsNCj4gICAgICAgICBpZiAodHlwZSA+PSBNQVhfU1dBUEZJTEVTKQ0KPiAg ICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+IA0KPiAgICAgICAgIHJldHVybiBSRUFEX09O Q0Uoc3dhcF9pbmZvW3R5cGVdKTsgLyogcmN1X2RlcmVmZXJlbmNlKCkgKi8gfQ0KPiANCj4gQnV0 IG5vbl9zd2FwX2VudHJ5KCkgZ3VhcmFudGVlcyB0aGF0IHN3cF90eXBlIGlzIHNtYWxsZXIgdGhh bg0KPiBNQVhfU1dBUEZJTEVTLg0KPiANCj4gc3RhdGljIGlubGluZSBpbnQgbm9uX3N3YXBfZW50 cnkoc3dwX2VudHJ5X3QgZW50cnkpIHsNCj4gICAgICAgICByZXR1cm4gc3dwX3R5cGUoZW50cnkp ID49IE1BWF9TV0FQRklMRVM7IH0NCj4gDQo+IFNvIGFub3RoZXIgcG9zc2liaWxpdHkgaXMgdGhh dCB3ZSBoYXZlIGFuIG92ZXJmbG93IG9mIHN3YXBfaW5mb1tdIHdoZXJlIHR5cGUgaXMgPA0KPiBN QVhfU1dBUEZJTEVTIGJ1dCBpcyBub3QgYSB2YWxpZCBleGlzdGluZyBzd2FwZmlsZT8NCkluIHRo ZSBsb2cgb2YgdGhpcyBpc3N1ZSwgdGhlcmUgaXMgYSBwcmludGVkIGVudHJ5OiBnZXRfc3dhcF9k ZXZpY2U6DQpCYWQgc3dhcCBmaWxlIGVudHJ5IDE4MDAwMDAwMDAyZDJkMmYuDQpJdCBjYW4gYmUg Y2FsY3VsYXRlZCB0aGF0IHN3cF90eXBlKDE4MDAwMDAwMDAyZDJkMmYpID0gNi4NCkluIHRoZSBB bmRyb2lkIDE1LWxpbnV4Ni42Og0Kc3lzdGVtOiBNQVhfU1dBUEZJTEVTID0gMjgsIG5yX3N3YXBm aWxlcyA9IDEuDQpTaW5jZSBzd3BfdHlwZSgxODAwMDAwMDAwMmQyZDJmKT02IGlzIGxlc3MgdGhh biBNQVhfU1dBUEZJTEVTIGJ1dCBncmVhdGVyDQp0aGFuIG5yX3N3YXBmaWxlcywgdGhlIHZhbHVl IG9mIHRoaXMgZW50cnkgaXMgYWJub3JtYWwuDQoNCnN0YXRpYyB1bnNpZ25lZCBpbnQgbnJfc3dh cGZpbGVzOw0Kc3RhdGljIHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzd2FwX2luZm9bTUFYX1NX QVBGSUxFU107DQpzd2FwX2luZm8gaXMgYSBzdGF0aWMgYXJyYXksIHdpdGggaXRzIHZhbHVlcyBp bml0aWFsaXplZCB0byAwLiANClRoZSBzaXplIG9mIHRoZSBhcnJheSBpcyBNQVhfU1dBUEZJTEVT LCBhbmQgdGhlIHNpemUgb2YgdmFsaWQgdmFsdWVzIGluIHRoZSBhcnJheSBpcw0KbnJfc3dhcGZp bGVzLiBUaGVyZWZvcmUsIHdoZW4gd2UgdmFsaWRhdGUgdGhlIHZhbGlkaXR5IG9mIHN3cF90eXBl KGVudHJ5KSwNCndlIHNob3VsZCBjb21wYXJlIGl0IHdpdGggbnJfc3dhcGZpbGVzLCBub3QgTUFY X1NXQVBGSUxFUy4NClRoZSBjb2RlIGZvciB2YWxpZGF0aW5nIHN3cF90eXBlIG1heSBuZWVkIHRv IGJlIG1vZGlmaWVkIGFzIGZvbGxvd3M6DQpzdGF0aWMgaW5saW5lIGludCBub25fc3dhcF9lbnRy eShzd3BfZW50cnlfdCBlbnRyeSkNCnsNCi0JcmV0dXJuIHN3cF90eXBlKGVudHJ5KSA+PSBNQVhf U1dBUEZJTEVTOw0KKwlyZXR1cm4gc3dwX3R5cGUoZW50cnkpID49IG5yX3N3YXBmaWxlczsNCn0N Cg0Kc3RhdGljIHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpzd2FwX3R5cGVfdG9fc3dhcF9pbmZv KGludCB0eXBlKQ0Kew0KLQlpZiAodHlwZSA+PSBNQVhfU1dBUEZJTEVTKQ0KKwlpZiAodHlwZSA+ PSBucl9zd2FwZmlsZXMpDQoJCXJldHVybiBOVUxMOw0KDQoJcmV0dXJuIFJFQURfT05DRShzd2Fw X2luZm9bdHlwZV0pOyAvKiByY3VfZGVyZWZlcmVuY2UoKSAqLw0KfQ0KPiANCj4gSSBkb24ndCBz ZWUgaG93IHRoZSBjdXJyZW50IHBhdGNoIGNvbnRyaWJ1dGVzIHRvIGRlYnVnZ2luZyBvciBmaXhp bmcgYW55dGhpbmcNCj4gcmVsYXRlZCB0byB0aGlzIGR1bXBlZCBzdGFjay4gQ2FuIHdlIGR1bXAg c3dwX3R5cGUoKSBhcyB3ZWxsPw0KPiANCj4gPiAgY29weV9wcm9jZXNzKzB4MTI3OC8weDIxY2MN Cj4gPiAga2VybmVsX2Nsb25lKzB4OTAvMHg0MzgNCj4gPiAgX19hcm02NF9zeXNfY2xvbmUrMHg1 Yy8weDhjDQo+ID4gIGludm9rZV9zeXNjYWxsKzB4NTgvMHgxMTANCj4gPiAgZG9fZWwwX3N2Yysw eDhjLzB4ZTANCj4gPiAgZWwwX3N2YysweDM4LzB4OWMNCj4gPiAgZWwwdF82NF9zeW5jX2hhbmRs ZXIrMHg0NC8weGVjDQo+ID4gIGVsMHRfNjRfc3luYysweDFhOC8weDFhYw0KPiA+IENvZGU6IDkx MzljMzVhIDcxMDA2ZjNmIDU0MDAwNTY4IGY4Nzk3YjU1IChmOTQwMmVhOCkgLS0tWyBlbmQgdHJh Y2UNCj4gPiAwMDAwMDAwMDAwMDAwMDAwIF0tLS0gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6 IE9vcHM6IEZhdGFsDQo+ID4gZXhjZXB0aW9uDQo+ID4gU01QOiBzdG9wcGluZyBzZWNvbmRhcnkg Q1BVcw0KPiA+DQo+ID4gVGhlIHBhdGNoIHNlZW1zIHRvIG9ubHkgcHJvdmlkZSBhIHdvcmthcm91 bmQsIGJ1dCB0aGVyZSBhcmUgbm8gbW9yZQ0KPiA+IGVmZmVjdGl2ZSBzb2Z0d2FyZSBzb2x1dGlv bnMgdG8gaGFuZGxlIHRoZSBiaXQgZmxpcHMgcHJvYmxlbS4gVGhpcw0KPiA+IHBhdGggd2lsbCBj aGFuZ2UgdGhlIGlzc3VlIGZyb20gYSBzeXN0ZW0gY3Jhc2ggdG8gYSBwcm9jZXNzIGV4Y2VwdGlv biwNCj4gPiB0aGVyZWJ5IHJlZHVjaW5nIHRoZSBpbXBhY3Qgb24gdGhlIGVudGlyZSBtYWNoaW5l Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogZ2FvIHh1IDxnYW94dTJAaG9ub3IuY29tPg0KPiA+ IC0tLQ0KPiA+IHYxIC0+IHYyOg0KPiA+IC0gQWRkIFdBUk5fT05fT05DRS4NCj4gPiAtIHVwZGF0 ZSB0aGUgY29tbWl0IGluZm8uDQo+ID4gdjIgLT4gdjM6IERlbGV0ZSB0aGUgcmV2aWV3IHRhZ3Mg KFRoaXMgaXMgbXkgaXNzdWUsIGFuZCBJIGFwb2xvZ2l6ZSkuDQo+ID4gLS0tDQo+ID4NCj4gPiBt bS9zd2FwZmlsZS5jIHwgMiArKw0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbW0vc3dhcGZpbGUuYyBiL21tL3N3YXBmaWxlLmMgaW5k ZXggNzQ0OGEzODc2Li5hMGJmZGJhOTQNCj4gPiAxMDA2NDQNCj4gPiAtLS0gYS9tbS9zd2FwZmls ZS5jDQo+ID4gKysrIGIvbW0vc3dhcGZpbGUuYw0KPiA+IEBAIC0zNTIxLDYgKzM1MjEsOCBAQCBz dGF0aWMgaW50IF9fc3dhcF9kdXBsaWNhdGUoc3dwX2VudHJ5X3QgZW50cnksDQo+IHVuc2lnbmVk IGNoYXIgdXNhZ2UsIGludCBucikNCj4gPiAgICAgICAgIGludCBlcnIsIGk7DQo+ID4NCj4gPiAg ICAgICAgIHNpID0gc3dwX3N3YXBfaW5mbyhlbnRyeSk7DQo+ID4gKyAgICAgICBpZiAoV0FSTl9P Tl9PTkNFKCFzaSkpDQo+IA0KPiBJIG1lYW4sIHByaW50ayBzb21ldGhpbmcgcmVsYXRlZCB0byBz d3BfdHlwZSgpLiBUaGlzIGlzIHJlYWxseSBzdHJhbmdlLCBidXQgdGhlDQo+IGN1cnJlbnQgc3Rh Y2sgd29uJ3QgaGVscCB3aXRoIGRlYnVnZ2luZy4NClRoZSBsb2cgY2FuIGZpbmQgaW5mbyByZWxh dGVkIHRvICJnZXRfc3dhcF9kZXZpY2U6IEJhZCBzd2FwIGZpbGUgZW50cnkgeHh4Ig0Kd2hlbiBh biBlbnRyeSBlbmNvdW50ZXJzIGFuIGV4Y2VwdGlvbi4gDQpBZGQgYSBwcmludCBpbmZvIGxvZyBs aWtlIHRoZSBmb2xsb3dpbmc6DQpwcl9lcnIoIiVzJTA4ZFxuIiwgQmFkIHN3YXAgdHlwZSwgc3dw X3R5cGUoZW50cnkpKTsNCj4gDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K PiA+DQo+ID4gICAgICAgICBvZmZzZXQgPSBzd3Bfb2Zmc2V0KGVudHJ5KTsNCj4gPiAgICAgICAg IFZNX1dBUk5fT04obnIgPiBTV0FQRklMRV9DTFVTVEVSIC0gb2Zmc2V0ICUNCj4gU1dBUEZJTEVf Q0xVU1RFUik7DQo+ID4gLS0NCj4gPiAyLjE3LjENCj4gDQo+IFRoYW5rcw0KPiBCYXJyeQ0K