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=-10.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 DC44CC433E1 for ; Fri, 14 Aug 2020 07:42:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A8B5F2074D for ; Fri, 14 Aug 2020 07:42:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=intel.onmicrosoft.com header.i=@intel.onmicrosoft.com header.b="Y9mEZZ7Z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726270AbgHNHl6 (ORCPT ); Fri, 14 Aug 2020 03:41:58 -0400 Received: from mga11.intel.com ([192.55.52.93]:43315 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726116AbgHNHl6 (ORCPT ); Fri, 14 Aug 2020 03:41:58 -0400 IronPort-SDR: vbdPzSalOobO3vRL1SSc+RZoJaok7NwXiNsJzBptk9WVH7ehEckYpgZc/yvvudFz2JL0HMYGde 9R2DB5FMvR/g== X-IronPort-AV: E=McAfee;i="6000,8403,9712"; a="152016389" X-IronPort-AV: E=Sophos;i="5.76,311,1592895600"; d="scan'208";a="152016389" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Aug 2020 00:36:54 -0700 IronPort-SDR: vF14BQ5OrvVk2Oj/V/C9erEbnflMSfD7hTSOUDdgjaAWiQT08OGaWWQW60aYXJPyGaY83IwbLJ dmzNIn97ZX8w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,311,1592895600"; d="scan'208";a="496112748" Received: from unknown (HELO fmsmsx606.amr.corp.intel.com) ([10.18.84.216]) by fmsmga005.fm.intel.com with ESMTP; 14 Aug 2020 00:36:54 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 14 Aug 2020 00:36:53 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 14 Aug 2020 00:36:53 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 14 Aug 2020 00:36:53 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.53) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 14 Aug 2020 00:36:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oUy7cQlTox/ppdZtbY3KFH21m73rq3TrpvjDNO20Bxq+IBWgyoAxb5opCs20GCVL4F2BkOkuQcbtEeeUsc7EQyXCXxyZDOGI+I1YM/LoA3iX9f+HHOtdy1qF27tZVFO22kz+dXokbgKlw6Jw3wk0P5fXP977a5JyEee86SoRCzqQdcHRlg8yYcuyaKgyldLIiXWTf7Yre1Qp9mMrx1O6M+VmXxBLPuRsOG5D7Og52zFA4dpuG5yWgt2zZDXo2g94X9+KKAzMaRho7vGEtocEsSysfw69dvp1wYUIqZaSgZi+5CDX5zzNuyTvGqNLAlbWK+sqgkr9vdonWQITvkTtLw== 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=D6Ta9gnQd37jR7ZXbM6L0ol8/d0uXH3fJv8/682rbVw=; b=ixaj0AUZDYAxqo1cMOMBrkWOVXREQ5s23/Myq+a3uDMasAc7nvQ/E8/eZD8ewGtfl9jO7zqtzfUUS61HXOJ0fxzMCFpGfrq2PlyEHyCxcJ2eZHGriLu8BUM2+8Tfo4+0svduj+xEpA0iP1fIMZGN4vcDYZTwfBcBU5/+qpz15f2DkxJk2U2cNU4dno7tgE2uTme9gXPudDQldK2LswzECBLZoBRNJ26360muT0MP8fLoMo4SwspKmbhHielJ6Pdv7YUSnY3O75KbDucBJ+6aSc0UovYVHkyI4+I8pGZbl9Nl5fOccpn0iamwNy8twBYYqEvdYs+ROsjb0nDEo4IGnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D6Ta9gnQd37jR7ZXbM6L0ol8/d0uXH3fJv8/682rbVw=; b=Y9mEZZ7Znc1xTeUrfiIt07h00JGFW4G+JWvrelYW+x30Ed50VnA9FJ2HPdyLQJZKly/Oa1+6v3uYxC6vlvOKGAoqAtayLX0sPUHYmlJJvWXXvGW5+6T8HYXkZXzIFsGRCvwBoYp+A3Z9J3HIohqJQ0yiyGqGo2vJ+YCDcddCtIU= Received: from DM5PR11MB1435.namprd11.prod.outlook.com (2603:10b6:4:7::18) by DM6PR11MB3066.namprd11.prod.outlook.com (2603:10b6:5:64::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3283.20; Fri, 14 Aug 2020 07:36:51 +0000 Received: from DM5PR11MB1435.namprd11.prod.outlook.com ([fe80::9002:97a2:d8c0:8364]) by DM5PR11MB1435.namprd11.prod.outlook.com ([fe80::9002:97a2:d8c0:8364%10]) with mapi id 15.20.3261.026; Fri, 14 Aug 2020 07:36:51 +0000 From: "Liu, Yi L" To: Auger Eric , "alex.williamson@redhat.com" , "baolu.lu@linux.intel.com" , "joro@8bytes.org" CC: "Tian, Kevin" , "jacob.jun.pan@linux.intel.com" , "Raj, Ashok" , "Tian, Jun J" , "Sun, Yi Y" , "jean-philippe@linaro.org" , "peterx@redhat.com" , "Wu, Hao" , "stefanha@gmail.com" , "iommu@lists.linux-foundation.org" , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH v6 04/15] vfio/type1: Report iommu nesting info to userspace Thread-Topic: [PATCH v6 04/15] vfio/type1: Report iommu nesting info to userspace Thread-Index: AQHWZKdFlbcAHFInuEiodUvI9P7T1qk2H4+AgAEsvFA= Date: Fri, 14 Aug 2020 07:36:51 +0000 Message-ID: References: <1595917664-33276-1-git-send-email-yi.l.liu@intel.com> <1595917664-33276-5-git-send-email-yi.l.liu@intel.com> <2243bef1-52b7-9142-54be-8763046aa9f8@redhat.com> In-Reply-To: <2243bef1-52b7-9142-54be-8763046aa9f8@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [117.169.228.168] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 472b16f6-52c2-4755-a1ae-08d84024cf94 x-ms-traffictypediagnostic: DM6PR11MB3066: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QY5VxMSI/W60d02/Pz3CLJ/4tldlrU4NK9EeSO42GsUWcaqsqB94pwUZUS4M6JgfYywmxQHGhidj0jegbeYl6ZdKr10O5vv8/sLfXvKpIYZgk2HzkroSHxTdx+DgtnhlZI1Kgt/Z2fV2M6D6iha/5Zmto29V/OOeB1erfKD1L+TMXDTLTYiuRSJ0ApvW3e237sqhAavuSgxRilLLRzgFEmFHhHNKqE7bqfHVBar/8btvXznkJNxbfkc/mANjiwLGqSEo5Uhdb6UdKgezyR74x2NYKJa8dMarAhU9DAtud7mX8JR71iw4rgU6NLZjhWphrZm03vxC3+JksKBfnqU30zfqapiwFpqeOZh9U7Br5JqPOz7HZZLpUcvKrDzAG4XlYvKH75eto7gPx3d1YDbw1Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR11MB1435.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(136003)(376002)(366004)(346002)(396003)(966005)(7416002)(66946007)(54906003)(478600001)(33656002)(76116006)(186003)(64756008)(66556008)(66476007)(86362001)(52536014)(26005)(5660300002)(66446008)(30864003)(110136005)(83380400001)(71200400001)(53546011)(6506007)(55016002)(9686003)(8676002)(7696005)(2906002)(4326008)(8936002)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: RSyKb/EvU3d40li/tqN9XbsAstWdQxBvW4Ek9bADGhhMF4iYBqkX2FKBCkkYT/i5tSR59TEDooI4CstKg4qhehIirOY9qgZKizlikDnriXOs1cfsZvYGNwpdfPuGlkoZ+/1jWHSd+UYgXo5nEWBR5ycpy/ufzIGGqWnaD827rd2sn5USif14k7um9Yzzh8MrDD9m4N4+WCIyx5SwtVxLkIMOFQB4cucxLcjIK6IgFjf9tsN2teuLKzLYoFeIUgrg3Nx+xUL2vmkQLqCXEQFyAb7/ImRH1FS7q9etHyvFddm7BvNmq93uq80RbhjYkkvnRUEV6UzOLBURPOBPZuuNRRGwvsaUvug30mBVgKYvP12FzZJxO+3fG1aQ0peLugiE69hLtO2GFJlnYRq7hgBz9op1y+FOL5WvNetfGAH4x/rEfyvzPuP7clE36yeNnLIyEhMVwkr82245nwTR2uUd6+w2Uocw7cFYRarloB8XOW1ZQkBP/pek4+9pA62tdqNNtKRP0OAxqPmVv0dkxBqXQazjqi8+VoUVOnkkNaHUZDXM2iFv9Hmt4bm0LwmrvbOdkdfynTwrNWzFZtW4NQ4IOLnh/5OfcycKj38nuGkEbpkJifqbUOLqdXwBlN++HVaNHmiGkzT6y5VAl9dmOpc43Q== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR11MB1435.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 472b16f6-52c2-4755-a1ae-08d84024cf94 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Aug 2020 07:36:51.6670 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: naHQXq3JH9enLxU4Qd/OCqz8z+KcaGEjAJoly5QmyWh/klbTJJn6l6VBYArlK4UeuKvj8pjO60XILbBafpbLhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3066 X-OriginatorOrg: intel.com Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org SGkgRXJpYywNCg0KPiBGcm9tOiBBdWdlciBFcmljIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+DQo+ IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMTMsIDIwMjAgOToyMCBQTQ0KPg0KPiBIaSBZaSwNCj4g T24gNy8yOC8yMCA4OjI3IEFNLCBMaXUgWWkgTCB3cm90ZToNCj4gPiBUaGlzIHBhdGNoIGV4cG9y dHMgaW9tbXUgbmVzdGluZyBjYXBhYmlsaXR5IGluZm8gdG8gdXNlciBzcGFjZSB0aHJvdWdoDQo+ ID4gVkZJTy4gVXNlcnNwYWNlIGlzIGV4cGVjdGVkIHRvIGNoZWNrIHRoaXMgaW5mbyBmb3Igc3Vw cG9ydGVkIHVBUElzIChlLmcuDQo+ID4gUEFTSUQgYWxsb2MvZnJlZSwgYmluZCBwYWdlIHRhYmxl LCBhbmQgY2FjaGUgaW52YWxpZGF0aW9uKSBhbmQgdGhlDQo+ID4gdmVuZG9yIHNwZWNpZmljIGZv cm1hdCBpbmZvcm1hdGlvbiBmb3IgZmlyc3QgbGV2ZWwvc3RhZ2UgcGFnZSB0YWJsZQ0KPiA+IHRo YXQgd2lsbCBiZSBib3VuZCB0by4NCj4gPg0KPiA+IFRoZSBuZXN0aW5nIGluZm8gaXMgYXZhaWxh YmxlIG9ubHkgYWZ0ZXIgY29udGFpbmVyIHNldCB0byBiZSBORVNURUQgdHlwZS4NCj4gPiBDdXJy ZW50IGltcGxlbWVudGF0aW9uIGltcG9zZXMgb25lIGxpbWl0YXRpb24gLSBvbmUgbmVzdGluZyBj b250YWluZXINCj4gPiBzaG91bGQgaW5jbHVkZSBhdCBtb3N0IG9uZSBpb21tdSBncm91cC4gVGhl IHBoaWxvc29waHkgb2YgdmZpbw0KPiA+IGNvbnRhaW5lciBpcyBoYXZpbmcgYWxsIGdyb3Vwcy9k ZXZpY2VzIHdpdGhpbiB0aGUgY29udGFpbmVyIHNoYXJlIHRoZQ0KPiA+IHNhbWUgSU9NTVUgY29u dGV4dC4gV2hlbiB2U1ZBIGlzIGVuYWJsZWQsIG9uZSBJT01NVSBjb250ZXh0IGNvdWxkDQo+ID4g aW5jbHVkZSBvbmUgMm5kLSBsZXZlbCBhZGRyZXNzIHNwYWNlIGFuZCBtdWx0aXBsZSAxc3QtbGV2 ZWwgYWRkcmVzcw0KPiA+IHNwYWNlcy4gV2hpbGUgdGhlIDJuZC1sZXZlbCBhZGRyZXNzIHNwYWNl IGlzIHJlYXNvbmFibHkgc2hhcmFibGUgYnkNCj4gPiBtdWx0aXBsZSBncm91cHMsIGJsaW5kbHkg c2hhcmluZyAxc3QtbGV2ZWwgYWRkcmVzcyBzcGFjZXMgYWNyb3NzIGFsbA0KPiA+IGdyb3VwcyB3 aXRoaW4gdGhlIGNvbnRhaW5lciBtaWdodCBpbnN0ZWFkIGJyZWFrIHRoZSBndWVzdCBleHBlY3Rh dGlvbi4NCj4gPiBJbiB0aGUgZnV0dXJlIHN1Yi9zdXBlciBjb250YWluZXIgY29uY2VwdCBtaWdo dCBiZSBpbnRyb2R1Y2VkIHRvIGFsbG93DQo+ID4gcGFydGlhbCBhZGRyZXNzIHNwYWNlIHNoYXJp bmcgd2l0aGluIGFuIElPTU1VIGNvbnRleHQuIEJ1dCBmb3Igbm93DQo+ID4gbGV0J3MgZ28gd2l0 aCB0aGlzIHJlc3RyaWN0aW9uIGJ5IHJlcXVpcmluZyBzaW5nbGV0b24gY29udGFpbmVyIGZvcg0K PiA+IHVzaW5nIG5lc3RpbmcgaW9tbXUgZmVhdHVyZXMuIEJlbG93IGxpbmsgaGFzIHRoZSByZWxh dGVkIGRpc2N1c3Npb24gYWJvdXQgdGhpcw0KPiBkZWNpc2lvbi4NCj4gPg0KPiA+IGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2t2bS8yMDIwMDUxNTExNTkyNC4zN2U2OTk2ZEB3NTIwLmhvbWUvDQo+ ID4NCj4gPiBUaGlzIHBhdGNoIGFsc28gY2hhbmdlcyB0aGUgTkVTVElORyB0eXBlIGNvbnRhaW5l ciBiZWhhdmlvdXIuDQo+ID4gU29tZXRoaW5nIHRoYXQgd291bGQgaGF2ZSBzdWNjZWVkZWQgYmVm b3JlIHdpbGwgbm93IGZhaWw6IEJlZm9yZSB0aGlzDQo+ID4gc2VyaWVzLCBpZiB1c2VyIGFza2Vk IGZvciBhIFZGSU9fSU9NTVVfVFlQRTFfTkVTVElORywgaXQgd291bGQgaGF2ZQ0KPiA+IHN1Y2Nl ZWRlZCBldmVuIGlmIHRoZSBTTU1VIGRpZG4ndCBzdXBwb3J0IHN0YWdlLTIsIGFzIHRoZSBkcml2 ZXIgd291bGQNCj4gPiBoYXZlIHNpbGVudGx5IGZhbGxlbiBiYWNrIG9uIHN0YWdlLTEgbWFwcGlu Z3MgKHdoaWNoIHdvcmsgZXhhY3RseSB0aGUNCj4gPiBzYW1lIGFzIHN0YWdlLTIgb25seSBzaW5j ZSB0aGVyZSB3YXMgbm8gbmVzdGluZyBzdXBwb3J0ZWQpLiBBZnRlciB0aGUNCj4gPiBzZXJpZXMs IHdlIGRvIGNoZWNrIGZvciBET01BSU5fQVRUUl9ORVNUSU5HIHNvIGlmIHVzZXIgYXNrcyBmb3IN Cj4gPiBWRklPX0lPTU1VX1RZUEUxX05FU1RJTkcgYW5kIHRoZSBTTU1VIGRvZXNuJ3Qgc3VwcG9y dCBzdGFnZS0yLCB0aGUNCj4gPiBpb2N0bCBmYWlscy4gQnV0IGl0IHNob3VsZCBiZSBhIGdvb2Qg Zml4IGFuZCBjb21wbGV0ZWx5IGhhcm1sZXNzLiBEZXRhaWwgY2FuIGJlIGZvdW5kDQo+IGluIGJl bG93IGxpbmsgYXMgd2VsbC4NCj4gPg0KPiA+IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2t2bS8y MDIwMDcxNzA5MDkwMC5HQzQ4NTBAbXlyaWNhLw0KPiA+DQo+ID4gQ2M6IEtldmluIFRpYW4gPGtl dmluLnRpYW5AaW50ZWwuY29tPg0KPiA+IENDOiBKYWNvYiBQYW4gPGphY29iLmp1bi5wYW5AbGlu dXguaW50ZWwuY29tPg0KPiA+IENjOiBBbGV4IFdpbGxpYW1zb24gPGFsZXgud2lsbGlhbXNvbkBy ZWRoYXQuY29tPg0KPiA+IENjOiBFcmljIEF1Z2VyIDxlcmljLmF1Z2VyQHJlZGhhdC5jb20+DQo+ ID4gQ2M6IEplYW4tUGhpbGlwcGUgQnJ1Y2tlciA8amVhbi1waGlsaXBwZUBsaW5hcm8ub3JnPg0K PiA+IENjOiBKb2VyZyBSb2VkZWwgPGpvcm9AOGJ5dGVzLm9yZz4NCj4gPiBDYzogTHUgQmFvbHUg PGJhb2x1Lmx1QGxpbnV4LmludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBMaXUgWWkgTCA8 eWkubC5saXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+IHY1IC0+IHY2Og0KPiA+ICopIGFkZHJl c3MgY29tbWVudHMgYWdhaW5zdCB2NSBmcm9tIEVyaWMgQXVnZXIuDQo+ID4gKikgZG9uJ3QgcmVw b3J0IG5lc3RpbmcgY2FwIHRvIHVzZXJzcGFjZSBpZiB0aGUgbmVzdGluZ19pbmZvLT5mb3JtYXQg aXMNCj4gPiAgICBpbnZhbGlkLg0KPiA+DQo+ID4gdjQgLT4gdjU6DQo+ID4gKikgYWRkcmVzcyBj b21tZW50cyBmcm9tIEVyaWMgQXVnZXIuDQo+ID4gKikgcmV0dXJuIHN0cnVjdCBpb21tdV9uZXN0 aW5nX2luZm8gZm9yDQo+IFZGSU9fSU9NTVVfVFlQRTFfSU5GT19DQVBfTkVTVElORyBhcw0KPiA+ ICAgIGNhcCBpcyBtdWNoICJjaGVhcCIsIGlmIG5lZWRzIGV4dGVuc2lvbiBpbiBmdXR1cmUsIGp1 c3QgZGVmaW5lIGFub3RoZXIgY2FwLg0KPiA+ICAgIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2t2 bS8yMDIwMDcwODEzMjk0Ny41YjdlZTk1NEB4MS5ob21lLw0KPiA+DQo+ID4gdjMgLT4gdjQ6DQo+ ID4gKikgYWRkcmVzcyBjb21tZW50cyBhZ2FpbnN0IHYzLg0KPiA+DQo+ID4gdjEgLT4gdjI6DQo+ ID4gKikgYWRkZWQgaW4gdjINCj4gPiAtLS0NCj4gPiAgZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVf dHlwZTEuYyB8IDEwNg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t DQo+ID4gIGluY2x1ZGUvdWFwaS9saW51eC92ZmlvLmggICAgICAgfCAgMTkgKysrKysrKw0KPiA+ ICAyIGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jDQo+ID4g Yi9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jIGluZGV4IDNiZDcwZmYuLjE4ZmYwYzMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYw0KPiA+ICsr KyBiL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11X3R5cGUxLmMNCj4gPiBAQCAtNjIsMTggKzYyLDIw IEBAIE1PRFVMRV9QQVJNX0RFU0MoZG1hX2VudHJ5X2xpbWl0LA0KPiA+ICAJCSAiTWF4aW11bSBu dW1iZXIgb2YgdXNlciBETUEgbWFwcGluZ3MgcGVyIGNvbnRhaW5lciAoNjU1MzUpLiIpOw0KPiA+ DQo+ID4gIHN0cnVjdCB2ZmlvX2lvbW11IHsNCj4gPiAtCXN0cnVjdCBsaXN0X2hlYWQJZG9tYWlu X2xpc3Q7DQo+ID4gLQlzdHJ1Y3QgbGlzdF9oZWFkCWlvdmFfbGlzdDsNCj4gPiAtCXN0cnVjdCB2 ZmlvX2RvbWFpbgkqZXh0ZXJuYWxfZG9tYWluOyAvKiBkb21haW4gZm9yIGV4dGVybmFsIHVzZXIg Ki8NCj4gPiAtCXN0cnVjdCBtdXRleAkJbG9jazsNCj4gPiAtCXN0cnVjdCByYl9yb290CQlkbWFf bGlzdDsNCj4gPiAtCXN0cnVjdCBibG9ja2luZ19ub3RpZmllcl9oZWFkIG5vdGlmaWVyOw0KPiA+ IC0JdW5zaWduZWQgaW50CQlkbWFfYXZhaWw7DQo+ID4gLQl1aW50NjRfdAkJcGdzaXplX2JpdG1h cDsNCj4gPiAtCWJvb2wJCQl2MjsNCj4gPiAtCWJvb2wJCQluZXN0aW5nOw0KPiA+IC0JYm9vbAkJ CWRpcnR5X3BhZ2VfdHJhY2tpbmc7DQo+ID4gLQlib29sCQkJcGlubmVkX3BhZ2VfZGlydHlfc2Nv cGU7DQo+ID4gKwlzdHJ1Y3QgbGlzdF9oZWFkCQlkb21haW5fbGlzdDsNCj4gPiArCXN0cnVjdCBs aXN0X2hlYWQJCWlvdmFfbGlzdDsNCj4gPiArCS8qIGRvbWFpbiBmb3IgZXh0ZXJuYWwgdXNlciAq Lw0KPiA+ICsJc3RydWN0IHZmaW9fZG9tYWluCQkqZXh0ZXJuYWxfZG9tYWluOw0KPiA+ICsJc3Ry dWN0IG11dGV4CQkJbG9jazsNCj4gPiArCXN0cnVjdCByYl9yb290CQkJZG1hX2xpc3Q7DQo+ID4g KwlzdHJ1Y3QgYmxvY2tpbmdfbm90aWZpZXJfaGVhZAlub3RpZmllcjsNCj4gPiArCXVuc2lnbmVk IGludAkJCWRtYV9hdmFpbDsNCj4gPiArCXVpbnQ2NF90CQkJcGdzaXplX2JpdG1hcDsNCj4gPiAr CWJvb2wJCQkJdjI7DQo+ID4gKwlib29sCQkJCW5lc3Rpbmc7DQo+ID4gKwlib29sCQkJCWRpcnR5 X3BhZ2VfdHJhY2tpbmc7DQo+ID4gKwlib29sCQkJCXBpbm5lZF9wYWdlX2RpcnR5X3Njb3BlOw0K PiA+ICsJc3RydWN0IGlvbW11X25lc3RpbmdfaW5mbwkqbmVzdGluZ19pbmZvOw0KPiA+ICB9Ow0K PiA+DQo+ID4gIHN0cnVjdCB2ZmlvX2RvbWFpbiB7DQo+ID4gQEAgLTEzMCw2ICsxMzIsOSBAQCBz dHJ1Y3QgdmZpb19yZWdpb25zIHsNCj4gPiAgI2RlZmluZSBJU19JT01NVV9DQVBfRE9NQUlOX0lO X0NPTlRBSU5FUihpb21tdSkJXA0KPiA+ICAJCQkJCSghbGlzdF9lbXB0eSgmaW9tbXUtPmRvbWFp bl9saXN0KSkNCj4gPg0KPiA+ICsjZGVmaW5lIENPTlRBSU5FUl9IQVNfRE9NQUlOKGlvbW11KQko KChpb21tdSktPmV4dGVybmFsX2RvbWFpbikgfHwgXA0KPiA+ICsJCQkJCSAoIWxpc3RfZW1wdHko Jihpb21tdSktPmRvbWFpbl9saXN0KSkpDQo+ID4gKw0KPiA+ICAjZGVmaW5lIERJUlRZX0JJVE1B UF9CWVRFUyhuKQkoQUxJR04obiwgQklUU19QRVJfVFlQRSh1NjQpKSAvDQo+IEJJVFNfUEVSX0JZ VEUpDQo+ID4NCj4gPiAgLyoNCj4gPiBAQCAtMTkyOSw2ICsxOTM0LDEzIEBAIHN0YXRpYyB2b2lk IHZmaW9faW9tbXVfaW92YV9pbnNlcnRfY29weShzdHJ1Y3QNCj4gPiB2ZmlvX2lvbW11ICppb21t dSwNCj4gPg0KPiA+ICAJbGlzdF9zcGxpY2VfdGFpbChpb3ZhX2NvcHksIGlvdmEpOw0KPiA+ICB9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCB2ZmlvX2lvbW11X3JlbGVhc2VfbmVzdGluZ19pbmZv KHN0cnVjdCB2ZmlvX2lvbW11ICppb21tdSkNCj4gPiArew0KPiA+ICsJa2ZyZWUoaW9tbXUtPm5l c3RpbmdfaW5mbyk7DQo+ID4gKwlpb21tdS0+bmVzdGluZ19pbmZvID0gTlVMTDsNCj4gPiArfQ0K PiA+ICsNCj4gPiAgc3RhdGljIGludCB2ZmlvX2lvbW11X3R5cGUxX2F0dGFjaF9ncm91cCh2b2lk ICppb21tdV9kYXRhLA0KPiA+ICAJCQkJCSBzdHJ1Y3QgaW9tbXVfZ3JvdXAgKmlvbW11X2dyb3Vw KQ0KPiB7IEBAIC0xOTU5LDYgKzE5NzEsMTIgQEANCj4gPiBzdGF0aWMgaW50IHZmaW9faW9tbXVf dHlwZTFfYXR0YWNoX2dyb3VwKHZvaWQgKmlvbW11X2RhdGEsDQo+ID4gIAkJfQ0KPiA+ICAJfQ0K PiA+DQo+ID4gKwkvKiBOZXN0aW5nIHR5cGUgY29udGFpbmVyIGNhbiBpbmNsdWRlIG9ubHkgb25l IGdyb3VwICovDQo+ID4gKwlpZiAoaW9tbXUtPm5lc3RpbmcgJiYgQ09OVEFJTkVSX0hBU19ET01B SU4oaW9tbXUpKSB7DQo+ID4gKwkJbXV0ZXhfdW5sb2NrKCZpb21tdS0+bG9jayk7DQo+ID4gKwkJ cmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJZ3JvdXAgPSBremFsbG9jKHNp emVvZigqZ3JvdXApLCBHRlBfS0VSTkVMKTsNCj4gPiAgCWRvbWFpbiA9IGt6YWxsb2Moc2l6ZW9m KCpkb21haW4pLCBHRlBfS0VSTkVMKTsNCj4gPiAgCWlmICghZ3JvdXAgfHwgIWRvbWFpbikgew0K PiA+IEBAIC0yMDI5LDYgKzIwNDcsMzIgQEAgc3RhdGljIGludCB2ZmlvX2lvbW11X3R5cGUxX2F0 dGFjaF9ncm91cCh2b2lkDQo+ICppb21tdV9kYXRhLA0KPiA+ICAJaWYgKHJldCkNCj4gPiAgCQln b3RvIG91dF9kb21haW47DQo+ID4NCj4gPiArCS8qIE5lc3RpbmcgY2FwIGluZm8gaXMgYXZhaWxh YmxlIG9ubHkgYWZ0ZXIgYXR0YWNoaW5nICovDQo+ID4gKwlpZiAoaW9tbXUtPm5lc3RpbmcpIHsN Cj4gPiArCQlzdHJ1Y3QgaW9tbXVfbmVzdGluZ19pbmZvIHRtcCA9IHsgLmFyZ3N6ID0gMCwgfTsN Cj4gPiArDQo+ID4gKwkJLyogRmlyc3QgZ2V0IHRoZSBzaXplIG9mIHZlbmRvciBzcGVjaWZpYyBu ZXN0aW5nIGluZm8gKi8NCj4gPiArCQlyZXQgPSBpb21tdV9kb21haW5fZ2V0X2F0dHIoZG9tYWlu LT5kb21haW4sDQo+ID4gKwkJCQkJICAgIERPTUFJTl9BVFRSX05FU1RJTkcsDQo+ID4gKwkJCQkJ ICAgICZ0bXApOw0KPiA+ICsJCWlmIChyZXQpDQo+ID4gKwkJCWdvdG8gb3V0X2RldGFjaDsNCj4g PiArDQo+ID4gKwkJaW9tbXUtPm5lc3RpbmdfaW5mbyA9IGt6YWxsb2ModG1wLmFyZ3N6LCBHRlBf S0VSTkVMKTsNCj4gPiArCQlpZiAoIWlvbW11LT5uZXN0aW5nX2luZm8pIHsNCj4gPiArCQkJcmV0 ID0gLUVOT01FTTsNCj4gPiArCQkJZ290byBvdXRfZGV0YWNoOw0KPiA+ICsJCX0NCj4gPiArDQo+ ID4gKwkJLyogTm93IGdldCB0aGUgbmVzdGluZyBpbmZvICovDQo+ID4gKwkJaW9tbXUtPm5lc3Rp bmdfaW5mby0+YXJnc3ogPSB0bXAuYXJnc3o7DQo+ID4gKwkJcmV0ID0gaW9tbXVfZG9tYWluX2dl dF9hdHRyKGRvbWFpbi0+ZG9tYWluLA0KPiA+ICsJCQkJCSAgICBET01BSU5fQVRUUl9ORVNUSU5H LA0KPiA+ICsJCQkJCSAgICBpb21tdS0+bmVzdGluZ19pbmZvKTsNCj4gPiArCQlpZiAocmV0KQ0K PiA+ICsJCQlnb3RvIG91dF9kZXRhY2g7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICAJLyogR2V0IGFw ZXJ0dXJlIGluZm8gKi8NCj4gPiAgCWlvbW11X2RvbWFpbl9nZXRfYXR0cihkb21haW4tPmRvbWFp biwgRE9NQUlOX0FUVFJfR0VPTUVUUlksDQo+ICZnZW8pOw0KPiA+DQo+ID4gQEAgLTIxMzgsNiAr MjE4Miw3IEBAIHN0YXRpYyBpbnQgdmZpb19pb21tdV90eXBlMV9hdHRhY2hfZ3JvdXAodm9pZA0K PiAqaW9tbXVfZGF0YSwNCj4gPiAgCXJldHVybiAwOw0KPiA+DQo+ID4gIG91dF9kZXRhY2g6DQo+ ID4gKwl2ZmlvX2lvbW11X3JlbGVhc2VfbmVzdGluZ19pbmZvKGlvbW11KTsNCj4gPiAgCXZmaW9f aW9tbXVfZGV0YWNoX2dyb3VwKGRvbWFpbiwgZ3JvdXApOw0KPiA+ICBvdXRfZG9tYWluOg0KPiA+ ICAJaW9tbXVfZG9tYWluX2ZyZWUoZG9tYWluLT5kb21haW4pOw0KPiA+IEBAIC0yMzM4LDYgKzIz ODMsOCBAQCBzdGF0aWMgdm9pZCB2ZmlvX2lvbW11X3R5cGUxX2RldGFjaF9ncm91cCh2b2lkDQo+ ICppb21tdV9kYXRhLA0KPiA+ICAJCQkJCXZmaW9faW9tbXVfdW5tYXBfdW5waW5fYWxsKGlvbW11 KTsNCj4gPiAgCQkJCWVsc2UNCj4gPg0KPiAJdmZpb19pb21tdV91bm1hcF91bnBpbl9yZWFjY291 bnQoaW9tbXUpOw0KPiA+ICsNCj4gPiArCQkJCXZmaW9faW9tbXVfcmVsZWFzZV9uZXN0aW5nX2lu Zm8oaW9tbXUpOw0KPiA+ICAJCQl9DQo+ID4gIAkJCWlvbW11X2RvbWFpbl9mcmVlKGRvbWFpbi0+ ZG9tYWluKTsNCj4gPiAgCQkJbGlzdF9kZWwoJmRvbWFpbi0+bmV4dCk7DQo+ID4gQEAgLTI1NDYs NiArMjU5MywzOSBAQCBzdGF0aWMgaW50IHZmaW9faW9tbXVfbWlncmF0aW9uX2J1aWxkX2NhcHMo c3RydWN0DQo+IHZmaW9faW9tbXUgKmlvbW11LA0KPiA+ICAJcmV0dXJuIHZmaW9faW5mb19hZGRf Y2FwYWJpbGl0eShjYXBzLCAmY2FwX21pZy5oZWFkZXIsDQo+ID4gc2l6ZW9mKGNhcF9taWcpKTsg IH0NCj4gPg0KPiA+ICtzdGF0aWMgaW50IHZmaW9faW9tbXVfYWRkX25lc3RpbmdfY2FwKHN0cnVj dCB2ZmlvX2lvbW11ICppb21tdSwNCj4gPiArCQkJCSAgICAgIHN0cnVjdCB2ZmlvX2luZm9fY2Fw ICpjYXBzKSB7DQo+ID4gKwlzdHJ1Y3QgdmZpb19pbmZvX2NhcF9oZWFkZXIgKmhlYWRlcjsNCj4g PiArCXN0cnVjdCB2ZmlvX2lvbW11X3R5cGUxX2luZm9fY2FwX25lc3RpbmcgKm5lc3RpbmdfY2Fw Ow0KPiA+ICsJc2l6ZV90IHNpemU7DQo+ID4gKw0KPiA+ICsJLyogd2hlbiBuZXN0aW5nX2luZm8g aXMgbnVsbCwgbm8gbmVlZCBnbyBmdXJ0aGVyICovDQo+IG5vIG5lZWQgdG8gZ28NCg0KbmljZSBj YXRjaC4NCg0KPiA+ICsJaWYgKCFpb21tdS0+bmVzdGluZ19pbmZvKQ0KPiA+ICsJCXJldHVybiAw Ow0KPiA+ICsNCj4gPiArCS8qIHdoZW4gQGZvcm1hdCBvZiBuZXN0aW5nX2luZm8gaXMgMCwgZmFp bCB0aGUgY2FsbCAqLw0KPiA+ICsJaWYgKGlvbW11LT5uZXN0aW5nX2luZm8tPmZvcm1hdCA9PSAw KQ0KPiA+ICsJCXJldHVybiAtRU5PRU5UOw0KPiA+ICsNCj4gPiArCXNpemUgPSBvZmZzZXRvZihz dHJ1Y3QgdmZpb19pb21tdV90eXBlMV9pbmZvX2NhcF9uZXN0aW5nLCBpbmZvKSArDQo+ID4gKwkg ICAgICAgaW9tbXUtPm5lc3RpbmdfaW5mby0+YXJnc3o7DQo+ID4gKw0KPiA+ICsJaGVhZGVyID0g dmZpb19pbmZvX2NhcF9hZGQoY2Fwcywgc2l6ZSwNCj4gPiArCQkJCSAgIFZGSU9fSU9NTVVfVFlQ RTFfSU5GT19DQVBfTkVTVElORywgMSk7DQo+ID4gKwlpZiAoSVNfRVJSKGhlYWRlcikpDQo+ID4g KwkJcmV0dXJuIFBUUl9FUlIoaGVhZGVyKTsNCj4gPiArDQo+ID4gKwluZXN0aW5nX2NhcCA9IGNv bnRhaW5lcl9vZihoZWFkZXIsDQo+ID4gKwkJCQkgICBzdHJ1Y3QgdmZpb19pb21tdV90eXBlMV9p bmZvX2NhcF9uZXN0aW5nLA0KPiA+ICsJCQkJICAgaGVhZGVyKTsNCj4gPiArDQo+ID4gKwltZW1j cHkoJm5lc3RpbmdfY2FwLT5pbmZvLCBpb21tdS0+bmVzdGluZ19pbmZvLA0KPiA+ICsJICAgICAg IGlvbW11LT5uZXN0aW5nX2luZm8tPmFyZ3N6KTsNCj4gY2FuJ3QgeW91IHVzZSB2ZmlvX2luZm9f YWRkX2NhcGFiaWxpdHkoKSBkaXJlY3RseT8NCg0KeWVzLCB0aGUgYmVsb3cgbGluZXMgd2lsbCBi ZSBjb3ZlcmVkIGJ5IHZmaW9faW5mb19hZGRfY2FwYWJpbGl0eSgpLg0KDQorCWhlYWRlciA9IHZm aW9faW5mb19jYXBfYWRkKGNhcHMsIHNpemUsDQorCQkJCSAgIFZGSU9fSU9NTVVfVFlQRTFfSU5G T19DQVBfTkVTVElORywgMSk7DQorCWlmIChJU19FUlIoaGVhZGVyKSkNCisJCXJldHVybiBQVFJf RVJSKGhlYWRlcik7DQorDQorCW5lc3RpbmdfY2FwID0gY29udGFpbmVyX29mKGhlYWRlciwNCisJ CQkJICAgc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mb19jYXBfbmVzdGluZywNCisJCQkJICAg aGVhZGVyKTsNCg0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBz dGF0aWMgaW50IHZmaW9faW9tbXVfdHlwZTFfZ2V0X2luZm8oc3RydWN0IHZmaW9faW9tbXUgKmlv bW11LA0KPiA+ICAJCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZykNCj4gPiAgew0KPiA+IEBAIC0y NTgxLDYgKzI2NjEsOCBAQCBzdGF0aWMgaW50IHZmaW9faW9tbXVfdHlwZTFfZ2V0X2luZm8oc3Ry dWN0DQo+IHZmaW9faW9tbXUgKmlvbW11LA0KPiA+ICAJaWYgKCFyZXQpDQo+ID4gIAkJcmV0ID0g dmZpb19pb21tdV9pb3ZhX2J1aWxkX2NhcHMoaW9tbXUsICZjYXBzKTsNCj4gPg0KPiA+ICsJcmV0 ID0gdmZpb19pb21tdV9hZGRfbmVzdGluZ19jYXAoaW9tbXUsICZjYXBzKTsNCj4gPiArDQo+ID4g IAltdXRleF91bmxvY2soJmlvbW11LT5sb2NrKTsNCj4gPg0KPiA+ICAJaWYgKHJldCkNCj4gPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZmaW8uaCBiL2luY2x1ZGUvdWFwaS9saW51 eC92ZmlvLmgNCj4gPiBpbmRleCA5MjA0NzA1Li4wY2YzZDZkIDEwMDY0NA0KPiA+IC0tLSBhL2lu Y2x1ZGUvdWFwaS9saW51eC92ZmlvLmgNCj4gPiArKysgYi9pbmNsdWRlL3VhcGkvbGludXgvdmZp by5oDQo+ID4gQEAgLTE0LDYgKzE0LDcgQEANCj4gPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51 eC9pb21tdS5oPg0KPiA+DQo+ID4gICNkZWZpbmUgVkZJT19BUElfVkVSU0lPTgkwDQo+ID4NCj4g PiBAQCAtMTAzOSw2ICsxMDQwLDI0IEBAIHN0cnVjdCB2ZmlvX2lvbW11X3R5cGUxX2luZm9fY2Fw X21pZ3JhdGlvbiB7DQo+ID4gIAlfX3U2NAltYXhfZGlydHlfYml0bWFwX3NpemU7CQkvKiBpbiBi eXRlcyAqLw0KPiA+ICB9Ow0KPiA+DQo+ID4gKy8qDQo+ID4gKyAqIFRoZSBuZXN0aW5nIGNhcGFi aWxpdHkgYWxsb3dzIHRvIHJlcG9ydCB0aGUgcmVsYXRlZCBjYXBhYmlsaXR5DQo+ID4gKyAqIGFu ZCBpbmZvIGZvciBuZXN0aW5nIGlvbW11IHR5cGUuDQo+ID4gKyAqDQo+ID4gKyAqIFRoZSBzdHJ1 Y3R1cmVzIGJlbG93IGRlZmluZSB2ZXJzaW9uIDEgb2YgdGhpcyBjYXBhYmlsaXR5Lg0KPiA+ICsg Kg0KPiA+ICsgKiBVc2Vyc3BhY2Ugc2VsZWN0ZWQgVkZJT19UWVBFMV9ORVNUSU5HX0lPTU1VIHR5 cGUgc2hvdWxkIGNoZWNrDQo+ID4gKyAqIHRoaXMgY2FwYWJpbGl0eSB0byBnZXQgc3VwcG9ydGVk IGZlYXR1cmVzLg0KPiBuZXN0ZWQgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBjaGVja2VkIGJ5IHRo ZSB1c2Vyc3BhY2UgYWZ0ZXIgc2V0dGluZw0KPiBWRklPX1RZUEUxX05FU1RJTkdfSU9NTVU/DQoN Cnllcywgd2lsbCBtb2RpZnkgaXQuDQoNClJlZ2FyZHMsDQpZaSBMaXUNCg0KPiA+ICsgKg0KPiA+ ICsgKiBAaW5mbzogdGhlIG5lc3RpbmcgaW5mbyBwcm92aWRlZCBieSBJT01NVSBkcml2ZXIuDQo+ ID4gKyAqLw0KPiA+ICsjZGVmaW5lIFZGSU9fSU9NTVVfVFlQRTFfSU5GT19DQVBfTkVTVElORyAg Mw0KPiA+ICsNCj4gPiArc3RydWN0IHZmaW9faW9tbXVfdHlwZTFfaW5mb19jYXBfbmVzdGluZyB7 DQo+ID4gKwlzdHJ1Y3QJdmZpb19pbmZvX2NhcF9oZWFkZXIgaGVhZGVyOw0KPiA+ICsJc3RydWN0 IGlvbW11X25lc3RpbmdfaW5mbyBpbmZvOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2RlZmluZSBW RklPX0lPTU1VX0dFVF9JTkZPIF9JTyhWRklPX1RZUEUsIFZGSU9fQkFTRSArIDEyKQ0KPiA+DQo+ ID4gIC8qKg0KPiA+DQo+IFRoYW5rcw0KPiANCj4gRXJpYw0KDQo=