Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp568996yba; Wed, 15 May 2019 06:20:43 -0700 (PDT) X-Google-Smtp-Source: APXvYqwAMA9TY1t9dwEp4Ml22yuteCgKdZmFTZ2g7sXAyZmQI/GbvruKGSrdk3JrNhI15Y9nTBS1 X-Received: by 2002:a63:c64c:: with SMTP id x12mr43972009pgg.379.1557926443430; Wed, 15 May 2019 06:20:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557926443; cv=none; d=google.com; s=arc-20160816; b=OmHgC8FeTj5iHeoTZmbfOwbQwMVzVxSHXugIGBUBmGC7lKvBbBlPdufj/jQDEIRk7m mNffxOfe2PlZs2zgpsc5dcK3q4o0PywWe2MRqNG5Fz5lAoChTXvqTRqjch82uPVVDS0C wVCoFRHNgwf+BP6532XCqi1REdeIMfjie64icff9eyi9aodUPAA/6ae3wd7mCfxueN8r yt+oA7zGdUYirfnhLmRCrEO4Fx8Gi5WQjBaU2KTMB8VFqdAPJHhah+IXqilc1dNdeNqy qKETJ02mrAOULEI51N3v00KKAtBhcfYRBqzMT1hwlw6YJsT/EVFWoXCEkEr9jdE+v/4D FbRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=ePt4pOeKnmN0qfdz2sQZdCE7G+B4hWqqBgsAvEHbCQc=; b=Skzamjzw3b84KGp2WpKShaHXg1w3CbCEt6eNKTmOLbd7lV7n2GrIxMD2+OJ6wUH1zc VXcihapfZvL0LTwG08TVQZ1EDAwo28br3nLVaeTy5AUMjwckzFA++Y7mJVYUvKYSQfL/ puy5ezcLzGfPlnIbJipTmMWwWhBrLBTpLIuqzUialnIvOW5NG/SR3r5GO/BwVTe2h9Dt JKw3NrjvnQekh6iq5Kt20i3uF8lsW6P0mVefhZoI/4GiPCgAbz/R+KsPZifm2mbPmbn6 aG3Q3Ga/cv46FcXBb24DnnLc43WUXxpgA8SGNR6zM5NYXi9oNUK8sRUqgGUEVm9hsRO5 0eBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@camlinlimited.onmicrosoft.com header.s=selector1-camlinlimited-onmicrosoft-com header.b=MJkkjIch; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c18si2117513pfp.284.2019.05.15.06.20.27; Wed, 15 May 2019 06:20:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@camlinlimited.onmicrosoft.com header.s=selector1-camlinlimited-onmicrosoft-com header.b=MJkkjIch; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727943AbfEONTE (ORCPT + 99 others); Wed, 15 May 2019 09:19:04 -0400 Received: from mail-eopbgr110087.outbound.protection.outlook.com ([40.107.11.87]:25376 "EHLO GBR01-CWL-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727388AbfEONTD (ORCPT ); Wed, 15 May 2019 09:19:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=camlinlimited.onmicrosoft.com; s=selector1-camlinlimited-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ePt4pOeKnmN0qfdz2sQZdCE7G+B4hWqqBgsAvEHbCQc=; b=MJkkjIch3alkJaxAwWT3wH0YwPcDqweOKa89ideP5pPgwrfJXGXvnHWUSqEcWg/boY704mKOQRKcfHeGmDisK2z0S7Hu1RnMgHUItW0aFexne5vWEAouDEqWo9oIqrEFivLqBk/qZkvZ9Mj5j1FTGRpzked1vkbKhumzrX/eAjA= Received: from LO2P123MB1776.GBRP123.PROD.OUTLOOK.COM (20.176.155.215) by LO2P123MB2080.GBRP123.PROD.OUTLOOK.COM (20.176.155.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.16; Wed, 15 May 2019 13:18:58 +0000 Received: from LO2P123MB1776.GBRP123.PROD.OUTLOOK.COM ([fe80::50e4:5d16:56d4:9572]) by LO2P123MB1776.GBRP123.PROD.OUTLOOK.COM ([fe80::50e4:5d16:56d4:9572%6]) with mapi id 15.20.1900.010; Wed, 15 May 2019 13:18:58 +0000 From: Lech Perczak To: Al Viro , Eric Dumazet CC: "linux-kernel@vger.kernel.org" , Piotr Figiel , =?utf-8?B?S3J6eXN6dG9mIERyb2JpxYRza2k=?= , Pawel Lenkow , "linux-mm@kvack.org" Subject: Re: Recurring warning in page_copy_sane (inside copy_page_to_iter) when running stress tests involving drop_caches Thread-Topic: Recurring warning in page_copy_sane (inside copy_page_to_iter) when running stress tests involving drop_caches Thread-Index: AQHU+0je8+eBBHiobkyiBc3+zJz+BKZOQv6AgB4H7wA= Date: Wed, 15 May 2019 13:18:58 +0000 Message-ID: <011a16e4-6aff-104c-a19b-d2bd11caba99@camlintechnologies.com> References: <14c9e6f4-3fb8-ca22-91cc-6970f1d52265@camlintechnologies.com> In-Reply-To: <14c9e6f4-3fb8-ca22-91cc-6970f1d52265@camlintechnologies.com> Accept-Language: pl-PL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM5PR0502CA0005.eurprd05.prod.outlook.com (2603:10a6:203:91::15) To LO2P123MB1776.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:c6::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=l.perczak@camlintechnologies.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [95.143.242.242] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8c200f42-a819-4c1c-15b9-08d6d937e35e x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:LO2P123MB2080; x-ms-traffictypediagnostic: LO2P123MB2080: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0038DE95A2 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(376002)(346002)(396003)(39850400004)(136003)(199004)(189003)(55674003)(446003)(5660300002)(99286004)(52116002)(186003)(110136005)(26005)(2616005)(54906003)(68736007)(476003)(11346002)(45080400002)(31686004)(8676002)(81156014)(3846002)(6116002)(486006)(8936002)(7736002)(229853002)(4326008)(81166006)(14454004)(6246003)(6486002)(478600001)(966005)(71190400001)(71200400001)(305945005)(14444005)(256004)(66556008)(64756008)(25786009)(66946007)(66066001)(66476007)(73956011)(66446008)(2906002)(6436002)(102836004)(53936002)(76176011)(386003)(6506007)(86362001)(36756003)(31696002)(6512007)(6306002)(316002);DIR:OUT;SFP:1101;SCL:1;SRVR:LO2P123MB2080;H:LO2P123MB1776.GBRP123.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: camlintechnologies.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: j/qqS8z0Q7Rn/Fv+2jjkdxJCu2H/4C2iq4zh+o+h33nYn/EiNNayWJwp2cENr7AFEZ9ja+8PYE0g6b3XuuNUtgs85lGdxWoWruWOsc2op7k0uPCI3cdc07cqPb1Qy5FEXN2FOXTzNIMRndKUpiYCC/44yQ76Y1PY9llZCsXO4s2/RRAllgP9uSh+iON6rdstmx7xMx/ZJlAUlFfZsgvuxNbVNDvycefrdRF9csFUkrpTdOAY/7rljraWJZF/IDO8Ynnsz/vP+NxBwG/CHRkpJ7wsHFt/SbvXjVJNFj/8TMyJ7Qf0IoKWThdiyiMNRVwO8IxEhkztratcp3xAmmgBy8mnDYk9pqGGZWPEbsUGscmMTm/gM1XahB+xrq5c67G3sFW1VFQYWsPHSgAjymgAXYSwh8BvtVPIkmbuyEGm6EQ= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: camlintechnologies.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c200f42-a819-4c1c-15b9-08d6d937e35e X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2019 13:18:58.2855 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fd4b1729-b18d-46d2-9ba0-2717b852b252 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO2P123MB2080 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGksDQoNClcgZG5pdSAyNi4wNC4yMDE5IG/CoDEwOjQyLCBMZWNoIFBlcmN6YWsgcGlzemU6DQo+ IENjIGxpbnV4LW1tQGt2YWNrLm9yZw0KPg0KPiBXIGRuaXUgMjUuMDQuMjAxOSBvwqAxMToyNSwg TGVjaCBQZXJjemFrIHBpc3plOg0KPj4gSGVsbG8sDQo+Pg0KPj4gU29tZSB0aW1lIGFnbywgYWZ0 ZXIgdXBncmFkaW5nIHRoZSBLZXJuZWwgb24gb3VyIGkuTVg2US1iYXNlZCBib2FyZHMgdG8gbWFp bmxpbmUgNC4xOCwgYW5kIG5vdyB0byBMVFMgNC4xOSBsaW5lLCBkdXJpbmcgc3RyZXNzIHRlc3Rz IHdlIHN0YXJ0ZWQgbm90aWNpbmcgc3RyYW5nZSB3YXJuaW5ncyBjb21pbmcgZnJvbSAncmVhZCcg c3lzY2FsbCwgd2hlbiBwYWdlX2NvcHlfc2FuZSgpIGNoZWNrIGZhaWxlZC4gVHlwaWNhbCByZXBy b2R1Y2liaWxpdHkgaXMgdXAgdG8gfjQgZXZlbnRzIHBlciAyNGguIFdhcm5pbmdzIG9yaWdpbiBm cm9tIGRpZmZlcmVudCBwcm9jZXNzZXMsIG1vc3RseSBpbnZvbHZlZCB3aXRoIHRoZSBzdHJlc3Mg dGVzdHMsIGJ1dCBub3QgbmVjZXNzYXJpbHkgd2l0aCBibG9jayBkZXZpY2VzIHdlJ3JlIHN0cmVz c2luZy4gSWYgdGhlIHdhcm5pbmcgYXBwZWFyZWQgaW4gcHJvY2VzcyByZWxhdGluZyB0byBibG9j ayBkZXZpY2Ugc3RyZXNzIHRlc3QsIGl0IHdvdWxkIGJlIGFjY29tcGFuaWVkIGJ5IGNvcnJ1cHRl ZCBkYXRhLCBhcyB0aGUgcmVhZCBvcGVyYXRpb24gZ2V0cyBhYm9ydGVkLiANCj4+IE91ciByZWFz b24gZm9yIGRyb3BwaW5nIGNhY2hlcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgYWN0dWFsIGJsb2Nr IGRldmljZSBnZXRzIGFjY2Vzc2VkIGR1cmluZyB0aGUgdGVzdCB3aXRob3V0IHJlc29ydGluZyB0 byBPX0RJUkVDVC4NCj4+IFdoZW4gZHJvcHBpbmcgY2FjaGVzIHdhcyBkaXNhYmxlZCBpbiB0aGUg dGVzdHMsIHRoZSBpc3N1ZSB3b3VsZCBhbHNvIGRpc2FwcGVhciwgYXQgbGVhc3QgaW4gYSBzaW5n bGUtd2VlayBydW4uDQo+Pg0KPj4gRXhhbXBsZSBwcm9jZXNzZXMgY2F1Z2h0IGluIHRoZSBsYXN0 IHJ1biAoZ3JlcHBlZCBmcm9tIHN0YWNrdHJhY2VzKToNCj4+IFszODEyOC40MzA2OTRdIENQVTog MiBQSUQ6IDMyNzM1IENvbW06IGdsbWFyazIgTm90IHRhaW50ZWQgNC4xOS4zMi1kZXZib2FyZGlt eDZxK2cwYTY0ZTM3MTc5ODUgIzENCj4+IFs0NDE2OC4wODE4MjFdIENQVTogMiBQSUQ6IDIxNTU1 IENvbW06IGNhdCBUYWludGVkOiBHwqDCoMKgwqDCoMKgwqAgV8KgwqDCoMKgwqDCoMKgwqAgNC4x OS4zMi1kZXZib2FyZGlteDZxK2cwYTY0ZTM3MTc5ODUgIzENCj4+IFs3NTg3OS40MjQwNzZdIENQ VTogMyBQSUQ6IDE0NzggQ29tbTogZmxhc2hjcCBUYWludGVkOiBHwqDCoMKgwqDCoMKgwqAgV8Kg wqDCoMKgwqDCoMKgwqAgNC4xOS4zMi1kZXZib2FyZGlteDZxK2cwYTY0ZTM3MTc5ODUgIzENCj4+ IFsxMTcwNjAuOTUxMzMzXSBDUFU6IDEgUElEOiAxNDE1MCBDb21tOiBjYXQgVGFpbnRlZDogR8Kg wqDCoMKgwqDCoMKgIFfCoMKgwqDCoMKgwqDCoMKgIDQuMTkuMzItZGV2Ym9hcmRpbXg2cStnMGE2 NGUzNzE3OTg1ICMxDQo+PiBbMjAxNjY4LjQzODIxOV0gQ1BVOiAxIFBJRDogMTQzNzAgQ29tbTog Z2xtYXJrMiBUYWludGVkOiBHwqDCoMKgwqDCoMKgwqAgV8KgwqDCoMKgwqDCoMKgwqAgNC4xOS4z Mi1kZXZib2FyZGlteDZxK2cwYTY0ZTM3MTc5ODUgIzENCj4+IFsyMTQzMzIuMjEyOTYwXSBDUFU6 IDAgUElEOiAyNTYzMyBDb21tOiBjcCBUYWludGVkOiBHwqDCoMKgwqDCoMKgwqAgV8KgwqDCoMKg wqDCoMKgwqAgNC4xOS4zMi1kZXZib2FyZGlteDZxK2cwYTY0ZTM3MTc5ODUgIzENCj4+IFsyODM0 ODQuNjE5MDU4XSBDUFU6IDAgUElEOiA1MDkxIENvbW06IGdsbWFyazIgVGFpbnRlZDogR8KgwqDC oMKgwqDCoMKgIFfCoMKgwqDCoMKgwqDCoMKgIDQuMTkuMzItZGV2Ym9hcmRpbXg2cStnMGE2NGUz NzE3OTg1ICMxDQo+PiBbMzMwMjU2LjcwOTEyNF0gQ1BVOiAyIFBJRDogNDU2NSBDb21tOiBzZW5z b3JzIFRhaW50ZWQ6IEfCoMKgwqDCoMKgwqDCoCBXwqDCoMKgwqDCoMKgwqDCoCA0LjE5LjMyLWRl dmJvYXJkaW14NnErZzBhNjRlMzcxNzk4NSAjMQ0KPj4gWzMzNzY4NS41NDk1NTZdIENQVTogMiBQ SUQ6IDMwMTMyIENvbW06IHNlbnNvcnMgVGFpbnRlZDogR8KgwqDCoMKgwqDCoMKgIFfCoMKgwqDC oMKgwqDCoMKgIDQuMTkuMzItZGV2Ym9hcmRpbXg2cStnMGE2NGUzNzE3OTg1ICMxDQo+Pg0KPj4g V2hlbiBJIHN0YXJ0ZWQgZGVidWdnaW5nIHRoZSBpc3N1ZSwgSSBub3RpY2VkIHRoYXQgaW4gYWxs IGNhc2VzIHdlJ3JlIGRlYWxpbmcgd2l0aCBoaWdobWVtIHplcm8tb3JkZXIgcGFnZXMuIEluIHRo aXMgY2FzZSwgcGFnZV9oZWFkKHBhZ2UpID09IHBhZ2UsIHNvIHBhZ2VfYWRkcmVzcyhwYWdlKSBz aG91bGQgYmUgZXF1YWwgdG8gcGFnZV9hZGRyZXNzKGhlYWQpLg0KPj4gSG93ZXZlciwgaXQgaXNu J3QgdGhlIGNhc2UsIGFzIHBhZ2VfYWRkcmVzcyhoZWFkKSBpbiBlYWNoIGNhc2UgcmV0dXJucyB6 ZXJvLCBjYXVzaW5nIHRoZSB2YWx1ZSBvZiAidiIgdG8gZXhwbG9kZSwgYW5kIHRoZSBjaGVjayB0 byBmYWlsLg0KPj4NCj4+IEF0IGZpcnN0IEkgdGhvdWdodCwgdGhhdCBpdCBjb3VsZCBiZSBjYXVz ZWQgYnkgbW9kaWZpY2F0aW9uIG9mIHN0cnVjdCBwYWdlIGl0c2VsZiwgYnV0IGl0IHR1cm5lZCBv dXQgdG8gbm90IGJlIHRoZSBjYXNlIC0gc29tZXRpbWVzIHN0cnVjdCBwYWdlIHdvdWxkIGJlIHVu bW9kaWZpZWQgZHVyaW5nIGR1cmF0aW9uIG9mIHRoZSBjaGVjay4gV2l0aCBsb3dtZW0gcGFnZXMs IHRoaXMgd291bGRuJ3QgYWxzbyBoYXBwZW4sIGJlY2F1c2UgcGFnZV9hZGRyZXNzIGlzIGRlcml2 ZWQgZGlyZWN0bHkgZnJvbSBzdHJ1Y3QgcGFnZSBwb2ludGVyIGl0c2VsZi4NCj4+DQo+PiBGaW5h bGx5LCBhZnRlciBnYXRoZXJpbmcgYSBmZXcgdHJhY2VzIHdpdGggYWRkZWQgZGVidWcgbG9ncyBJ IGRlY2lkZWQgdG8gdHJpZ2dlciBhIHBhbmljIG9uIHRoZSB3YXJuaW5nIGFuZCBjYXB0dXJlIGEg dm1jb3JlLg0KPj4gV2hlbiBhbmFseXppbmcgdGhlIHZtY29yZSwgSSBjb25maXJtZWQgdGhhdCB0 aGUgc3RydWN0IHBhZ2VfYWRkcmVzc19zbG90IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHN0cnVjdCBw YWdlIGhhZCBhbiBlbXB0eSBsaXN0IG9mIG1hcHBpbmdzLCBleHBsYWluaW5nIE5VTEwgcmV0dXJu ZWQgZnJvbSBwYWdlX2FkZHJlc3MoaGVhZCkgaW4gcGFnZV9jb3B5X3NhbmUoKS4NCj4+IFllYWgs IEkgaGFkIHRvIG1hbnVhbGx5IGNhbGN1bGF0ZSBoYXNoIG9mIHN0cnVjdCBwYWdlIHBvaW50ZXIg OykNCj4+DQo+PiBJbiB0aGUgbWVhbnRpbWUgSSBub3RpY2VkIGEgcGF0Y2ggYnkgRXJpYyBEdW1h emV0ICgiaW92X2l0ZXI6IG9wdGltaXplIHBhZ2VfY29weV9zYW5lKCkiKSBbMV0uIEFwcGx5aW5n IHRoaXMgcGF0Y2ggc2lsZW5jZWQgdGhlIHdhcm5pbmdzLCBhdCBsZWFzdCBmb3IgdGVzdCBydW4g Z29pbmcgZm9yIG92ZXIgYSB3ZWVrLiBUaGlzIGlzIHF1aXRlIGV4cGVjdGVkLCBhcyB3aXRoIHRo aXMgY2hhbmdlICdwYWdlJyBpc24ndCBkZXJlZmVyZW5jZWQgYXQgYWxsLCBub3IgaXMgcGFnZV9h ZGRyZXNzKCkgY2FsbGVkLiBIZXJlIEkgc3VzcGVjdCB0aGF0IGFwcGx5aW5nIHRoaXMgcGF0Y2gg bWF5IG9ubHkgaGlkZSBhIHJlYWwgaXNzdWUgSSdtIGZhY2luZywgYW5kIG1pZ2h0IGJlIG1pc3Np bmcgdGhlIGNhc2Ugb2YgaGlnaG1lbSBwYWdlcyBhcyB3ZWxsLg0KPj4NCj4+IEFuIGV4YW1wbGUg c3RhY2t0cmFjZSBJIGNhcHR1cmVkLCB3aXRoIGFkZGVkIGRlYnVnIGxvZ3MgYW5kIGNvcHkgb2Yg c3RydWN0IHBhZ2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgY2hlY2sgaW4gcGFnZV9jb3B5X3NhbmU6 DQo+Pg0KPj4gVGhpcyBsYXN0IG9uZSBzaG93cyBubyBjaGFuZ2VzIHRvIHN0cnVjdCBwYWdlIG92 ZXIgdGhlIGNhbGwgdG8gcGFnZV9jb3B5X3NhbmUoKSwgd2hlcmUgZmlyc3QgY2FsbCB0byBwYWdl X2FkZHJlc3MocGFnZSkgcmV0dXJucyBhIHZhbGlkIHBhZ2UgYWRkcmVzcyAocGFnZV9hZGRyZXNz PTIxNDY5OTYyMjQpIGFuZCBzZWNvbmQgY2FsbCByZXR1cm5zIDAgKGhlYWRfYWRkcmVzcz0wKS4g U3Vic2VxdWVudCBjYWxscyB0byBwYWdlX2FkZHJlc3MgaW5zaWRlIFdBUk4oKSBhcmd1bWVudCBs aXN0IGFsc28gcmV0dXJuIDAuIFRoZSBzYW1lIHdhcyB0cnVlIGZvciB0aGUgb2NjdXJlbmNlIEkg Y2FwdHVyZWQgdm1jb3JlIGZvci4NCj4+DQo+PiAoRm9yIHlvdXIgcmVmZXJlbmNlLCBhIHBhdGNo IGNvbnRhaW5pbmcgbXkgZGVidWcgcHJpbnRzIGlzIGF0IHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2Up DQo+Pg0KPj4gWzMzNzY4NS4zNDQyMDRdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t LS0tLQ0KPj4gWzMzNzY4NS4zNTY4NzBdIFdBUk5JTkc6IENQVTogMCBQSUQ6IDMwMTMyIGF0IC9t bnQvd29yay9naXQvcGxhdGZvcm1zLW1hbmlmZXN0L2J1aWxkX2RldmJvYXJkaW14NnEvdG1wL3dv cmstc2hhcmVkL2RldmJvYXJkaW14NnEva2VybmVsLXNvdXJjZS9saWIvaW92X2l0ZXIuYzo4MzQg cGFnZV9jb3B5X3NhbmUrMHgxM2MvMHgxNzgNCj4+IFszMzc2ODUuNDIwNzA2XSBwYWdlX2NvcHlf c2FuZTogcGFnZT03NzIxMTIzZSwgb2Zmc2V0PTAsIG49NDA5Niwgdj0yMTQ3MDAwMzIwLCBoZWFk PTc3MjExMjNlLCBwYWdlX2FkZHJlc3M9MjE0Njk5NjIyNCwgaGVhZF9hZGRyZXNzPTAsIGNvbXBv dW5kX29yZGVyKGhlYWQpPTAsIHBhZ2VfYWRkcmVzcyhwYWdlKT0wLCBwYWdlX2FkZHJlc3MoaGVh ZCk9MCBwYWdlX2FkZHJlc3MocGFnZV9jb3B5KT0wLCBmbGFncyhwYWdlKT1yZWZlcmVuY2VkfHVw dG9kYXRlfGxydXxhY3RpdmV8YXJjaF8xLCBmbGFncyhwYWdlX2NvcHkpPXJlZmVyZW5jZWR8dXB0 b2RhdGV8bHJ1fGFjdGl2ZXxhcmNoXzENCj4+IFszMzc2ODUuNDk0NzM2XSBNb2R1bGVzIGxpbmtl ZCBpbjogeHRfbmF0IGlwdGFibGVfbmF0IG5mX25hdF9pcHY0IG5mX25hdCBuZl9jb25udHJhY2sg bmZfZGVmcmFnX2lwdjYgbmZfZGVmcmFnX2lwdjQgaXBfdGFibGVzIHhfdGFibGVzIHVzYl9mX21h c3Nfc3RvcmFnZSB1c2JfZl9ybmRpcyB1X2V0aGVyIGNpX2hkcmNfaW14IGNpX2hkcmMgdXNibWlz Y19pbXggdWxwaSBsaWJjb21wb3NpdGUgY29uZmlnZnMgdWRjX2NvcmUNCj4+IFszMzc2ODUuNTQ5 NTU2XSBDUFU6IDIgUElEOiAzMDEzMiBDb21tOiBzZW5zb3JzIFRhaW50ZWQ6IEfCoMKgwqDCoMKg wqDCoCBXwqDCoMKgwqDCoMKgwqDCoCA0LjE5LjMyLWRldmJvYXJkaW14NnErZzBhNjRlMzcxNzk4 NSAjMQ0KPj4gWzMzNzY4NS41NTgzMTRdIEhhcmR3YXJlIG5hbWU6IEZyZWVzY2FsZSBpLk1YNiBR dWFkL0R1YWxMaXRlIChEZXZpY2UgVHJlZSkNCj4+IFszMzc2ODUuNTYzNjAwXSBbPDgwMTBmZTQ0 Pl0gKHVud2luZF9iYWNrdHJhY2UpIGZyb20gWzw4MDEwYjg0MD5dIChzaG93X3N0YWNrKzB4MTAv MHgxNCkNCj4+IFszMzc2ODUuNTcwMDgxXSBbPDgwMTBiODQwPl0gKHNob3dfc3RhY2spIGZyb20g Wzw4MDdhNTk1OD5dIChkdW1wX3N0YWNrKzB4ODgvMHg5YykNCj4+IFszMzc2ODUuNTc2MDMzXSBb PDgwN2E1OTU4Pl0gKGR1bXBfc3RhY2spIGZyb20gWzw4MDExZjUwMD5dIChfX3dhcm4rMHhmYy8w eDExNCkNCj4+IFszMzc2ODUuNTgxNzIxXSBbPDgwMTFmNTAwPl0gKF9fd2FybikgZnJvbSBbPDgw MTFmNTYwPl0gKHdhcm5fc2xvd3BhdGhfZm10KzB4NDgvMHg2YykNCj4+IFszMzc2ODUuNTg3OTM2 XSBbPDgwMTFmNTYwPl0gKHdhcm5fc2xvd3BhdGhfZm10KSBmcm9tIFs8ODAzYTA2NjQ+XSAocGFn ZV9jb3B5X3NhbmUrMHgxM2MvMHgxNzgpDQo+PiBbMzM3Njg1LjU5NTAwNF0gWzw4MDNhMDY2ND5d IChwYWdlX2NvcHlfc2FuZSkgZnJvbSBbPDgwM2EyZmU0Pl0gKGNvcHlfcGFnZV90b19pdGVyKzB4 MTgvMHg0NzQpDQo+PiBbMzM3Njg1LjYwMjAyMF0gWzw4MDNhMmZlND5dIChjb3B5X3BhZ2VfdG9f aXRlcikgZnJvbSBbPDgwMWJkOWQ0Pl0gKGdlbmVyaWNfZmlsZV9yZWFkX2l0ZXIrMHgyY2MvMHg5 ODApDQo+PiBbMzM3Njg1LjYwOTc5NF0gWzw4MDFiZDlkND5dIChnZW5lcmljX2ZpbGVfcmVhZF9p dGVyKSBmcm9tIFs8ODAyMDk0OWM+XSAoX192ZnNfcmVhZCsweGY4LzB4MTU4KQ0KPj4gWzMzNzY4 NS42MTY4NjZdIFs8ODAyMDk0OWM+XSAoX192ZnNfcmVhZCkgZnJvbSBbPDgwMjA5NTg4Pl0gKHZm c19yZWFkKzB4OGMvMHgxMTgpDQo+PiBbMzM3Njg1LjYyMjcxN10gWzw4MDIwOTU4OD5dICh2ZnNf cmVhZCkgZnJvbSBbPDgwMjA5YWFjPl0gKGtzeXNfcmVhZCsweDRjLzB4YWMpDQo+PiBbMzM3Njg1 LjYyODM5Nl0gWzw4MDIwOWFhYz5dIChrc3lzX3JlYWQpIGZyb20gWzw4MDEwMTAwMD5dIChyZXRf ZmFzdF9zeXNjYWxsKzB4MC8weDU0KQ0KPj4gWzMzNzY4NS42MzQ2NjhdIEV4Y2VwdGlvbiBzdGFj aygweGE0ZTc5ZmE4IHRvIDB4YTRlNzlmZjApDQo+PiBbMzM3Njg1LjYzODQyN10gOWZhMDrCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMDAwMDAwMDggMDAwMDAwMDAgMDAwMDAw MDMgN2VkMDMyMDggMDAwMDAyMDAgMDAwMDAwMDANCj4+IFszMzc2ODUuNjQ1MzE4XSA5ZmMwOiAw MDAwMDAwOCAwMDAwMDAwMCA3NmZlODk1OCAwMDAwMDAwMyAwMDAwMDAwMCA3ZWQwMzIwOCA3NmZl NTY0MCA3ZWQwMzFiNA0KPj4gWzMzNzY4NS42NTIyMDVdIDlmZTA6IDc2ZmU3Y2YwIDdlZDAzMTZj IDc2ZmJlZWUwIDc2ZmQxYjFjDQo+PiBbMzM3Njg1LjcxNzA4MF0gLS0tWyBlbmQgdHJhY2UgNjYw ZDA3MmU1N2IzZDE2OCBdLS0tDQo+PiBbMzM3Njg1LjcyMDY5OF0gcGFnZV9jb3B5IDAwMDAwMDAw OiA2YyAwNCAwMCA0MCA4NCAxZiBmNCBlZiBkYyBhYSBjNCA4MCA1YyBlNiA5YiBlZMKgIGwuLkAu Li4uLi4uLlwuLi4NCj4+IFszMzc2ODUuNzIwNzEzXSBwYWdlX2NvcHkgMDAwMDAwMTA6IDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIGZmIGZmIGZmIGZmIDAyIDAwIDAwIDAwwqAgLi4uLi4uLi4uLi4u Li4uLg0KPj4gWzMzNzY4NS43MjA3MjFdICpwYWdlwqDCoMKgwqAgMDAwMDAwMDA6IDZjIDA0IDAw IDQwIDg0IDFmIGY0IGVmIGRjIGFhIGM0IDgwIDVjIGU2IDliIGVkwqAgbC4uQC4uLi4uLi4uXC4u Lg0KPj4gWzMzNzY4NS43MjA3MjhdICpwYWdlwqDCoMKgwqAgMDAwMDAwMTA6IDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIGZmIGZmIGZmIGZmIDAyIDAwIDAwIDAwwqAgLi4uLi4uLi4uLi4uLi4uLg0K Pj4NCj4+IFRoZSBzY2VuYXJpbyB3aXRoIGRyb3BwaW5nIGNhY2hlcyB2aWEgL3Byb2Mvc3lzL3Zt L2Ryb3BfY2FjaGVzIHNlZW1zIHRvIGJlIHJhcmVseSB1c2VkIChhbmQgdGVzdGVkKSwgaG93ZXZl ciBJIHN1c3BlY3QgdGhhdCBkdXJpbmcgZHJvcHBpbmcgY2FjaGVzLCBzb21lIHBhZ2VzIG1pZ2h0 IGJlIHVubWFwcGVkIHRvbyBlYXJseSBjYXVzaW5nIG90aGVyIGhhcmQtdG8gbm90aWNlIHByb2Js ZW1zLg0KPj4NCj4+IEFzIG15IGZpbmRpbmdzIGFyZSBxdWl0ZSB3b3JyaXNvbWUsIEknZCBiZSBn bGFkIHRvIGhlYXIgaWYgbXkgYW5hbHlzaXMgaXMgdmFsaWQsIGFuZCBpZiBvcHRpbWl6YXRpb24g bWFkZSBieSBFcmljIGNhbiBiZSBjb25zaWRlcmVkICd0aGUgZml4Jywgb3IgbWF5YmUgaXQgaXMg dG9vIG9wdGltaXN0aWMuDQo+PiBBbHNvIGFzIEknZCBsaWtlIHRvIGludmVzdGlnYXRlIHRoZSBp c3N1ZSBmdXJ0aGVyLCBJJ2QgYmUgZ2xhZCBmb3IgYW55IGhpbnRzIG9uIHdoZXJlIHRvIGNvbnRp bnVlLg0KPj4NCj4+IFsxXSBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxOS8yLzI2LzY4NiwgbWVy Z2VkIGFzIDZkYWVmOTViOGM5MSBpbiBtYXN0ZXINCj4+DQo+PiBQYXRjaCBjb250YWluaW5nIGRl YnVnIGxvZ3M6DQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2xpYi9pb3ZfaXRlci5jIGIvbGliL2lvdl9p dGVyLmMNCj4+IGluZGV4IDhiZTE3NWRmMzA3NS4uZGVkN2UwNzM0MzRjIDEwMDY0NA0KPj4gLS0t IGEvbGliL2lvdl9pdGVyLmMNCj4+ICsrKyBiL2xpYi9pb3ZfaXRlci5jDQo+PiBAQCAtODE1LDE0 ICs4MTUsMjUgQEAgYm9vbCBfY29weV9mcm9tX2l0ZXJfZnVsbF9ub2NhY2hlKHZvaWQgKmFkZHIs IHNpemVfdCBieXRlcywgc3RydWN0IGlvdl9pdGVyICppKQ0KPj4gwqB9DQo+PiDCoEVYUE9SVF9T WU1CT0woX2NvcHlfZnJvbV9pdGVyX2Z1bGxfbm9jYWNoZSk7DQo+PiDCoA0KPj4gLXN0YXRpYyBp bmxpbmUgYm9vbCBwYWdlX2NvcHlfc2FuZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc2l6ZV90IG9mZnNl dCwgc2l6ZV90IG4pDQo+PiArc3RhdGljIG5vaW5saW5lIGJvb2wgcGFnZV9jb3B5X3NhbmUoc3Ry dWN0IHBhZ2UgKnBhZ2UsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBuKQ0KPj4gwqB7DQo+PiArwqDC oMKgwqDCoMKgIHN0cnVjdCBwYWdlIHBhZ2VfY29weSA9ICpwYWdlOw0KPj4gwqDCoMKgwqDCoMKg wqAgc3RydWN0IHBhZ2UgKmhlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOw0KPj4gLcKgwqDCoMKg wqDCoCBzaXplX3QgdiA9IG4gKyBvZmZzZXQgKyBwYWdlX2FkZHJlc3MocGFnZSkgLSBwYWdlX2Fk ZHJlc3MoaGVhZCk7DQo+PiArwqDCoMKgwqDCoMKgIHNpemVfdCBwYWdlX2FkZHIgPSAoc2l6ZV90 KSBwYWdlX2FkZHJlc3MocGFnZSk7DQo+PiArwqDCoMKgwqDCoMKgIHNpemVfdCBoZWFkX2FkZHIg PSAoc2l6ZV90KSBwYWdlX2FkZHJlc3MoaGVhZCk7DQo+PiArwqDCoMKgwqDCoMKgIHNpemVfdCB2 ID0gbiArIG9mZnNldCArIHBhZ2VfYWRkciAtIGhlYWRfYWRkcjsNCj4+ICvCoMKgwqDCoMKgwqAg dW5zaWduZWQgaW50IG9yZGVyID0gY29tcG91bmRfb3JkZXIoaGVhZCk7DQo+PiDCoA0KPj4gLcKg wqDCoMKgwqDCoCBpZiAobGlrZWx5KG4gPD0gdiAmJiB2IDw9IChQQUdFX1NJWkUgPDwgY29tcG91 bmRfb3JkZXIoaGVhZCkpKSkNCj4+ICvCoMKgwqDCoMKgwqAgaWYgKGxpa2VseShuIDw9IHYgJiYg diA8PSAoUEFHRV9TSVpFIDw8IG9yZGVyKSkpDQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIHRydWU7DQo+PiAtwqDCoMKgwqDCoMKgIFdBUk5fT04oMSk7DQo+PiArwqDC oMKgwqDCoMKgIFdBUk4oMSwgIiVzOiBwYWdlPSVwLCBvZmZzZXQ9JXp1LCBuPSV6dSwgdj0lenUs IGhlYWQ9JXAsIHBhZ2VfYWRkcmVzcz0lenUsIg0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgIiBoZWFkX2FkZHJlc3M9JXp1LCBjb21wb3VuZF9vcmRlcihoZWFkKT0ldSwgcGFnZV9h ZGRyZXNzKHBhZ2UpPSV6dSwiDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiIHBh Z2VfYWRkcmVzcyhoZWFkKT0lenUgcGFnZV9hZGRyZXNzKHBhZ2VfY29weSk9JXp1LCBmbGFncyhw YWdlKT0lcEdwLCBmbGFncyhwYWdlX2NvcHkpPSVwR3BcbiIsDQo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfX2Z1bmNfXywgcGFnZSwgb2Zmc2V0LCBuLCB2LCBoZWFkLCBwYWdlX2FkZHIsIGhl YWRfYWRkciwgb3JkZXIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNpemVfdCkgcGFnZV9h ZGRyZXNzKHBhZ2UpLCAoc2l6ZV90KSBwYWdlX2FkZHJlc3MoaGVhZCksDQo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqAgKHNpemVfdCkgcGFnZV9hZGRyZXNzKCZwYWdlX2NvcHkpLCAmcGFnZS0+Zmxh Z3MsICZwYWdlX2NvcHkuZmxhZ3MpOw0KPj4gK8KgwqDCoMKgwqDCoCBwcmludF9oZXhfZHVtcF9i eXRlcygicGFnZV9jb3B5ICIsIERVTVBfUFJFRklYX09GRlNFVCwgJnBhZ2VfY29weSwgc2l6ZW9m KHBhZ2VfY29weSkpOw0KPj4gK8KgwqDCoMKgwqDCoCBwcmludF9oZXhfZHVtcF9ieXRlcygiKnBh Z2XCoMKgwqDCoCAiLCBEVU1QX1BSRUZJWF9PRkZTRVQsIHBhZ2UsIHNpemVvZigqcGFnZSkpOw0K Pj4gwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGZhbHNlOw0KPj4gwqB9DQo+Pg0KPj4gLS0gUG96ZHJh d2lhbS9XaXRoIGtpbmQgcmVnYXJkcywgTGVjaCBQZXJjemFrIFNyLiBTb2Z0d2FyZSBFbmdpbmVl ciBDYW1saW4gVGVjaG5vbG9naWVzIFBvbGFuZCBMaW1pdGVkIFNwLiB6IG8uby4NCj4+DQpBcyBt eSBxdWVzdGlvbiB3ZW50IGluIGR1cmluZyBMaW51eCBNTSAmIEZTIHN1bW1pdCwgaXQgbWlnaHQg aGF2ZSBnb25lIHVubm90aWNlZC4gU28ganVzdCBhIGtpbmQgcmVtaW5kZXIgOikNCk1heWJlIHNv bWVvbmUgZ290IGEgY2hhbmNlIHRvIGxvb2sgYXQgaXQ/DQoNCi0tIA0KUG96ZHJhd2lhbS9XaXRo IGtpbmQgcmVnYXJkcywNCkxlY2ggUGVyY3phaw0KDQpTci4gU29mdHdhcmUgRW5naW5lZXINCkNh bWxpbiBUZWNobm9sb2dpZXMgUG9sYW5kIExpbWl0ZWQgU3AuIHogby5vLg0KDQo=