From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id CB0B445301 for ; Tue, 21 Mar 2023 04:00:21 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 32AEC68C613; Tue, 21 Mar 2023 06:00:19 +0200 (EET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7971068C56C for ; Tue, 21 Mar 2023 06:00:09 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679371216; x=1710907216; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=4ilZEE5rzEX8+ynNer0eVNYBE/2QQI8nf19EwJXiwZg=; b=ktJbBc+jupddfr8IB2rlosD4qjua0QalFSfyFpjJoSq76neGmciyx+MD OOdM3XAgJw/6UxMSG9jIViaW9d9Bc/nXfs+NK3BlDWaECmkuDXUD5yKNr 729GmCbGiRhxpOD5rT6s6TGCj8mIIG7LqL1t52jNLcxcXMZ5QsDeUlGAS n6vrLtTiM5WthSj6779VBX1zTEDBGAoPiP78MKPsE1HAixpdFO9xLesDz GgM5rLd3GuC0Je5dbBiuDLvZg1xGIIe1GQId2PqN+gI61cHJFJ+agPc3P znjiwd5JgtEsrBdTG62dY1V6M1mQQfMIK+FuG9jFFgSJLgcOhALRur4xr A==; X-IronPort-AV: E=McAfee;i="6600,9927,10655"; a="319237189" X-IronPort-AV: E=Sophos;i="5.98,277,1673942400"; d="scan'208";a="319237189" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Mar 2023 21:00:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10655"; a="658627984" X-IronPort-AV: E=Sophos;i="5.98,277,1673942400"; d="scan'208";a="658627984" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga006.jf.intel.com with ESMTP; 20 Mar 2023 21:00:04 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) 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.21; Mon, 20 Mar 2023 21:00:04 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.21 via Frontend Transport; Mon, 20 Mar 2023 21:00:04 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.46) 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.21; Mon, 20 Mar 2023 21:00:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=glkHgh3TdcBWrfYk/WD6PhycQhB0cQcEWtBjjMW45zwmIgte7f2UZweahFvhsQ35PS5HhK3MmLmiSUJwFWBKaUFOecM301sBBTwSmFVJOK5xzOD54KRoJyaSYW5HiOJYVP/x4Vga5mN1WnA5NvolqznOI4a/lbmPsxW9fZLtfF2MHEGe3+hvM81WKBrQaAmSHzZHtDdXy45sgU7vRD10NLnfJRCYkX/c6EwNmfaK/SbCzmw1J4HeKVzM3KIoa/m16WK7gzLv6Bc1zzDA6z9B9/GPHcLhyU9+RfF19KrhrkcoyDNAtz5iTQ3vfPK8YTH2ll6aQi0xRsB1zvlteRVYCA== 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=4ilZEE5rzEX8+ynNer0eVNYBE/2QQI8nf19EwJXiwZg=; b=df1fX2c9FziUd9/aQb0d9r8BEgSHngSx6/qW8uVg0JqTe6xfnfvQDHIahf5ynRwAbbo81cNAfaxwQi3jb6y0yGb3dxe33tW9R9HhCNbkCU8nCMBNllAdAHtNMw/pR+lMbV8tXf4etNuBWnsef0k7KhtFhhbiTBV0nLHqjBlcJMBBafuDgq9xCisUqO1J3lDgN0b6pUDwnTxzv55PiWVPZ3gK4r9SN3nJG96+nkX0LBaaM4ls0qmoRPaEtmZs0SeWF+d+KyMH3HmKz3HGLbY2UEWXitAVcABIe3rq3KFF5HoC/PwpZbCistTbRW3n5kaTyb8kIrRszaC3Zn8UYJLRng== 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 BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by DM4PR11MB7181.namprd11.prod.outlook.com (2603:10b6:8:113::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Tue, 21 Mar 2023 04:00:01 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::36ba:13c8:6a29:c7af]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::36ba:13c8:6a29:c7af%7]) with mapi id 15.20.6178.037; Tue, 21 Mar 2023 04:00:01 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] hwcontext_vaapi: Add support for vaGetDisplayWin32 initialization Thread-Index: AQHZQghjS4YBcJy21kq6jTlsjAmoTa8EzySA Date: Tue, 21 Mar 2023 04:00:00 +0000 Message-ID: References: <20230216131213.2326-1-sivileri@microsoft.com> In-Reply-To: <20230216131213.2326-1-sivileri@microsoft.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-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: BN9PR11MB5515:EE_|DM4PR11MB7181:EE_ x-ms-office365-filtering-correlation-id: 0515f821-0fe0-4a0a-8b87-08db29c0be57 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: JTsPQ1X9H7eGWhUMCxIhAecpcKH4iTfaETWICDE3saBRDjS5cqgjmcpQSTMlg4LEdiu0cmPwBMB2B4DeT7FsNoer+KasY0A4RVJde/9KabO9OKGaaOAal5IzYdXyY9AXetEZQKjQBV7nCgyj466Eql0RRkTYf9eVJeHiUHIhWjATgnkIVwMgvOaWj0kdO8mOZ2ZhCdfREx19g6TAqOuFgPRdqgnu6TQok5eQdzJGUxvQRCYtNibci/wgaDTyikPWWWU4fsih+NKCn1qwpdbdiasEgMdtGQNnOtc6XN61f+KiOApGqufVX8R1ki146ZV3FoQyE2deHQmD7kK1tgSSlnFnNEMd/QT2CJjeC/Lug1+/DWmch3ZFSGmB4BPa09J+o1Xxi0S99Qbj3WFiM8lOtAQCcaAt5gHaRY3TDXaelNWVznIeD1tGEjb60efwYTibXlHvkQZbMM4mLKU15xeEWO0AxVUG+JirTYQ2tzKoUupr1fVy1EcqFu/yEoyoIsSZdHIuQAnYsonUlWwwQadZVZ8EOoI5KKxRy/YwbRdAw4dTtPTYCRVFlIwfMOhb8FnZbmTIdRtajqaubwTgLQkh6WzwYn4nAw2b9hCUEIB83CN+UiD4E7vAbAZGn3JM25LkB7n2GxrF2wMK6RuOHH6CXvOmUDvdHHbsN1yo4/Ja6SsBx6m2TF3WQyOWoDcKcRAgTE0uMIokvP0yEpMTQ1RDqxgTYzWnSLY8jOQp1FZzyYk= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(396003)(136003)(376002)(366004)(346002)(39860400002)(451199018)(86362001)(36756003)(71200400001)(83380400001)(66556008)(64756008)(316002)(6916009)(45080400002)(91956017)(76116006)(66946007)(478600001)(66446008)(8676002)(66476007)(186003)(6512007)(26005)(6506007)(2616005)(966005)(6486002)(38100700002)(38070700005)(8936002)(30864003)(5660300002)(41300700001)(2906002)(82960400001)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QmxwczF1YkNkUEc1TXpqYmJIdW93UkR3U1VDNVhLRGFMeGZuQy9GWUw4Y0ZX?= =?utf-8?B?aExIVlZhSFBJMTZ2MExWcWlBRUFEQ1Z2akpqYk8yNnNVc0oxSzdSY0dwZDZD?= =?utf-8?B?TTRHTi84UVcwWXZlTHhsQ3dLSDQ1WkxJdHhETDVUVklydU8waVNLREQ3T0ls?= =?utf-8?B?djF0cWlMaXZvVmtJVmdQT0FxSjNJcytmUVJPTzkwbG4rOWU5ZFJHRTFMTVNh?= =?utf-8?B?WEdMVm5mR084MDQxNWRJQitCeEtNckVNRGxBTGVFalBadnZrb242ZUxwWVE4?= =?utf-8?B?MXRUMEM2RFc5cmFqZ0pvTGlHYzFOTW8vSTd0ZnhGK2NpSmxaUDIwYzNWZm5z?= =?utf-8?B?QXRKQy9rUHdJZUlqQWk0N0NRbUk0MTNZbGIwVDR5UnkyRGl2QVM0SkJrRFJO?= =?utf-8?B?NFpWU2xHWmlyWFo1K1VKUnEyUXM3c3huY0lzYzhCamx5L1ptTW1UcmtZNVE5?= =?utf-8?B?N0pvb2lGOE40STVJS0dRQUd4dVNpd0JvdFJqV2k4S2xpMWIycEpWWm5TbFc3?= =?utf-8?B?bjVaVDVOOXEraXFaRUFaMUY3bE1BaytRTmp3YXBhOUNqNGJiUXlOYlhYY2J1?= =?utf-8?B?YmhUMCthdjZZbFhscy9oVm9OZkVoV1NZbHphMllibVU2YlFFbkZuUUpUeWx5?= =?utf-8?B?Y0diYUFMeWYxajFmTW0wdzhKWUMyek1yWEE0T1Jwdys2aDc2M0RuNU1hOUVI?= =?utf-8?B?RWpZbkxKY0VpWVl4L1JsdDlqUE5UWFBBSHFZa2ovcDN3cTZmV1VDMVhiNlZL?= =?utf-8?B?NW5BL3ZVa2N6b1BlbUtudEUxc1VtRll0dHVBdlZ6YVZSbUpZci9tL2JlQ0lx?= =?utf-8?B?d0lKTUxEUUxrclVLWUV2V3Z2OFFVZWx6T0VoM1JEMmxSQVhHeEFsb2N1WXkw?= =?utf-8?B?WENLUU14K3lmT0hnMWRYTlAyWDA3STB2NG1yaXVkejZJKzZINXFERkdUbWNt?= =?utf-8?B?ZjVER0crK1ZMb2p6V1paVG10akkvd3pZdHZyejdLdE4weFRINkhQbjBnYXlG?= =?utf-8?B?SDNYc1ZoWnN6bW1xMW1FcmNGL1BpaitmRkxQYkc5WVlVVWhoeDF1Z1Vzd3JE?= =?utf-8?B?bFBSLzRDZUpDTmtpczBERGpTS3hoei95RlZGdWNTczREeW04UVZQNGhqVDNh?= =?utf-8?B?a3RvbWRkOGlPZWhtVXd4QStXUGxFTWJUTHBwVFhVUGxEcWdWaC9ZMnpTbHc4?= =?utf-8?B?UTFvZzhIYi82bGtwTnd1WmdJUFVtZXpkT1VZYlZTN3VMVEppdEhqNGtvV0xW?= =?utf-8?B?dm9wYmFaTUtjYjJTM0JUM3g2RS9nMDJVaHp1WGRCd2RFbjZxOWN1K3M5SU45?= =?utf-8?B?YWt0a3lUeEVSbkQ4cjFZT1c3d1JrZUJoVnlLT3hOcHJpUkpDRG4rbmhMNmtH?= =?utf-8?B?b3VOb2FaSk9va2lrSGcxcDU3R2FqcTYvWjBQZFVqbXMxbzZSV284MnNZMmJn?= =?utf-8?B?N2VxM0lNSjkydWFmR1Z3emJEN0t0VWNaRERFTXd5M1JPV3dFY0Rja05JRjB1?= =?utf-8?B?aFJVb3lLaTA0cDFTYmc3bE9QL1Y4cVdzRWZUcW03eEo0L1BRUmNBSHdWeGlG?= =?utf-8?B?Wm1Ba3RNdGZlajl4dDcvSzdsOVdVcXJBb0tvNmhnV2ZnZFluN1ZKZk82RlZX?= =?utf-8?B?MW5TUG5kQlY1eEFMRXhNakFrUVRWN1IxdGdYZTllL0lZenR3NTZzMHRwcm5u?= =?utf-8?B?V09ZYkdHUzJKL1dXbmptWGRTN1I4SDYrZEJEVG9rcnFST2tFREVIeHN5VmhZ?= =?utf-8?B?NTNnL1BGUUE3NUFjMi9Gb1RUdUNUd2VkS3RuaTU1UUtIVW1kKy9uajFRMmVu?= =?utf-8?B?b25ZN2ZobEQ2ZWltVVIwTWZKM1ZNSU90NVF1SHNjSEhYcFRHOTl5UEJnUi9I?= =?utf-8?B?MXRPNGhvWTM5Z1hGVEhnelZHbUdRSTZDWXJGM0t2NnZwNlhRc01wT3R0V3gx?= =?utf-8?B?c1NEVUR1ckF0aXByc1J0TGhEYXcxcHRaMXY1OUNraHF0WTRZaWsvb2RyaVQ2?= =?utf-8?B?SU1zaXM0dWxDR0dYQTdsd0RFY0YxL3VRSkdIdWNvTHE4a05XYXJEQW5BRWZp?= =?utf-8?B?emtoaXRqZzRVVVJKRmV3a1hPRDlaTzRZV1h4ZmpFZ3cwdEJVcC9wdk1wekpk?= =?utf-8?B?d1N0VDMraWlZZ0pvTWs3Slg1dzdRK2M2YWNRNXdSVGJFb2I5dGYzUW5GOVVx?= =?utf-8?B?bHc9PQ==?= Content-ID: <6B9865324A90FA4E9E0C163B31D4B334@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0515f821-0fe0-4a0a-8b87-08db29c0be57 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2023 04:00:00.6301 (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: Qvwuud0K7z0ZWQk64Ojp+l5llfTAlLzd8NnAucPZ8k3fr2mvmUylblCirnGPQPDQo/YpGaOwCSp5JFWy/gkwLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7181 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] hwcontext_vaapi: Add support for vaGetDisplayWin32 initialization X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gRG8sIDIwMjMtMDItMTYgYXQgMDg6MTIgLTA1MDAsIFNpbCBWaWxlcmlubyB3cm90ZToKPiBU aGVzZSBjaGFuZ2VzIGFkZCBzdXBwb3J0IGZvciBWQUFQSSBvbiBXaW5kb3dzIGluIGh3Y29udGV4 dF92YWFwaQo+IHVzaW5nIHZhR2V0RGlzcGxheVdpbjMyLCBhbHNvIGFsbG93aW5nIGZvciBEaXJl Y3RYIGFkYXB0ZXIgaW5kZXgKPiBzZWxlY3Rpb24gdmlhIHRoZSAiLWRldmljZSIgY29tbWFuZCBs aW5lIGFyZ3VtZW50Lgo+IAo+IExpYnZhIDIuMTcrIGFkZHMgYSBuZXcgbGlidmEtd2luMzIgbm9k ZSBhbmQgTWVzYSAyMi4zIGFkZHMKPiBhIFZBQVBJIGRyaXZlciBiYXNlZCBvbiBEaXJlY3QzRCAx MiBmb3IgV2luZG93cywgYm90aCBhdmFpbGFibGUgYXQ6Cj4gaHR0cHM6Ly93d3cubnVnZXQub3Jn L3BhY2thZ2VzL01pY3Jvc29mdC5EaXJlY3QzRC5WaWRlb0FjY2VsZXJhdGlvbkNvbXBhdGliaWxp dHlQYWNrCj4gCj4gSW5pdGlhbCByZXZpZXcgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ludGVsLW1l ZGlhLWNpL2ZmbXBlZy9wdWxsLzYxOS8KPiAKPiBBZGRpdGlvbmFsIGNoYW5nZXMgd2VyZSBtYWRl IHRvIHRoZSBjaGFuZ2Vsb2cgYW5kIG1pbm9yIHZlcnNpb24gYnVtcAo+IGFzIHdlbGwgYXMgdG8g UVNWIHRvIG5vdCBicmVhayB3aXRoIHRoaXMgbmV3IGNoYW5nZToKPiAKPiAtIHFzdl9pbnRlcm5h bC5oOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVkZSB2YV9kcm0uaAo+IC0gcXN2X2ludGVybmFs Lmg6IEVuYWJsZSBBVkNPREVDX1FTVl9MSU5VWF9TRVNTSU9OX0hBTkRMRSBvbiBMaW51eC9WQSBv bmx5Cj4gLSBod2NvbnRleHRfcXN2LmM6IERvIG5vdCBhbGxvdyBjaGlsZF9kZXZpY2VfdHlwZSBW QUFQSSBmb3IgV2luZG93cwo+IMKgIHVudGlsIHN1cHBvcnQgaXMgYWRkZWQsIGtlZXAgRDNEMTEv RFhWQTIgYXMgbW9yZSBwcmlvcml0YXJ5IGRlZmF1bHRzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNp bCBWaWxlcmlubyA8c2l2aWxlcmlAbWljcm9zb2Z0LmNvbT4KPiBSZXZpZXdlZC1ieTogRG1pdHJ5 IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTog V3UsIFRvbmcxIDx0b25nMS53dUBpbnRlbC5jb20+Cj4gLS0tCj4gwqBDaGFuZ2Vsb2fCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPiDCoGNvbmZpZ3VyZcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDI3ICsrKysrKysrKysrKy0KPiDCoGZm dG9vbHMvZmZtcGVnX29wdC5jwqDCoMKgwqDCoMKgwqAgfMKgIDIgKy0KPiDCoGxpYmF2Y29kZWMv cXN2X2ludGVybmFsLmjCoMKgIHzCoCA1ICstLQo+IMKgbGliYXZ1dGlsL2h3Y29udGV4dF9xc3Yu Y8KgwqAgfCAxNCArKysrKystCj4gwqBsaWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMgfCA3NSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gwqBsaWJhdnV0aWwvdGVzdHMv aHdkZXZpY2UuY8KgIHzCoCAyICstCj4gwqBsaWJhdnV0aWwvdmVyc2lvbi5owqDCoMKgwqDCoMKg wqDCoCB8wqAgMiArLQo+IMKgOCBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgMTIg ZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0NoYW5nZWxvZyBiL0NoYW5nZWxvZwo+IGlu ZGV4IDA2NDRmMzlkNTkuLjkyNDhhMDcwNDMgMTAwNjQ0Cj4gLS0tIGEvQ2hhbmdlbG9nCj4gKysr IGIvQ2hhbmdlbG9nCj4gQEAgLTQ0LDcgKzQ0LDcgQEAgdmVyc2lvbiA8bmV4dD46Cj4gwqAtIFJL QSBkZWNvZGVyIGFuZCBkZW11eGVyCj4gwqAtIGZpbHRlcmdyYXBoIHN5bnRheCBpbiBmZm1wZWcg Q0xJIG5vdyBzdXBwb3J0cyBwYXNzaW5nIGZpbGUgY29udGVudHMKPiDCoMKgIGFzIG9wdGlvbiB2 YWx1ZXMsIGJ5IHByZWZpeGluZyBvcHRpb24gbmFtZSB3aXRoICcvJwo+IC0tIGhzdGFja19xc3Ys IHZzdGFja19xc3YgYW5kIHhzdGFja19xc3YgZmlsdGVycwo+ICstIEV4dGVuZCBWQUFQSSBzdXBw b3J0IGZvciBsaWJ2YS13aW4zMiBvbiBXaW5kb3dzCj4gwqAKCllvdSBzaG91bGQgbm90IHJlbW92 ZSB0aGUgbGFzdCBsaW5lLiBCVFcgcGxlYXNlIGRvY3VtZW50IHlvdXIgY2hhbmdlIGluIHZlcnNp b24KPG5leHQ+IG5vdy4gCgo+IMKgCj4gwqB2ZXJzaW9uIDUuMToKPiBkaWZmIC0tZ2l0IGEvY29u ZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggYmY4YWUxYzc4OS4uMDFmZTAzNzhmMyAxMDA3NTUK PiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1cmUKPiBAQCAtMjMxNCw2ICsyMzE0LDcg QEAgU1lTVEVNX0xJQlJBUklFUz0iCj4gwqDCoMKgwqAgYmNyeXB0Cj4gwqDCoMKgwqAgdmFhcGlf ZHJtCj4gwqDCoMKgwqAgdmFhcGlfeDExCj4gK8KgwqDCoCB2YWFwaV93aW4zMgo+IMKgwqDCoMKg IHZkcGF1X3gxMQo+IMKgIgo+IMKgCj4gQEAgLTM4MjgsNyArMzgyOSw3IEBAIHN3c2NhbGVfc3Vn Z2VzdD0ibGlibSBzdGRhdG9taWMiCj4gwqAKPiDCoGF2Y29kZWNfZXh0cmFsaWJzPSJwdGhyZWFk c19leHRyYWxpYnMgaWNvbnZfZXh0cmFsaWJzIGR4dmEyX2V4dHJhbGlicwo+IGxjbXMyX2V4dHJh bGlicyIKPiDCoGF2ZmlsdGVyX2V4dHJhbGlicz0icHRocmVhZHNfZXh0cmFsaWJzIgo+IC1hdnV0 aWxfZXh0cmFsaWJzPSJkM2QxMXZhX2V4dHJhbGlicyBuYW5vc2xlZXBfZXh0cmFsaWJzIHB0aHJl YWRzX2V4dHJhbGlicwo+IHZhYXBpX2RybV9leHRyYWxpYnMgdmFhcGlfeDExX2V4dHJhbGlicyB2 ZHBhdV94MTFfZXh0cmFsaWJzIgo+ICthdnV0aWxfZXh0cmFsaWJzPSJkM2QxMXZhX2V4dHJhbGli cyBuYW5vc2xlZXBfZXh0cmFsaWJzIHB0aHJlYWRzX2V4dHJhbGlicwo+IHZhYXBpX2RybV9leHRy YWxpYnMgdmFhcGlfeDExX2V4dHJhbGlicyB2YWFwaV93aW4zMl9leHRyYWxpYnMKPiB2ZHBhdV94 MTFfZXh0cmFsaWJzIgo+IMKgCj4gwqAjIHByb2dyYW1zCj4gwqBmZm1wZWdfZGVwcz0iYXZjb2Rl YyBhdmZpbHRlciBhdmZvcm1hdCB0aHJlYWRzIgo+IEBAIC02OTQ1LDYgKzY5NDYsMjEgQEAgdGVz dF9jcHAgPDxFT0YgJiYgZW5hYmxlIHV3cCAmJiBkM2QxMXZhX2V4dHJhbGlicz0iLQo+IGxkeGdp IC1sZDNkMTEiCj4gwqAjZW5kaWYKPiDCoEVPRgo+IMKgCj4gKyMgdmFhcGlfd2luMzIgcmVxdWly ZXMgbGlua2luZyBkaXJlY3RseSB0byBkeGdpIGlmIG5vdCBidWlsZGluZyBmb3IKPiArIyB0aGUg ZGVza3RvcCBhcGkgcGFydGl0aW9uCj4gK3Rlc3RfY3BwIDw8RU9GICYmIGVuYWJsZSB1d3AgJiYg dmFhcGlfd2luMzJfZXh0cmFsaWJzPSItbGR4Z2kiCj4gKyNpZmRlZiBXSU5BUElfRkFNSUxZCj4g KyNpbmNsdWRlIDx3aW5hcGlmYW1pbHkuaD4KPiArI2lmIFdJTkFQSV9GQU1JTFlfUEFSVElUSU9O KFdJTkFQSV9QQVJUSVRJT05fREVTS1RPUCkKPiArI2Vycm9yIGRlc2t0b3AsIG5vdCB1d3AKPiAr I2Vsc2UKPiArLy8gV0lOQVBJX0ZBTUlMWV9BUFAsIFdJTkFQSV9GQU1JTFlfUEhPTkVfQVBQID0+ IFVXUAo+ICsjZW5kaWYKPiArI2Vsc2UKPiArI2Vycm9yIG5vIGZhbWlseSBzZXQKPiArI2VuZGlm Cj4gK0VPRgo+ICsKPiDCoCMgbWVkaWFmb3VuZGF0aW9uIHJlcXVpcmVzIGxpbmtpbmcgZGlyZWN0 bHkgdG8gbWZwbGF0IGlmIGJ1aWxkaW5nIGZvciB1d3AKPiB0YXJnZXQKPiDCoGVuYWJsZWQgdXdw ICYmIG1lZGlhZm91bmRhdGlvbl9leHRyYWxpYnM9Ii1sbWZwbGF0IC1sbWZ1dWlkIC1sb2xlMzIg LQo+IGxzdHJtaWlkcyIgfHwgbWVkaWFmb3VuZGF0aW9uX2V4dHJhbGlicz0iLWxtZnV1aWQgLWxv bGUzMiAtbHN0cm1paWRzIgo+IMKgCj4gQEAgLTY5NTUsNyArNjk3MSwxNCBAQCBlbmFibGVkIHZh YXBpICYmCj4gwqDCoMKgwqAgY2hlY2tfcGtnX2NvbmZpZyB2YWFwaSAibGlidmEgPj0gMC4zNS4w IiAidmEvdmEuaCIgdmFJbml0aWFsaXplCj4gwqAKPiDCoGlmIGVuYWJsZWQgdmFhcGk7IHRoZW4K PiAtwqDCoMKgIGNoZWNrX3BrZ19jb25maWcgdmFhcGlfZHJtICJsaWJ2YS1kcm0iICJ2YS92YV9k cm0uaCIgdmFHZXREaXNwbGF5RFJNCj4gK8KgwqDCoCBjYXNlICR0YXJnZXRfb3MgaW4KPiArwqDC oMKgwqDCoMKgwqAgbWluZ3czMip8bWluZ3c2NCp8d2luMzJ8d2luNjQpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY2hlY2tfcGtnX2NvbmZpZyB2YWFwaV93aW4zMiAibGlidmEtd2luMzIiICJ2 YS92YV93aW4zMi5oIgo+IHZhR2V0RGlzcGxheVdpbjMyCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgOzsKPiArwqDCoMKgwqDCoMKgwqAgKikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjaGVj a19wa2dfY29uZmlnIHZhYXBpX2RybSAibGlidmEtZHJtIiAidmEvdmFfZHJtLmgiCj4gdmFHZXRE aXNwbGF5RFJNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsKPiArwqDCoMKgIGVzYWMKPiDC oAo+IMKgwqDCoMKgIGlmIGVuYWJsZWQgeGxpYl94MTE7IHRoZW4KPiDCoMKgwqDCoMKgwqDCoMKg IGNoZWNrX3BrZ19jb25maWcgdmFhcGlfeDExICJsaWJ2YS14MTEiICJ2YS92YV94MTEuaCIgdmFH ZXREaXNwbGF5Cj4gZGlmZiAtLWdpdCBhL2ZmdG9vbHMvZmZtcGVnX29wdC5jIGIvZmZ0b29scy9m Zm1wZWdfb3B0LmMKPiBpbmRleCAwNTUyNzVkODEzLi4wNDNjZjUzOWE1IDEwMDY0NAo+IC0tLSBh L2ZmdG9vbHMvZmZtcGVnX29wdC5jCj4gKysrIGIvZmZ0b29scy9mZm1wZWdfb3B0LmMKPiBAQCAt MTc1OCw3ICsxNzU4LDcgQEAgY29uc3QgT3B0aW9uRGVmIG9wdGlvbnNbXSA9IHsKPiDCoAo+IMKg I2lmIENPTkZJR19WQUFQSQo+IMKgwqDCoMKgIHsgInZhYXBpX2RldmljZSIsIEhBU19BUkcgfCBP UFRfRVhQRVJULCB7IC5mdW5jX2FyZyA9IG9wdF92YWFwaV9kZXZpY2UgfSwKPiAtwqDCoMKgwqDC oMKgwqAgInNldCBWQUFQSSBoYXJkd2FyZSBkZXZpY2UgKERSTSBwYXRoIG9yIFgxMSBkaXNwbGF5 IG5hbWUpIiwgImRldmljZSIKPiB9LAo+ICvCoMKgwqDCoMKgwqDCoCAic2V0IFZBQVBJIGhhcmR3 YXJlIGRldmljZSAoRGlyZWN0WCBhZGFwdGVyIGluZGV4LCBEUk0gcGF0aCBvciBYMTEKPiBkaXNw bGF5IG5hbWUpIiwgImRldmljZSIgfSwKPiDCoCNlbmRpZgoKUGxlYXNlIHVwZGF0ZSB0aGUgZGVz Y3JpcHRpb24gYWJvdXQgZGV2aWNlIHVuZGVyIHZhYXBpIHNlY3Rpb24gaW4KZG9jL2ZmbXBlZy50 ZXhpLgoKCj4gwqAKPiDCoCNpZiBDT05GSUdfUVNWCj4gZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMv cXN2X2ludGVybmFsLmggYi9saWJhdmNvZGVjL3Fzdl9pbnRlcm5hbC5oCj4gaW5kZXggNTExOWVm NGRmZi4uZGY1ZTFlMDVjYSAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Fzdl9pbnRlcm5hbC5o Cj4gKysrIGIvbGliYXZjb2RlYy9xc3ZfaW50ZXJuYWwuaAo+IEBAIC0yMyw5ICsyMyw5IEBACj4g wqAKPiDCoCNpbmNsdWRlICJjb25maWcuaCIKPiDCoAo+IC0jaWYgQ09ORklHX1ZBQVBJCj4gKyNp ZiBDT05GSUdfVkFBUEkgJiYgIV9XSU4zMiAvLyBEbyBub3QgZW5hYmxlIGZvciBsaWJ2YS13aW4z MiBvbiBXaW5kb3dzCj4gwqAjZGVmaW5lIEFWQ09ERUNfUVNWX0xJTlVYX1NFU1NJT05fSEFORExF Cj4gLSNlbmRpZiAvL0NPTkZJR19WQUFQSQo+ICsjZW5kaWYgLy9DT05GSUdfVkFBUEkgJiYgIV9X SU4zMgo+IMKgCj4gwqAjaWZkZWYgQVZDT0RFQ19RU1ZfTElOVVhfU0VTU0lPTl9IQU5ETEUKPiDC oCNpbmNsdWRlIDxzdGRpby5oPgo+IEBAIC0zNSw3ICszNSw2IEBACj4gwqAjZW5kaWYKPiDCoCNp bmNsdWRlIDxmY250bC5oPgo+IMKgI2luY2x1ZGUgPHZhL3ZhLmg+Cj4gLSNpbmNsdWRlIDx2YS92 YV9kcm0uaD4KPiDCoCNpbmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmgiCj4gwqAj ZW5kaWYKPiDCoAo+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3Fzdi5jIGIvbGli YXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+IGluZGV4IDQyODUxZDRmZDUuLjE0ZmE4ZWVjODcgMTAw NjQ0Cj4gLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+ICsrKyBiL2xpYmF2dXRpbC9o d2NvbnRleHRfcXN2LmMKPiBAQCAtMjEyNiw4ICsyMTI2LDYgQEAgc3RhdGljIGludCBxc3ZfZGV2 aWNlX2NyZWF0ZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNoYXIgKmRldmljZSwK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXCIlc1wiLlxuIiwgZS0+ dmFsdWUpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUihFSU5WQUwp Owo+IMKgwqDCoMKgwqDCoMKgwqAgfQo+IC3CoMKgwqAgfSBlbHNlIGlmIChDT05GSUdfVkFBUEkp IHsKPiAtwqDCoMKgwqDCoMKgwqAgY2hpbGRfZGV2aWNlX3R5cGUgPSBBVl9IV0RFVklDRV9UWVBF X1ZBQVBJOwo+IMKgI2lmIFFTVl9PTkVWUEwKPiDCoMKgwqDCoCB9IGVsc2UgaWYgKENPTkZJR19E M0QxMVZBKSB7wqAgLy8gVXNlIEQzRDExIGJ5IGRlZmF1bHQgaWYgZDNkMTF2YSBpcwo+IGVuYWJs ZWQKPiDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xPR19WRVJCT1NFLAo+IEBAIC0y MTQ3LDExICsyMTQ1LDIzIEBAIHN0YXRpYyBpbnQgcXN2X2RldmljZV9jcmVhdGUoQVZIV0Rldmlj ZUNvbnRleHQgKmN0eCwKPiBjb25zdCBjaGFyICpkZXZpY2UsCj4gwqDCoMKgwqAgfSBlbHNlIGlm IChDT05GSUdfRDNEMTFWQSkgewo+IMKgwqDCoMKgwqDCoMKgwqAgY2hpbGRfZGV2aWNlX3R5cGUg PSBBVl9IV0RFVklDRV9UWVBFX0QzRDExVkE7Cj4gwqAjZW5kaWYKPiArwqDCoMKgIH0gZWxzZSBp ZiAoQ09ORklHX1ZBQVBJKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIGNoaWxkX2RldmljZV90eXBlID0g QVZfSFdERVZJQ0VfVFlQRV9WQUFQSTsKPiDCoMKgwqDCoCB9IGVsc2Ugewo+IMKgwqDCoMKgwqDC oMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiTm8gc3VwcG9ydGVkIGNoaWxkIGRldmlj ZSB0eXBlIGlzCj4gZW5hYmxlZFxuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJP UihFTk9TWVMpOwo+IMKgwqDCoMKgIH0KPiDCoAo+ICsjaWYgQ09ORklHX1ZBQVBJICYmIF9XSU4z Mgo+ICvCoMKgwqAgLyogQVZfSFdERVZJQ0VfVFlQRV9WQUFQSSBvbiBXaW5kb3dzL0xpYnZhLXdp bjMyIG5vdCBzdXBwb3J0ZWQgKi8KPiArwqDCoMKgIC8qIFJlamVjdCB1c2VyIHNwZWNpZmllZCBj aGlsZF9kZXZpY2VfdHlwZSBvciBDT05GSUdfVkFBUEkgb24gV2luZG93cyAqLwo+ICvCoMKgwqAg aWYgKGNoaWxkX2RldmljZV90eXBlID09IEFWX0hXREVWSUNFX1RZUEVfVkFBUEkpIHsKPiArwqDC oMKgwqDCoMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiVkFBUEkgY2hpbGQgZGV2aWNl IHR5cGUgbm90IHN1cHBvcnRlZCBmb3IKPiBvbmVWUEwgb24gV2luZG93cyIKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICJcIiVzXCIuXG4iLCBlLT52YWx1ZSk7Cj4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gK8KgwqDCoCB9Cj4gKyNlbmRpZgo+ICsK PiDCoMKgwqDCoCBjaGlsZF9kZXZpY2Vfb3B0cyA9IE5VTEw7Cj4gwqDCoMKgwqAgc3dpdGNoIChj aGlsZF9kZXZpY2VfdHlwZSkgewo+IMKgI2lmIENPTkZJR19WQUFQSQo+IGRpZmYgLS1naXQgYS9s aWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMgYi9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMK PiBpbmRleCA5MzhiZDU0NDdkLi44ZGEyZjMxOTZjIDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC9o d2NvbnRleHRfdmFhcGkuYwo+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdmFhcGkuYwo+IEBA IC0xOCw2ICsxOCwxNSBAQAo+IMKgCj4gwqAjaW5jbHVkZSAiY29uZmlnLmgiCj4gwqAKPiArI2lm IEhBVkVfVkFBUElfV0lOMzIKPiArI8KgwqAgaW5jbHVkZSA8d2luZG93cy5oPgo+ICsjZGVmaW5l IENPQkpNQUNST1MKPiArI8KgwqAgaW5jbHVkZSA8aW5pdGd1aWQuaD4KPiArI8KgwqAgaW5jbHVk ZSA8ZHhnaTFfMi5oPgo+ICsjwqDCoCBpbmNsdWRlICJjb21wYXQvdzMyZGxmY24uaCIKPiArI8Kg wqAgaW5jbHVkZSA8dmEvdmFfd2luMzIuaD4KPiArdHlwZWRlZiBIUkVTVUxUIChXSU5BUEkgKlBG Tl9DUkVBVEVfRFhHSV9GQUNUT1JZKShSRUZJSUQgcmlpZCwgdm9pZAo+ICoqcHBGYWN0b3J5KTsK PiArI2VuZGlmCj4gwqAjaWYgSEFWRV9WQUFQSV9YMTEKPiDCoCPCoMKgIGluY2x1ZGUgPHZhL3Zh X3gxMS5oPgo+IMKgI2VuZGlmCj4gQEAgLTE2NTQsNyArMTY2Myw3IEBAIHN0YXRpYyBpbnQgdmFh cGlfZGV2aWNlX2NyZWF0ZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNoYXIgKmRl dmljZSwKPiDCoMKgwqDCoCBWQUFQSURldmljZVByaXYgKnByaXY7Cj4gwqDCoMKgwqAgVkFEaXNw bGF5IGRpc3BsYXkgPSBOVUxMOwo+IMKgwqDCoMKgIGNvbnN0IEFWRGljdGlvbmFyeUVudHJ5ICpl bnQ7Cj4gLcKgwqDCoCBpbnQgdHJ5X2RybSwgdHJ5X3gxMSwgdHJ5X2FsbDsKPiArwqDCoMKgIGlu dCB0cnlfZHJtLCB0cnlfeDExLCB0cnlfd2luMzIsIHRyeV9hbGw7Cj4gwqAKPiDCoMKgwqDCoCBw cml2ID0gYXZfbWFsbG9jeihzaXplb2YoKnByaXYpKTsKPiDCoMKgwqDCoCBpZiAoIXByaXYpCj4g QEAgLTE2NzIsNiArMTY4MSw4IEBAIHN0YXRpYyBpbnQgdmFhcGlfZGV2aWNlX2NyZWF0ZShBVkhX RGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNoYXIgKmRldmljZSwKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdHJ5X2RybSA9IDE7Cj4gwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKCFz dHJjbXAoZW50LT52YWx1ZSwgIngxMSIpKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRy eV94MTEgPSAxOwo+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKCFzdHJjbXAoZW50LT52YWx1 ZSwgIndpbjMyIikpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnlfd2luMzIgPSAxOwo+ IMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZf bG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiSW52YWxpZCBjb25uZWN0aW9uIHR5cGUgJXMuXG4iLAo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVudC0+dmFsdWUpOwo+IEBA IC0xNjgxLDYgKzE2OTIsNyBAQCBzdGF0aWMgaW50IHZhYXBpX2RldmljZV9jcmVhdGUoQVZIV0Rl dmljZUNvbnRleHQgKmN0eCwKPiBjb25zdCBjaGFyICpkZXZpY2UsCj4gwqDCoMKgwqDCoMKgwqDC oCB0cnlfYWxsID0gMTsKPiDCoMKgwqDCoMKgwqDCoMKgIHRyeV9kcm0gPSBIQVZFX1ZBQVBJX0RS TTsKPiDCoMKgwqDCoMKgwqDCoMKgIHRyeV94MTEgPSBIQVZFX1ZBQVBJX1gxMTsKPiArwqDCoMKg wqDCoMKgwqAgdHJ5X3dpbjMyID0gSEFWRV9WQUFQSV9XSU4zMjsKPiDCoMKgwqDCoCB9Cj4gwqAK PiDCoCNpZiBIQVZFX1ZBQVBJX0RSTQo+IEBAIC0xNzg4LDYgKzE4MDAsNjcgQEAgc3RhdGljIGlu dCB2YWFwaV9kZXZpY2VfY3JlYXRlKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsCj4gY29uc3QgY2hh ciAqZGV2aWNlLAo+IMKgwqDCoMKgIH0KPiDCoCNlbmRpZgo+IMKgCj4gKyNpZiBIQVZFX1ZBQVBJ X1dJTjMyCj4gK8KgwqDCoCBpZiAoIWRpc3BsYXkgJiYgdHJ5X3dpbjMyKSB7Cj4gK8KgwqDCoMKg wqDCoMKgIC8vIFRyeSB0byBjcmVhdGUgYSBkaXNwbGF5IGZyb20gdGhlIHNwZWNpZmllZCBkZXZp Y2UsIGlmIGFueS4KPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFkZXZpY2UpIHsKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBkaXNwbGF5ID0gdmFHZXREaXNwbGF5V2luMzIoTlVMTCk7Cj4gK8KgwqDC oMKgwqDCoMKgIH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSURYR0lGYWN0b3J5 MiAqcERYR0lGYWN0b3J5ID0gTlVMTDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJRFhHSUFk YXB0ZXIgKnBBZGFwdGVyID0gTlVMTDsKPiArI2lmICFIQVZFX1VXUAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEhBTkRMRSBkeGdpID0gZGxvcGVuKCJkeGdpLmRsbCIsIDApOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmICghZHhnaSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGxvYWQgZHhnaS5kbGxc biIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfVU5L Tk9XTjsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgUEZOX0NSRUFURV9EWEdJX0ZBQ1RPUlkgcGZuQ3JlYXRlRFhHSUZhY3RvcnkgPQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKFBGTl9DUkVBVEVfRFhHSV9GQUNUT1JZKWRsc3lt KGR4Z2ksICJDcmVhdGVEWEdJRmFjdG9yeSIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlm ICghcGZuQ3JlYXRlRFhHSUZhY3RvcnkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkNyZWF0ZURYR0lGYWN0b3J5IGxvYWQgZmFp bGVkXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9S X1VOS05PV047CgpkeGdpIGlzIG5vdCBjbG9zZWQgaW4gdGhlIGVycm9yIHBhdGguIAoKVGhhbmtz CkhhaWhhbwoKCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICsjZWxzZQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIC8vIEluIFVXUCAod2hpY2ggbGFja3MgTG9hZExpYnJhcnkpLCBDcmVh dGVEWEdJRmFjdG9yeSBpc24ndAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGF2YWlsYWJs ZSwgb25seSBDcmVhdGVEWEdJRmFjdG9yeTEKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBQRk5f Q1JFQVRFX0RYR0lfRkFDVE9SWSBwZm5DcmVhdGVEWEdJRmFjdG9yeSA9Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoUEZOX0NSRUFURV9EWEdJX0ZBQ1RPUlkpQ3JlYXRlRFhHSUZh Y3RvcnkxOwo+ICsjZW5kaWYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoU1VDQ0VFREVE KHBmbkNyZWF0ZURYR0lGYWN0b3J5KCZJSURfSURYR0lGYWN0b3J5MiwKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICh2b2lkICoqKSZwRFhHSUZhY3RvcnkpKSkgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGFkYXB0ZXIgPSBhdG9pKGRldmljZSk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoU1VDQ0VFREVEKElEWEdJRmFjdG9y eTJfRW51bUFkYXB0ZXJzKHBEWEdJRmFjdG9yeSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhZGFwdGVyLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZwQWRhcHRlcikpKSB7 Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERYR0lfQURBUFRFUl9E RVNDIGRlc2M7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChT VUNDRUVERUQoSURYR0lBZGFwdGVyMl9HZXREZXNjKHBBZGFwdGVyLCAmZGVzYykpKSB7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9nKGN0eCwg QVZfTE9HX0lORk8sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIlVzaW5nIGRldmljZSAlMDR4OiUwNHggKCVscykgLSBMVUlEICVs dQo+ICVsZC5cbiIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZGVzYy5WZW5kb3JJZCwgZGVzYy5EZXZpY2VJZCwgZGVzYy5EZXNj cmlwdGlvbiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBkZXNjLkFkYXB0ZXJMdWlkLkxvd1BhcnQsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzYy5BZGFwdGVy THVpZC5IaWdoUGFydCk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZGlzcGxheSA9IHZhR2V0RGlzcGxheVdpbjMyKCZkZXNjLkFkYXB0ZXJMdWlkKTsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJRFhHSUFkYXB0ZXJfUmVsZWFzZShwQWRhcHRl cik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBJRFhHSUZhY3RvcnkyX1JlbGVhc2UocERYR0lGYWN0b3J5KTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gKyNpZiAhSEFWRV9VV1AKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkbGNsb3NlKGR4Z2kpOwo+ICsjZW5kaWYKPiArwqDCoMKgwqDCoMKgwqAgfQo+ ICsKPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFkaXNwbGF5KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiQ2Fubm90IG9wZW4gYSBWQSBkaXNwbGF5 ICIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImZyb20gV2luMzIg ZGlzcGxheS5cbiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SX1VO S05PV047Cj4gK8KgwqDCoMKgwqDCoMKgIH0KPiArCj4gK8KgwqDCoMKgwqDCoMKgIGF2X2xvZyhj dHgsIEFWX0xPR19WRVJCT1NFLCAiT3BlbmVkIFZBIGRpc3BsYXkgdmlhICIKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICJXaW4zMiBkaXNwbGF5LlxuIik7Cj4gK8KgwqDCoCB9Cj4g KyNlbmRpZgo+ICsKPiDCoMKgwqDCoCBpZiAoIWRpc3BsYXkpIHsKPiDCoMKgwqDCoMKgwqDCoMKg IGlmIChkZXZpY2UpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xP R19FUlJPUiwgIk5vIFZBIGRpc3BsYXkgZm91bmQgZm9yICIKPiBkaWZmIC0tZ2l0IGEvbGliYXZ1 dGlsL3Rlc3RzL2h3ZGV2aWNlLmMgYi9saWJhdnV0aWwvdGVzdHMvaHdkZXZpY2UuYwo+IGluZGV4 IDdlYjM1NWM5ODguLmM1NzU4NjYxM2EgMTAwNjQ0Cj4gLS0tIGEvbGliYXZ1dGlsL3Rlc3RzL2h3 ZGV2aWNlLmMKPiArKysgYi9saWJhdnV0aWwvdGVzdHMvaHdkZXZpY2UuYwo+IEBAIC0xNDAsNyAr MTQwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4gwqDCoMKgwqAgeyBBVl9IV0RFVklDRV9U WVBFX09QRU5DTCwKPiDCoMKgwqDCoMKgwqAgeyAiMC4wIiwgIjAuMSIsICIxLjAiLCAiMS4xIiB9 IH0sCj4gwqDCoMKgwqAgeyBBVl9IV0RFVklDRV9UWVBFX1ZBQVBJLAo+IC3CoMKgwqDCoMKgIHsg Ii9kZXYvZHJpL3JlbmRlckQxMjgiLCAiL2Rldi9kcmkvcmVuZGVyRDEyOSIsICI6MCIgfSB9LAo+ ICvCoMKgwqDCoMKgIHsgIi9kZXYvZHJpL3JlbmRlckQxMjgiLCAiL2Rldi9kcmkvcmVuZGVyRDEy OSIsICI6MCIsICIwIiwgIjEiIH0gfSwKPiDCoH07Cj4gwqAKPiDCoHN0YXRpYyBpbnQgdGVzdF9k ZXZpY2VfdHlwZShlbnVtIEFWSFdEZXZpY2VUeXBlIHR5cGUpCj4gZGlmZiAtLWdpdCBhL2xpYmF2 dXRpbC92ZXJzaW9uLmggYi9saWJhdnV0aWwvdmVyc2lvbi5oCj4gaW5kZXggMTFiNDM4N2Y2NC4u ZThlYzYwNDM0OSAxMDA2NDQKPiAtLS0gYS9saWJhdnV0aWwvdmVyc2lvbi5oCj4gKysrIGIvbGli YXZ1dGlsL3ZlcnNpb24uaAo+IEBAIC03OSw3ICs3OSw3IEBACj4gwqAgKi8KPiDCoAo+IMKgI2Rl ZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUsKgIDU4Cj4gLSNkZWZpbmUgTElCQVZVVElMX1ZF UlNJT05fTUlOT1LCoMKgIDEKPiArI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSU5PUsKgwqAg Mgo+IMKgI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyAxMDAKPiDCoAo+IMKgI2RlZmlu ZSBMSUJBVlVUSUxfVkVSU0lPTl9JTlTCoMKgIEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJT SU9OX01BSk9SLCBcCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==