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=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,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 9B4FFC3A589 for ; Thu, 15 Aug 2019 20:36:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 3EC652083B for ; Thu, 15 Aug 2019 20:36:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="SLqOcmF9"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="Pk5kh2Vd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731447AbfHOUgV (ORCPT ); Thu, 15 Aug 2019 16:36:21 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:49214 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731270AbfHOUgV (ORCPT ); Thu, 15 Aug 2019 16:36:21 -0400 Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x7FKYNYr020236; Thu, 15 Aug 2019 13:35:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=JWdSdG/MHuQOqUG1ZjLke7cs391ilV4L+PUJqq9lnwk=; b=SLqOcmF9CH00s+KPMLM+1sWWBpROzFPSOHyhFxBWcweaikez/2loUSt7bUUozlGrv7Aq YpREvgaU9odrtZTIIU+RUfnII2bZRhbAKJNWkYPWqi+Nqvx3IV5T1F8XnHhp44ymDxyw jhOGBP8zXpnkEzcHItbgui1zjHlu4lpephs= Received: from maileast.thefacebook.com ([163.114.130.16]) by mx0a-00082601.pphosted.com with ESMTP id 2udehmg0jn-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Thu, 15 Aug 2019 13:35:39 -0700 Received: from ash-exhub102.TheFacebook.com (2620:10d:c0a8:82::f) by ash-exhub201.TheFacebook.com (2620:10d:c0a8:83::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 15 Aug 2019 13:35:37 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (100.104.31.183) by o365-in.thefacebook.com (100.104.35.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 15 Aug 2019 13:35:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jdFzhkTteqi/kxzAfYan1eT3OdB7I71UuJHP214rOFqDvnGGLJ7u+cRfF8QYgqVp7rr8qaiqF1OdbkEy1gprADyMQ5VnS3esxURY0gKnfscKGlCgfROBGGgwmpIa21WaeCpILUhu/WAi/LBQAMAlWmwSj5bIsIGtIJZsRod3gzk5IeuczzLpfnhH8cIg7mZYCBnY/E/7e81/48YjOC57VG+JHTNfJlqpnxbmZMywfDDKEmEB6khOuK2AdpgsNIMusDlieoD4C/zcmwntx9rbDFm8X4PZHYqMMRHhc2innJcNqW5Xj17L9uLsQKfGFxau+C0sieYW4d14GyD6ROSU6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JWdSdG/MHuQOqUG1ZjLke7cs391ilV4L+PUJqq9lnwk=; b=UzAMgSlDlq89s1Q7P6WRWBUMLzsUtQ7OTr/7uEju42jCHYnpSLEKboSpQh9jpkZS41RVwlCASXbFACw+w0XVNn2XH390Xeye/xFKNlVKqbbq2DJWisgxgZ4tFdpQRPd/MZ8rx3eV4bZHS7QNFuolLLy084A4luH00YXBmNUM//GTOLw5B1MnaDR8ce0cIBv21VTecGHQ0OzR4xM9PDzySLbnwJrFDg7zhs3xu+loe/R9+1ujQSRlX5NHg3tSO5awXlhk5FjxIbUb2P58Kravw31t30AjKXy8hW+WdLrvGKEkaCP9iyCOeRMa79lhDcrMjI5RmZHFpOCyfJo/Z7Z4Tg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector2-fb-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JWdSdG/MHuQOqUG1ZjLke7cs391ilV4L+PUJqq9lnwk=; b=Pk5kh2VdXfvbmHGKziPp2db63KaewPixzxMEZ4bAheQyslewAy+bU/6wsejBt35gEBCbf/7zwnloDuNvq9hJzejnOFaDwnBOB/DJzLUUD33wLgymFjmMZNiIEmGwqAuSn3HXhhXtH1ryHCUt9yVap6csdG3Ffc3WNS2OjoAiOtE= Received: from CY4PR15MB1366.namprd15.prod.outlook.com (10.172.157.148) by CY4PR15MB1525.namprd15.prod.outlook.com (10.172.157.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.18; Thu, 15 Aug 2019 20:35:25 +0000 Received: from CY4PR15MB1366.namprd15.prod.outlook.com ([fe80::6c5f:cfef:6a46:d2f1]) by CY4PR15MB1366.namprd15.prod.outlook.com ([fe80::6c5f:cfef:6a46:d2f1%9]) with mapi id 15.20.2157.022; Thu, 15 Aug 2019 20:35:25 +0000 From: Andrey Ignatov To: Ilya Leoshkevich CC: Daniel Borkmann , Alexei Starovoitov , "bpf@vger.kernel.org" , Heiko Carstens , Vasily Gorbik Subject: Re: [PATCH bpf] selftests/bpf: fix endianness issues in test_sysctl Thread-Topic: [PATCH bpf] selftests/bpf: fix endianness issues in test_sysctl Thread-Index: AQHVU6j3r+W6lQSZGka9gEkiaXERSA== Date: Thu, 15 Aug 2019 20:35:25 +0000 Message-ID: <20190815203324.GA49729@rdna-mbp> References: <20190815122525.41073-1-iii@linux.ibm.com> In-Reply-To: <20190815122525.41073-1-iii@linux.ibm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: CO2PR04CA0110.namprd04.prod.outlook.com (2603:10b6:104:7::12) To CY4PR15MB1366.namprd15.prod.outlook.com (2603:10b6:903:f7::20) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2620:10d:c090:200::3:2a82] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 38a66942-00fb-401c-e794-08d721c01a01 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:CY4PR15MB1525; x-ms-traffictypediagnostic: CY4PR15MB1525: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:407; x-forefront-prvs: 01304918F3 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(7916004)(376002)(136003)(396003)(346002)(39840400004)(366004)(189003)(199004)(52116002)(14444005)(476003)(30864003)(76176011)(53946003)(102836004)(53936002)(446003)(486006)(14454004)(46003)(11346002)(386003)(229853002)(6506007)(6246003)(81166006)(8676002)(478600001)(81156014)(4326008)(6916009)(71200400001)(1076003)(33716001)(256004)(33656002)(6116002)(7736002)(71190400001)(5660300002)(2906002)(64756008)(66946007)(54906003)(6512007)(305945005)(8936002)(6486002)(186003)(6436002)(86362001)(25786009)(99286004)(66556008)(9686003)(66476007)(316002)(66446008)(461764006);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR15MB1525;H:CY4PR15MB1366.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: doB9RtqxZaLtsuPOT5xp7Ha4DQlYidjhJACKlXFJxYEtuH9q8+7/9vLqHKQYiiWYzi90APdjJsPH0LoPNHOYNypk9GoadhHpJjdZCoyceV1xXFTNcg0bchtTeF2k7Tu7mPC7GbCrMc0Ler8J+Z3B11ojdCLS0j3S3xBJnpGWbb6YpCk/jLJmDrfsKMJgx/WxGKr8OHCSYCPFOXRHgQeOE5QZGx15ofjlzueTOAVNj5h075L6oU3j8rmwLBKaKNVwxUaMItjDkLSRlogp83H5LzVQlr+MLBauuvSaXyYPBba1u+kABl8BNJ96tjODz4TIdEoIHJ23yu0RsLwMWg4l/LEg2+2HQNCUXaZ7N6h4vP6gOTneQJ6Z0KZjnX60T2EutcUdVPZXvUhc0Vyl/+stG09xSRn92LjhVWefmQqmJfY= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 38a66942-00fb-401c-e794-08d721c01a01 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2019 20:35:25.5411 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nzGTuXnRONEns+M+Q+5C+mI0kPCD8LvhJMlT3ZuOO+bySeXkMaET+gB8MfsRdajl X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1525 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-08-15_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1906280000 definitions=main-1908150195 X-FB-Internal: deliver Sender: bpf-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org SWx5YSBMZW9zaGtldmljaCA8aWlpQGxpbnV4LmlibS5jb20+IFtUaHUsIDIwMTktMDgtMTUgMTI6 MjUgLTA3MDBdOg0KPiBBIGxvdCBvZiB0ZXN0X3N5c2N0bCBzdWItdGVzdHMgZmFpbCBkdWUgdG8g aGFuZGxpbmcgc3RyaW5ncyBhcyBhIGJ1bmNoDQo+IG9mIGltbWVkaWF0ZSB2YWx1ZXMgaW4gYSBs aXR0bGUtZW5kaWFuLXNwZWNpZmljIG1hbm5lci4NCj4gDQo+IEZpeCBieSB3cmFwcGluZyBhbGwg aW1tZWRpYXRlcyBpbiBfX2JwZl9jb25zdGFudF9udG9obCwNCj4gX19icGZfY29uc3RhbnRfYmU2 NF90b19jcHUgYW5kIF9fYnBmX2xlNjRfdG9fY3B1Lg0KPiANCj4gRml4ZXM6IDFmNWZhOWFiNmUy ZSAoInNlbGZ0ZXN0cy9icGY6IFRlc3QgQlBGX0NHUk9VUF9TWVNDVEwiKQ0KPiBGaXhlczogOWEx MDI3ZTUyNTM1ICgic2VsZnRlc3RzL2JwZjogVGVzdCBmaWxlX3BvcyBmaWVsZCBpbiBicGZfc3lz Y3RsIGN0eCIpDQo+IEZpeGVzOiA2MDQxYzY3ZjI4ZDggKCJzZWxmdGVzdHMvYnBmOiBUZXN0IGJw Zl9zeXNjdGxfZ2V0X25hbWUgaGVscGVyIikNCj4gRml4ZXM6IDExZmYzNGY3NGUzMiAoInNlbGZ0 ZXN0cy9icGY6IFRlc3Qgc3lzY3RsX2dldF9jdXJyZW50X3ZhbHVlIGhlbHBlciIpDQo+IEZpeGVz OiA3ODYwNDdkZDA4ZGUgKCJzZWxmdGVzdHMvYnBmOiBUZXN0IGJwZl9zeXNjdGxfe2dldCxzZXR9 X25ld192YWx1ZSBoZWxwZXJzIikNCj4gRml4ZXM6IDg1NDlkZGM4MzJkNiAoInNlbGZ0ZXN0cy9i cGY6IFRlc3QgYnBmX3N0cnRvbCBhbmQgYnBmX3N0cnRvdWwgaGVscGVycyIpDQo+IFNpZ25lZC1v ZmYtYnk6IElseWEgTGVvc2hrZXZpY2ggPGlpaUBsaW51eC5pYm0uY29tPg0KDQpJJ20gbm90IHN1 cmUgYWJvdXQgYnBmX2VuZGlhbi5oIGNoYW5nZXMgYW5kIHdpbGwgbGV0IG90aGVycyBjb21tZW50 IG9uDQp0aGlzIHBhcnQsIGJ1dCBhbGwgZml4ZXMgaW4gdGVzdF9zeXNjdGwuYyAoZXhjZXB0IG9u ZSBtaW5vciB0aGluZyAtLSBzZWUNCmJlbG93KSBtYWtlIHNlbnNlLiBUaGFua3MgZm9yIGZpeGlu ZyEgDQoNCkFja2VkLWJ5OiBBbmRyZXkgSWduYXRvdiA8cmRuYUBmYi5jb20+DQoNCj4gLS0tDQo+ ICB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYnBmX2VuZGlhbi5oICB8ICAgNCArDQo+ICB0 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zeXNjdGwuYyB8IDEyMiArKysrKysrKysr KysrKystLS0tLS0tDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDQwIGRl bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2Jw Zi9icGZfZW5kaWFuLmggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYnBmX2VuZGlhbi5o DQo+IGluZGV4IDA1ZjAzNmRmOGE0Yy4uOTQxNzVjOTkzODA2IDEwMDY0NA0KPiAtLS0gYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvYnBmX2VuZGlhbi5oDQo+ICsrKyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL2JwZi9icGZfZW5kaWFuLmgNCj4gQEAgLTI5LDYgKzI5LDggQEANCj4gICMg ZGVmaW5lIF9fYnBmX2h0b25sKHgpCQkJX19idWlsdGluX2Jzd2FwMzIoeCkNCj4gICMgZGVmaW5l IF9fYnBmX2NvbnN0YW50X250b2hsKHgpCV9fX2NvbnN0YW50X3N3YWIzMih4KQ0KPiAgIyBkZWZp bmUgX19icGZfY29uc3RhbnRfaHRvbmwoeCkJX19fY29uc3RhbnRfc3dhYjMyKHgpDQo+ICsjIGRl ZmluZSBfX2JwZl9sZTY0X3RvX2NwdSh4KQkJKHgpDQo+ICsjIGRlZmluZSBfX2JwZl9jb25zdGFu dF9iZTY0X3RvX2NwdSh4KQlfX19jb25zdGFudF9zd2FiNjQoeCkNCj4gICNlbGlmIF9fQllURV9P UkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9fDQo+ICAjIGRlZmluZSBfX2JwZl9udG9ocyh4 KQkJCSh4KQ0KPiAgIyBkZWZpbmUgX19icGZfaHRvbnMoeCkJCQkoeCkNCj4gQEAgLTM4LDYgKzQw LDggQEANCj4gICMgZGVmaW5lIF9fYnBmX2h0b25sKHgpCQkJKHgpDQo+ICAjIGRlZmluZSBfX2Jw Zl9jb25zdGFudF9udG9obCh4KQkoeCkNCj4gICMgZGVmaW5lIF9fYnBmX2NvbnN0YW50X2h0b25s KHgpCSh4KQ0KPiArIyBkZWZpbmUgX19icGZfbGU2NF90b19jcHUoeCkJCV9fc3dhYjY0KHgpDQo+ ICsjIGRlZmluZSBfX2JwZl9jb25zdGFudF9iZTY0X3RvX2NwdSh4KSAgKHgpDQo+ICAjZWxzZQ0K PiAgIyBlcnJvciAiRml4IHlvdXIgY29tcGlsZXIncyBfX0JZVEVfT1JERVJfXz8hIg0KPiAgI2Vu ZGlmDQo+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF9zeXNj dGwuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3N5c2N0bC5jDQo+IGluZGV4 IGEzYmViZDdjNjhkZC4uOWU0OTg2YjAzZTk1IDEwMDY0NA0KPiAtLS0gYS90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9icGYvdGVzdF9zeXNjdGwuYw0KPiArKysgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9icGYvdGVzdF9zeXNjdGwuYw0KPiBAQCAtMTMsNiArMTMsNyBAQA0KPiAgI2luY2x1ZGUg PGJwZi9icGYuaD4NCj4gICNpbmNsdWRlIDxicGYvbGliYnBmLmg+DQo+ICANCj4gKyNpbmNsdWRl ICJicGZfZW5kaWFuLmgiDQo+ICAjaW5jbHVkZSAiYnBmX3JsaW1pdC5oIg0KPiAgI2luY2x1ZGUg ImJwZl91dGlsLmgiDQo+ICAjaW5jbHVkZSAiY2dyb3VwX2hlbHBlcnMuaCINCj4gQEAgLTEwMCw3 ICsxMDEsNyBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICAJCS5k ZXNjciA9ICJjdHg6d3JpdGUgc3lzY3RsOndyaXRlIHJlYWQgb2siLA0KPiAgCQkuaW5zbnMgPSB7 DQo+ICAJCQkvKiBJZiAod3JpdGUpICovDQo+IC0JCQlCUEZfTERYX01FTShCUEZfQiwgQlBGX1JF R183LCBCUEZfUkVHXzEsDQo+ICsJCQlCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR183LCBCUEZf UkVHXzEsDQo+ICAJCQkJICAgIG9mZnNldG9mKHN0cnVjdCBicGZfc3lzY3RsLCB3cml0ZSkpLA0K PiAgCQkJQlBGX0pNUF9JTU0oQlBGX0pORSwgQlBGX1JFR183LCAxLCAyKSwNCj4gIA0KPiBAQCAt MjE0LDcgKzIxNSw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsNCj4g IAkJCS8qIGlmIChyZXQgPT0gZXhwZWN0ZWQgJiYgKi8NCj4gIAkJCUJQRl9KTVBfSU1NKEJQRl9K TkUsIEJQRl9SRUdfMCwgc2l6ZW9mKCJ0Y3BfbWVtIikgLSAxLCA2KSwNCj4gIAkJCS8qICAgICBi dWYgPT0gInRjcF9tZW1cMCIpICovDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBGX1JFR184LCAweDAw NmQ2NTZkNWY3MDYzNzRVTEwpLA0KPiArCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwgX19icGZf Y29uc3RhbnRfYmU2NF90b19jcHUoDQo+ICsJCQkJMHg3NDYzNzA1ZjZkNjU2ZDAwVUxMKSksDQo+ ICAJCQlCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfOSwgQlBGX1JFR183LCAwKSwNCj4gIAkJ CUJQRl9KTVBfUkVHKEJQRl9KTkUsIEJQRl9SRUdfOCwgQlBGX1JFR185LCAyKSwNCj4gIA0KPiBA QCAtMjU1LDcgKzI1Nyw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsN Cj4gIAkJCUJQRl9KTVBfSU1NKEJQRl9KTkUsIEJQRl9SRUdfMCwgLUUyQklHLCA2KSwNCj4gIA0K PiAgCQkJLyogICAgIGJ1ZlswOjddID09ICJ0Y3BfbWVcMCIpICovDQo+IC0JCQlCUEZfTERfSU1N NjQoQlBGX1JFR184LCAweDAwNjU2ZDVmNzA2Mzc0VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChC UEZfUkVHXzgsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4NzQ2MzcwNWY2 ZDY1MDAwMFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzksIEJQRl9S RUdfNywgMCksDQo+ICAJCQlCUEZfSk1QX1JFRyhCUEZfSk5FLCBCUEZfUkVHXzgsIEJQRl9SRUdf OSwgMiksDQo+ICANCj4gQEAgLTI5OCwxMiArMzAxLDE0IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3Rs X3Rlc3QgdGVzdHNbXSA9IHsNCj4gIAkJCUJQRl9KTVBfSU1NKEJQRl9KTkUsIEJQRl9SRUdfMCwg MTYsIDE0KSwNCj4gIA0KPiAgCQkJLyogICAgIGJ1ZlswOjhdID09ICJuZXQvaXB2NCIgJiYgKi8N Cj4gLQkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIDB4MzQ3NjcwNjkyZjc0NjU2ZVVMTCksDQo+ ICsJCQlCUEZfTERfSU1NNjQoQlBGX1JFR184LCBfX2JwZl9jb25zdGFudF9iZTY0X3RvX2NwdSgN Cj4gKwkJCQkweDZlNjU3NDJmNjk3MDc2MzRVTEwpKSwNCj4gIAkJCUJQRl9MRFhfTUVNKEJQRl9E VywgQlBGX1JFR185LCBCUEZfUkVHXzcsIDApLA0KPiAgCQkJQlBGX0pNUF9SRUcoQlBGX0pORSwg QlBGX1JFR184LCBCUEZfUkVHXzksIDEwKSwNCj4gIA0KPiAgCQkJLyogICAgIGJ1Zls4OjE2XSA9 PSAiL3RjcF9tZW0iICYmICovDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBGX1JFR184LCAweDZkNjU2 ZDVmNzA2Mzc0MmZVTEwpLA0KPiArCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwgX19icGZfY29u c3RhbnRfYmU2NF90b19jcHUoDQo+ICsJCQkJMHgyZjc0NjM3MDVmNmQ2NTZkVUxMKSksDQo+ICAJ CQlCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdfOSwgQlBGX1JFR183LCA4KSwNCj4gIAkJCUJQ Rl9KTVBfUkVHKEJQRl9KTkUsIEJQRl9SRUdfOCwgQlBGX1JFR185LCA2KSwNCj4gIA0KPiBAQCAt MzUwLDEyICszNTUsMTQgQEAgc3RhdGljIHN0cnVjdCBzeXNjdGxfdGVzdCB0ZXN0c1tdID0gew0K PiAgCQkJQlBGX0pNUF9JTU0oQlBGX0pORSwgQlBGX1JFR18wLCAtRTJCSUcsIDEwKSwNCj4gIA0K PiAgCQkJLyogICAgIGJ1ZlswOjhdID09ICJuZXQvaXB2NCIgJiYgKi8NCj4gLQkJCUJQRl9MRF9J TU02NChCUEZfUkVHXzgsIDB4MzQ3NjcwNjkyZjc0NjU2ZVVMTCksDQo+ICsJCQlCUEZfTERfSU1N NjQoQlBGX1JFR184LCBfX2JwZl9jb25zdGFudF9iZTY0X3RvX2NwdSgNCj4gKwkJCQkweDZlNjU3 NDJmNjk3MDc2MzRVTEwpKSwNCj4gIAkJCUJQRl9MRFhfTUVNKEJQRl9EVywgQlBGX1JFR185LCBC UEZfUkVHXzcsIDApLA0KPiAgCQkJQlBGX0pNUF9SRUcoQlBGX0pORSwgQlBGX1JFR184LCBCUEZf UkVHXzksIDYpLA0KPiAgDQo+ICAJCQkvKiAgICAgYnVmWzg6MTZdID09ICIvdGNwX21lXDAiKSAq Lw0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwgMHgwMDY1NmQ1ZjcwNjM3NDJmVUxMKSwN Cj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1 KA0KPiArCQkJCTB4MmY3NDYzNzA1ZjZkNjUwMFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBG X0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywgOCksDQo+ICAJCQlCUEZfSk1QX1JFRyhCUEZfSk5F LCBCUEZfUkVHXzgsIEJQRl9SRUdfOSwgMiksDQo+ICANCj4gQEAgLTM5Niw3ICs0MDMsOCBAQCBz dGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICAJCQlCUEZfSk1QX0lNTShC UEZfSk5FLCBCUEZfUkVHXzAsIC1FMkJJRywgNiksDQo+ICANCj4gIAkJCS8qICAgICBidWZbMDo4 XSA9PSAibmV0L2lwXDAiKSAqLw0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwgMHgwMDAw NzA2OTJmNzQ2NTZlVUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIF9fYnBmX2Nv bnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4NmU2NTc0MmY2OTcwMDAwMFVMTCkpLA0KPiAg CQkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywgMCksDQo+ICAJCQlC UEZfSk1QX1JFRyhCUEZfSk5FLCBCUEZfUkVHXzgsIEJQRl9SRUdfOSwgMiksDQo+ICANCj4gQEAg LTQzMSw3ICs0MzksOCBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ ICAJCQlCUEZfSk1QX0lNTShCUEZfSk5FLCBCUEZfUkVHXzAsIDYsIDYpLA0KPiAgDQo+ICAJCQkv KiAgICAgYnVmWzA6Nl0gPT0gIkxpbnV4XG5cMCIpICovDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBG X1JFR184LCAweDAwMGE3ODc1NmU2OTRjVUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVH XzgsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4NGM2OTZlNzU3ODBhMDAw MFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywg MCksDQo+ICAJCQlCUEZfSk1QX1JFRyhCUEZfSk5FLCBCUEZfUkVHXzgsIEJQRl9SRUdfOSwgMiks DQo+ICANCj4gQEAgLTQ2OSw3ICs0NzgsOCBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRl c3RzW10gPSB7DQo+ICAJCQlCUEZfSk1QX0lNTShCUEZfSk5FLCBCUEZfUkVHXzAsIDYsIDYpLA0K PiAgDQo+ICAJCQkvKiAgICAgYnVmWzA6Nl0gPT0gIkxpbnV4XG5cMCIpICovDQo+IC0JCQlCUEZf TERfSU1NNjQoQlBGX1JFR184LCAweDAwMGE3ODc1NmU2OTRjVUxMKSwNCj4gKwkJCUJQRl9MRF9J TU02NChCUEZfUkVHXzgsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4NGM2 OTZlNzU3ODBhMDAwMFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzks IEJQRl9SRUdfNywgMCksDQo+ICAJCQlCUEZfSk1QX1JFRyhCUEZfSk5FLCBCUEZfUkVHXzgsIEJQ Rl9SRUdfOSwgMiksDQo+ICANCj4gQEAgLTUwNyw3ICs1MTcsOCBAQCBzdGF0aWMgc3RydWN0IHN5 c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICAJCQlCUEZfSk1QX0lNTShCUEZfSk5FLCBCUEZfUkVH XzAsIC1FMkJJRywgNiksDQo+ICANCj4gIAkJCS8qICAgICBidWZbMDo2XSA9PSAiTGludXhcMCIp ICovDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBGX1JFR184LCAweDAwMDA3ODc1NmU2OTRjVUxMKSwN Cj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1 KA0KPiArCQkJCTB4NGM2OTZlNzU3ODAwMDAwMFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBG X0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywgMCksDQo+ICAJCQlCUEZfSk1QX1JFRyhCUEZfSk5F LCBCUEZfUkVHXzgsIEJQRl9SRUdfOSwgMiksDQo+ICANCj4gQEAgLTY1MCw3ICs2NjEsOCBAQCBz dGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICANCj4gIAkJCS8qICAgICBi dWZbMDo0XSA9PSAiNjA2XDAiKSAqLw0KPiAgCQkJQlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdf OSwgQlBGX1JFR183LCAwKSwNCj4gLQkJCUJQRl9KTVBfSU1NKEJQRl9KTkUsIEJQRl9SRUdfOSwg MHgwMDM2MzAzNiwgMiksDQo+ICsJCQlCUEZfSk1QX0lNTShCUEZfSk5FLCBCUEZfUkVHXzksDQo+ ICsJCQkJICAgIF9fYnBmX2NvbnN0YW50X250b2hsKDB4MzYzMDM2MDApLCAyKSwNCj4gIA0KPiAg CQkJLyogcmV0dXJuIERFTlk7ICovDQo+ICAJCQlCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgMCks DQo+IEBAIC02ODUsMTcgKzY5NywyMCBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3Rz W10gPSB7DQo+ICAJCQlCUEZfSk1QX0lNTShCUEZfSk5FLCBCUEZfUkVHXzAsIDIzLCAxNCksDQo+ ICANCj4gIAkJCS8qICAgICBidWZbMDo4XSA9PSAiMzAwMDAwMCAiICYmICovDQo+IC0JCQlCUEZf TERfSU1NNjQoQlBGX1JFR184LCAweDIwMzAzMDMwMzAzMDMwMzNVTEwpLA0KPiArCQkJQlBGX0xE X0lNTTY0KEJQRl9SRUdfOCwgX19icGZfY29uc3RhbnRfYmU2NF90b19jcHUoDQo+ICsJCQkJMHgz MzMwMzAzMDMwMzAzMDIwVUxMKSksDQo+ICAJCQlCUEZfTERYX01FTShCUEZfRFcsIEJQRl9SRUdf OSwgQlBGX1JFR183LCAwKSwNCj4gIAkJCUJQRl9KTVBfUkVHKEJQRl9KTkUsIEJQRl9SRUdfOCwg QlBGX1JFR185LCAxMCksDQo+ICANCj4gIAkJCS8qICAgICBidWZbODoxNl0gPT0gIjQwMDAwMDAg IiAmJiAqLw0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwgMHgyMDMwMzAzMDMwMzAzMDM0 VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIF9fYnBmX2NvbnN0YW50X2JlNjRf dG9fY3B1KA0KPiArCQkJCTB4MzQzMDMwMzAzMDMwMzAyMFVMTCkpLA0KPiAgCQkJQlBGX0xEWF9N RU0oQlBGX0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywgOCksDQo+ICAJCQlCUEZfSk1QX1JFRyhC UEZfSk5FLCBCUEZfUkVHXzgsIEJQRl9SRUdfOSwgNiksDQo+ICANCj4gIAkJCS8qICAgICBidWZb MTY6MjRdID09ICI2MDAwMDAwXDAiKSAqLw0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfOCwg MHgwMDMwMzAzMDMwMzAzMDM2VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzgsIF9f YnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4MzYzMDMwMzAzMDMwMzAwMFVMTCkp LA0KPiAgCQkJQlBGX0xEWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzksIEJQRl9SRUdfNywgMTYpLA0K PiAgCQkJQlBGX0pNUF9SRUcoQlBGX0pORSwgQlBGX1JFR184LCBCUEZfUkVHXzksIDIpLA0KPiAg DQo+IEBAIC03MzUsNyArNzUwLDggQEAgc3RhdGljIHN0cnVjdCBzeXNjdGxfdGVzdCB0ZXN0c1td ID0gew0KPiAgDQo+ICAJCQkvKiAgICAgYnVmWzA6M10gPT0gIjYwXDAiKSAqLw0KPiAgCQkJQlBG X0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfOSwgQlBGX1JFR183LCAwKSwNCj4gLQkJCUJQRl9KTVBf SU1NKEJQRl9KTkUsIEJQRl9SRUdfOSwgMHgwMDMwMzYsIDIpLA0KPiArCQkJQlBGX0pNUF9JTU0o QlBGX0pORSwgQlBGX1JFR185LA0KPiArCQkJCSAgICBfX2JwZl9jb25zdGFudF9udG9obCgweDM2 MzAwMDAwKSwgMiksDQo+ICANCj4gIAkJCS8qIHJldHVybiBERU5ZOyAqLw0KPiAgCQkJQlBGX01P VjY0X0lNTShCUEZfUkVHXzAsIDApLA0KPiBAQCAtNzU3LDcgKzc3Myw4IEBAIHN0YXRpYyBzdHJ1 Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsNCj4gIAkJCS8qIHN5c2N0bF9zZXRfbmV3X3ZhbHVl IGFyZzIgKGJ1ZikgKi8NCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEw KSwNCj4gIAkJCUJQRl9BTFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtOCksDQo+IC0JCQlC UEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwgMHgwMDMwMzAzNiksDQo+ICsJCQlCUEZfTU9WNjRfSU1N KEJQRl9SRUdfMCwNCj4gKwkJCQkgICAgICBfX2JwZl9jb25zdGFudF9udG9obCgweDM2MzAzMDAw KSksDQo+ICAJCQlCUEZfU1RYX01FTShCUEZfRFcsIEJQRl9SRUdfNywgQlBGX1JFR18wLCAwKSwN Cj4gIA0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzIsIEJQRl9SRUdfNyksDQo+IEBAIC03 OTEsNyArODA4LDcgQEAgc3RhdGljIHN0cnVjdCBzeXNjdGxfdGVzdCB0ZXN0c1tdID0gew0KPiAg CQkJLyogc3lzY3RsX3NldF9uZXdfdmFsdWUgYXJnMiAoYnVmKSAqLw0KPiAgCQkJQlBGX01PVjY0 X1JFRyhCUEZfUkVHXzcsIEJQRl9SRUdfMTApLA0KPiAgCQkJQlBGX0FMVTY0X0lNTShCUEZfQURE LCBCUEZfUkVHXzcsIC04KSwNCj4gLQkJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCBGSVhVUF9T WVNDVExfVkFMVUUpLA0KPiArCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfMCwgRklYVVBfU1lTQ1RM X1ZBTFVFKSwNCj4gIAkJCUJQRl9TVFhfTUVNKEJQRl9EVywgQlBGX1JFR183LCBCUEZfUkVHXzAs IDApLA0KPiAgDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfMiwgQlBGX1JFR183KSwNCj4g QEAgLTgyNSw4ICs4NDIsOSBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7 DQo+ICAJCQkvKiBhcmcxIChidWYpICovDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNywg QlBGX1JFR18xMCksDQo+ICAJCQlCUEZfQUxVNjRfSU1NKEJQRl9BREQsIEJQRl9SRUdfNywgLTgp LA0KPiAtCQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDB4MDAzMDMwMzYpLA0KPiAtCQkJQlBG X1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9SRUdfMCwgMCksDQo+ICsJCQlCUEZfTU9W NjRfSU1NKEJQRl9SRUdfMCwNCj4gKwkJCQkgICAgICBfX2JwZl9jb25zdGFudF9udG9obCgweDM2 MzAzMDAwKSksDQo+ICsJCQlCUEZfU1RYX01FTShCUEZfVywgQlBGX1JFR183LCBCUEZfUkVHXzAs IDApLA0KPiAgDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfMSwgQlBGX1JFR183KSwNCj4g IA0KPiBAQCAtODY5LDcgKzg4Nyw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNb XSA9IHsNCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEwKSwNCj4gIAkJ CUJQRl9BTFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtOCksDQo+ICAJCQkvKiAiNjAwIDYw MlwwIiAqLw0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfMCwgMHgwMDMyMzAzNjIwMzAzMDM2 VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzAsIF9fYnBmX2NvbnN0YW50X2JlNjRf dG9fY3B1KA0KPiArCQkJCTB4MzYzMDMwMjAzNjMwMzIwMFVMTCkpLA0KPiAgCQkJQlBGX1NUWF9N RU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9SRUdfMCwgMCksDQo+ICAJCQlCUEZfTU9WNjRfUkVH KEJQRl9SRUdfMSwgQlBGX1JFR183KSwNCj4gIA0KPiBAQCAtOTM3LDcgKzk1Niw4IEBAIHN0YXRp YyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsNCj4gIAkJCS8qIGFyZzEgKGJ1ZikgKi8N Cj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEwKSwNCj4gIAkJCUJQRl9B TFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtOCksDQo+IC0JCQlCUEZfTU9WNjRfSU1NKEJQ Rl9SRUdfMCwgMHgwMDMwMzAzNiksDQo+ICsJCQlCUEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwNCj4g KwkJCQkgICAgICBfX2JwZl9jb25zdGFudF9udG9obCgweDM2MzAzMDAwKSksDQo+ICAJCQlCUEZf U1RYX01FTShCUEZfRFcsIEJQRl9SRUdfNywgQlBGX1JFR18wLCAwKSwNCj4gIA0KPiAgCQkJQlBG X01PVjY0X1JFRyhCUEZfUkVHXzEsIEJQRl9SRUdfNyksDQo+IEBAIC05NjksOCArOTg5LDkgQEAg c3RhdGljIHN0cnVjdCBzeXNjdGxfdGVzdCB0ZXN0c1tdID0gew0KPiAgCQkJLyogYXJnMSAoYnVm KSAqLw0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzcsIEJQRl9SRUdfMTApLA0KPiAgCQkJ QlBGX0FMVTY0X0lNTShCUEZfQURELCBCUEZfUkVHXzcsIC04KSwNCj4gLQkJCUJQRl9NT1Y2NF9J TU0oQlBGX1JFR18wLCAweDAwMzczNzMwKSwNCj4gLQkJCUJQRl9TVFhfTUVNKEJQRl9EVywgQlBG X1JFR183LCBCUEZfUkVHXzAsIDApLA0KPiArCQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsDQo+ ICsJCQkJICAgICAgX19icGZfY29uc3RhbnRfbnRvaGwoMHgzMDM3MzcwMCkpLA0KPiArCQkJQlBG X1NUWF9NRU0oQlBGX1csIEJQRl9SRUdfNywgQlBGX1JFR18wLCAwKSwNCj4gIA0KPiAgCQkJQlBG X01PVjY0X1JFRyhCUEZfUkVHXzEsIEJQRl9SRUdfNyksDQo+ICANCj4gQEAgLTEwMTIsNyArMTAz Myw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsNCj4gIAkJCS8qIGFy ZzEgKGJ1ZikgKi8NCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEwKSwN Cj4gIAkJCUJQRl9BTFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtOCksDQo+IC0JCQlCUEZf TU9WNjRfSU1NKEJQRl9SRUdfMCwgMHgwMDMwMzAzNiksDQo+ICsJCQlCUEZfTU9WNjRfSU1NKEJQ Rl9SRUdfMCwNCj4gKwkJCQkgICAgICBfX2JwZl9jb25zdGFudF9udG9obCgweDM2MzAzMDAwKSks DQo+ICAJCQlCUEZfU1RYX01FTShCUEZfRFcsIEJQRl9SRUdfNywgQlBGX1JFR18wLCAwKSwNCj4g IA0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzEsIEJQRl9SRUdfNyksDQo+IEBAIC0xMDUy LDcgKzEwNzQsOCBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICAJ CQkvKiBhcmcxIChidWYpICovDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNywgQlBGX1JF R18xMCksDQo+ICAJCQlCUEZfQUxVNjRfSU1NKEJQRl9BREQsIEJQRl9SRUdfNywgLTgpLA0KPiAt CQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDB4MDkwYTBjMGQpLA0KPiArCQkJQlBGX01PVjY0 X0lNTShCUEZfUkVHXzAsDQo+ICsJCQkJICAgICAgX19icGZfY29uc3RhbnRfbnRvaGwoMHgwZDBj MGEwOSkpLA0KPiAgCQkJQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9SRUdfMCwg MCksDQo+ICANCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR18xLCBCUEZfUkVHXzcpLA0KPiBA QCAtMTA5Miw3ICsxMTE1LDkgQEAgc3RhdGljIHN0cnVjdCBzeXNjdGxfdGVzdCB0ZXN0c1tdID0g ew0KPiAgCQkJLyogYXJnMSAoYnVmKSAqLw0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzcs IEJQRl9SRUdfMTApLA0KPiAgCQkJQlBGX0FMVTY0X0lNTShCUEZfQURELCBCUEZfUkVHXzcsIC04 KSwNCj4gLQkJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCAweDAwMzYyZDBhKSwgLyogIiAtNlww IiAqLw0KPiArCQkJLyogIiAtNlwwIiAqLw0KPiArCQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAs DQo+ICsJCQkJICAgICAgX19icGZfY29uc3RhbnRfbnRvaGwoMHgwYTJkMzYwMCkpLA0KPiAgCQkJ QlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9SRUdfMCwgMCksDQo+ICANCj4gIAkJ CUJQRl9NT1Y2NF9SRUcoQlBGX1JFR18xLCBCUEZfUkVHXzcpLA0KPiBAQCAtMTEzMiw4ICsxMTU3 LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgdGVzdHNbXSA9IHsNCj4gIAkJCS8qIGFy ZzEgKGJ1ZikgKi8NCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEwKSwN Cj4gIAkJCUJQRl9BTFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtOCksDQo+IC0JCQlCUEZf TU9WNjRfSU1NKEJQRl9SRUdfMCwgMHgwMDM2MmQwYSksIC8qICIgLTZcMCIgKi8NCj4gLQkJCUJQ Rl9TVFhfTUVNKEJQRl9EVywgQlBGX1JFR183LCBCUEZfUkVHXzAsIDApLA0KPiArCQkJLyogIiAt NlwwIiAqLw0KPiArCQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsDQo+ICsJCQkJICAgICAgX19i cGZfY29uc3RhbnRfbnRvaGwoMHgwYTJkMzYwMCkpLA0KPiArCQkJQlBGX1NUWF9NRU0oQlBGX1cs IEJQRl9SRUdfNywgQlBGX1JFR18wLCAwKSwNCj4gIA0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZf UkVHXzEsIEJQRl9SRUdfNyksDQo+ICANCj4gQEAgLTExNzUsOCArMTIwMiwxMCBAQCBzdGF0aWMg c3RydWN0IHN5c2N0bF90ZXN0IHRlc3RzW10gPSB7DQo+ICAJCQkvKiBhcmcxIChidWYpICovDQo+ ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfNywgQlBGX1JFR18xMCksDQo+ICAJCQlCUEZfQUxV NjRfSU1NKEJQRl9BREQsIEJQRl9SRUdfNywgLTgpLA0KPiAtCQkJQlBGX01PVjY0X0lNTShCUEZf UkVHXzAsIDB4NjU2Njc4MzApLCAvKiAiMHhmZSIgKi8NCj4gLQkJCUJQRl9TVFhfTUVNKEJQRl9E VywgQlBGX1JFR183LCBCUEZfUkVHXzAsIDApLA0KPiArCQkJLyogIjB4ZmUiICovDQo+ICsJCQlC UEZfTU9WNjRfSU1NKEJQRl9SRUdfMCwNCj4gKwkJCQkgICAgICBfX2JwZl9jb25zdGFudF9udG9o bCgweDMwNzg2NjY1KSksDQo+ICsJCQlCUEZfU1RYX01FTShCUEZfVywgQlBGX1JFR183LCBCUEZf UkVHXzAsIDApLA0KPiAgDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfMSwgQlBGX1JFR183 KSwNCj4gIA0KPiBAQCAtMTIxOCwxMSArMTI0NywxNCBAQCBzdGF0aWMgc3RydWN0IHN5c2N0bF90 ZXN0IHRlc3RzW10gPSB7DQo+ICAJCQkvKiBhcmcxIChidWYpIDkyMjMzNzIwMzY4NTQ3NzU4MDcg Ki8NCj4gIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR183LCBCUEZfUkVHXzEwKSwNCj4gIAkJCUJQ Rl9BTFU2NF9JTU0oQlBGX0FERCwgQlBGX1JFR183LCAtMjQpLA0KPiAtCQkJQlBGX0xEX0lNTTY0 KEJQRl9SRUdfMCwgMHgzMDMyMzczMzMzMzIzMjM5VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChC UEZfUkVHXzAsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4MzkzMjMyMzMz MzM3MzIzMFVMTCkpLA0KPiAgCQkJQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9S RUdfMCwgMCksDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBGX1JFR18wLCAweDM1MzczNzM0MzUzODM2 MzNVTEwpLA0KPiArCQkJQlBGX0xEX0lNTTY0KEJQRl9SRUdfMCwgX19icGZfY29uc3RhbnRfYmU2 NF90b19jcHUoDQo+ICsJCQkJMHgzMzM2MzgzNTM0MzczNzM1VUxMKSksDQo+ICAJCQlCUEZfU1RY X01FTShCUEZfRFcsIEJQRl9SRUdfNywgQlBGX1JFR18wLCA4KSwNCj4gLQkJCUJQRl9MRF9JTU02 NChCUEZfUkVHXzAsIDB4MDAwMDAwMDAwMDM3MzAzOFVMTCksDQo+ICsJCQlCUEZfTERfSU1NNjQo QlBGX1JFR18wLCBfX2JwZl9jb25zdGFudF9iZTY0X3RvX2NwdSgNCj4gKwkJCQkweDM4MzAzNzAw MDAwMDAwMDBVTEwpKSwNCj4gIAkJCUJQRl9TVFhfTUVNKEJQRl9EVywgQlBGX1JFR183LCBCUEZf UkVHXzAsIDE2KSwNCj4gIA0KPiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzEsIEJQRl9SRUdf NyksDQo+IEBAIC0xMjY2LDExICsxMjk4LDE0IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzY3RsX3Rlc3Qg dGVzdHNbXSA9IHsNCj4gIAkJCS8qIGFyZzEgKGJ1ZikgOTIyMzM3MjAzNjg1NDc3NTgwOCAqLw0K PiAgCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzcsIEJQRl9SRUdfMTApLA0KPiAgCQkJQlBGX0FM VTY0X0lNTShCUEZfQURELCBCUEZfUkVHXzcsIC0yNCksDQo+IC0JCQlCUEZfTERfSU1NNjQoQlBG X1JFR18wLCAweDMwMzIzNzMzMzMzMjMyMzlVTEwpLA0KPiArCQkJQlBGX0xEX0lNTTY0KEJQRl9S RUdfMCwgX19icGZfY29uc3RhbnRfYmU2NF90b19jcHUoDQo+ICsJCQkJMHgzOTMyMzIzMzMzMzcz MjMwVUxMKSksDQo+ICAJCQlCUEZfU1RYX01FTShCUEZfRFcsIEJQRl9SRUdfNywgQlBGX1JFR18w LCAwKSwNCj4gLQkJCUJQRl9MRF9JTU02NChCUEZfUkVHXzAsIDB4MzUzNzM3MzQzNTM4MzYzM1VM TCksDQo+ICsJCQlCUEZfTERfSU1NNjQoQlBGX1JFR18wLCBfX2JwZl9jb25zdGFudF9iZTY0X3Rv X2NwdSgNCj4gKwkJCQkweDMzMzYzODM1MzQzNzM3MzVVTEwpKSwNCj4gIAkJCUJQRl9TVFhfTUVN KEJQRl9EVywgQlBGX1JFR183LCBCUEZfUkVHXzAsIDgpLA0KPiAtCQkJQlBGX0xEX0lNTTY0KEJQ Rl9SRUdfMCwgMHgwMDAwMDAwMDAwMzgzMDM4VUxMKSwNCj4gKwkJCUJQRl9MRF9JTU02NChCUEZf UkVHXzAsIF9fYnBmX2NvbnN0YW50X2JlNjRfdG9fY3B1KA0KPiArCQkJCTB4MzgzMDM4MDAwMDAw MDAwMFVMTCkpLA0KPiAgCQkJQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzcsIEJQRl9SRUdf MCwgMTYpLA0KPiAgDQo+ICAJCQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfMSwgQlBGX1JFR183KSwN Cj4gQEAgLTEzNDQsMjAgKzEzNzksMjYgQEAgc3RhdGljIHNpemVfdCBwcm9iZV9wcm9nX2xlbmd0 aChjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmZwKQ0KPiAgc3RhdGljIGludCBmaXh1cF9zeXNjdGxf dmFsdWUoY29uc3QgY2hhciAqYnVmLCBzaXplX3QgYnVmX2xlbiwNCj4gIAkJCSAgICAgIHN0cnVj dCBicGZfaW5zbiAqcHJvZywgc2l6ZV90IGluc25fbnVtKQ0KPiAgew0KPiAtCXVpbnQzMl90IHZh bHVlX251bSA9IDA7DQo+ICsJdWludDY0X3QgdmFsdWVfbnVtID0gMDsNCj4gIAl1aW50OF90IGMs IGk7DQo+ICANCj4gIAlpZiAoYnVmX2xlbiA+IHNpemVvZih2YWx1ZV9udW0pKSB7DQo+ICAJCWxv Z19lcnIoIlZhbHVlIGlzIHRvbyBiaWcgKCV6ZCkgdG8gdXNlIGluIGZpeHVwIiwgYnVmX2xlbik7 DQo+ICAJCXJldHVybiAtMTsNCj4gIAl9DQo+ICsJaWYgKHByb2dbaW5zbl9udW1dLmNvZGUgIT0g KEJQRl9MRCB8IEJQRl9EVyB8IEJQRl9JTU0pKSB7DQo+ICsJCWxvZ19lcnIoIkNhbiBmaXh1cCBv bmx5IEJQRl9MRF9JTU02NCBpbnNucyIpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiAgDQo+ ICAJZm9yIChpID0gMDsgaSA8IGJ1Zl9sZW47ICsraSkgew0KPiAgCQljID0gYnVmW2ldOw0KPiAg CQl2YWx1ZV9udW0gfD0gKGMgPDwgaSAqIDgpOw0KPiAgCX0NCj4gKwl2YWx1ZV9udW0gPSBfX2Jw Zl9sZTY0X3RvX2NwdSh2YWx1ZV9udW0pOw0KPiAgDQo+IC0JcHJvZ1tpbnNuX251bV0uaW1tID0g dmFsdWVfbnVtOw0KPiArCXByb2dbaW5zbl9udW1dLmltbSA9IChfX3UzMil2YWx1ZV9udW07DQo+ ICsJcHJvZ1tpbnNuX251bSArIDFdLmltbSA9IChfX3UzMikodmFsdWVfbnVtID4+IDMyKTsNCj4g IA0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiBAQCAtMTQ5OSw2ICsxNTQwLDcgQEAgc3RhdGljIGlu dCBydW5fdGVzdF9jYXNlKGludCBjZ2ZkLCBzdHJ1Y3Qgc3lzY3RsX3Rlc3QgKnRlc3QpDQo+ICAJ CQlnb3RvIGVycjsNCj4gIAl9DQo+ICANCj4gKwllcnJubyA9IDA7DQoNClllYWgsIGFjY2Vzc19z eXNjdGwoKSBjYW4gcmV0dXJuIC0xIHcvbyBhZmZlY3RpbmcgZXJybm8sIGRpZCBpdCBjYXVzZSBh DQpwcm9ibGVtLCBvciB5b3Ugc2V0IGl0IGp1c3QgaW4gY2FzZT8NCg0KDQo+ICAJaWYgKGFjY2Vz c19zeXNjdGwoc3lzY3RsX3BhdGgsIHRlc3QpID09IC0xKSB7DQo+ICAJCWlmICh0ZXN0LT5yZXN1 bHQgPT0gT1BfRVBFUk0gJiYgZXJybm8gPT0gRVBFUk0pDQo+ICAJCQlnb3RvIG91dDsNCj4gQEAg LTE1MDcsNyArMTU0OSw3IEBAIHN0YXRpYyBpbnQgcnVuX3Rlc3RfY2FzZShpbnQgY2dmZCwgc3Ry dWN0IHN5c2N0bF90ZXN0ICp0ZXN0KQ0KPiAgCX0NCj4gIA0KPiAgCWlmICh0ZXN0LT5yZXN1bHQg IT0gU1VDQ0VTUykgew0KPiAtCQlsb2dfZXJyKCJVbmV4cGVjdGVkIGZhaWx1cmUiKTsNCj4gKwkJ bG9nX2VycigiVW5leHBlY3RlZCBzdWNjZXNzIik7DQo+ICAJCWdvdG8gZXJyOw0KPiAgCX0NCj4g IA0KDQotLSANCkFuZHJleSBJZ25hdG92DQo=