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 6D973C4707C for ; Fri, 12 Jan 2024 09:58:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A26E10EAA6; Fri, 12 Jan 2024 09:58:39 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8456410EAA6 for ; Fri, 12 Jan 2024 09:58:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1705053517; x=1736589517; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=1kqvf/KwHBxxwfceId92CrO7gj1M1M+p+2A2Lvrn9ZA=; b=ImmOzj8M/f78wvm8sOdrHbf8Bdd8fqtZzrvfrm2Bx7orxgTEYtgCLZoK 56xcCx8lEDeqHMwXVihV9agOGJN1vrkHj7y9BUnTkil9JTKeG0yrvBSYA 1Qvz9q+IiobdoEHEmyx4WbOerxDKGHSf9nW8SCkyYcK+LgtkxEVnPkZE4 p60roERd5i+SEG3Aq9+o43EzJWHcY7FzgdEoT8yaFtUPDRgP+t83EMhTC XP6lGNP0gqUJqZ6yaH3zHjeDessCw4/W641JAtOVkt2zKwe4D5nncGZA6 0ffvcjRw6tUPICeoLfNKUFnNjBDJDno3IwIoX3bfsoxfEVtYiF2YdOBy8 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10950"; a="463416601" X-IronPort-AV: E=Sophos;i="6.04,189,1695711600"; d="scan'208";a="463416601" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jan 2024 01:58:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10950"; a="1029871777" X-IronPort-AV: E=Sophos;i="6.04,189,1695711600"; d="scan'208";a="1029871777" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga006.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 12 Jan 2024 01:58:36 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 12 Jan 2024 01:58:36 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.35; Fri, 12 Jan 2024 01:58:35 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 12 Jan 2024 01:58:35 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Fri, 12 Jan 2024 01:58:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lE1ceRzb/wZnse7GY24SikHpPabXycoBG1C1luMHEx7YUqg2Q2h9hHpHAB4hKsS/A0R4+4fReKLXRF2vSg6GzAjAmIOvCw34s+tFwDvKt4H+yIUaZzrdCj2/C8XO35bdwtn3nH4dkcoSFkhLwkUYJa+78rVyP7BRjLcqsvPKwXQW3dKL9a98zygoY0FbMjk9isdxgg4Yw4DwzPEi1PbESUk9+5MQVYIsPzE+sh1LacBDHrLkzLI/AfhIEp4cPy7Se6P7PUuAxP1EMwbEdgc92qlX+RTSZRvyXaRxClBULTYRFDQ94IhOseM5XBmG0yNd1peHvNNDRtktLnNZ1wX0sA== 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=1kqvf/KwHBxxwfceId92CrO7gj1M1M+p+2A2Lvrn9ZA=; b=QlfHLqsc9srimAe9Veo1Yy6AQWFMWnzqnr/AMwv67cnnCVecC4kUSv8235130EU/3l/VMUFFHA4Y0s2yiO3k4Z44BU1hGdCvn+RIS1HHgOyTY4ogCQpqspbAl+clLqX8fnQtf2t8DUedrF11+UsLMs0cYrreH/EZQihzf/hEVclA+8t8zq23xRjvyUYz65zF6jgC9hQBrmBClzf7fIDjMI5epUhlaZG0KIbaifXF9I1sRniVgsyc1fx/eCFp2FZV2fNlPAK+Idf+BXVsyz/ce17DRyuc6sQKeIcCggYl89Tosw4BX4DQMV1eI0lWyMOgYqI6nlxG+Se7y+UnPYzsMA== 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 DS0PR11MB7382.namprd11.prod.outlook.com (2603:10b6:8:131::13) by SN7PR11MB6727.namprd11.prod.outlook.com (2603:10b6:806:265::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Fri, 12 Jan 2024 09:58:33 +0000 Received: from DS0PR11MB7382.namprd11.prod.outlook.com ([fe80::b043:8f67:3566:67ee]) by DS0PR11MB7382.namprd11.prod.outlook.com ([fe80::b043:8f67:3566:67ee%5]) with mapi id 15.20.7159.020; Fri, 12 Jan 2024 09:58:32 +0000 From: "Coelho, Luciano" To: "intel-xe@lists.freedesktop.org" , "Sousa, Gustavo" Subject: Re: [RFC v2 1/4] drm/i915/display: add support for DMC wakelocks Thread-Topic: [RFC v2 1/4] drm/i915/display: add support for DMC wakelocks Thread-Index: AQHaRJiWcGTsMFAW+0ecWGQkHclWBLDV8pqA Date: Fri, 12 Jan 2024 09:58:32 +0000 Message-ID: <4f1d85b5dd072783c29a4cdac65bd6e3746e81ad.camel@intel.com> References: <20240111091622.1110799-1-luciano.coelho@intel.com> <20240111091622.1110799-2-luciano.coelho@intel.com> <170498250383.2198.10326936404611559848@gjsousa-mobl2> In-Reply-To: <170498250383.2198.10326936404611559848@gjsousa-mobl2> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.46.4-2 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: DS0PR11MB7382:EE_|SN7PR11MB6727:EE_ x-ms-office365-filtering-correlation-id: 610240da-6892-4443-04a0-08dc13550950 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SwmZYWxewQ4ssaTI9nFSIKPppI6NG11cjoiJuPL+s7XrXtvc51mG76bey5vG51e80orZuG+Bm425X9DFcM/p3mko2p49ZYIcBbgYkZ0NzJny17TSA+ds5VVOdQMkHVlmTBNnqxO89jp9EUgTG6Al5pwCkmfcJtQjbXMejDDJBrjx15veUKZ9KysCrNJQzCIfqboLibkI3lfNh86O81q6ePT+E7y9kGPbLaSYC8jGKk4E8Ru2s/CXvRhUmX2svhZBoWHuR2cCuEpGpAllh2IvWHpKfLTSSlk8hxZUHczoriR9bHV76Erco8QL7sedzWW94CkrdBMIEc1TISkGqvP6XwpcOvWO7oDi6+rihh14QDD8BzjHuwbtBNVDW9428EBxfafieG10OJXm7aCvQ8+EWRsMDrWp75AV97avbgI/U9BJfIsmdSnAs7v6cIqMT6/hCqJB3k8eOOYmoQHvaFg97rdTVtK9xRkxtaPMoxNa13X1kqlCIL+4jECZ6zyvyBr6fzv5zIktUo5QSzdZj2Zu3if4R3e8D1GZChVinGmTRbNR+y4beawt4LHTs9BagfM6YmAt75LFvC80Q/rX++iJ7jDY8UYeM2sTdRBo8iNY4vdJsBkYsFHcAc+GDc5T1f5KGpAAMOJBkjE+jI50dkuLbh+4ocQvwEdS3kA1O3nLisQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DS0PR11MB7382.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(346002)(136003)(376002)(396003)(366004)(230922051799003)(230173577357003)(230273577357003)(1800799012)(186009)(451199024)(64100799003)(5660300002)(38100700002)(76116006)(91956017)(110136005)(2906002)(6512007)(316002)(4326008)(8676002)(86362001)(122000001)(82960400001)(8936002)(30864003)(64756008)(66446008)(66556008)(66946007)(66476007)(6636002)(6506007)(478600001)(6486002)(36756003)(2616005)(107886003)(26005)(38070700009)(83380400001)(41300700001)(71200400001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YjdPeWxQTjhOY2lyYWk2Y29LZnJMQThBejBCeFlhMXhRaEU2Umh4MDM1Uno3?= =?utf-8?B?OVJPOTRXMHF5WitkRWxGUkh2cGx6TU0rREZhTkJyVG1mckJNa2o1YlFSdVdl?= =?utf-8?B?TExQTFEzVERpWDBlNlRDWWQxK3p4M1RSNEw0Y1NXSFZiVWxzZHB3UXY0NG9E?= =?utf-8?B?M1M1MVpPT2NwR2JJWUkvbFFsVVMzZTJ1b1NyTEhaV1kvUVpjN2ZnTHk2WWlr?= =?utf-8?B?OWlJK0IvejU2cjRjMzhzbmFkSk9uY1ZHekJKOUJFMXNGaGk2M1E1YTVsV2xa?= =?utf-8?B?dTFNdnIrcE1TTW4xVXdFU3VsOUlmdGZEb0JGSlNreW9SdHVzRm82NVc0V2E5?= =?utf-8?B?QkkxTWp1UzZHdDdZYVl5bDRwajNHdk5hblVyRmg4NWZ0SXFJZ2ZFMUE1VzFw?= =?utf-8?B?R2ZzUnhUako3VW5JT2ZyYjVKT29mOHRIWm5Za1ZqNTFzT2F3RDZzL3F3TC82?= =?utf-8?B?Y1pSSWZ2NmRMZnc4WVhhZ2pySWRMYVFheTg1bTJtK053dDNRSWVvQkd2M3Vp?= =?utf-8?B?OEh6Zm4wSUVZYUR5WlgwendOYnFXNTVuSFpkdGRUNkJOemxnUTc2b1o0TEQv?= =?utf-8?B?TEw5M3RUbkpSUmpOeFoxcDNneGJZSWNybFFuQ0luejlBd3N1YzJtSTEvYU1n?= =?utf-8?B?T05OMXk0MGF6Y3FKZFptTmRSblFrY2svd1FPeDAwSmxkc3lvbHNUZzhLcGJM?= =?utf-8?B?SGxITGRCdzV1cU42SUMwTmJXZGxkeW1RaTJhMk1zMVd0RkhiZ2ZYc0lkUU5E?= =?utf-8?B?aGlaMFlmRFVyaDJ4dGlLaTltT1EzWEVTMHd6TGRrb0hEM2c5TGY2RzIwUUtN?= =?utf-8?B?SERKN05OZFVDMEhCU0IvdDBIVkF5VnVmTG9QWjM2bWgyRGxyTWpGSFErWWVr?= =?utf-8?B?WjFwcVFURXZNOXhiK0xtNE1Ya1cycVdERFZ0YnR3aUJieWJDVUs4VVR1Uk1Y?= =?utf-8?B?U2E0eVNOaVRQMFhpWmFKYVl2T1pWS0RlcmdnaEVuLytlc2g1VldiSjNqTTRW?= =?utf-8?B?czZ2RUF0SkNzNFRVTkdWaERPa0JvVDZJRTFORFVpYTdIcmNXYXRVMGh2K2Q4?= =?utf-8?B?WDFtSW5oNUI0Y2ViNjU4bWdERG9HOFlHSFZKNTN6KzN0UFo1WEl1NCtOSkJG?= =?utf-8?B?OFdMdThVRHArZWRubnQzZzBwSzlESllRcXJRWDgwdkNBVUgvaFRrcUE2M0lX?= =?utf-8?B?L1lwajc3K3haMENFc2dRRzhrUnlKaHdOSnJlRVV6ZS9icFlyUUZjUUdyTEZL?= =?utf-8?B?WVFmR2VqWUZRZU4xMTQyS0MrY2RrQktkbEJ4eGNoOXNuRHBHYXhwQ2laeFpG?= =?utf-8?B?NGt0YWhZaGFyNSsyV2tEUUJvYjQybmRCZUx5M1p2OTVwbjhHMHVOMG90RGxq?= =?utf-8?B?S0Q2bm1wNkdyeFo0QXBQQmxIWjllTWtSN2tLKythdFdSK1ByUG5waFlmbHJJ?= =?utf-8?B?TURGdU1XN0VwZmRQNzVMaXZXTklub3dHcWVpQkUwRlZzTmtzS2xIYUZqeTFy?= =?utf-8?B?ajI3L053MGg4T3h5TmhSVVltcEN0MDFIaFNQVkFFUjBjQjJteGRTdVFZZ1ky?= =?utf-8?B?TTBRN21uRHZoZkZ3TjBSQzFFME9ucC9rZzZwMEFya29KL1g2anFPd2hveFF1?= =?utf-8?B?WWJnUy9YdDJEUVEwQ1BnLy9UdHgyZUpDMm80MVBpakd2UDAwNXhPVlU1M1hw?= =?utf-8?B?Z1Q1Y1NzRmViUGFRanp0Vm5MVU1abDB6QWcyL1o0NklYRzhUb0tVVFFNTjhh?= =?utf-8?B?RkxlYytPRFdLZ3ZLUEdVOVhIdmhvLzhCT3FWbnlWaHl0SUxQaDl0UC8xMTJK?= =?utf-8?B?UDRxNnJUS29oK1VrcVBZYmppcEVWM2lLUks1S2NzYUZkRGJpZGhzVndMNjBU?= =?utf-8?B?REpKbGs5Z0M1SzJPcmgwQlpRM0lrclgxSXBuUS94RUc3Z2VyUW9KcDMvek55?= =?utf-8?B?N0hXYVNtamhlUDRJK2RWMEF6Q0Noa09Qd0FMYnpFWW9sRWxwQlJwOGZJdHJJ?= =?utf-8?B?UXZ6djZjWWV3bWk4QTA5eTFlTkVkSnBUMFRvSnFvaUIyYWpaSk42eUVtVlBB?= =?utf-8?B?aUdJU1d2MDJNTkVaSXViSWxoZ1huY2llUXBqSVBnbGsyOThIeW1CNWQ0ckZs?= =?utf-8?B?VXdrQWFIUE5tTUdZOVArQ2ZrbWVaY29GUkdKcTBGNFc2WWxqenFoQVZMUFlZ?= =?utf-8?B?QUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <75C45538876FED4C9A1430EBFC263A04@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS0PR11MB7382.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 610240da-6892-4443-04a0-08dc13550950 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2024 09:58:32.9124 (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: JpLZHbZOtFuuoRQkb8Rtv9WflsQQlW4ef7gxE+X2Qk2gw66CdEjYQi5SuBDQfXQgElFs5qohLoZCYEJSvyJaqOSOphBssrTbOE+oBSuT0hc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6727 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Nikula, Jani" Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gVGh1LCAyMDI0LTAxLTExIGF0IDExOjE1IC0wMzAwLCBHdXN0YXZvIFNvdXNhIHdyb3RlOg0K PiA+IEhpLCBMdWNhLg0KDQpFIGHDrSwgR3VzdGF2byENCg0KDQo+ID4gUXVvdGluZyBMdWNhIENv ZWxobyAoMjAyNC0wMS0xMSAwNjoxNjoxOS0wMzowMCkNCj4gPiA+ID4gSW4gb3JkZXIgdG8gcmVk dWNlIHRoZSBEQzUtPkRDMiByZXN0b3JlIHRpbWUsIHdha2Vsb2NrcyBoYXZlDQo+ID4gPiA+IGJl ZW4NCj4gPiA+ID4gaW50cm9kdWNlZCBpbiBETUMgc28gdGhlIGRyaXZlciBjYW4gdGVsbCBpdCB3 aGVuIHJlZ2lzdGVycyBhbmQNCj4gPiA+ID4gb3RoZXINCj4gPiA+ID4gbWVtb3J5IGFyZWFzIGFy ZSBnb2luZyB0byBiZSBhY2Nlc3NlZCBhbmQga2VlcCB0aGVpciByZXNwZWN0aXZlDQo+ID4gPiA+ IGJsb2Nrcw0KPiA+ID4gPiBhd2FrZS4NCj4gPiA+ID4gDQo+ID4gPiA+IEltcGxlbWVudCB0aGlz IGluIHRoZSBkcml2ZXIgYnkgYWRkaW5nIHRoZSBjb25jZXB0IG9mIERNQw0KPiA+ID4gPiB3YWtl bG9ja3MuDQo+ID4gPiA+IFdoZW4gdGhlIGRyaXZlciBuZWVkcyB0byBhY2Nlc3MgbWVtb3J5IHdo aWNoIGxpZXMgaW5zaWRlIHByZS0NCj4gPiA+ID4gZGVmaW5lZA0KPiA+ID4gPiByYW5nZXMsIGl0 IHdpbGwgdGVsbCBETUMgdG8gc2V0IHRoZSB3YWtlbG9jaywgYWNjZXNzIHRoZQ0KPiA+ID4gPiBt ZW1vcnksIHRoZW4NCj4gPiA+ID4gd2FpdCBmb3IgYSB3aGlsZSBhbmQgY2xlYXIgdGhlIHdha2Vs b2NrLg0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIHdha2Vsb2NrIHN0YXRlIGlzIHByb3RlY3RlZCBp biB0aGUgZHJpdmVyIHdpdGggc3BpbmxvY2tzIHRvDQo+ID4gPiA+IHByZXZlbnQgY29uY3VycmVu Y3kgaXNzdWVzLg0KPiA+ID4gPiANCj4gPiA+ID4gUkZDOiB0aGlzIGlzIHN0aWxsIHZlcnkgcm91 Z2ggb24gdGhlIGNvcm5lcnMgYW5kLCBmb3Igbm93LCB3ZQ0KPiA+ID4gPiBhcmUNCj4gPiA+ID4g b25seSBoYW5kbGluZyBSTVcgY2FzZXMuICBUaGUgbG9ja2luZyBtZWNoYW5pc21zIHN0aWxsIG5l ZWQgdG8NCj4gPiA+ID4gYmUNCj4gPiA+ID4gZmluZS10dW5lZCBhbmQgdmVyaWZpZWQuICBBZGRp dGlvbmFsbHksIHRoZXJlIGFyZSBsb2FkcyBvZiBsb2dzDQo+ID4gPiA+IHRoYXQNCj4gPiA+ID4g d2lsbCBiZSByZW1vdmVkIGFuZCB0aGluZ3MgbGlrZSBoYXJkY29kZWQgZGVsYXlzIHdoZW4gcmVh ZGluZw0KPiA+ID4gPiBBQ0tzDQo+ID4gPiA+IHdpbGwgYmUgY2hhbmdlZCB0byBwcm9wZXIgd2Fp dGluZyBmdW5jdGlvbnMgZXRjLiAgV2UgYXJlIGFsc28NCj4gPiA+ID4gdXNpbmcNCj4gPiA+ID4g ZHVtbXkgcmFuZ2VzIGZvciBub3csIGJ1dCB0aGVzZSBuZWVkIHRvIGJlIHNwZWNpZmllZCBwcm9w ZXJseSwNCj4gPiA+ID4gYWNjb3JkaW5nIHRvIHRoZSBic3BlY3MuDQo+ID4gDQo+ID4gU29tZSBj b21tZW50cy9xdWVzdGlvbnM6DQo+ID4gDQo+ID4gMS4gRE1DX1dBS0VMT0NLKl9DVEwgcmVnaXN0 ZXJzDQo+ID4gDQo+ID4gICAgSSBzZWUgdGhhdCwgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24sIHdl IHVzZSBvbmx5DQo+ID4gRE1DX1dBS0VMT0NLMV9DVEwuDQo+ID4gICAgRG8gd2UgcGxhbiBvbiB1 c2luZyB0aGUgb3RoZXIgYXZhaWxhYmxlIERNQ19XQUtFTE9DSypfQ1RMDQo+ID4gcmVnaXN0ZXJz Pw0KPiA+IA0KPiA+ICAgIEkgd291bGQgYWdyZWUgdGhhdCB0aGUgcmVmY291bnRpbmcgYXBwcm9h Y2ggc2VlbXMgdG8gYmUgYSBnb29kDQo+ID4gb25lDQo+ID4gICAgYW5kIG1heWJlIGFkZGluZyB0 aGUgY29tcGxleGl0eSBuZWNlc3NhcnkgaW4gdGhlIGNvZGUgdG8gdXNlIHRoZQ0KPiA+ICAgIG90 aGVyIG9uZXMgbWlnaHQgbm90IGJlIHdvcnRoIGl0LiBJIGRlY2lkZWQgdG8gYXNrIGFueXdheSBz aW5jZQ0KPiA+IHlvdQ0KPiA+ICAgIGtlcHQgdGhlIGRlZmluaXRpb25zIGhlcmUuDQoNClllcywg ZXhhY3RseSBzby4gSSBkaWRuJ3Qgc2VlIGEgcmVhc29uIHRvIGNvbXBsaWNhdGUgdGhpbmdzIHdp dGgNCnNldmVyYWwgZGlmZmVyZW50IHdha2Vsb2Nrcy4gVGhlIHNwaW5sb2NrIHNob3VsZCBiZSBl bm91Z2ggaW4gdGhpcw0KY2FzZSwgSU1ITy4gVGhlIGRvY3VtZW50YXRpb24gc2FpZCAib25lIGNv bnRyb2wgcGVyIHRocmVhZCIsIGJ1dCB0aGF0J3MNCnByb2JhYmx5IGZvciBhbm90aGVyIGNlcnRh aW4gT1MgYW5kIG5vdCByZWFsbHkgbmVjZXNzYXJ5IG9uIG91cg0KaW1wbGVtZW50YXRpb24uDQoN CkkgbGVmdCB0aGUgZGVmaW5pdGlvbnMgdGhlcmUgZm9yIGV4YWN0bHkgdGhpcyByZWFzb24uIFdl IHdpbGwga25vdyB0aGF0DQppdCBpcyBhIHBvc3NpYmlsaXR5IGFuZCBtYXliZSBjYW4gdXNlIGl0 IGxhdGVyIG9uIGlmIG5lZWRlZCwgYnV0IGl0IHdhcw0KYSBkZXNpZ24gZGVjaXNpb24gbm90IHRv IHVzZSB0aGVtIGluIHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uLg0KDQpJJ2xsIGFkZCBhIGNv bW1lbnQgY2xhcmlmeWluZyB0aGlzIGRlY2lzaW9uIGV4cGxpY2l0bHkuDQoNCg0KPiA+IDIuIEVu YWJsaW5nIGFuZCBkaXNhYmxpbmcNCj4gPiANCj4gPiAgICBJIHRoaW5rIHdlIHNob3VsZG4ndCBl bmFibGUgRE1DIFdha2Vsb2NrIGFzIHBhcnQgb2YgdGhlIG1vZGVzZXQNCj4gPiAgICBjb21taXQu DQo+ID4gDQo+ID4gICAgSSB3b3VsZCBhc3N1bWUgdGhhdCBlbmFibGluZyBETUMgV2FrZWxvY2sg c2hvdWxkIGJlIHBhcnQgb2YgdGhlDQo+ID4gREMNCj4gPiAgICBzdGF0ZXMgZW5hYmxpbmcgc2Vx dWVuY2UsIHNpbmNlIHRoZSBmb3JtZXIgc2hvdWxkIGJlIGRvbmUgcHJpb3INCj4gPiB0bw0KPiA+ ICAgIHRoZSBsYXR0ZXIuDQoNClRoYXQncyBhIGdvb2QgcG9pbnQuIFRoZSBkb2N1bWVudGF0aW9u IGNsZWFybHkgc2F5cyB0aGF0IGl0IHNob3VsZCBiZQ0KZG9uZSBpbW1lZGlhdGVseSBhZnRlciB0 aGUgZmlyc3QgbW9kZXNldCwgc28gSSBkaWQgaXQuIEJ1dCBpdCdzIGEgYml0DQp3ZWlyZCBpbmRl ZWQsIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgZW5hYmxlZCBpbW1lZGlhdGVseSBhZnRlciBETUMg aXMNCmZ1bGx5IHNldCB1cCwgb3IgbWF5YmUgZXZlbiBhIGJpdCBlYXJsaWVyLCB3aGlsZSB3ZSdy ZSBzZXR0aW5nIGl0IHVwLg0KDQpJJ20gbm90IHZlcnkgZmFtaWxpYXIgd2l0aCB0aGUgREMgc3Rh dGVzIGluIG91ciBkcml2ZXIsIGJ1dCBJJ2xsIGxvb2sNCmludG8gdGhhdC4NCg0KDQo+ID4gICAg QWxzbywgYXJlbid0IHdlIG1pc3NpbmcgdGhlIGRpc2FibGluZyBjb3VudGVycGFydCBmb3INCj4g PiAgICBpbnRlbF9kaXNwbGF5X3dsX2VuYWJsZSgpPw0KDQpEZWZpbml0ZWx5LCBnb29kIHBvaW50 LiBJJ2xsIGltcGxlbWVudCBpdC4gSSBhbHNvIGRpZG4ndCBkbyBpdCBhdA0KZmlyc3QsIGJlY2F1 c2UgSSB3YXMgdGhpbmtpbmcgYWJvdXQgZG9pbmcgdGhlIGVuYWJsZS9kaXNhYmVsIG9uIG1vZHVs ZQ0KcHJvYmUgYW5kIHJlbW92ZSByZXNwZWN0aXZlbHksIGJ1dCBJIHRoaW5rIGl0IHNob3VsZCBi ZSBtb3JlIHRpZWQgdG8NCkRNQydzIGxpZmV0aW1lLg0KDQoNCj4gPiBBcyBhbiBSRkMsIEkgZ3Vl c3Mgd2UgYXJlIG1vcmUgY29uY2VybmVkIG9uIHRoZSBvdmVyYWxsIGRlc2lnbiBvZg0KPiA+IHRo ZQ0KPiA+IHRoaW5nIGF0IHRoaXMgcG9pbnQuIE5ldmVydGhlbGVzcywgdHJ5aW5nIHRvIGhlbHAs IEkgZGVjaWRlZCB0bw0KPiA+IHByb3ZpZGUNCj4gPiBteSAyIGNlbnRzIG9uIHRoZSBjdXJyZW50 IGltcGxlbWVudGF0aW9uIGJlbG93LiBJIGhvcGUgaXQgaXMNCj4gPiBoZWxwZnVsLg0KDQpZZXMs IGV4YWN0bHkhIEknbSBwcmltYXJpbHkgaW50ZXJlc3RlZCBpbiByZWNlaXZpbmcgZmVlZGJhY2sg b24gdGhlDQpvdmVyYWxsIGRlc2lnbi4gSXQgd291bGQgYmUgYSB3YXN0ZSBvZiB0aW1lIHRvIHBv bGlzaCBhbmQgZGVjb3JhdGUgdGhpcw0KY29kZSBiZWZvcmUgZ2V0dGluZyBhcHByb3ZhbCBvbiB0 aGUgZGVzaWduIGZyb20gdGhlIGV4cGVydHMsIGVzcGVjaWFsbHkNCmlmIHRoZSBlbnRpcmUgY29u Y2VwdCBtaWdodCBuZWVkIHRvIGJlIGNoYW5nZWQuDQoNCllvdXIgMiBjZW50cyBhcmUgd29ydGgg YSBsb3QgbW9yZSB0aGFuIHRoYXQgdG8gbWUhIFRoYW5rcyBhIGxvdCBmb3INCnlvdXIgcmV2aWV3 IGFuZCBpbnNpZ2h0cy4NCg0KDQo+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBMdWNhIENvZWxobyA8bHVjaWFuby5jb2VsaG9AaW50ZWwuY29tPg0KPiA+ID4gPiAtLS0NCj4g PiA+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAx ICsNCj4gPiA+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZS5oICAgICAg IHwgIDE2ICstDQo+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jICB8ICAgNCArDQo+ID4gPiA+IC4uLi9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X2NvcmUuaCB8ICAgNCArDQo+ID4gPiA+IC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfZHJpdmVyLmMgICB8ICAgMSArDQo+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZG1jX3JlZ3MuaCB8ICAxOCArKw0KPiA+ID4gPiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3dha2Vsb2NrLmMgfCAxOTENCj4gPiA+ID4gKysrKysrKysr KysrKysrKysrDQo+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfd2Fr ZWxvY2suaCB8ICAzNCArKysrDQo+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiA+IDkgZmlsZXMgY2hhbmdlZCwgMjY5IGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPiA+ID4gY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfd2FrZWxvY2suYw0KPiA+ ID4gPiBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF93YWtlbG9jay5oDQo+ID4gPiA+IA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUNCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQ0KPiA+ID4gPiBpbmRleCBmN2QxM2E3ZGNkNjMuLjE3MzgzMDViOGMxNSAxMDA2 NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUNCj4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUNCj4gPiA+ID4gQEAgLTMxMiw2ICsz MTIsNyBAQCBpOTE1LXkgKz0gXA0KPiA+ID4gPiAgICAgICAgIGRpc3BsYXkvaW50ZWxfdGMubyBc DQo+ID4gPiA+ICAgICAgICAgZGlzcGxheS9pbnRlbF92YmxhbmsubyBcDQo+ID4gPiA+ICAgICAg ICAgZGlzcGxheS9pbnRlbF92Z2EubyBcDQo+ID4gPiA+ICsgICAgICAgIGRpc3BsYXkvaW50ZWxf d2FrZWxvY2subyBcDQo+ID4gPiA+ICAgICAgICAgZGlzcGxheS9pbnRlbF93bS5vIFwNCj4gPiA+ ID4gICAgICAgICBkaXNwbGF5L3NrbF9zY2FsZXIubyBcDQo+ID4gPiA+ICAgICAgICAgZGlzcGxh eS9za2xfdW5pdmVyc2FsX3BsYW5lLm8gXA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZS5oDQo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZS5oDQo+ID4gPiA+IGluZGV4IDQyNTUyZDhjMTUxZS4uMDU5 N2RkZjQ5ZjcwIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RlLmgNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZS5oDQo+ID4gPiA+IEBAIC00MiwxMSArNDIsMjUgQEAgaW50ZWxfZGVfd3JpdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUNCj4gPiA+ID4gKmk5MTUsIGk5MTVfcmVnX3QgcmVnLCB1 MzIgdmFsKQ0KPiA+ID4gPiB9DQo+ID4gPiA+IA0KPiA+ID4gPiBzdGF0aWMgaW5saW5lIHUzMg0K PiA+ID4gPiAtaW50ZWxfZGVfcm13KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpOTE1 X3JlZ190IHJlZywNCj4gPiA+ID4gdTMyIGNsZWFyLCB1MzIgc2V0KQ0KPiA+ID4gPiArX19pbnRl bF9kZV9ybXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGk5MTVfcmVnX3QgcmVnLA0K PiA+ID4gPiB1MzIgY2xlYXIsIHUzMiBzZXQpDQo+ID4gPiA+IHsNCj4gPiA+ID4gICAgICAgICBy ZXR1cm4gaW50ZWxfdW5jb3JlX3JtdygmaTkxNS0+dW5jb3JlLCByZWcsIGNsZWFyLA0KPiA+ID4g PiBzZXQpOw0KPiA+ID4gPiB9DQo+ID4gPiA+IA0KPiA+ID4gPiArc3RhdGljIGlubGluZSB1MzIN Cj4gPiA+ID4gK2ludGVsX2RlX3JtdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaTkx NV9yZWdfdCByZWcsDQo+ID4gPiA+IHUzMiBjbGVhciwgdTMyIHNldCkNCj4gPiA+ID4gK3sNCj4g PiA+ID4gKyAgICAgICAgdTMyIHZhbDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBpbnRl bF9kaXNwbGF5X3dsX2dldChpOTE1LCByZWcpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAg IHZhbCA9IF9faW50ZWxfZGVfcm13KGk5MTUsIHJlZywgY2xlYXIsIHNldCk7DQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyAgICAgICAgaW50ZWxfZGlzcGxheV93bF9wdXQoaTkxNSwgcmVnKTsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArICAgICAgICByZXR1cm4gdmFsOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiAr DQo+ID4gPiA+IHN0YXRpYyBpbmxpbmUgaW50DQo+ID4gPiA+IGludGVsX2RlX3dhaXRfZm9yX3Jl Z2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LA0KPiA+ID4gPiBpOTE1X3JlZ190 IHJlZywNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIG1hc2ssIHUzMiB2 YWx1ZSwgdW5zaWduZWQgaW50DQo+ID4gPiA+IHRpbWVvdXQpDQo+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jDQo+ID4gPiA+IGlu ZGV4IGYxNWQyMzhjZTU3OS4uMzE4NzU3YWYzOTA1IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiBAQCAt MTE1LDYgKzExNSw3IEBADQo+ID4gPiA+ICNpbmNsdWRlICJpbnRlbF92ZHNjX3JlZ3MuaCINCj4g PiA+ID4gI2luY2x1ZGUgImludGVsX3ZnYS5oIg0KPiA+ID4gPiAjaW5jbHVkZSAiaW50ZWxfdnJy LmgiDQo+ID4gPiA+ICsjaW5jbHVkZSAiaW50ZWxfd2FrZWxvY2suaCINCj4gPiA+ID4gI2luY2x1 ZGUgImludGVsX3dtLmgiDQo+ID4gPiA+ICNpbmNsdWRlICJza2xfc2NhbGVyLmgiDQo+ID4gPiA+ ICNpbmNsdWRlICJza2xfdW5pdmVyc2FsX3BsYW5lLmgiDQo+ID4gPiA+IEBAIC03MzU5LDYgKzcz NjAsOSBAQCBzdGF0aWMgdm9pZA0KPiA+ID4gPiBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAg KiB0aGUgY3VscHJpdC4NCj4gPiA+ID4gICAgICAgICAgICAgICAgICAqLw0KPiA+ID4gPiAgICAg ICAgICAgICAgICANCj4gPiA+ID4gaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRl Y3Rpb24oJmRldl9wcml2LT51bmNvcmUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgLyogRW5hYmxlIERNQyB3YWtlbG9jayAqLw0KPiA+ID4gPiArICAgICAgICAgICAgICAg IGludGVsX2Rpc3BsYXlfd2xfZW5hYmxlKGRldl9wcml2KTsNCj4gPiA+ID4gICAgICAgICB9DQo+ ID4gPiA+ICAgICAgICAgLyoNCj4gPiA+ID4gICAgICAgICAgKiBEZWxheSByZS1lbmFibGluZyBE QyBzdGF0ZXMgYnkgMTcgbXMgdG8gYXZvaWQgdGhlDQo+ID4gPiA+IG9mZi0+b24tPm9mZg0KPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X2NvcmUuaA0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9jb3JlLmgNCj4gPiA+ID4gaW5kZXggN2U4MmI4N2U5Y2RlLi5lYTdlNWY0ZGZjZWEg MTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9jb3JlLmgNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X2NvcmUuaA0KPiA+ID4gPiBAQCAtMjYsNiArMjYsNyBAQA0KPiA+ID4g PiAjaW5jbHVkZSAiaW50ZWxfZ2xvYmFsX3N0YXRlLmgiDQo+ID4gPiA+ICNpbmNsdWRlICJpbnRl bF9nbWJ1cy5oIg0KPiA+ID4gPiAjaW5jbHVkZSAiaW50ZWxfb3ByZWdpb24uaCINCj4gPiA+ID4g KyNpbmNsdWRlICJpbnRlbF93YWtlbG9jay5oIg0KPiA+ID4gPiAjaW5jbHVkZSAiaW50ZWxfd21f dHlwZXMuaCINCj4gPiA+ID4gDQo+ID4gPiA+IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOw0KPiA+ ID4gPiBAQCAtNTIzLDcgKzUyNCwxMCBAQCBzdHJ1Y3QgaW50ZWxfZGlzcGxheSB7DQo+ID4gPiA+ ICAgICAgICAgc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXk7DQo+ID4gPiA+ICAgICAgICAg c3RydWN0IGludGVsX2Rpc3BsYXlfcGFyYW1zIHBhcmFtczsNCj4gPiA+ID4gICAgICAgICBzdHJ1 Y3QgaW50ZWxfdmJ0X2RhdGEgdmJ0Ow0KPiA+ID4gPiArICAgICAgICBzdHJ1Y3QgaW50ZWxfZGlz cGxheV93bCB3bDsNCj4gPiA+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxfd20gd207DQo+ID4gPiA+ ICsNCj4gPiA+ID4gKw0KPiA+ID4gPiB9Ow0KPiA+ID4gPiANCj4gPiA+ID4gI2VuZGlmIC8qIF9f SU5URUxfRElTUExBWV9DT1JFX0hfXyAqLw0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5jDQo+ID4g PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5j DQo+ID4gPiA+IGluZGV4IDYyZjdiMTA0ODRiZS4uYmFmZWEyOGUzMzQzIDEwMDY0NA0KPiA+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfZHJpdmVy LmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X2RyaXZlci5jDQo+ID4gPiA+IEBAIC0xOTYsNiArMTk2LDcgQEAgdm9pZA0KPiA+ID4gPiBp bnRlbF9kaXNwbGF5X2RyaXZlcl9lYXJseV9wcm9iZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkNCj4gPiA+ID4gICAgICAgICBpbnRlbF9kcGxsX2luaXRfY2xvY2tfaG9vayhpOTE1KTsN Cj4gPiA+ID4gICAgICAgICBpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3MoaTkxNSk7DQo+ID4gPiA+ ICAgICAgICAgaW50ZWxfZmRpX2luaXRfaG9vayhpOTE1KTsNCj4gPiA+ID4gKyAgICAgICAgaW50 ZWxfZGlzcGxheV93bF9pbml0KGk5MTUpOw0KPiA+ID4gPiB9DQo+ID4gPiA+IA0KPiA+ID4gPiAv KiBwYXJ0ICMxOiBjYWxsIGJlZm9yZSBpcnEgaW5zdGFsbCAqLw0KPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kbWNfcmVncy5oDQo+ID4gPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kbWNfcmVncy5oDQo+ID4gPiA+ IGluZGV4IGNmMTAwOTRhY2FlMy4uZTY4YTJhZmNmMTRmIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RtY19yZWdzLmgNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kbWNfcmVncy5oDQo+ID4gPiA+ IEBAIC05Niw0ICs5NiwyMiBAQA0KPiA+ID4gPiAjZGVmaW5lIFRHTF9ETUNfREVCVUczICAgICAg ICAgICAgICAgIF9NTUlPKDB4MTAxMDkwKQ0KPiA+ID4gPiAjZGVmaW5lIERHMV9ETUNfREVCVUcz ICAgICAgICAgICAgICAgIF9NTUlPKDB4MTM0MTVjKQ0KPiA+ID4gPiANCj4gPiA+ID4gKyNkZWZp bmUgRE1DX1dBS0VMT0NLX0NGRyAgICAgICAgX01NSU8oMHg4RjFCMCkNCj4gPiA+ID4gKyNkZWZp bmUgIERNQ19XQUtFTE9DS19DRkdfRU5BQkxFIFJFR19CSVQoMzEpDQo+ID4gPiA+ICsjZGVmaW5l IERNQ19XQUtFTE9DSzFfQ1RMICAgICAgICBfTU1JTygweDhGMTQwKQ0KPiA+ID4gPiArI2RlZmlu ZSBETUNfV0FLRUxPQ0syX0NUTCAgICAgICAgX01NSU8oMHg4RjE0NCkNCj4gPiA+ID4gKyNkZWZp bmUgRE1DX1dBS0VMT0NLM19DVEwgICAgICAgIF9NTUlPKDB4OEYxNDgpDQo+ID4gPiA+ICsjZGVm aW5lIERNQ19XQUtFTE9DSzRfQ1RMICAgICAgICBfTU1JTygweDhGMTRDKQ0KPiA+ID4gPiArI2Rl ZmluZSBETUNfV0FLRUxPQ0s1X0NUTCAgICAgICAgX01NSU8oMHg4RjE1MCkNCj4gPiA+ID4gKyNk ZWZpbmUgRE1DX1dBS0VMT0NLNl9DVEwgICAgICAgIF9NTUlPKDB4OEYxNTQpDQo+ID4gPiA+ICsj ZGVmaW5lIERNQ19XQUtFTE9DSzdfQ1RMICAgICAgICBfTU1JTygweDhGMTU4KQ0KPiA+ID4gPiAr I2RlZmluZSBETUNfV0FLRUxPQ0s4X0NUTCAgICAgICAgX01NSU8oMHg4RjE1QykNCj4gPiA+ID4g KyNkZWZpbmUgRE1DX1dBS0VMT0NLOV9DVEwgICAgICAgIF9NTUlPKDB4OEYxNjApDQo+ID4gPiA+ ICsjZGVmaW5lIERNQ19XQUtFTE9DSzEwX0NUTCAgICAgICAgX01NSU8oMHg4RjE2NCkNCj4gPiA+ ID4gKyNkZWZpbmUgRE1DX1dBS0VMT0NLMTFfQ1RMICAgICAgICBfTU1JTygweDhGMTY4KQ0KPiA+ ID4gPiArI2RlZmluZSBETUNfV0FLRUxPQ0sxMl9DVEwgICAgICAgIF9NTUlPKDB4OEYxNkMpDQo+ ID4gPiA+ICsjZGVmaW5lIERNQ19XQUtFTE9DSzEzX0NUTCAgICAgICAgX01NSU8oMHg4RjE3MCkN Cj4gPiA+ID4gKyNkZWZpbmUgIERNQ19XQUtFTE9DS19DVExfUkVRICAgICAgICAgUkVHX0JJVCgz MSkNCj4gPiA+ID4gKyNkZWZpbmUgIERNQ19XQUtFTE9DS19DVExfQUNLICAgICAgICAgUkVHX0JJ VCgxNSkNCj4gPiA+ID4gKw0KPiA+ID4gPiAjZW5kaWYgLyogX19JTlRFTF9ETUNfUkVHU19IX18g Ki8NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfd2FrZWxvY2suYw0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfd2FrZWxvY2suYw0KPiA+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gPiBpbmRl eCAwMDAwMDAwMDAwMDAuLjYzZWMyOTc2YThmNw0KPiA+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfd2FrZWxvY2suYw0K PiA+ID4gPiBAQCAtMCwwICsxLDE5MSBAQA0KPiA+ID4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IE1JVCAqLw0KPiA+ID4gPiArLyoNCj4gPiA+ID4gKyAqIENvcHlyaWdodCAoQykgMjAy MyBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCj4gPiA+ID4gKw0KPiA+ID4gPiArI2luY2x1ZGUgImlu dGVsX2RlLmgiDQo+ID4gPiA+ICsjaW5jbHVkZSAiaW50ZWxfZG1jX3JlZ3MuaCINCj4gPiA+ID4g KyNpbmNsdWRlICJpbnRlbF93YWtlbG9jay5oIg0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMg c3RydWN0IGludGVsX2Rpc3BsYXlfd2xfcmFuZ2UgbG5sX3dsX3JhbmdlW10gPSB7DQo+ID4gPiA+ ICsgICAgICAgIHsgLnN0YXJ0ID0gMHg2MDAwMCwgLmVuZCA9IDB4N2ZmZmYgfSwNCj4gPiA+ID4g K307DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyB2b2lkIF9faW50ZWxfZGlzcGxheV93bF9y ZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlDQo+ID4gPiA+ICppOTE1KQ0KPiA+ID4gPiAr ew0KPiA+ID4gPiArICAgICAgICBzdHJ1Y3QgaW50ZWxfZGlzcGxheV93bCAqd2wgPSAmaTkxNS0+ ZGlzcGxheS53bDsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBXQVJOX09OKHJlZmNvdW50 X3JlYWQoJndsLT5yZWZjb3VudCkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIGRybV9p bmZvKCZpOTE1LT5kcm0sDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICJETUNfV0FLRUxPQ0sx X0NUTCB0byBiZSByZWxlYXNlZCAocmVmY291bnQgPQ0KPiA+ID4gPiAlZClcbiIsDQo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgIHJlZmNvdW50X3JlYWQoJndsLT5yZWZjb3VudCkpOw0KPiA+ID4g PiArDQo+ID4gPiA+ICsgICAgICAgIHF1ZXVlX2RlbGF5ZWRfd29yayhpOTE1LT51bm9yZGVyZWRf d3EsICZ3bC0+d29yaywNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZWNz X3RvX2ppZmZpZXMoMjAwMCkpOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0 aWMgdm9pZCBpbnRlbF9kaXNwbGF5X3dsX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0K PiA+ID4gPiArew0KPiA+ID4gPiArICAgICAgICBzdHJ1Y3QgaW50ZWxfZGlzcGxheV93bCAqd2wg PQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaW50 ZWxfZGlzcGxheV93bCwNCj4gPiA+ID4gd29yay53b3JrKTsNCj4gPiA+ID4gKyAgICAgICAgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgIGNv bnRhaW5lcl9vZih3bCwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsDQo+ID4gPiA+IGRpc3BsYXku d2wpOw0KPiA+ID4gPiArICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiA+ID4gPiArICAg ICAgICB1MzIgY3RsX3ZhbHVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIHNwaW5fbG9j a19pcnFzYXZlKCZ3bC0+bG9jaywgZmxhZ3MpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAg IGRybV9pbmZvKCZpOTE1LT5kcm0sICJETUNfV0FLRUxPQ0sxX0NUTCB3b3JrIHJ1bm5pbmcNCj4g PiA+ID4gKHJlZmNvdW50ID0gJWQpXG4iLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICByZWZj b3VudF9yZWFkKCZ3bC0+cmVmY291bnQpKTsNCj4gPiANCj4gPiBTaG91bGRuJ3Qgd2UgYmFpbCBv dXQgaWYgd2wtPnJlZmNvdW50ID4gMD8NCg0KUHJvYmFibHksIEknbGwgZG91YmxlLWNoZWNrIHRo aXMuDQoNCg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIGN0bF92YWx1ZSA9IF9faW50ZWxf ZGVfcm13KGk5MTUsIERNQ19XQUtFTE9DSzFfQ1RMLA0KPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBETUNfV0FLRUxPQ0tfQ0ZHX0VOQUJMRSwNCj4gPiA+ID4gMCk7 DQo+ID4gDQo+ID4gcy9ETUNfV0FLRUxPQ0tfQ0ZHX0VOQUJMRS9ETUNfV0FLRUxPQ0tfQ1RMX1JF US8/DQoNCk9vcHMsIGdvb2QgY2F0Y2ghDQoNCg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAg IGRybV9pbmZvKCZpOTE1LT5kcm0sICJETUNfV0FLRUxPQ0sxX0NUTCAweCUweA0KPiA+ID4gPiBi ZWZvcmVcbiIsIGN0bF92YWx1ZSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgZHJtX2lu Zm8oJmk5MTUtPmRybSwgIkRNQ19XQUtFTE9DSzFfQ1RMIHJlYWQgMHglMHgNCj4gPiA+ID4gaW1t ZWRpYXRlbHkgYWZ0ZXJcbiIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgIGludGVsX2RlX3Jl YWQoaTkxNSwgRE1DX1dBS0VMT0NLMV9DVEwpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAg ICB1ZGVsYXkoMTAwKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBkcm1faW5mbygmaTkx NS0+ZHJtLCAiRE1DX1dBS0VMT0NLMV9DVEwgcmVhZCAweCUweA0KPiA+ID4gPiBhZnRlciBkZWxh eVxuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgaW50ZWxfZGVfcmVhZChpOTE1LCBETUNf V0FLRUxPQ0sxX0NUTCkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJndsLT5sb2NrLCBmbGFncyk7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4g PiA+ID4gK3N0YXRpYyBib29sIGludGVsX2Rpc3BsYXlfd2xfY2hlY2tfcmFuZ2UodTMyIGFkZHJl c3MpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsgICAgICAgIGludCBpOw0KPiA+ID4gPiArICAgICAg ICBib29sIHdsX25lZWRlZCA9IGZhbHNlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIGZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGxubF93bF9yYW5nZSk7IGkrKykgew0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzID49IGxubF93bF9yYW5nZVtpXS5zdGFydCAmJg0K PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICBhZGRyZXNzIDw9IGxubF93bF9yYW5nZVtpXS5l bmQpIHsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHdsX25lZWRlZCA9IHRydWU7 DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICB9DQo+ID4gPiA+ICsgICAgICAgIH0NCj4gPiA+ID4gKw0KPiA+ID4gPiArICAg ICAgICByZXR1cm4gd2xfbmVlZGVkOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICt2 b2lkIGludGVsX2Rpc3BsYXlfd2xfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkN Cj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAgICAgICAgc3RydWN0IGludGVsX2Rpc3BsYXlfd2wgKnds ID0gJmk5MTUtPmRpc3BsYXkud2w7DQo+ID4gPiA+ICsgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgc3Bpbl9sb2NrX2luaXQoJndsLT5sb2Nr KTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmd2wtPmxv Y2ssIGZsYWdzKTsNCj4gPiA+ID4gKyAgICAgICAgcmVmY291bnRfc2V0KCZ3bC0+cmVmY291bnQs IDApOw0KPiA+ID4gPiArICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3bC0+bG9jaywg ZmxhZ3MpOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICt2b2lkIGludGVsX2Rpc3Bs YXlfd2xfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQ0KPiA+ID4gPiArew0K PiA+ID4gPiArICAgICAgICBzdHJ1Y3QgaW50ZWxfZGlzcGxheV93bCAqd2wgPSAmaTkxNS0+ZGlz cGxheS53bDsNCj4gPiA+ID4gKyAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gPiA+ID4g Kw0KPiA+ID4gPiArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmd2wtPmxvY2ssIGZsYWdzKTsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBpZiAod2wtPmVuYWJsZWQpDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAg ICAgIGRybV9pbmZvKCZpOTE1LT5kcm0sICJETUNfV0FLRUxPQ0tfQ0ZHIHJlZmNvdW50ICVkXG4i LA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICByZWZjb3VudF9yZWFkKCZ3bC0+cmVmY291bnQp KTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBJTklUX0RFTEFZRURfV09SSygmd2wtPndv cmssIGludGVsX2Rpc3BsYXlfd2xfd29yayk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAg LyoNCj4gPiA+ID4gKyAgICAgICAgICogRW5hYmxlIHdha2Vsb2NrIGluIERNQy4gIFdlIHNob3Vs ZG4ndCB0cnkgdG8gdGFrZQ0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gKyAgICAgICAgICogd2FrZWxv Y2ssIGJlY2F1c2Ugd2UncmUganVzdCBlbmFibGluZyBpdCwgc28gY2FsbA0KPiA+ID4gPiB0aGUN Cj4gPiA+ID4gKyAgICAgICAgICogbm9uLWxvY2tpbmcgdmVyc2lvbiBkaXJlY3RseSBoZXJlLg0K PiA+ID4gPiArICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAgX19pbnRlbF9kZV9ybXcoaTkx NSwgRE1DX1dBS0VMT0NLX0NGRywgMCwNCj4gPiA+ID4gRE1DX1dBS0VMT0NLX0NGR19FTkFCTEUp Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIGRybV9pbmZvKCZpOTE1LT5kcm0sICJETUNf V0FLRUxPQ0tfQ0ZHIHJlYWQgMHglMHhcbiIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgIGlu dGVsX2RlX3JlYWQoaTkxNSwgRE1DX1dBS0VMT0NLX0NGRykpOw0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgICAgIHdsLT5lbmFibGVkID0gdHJ1ZTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArb3V0X3Vu bG9jazoNCj4gPiA+ID4gKyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPmxvY2ss IGZsYWdzKTsNCj4gPiA+ID4gKyAgICAgICAgcmV0dXJuOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiAr DQo+ID4gPiA+ICt2b2lkIGludGVsX2Rpc3BsYXlfd2xfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1LA0KPiA+ID4gPiBpOTE1X3JlZ190IHJlZykNCj4gPiA+ID4gK3sNCj4gPiA+ID4g KyAgICAgICAgc3RydWN0IGludGVsX2Rpc3BsYXlfd2wgKndsID0gJmk5MTUtPmRpc3BsYXkud2w7 DQo+ID4gPiA+ICsgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gPiA+ICsgICAgICAg IHUzMiBjdGxfdmFsdWU7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgaWYgKCFpbnRlbF9k aXNwbGF5X3dsX2NoZWNrX3JhbmdlKHJlZy5yZWcpKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAg IHJldHVybjsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm d2wtPmxvY2ssIGZsYWdzKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBpZiAoIXdsLT5l bmFibGVkKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArICAgICAgICBpZiAocmVmY291bnRfaW5jX25vdF96ZXJvKCZ3bC0+cmVm Y291bnQpKSB7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgZHJtX2luZm8oJmk5MTUtPmRybSwN Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAiRE1DX1dBS0VMT0NLMV9DVEwgcmVm Y291bnQgaXMgbm93ICVkDQo+ID4gPiA+IC0tIHdha2Vsb2NrIGFscmVhZHkgdGFrZW5cbiIsDQo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgcmVmY291bnRfcmVhZCgmd2wtPnJlZmNv dW50KSk7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPiA+ID4g PiArICAgICAgICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgcmVmY291bnRfc2V0KCZ3 bC0+cmVmY291bnQsIDEpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIGRybV9pbmZvKCZp OTE1LT5kcm0sICJETUNfV0FLRUxPQ0sxX0NUTCByZWZjb3VudCBpcw0KPiA+ID4gPiBub3cgJWRc biIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgIHJlZmNvdW50X3JlYWQoJndsLT5yZWZjb3Vu dCkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgIC8qIFRPRE86IHNwbGl0IHRoaXMgdG8g YSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBhbGlnbg0KPiA+ID4gPiB3aXRoIF9yZWxlYXNlKCkgKi8N Cj4gPiA+ID4gKyAgICAgICAgY3RsX3ZhbHVlID0gX19pbnRlbF9kZV9ybXcoaTkxNSwgRE1DX1dB S0VMT0NLMV9DVEwsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAsDQo+ID4gPiA+IERNQ19XQUtFTE9DS19DRkdfRU5BQkxFKTsNCj4gPiANCj4gPiBzL0RNQ19X QUtFTE9DS19DRkdfRU5BQkxFL0RNQ19XQUtFTE9DS19DVExfUkVRLz8NCg0KWWVwLiAgVGhlc2Ug Q0ZHIHZzIENUTCBtYWNyb3MgbG9vayB0b28gc2ltaWxhciwgbWF5YmUgSSBzaG91bGQgcmVuYW1l DQpvbmUgb2YgdGhlbSBmb3IgY2xhcml0eSwgZHVubm8uDQoNCg0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgICAgIGRybV9pbmZvKCZpOTE1LT5kcm0sICJETUNfV0FLRUxPQ0sxX0NUTCAweCUweA0K PiA+ID4gPiBiZWZvcmVcbiIsIGN0bF92YWx1ZSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAg ICAgZHJtX2luZm8oJmk5MTUtPmRybSwgIkRNQ19XQUtFTE9DSzFfQ1RMIHJlYWQgMHglMHgNCj4g PiA+ID4gaW1tZWRpYXRlbHkgYWZ0ZXJcbiIsDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgIGlu dGVsX2RlX3JlYWQoaTkxNSwgRE1DX1dBS0VMT0NLMV9DVEwpKTsNCj4gPiA+ID4gKw0KPiA+ID4g PiArICAgICAgICB1ZGVsYXkoMTAwKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBkcm1f aW5mbygmaTkxNS0+ZHJtLCAiRE1DX1dBS0VMT0NLMV9DVEwgcmVhZCAweCUweA0KPiA+ID4gPiBh ZnRlciBkZWxheVxuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgaW50ZWxfZGVfcmVhZChp OTE1LCBETUNfV0FLRUxPQ0sxX0NUTCkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICtvdXRfdW5sb2Nr Og0KPiA+ID4gPiArICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3bC0+bG9jaywgZmxh Z3MpOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICt2b2lkIGludGVsX2Rpc3BsYXlf d2xfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LA0KPiA+ID4gPiBpOTE1X3JlZ190 IHJlZykNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAgICAgICAgc3RydWN0IGludGVsX2Rpc3BsYXlf d2wgKndsID0gJmk5MTUtPmRpc3BsYXkud2w7DQo+ID4gPiA+ICsgICAgICAgIHVuc2lnbmVkIGxv bmcgZmxhZ3M7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgaWYgKCFpbnRlbF9kaXNwbGF5 X3dsX2NoZWNrX3JhbmdlKHJlZy5yZWcpKQ0KPiA+ID4gPiArICAgICAgICAgICAgICAgIHJldHVy bjsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmd2wtPmxv Y2ssIGZsYWdzKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICBpZiAoIXdsLT5lbmFibGVk IHx8ICFyZWZjb3VudF9yZWFkKCZ3bC0+cmVmY291bnQpKQ0KPiA+IA0KPiA+IFNob3VsZG4ndCB3 ZSB3YXJuIGlmIHdsLT5yZWZjb3VudCBpcyB6ZXJvPw0KDQpUaGUgcmVmY291bnQgY29kZSBpdHNl bGYgaXNzdWVzIHdhcm5pbmdzIGluIGNhc2Ugc29tZXRoaW5nIGlzIHdyb25nDQpsaWtlIHRoaXMu ICBJIHRoaW5rIHRoYXQncyBvbmUgb2YgdGhlIG1haW4gcmVhc29ucyB3aHkgdGhlIHJlZmNvdW50 DQppbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgdXNlZC4gIEJ1dCBJJ2xsIGRvdWJsZS1jaGVjayBh bGwgdGhlc2UNCnJlZmNvdW50aW5nIHN0dWZmLg0KDQoNCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICBnb3RvIG91dF91bmxvY2s7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICAgaWYgKHJlZmNv dW50X2RlY19hbmRfdGVzdCgmd2wtPnJlZmNvdW50KSkgew0KPiA+ID4gPiArICAgICAgICAgICAg ICAgIGRybV9pbmZvKCZpOTE1LT5kcm0sDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgIkRNQ19XQUtFTE9DSzFfQ1RMIHJlZmNvdW50IGlzIG5vdw0KPiA+ID4gPiBaRVJPXG4iKTsN Cj4gPiA+ID4gKw0KPiA+ID4gPiArICAgICAgICAgICAgICAgIF9faW50ZWxfZGlzcGxheV93bF9y ZWxlYXNlKGk5MTUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgZ290byBv dXRfdW5sb2NrOw0KPiA+ID4gPiArICAgICAgICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAg ICAgZHJtX2luZm8oJmk5MTUtPmRybSwgIkRNQ19XQUtFTE9DSzFfQ1RMIHJlZmNvdW50IGlzDQo+ ID4gPiA+IG5vdyAlZFxuIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgcmVmY291bnRfcmVh ZCgmd2wtPnJlZmNvdW50KSk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gK291dF91bmxvY2s6DQo+ID4g PiA+ICsgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndsLT5sb2NrLCBmbGFncyk7DQo+ ID4gPiA+ICt9DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3dha2Vsb2NrLmgNCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3dha2Vsb2NrLmgNCj4gPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+ ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5hNDcyMDVlMWVhMzINCj4gPiA+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3dha2Vs b2NrLmgNCj4gPiA+ID4gQEAgLTAsMCArMSwzNCBAQA0KPiA+ID4gPiArLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1JVCAqLw0KPiA+ID4gPiArLyoNCj4gPiA+ID4gKyAqIENvcHlyaWdodCAo QykgMjAyMyBJbnRlbCBDb3Jwb3JhdGlvbg0KPiA+ID4gPiArICovDQo+ID4gPiA+ICsNCj4gPiA+ ID4gKyNpZm5kZWYgX19JTlRFTF9XQUtFTE9DS19IX18NCj4gPiA+ID4gKyNkZWZpbmUgX19JTlRF TF9XQUtFTE9DS19IX18NCj4gPiA+ID4gKw0KPiA+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+DQo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+DQo+ID4gPiA+ICsjaW5j bHVkZSA8bGludXgvcmVmY291bnQuaD4NCj4gPiA+ID4gKw0KPiA+ID4gPiArI2luY2x1ZGUgImk5 MTVfcmVnX2RlZnMuaCINCj4gPiA+ID4gKw0KPiA+ID4gPiArc3RydWN0IGRybV9pOTE1X3ByaXZh dGU7DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0cnVjdCBpbnRlbF9kaXNwbGF5X3dsIHsNCj4gPiA+ ID4gKyAgICAgICAgc3BpbmxvY2tfdCBsb2NrOw0KPiA+ID4gPiArICAgICAgICBib29sIGVuYWJs ZWQ7DQo+ID4gPiA+ICsgICAgICAgIHJlZmNvdW50X3QgcmVmY291bnQ7DQo+ID4gPiA+ICsgICAg ICAgIHN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsNCj4gPiA+ID4gK307DQo+ID4gPiA+ICsNCj4g PiA+ID4gK3N0cnVjdCBpbnRlbF9kaXNwbGF5X3dsX3JhbmdlIHsNCj4gPiA+ID4gKyAgICAgICAg dTMyIHN0YXJ0Ow0KPiA+ID4gPiArICAgICAgICB1MzIgZW5kOw0KPiA+ID4gPiArfTsNCj4gPiA+ ID4gKw0KPiA+ID4gPiArdm9pZCBpbnRlbF9kaXNwbGF5X3dsX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpOw0KPiA+ID4gPiArdm9pZCBpbnRlbF9kaXNwbGF5X3dsX2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7DQo+ID4gPiA+ICt2b2lkIGludGVsX2Rpc3Bs YXlfd2xfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LA0KPiA+ID4gPiBpOTE1X3Jl Z190IHJlZyk7DQo+ID4gPiA+ICt2b2lkIGludGVsX2Rpc3BsYXlfd2xfcHV0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LA0KPiA+ID4gPiBpOTE1X3JlZ190IHJlZyk7DQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyNlbmRpZiAvKiBfX0lOVEVMX1dBS0VMT0NLX0hfXyAqLw0KPiA+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL01ha2VmaWxlDQo+ID4gPiA+IGIvZHJpdmVycy9n cHUvZHJtL3hlL01ha2VmaWxlDQo+ID4gPiA+IGluZGV4IDAyOTJiNzk4NTJhMC4uMzg3ZWNjYWIy OGFlIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUNCj4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL01ha2VmaWxlDQo+ID4gPiA+IEBAIC0yNzks NiArMjc5LDcgQEAgeGUtJChDT05GSUdfRFJNX1hFX0RJU1BMQVkpICs9IFwNCj4gPiA+ID4gICAg ICAgICBpOTE1LWRpc3BsYXkvaW50ZWxfdmRzYy5vIFwNCj4gPiA+ID4gICAgICAgICBpOTE1LWRp c3BsYXkvaW50ZWxfdmdhLm8gXA0KPiA+ID4gPiAgICAgICAgIGk5MTUtZGlzcGxheS9pbnRlbF92 cnIubyBcDQo+ID4gPiA+ICsgICAgICAgIGk5MTUtZGlzcGxheS9pbnRlbF93YWtlbG9jay5vIFwN Cj4gPiA+ID4gICAgICAgICBpOTE1LWRpc3BsYXkvaW50ZWxfd20ubyBcDQo+ID4gPiA+ICAgICAg ICAgaTkxNS1kaXNwbGF5L3NrbF9zY2FsZXIubyBcDQo+ID4gPiA+ICAgICAgICAgaTkxNS1kaXNw bGF5L3NrbF91bml2ZXJzYWxfcGxhbmUubyBcDQo+ID4gPiA+IC0tIA0KPiA+ID4gPiAyLjM5LjIN Cj4gPiA+ID4gDQoNClRoYW5rcyENCg0KLS0NCkNoZWVycywNCkx1Y2EuDQo=