Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp197445ybb; Thu, 9 Apr 2020 20:58:47 -0700 (PDT) X-Google-Smtp-Source: APiQypKTR7WvW7qLpHcjAUufMHVJCXagk+zpb0252DCLVbk9DrT8yYOD1TFbbumcbhLZxYjHXNGT X-Received: by 2002:a05:6214:924:: with SMTP id dk4mr3422592qvb.140.1586491127144; Thu, 09 Apr 2020 20:58:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586491127; cv=none; d=google.com; s=arc-20160816; b=caUb3auSNFG2R5dQzXlVsWHKc7P5YXijqedPYxPlenoTP4SbnNzjwLjnhiPie7yOoy GEKPCVIzZ7IWAIJ59wB/hWVM8w5cZop5v2c1t+jUzWstPlicu2dJN+5/C3u40e6Gn9Dv DGRMLKtqgoaX8+79xVTD8+IHcrwQyKzfGmDXDyxiVW5sA9tQZKmClgXrfQLci/e/I143 wfRlsSiPyzwPhbllBR3g65UVTMn0vFvJLOh7QJZxO76F3KN1tbn452fnVuxTppQjlpEG EtLxQJBaW2DtlZZvl40Vxp8O5Dfdba4hECoHG1E7Xt0OrQVrogHeMoiB2YA9SDnSnjNh HelA== 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 :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:ironport-sdr:ironport-sdr; bh=yxVSIZiEBMHdVO5mWr/W6+x/LcI4qFao7+1pWBTlY/w=; b=GuSWDchI/rXnlicLe93JrIx9Zggx99FCurEmv6KRXejUcEjLfwQ755uL6KrKBu6usd fiEhSRUkjFZJtmrpl0D6dw29Q9/JsE0ff9kh6PjXAhZPTD9oz+qlfgnxeX1v9R09LD0P pjdqk+2VniihiBs/k+SSbn89W+sIYGzUlu7wthYMzM30AQZwBwqrSFE+n4xY3K1bozNg 5BxXvqyuhzcjxHnbXm7mzQ5pRSEN6IL/vIjhDuS7XZoBLGEqtWD8XKpmthU8L7vWBUsg TV0GO5vR/LxjStkPyU40fiQyHSPLQXRyItVvfUfKA37Y+OycASWnNMjtSERl/LZLXjZU ssUQ== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p54si480739qtj.76.2020.04.09.20.58.32; Thu, 09 Apr 2020 20:58:47 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728186AbgDJD56 (ORCPT + 99 others); Thu, 9 Apr 2020 23:57:58 -0400 Received: from mga17.intel.com ([192.55.52.151]:5030 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728408AbgDJDs6 (ORCPT ); Thu, 9 Apr 2020 23:48:58 -0400 IronPort-SDR: XNx1GpO2L9lxGagdJXXiqYj3WeLtPDwNu6KEceVUrON+8VZTuKuRDYQKSQRj7n9bh7Na/8l/9j 593OG0gWYorw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Apr 2020 20:48:58 -0700 IronPort-SDR: PMJlktvkLL+qA2z9GAk5PCuStScGWDR9cIT7sYx6Dmxj1zZGJjhOW3OqpZuvIpOJFcUpN9/ede FtRAMdL+l5rg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,364,1580803200"; d="scan'208";a="331068532" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 09 Apr 2020 20:48:57 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 9 Apr 2020 20:48:57 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 9 Apr 2020 20:48:57 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.225]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.22]) with mapi id 14.03.0439.000; Fri, 10 Apr 2020 11:48:53 +0800 From: "Liu, Yi L" To: Auger Eric , Jean-Philippe Brucker , "jacob.jun.pan@linux.intel.com" CC: "alex.williamson@redhat.com" , "Tian, Kevin" , "joro@8bytes.org" , "Raj, Ashok" , "Tian, Jun J" , "Sun, Yi Y" , "peterx@redhat.com" , "iommu@lists.linux-foundation.org" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Wu, Hao" Subject: RE: [PATCH v1 5/8] vfio/type1: Report 1st-level/stage-1 format to userspace Thread-Topic: [PATCH v1 5/8] vfio/type1: Report 1st-level/stage-1 format to userspace Thread-Index: AQHWAEUcqZEEdiOKbEGofjWp2Yic+6hjfq+AgAC/vLD//4YrAIAC1vWAgAbjh1CAARsGAIABbRkAgADQzoCAAHFwgIAAhnyw Date: Fri, 10 Apr 2020 03:48:52 +0000 Message-ID: References: <1584880325-10561-1-git-send-email-yi.l.liu@intel.com> <1584880325-10561-6-git-send-email-yi.l.liu@intel.com> <20200403082305.GA1269501@myrica> <20200409081442.GD2435@myrica> <194923cd-666c-2244-bfc6-95a1c61d4d99@redhat.com> In-Reply-To: <194923cd-666c-2244-bfc6-95a1c61d4d99@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgRXJpYywNCg0KPiBGcm9tOiBBdWdlciBFcmljIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+DQo+ IFNlbnQ6IEZyaWRheSwgQXByaWwgMTAsIDIwMjAgMTE6MjggQU0NCj4gVG86IExpdSwgWWkgTCA8 eWkubC5saXVAaW50ZWwuY29tPjsgSmVhbi1QaGlsaXBwZSBCcnVja2VyIDxqZWFuLQ0KPiBTdWJq ZWN0OiBSZTogW1BBVENIIHYxIDUvOF0gdmZpby90eXBlMTogUmVwb3J0IDFzdC1sZXZlbC9zdGFn ZS0xIGZvcm1hdCB0bw0KPiB1c2Vyc3BhY2UNCj4gDQo+IEhpIFlpLA0KPiANCj4gT24gNC85LzIw IDI6NDcgUE0sIExpdSwgWWkgTCB3cm90ZToNCj4gPiBIaSBKZWFuLA0KPiA+DQo+ID4+IEZyb206 IEplYW4tUGhpbGlwcGUgQnJ1Y2tlciA8amVhbi1waGlsaXBwZUBsaW5hcm8ub3JnPg0KPiA+PiBT ZW50OiBUaHVyc2RheSwgQXByaWwgOSwgMjAyMCA0OjE1IFBNDQo+ID4+IFN1YmplY3Q6IFJlOiBb UEFUQ0ggdjEgNS84XSB2ZmlvL3R5cGUxOiBSZXBvcnQgMXN0LWxldmVsL3N0YWdlLTENCj4gPj4g Zm9ybWF0IHRvIHVzZXJzcGFjZQ0KPiA+Pg0KPiA+PiBPbiBXZWQsIEFwciAwOCwgMjAyMCBhdCAx MjoyNzo1OFBNICswMjAwLCBBdWdlciBFcmljIHdyb3RlOg0KPiA+Pj4gSGkgWWksDQo+ID4+Pg0K PiA+Pj4gT24gNC83LzIwIDExOjQzIEFNLCBMaXUsIFlpIEwgd3JvdGU6DQo+ID4+Pj4gSGkgSmVh biwNCj4gPj4+Pg0KPiA+Pj4+PiBGcm9tOiBKZWFuLVBoaWxpcHBlIEJydWNrZXIgPGplYW4tcGhp bGlwcGVAbGluYXJvLm9yZz4NCj4gPj4+Pj4gU2VudDogRnJpZGF5LCBBcHJpbCAzLCAyMDIwIDQ6 MjMgUE0NCj4gPj4+Pj4gVG86IEF1Z2VyIEVyaWMgPGVyaWMuYXVnZXJAcmVkaGF0LmNvbT4gdXNl cnNwYWNlDQo+ID4+Pj4+DQo+ID4+Pj4+IE9uIFdlZCwgQXByIDAxLCAyMDIwIGF0IDAzOjAxOjEy UE0gKzAyMDAsIEF1Z2VyIEVyaWMgd3JvdGU6DQo+ID4+Pj4+Pj4+PiAgCWhlYWRlciA9IHZmaW9f aW5mb19jYXBfYWRkKGNhcHMsIHNpemVvZigqbmVzdGluZ19jYXApLA0KPiA+Pj4+Pj4+Pj4NCj4g Pj4gVkZJT19JT01NVV9UWVBFMV9JTkZPX0NBUF9ORVNUSU5HLCAxKTsNCj4gPj4+Pj4gQEAgLTIy NTQsNiArMjMwOSw3DQo+ID4+Pj4+Pj4+PiBAQCBzdGF0aWMgaW50IHZmaW9faW9tbXVfaW5mb19h ZGRfbmVzdGluZ19jYXAoc3RydWN0DQo+ID4+Pj4+Pj4+IHZmaW9faW9tbXUgKmlvbW11LA0KPiA+ Pj4+Pj4+Pj4gIAkJLyogbmVzdGluZyBpb21tdSB0eXBlIHN1cHBvcnRzIFBBU0lEIHJlcXVlc3Rz DQo+IChhbGxvYy9mcmVlKQ0KPiA+PiAqLw0KPiA+Pj4+Pj4+Pj4gIAkJbmVzdGluZ19jYXAtPm5l c3RpbmdfY2FwYWJpbGl0aWVzIHw9DQo+ID4+IFZGSU9fSU9NTVVfUEFTSURfUkVRUzsNCj4gPj4+ Pj4+Pj4gV2hhdCBpcyB0aGUgbWVhbmluZyBmb3IgQVJNPw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g SSB0aGluayBpdCdzIGp1c3QgYSBzb2Z0d2FyZSBjYXBhYmlsaXR5IGV4cG9zZWQgdG8gdXNlcnNw YWNlLCBvbg0KPiA+Pj4+Pj4+IHVzZXJzcGFjZSBzaWRlLCBpdCBoYXMgYSBjaG9pY2UgdG8gdXNl IGl0IG9yIG5vdC4gOi0pIFRoZSByZWFzb24NCj4gPj4+Pj4+PiBkZWZpbmUgaXQgYW5kIHJlcG9y dCBpdCBpbiBjYXAgbmVzdGluZyBpcyB0aGF0IEknZCBsaWtlIHRvIG1ha2UNCj4gPj4+Pj4+PiB0 aGUgcGFzaWQgYWxsb2MvZnJlZSBiZSBhdmFpbGFibGUganVzdCBmb3IgSU9NTVUgd2l0aCB0eXBl DQo+ID4+Pj4+Pj4gVkZJT19JT01NVV9UWVBFMV9ORVNUSU5HLiBQbGVhc2UgZmVlbCBmcmVlIHRl bGwgbWUgaWYgaXQgaXMgbm90DQo+ID4+Pj4+Pj4gZ29vZCBmb3IgQVJNLiBXZSBjYW4gZmluZCBh IHByb3BlciB3YXkgdG8gcmVwb3J0IHRoZSBhdmFpbGFiaWxpdHkuDQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gV2VsbCBpdCBpcyBtb3JlIGEgcXVlc3Rpb24gZm9yIGplYW4tUGhpbGlwcGUuIERvIHdlIGhh dmUgYSBzeXN0ZW0NCj4gPj4+Pj4+IHdpZGUgUEFTSUQgYWxsb2NhdGlvbiBvbiBBUk0/DQo+ID4+ Pj4+DQo+ID4+Pj4+IFdlIGRvbid0LCB0aGUgUEFTSUQgc3BhY2VzIGFyZSBwZXItVk0gb24gQXJt LCBzbyB0aGlzIGZ1bmN0aW9uDQo+ID4+Pj4+IHNob3VsZCBjb25zdWx0DQo+ID4+IHRoZQ0KPiA+ Pj4+PiBJT01NVSBkcml2ZXIgYmVmb3JlIHNldHRpbmcgZmxhZ3MuIEFzIHlvdSBzYWlkIG9uIHBh dGNoIDMsIG5lc3RlZA0KPiA+Pj4+PiBkb2Vzbid0IG5lY2Vzc2FyaWx5IGltcGx5IFBBU0lEIHN1 cHBvcnQuIFRoZSBTTU1VdjIgZG9lcyBub3QNCj4gPj4+Pj4gc3VwcG9ydCBQQVNJRCBidXQgZG9l cyBzdXBwb3J0IG5lc3Rpbmcgc3RhZ2VzIDEgYW5kIDIgZm9yIHRoZSBJT1ZBIHNwYWNlLg0KPiA+ Pj4+PiBTTU1VdjMgc3VwcG9ydCBvZiBQQVNJRCBkZXBlbmRzIG9uIEhXIGNhcGFiaWxpdGllcy4g U28gSSB0aGluaw0KPiA+Pj4+PiB0aGlzIG5lZWRzIHRvDQo+ID4+IGJlDQo+ID4+Pj4+IGZpbmVy IGdyYWluZWQ6DQo+ID4+Pj4+DQo+ID4+Pj4+IERvZXMgdGhlIGNvbnRhaW5lciBzdXBwb3J0Og0K PiA+Pj4+PiAqIFZGSU9fSU9NTVVfUEFTSURfUkVRVUVTVD8NCj4gPj4+Pj4gICAtPiBZZXMgZm9y IFZULWQgMw0KPiA+Pj4+PiAgIC0+IE5vIGZvciBBcm0gU01NVQ0KPiA+Pj4+PiAqIFZGSU9fSU9N TVVfeyxVTn1CSU5EX0dVRVNUX1BHVEJMPw0KPiA+Pj4+PiAgIC0+IFllcyBmb3IgVlQtZCAzDQo+ ID4+Pj4+ICAgLT4gU29tZXRpbWVzIGZvciBTTU1VdjINCj4gPj4+Pj4gICAtPiBObyBmb3IgU01N VXYzIChpZiB3ZSBnbyB3aXRoIEJJTkRfUEFTSURfVEFCTEUsIHdoaWNoIGlzIHNpbXBsZXINCj4g ZHVlIHRvDQo+ID4+Pj4+ICAgICAgUEFTSUQgdGFibGVzIGJlaW5nIGluIEdQQSBzcGFjZS4pDQo+ ID4+Pj4+ICogVkZJT19JT01NVV9CSU5EX1BBU0lEX1RBQkxFPw0KPiA+Pj4+PiAgIC0+IE5vIGZv ciBWVC1kDQo+ID4+Pj4+ICAgLT4gU29tZXRpbWVzIGZvciBTTU1VdjMNCj4gPj4+Pj4NCj4gPj4+ Pj4gQW55IGJpbmQgc3VwcG9ydCBpbXBsaWVzIFZGSU9fSU9NTVVfQ0FDSEVfSU5WQUxJREFURSBz dXBwb3J0Lg0KPiA+Pj4+DQo+ID4+Pj4gZ29vZCBzdW1tYXJ5LiBkbyB5b3UgZXhwZWN0IHRvIHNl ZSBhbnkNCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gKwluZXN0aW5nX2NhcC0+c3RhZ2Ux X2Zvcm1hdHMgPSBmb3JtYXRzOw0KPiA+Pj4+Pj4+PiBhcyBzcG90dGVkIGJ5IEtldmluLCBzaW5j ZSBhIHNpbmdsZSBmb3JtYXQgaXMgc3VwcG9ydGVkLCByZW5hbWUNCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+IG9rLCBJIHdhcyBiZWxpZXZpbmcgaXQgbWF5IGJlIHBvc3NpYmxlIG9uIEFSTSBvciBzby4g Oi0pIHdpbGwNCj4gPj4+Pj4+PiByZW5hbWUgaXQuDQo+ID4+Pj4+DQo+ID4+Pj4+IFllcyBJIGRv bid0IHRoaW5rIGFuIHUzMiBpcyBnb2luZyB0byBjdXQgaXQgZm9yIEFybSA6KCBXZSBuZWVkIHRv DQo+ID4+Pj4+IGRlc2NyaWJlIGFsbCBzb3J0cw0KPiA+PiBvZg0KPiA+Pj4+PiBjYXBhYmlsaXRp ZXMgZm9yIHBhZ2UgYW5kIFBBU0lEIHRhYmxlcyAoZ3JhbnVsZXMsIEdQQSBzaXplLA0KPiA+Pj4+ PiBBU0lEL1BBU0lEIHNpemUsIEhXIGFjY2Vzcy9kaXJ0eSwgZXRjIGV0Yy4pIEp1c3Qgc2F5aW5n ICJBcm0NCj4gPj4+Pj4gc3RhZ2UtMSBmb3JtYXQiIHdvdWxkbid0IG1lYW4gbXVjaC4gSSBndWVz cyB3ZSBjb3VsZCBoYXZlIGEgc2Vjb25kYXJ5DQo+IHZlbmRvciBjYXBhYmlsaXR5IGZvciB0aGVz ZT8NCj4gPj4+Pg0KPiA+Pj4+IEFjdHVhbGx5LCBJJ20gd29uZGVyaW5nIGlmIHdlIGNhbiBkZWZp bmUgc29tZSBmb3JtYXRzIHRvIHN0YW5kcyBmb3INCj4gPj4+PiBhIHNldCBvZiBjYXBhYmlsaXRp ZXMuIGUuZy4gVlREX1NUQUdFMV9GT1JNQVRfVjEgd2hpY2ggbWF5DQo+ID4+Pj4gaW5kaWNhdGVz IHRoZSAxc3QgbGV2ZWwgcGFnZSB0YWJsZSByZWxhdGVkIGNhcHMgKGF3LCBhL2QsIFNSRSwgRUEN Cj4gPj4+PiBhbmQgZXRjLikuIEFuZCB2SU9NTVUgY2FuIHBhcnNlIHRoZSBjYXBhYmlsaXRpZXMu DQo+ID4+Pg0KPiA+Pj4gQnV0IGV2ZW50dWFsbHkgZG8gd2UgcmVhbGx5IG5lZWQgYWxsIHRob3Nl IGNhcGFiaWxpdHkgZ2V0dGVycz8gSQ0KPiA+Pj4gbWVhbiBjYW4ndCB3ZSBzaW1wbHkgcmVseSBv biB0aGUgYWN0dWFsIGNhbGwgdG8NCj4gPj4+IFZGSU9fSU9NTVVfQklORF9HVUVTVF9QR1RCTCgp IHRvIGRldGVjdCBhbnkgbWlzbWF0Y2g/IERlZmluaXRpdmVseQ0KPiA+Pj4gdGhlIGVycm9yIGhh bmRsaW5nIG1heSBiZSBoZWF2aWVyIG9uIHVzZXJzcGFjZSBidXQgY2FuJ3Qgd2UgbWFuYWdlLg0K PiA+Pg0KPiA+PiBJIHRoaW5rIHdlIG5lZWQgdG8gcHJlc2VudCB0aGVzZSBjYXBhYmlsaXRpZXMg YXQgYm9vdCB0aW1lLCBsb25nDQo+ID4+IGJlZm9yZSB0aGUgZ3Vlc3QgdHJpZ2dlcnMgYSBiaW5k KCkuIEZvciBleGFtcGxlIGlmIHRoZSBob3N0IFNNTVUNCj4gPj4gZG9lc24ndCBzdXBwb3J0IDE2 LWJpdCBBU0lELCB3ZSBuZWVkIHRvIGNvbW11bmljYXRlIHRoYXQgdG8gdGhlIGd1ZXN0DQo+ID4+ IHVzaW5nIHZTTU1VIElEIHJlZ2lzdGVycyBvciBQUk9CRSBwcm9wZXJ0aWVzLiBPdGhlcndpc2Ug YSBiaW5kKCkgd2lsbA0KPiA+PiBzdWNjZWVkLCBidXQgaWYgdGhlIGd1ZXN0IHVzZXMgMTYtYml0 IEFTSURzIGluIGl0cyBDRCwgRE1BIHdpbGwNCj4gPj4gcmVzdWx0IGluIENfQkFEX0NEIGV2ZW50 cyB3aGljaCB3ZSdsbCBpbmplY3QgaW50byB0aGUgZ3Vlc3QsIGZvciBubw0KPiA+PiBhcHBhcmVu dCByZWFzb24gZnJvbSB0aGVpciBwZXJzcGVjdGl2ZS4NCj4gPj4NCj4gPj4gSW4gYWRkaXRpb24g c29tZSBWTU1zIG1heSBoYXZlIGZhbGxiYWNrcyBpZiBzaGFyZWQgcGFnZSB0YWJsZXMgYXJlDQo+ ID4+IG5vdCBhdmFpbGFibGUuIFRoZXkgY291bGQgZmFsbCBiYWNrIHRvIGEgTUFQL1VOTUFQIGlu dGVyZmFjZSwgb3INCj4gPj4gc2ltcGx5IG5vdCBwcmVzZW50IGEgdklPTU1VIHRvIHRoZSBndWVz dC4NCj4gPj4NCj4gPg0KPiA+IEJhc2VkIG9uIHRoZSBjb21tZW50cywgSSB0aGluayBpdCB3b3Vs ZCBiZSBhIG5lZWQgdG8gcmVwb3J0IGlvbW11IGNhcHMNCj4gPiBpbiBkZXRhaWwuIFNvIEkgZ3Vl c3MgaW9tbXUgdWFwaSBuZWVkcyB0byBwcm92aWRlIHNvbWV0aGluZyBhbGlrZSB2ZmlvDQo+ID4g Y2FwIGNoYWluIGluIGlvbW11IHVhcGkuIFBsZWFzZSBmZWVsIGZyZWUgbGV0IG1lIGtub3cgeW91 ciB0aG91Z2h0cy4NCj4gPiA6LSkNCj4gDQo+IFllcyB0byBtZSBpdCBzb3VuZHMgc2Vuc2libGUu DQo+ID4NCj4gPiBJbiB2ZmlvLCB3ZSBjYW4gZGVmaW5lIGEgY2FwIGFzIGJlbG93Og0KPiA+DQo+ ID4gc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mb19jYXBfbmVzdGluZyB7DQo+ID4gCXN0cnVj dCAgdmZpb19pbmZvX2NhcF9oZWFkZXIgaGVhZGVyOw0KPiA+IAlfX3U2NAlpb21tdV9tb2RlbDsN Cj4gPiAjZGVmaW5lIFZGSU9fSU9NTVVfUEFTSURfUkVRUwkJKDEgPDwgMCkNCj4gSSBzdGlsbCB0 aGluayB0aGUgbmFtZSBzaGFsbCBiZSBjaGFuZ2VkDQoNCnllcywgSSdsbCByZW5hbWUgaXQgcGVy IHlvdXIgc3VnZ2VzdGlvbi46LSkNCg0KPiA+ICNkZWZpbmUgVkZJT19JT01NVV9CSU5EX0dQQVNJ RAkJKDEgPDwgMSkNCj4gPiAjZGVmaW5lIFZGSU9fSU9NTVVfQ0FDSEVfSU5WCQkoMSA8PCAyKQ0K PiB0aGlzIG9wZXJhdGlvbiBzZWVtcyBtYW5kYXRlZCBhcyBzb29uIGFzIHdlIGhhdmUgYSBuZXN0 ZWQgcGFnaW5nIGJhc2VkDQo+IGltcGxlbWVudGF0aW9uPw0KDQpvaCwgeWVzLCBzaG91bGQgYmUu IHdpbGwgcmVtb3ZlIGl0IGFuZCBjb21tZW50IGluIHRoZSBjb2RlLg0KDQpSZWdhcmRzLA0KWWkg TGl1DQoNCj4gPiAJX191MzIJbmVzdGluZ19jYXBhYmlsaXRpZXM7DQo+ID4gCV9fdTMyCXBhc2lk X2JpdHM7DQo+ID4gI2RlZmluZSBWRklPX0lPTU1VX1ZFTkRPUl9TVUJfQ0FQCSgxIDw8IDMpDQo+ ID4gCV9fdTMyCWZsYWdzOw0KPiA+IAlfX3UzMglkYXRhX3NpemU7DQo+ID4gCV9fdTgJZGF0YVtd OyAgLyppb21tdSBpbmZvIGNhcHMgZGVmaW5lZCBieSBpb21tdSB1YXBpICovDQo+ID4gfTsNCj4g Pg0KPiA+IFZGSU8gbmVlZHMgbmV3IGlvbW11IEFQSXMgdG8gYXNrIGlvbW11IGRyaXZlciB3aGV0 aGVyDQo+ID4gUEFTSUQvYmluZF9ncGFzaWQvIGNhY2hlX2ludi9iaW5kX2dwYXNpZF90YWJsZSBp cyBhdmFpbGFibGUgb3Igbm90IGFuZA0KPiA+IGFsc28gdGhlIHBhc2lkIGJpdHMuIEFmdGVyIHRo YXQgVkZJTyB3aWxsIGFzayBpb21tdSBkcml2ZXIgYWJvdXQgdGhlDQo+ID4gaW9tbXVfY2FwX2lu Zm8gYW5kIGZpbGwgaW4gdGhlIEBkYXRhW10gZmllbGQuDQo+ID4NCj4gPiBpb21tdSB1YXBpOg0K PiA+IHN0cnVjdCBpb21tdV9pbmZvX2NhcF9oZWFkZXIgew0KPiA+IAlfX3UxNglpZDsJCS8qIElk ZW50aWZpZXMgY2FwYWJpbGl0eSAqLw0KPiA+IAlfX3UxNgl2ZXJzaW9uOwkJLyogVmVyc2lvbiBz cGVjaWZpYyB0byB0aGUgY2FwYWJpbGl0eSBJRCAqLw0KPiA+IAlfX3UzMgluZXh0OwkJLyogT2Zm c2V0IG9mIG5leHQgY2FwYWJpbGl0eSAqLw0KPiA+IH07DQo+ID4NCj4gPiAjZGVmaW5lIElPTU1V X0lORk9fQ0FQX0lOVEVMX1ZURCAxDQo+ID4gc3RydWN0IGlvbW11X2luZm9fY2FwX2ludGVsX3Z0 ZCB7DQo+ID4gCXN0cnVjdAlpb21tdV9pbmZvX2NhcF9oZWFkZXIgaGVhZGVyOw0KPiA+IAlfX3Uz MiAgIHZhZGRyX3dpZHRoOyAgIC8qIFZBIGFkZHJfd2lkdGgqLw0KPiA+IAlfX3UzMiAgIGlwYWRk cl93aWR0aDsgLyogSVBBIGFkZHJfd2lkdGgsIGlucHV0IG9mIFNMIHBhZ2UgdGFibGUgKi8NCj4g PiAJLyogc2FtZSBkZWZpbml0aW9uIHdpdGggQGZsYWdzIGluc3RydWN0IGlvbW11X2dwYXNpZF9i aW5kX2RhdGFfdnRkICovDQo+ID4gCV9fdTY0CWZsYWdzOw0KPiA+IH07DQo+ID4NCj4gPiAjZGVm aW5lIElPTU1VX0lORk9fQ0FQX0FSTV9TTU1VdjMgMg0KPiA+IHN0cnVjdCBpb21tdV9pbmZvX2Nh cF9hcm1fc21tdXYzIHsNCj4gPiAJc3RydWN0CWlvbW11X2luZm9fY2FwX2hlYWRlciBoZWFkZXI7 DQo+ID4gCS4uLg0KPiA+IH07DQo+IA0KPiBUaGFua3MNCj4gDQo+IEVyaWMNCj4gPg0KPiA+IFJl Z2FyZHMsDQo+ID4gWWkgTGl1DQo+ID4NCg0K