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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 95393CE79AA for ; Tue, 19 Sep 2023 20:51:15 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F006610E0D7; Tue, 19 Sep 2023 20:51:14 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id DD92B10E0D7; Tue, 19 Sep 2023 20:51:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695156672; x=1726692672; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=cKeP9I6UoQAT6CTSS/SmMOzofCUIpg0MEiFUWFX+1eI=; b=D1pySOtqoKWHoqmk38+/qxXB9g2oFRUyNbNluZExA1katRvF/a52eZzr JLPYzd8b2WpbsSxKb2SQ49U61YY9Mm2L2R7zpEbirU+A4TvD/+YidtXAj lF6PKih243qV90TvFO1oA9T+SmZ1IZhQQBV/I6H4d8q1RuFwAcTdQuj2S ehDIWpQr3fjVgCin+UuDHkNseHfn623ErCsznJmK+wzPkPrs+mmL1ylGb kV2UMHwVZ+kxxLvp+lF+1s/VoDc9en/HzuF7e60WJDzG2sSiCeK88qc02 BWcCxUhVhv1KiNvey5NXelaf/Tl/Ij5yiNNN0jojShL8r3HlxxstcWCXn Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="360304161" X-IronPort-AV: E=Sophos;i="6.02,160,1688454000"; d="scan'208";a="360304161" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2023 13:51:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="696046048" X-IronPort-AV: E=Sophos;i="6.02,160,1688454000"; d="scan'208";a="696046048" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 19 Sep 2023 13:51:08 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 19 Sep 2023 13:51:07 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 19 Sep 2023 13:51:07 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.107) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Tue, 19 Sep 2023 13:51:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iXcC6S/d1hl2UIulhhMcqQa5j+OYtq+JZ/QhyzjEPVwOpQcy97ODUoERdlaYbSwC3qpDKd4ukgnlj6/cLQvesaNbal8gZMXR045Axe6ICY6mzTqgmdF+59QWJ3+br7ysNPAkXmhGtbWcDGAzvmPqHRLrbiv66rjQZZsfjeqDJsBcgjN4tCZlAn2pnBLutUDfYPQ2CAmARQvaqVll3OF0jdiV/++S4RENyebHaVmkALMawp5rJe/wdhX5yNFsxnUFkMgcV/NCYdik3NmY7gXiyVWItgj3cBT4/ww/Cd2AOGu8l8U5qu9PdocOvWzJdGbpU3Mi46ir7/1mGG3m4io8+g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cKeP9I6UoQAT6CTSS/SmMOzofCUIpg0MEiFUWFX+1eI=; b=m0H3rOyb9ddNXVnRJUA9hxQ4EqGKHlCeU/HJ9ZmDsambrcYAGIAyPBVKqYyeQG5/OvAo5wj2FbUkQNCcC+t9friJXgxAOi5stYcVokRNNbuR48msnU9PpcXmsFvWqbb3WriksxmEsmvyBwNB2Kf5b7F3k0ZvoeMrD0AIB7unkhOSivWvXHOKUo2zgZ3fU7AdmgJU8PH44rKZcEWSFQfAMwWPLieIxWH9EnEVwdxv8NTQR/TuaCIh9ZG8rcivRQ4IBc5wRR5vUvVcXAAHpJhkUbCg9jL+xcmMmal7tYX1OBBhNfFD3uCICkg6BoJKD7DKtjo1XWGlc9Ey5NTZL3SWmw== 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 Received: from BN0PR11MB5711.namprd11.prod.outlook.com (2603:10b6:408:167::22) by DM8PR11MB5654.namprd11.prod.outlook.com (2603:10b6:8:33::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.28; Tue, 19 Sep 2023 20:50:55 +0000 Received: from BN0PR11MB5711.namprd11.prod.outlook.com ([fe80::d84d:6b9e:ee03:6d98]) by BN0PR11MB5711.namprd11.prod.outlook.com ([fe80::d84d:6b9e:ee03:6d98%6]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 20:50:55 +0000 From: "Taylor, Clinton A" To: "Roper, Matthew D" , "De Marchi, Lucas" Thread-Topic: [Intel-xe] [PATCH v4 10/30] drm/i915/display: Consolidate saved port bits in intel_digital_port Thread-Index: AQHZ5/yoaQTmzXmVz0Kc1zOxujwvVLAcS9aAgATMTwCAABsJAIABch+A Date: Tue, 19 Sep 2023 20:50:54 +0000 Message-ID: <7118d2fade773a7ffbf2cd21dd7b9632c134d227.camel@intel.com> References: <20230915174651.1928176-1-lucas.demarchi@intel.com> <20230915174651.1928176-11-lucas.demarchi@intel.com> <20230915195041.GG2706891@mdroper-desk1.amr.corp.intel.com> <20230918224344.GF233750@mdroper-desk1.amr.corp.intel.com> In-Reply-To: <20230918224344.GF233750@mdroper-desk1.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN0PR11MB5711:EE_|DM8PR11MB5654:EE_ x-ms-office365-filtering-correlation-id: 84f84329-814e-4e12-77e9-08dbb9521e53 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rt0MjNoiaDVmTsFUxH63uGmsiki0CO8zX3HFYSMTrXCHQIzjtztN3dJhQ1vgTU3vjKE+A7DYHPNd0RnfpYeYFqko8xW+AkgtteeBk84Sw87yHoG9pGDy5a6tlbf6R8hZv1MIsnWniOLqE/LR9JfsrkpoCfTON5SH5WqIwI12Dl2wxNpcDO4L4eG2jRruh0/8B+pJYPokTiK12baMXmliyLtgcZnWiqnqsebQ2bLjXWM4P1Fl++EfO2XiLUV9hmARaepTf0ViJPJIysrfgmF1uD6UuzAKvOXcN8oA94y4MxMkvAesZ/JJsAalJo+hb01sVP5jTFNfIRYEkJU0CACp/QO8bTWmZQoD+mb4FAFjsHpCCXQygKmS8WcE993WhuPMiibeyaLTamUnfM0Z5wqrj/AjyQJLMCgqDWzli2puoVtf0ENS9uxPHKhlSVST8rILYpi836Hnte/12+or60u6zMKeBPIY6D+5VUj6AdBEXYVOCmyayBj1qjoFky9xMIgzQsr/jXJhQ3zH9j9dgmZzKgTr3I1SPw9wooxbTo9tCM8ltW6GZsgW6r+Bh+Zu4/ucbRnYKWYpAI0mvnRJdk25QCn+1n+A2ddjFsywzLz++Td/DKNnMPet4eVCVSyWHvJW x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN0PR11MB5711.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(366004)(346002)(376002)(39860400002)(136003)(451199024)(1800799009)(186009)(5660300002)(30864003)(2906002)(4326008)(8676002)(450100002)(8936002)(41300700001)(6636002)(316002)(54906003)(76116006)(66446008)(26005)(66476007)(66946007)(91956017)(110136005)(66556008)(64756008)(478600001)(6486002)(71200400001)(6512007)(6506007)(2616005)(83380400001)(36756003)(82960400001)(122000001)(38070700005)(86362001)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TU90enIzVU1nSm9mT1Qzb0tDMFJiYVJvcS95NnVPS214OGNWV0VNVU1kNVVa?= =?utf-8?B?WVpqY25hTnpISlo1RTlvYmxJZE1hQTZ2LzZ4TWVmZnh0ZytOUjFvMkFWZ1N1?= =?utf-8?B?bE4xeHN3bjY0L3BMNHprcXpxeStNT0RFZXFwZWs3UklPUUQrQmVzYzFLQzhs?= =?utf-8?B?NUNzZzA1VjNROUI5L1B3QzlZRms5TC9CZXVxSERGOWJWbTFkanA3SDJLRDBN?= =?utf-8?B?ZVBNUTE2SmhINy9zbWpqUEVSa1ZTQXhyREVKdUJmelpaaVNwUmZuTkk2L2hN?= =?utf-8?B?c3BPYlo5MTQ5akIvRFlORWNSRU03MjBEajBFSzdVWTdWMlhvR1BGREdEQmlr?= =?utf-8?B?MEpWT1lFY3BlS2FINzNhc2lTOVp2OTZWVGV2N1BWVWdQUXpGOTg3YVZ0dldB?= =?utf-8?B?OU84aERUdzQ1Vk9hY0x4QU44eVRJQ3MwYTVJU1RzbkhNNzl2Qk9TZW1NN0E2?= =?utf-8?B?V1Y4WWRtR1VSNHZjL0dGelBMUDJCRnJlVWpkNkVRdCsvVEZFSVpjMWZWVGxY?= =?utf-8?B?cHZYcXZVRUJ5NndhMkNQMkFUYUZrM0V5cE9KRXF1RGQ5SXdkZ1BkU0pKSTVs?= =?utf-8?B?dnlRd2phenNXYTRyUlN1SXlNNkdhRnpjWmpwL2tUdFFoMFBnTmN6YVdsOXhn?= =?utf-8?B?bkd5cjRYQWZ5THE4MWxaRzRtT0RIOGJwS0k5a0xZR2RWbGcybER4MUtZNkN0?= =?utf-8?B?Y3haOTJKRGY1WVVxOXJmMHRnQjBtWm0rK3h0WXN5OWY5ckJYN2JXbzl2Q2I1?= =?utf-8?B?WGZ2eWxoS1ZtSk9LZEFxNndlaDNBRVcvbFRVSnUzWlJhcnA2VHNRVEM0dnV6?= =?utf-8?B?S0t1L05idnpqT3JpL0l0Zkg3VU1CWTZRK0pTUXRnNkxFYVd3SXlVYWJuZDgv?= =?utf-8?B?dE5Nemw5ZmlUZjRLWUJLaGdnZ0plRmE0emdSMVNyTnNHN0N5WjhaN0hHYlNO?= =?utf-8?B?dHoyVXlDODBtOURQNUcwQ1V3N1VocUQrd2dteUVWTTF1NS9pVUg0WEQvS1hG?= =?utf-8?B?anNubTRaVlE2TUZPNTR4VkRzZGZuUmJEY3Q0bStqV2tRQ09PQTBXY1BTbEZs?= =?utf-8?B?a2M3dGdRWCtENllhSTUvbDNxMExDQm1PU3F4bXdRUXkzYktybDl0RHplMEZL?= =?utf-8?B?WUpieEhFbFFvNEE1OGd4czVwZ3BHbWlEL1hHV2JRZEhKT0tUWmxvOXdSb2Yr?= =?utf-8?B?SzVQZHpOVjU2czAreG1NbG9DQlhvMkdwQlVFTCtOZVJMZThlRFBtWSt1MEU1?= =?utf-8?B?Z3V3RTB4WUNjZ1N4YzRFdWZobXRnenJWK2dRSnloUStkM1o5MCtwRVovNEZE?= =?utf-8?B?UzJvSzZvZ1V4dDFIa3Rta2xadnNFbG9xaHp2Y2cva3lSdWRMYUlGdDlvOWsw?= =?utf-8?B?UUg5YXdEeWFMRGdOaXl5TTI0TDM5Q3NzN2lCRXhKRWhwTHpWNExsanFObXpH?= =?utf-8?B?MG5mT2dTUFNaNllqbnlFTUtma21Edm5jT3lKRHRITVdGWkJPaWc1Y1lJekVx?= =?utf-8?B?NzBWMFExZjdkNXBmdFdvdGhmQ09rdjQzcFAzN2E2S0NFM3J3VC9iRXlUdGNO?= =?utf-8?B?b0hDNzZYVkZ5K1N3N0FqSXZiVkJQSUMrY3RlQk5RK0Vhd1hVNFo3S1ZBNXhN?= =?utf-8?B?cVRjZFJXa3dwMHdYRkg0YlV2Ui9COXM5Y0FoT2JXRzF5OWd6V0RjNHRDUGR2?= =?utf-8?B?NGVkeFRPT0FCOUorMlVBaUdOb054ZHFHUHRpT0s3Y2tWTk1xcmhZL29HSXlz?= =?utf-8?B?bDNkSDFVcGxEdDFhNlpzemJrY2lNU21sRk5acFhxaVBGYU0wN0tnc3FFOVNo?= =?utf-8?B?b0g5bW9FalFBZjhRK1huc1dhMEJXSjhqM1lXM2tXSWdkcHhVd3FBUXJTZEtB?= =?utf-8?B?Rld2Ylg0SGZGclh2UWRONGtIQk9oY2dTNmNENWpscm9UR0tuVjVNck5Ud3Az?= =?utf-8?B?K0FuaGd2MzRnN0xhM1E1aXloeUxJb1Z4VXR1a0o3cVNvRlNEWDFqdWNxMUlv?= =?utf-8?B?U3FSNkIxZzZDUTAzMWZhOHkwNjZ5ZTdUa2hDOGhBeFVkTGtHbUpNZDgxM21M?= =?utf-8?B?RCtjb1VVUEFpVzBVWTE5eUhqbnBQMm1yU1dicTg2M3NFNzJzWC9hRlhOa0Fo?= =?utf-8?B?azgzWG03dngxYkpzNDQraHVRekpEK0tPa3Btd3IzUGlmWDhCVVcyS3Q0SnMw?= =?utf-8?B?Tmc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <2AA9F4A53F26AC488AF20FC05809B9BE@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR11MB5711.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 84f84329-814e-4e12-77e9-08dbb9521e53 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2023 20:50:54.9708 (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: uhpL0xNzsgFRr3RoGRqEdcjZ3x3oD4b3ZPxXqfMYUFgf+5sZnJa32WZVyW/XegPJZE1KNb6oxhosOc83utFv+TVoVr5X1LVAIe3bEX//MyY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR11MB5654 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [Intel-xe] [PATCH v4 10/30] drm/i915/display: Consolidate saved port bits in intel_digital_port X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "intel-xe@lists.freedesktop.org" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gTW9uLCAyMDIzLTA5LTE4IGF0IDE1OjQzIC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOg0KPiBP biBNb24sIFNlcCAxOCwgMjAyMyBhdCAwNDowNjo1OFBNIC0wNTAwLCBMdWNhcyBEZSBNYXJjaGkg d3JvdGU6DQo+ID4gT24gRnJpLCBTZXAgMTUsIDIwMjMgYXQgMTI6NTA6NDFQTSAtMDcwMCwgTWF0 dCBSb3BlciB3cm90ZToNCj4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDIzIGF0IDEwOjQ2OjMxQU0g LTA3MDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToNCj4gPiA+ID4gRnJvbTogQ2xpbnQgVGF5bG9y IDxjbGludG9uLmEudGF5bG9yQGludGVsLmNvbT4NCj4gPiA+ID4gDQo+ID4gPiA+IFdlIHVzZSBt dWx0aXBsZSB2YXJpYWJsZXMgZm9yIEhETUkgYW5kIERpc3BsYXlQb3J0IHRvIHN0b3JlIHRoZSB2 YWx1ZSBvZg0KPiA+ID4gPiBERElfQlVGX0NUTCByZWdpc3RlciAobm93IGNhbGxlZCBERElfQ1RM X0RFIGluIHRoZSBzcGVjKS4gQ29uc29saWRhdGUgaXQNCj4gPiA+ID4gdG8ganVzdCBvbmUgaW4g c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydC4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9y DQo+ID4gPiA+IGZ1dHVyZSBjaGFuZ2VzIGluIEQyRCBlbmFibGUvZGlzYWJsZSBzZXF1ZW5jZSBm b3IgeGUybHBkIHRoYXQgbmVlZCB0bw0KPiA+ID4gPiBzYXZlIHNvbWUgYWRkaXRpb25hbCBiaXRz Lg0KPiA+ID4gPiANCj4gPiA+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNh QGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IEd1c3Rhdm8gU291c2EgPGd1c3Rhdm8uc291c2FAaW50 ZWwuY29tPg0KPiA+ID4gPiBDYzogUmFkaGFrcmlzaG5hIFNyaXBhZGEgPHJhZGhha3Jpc2huYS5z cmlwYWRhQGludGVsLmNvbT4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogQ2xpbnQgVGF5bG9yIDxj bGludG9uLmEudGF5bG9yQGludGVsLmNvbT4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogTHVjYXMg RGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+DQo+ID4gPiA+IC0tLQ0KPiA+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyB8IDM2ICsrKysrKysr KysrLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcC5jICB8ICAyICstDQo+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlv bnMoKyksIDIwIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiANCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4gPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jDQo+ID4gPiA+IGluZGV4IDQ2NjhkZTQ1 ZDZmZS4uMjljOTM4NjY1OWZmIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jDQo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4gPiA+ID4gQEAgLTMyNSwyNiArMzI1LDI1IEBAIHN0 YXRpYyB2b2lkIGludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoc3RydWN0IGludGVsX2VuY29kZXIN Cj4gPiA+ID4gKmVuY29kZXIsDQo+ID4gPiA+ICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpDQo+ID4gPiA+ICB7DQo+ID4gPiA+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsNCj4gPiA+ ID4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIp Ow0KPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpOw0KPiA+ID4gPiAgCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRf dG9fcGh5KGk5MTUsIGVuY29kZXItPnBvcnQpOw0KPiA+ID4gPiANCj4gPiA+ID4gIAkvKiBERElf QlVGX0NUTF9FTkFCTEUgd2lsbCBiZSBzZXQgYnkgaW50ZWxfZGRpX3ByZXBhcmVfbGlua19yZXRy YWluKCkNCj4gPiA+ID4gbGF0ZXIgKi8NCj4gPiA+ID4gLQlpbnRlbF9kcC0+RFAgPSBkaWdfcG9y dC0+c2F2ZWRfcG9ydF9iaXRzIHwNCj4gPiA+ID4gKwlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRz IHw9DQo+ID4gPiANCj4gPiA+IEJlZm9yZSB0aGlzIHBhdGNoLCBzYXZlZF9wb3J0X2JpdHMgd2Fz IGEgY29weSBvZiBERElfQlVGX1BPUlRfUkVWRVJTQUwNCj4gPiA+IGFuZCBERElfQV80X0xBTkVT LCBlaXRoZXIgYmFzZWQgb24gYSB2YWx1ZSB3ZSByZWFkb3V0IGZyb20gaGFyZHdhcmUgYXQNCj4g PiA+IHN0YXJ0dXAsIG9yIGJhc2VkIG9uIFZCVCBzZXR0aW5ncy4gIFNvIGl0IHdhcyBhIHZhbHVl IG9mIHNvbWUNCj4gPiA+IGZ1bmRhbWVudGFsIHNldHRpbmdzIHRoYXQgd2UgInNhdmVkIiBvbmNl IGF0IHN0YXJ0dXAgdGltZSBhbmQgY291bGQgdGhlbg0KPiA+ID4ganVzdCByZS11c2UgdGhlcmVh ZnRlci4NCj4gPiA+IA0KPiA+ID4gSWYgd2UncmUgZ29pbmcgdG8gc3RhcnQgc2F2aW5nIHBlci1t b2Rlc2V0IGluZm9ybWF0aW9uIChzdWNoIGFzIGxhbmUNCj4gPiA+IGNvdW50IGFuZCBsaW5rIHJh dGUpLCB0aGVuIHRoYXQncyBhIHByZXR0eSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gdGhlDQo+ID4g PiBwdXJwb3NlIG9mIHRoaXMgZmllbGQsIGFuZCAic2F2ZWRfcG9ydF9iaXRzIiBkb2Vzbid0IHJl YWxseSBmZWVsIGxpa2UgYW4NCj4gPiA+IGFwcHJvcHJpYXRlIG5hbWUgYW55bW9yZS4gIFdlIHNo b3VsZCBwcm9iYWJseSByZW5hbWUgaXQgYW5kIGFkZCBzb21lDQo+ID4gPiBkb2N1bWVudGF0aW9u IG9uIHRoZSBmaWVsZCBleHBsYWluaW5nIGV4YWN0bHkgd2hhdCBpdHMgcHVycG9zZSBpcyBhbmQN Cj4gPiA+IGhvdy93aGVuIGl0IGdldHMgdXBkYXRlZC4NCj4gPiANCj4gPiBJIHdpbGwgbGV0IENs aW50IGNoaW1lIGluIGFzIHRoZSBvcmlnaW5hbCBhdXRob3IgaGVyZSwgYnV0IGZyb20gd2hhdA0K PiA+IEkgY2FuIHNlZSB0aGlzIGlzIGJhc2ljYWxseSBhIHNhdmVkIHZhbHVlIG9mIERESV9CVUZf Q1RMKHBvcnQpLCB0byBiZQ0KPiA+IHdyaXR0ZW4gd2hlbiBhcHByb3ByaWF0ZS4gV2UgaGF2ZSBt b3JlIHRoYW4ganVzdA0KPiA+IERESV9CVUZfUE9SVF9SRVZFUlNBTCBhbmQgRERJX0FfNF9MQU5F Uy4NCj4gDQo+IEkgdGhpbmsgeW91IGdyZXBwZWQgdGhlIHdyb25nIHRyZWUuICBUaGUgb3V0cHV0 IHlvdSBwYXN0ZWQgaXMgd2hlcmUNCj4gc2F2ZWRfcG9ydF9iaXRzIGlzIGJlaW5nIHVzZWQgYWZ0 ZXIgdGhpcyBMTkwgc2VyaWVzIGdldHMgYXBwbGllZC4gIFRoZQ0KPiB1c2FnZSBvZiB0aGlzIGZp ZWxkIG9uIHRvZGF5J3MgZHJtLXRpcCBpcyBqdXN0Og0KPiANCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2N4MF9waHkuYzoyNzA2OiAgICAgIGJvb2wgbGFuZV9yZXZlcnNh bCA9IGRpZ19wb3J0LQ0KPiA+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FM Ow0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5o OjE4Mjc6ICAgICAgICB1MzIgc2F2ZWRfcG9ydF9iaXRzOw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdGMuYzozNjI6ICAgIGJvb2wgbGFuZV9yZXZlcnNhbCA9IGRpZ19w b3J0LQ0KPiA+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FMOw0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6MzMzOiAgIGludGVsX2RwLT5E UCA9IGRpZ19wb3J0LQ0KPiA+c2F2ZWRfcG9ydF9iaXRzIHwNCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jOjIyNTk6ICAgICAgICAgICAgICAgICAgZGlnX3BvcnQt DQo+ID5zYXZlZF9wb3J0X2JpdHMgJiBERElfQlVGX1BPUlRfUkVWRVJTQUw7DQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzoyMzg5OiAgaWYgKGRpZ19wb3J0LT5z YXZlZF9wb3J0X2JpdHMgJg0KPiBERElfQlVGX1BPUlRfUkVWRVJTQUwpDQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzozMjE0OiAgYnVmX2N0bCA9IGRpZ19wb3J0 LT5zYXZlZF9wb3J0X2JpdHMgfA0KPiBERElfQlVGX0NUTF9FTkFCTEU7DQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzozMjIxOiAgICAgICAgICBpZiAoZGlnX3Bv cnQtPnNhdmVkX3BvcnRfYml0cw0KPiAmIERESV9CVUZfUE9SVF9SRVZFUlNBTCkNCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jOjQ1MDU6ICBpZiAoZGlnX3BvcnQt PnNhdmVkX3BvcnRfYml0cyAmDQo+IERESV9BXzRfTEFORVMpDQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzo0NTQzOiAgICAgICAgICBkaWdfcG9ydC0+c2F2ZWRf cG9ydF9iaXRzIHw9DQo+IERESV9BXzRfTEFORVM7DQo+ICAgLi0tDQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzo0OTY1OiAgICAgICAgICBkaWdfcG9ydC0+c2F2 ZWRfcG9ydF9iaXRzID0NCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rk aS5jDQo+IC00OTY2LSAgICAgICAgICAgICAgICAgIGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERE SV9CVUZfQ1RMKHBvcnQpKQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpLmMtNDk2Ny0gICAgICAgICAgICAgICAgICAmDQo+IERESV9CVUZfUE9SVF9SRVZFUlNBTDsN Cj4gICAuLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jOjQ5 Njk6ICAgICAgICAgIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgPQ0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMNCj4gLTQ5NzAtICAgICAgICAgICAgICAgICAg aW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgRERJX0JVRl9DVEwocG9ydCkpDQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYy00OTcxLSAgICAgICAgICAgICAgICAgICYN Cj4gKERESV9CVUZfUE9SVF9SRVZFUlNBTCB8IERESV9BXzRfTEFORVMpOw0KPiAgIC4tLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6NDk3NDogICAgICAgICAg ZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PQ0KPiBERElfQlVGX1BPUlRfUkVWRVJTQUw7DQo+ IA0KPiBJLmUuLCB1c2luZyBpdCBhcyBhIGNhY2hlZCBjb3B5IG9mIERESV9CVUZfQ1RMIGlzIGEg bGFyZ2UgY2hhbmdlIGZyb20NCj4gdGhlIGV4aXN0aW5nIGNvZGU7IHByZXZpb3VzbHkgaXQgd2Fz IGFuIHVuY2hhbmdpbmcgc3Rhc2ggb2YganVzdCB0aG9zZQ0KPiB0d28gc3BlY2lmaWMgYml0cyBm cm9tIHN0YXJ0dXAtdGltZS4NCj4gDQo+IEknbSBub3Qgc2F5aW5nIHRoYXQgaXQncyB3cm9uZyB0 byBtYWtlIHRoYXQgY2hhbmdlLCBqdXN0IHRoYXQgd2UncmUNCj4gdXNpbmcgaXQgZm9yIGEgY29t cGxldGVseSBkaWZmZXJlbnQgcHVycG9zZSBmcm9tIHRvZGF5J3MgZHJtLXRpcCBzbyBJDQo+IHRo aW5rIHdlIG5lZWQgdG8gZG9jdW1lbnQgdGhhdCBjYXJlZnVsbHkgYW5kIG1ha2UgaXQgY2xlYXIg d2hhdCB0aGUNCj4gaW50ZW5kZWQgbmV3IHVzYWdlIGlzLg0KPiANCg0KRFJNLVRJUCB1c2VzIGlu dGVsX2RwLT5EUCBmb3IgY2FjaGluZyBERElfQlVGX0NUTCBmb3IgZGlzcGxheSBwb3J0IGVuY29k ZXJzIGFuZA0Kc2F2ZWRfcG9ydF9iaXRzIGZvciBjYWNoaW5nIERESV9CVUZfQ1RMIG9uIEhETUkg ZW5jb2RlcnMuIFRoaXMgY2hhbmdlIGNvbnNvbGlkYXRlcyBib3RoDQplbmNvZGVyIHR5cGVzIHRv IHVzZSBzYXZlZF9wb3J0X2JpdHMgb25seS4gIA0KDQpmcm9tIGRybS10aXA6IGludGVsX2RlX3dy aXRlKGRldl9wcml2LCBERElfQlVGX0NUTChwb3J0KSwgaW50ZWxfZHAtPkRQKTsNCg0KLUNsaW50 DQoNCj4gDQo+IE1hdHQNCj4gDQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9jeDBfcGh5LmM6ICAgYm9vbCBsYW5lX3JldmVyc2FsID0gZGlnX3BvcnQtDQo+ID4gPnNhdmVk X3BvcnRfYml0cyAmIERESV9CVUZfUE9SVF9SRVZFUlNBTDsNCj4gPiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jOiAgICAgICBkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRz IHw9DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAg ICAgICAgICAgICAgICAgIGRpZ19wb3J0LQ0KPiA+ID5zYXZlZF9wb3J0X2JpdHMgfD0gRERJX0JV Rl9QT1JUX0RBVEFfNDBCSVQ7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYzogICAgICAgICAgICAgICAgICAgICAgIGRpZ19wb3J0LQ0KPiA+ID5zYXZlZF9wb3J0 X2JpdHMgfD0gRERJX0JVRl9QT1JUX0RBVEFfMTBCSVQ7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgICAgICAgICBkaWdfcG9ydC0+c2F2ZWRfcG9y dF9iaXRzIHw9DQo+ID4gZGRpX2J1Zl9waHlfbGlua19yYXRlKGNydGNfc3RhdGUtPnBvcnRfY2xv Y2spOw0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAg ICAgICAgICAgICAgICAgICBkaWdfcG9ydC0NCj4gPiA+c2F2ZWRfcG9ydF9iaXRzIHw9IERESV9C VUZfQ1RMX1RDX1BIWV9PV05FUlNISVA7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGkuYzogICAgICAgZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyAmPQ0KPiA+IH5E RElfQlVGX0VNUF9NQVNLOw0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpLmM6ICAgICAgIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0NCj4gPiBzaWduYWxfbGV2 ZWxzOw0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAg IGludGVsX2RlX3dyaXRlKGRldl9wcml2LA0KPiA+IERESV9CVUZfQ1RMKHBvcnQpLCBkaWdfcG9y dC0+c2F2ZWRfcG9ydF9iaXRzKTsNCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaS5jOiAgICAgICAgICAgICAgICAgICAgICAgZGlnX3BvcnQtDQo+ID4gPnNhdmVkX3Bv cnRfYml0cyAmIERESV9CVUZfUE9SVF9SRVZFUlNBTDsNCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jOiAgICAgICAgICAgICAgIGRpZ19wb3J0LT5zYXZlZF9wb3J0 X2JpdHMgfD0NCj4gPiBYRTJMUERfRERJX0JVRl9EMkRfTElOS19FTkFCTEU7DQo+ID4gZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgaWYgKGRpZ19wb3J0LT5z YXZlZF9wb3J0X2JpdHMgJg0KPiA+IERESV9CVUZfUE9SVF9SRVZFUlNBTCkNCj4gPiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jOiAgICAgICAgICAgICAgIGRpZ19wb3J0 LT5zYXZlZF9wb3J0X2JpdHMgJj0NCj4gPiB+WEUyTFBEX0RESV9CVUZfRDJEX0xJTktfRU5BQkxF Ow0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgIGRp Z19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0NCj4gPiBERElfQlVGX0NUTF9FTkFCTEU7DQo+ID4g ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgICAgICAgICBp ZiAoZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cw0KPiA+ICYgRERJX0JVRl9QT1JUX1JFVkVSU0FM KQ0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgICAg ICAgICAgZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PQ0KPiA+IERESV9QT1JUX1dJRFRIKGxh bmVfY291bnQpOw0KPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6 ICAgICAgICAgICAgICAgZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PQ0KPiA+IERESV9CVUZf Q1RMX1RDX1BIWV9PV05FUlNISVA7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGkuYzogICAgICAgaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsDQo+ID4gRERJX0JVRl9D VEwocG9ydCksIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMpOw0KPiA+IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2Jp dHMgfD0NCj4gPiBERElfQlVGX0NUTF9FTkFCTEU7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsDQo+ID4g RERJX0JVRl9DVEwocG9ydCksIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMpOw0KPiA+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgIGRpZ19wb3J0LT5zYXZl ZF9wb3J0X2JpdHMgfD0NCj4gPiBERElfQlVGX0NUTF9FTkFCTEU7DQo+ID4gZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgaW50ZWxfZGVfd3JpdGUoZGV2X3By aXYsDQo+ID4gRERJX0JVRl9DVEwocG9ydCksIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMpOw0K PiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgIGlmIChk aWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzICYNCj4gPiBERElfQV80X0xBTkVTKQ0KPiA+IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgICAgICAgICAgZGlnX3Bv cnQtPnNhdmVkX3BvcnRfYml0cyB8PQ0KPiA+IERESV9BXzRfTEFORVM7DQo+ID4gZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYzogICAgICAgICAgICAgICBkaWdfcG9ydC0+ c2F2ZWRfcG9ydF9iaXRzID0NCj4gPiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2RkaS5jOiAgICAgICAgICAgICAgIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgPQ0KPiA+IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmM6ICAgICAgICAgICAgICAgZGln X3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PQ0KPiA+IERESV9CVUZfUE9SVF9SRVZFUlNBTDsNCj4g PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaDogICAg IHUzMiBzYXZlZF9wb3J0X2JpdHM7DQo+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcC5jOiAgICAgICAgZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyA9DQo+ID4gaW50ZWxf ZGVfcmVhZChkZXZfcHJpdiwgaW50ZWxfZHAtPm91dHB1dF9yZWcpOw0KPiA+IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYzogICAgICAgIGJvb2wgbGFuZV9yZXZlcnNhbCA9 IGRpZ19wb3J0LQ0KPiA+ID5zYXZlZF9wb3J0X2JpdHMgJiBERElfQlVGX1BPUlRfUkVWRVJTQUw7 DQo+ID4gDQo+ID4gTHVjYXMgRGUgTWFyY2hpDQo+ID4gDQo+ID4gPiA+ICAJCURESV9QT1JUX1dJ RFRIKGNydGNfc3RhdGUtPmxhbmVfY291bnQpIHwNCj4gPiA+ID4gIAkJRERJX0JVRl9UUkFOU19T RUxFQ1QoMCk7DQo+ID4gPiA+IA0KPiA+ID4gPiAgCWlmIChESVNQTEFZX1ZFUihpOTE1KSA+PSAx NCkgew0KPiA+ID4gPiAgCQlpZiAoaW50ZWxfZHBfaXNfdWhicihjcnRjX3N0YXRlKSkNCj4gPiA+ ID4gLQkJCWludGVsX2RwLT5EUCB8PSBERElfQlVGX1BPUlRfREFUQV80MEJJVDsNCj4gPiA+ID4g KwkJCWRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0gRERJX0JVRl9QT1JUX0RBVEFfNDBCSVQ7 DQo+ID4gPiA+ICAJCWVsc2UNCj4gPiA+ID4gLQkJCWludGVsX2RwLT5EUCB8PSBERElfQlVGX1BP UlRfREFUQV8xMEJJVDsNCj4gPiA+ID4gKwkJCWRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0g RERJX0JVRl9QT1JUX0RBVEFfMTBCSVQ7DQo+ID4gPiA+ICAJfQ0KPiA+ID4gPiANCj4gPiA+ID4g IAlpZiAoSVNfQUxERVJMQUtFX1AoaTkxNSkgJiYgaW50ZWxfcGh5X2lzX3RjKGk5MTUsIHBoeSkp IHsNCj4gPiA+ID4gLQkJaW50ZWxfZHAtPkRQIHw9IGRkaV9idWZfcGh5X2xpbmtfcmF0ZShjcnRj X3N0YXRlLT5wb3J0X2Nsb2NrKTsNCj4gPiA+ID4gKwkJZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0 cyB8PSBkZGlfYnVmX3BoeV9saW5rX3JhdGUoY3J0Y19zdGF0ZS0NCj4gPiA+ID4gPnBvcnRfY2xv Y2spOw0KPiA+ID4gPiAgCQlpZiAoIWludGVsX3RjX3BvcnRfaW5fdGJ0X2FsdF9tb2RlKGRpZ19w b3J0KSkNCj4gPiA+ID4gLQkJCWludGVsX2RwLT5EUCB8PSBERElfQlVGX0NUTF9UQ19QSFlfT1dO RVJTSElQOw0KPiA+ID4gPiArCQkJZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PSBERElfQlVG X0NUTF9UQ19QSFlfT1dORVJTSElQOw0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gIH0NCj4gPiA+ID4g DQo+ID4gPiA+IEBAIC0xNDUwLDcgKzE0NDksNyBAQCBoc3dfc2V0X3NpZ25hbF9sZXZlbHMoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ID4gPiA+ICAJCSAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiA+ID4gPiAgew0KPiA+ID4gPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOw0KPiA+ID4gPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoZW5jb2Rlcik7DQo+ID4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7DQo+ID4gPiA+ICAJaW50IGxldmVsID0gaW50 ZWxfZGRpX2xldmVsKGVuY29kZXIsIGNydGNfc3RhdGUsIDApOw0KPiA+ID4gPiAgCWVudW0gcG9y dCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsNCj4gPiA+ID4gIAl1MzIgc2lnbmFsX2xldmVsczsNCj4g PiA+ID4gQEAgLTE0NjcsMTAgKzE0NjYsMTAgQEAgaHN3X3NldF9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiA+ID4gPiAgCWRybV9kYmdfa21zKCZkZXZfcHJp di0+ZHJtLCAiVXNpbmcgc2lnbmFsIGxldmVscyAlMDh4XG4iLA0KPiA+ID4gPiAgCQkgICAgc2ln bmFsX2xldmVscyk7DQo+ID4gPiA+IA0KPiA+ID4gPiAtCWludGVsX2RwLT5EUCAmPSB+RERJX0JV Rl9FTVBfTUFTSzsNCj4gPiA+ID4gLQlpbnRlbF9kcC0+RFAgfD0gc2lnbmFsX2xldmVsczsNCj4g PiA+ID4gKwlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzICY9IH5ERElfQlVGX0VNUF9NQVNLOw0K PiA+ID4gPiArCWRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0gc2lnbmFsX2xldmVsczsNCj4g PiA+ID4gDQo+ID4gPiA+IC0JaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9CVUZfQ1RMKHBv cnQpLCBpbnRlbF9kcC0+RFApOw0KPiA+ID4gPiArCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBE RElfQlVGX0NUTChwb3J0KSwgZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyk7DQo+ID4gPiA+ICAJ aW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBERElfQlVGX0NUTChwb3J0KSk7DQo+ID4g PiA+ICB9DQo+ID4gPiA+IA0KPiA+ID4gPiBAQCAtMzE0NSw3ICszMTQ0LDYgQEAgc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX2RkaV9oZG1pKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUNCj4gPiA+ ID4gKnN0YXRlLA0KPiA+ID4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBj b25uX3N0YXRlLT5jb25uZWN0b3I7DQo+ID4gPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0Ow0KPiA+ID4gPiAgCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9w cml2LCBwb3J0KTsNCj4gPiA+ID4gLQl1MzIgYnVmX2N0bDsNCj4gPiA+ID4gDQo+ID4gPiA+ICAJ aWYgKCFpbnRlbF9oZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoZW5jb2RlciwgY29ubmVjdG9y LA0KPiA+ID4gPiAgCQkJCQkgICAgICAgY3J0Y19zdGF0ZS0NCj4gPiA+ID4gPmhkbWlfaGlnaF90 bWRzX2Nsb2NrX3JhdGlvLA0KPiA+ID4gPiBAQCAtMzIxMSw3ICszMjA5LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX2RkaV9oZG1pKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUNCj4gPiA+ ID4gKnN0YXRlLA0KPiA+ID4gPiAgCSAqIGlzIGZpbGxlZCB3aXRoIGxhbmUgY291bnQsIGFscmVh ZHkgc2V0IGluIHRoZSBjcnRjX3N0YXRlLg0KPiA+ID4gPiAgCSAqIFRoZSBzYW1lIGlzIHJlcXVp cmVkIHRvIGJlIGZpbGxlZCBpbiBQT1JUX0JVRl9DVEwgZm9yIEMxMC8yMCBQaHkuDQo+ID4gPiA+ ICAJICovDQo+ID4gPiA+IC0JYnVmX2N0bCA9IGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfCBE RElfQlVGX0NUTF9FTkFCTEU7DQo+ID4gPiA+ICsJZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8 PSBERElfQlVGX0NUTF9FTkFCTEU7DQo+ID4gPiA+ICAJaWYgKERJU1BMQVlfVkVSKGRldl9wcml2 KSA+PSAxNCkgew0KPiA+ID4gPiAgCQl1OCAgbGFuZV9jb3VudCA9IG10bF9nZXRfcG9ydF93aWR0 aChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsNCj4gPiA+ID4gIAkJdTMyIHBvcnRfYnVmID0gMDsN Cj4gPiA+ID4gQEAgLTMyMjQsMTMgKzMyMjIsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxl X2RkaV9oZG1pKHN0cnVjdA0KPiA+ID4gPiBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ ID4gPiAgCQlpbnRlbF9kZV9ybXcoZGV2X3ByaXYsIFhFTFBEUF9QT1JUX0JVRl9DVEwxKHBvcnQp LA0KPiA+ID4gPiAgCQkJICAgICBYRUxQRFBfUE9SVF9XSURUSF9NQVNLIHwgWEVMUERQX1BPUlRf UkVWRVJTQUwsDQo+ID4gPiA+IHBvcnRfYnVmKTsNCj4gPiA+ID4gDQo+ID4gPiA+IC0JCWJ1Zl9j dGwgfD0gRERJX1BPUlRfV0lEVEgobGFuZV9jb3VudCk7DQo+ID4gPiA+ICsJCWRpZ19wb3J0LT5z YXZlZF9wb3J0X2JpdHMgfD0gRERJX1BPUlRfV0lEVEgobGFuZV9jb3VudCk7DQo+ID4gPiA+ICAJ fSBlbHNlIGlmIChJU19BTERFUkxBS0VfUChkZXZfcHJpdikgJiYgaW50ZWxfcGh5X2lzX3RjKGRl dl9wcml2LCBwaHkpKSB7DQo+ID4gPiA+ICAJCWRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLA0K PiA+ID4gPiAhaW50ZWxfdGNfcG9ydF9pbl9sZWdhY3lfbW9kZShkaWdfcG9ydCkpOw0KPiA+ID4g PiAtCQlidWZfY3RsIHw9IERESV9CVUZfQ1RMX1RDX1BIWV9PV05FUlNISVA7DQo+ID4gPiA+ICsJ CWRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0gRERJX0JVRl9DVExfVENfUEhZX09XTkVSU0hJ UDsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+IA0KPiA+ID4gPiAtCWludGVsX2RlX3dyaXRlKGRldl9w cml2LCBERElfQlVGX0NUTChwb3J0KSwgYnVmX2N0bCk7DQo+ID4gPiA+ICsJaW50ZWxfZGVfd3Jp dGUoZGV2X3ByaXYsIERESV9CVUZfQ1RMKHBvcnQpLCBkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRz KTsNCj4gPiA+ID4gDQo+ID4gPiA+ICAJaW50ZWxfd2FpdF9kZGlfYnVmX2FjdGl2ZShkZXZfcHJp diwgcG9ydCk7DQo+ID4gPiA+IA0KPiA+ID4gPiBAQCAtMzQ0OCw4ICszNDQ2LDggQEAgc3RhdGlj IHZvaWQgbXRsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHANCj4gPiA+ ID4gKmludGVsX2RwLA0KPiA+ID4gPiAgCW10bF9wb3J0X2J1Zl9jdGxfcHJvZ3JhbShlbmNvZGVy LCBjcnRjX3N0YXRlKTsNCj4gPiA+ID4gDQo+ID4gPiA+ICAJLyogNi5pIENvbmZpZ3VyZSBhbmQg ZW5hYmxlIERESV9DVExfREUgdG8gc3RhcnQgc2VuZGluZyB2YWxpZCBkYXRhIHRvIHBvcnQNCj4g PiA+ID4gc2xpY2UgKi8NCj4gPiA+ID4gLQlpbnRlbF9kcC0+RFAgfD0gRERJX0JVRl9DVExfRU5B QkxFOw0KPiA+ID4gPiAtCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElfQlVGX0NUTChwb3J0 KSwgaW50ZWxfZHAtPkRQKTsNCj4gPiA+ID4gKwlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzIHw9 IERESV9CVUZfQ1RMX0VOQUJMRTsNCj4gPiA+ID4gKwlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwg RERJX0JVRl9DVEwocG9ydCksIGRpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMpOw0KPiA+ID4gPiAg CWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgRERJX0JVRl9DVEwocG9ydCkpOw0KPiA+ ID4gPiANCj4gPiA+ID4gIAkvKiA2LmogUG9sbCBmb3IgUE9SVF9CVUZfQ1RMIElkbGUgU3RhdHVz ID09IDAsIHRpbWVvdXQgYWZ0ZXIgMTAwIHVzICovDQo+ID4gPiA+IEBAIC0zNDk5LDggKzM0OTcs OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJhaW4oc3RydWN0IGlu dGVsX2RwDQo+ID4gPiA+ICppbnRlbF9kcCwNCj4gPiA+ID4gIAkgICAgKGludGVsX3RjX3BvcnRf aW5fZHBfYWx0X21vZGUoZGlnX3BvcnQpIHx8DQo+ID4gPiA+IGludGVsX3RjX3BvcnRfaW5fbGVn YWN5X21vZGUoZGlnX3BvcnQpKSkNCj4gPiA+ID4gIAkJYWRscF90YnRfdG9fZHBfYWx0X3N3aXRj aF93YShlbmNvZGVyKTsNCj4gPiA+ID4gDQo+ID4gPiA+IC0JaW50ZWxfZHAtPkRQIHw9IERESV9C VUZfQ1RMX0VOQUJMRTsNCj4gPiA+ID4gLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRERJX0JV Rl9DVEwocG9ydCksIGludGVsX2RwLT5EUCk7DQo+ID4gPiA+ICsJZGlnX3BvcnQtPnNhdmVkX3Bv cnRfYml0cyB8PSBERElfQlVGX0NUTF9FTkFCTEU7DQo+ID4gPiA+ICsJaW50ZWxfZGVfd3JpdGUo ZGV2X3ByaXYsIERESV9CVUZfQ1RMKHBvcnQpLCBkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzKTsN Cj4gPiA+ID4gIAlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2X3ByaXYsIERESV9CVUZfQ1RMKHBv cnQpKTsNCj4gPiA+ID4gDQo+ID4gPiA+ICAJaW50ZWxfd2FpdF9kZGlfYnVmX2FjdGl2ZShkZXZf cHJpdiwgcG9ydCk7DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmMNCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwLmMNCj4gPiA+ID4gaW5kZXggMTg5YzU3MzdlNjNhLi4yMzQ2Y2QzMmY1YTcgMTAw NjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAu Yw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMN Cj4gPiA+ID4gQEAgLTYwMjUsNyArNjAyNSw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LA0KPiA+ID4gPiAgCWludGVsX2RwLT5w cHMuYWN0aXZlX3BpcGUgPSBJTlZBTElEX1BJUEU7DQo+ID4gPiA+IA0KPiA+ID4gPiAgCS8qIFBy ZXNlcnZlIHRoZSBjdXJyZW50IGh3IHN0YXRlLiAqLw0KPiA+ID4gPiAtCWludGVsX2RwLT5EUCA9 IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIGludGVsX2RwLT5vdXRwdXRfcmVnKTsNCj4gPiA+ID4g KwlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgaW50 ZWxfZHAtPm91dHB1dF9yZWcpOw0KPiA+ID4gDQo+ID4gPiBJc24ndCB0aGlzIGdvaW5nIHRvIHBv dGVudGlhbGx5IGNsb2JiZXIgdGhlIGxhbmUgcmV2ZXJzYWwgc2V0dGluZyB3ZQ0KPiA+ID4gZGV0 ZXJtaW5lZCBmcm9tIHRoZSBWQlQgbmVhciB0aGUgYmVnaW5uaW5nIG9mIGludGVsX2RkaV9pbml0 KCk/DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gTWF0dA0KPiA+ID4gDQo+ID4gPiA+ICAJaW50ZWxf ZHAtPmF0dGFjaGVkX2Nvbm5lY3RvciA9IGludGVsX2Nvbm5lY3RvcjsNCj4gPiA+ID4gDQo+ID4g PiA+ICAJaWYgKF9pbnRlbF9kcF9pc19wb3J0X2VkcChkZXZfcHJpdiwgaW50ZWxfZW5jb2Rlci0+ ZGV2ZGF0YSwgcG9ydCkpIHsNCj4gPiA+ID4gLS0NCj4gPiA+ID4gMi40MC4xDQo+ID4gPiA+IA0K PiA+ID4gDQo+ID4gPiAtLSANCj4gPiA+IE1hdHQgUm9wZXINCj4gPiA+IEdyYXBoaWNzIFNvZnR3 YXJlIEVuZ2luZWVyDQo+ID4gPiBMaW51eCBHUFUgUGxhdGZvcm0gRW5hYmxlbWVudA0KPiA+ID4g SW50ZWwgQ29ycG9yYXRpb24NCg==