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.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 E3216C2D0CE for ; Tue, 21 Jan 2020 15:10:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AB87E21569 for ; Tue, 21 Jan 2020 15:10:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=bitdefender.onmicrosoft.com header.i=@bitdefender.onmicrosoft.com header.b="J9fFBce4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB87E21569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bitdefender.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1itv9z-0006VV-S2; Tue, 21 Jan 2020 15:09:43 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1itv9y-0006VJ-Db for xen-devel@lists.xenproject.org; Tue, 21 Jan 2020 15:09:42 +0000 X-Inumbo-ID: 0c149224-3c60-11ea-b833-bc764e2007e4 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (unknown [2a01:111:f400:7e1b::706]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0c149224-3c60-11ea-b833-bc764e2007e4; Tue, 21 Jan 2020 15:09:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eqQt7VngoOZhhJWMO1VuX9wqVAib8kAk1wEpGmEB18mmsMf94H1g5/nfC8TOBUaOGB7YYFLJIOKctJuKTGjX6Lc0c1aRK2Bdi0tFq4TDfMCXqZDa/SV52/d4/i3qxNCRkrpBZNKQlUFWYiMntRg1PftTG2XWmdoMJrJ6KG9RzLmj/2Qx6Tg2W6Wf/goejzKaZgw9Ao6aR6NH0pHoqVyGQZWjVa8xRR1SPvT8fmsLTGZJSnYBprWoIRqWpJo/m7546FcIuZh92eknqTjbr2HkLF0KyDD0JKzW6GmswMDTcioOfjjJhkgIazUaGr+UnBCzaZWeBrfc7nm7+1BnLYfOog== 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=i42mhkuh+ZFsQhNBOjCf1FHYhcBI9GSGLdKoraKYj1g=; b=FwM0N5RvTbVvA2ckAuFpa0NNzO02i1AihjIA3+TgtteIEMycSRkUrXnS6ZC0Y90f1VXXO/6grgb3xc44MJPshXsRT6zsFU6ypl5mDF0r2OUqRxXvX+8o8NAl7e9LA2CEmnmQ2iiTwJkl4NurPrwwVd58COAjTrewbHjnrVaW7BV7+ifp8nyTEHq74NsIw+CerySZwzAJkCa7VjfgfzuLVVSTE/O7o8ncSfU7bCbi7DbHHkhRPvBLoHzMmB9zYfIukrwC8FkBiTdBGSn+jNMM4uPmFrDXaWbHrh1rK6ZPGyc1m16IGdJXk1prtsopI0CewYBhrcQIjaUnAFHdfYE2rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bitdefender.com; dmarc=pass action=none header.from=bitdefender.com; dkim=pass header.d=bitdefender.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bitdefender.onmicrosoft.com; s=selector2-bitdefender-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i42mhkuh+ZFsQhNBOjCf1FHYhcBI9GSGLdKoraKYj1g=; b=J9fFBce4bVdWVLd2dnOAoij0kIVKHQQ87umju0pCkebgv68a4cxaUO5meiIr4qZD0lTspWIdogk9n5aTfZ+VBhUHYg6XXmnNHlkv+xOFJ8bZ/o0ZoUmpm7zAqggec96CCyAh6snrHnpBSJgClU9uu6lm59Z8XYlxlSOkWX5ZZT0= Received: from DB6PR02MB2999.eurprd02.prod.outlook.com (10.170.219.144) by DB6PR02MB3096.eurprd02.prod.outlook.com (10.170.220.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.23; Tue, 21 Jan 2020 15:09:39 +0000 Received: from DB6PR02MB2999.eurprd02.prod.outlook.com ([fe80::f1c2:7dd1:1131:1c1d]) by DB6PR02MB2999.eurprd02.prod.outlook.com ([fe80::f1c2:7dd1:1131:1c1d%7]) with mapi id 15.20.2644.026; Tue, 21 Jan 2020 15:09:39 +0000 Received: from [10.10.195.54] (91.199.104.6) by AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.20 via Frontend Transport; Tue, 21 Jan 2020 15:09:38 +0000 From: Alexandru Stefan ISAILA To: "xen-devel@lists.xenproject.org" , George Dunlap Thread-Topic: [PATCH V8 2/4] x86/altp2m: Add hypercall to set a range of sve bits Thread-Index: AQHVzTptSkYAIu/W+UimKALDRNBbPaf1PyKA Date: Tue, 21 Jan 2020 15:09:39 +0000 Message-ID: <45c51dbc-b092-be42-e377-56d6fa9e2992@bitdefender.com> References: <20200117133059.14602-1-aisaila@bitdefender.com> <20200117133059.14602-2-aisaila@bitdefender.com> In-Reply-To: <20200117133059.14602-2-aisaila@bitdefender.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) To DB6PR02MB2999.eurprd02.prod.outlook.com (2603:10a6:6:17::16) authentication-results: spf=none (sender IP is ) smtp.mailfrom=aisaila@bitdefender.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [91.199.104.6] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 55a2038e-58e8-4271-fd32-08d79e83ef63 x-ms-traffictypediagnostic: DB6PR02MB3096:|DB6PR02MB3096: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:127; x-forefront-prvs: 0289B6431E x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(376002)(366004)(396003)(136003)(39850400004)(199004)(189003)(81166006)(6486002)(53546011)(36756003)(81156014)(52116002)(8676002)(71200400001)(16526019)(107886003)(8936002)(186003)(478600001)(7416002)(26005)(86362001)(5660300002)(54906003)(31696002)(4326008)(2616005)(956004)(31686004)(316002)(110136005)(66446008)(2906002)(66556008)(16576012)(64756008)(66476007)(66946007); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR02MB3096; H:DB6PR02MB2999.eurprd02.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: bitdefender.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /AXBHbsG9pR1bl6/tCBxaRfK9OgEMSZVcgoWVgMa2Huy0aAa7LOyLBVfTWUyzsTAmLWjagZtVm/DtLmd8qFYCRBtN8NpGp/JZgDdiTMzAjJrMrMK1kDwzJYto7fTv18sv9F8TemCqM/F40I1hapb2l82Yb7G8VIu1oExu7OeJ/wf1IApTiF9B0eGv37cBYjSqI8XdfoGs1KZqr0pwwySa9qraCPFd2rzs9VLapEI92MJLMMCtcJmA9MDVqo+f/za/qbXQ5wUiF6azqOzU0Uq0bNHrTlu6cMrW7QYyMLgO7dmKvqjFKf/DNzOlPmTOxcaJIZNsxbGbafmhdOeFur6IvAzfEIuSCVZC5KfqV7UP66CETLpQCxc8OwENQ6klzdUvR1yJZWV/56mTPeuMKQGuFxIrw57dZAsT1W8kU5MtODbS6cAJP0Nj/otc3dhvTSY Content-ID: MIME-Version: 1.0 X-OriginatorOrg: bitdefender.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55a2038e-58e8-4271-fd32-08d79e83ef63 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2020 15:09:39.1705 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 487baf29-f1da-469a-9221-243f830c36f3 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NnIEQfHdd1UQWoormkupTlC4kciiQL8KpRDyB4BUsZm+IEbsP0Z+VixkI8ezGUrQDcoOyzV6JZeCEaEoPuY+nkZIP9xN0RSEcwoWRhy8jdQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR02MB3096 Subject: Re: [Xen-devel] [PATCH V8 2/4] x86/altp2m: Add hypercall to set a range of sve bits X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Petre Ovidiu PIRCALABU , Stefano Stabellini , Julien Grall , Razvan COJOCARU , Wei Liu , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Jackson , Tamas K Lengyel , =?utf-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGkgR2VvcmdlLA0KDQpUaGlzIGlzIGEga2luZCByZW1pbmRlciwgd2hlbiB5b3UgaGF2ZSB0aGUg dGltZSwgY2FuIHlvdSB0YWtlIGEgbG9vayBhdCANCnRoaXMgc2VyaWVzPw0KDQpSZWdhcmRzLA0K QWxleA0KDQpPbiAxNy4wMS4yMDIwIDE1OjMxLCBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQSB3cm90 ZToNCj4gQnkgZGVmYXVsdCB0aGUgc3ZlIGJpdHMgYXJlIG5vdCBzZXQuDQo+IFRoaXMgcGF0Y2gg YWRkcyBhIG5ldyBoeXBlcmNhbGwsIHhjX2FsdHAybV9zZXRfc3VwcmVzc192ZV9tdWx0aSgpLA0K PiB0byBzZXQgYSByYW5nZSBvZiBzdmUgYml0cy4NCj4gVGhlIGNvcmUgZnVuY3Rpb24sIHAybV9z ZXRfc3VwcHJlc3NfdmVfbXVsdGkoKSwgZG9lcyBub3QgYnJlYWsgaW4gY2FzZQ0KPiBvZiBhIGVy cm9yIGFuZCBpdCBpcyBkb2luZyBhIGJlc3QgZWZmb3J0IGZvciBzZXR0aW5nIHRoZSBiaXRzIGlu IHRoZQ0KPiBnaXZlbiByYW5nZS4gQSBjaGVjayBmb3IgY29udGludWF0aW9uIGlzIG1hZGUgaW4g b3JkZXIgdG8gaGF2ZQ0KPiBwcmVlbXB0aW9uIG9uIGxhcmdlIHJhbmdlcy4NCj4gVGhlIGdmbiBv ZiB0aGUgZmlyc3QgZXJyb3IgaXMgc3RvcmVkIGluDQo+IHhlbl9odm1fYWx0cDJtX3N1cHByZXNz X3ZlX211bHRpLmZpcnN0X2Vycm9yX2dmbiBhbmQgdGhlIGVycm9yIGNvZGUgaXMNCj4gc3RvcmVk IGluIHhlbl9odm1fYWx0cDJtX3N1cHByZXNzX3ZlX211bHRpLmZpcnN0X2Vycm9yLg0KPiBJZiBu byBlcnJvciBvY2N1cnJlZCB0aGUgdmFsdWVzIHdpbGwgYmUgMC4NCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IEFsZXhhbmRydSBJc2FpbGEgPGFpc2FpbGFAYml0ZGVmZW5kZXIuY29tPg0KPiANCj4gLS0t DQo+IENDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4NCj4gQ0M6IFdl aSBMaXUgPHdsQHhlbi5vcmc+DQo+IENDOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPg0KPiBDQzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXgu Y29tPg0KPiBDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDQzogSnVsaWVu IEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4NCj4gQ0M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4NCj4gQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4NCj4gQ0M6ICJSb2dlciBQYXUgTW9ubsOpIiA8cm9nZXIucGF1QGNpdHJp eC5jb20+DQo+IENDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ DQo+IENDOiBSYXp2YW4gQ29qb2NhcnUgPHJjb2pvY2FydUBiaXRkZWZlbmRlci5jb20+DQo+IEND OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzQHRrbGVuZ3llbC5jb20+DQo+IENDOiBQZXRyZSBQaXJj YWxhYnUgPHBwaXJjYWxhYnVAYml0ZGVmZW5kZXIuY29tPg0KPiAtLS0NCj4gQ2hhbmdlcyBzaW5j ZSBWNzoNCj4gCS0gRml4IGNvbW1pdCBtZXNzYWdlDQo+IAktIE1vdmUgYWxsIGluIHZhbHVlcyBp biB0aGUgc3ZlIGluaXRpYWxpemVyDQo+IAktIERyb3Agc3ZlLmZpcnN0X2Vycm9yIGNoZWNrLg0K PiAtLS0NCj4gICB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgIHwgIDQgKysNCj4gICB0 b29scy9saWJ4Yy94Y19hbHRwMm0uYyAgICAgICAgIHwgMzMgKysrKysrKysrKysrKysrDQo+ICAg eGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICB8IDIwICsrKysrKysrKw0KPiAgIHhlbi9h cmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICAgfCA3NSArKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0NCj4gICB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIHwgMTMgKysrKysr DQo+ICAgeGVuL2luY2x1ZGUveGVuL21lbV9hY2Nlc3MuaCAgICB8ICAzICsrDQo+ICAgNiBmaWxl cyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaA0KPiBpbmRleCA3NWYxOTFhZTNhLi5jYzRlYjFlM2QzIDEwMDY0NA0KPiAt LS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaA0KPiArKysgYi90b29scy9saWJ4Yy9p bmNsdWRlL3hlbmN0cmwuaA0KPiBAQCAtMTkyMyw2ICsxOTIzLDEwIEBAIGludCB4Y19hbHRwMm1f c3dpdGNoX3RvX3ZpZXcoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3Qgdmlld19pZCk7DQo+ICAgaW50 IHhjX2FsdHAybV9zZXRfc3VwcHJlc3NfdmUoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90 IGRvbWlkLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHZpZXdf aWQsIHhlbl9wZm5fdCBnZm4sIGJvb2wgc3ZlKTsNCj4gK2ludCB4Y19hbHRwMm1fc2V0X3N1cHJl c3NfdmVfbXVsdGkoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCB2aWV3X2lkLCB4ZW5fcGZu X3QgZmlyc3RfZ2ZuLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5f cGZuX3QgbGFzdF9nZm4sIGJvb2wgc3ZlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB4ZW5fcGZuX3QgKmVycm9yX2dmbiwgaW50MzJfdCAqZXJyb3JfY29kZSk7DQo+ICAg aW50IHhjX2FsdHAybV9nZXRfc3VwcHJlc3NfdmUoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQz Ml90IGRvbWlkLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHZp ZXdfaWQsIHhlbl9wZm5fdCBnZm4sIGJvb2wgKnN2ZSk7DQo+ICAgaW50IHhjX2FsdHAybV9zZXRf bWVtX2FjY2Vzcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9taWQsDQo+IGRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Y19hbHRwMm0uYyBiL3Rvb2xzL2xpYnhjL3hjX2FsdHAybS5j DQo+IGluZGV4IDA5ZGFkMDM1NWUuLjQ2ZmI3MjU4MDYgMTAwNjQ0DQo+IC0tLSBhL3Rvb2xzL2xp YnhjL3hjX2FsdHAybS5jDQo+ICsrKyBiL3Rvb2xzL2xpYnhjL3hjX2FsdHAybS5jDQo+IEBAIC0y MzQsNiArMjM0LDM5IEBAIGludCB4Y19hbHRwMm1fc2V0X3N1cHByZXNzX3ZlKHhjX2ludGVyZmFj ZSAqaGFuZGxlLCB1aW50MzJfdCBkb21pZCwNCj4gICAgICAgcmV0dXJuIHJjOw0KPiAgIH0NCj4g ICANCj4gK2ludCB4Y19hbHRwMm1fc2V0X3N1cHJlc3NfdmVfbXVsdGkoeGNfaW50ZXJmYWNlICpo YW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MTZfdCB2aWV3X2lkLCB4ZW5fcGZuX3QgZmlyc3RfZ2ZuLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgbGFzdF9nZm4sIGJvb2wgc3ZlLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3QgKmVycm9yX2dm biwgaW50MzJfdCAqZXJyb3JfY29kZSkNCj4gK3sNCj4gKyAgICBpbnQgcmM7DQo+ICsgICAgREVD TEFSRV9IWVBFUkNBTExfQlVGRkVSKHhlbl9odm1fYWx0cDJtX29wX3QsIGFyZyk7DQo+ICsNCj4g KyAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKGhhbmRsZSwgYXJnLCBzaXplb2Yo KmFyZykpOw0KPiArICAgIGlmICggYXJnID09IE5VTEwgKQ0KPiArICAgICAgICByZXR1cm4gLTE7 DQo+ICsNCj4gKyAgICBhcmctPnZlcnNpb24gPSBIVk1PUF9BTFRQMk1fSU5URVJGQUNFX1ZFUlNJ T047DQo+ICsgICAgYXJnLT5jbWQgPSBIVk1PUF9hbHRwMm1fc2V0X3N1cHByZXNzX3ZlX211bHRp Ow0KPiArICAgIGFyZy0+ZG9tYWluID0gZG9taWQ7DQo+ICsgICAgYXJnLT51LnN1cHByZXNzX3Zl X211bHRpLnZpZXcgPSB2aWV3X2lkOw0KPiArICAgIGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5m aXJzdF9nZm4gPSBmaXJzdF9nZm47DQo+ICsgICAgYXJnLT51LnN1cHByZXNzX3ZlX211bHRpLmxh c3RfZ2ZuID0gbGFzdF9nZm47DQo+ICsgICAgYXJnLT51LnN1cHByZXNzX3ZlX211bHRpLnN1cHBy ZXNzX3ZlID0gc3ZlOw0KPiArDQo+ICsgICAgcmMgPSB4ZW5jYWxsMihoYW5kbGUtPnhjYWxsLCBf X0hZUEVSVklTT1JfaHZtX29wLCBIVk1PUF9hbHRwMm0sDQo+ICsgICAgICAgICAgICAgICAgICBI WVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsNCj4gKw0KPiArICAgIGlmICggYXJnLT51LnN1 cHByZXNzX3ZlX211bHRpLmZpcnN0X2Vycm9yICkNCj4gKyAgICB7DQo+ICsgICAgICAgICplcnJv cl9nZm4gPSBhcmctPnUuc3VwcHJlc3NfdmVfbXVsdGkuZmlyc3RfZXJyb3JfZ2ZuOw0KPiArICAg ICAgICAqZXJyb3JfY29kZSA9IGFyZy0+dS5zdXBwcmVzc192ZV9tdWx0aS5maXJzdF9lcnJvcjsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoaGFuZGxlLCBh cmcpOw0KPiArICAgIHJldHVybiByYzsNCj4gK30NCj4gKw0KPiAgIGludCB4Y19hbHRwMm1fc2V0 X21lbV9hY2Nlc3MoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3Qgdmlld19pZCwgeGVuX3Bmbl90IGdm biwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbm1lbV9hY2Nlc3NfdCBhY2Nl c3MpDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2 L2h2bS9odm0uYw0KPiBpbmRleCA0NzIzZjVkMDljLi40ZDc5YjQ5MzRlIDEwMDY0NA0KPiAtLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMN Cj4gQEAgLTQ1MjAsNiArNDUyMCw3IEBAIHN0YXRpYyBpbnQgZG9fYWx0cDJtX29wKA0KPiAgICAg ICBjYXNlIEhWTU9QX2FsdHAybV9kZXN0cm95X3AybToNCj4gICAgICAgY2FzZSBIVk1PUF9hbHRw Mm1fc3dpdGNoX3AybToNCj4gICAgICAgY2FzZSBIVk1PUF9hbHRwMm1fc2V0X3N1cHByZXNzX3Zl Og0KPiArICAgIGNhc2UgSFZNT1BfYWx0cDJtX3NldF9zdXBwcmVzc192ZV9tdWx0aToNCj4gICAg ICAgY2FzZSBIVk1PUF9hbHRwMm1fZ2V0X3N1cHByZXNzX3ZlOg0KPiAgICAgICBjYXNlIEhWTU9Q X2FsdHAybV9zZXRfbWVtX2FjY2VzczoNCj4gICAgICAgY2FzZSBIVk1PUF9hbHRwMm1fc2V0X21l bV9hY2Nlc3NfbXVsdGk6DQo+IEBAIC00Njc4LDYgKzQ2NzksMjUgQEAgc3RhdGljIGludCBkb19h bHRwMm1fb3AoDQo+ICAgICAgICAgICB9DQo+ICAgICAgICAgICBicmVhazsNCj4gICANCj4gKyAg ICBjYXNlIEhWTU9QX2FsdHAybV9zZXRfc3VwcHJlc3NfdmVfbXVsdGk6DQo+ICsgICAgew0KPiAr ICAgICAgICB1aW50NjRfdCBtYXhfcGh5c19hZGRyID0gKDFVTCA8PCBkLT5hcmNoLmNwdWlkLT5l eHRkLm1heHBoeXNhZGRyKSAtIDE7DQo+ICsNCj4gKyAgICAgICAgYS51LnN1cHByZXNzX3ZlX211 bHRpLmxhc3RfZ2ZuID0gbWluKGEudS5zdXBwcmVzc192ZV9tdWx0aS5sYXN0X2dmbiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9waHlzX2FkZHIp Ow0KPiArDQo+ICsgICAgICAgIGlmICggYS51LnN1cHByZXNzX3ZlX211bHRpLnBhZDEgfHwNCj4g KyAgICAgICAgICAgICBhLnUuc3VwcHJlc3NfdmVfbXVsdGkuZmlyc3RfZ2ZuID4gYS51LnN1cHBy ZXNzX3ZlX211bHRpLmxhc3RfZ2ZuICkNCj4gKyAgICAgICAgICAgIHJjID0gLUVJTlZBTDsNCj4g KyAgICAgICAgZWxzZQ0KPiArICAgICAgICB7DQo+ICsgICAgICAgICAgICByYyA9IHAybV9zZXRf c3VwcHJlc3NfdmVfbXVsdGkoZCwgJmEudS5zdXBwcmVzc192ZV9tdWx0aSk7DQo+ICsgICAgICAg ICAgICBpZiAoICghcmMgfHwgcmMgPT0gLUVSRVNUQVJUKSAmJiBfX2NvcHlfdG9fZ3Vlc3QoYXJn LCAmYSwgMSkgKQ0KPiArICAgICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsNCj4gKyAgICAgICAg fQ0KPiArICAgICAgICBicmVhazsNCj4gKyAgICB9DQo+ICsNCj4gICAgICAgY2FzZSBIVk1PUF9h bHRwMm1fZ2V0X3N1cHByZXNzX3ZlOg0KPiAgICAgICAgICAgaWYgKCBhLnUuc3VwcHJlc3NfdmUu cGFkMSB8fCBhLnUuc3VwcHJlc3NfdmUucGFkMiApDQo+ICAgICAgICAgICAgICAgcmMgPSAtRUlO VkFMOw0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2 L21tL3AybS5jDQo+IGluZGV4IDAwYjI0MzQyZmMuLjNhMjkyOWMzNjUgMTAwNjQ0DQo+IC0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYw0KPiArKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMNCj4g QEAgLTMwMjYsNDQgKzMwMjYsODMgQEAgb3V0Og0KPiAgICAqLw0KPiAgIGludCBwMm1fc2V0X3N1 cHByZXNzX3ZlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgYm9vbCBzdXBwcmVzc192ZSwN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYWx0cDJtX2lkeCkNCj4g K3sNCj4gKyAgICBpbnQgcmM7DQo+ICsgICAgc3RydWN0IHhlbl9odm1fYWx0cDJtX3N1cHByZXNz X3ZlX211bHRpIHN2ZSA9IHsNCj4gKyAgICAgICAgYWx0cDJtX2lkeCwgc3VwcHJlc3NfdmUsIDAs IDAsIGdmbl94KGdmbiksIGdmbl94KGdmbiksIDANCj4gKyAgICB9Ow0KPiArDQo+ICsgICAgaWYg KCAhKHJjID0gcDJtX3NldF9zdXBwcmVzc192ZV9tdWx0aShkLCAmc3ZlKSkgKQ0KPiArICAgICAg ICByYyA9IHN2ZS5maXJzdF9lcnJvcjsNCj4gKw0KPiArICAgIHJldHVybiByYzsNCj4gK30NCj4g Kw0KPiArLyoNCj4gKyAqIFNldC9jbGVhciB0aGUgI1ZFIHN1cHByZXNzIGJpdCBmb3IgbXVsdGlw bGUgcGFnZXMuICBPbmx5IGF2YWlsYWJsZSBvbiBWTVguDQo+ICsgKi8NCj4gK2ludCBwMm1fc2V0 X3N1cHByZXNzX3ZlX211bHRpKHN0cnVjdCBkb21haW4gKmQsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc3VwcHJlc3NfdmVfbXVsdGkgKnN2 ZSkNCj4gICB7DQo+ICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpob3N0X3AybSA9IHAybV9nZXRf aG9zdHAybShkKTsNCj4gICAgICAgc3RydWN0IHAybV9kb21haW4gKmFwMm0gPSBOVUxMOw0KPiAt ICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm07DQo+IC0gICAgbWZuX3QgbWZuOw0KPiAtICAgIHAy bV9hY2Nlc3NfdCBhOw0KPiAtICAgIHAybV90eXBlX3QgdDsNCj4gLSAgICBpbnQgcmM7DQo+ICsg ICAgc3RydWN0IHAybV9kb21haW4gKnAybSA9IGhvc3RfcDJtOw0KPiArICAgIHVpbnQ2NF90IHN0 YXJ0ID0gc3ZlLT5maXJzdF9nZm47DQo+ICsgICAgaW50IHJjID0gMDsNCj4gICANCj4gLSAgICBp ZiAoIGFsdHAybV9pZHggPiAwICkNCj4gKyAgICBpZiAoIHN2ZS0+dmlldyA+IDAgKQ0KPiAgICAg ICB7DQo+IC0gICAgICAgIGlmICggYWx0cDJtX2lkeCA+PSBtaW4oQVJSQVlfU0laRShkLT5hcmNo LmFsdHAybV9wMm0pLCBNQVhfRVBUUCkgfHwNCj4gLSAgICAgICAgICAgICBkLT5hcmNoLmFsdHAy bV9lcHRwW2FycmF5X2luZGV4X25vc3BlYyhhbHRwMm1faWR4LCBNQVhfRVBUUCldID09DQo+ICsg ICAgICAgIGlmICggc3ZlLT52aWV3ID49IG1pbihBUlJBWV9TSVpFKGQtPmFyY2guYWx0cDJtX3Ay bSksIE1BWF9FUFRQKSB8fA0KPiArICAgICAgICAgICAgIGQtPmFyY2guYWx0cDJtX2VwdHBbYXJy YXlfaW5kZXhfbm9zcGVjKHN2ZS0+dmlldywgTUFYX0VQVFApXSA9PQ0KPiAgICAgICAgICAgICAg ICBtZm5feChJTlZBTElEX01GTikgKQ0KPiAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K PiAgIA0KPiAtICAgICAgICBwMm0gPSBhcDJtID0gYXJyYXlfYWNjZXNzX25vc3BlYyhkLT5hcmNo LmFsdHAybV9wMm0sIGFsdHAybV9pZHgpOw0KPiArICAgICAgICBwMm0gPSBhcDJtID0gYXJyYXlf YWNjZXNzX25vc3BlYyhkLT5hcmNoLmFsdHAybV9wMm0sIHN2ZS0+dmlldyk7DQo+ICAgICAgIH0N Cj4gLSAgICBlbHNlDQo+IC0gICAgICAgIHAybSA9IGhvc3RfcDJtOw0KPiAgIA0KPiAtICAgIGdm bl9sb2NrKGhvc3RfcDJtLCBnZm4sIDApOw0KPiArICAgIHAybV9sb2NrKGhvc3RfcDJtKTsNCj4g ICANCj4gICAgICAgaWYgKCBhcDJtICkNCj4gICAgICAgICAgIHAybV9sb2NrKGFwMm0pOw0KPiAg IA0KPiAtICAgIHJjID0gYWx0cDJtX2dldF9lZmZlY3RpdmVfZW50cnkocDJtLCBnZm4sICZtZm4s ICZ0LCAmYSwgQVAyTUdFVF9xdWVyeSk7DQo+ICsgICAgd2hpbGUgKCBzdmUtPmxhc3RfZ2ZuID49 IHN0YXJ0ICkNCj4gKyAgICB7DQo+ICsgICAgICAgIHAybV9hY2Nlc3NfdCBhOw0KPiArICAgICAg ICBwMm1fdHlwZV90IHQ7DQo+ICsgICAgICAgIG1mbl90IG1mbjsNCj4gKyAgICAgICAgaW50IGVy ciA9IDA7DQo+ICAgDQo+IC0gICAgaWYgKCByYyApDQo+IC0gICAgICAgIGdvdG8gb3V0Ow0KPiAr ICAgICAgICBpZiAoIChlcnIgPSBhbHRwMm1fZ2V0X2VmZmVjdGl2ZV9lbnRyeShwMm0sIF9nZm4o c3RhcnQpLCAmbWZuLCAmdCwgJmEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFQMk1HRVRfcXVlcnkpKSAmJg0KPiArICAgICAgICAgICAgICFzdmUt PmZpcnN0X2Vycm9yICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAgICAgc3ZlLT5maXJzdF9l cnJvcl9nZm4gPSBzdGFydDsgLyogU2F2ZSB0aGUgZ2ZuIG9mIHRoZSBmaXJzdCBlcnJvciAqLw0K PiArICAgICAgICAgICAgc3ZlLT5maXJzdF9lcnJvciA9IGVycjsgLyogU2F2ZSB0aGUgZmlyc3Qg ZXJyb3IgY29kZSAqLw0KPiArICAgICAgICB9DQo+ICAgDQo+IC0gICAgcmMgPSBwMm0tPnNldF9l bnRyeShwMm0sIGdmbiwgbWZuLCBQQUdFX09SREVSXzRLLCB0LCBhLCBzdXBwcmVzc192ZSk7DQo+ ICsgICAgICAgIGlmICggIWVyciAmJiAoZXJyID0gcDJtLT5zZXRfZW50cnkocDJtLCBfZ2ZuKHN0 YXJ0KSwgbWZuLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBBR0VfT1JERVJfNEssIHQsIGEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3ZlLT5zdXBwcmVzc192ZSkpICYmDQo+ICsgICAgICAgICAgICAgIXN2ZS0+ Zmlyc3RfZXJyb3IgKQ0KPiArICAgICAgICB7DQo+ICsgICAgICAgICAgICBzdmUtPmZpcnN0X2Vy cm9yX2dmbiA9IHN0YXJ0OyAvKiBTYXZlIHRoZSBnZm4gb2YgdGhlIGZpcnN0IGVycm9yICovDQo+ ICsgICAgICAgICAgICBzdmUtPmZpcnN0X2Vycm9yID0gZXJyOyAvKiBTYXZlIHRoZSBmaXJzdCBl cnJvciBjb2RlICovDQo+ICsgICAgICAgIH0NCj4gKw0KPiArICAgICAgICAvKiBDaGVjayBmb3Ig Y29udGludWF0aW9uIGlmIGl0J3Mgbm90IHRoZSBsYXN0IGl0ZXJhdGlvbi4gKi8NCj4gKyAgICAg ICAgaWYgKCBzdmUtPmxhc3RfZ2ZuID49ICsrc3RhcnQgJiYgaHlwZXJjYWxsX3ByZWVtcHRfY2hl Y2soKSApDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAgIHJjID0gLUVSRVNUQVJUOw0KPiAr ICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsNCj4gKyAgICBz dmUtPmZpcnN0X2dmbiA9IHN0YXJ0Ow0KPiAgIA0KPiAtb3V0Og0KPiAgICAgICBpZiAoIGFwMm0g KQ0KPiAgICAgICAgICAgcDJtX3VubG9jayhhcDJtKTsNCj4gICANCj4gLSAgICBnZm5fdW5sb2Nr KGhvc3RfcDJtLCBnZm4sIDApOw0KPiArICAgIHAybV91bmxvY2soaG9zdF9wMm0pOw0KPiAgIA0K PiAgICAgICByZXR1cm4gcmM7DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9odm1fb3AuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmgNCj4gaW5k ZXggMzUzZjgwMzRkOS4uZDM0NDYwNjg2NCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUvcHVi bGljL2h2bS9odm1fb3AuaA0KPiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5o DQo+IEBAIC00Niw2ICs0NiwxNiBAQCBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc3VwcHJlc3NfdmUg ew0KPiAgICAgICB1aW50NjRfdCBnZm47DQo+ICAgfTsNCj4gICANCj4gK3N0cnVjdCB4ZW5faHZt X2FsdHAybV9zdXBwcmVzc192ZV9tdWx0aSB7DQo+ICsgICAgdWludDE2X3QgdmlldzsNCj4gKyAg ICB1aW50OF90IHN1cHByZXNzX3ZlOyAvKiBCb29sZWFuIHR5cGUuICovDQo+ICsgICAgdWludDhf dCBwYWQxOw0KPiArICAgIGludDMyX3QgZmlyc3RfZXJyb3I7IC8qIFNob3VsZCBiZSBzZXQgdG8g MC4gKi8NCj4gKyAgICB1aW50NjRfdCBmaXJzdF9nZm47IC8qIFZhbHVlIG1heSBiZSB1cGRhdGVk LiAqLw0KPiArICAgIHVpbnQ2NF90IGxhc3RfZ2ZuOw0KPiArICAgIHVpbnQ2NF90IGZpcnN0X2Vy cm9yX2dmbjsgLyogR2ZuIG9mIHRoZSBmaXJzdCBlcnJvci4gKi8NCj4gK307DQo+ICsNCj4gICAj aWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDANCj4gICANCj4gICAvKiBT ZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MgUENJIElOVHggd2lyZXMu ICovDQo+IEBAIC0zMzksNiArMzQ5LDggQEAgc3RydWN0IHhlbl9odm1fYWx0cDJtX29wIHsNCj4g ICAjZGVmaW5lIEhWTU9QX2FsdHAybV92Y3B1X2Rpc2FibGVfbm90aWZ5ICAxMw0KPiAgIC8qIEdl dCB0aGUgYWN0aXZlIHZjcHUgcDJtIGluZGV4ICovDQo+ICAgI2RlZmluZSBIVk1PUF9hbHRwMm1f Z2V0X3AybV9pZHggICAgICAgICAgMTQNCj4gKy8qIFNldCB0aGUgIlN1cHJlc3MgI1ZFIiBiaXQg Zm9yIGEgcmFuZ2Ugb2YgcGFnZXMgKi8NCj4gKyNkZWZpbmUgSFZNT1BfYWx0cDJtX3NldF9zdXBw cmVzc192ZV9tdWx0aSAxNQ0KPiAgICAgICBkb21pZF90IGRvbWFpbjsNCj4gICAgICAgdWludDE2 X3QgcGFkMTsNCj4gICAgICAgdWludDMyX3QgcGFkMjsNCj4gQEAgLTM1Myw2ICszNjUsNyBAQCBz dHJ1Y3QgeGVuX2h2bV9hbHRwMm1fb3Agew0KPiAgICAgICAgICAgc3RydWN0IHhlbl9odm1fYWx0 cDJtX2NoYW5nZV9nZm4gICAgICAgICAgIGNoYW5nZV9nZm47DQo+ICAgICAgICAgICBzdHJ1Y3Qg eGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfbXVsdGkgc2V0X21lbV9hY2Nlc3NfbXVsdGk7 DQo+ICAgICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc3VwcHJlc3NfdmUgICAgICAgICAg c3VwcHJlc3NfdmU7DQo+ICsgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zdXBwcmVzc192 ZV9tdWx0aSAgICBzdXBwcmVzc192ZV9tdWx0aTsNCj4gICAgICAgICAgIHN0cnVjdCB4ZW5faHZt X2FsdHAybV92Y3B1X2Rpc2FibGVfbm90aWZ5ICBkaXNhYmxlX25vdGlmeTsNCj4gICAgICAgICAg IHN0cnVjdCB4ZW5faHZtX2FsdHAybV9nZXRfdmNwdV9wMm1faWR4ICAgICBnZXRfdmNwdV9wMm1f aWR4Ow0KPiAgICAgICAgICAgdWludDhfdCBwYWRbNjRdOw0KPiBkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL21lbV9hY2Nlc3MuaCBiL3hlbi9pbmNsdWRlL3hlbi9tZW1fYWNjZXNzLmgNCj4g aW5kZXggZTRkMjQ1MDJlMC4uMDBlNTk0YTBhZCAxMDA2NDQNCj4gLS0tIGEveGVuL2luY2x1ZGUv eGVuL21lbV9hY2Nlc3MuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vbWVtX2FjY2Vzcy5oDQo+ IEBAIC03NSw2ICs3NSw5IEBAIGxvbmcgcDJtX3NldF9tZW1fYWNjZXNzX211bHRpKHN0cnVjdCBk b21haW4gKmQsDQo+ICAgaW50IHAybV9zZXRfc3VwcHJlc3NfdmUoc3RydWN0IGRvbWFpbiAqZCwg Z2ZuX3QgZ2ZuLCBib29sIHN1cHByZXNzX3ZlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBhbHRwMm1faWR4KTsNCj4gICANCj4gK2ludCBwMm1fc2V0X3N1cHByZXNz X3ZlX211bHRpKHN0cnVjdCBkb21haW4gKmQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fc3VwcHJlc3NfdmVfbXVsdGkgKnN1cHByZXNzX3Zl KTsNCj4gKw0KPiAgIGludCBwMm1fZ2V0X3N1cHByZXNzX3ZlKHN0cnVjdCBkb21haW4gKmQsIGdm bl90IGdmbiwgYm9vbCAqc3VwcHJlc3NfdmUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGFsdHAybV9pZHgpOw0KPiAgIA0KPiANCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=