From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id CC351740038 for ; Tue, 30 Jan 2024 19:41:43 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=vaO5MfBVWHE6w+mrNkMEGJCBgYFMgeC+TIFyL0sdwYI=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1706643702; v=1; b=wOcrMw0fFOer0p66E6PflwVS9lN6Rrzpqb0YgrmAEqERdVXBwbqjUho3aZ5pN/KfFJkPPbLJ 7H8/HeDXMB9cTJ0ZypbZXDNJxTrW96G8iWJlERLZDajd8tIyisHCHjz8xIPyEpudVN5FjtOUSKN 7zXIPtfq1tJxf1KmQyKJFrTQ= X-Received: by 127.0.0.2 with SMTP id 5LBAYY7687511xK6eCHQBRcL; Tue, 30 Jan 2024 11:41:42 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.5931.1706643701673936180 for ; Tue, 30 Jan 2024 11:41:41 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="393833904" X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="393833904" X-Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2024 11:41:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="36602848" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orviesa001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Jan 2024 11:41:41 -0800 X-Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 11:41:40 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 11:41:39 -0800 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 30 Jan 2024 11:41:39 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 30 Jan 2024 11:41:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OmwuUaFM50T0B/PJL7obIJMNVslO+SqE8AdOurjSl3iJ5gbiqpiYMolcZuXtbMNch+ZndVG+aGn30SZHM8rHHRAwNKNi6s/qGu/YP5ta75h3RDRG8jm3Xa5Z5513Jkv8uFY3Z0cTiPYJSbbDqELu6RrSKDrnuFiad7BKFvpoE8wX28qGwFI4LsHYfHjgYW4fFUGgrvHrziqVI3nQeiVEmrI/z+LLdnHwA952HoOxXvzZzpApppWFRxwNd4EODWmKey97ol8KAypt+xClFNTAkjlBaSLuVtZW0hAGwtlkxDa+e8meL8G2so8vdesy9oMens+gyJnBAifpaL62mN3TvQ== 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=Q7J7CvuRAb3rMDC1mK4Z171m/poKTiTJLiWynuq1XbA=; b=StTzhiwHHLxl8Y9fBu1DecC02XysMZqA7VQliuWFvGVqdLHjhvVhAed/flf2c84KnyYal2Cv7l+KFMZC+FjkCqUsrVWk/VjIa+xYogcYELxTUI4PhWf9s9UePsFkD9HxOFpicpwPxPaSHJhawdT7pgPHJEcC4q7LfUoF8m77HdXAu5FhSEsjQWoajMfvxj3dscdnFGXdrPf9vjk1gqoJXPJGeGfsgMlEOR6ykNt0YQX6dvGsAmOmRyg0OHDPN0YTkyHDykPMy3Wa9u4d08ljQRo0LfgDtb2aDWeLwQurN+mqJYY2kzf72VCF7mEmcpOn5CieIew9wJ3+06XXMh3CUw== 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 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SA3PR11MB7534.namprd11.prod.outlook.com (2603:10b6:806:305::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.32; Tue, 30 Jan 2024 19:41:36 +0000 X-Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::7e42:1633:d0a6:9c00%6]) with mapi id 15.20.7228.029; Tue, 30 Jan 2024 19:41:36 +0000 From: "Michael D Kinney" To: "Xu, GuoX" , gaoliming , "devel@edk2.groups.io" , "Pethaiyan, Madhan" CC: "Liu, Zhiguang" , "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL Thread-Topic: [edk2-devel] [PATCH 1/1] MdePkg:Updated the comments of EFI_FIRMWARE_MANAGEMENT_PROTOCOL Thread-Index: AQHaNtCsbAL5tve5MUqnGmqOW7oVhLDRSdLAgAAAP0CAC1acAIAI28gAgAEh64CAC4zZAIAAt28ggAAX3wA= Date: Tue, 30 Jan 2024 19:41:36 +0000 Message-ID: References: <02c301da4887$27c4e190$774ea4b0$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|SA3PR11MB7534:EE_ x-ms-office365-filtering-correlation-id: 5c9f5b9c-2a1e-41a0-15ad-08dc21cb7884 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: jC9Y/8DyvGepOShOCT0aHxrtVp5Q6EIfIg5KLq8NQacf5VNGNrv+YMm50RgjqCw67MelqZEkN0W1LaLE8uFg0f/y6gB2laFj1qz60jcMlTDT7Q/PyB9qJCkIy9aWQuWVcpMtJd15NZEzBIhzsDMgyhMWQ0dAkPrZgXkckDTt1uRwQ5emD7F2ooMsfqN/VgEKMRuKYU0b48MQ7RTyCpN7HC8hi2ad+OnQWEBAGXFReCohh39mCdb74XviG/RSX8m8Y4DXL14Ogy5UnRZ6njr8gp7vovn38kuzL+0eXKyEfBqDJekuXBwFEqSxHcxEzsBUSNCMQDcVi5XosDQ8Cas1pH2RglJ0J2AV19OlDn5gvQHy6YWLLrKVe1yqicY85Plhep6EuH91XruhOfwMg8Zjzd2ZW3KnuJuD4ux9blBgD/ioA3vbRnCmKoUDpBJxZQMaepTtCNSqVo1V984clEHDSkpGH4AES0ma3InslkEpU8I16wlRDuAS7AYNDbnYWxoZKlUZC4E9cns6rVIG2sAr1TuwS8524TWqjWxIh6aZ4JMl8uf3p+cCtfnx0emb2xPJLXjV69FWOnrafhhxYTjPsLpAnaDGZdVungkDQ7w3rKiXE3CoKe5jnxdEj3OE5ZFUSWzMTYgYrHwafaRrvsHHfg== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dmhZbU9OM1lBNGlCNVB2bjc4SlpQZVFRMXVJSW4zc2MxelJUQUxuVWhPM2k3?= =?utf-8?B?N3dZZ3IwMXBhcjBKNFlKclh1eWhUQkc3L0FsS0thRWFkQVVQRU14bkFCazFu?= =?utf-8?B?R2NMaUpsUEhLQ0MyaWhnVEpOblZjbm8wVFBKYTVENXZ6eWRhUjNSdDR4R3A0?= =?utf-8?B?emdmMTlHTG5NaDhOL0QwRno1enJBalluV3h5YU9Tb3hpaHg3Z3E2YURzUjQx?= =?utf-8?B?bEFLSTl5K0ptZzVlMmQ4YVBScDZPT2RqWDdCVDFSR09nK3dOZGp3aWJjWlc0?= =?utf-8?B?cmZWN3hmUlNocE5oYUJWTWh2MzFWS1VsYkIyZ0lxL0FZeHlqNkd2NlBuUmVE?= =?utf-8?B?RFBCdWdITjVJczBQNzEyWFhFd2RyMVUwQTIzSThmYkttUThiTnF1V0dwVVA3?= =?utf-8?B?TmplMm0zYXJZKzIzM21pMWNXUEN0UCtUazJNRHdxTUhYRXhGZW1TUjJTUmhu?= =?utf-8?B?RGVxeng5aWptRWo2UW00ZUI3c25KcmY1aUp0YWdlN3haTFhRSm5uWHNzTlA3?= =?utf-8?B?RmxuU2xqNXFoTWlOZ200dStENGFKc3VWQ3JacjVLSlFMNFpFYmVLRFNGdllu?= =?utf-8?B?OEVLOUh1YktweWdqUWlaczVpbFFUVzRUVjQzanYyaWJVbFFCU0QvYmtCQzlJ?= =?utf-8?B?R1k3Unl3QStkUmVBT3crT2ZaQUNJeWpkcFZDektZQ1ZMRTlLQUYwTnBUQVQx?= =?utf-8?B?eGJUZEZsOUJsc0VvdDQ4VTZmaUJOL0FGUG9MdXRZK3Rtc05wVG5WUHZUY2RR?= =?utf-8?B?cEk2RWNPTGl2U1pCRHBNZmpWcUhEUDZLZDc1L1NOODB1QjBYWGJ3VTJaWnRS?= =?utf-8?B?VE1BcDlENW5TaUV0QUtUUVpOd1ZpQjN6bUt1dUQ3VEY4dnJxanQ0b3p6eTZC?= =?utf-8?B?ZUxSQURmd0YxN01NOVlLcXdzUDNzL2tSSXB4ZGJ3MDUyRmZrY3hTUGtVc3JF?= =?utf-8?B?OVhDQXZ6YTlOOXZZUDBHNzNQYlhMYVl4Qm9tOFFIQklPMWxOTkNvOUdlck1H?= =?utf-8?B?eXZiN2dPWGVBRzI0SnVkYnhhUUl1TXNLaTBiV1BJejMrZHlTc2o1dnRqOEpj?= =?utf-8?B?eDdFK2N1UDNidk90Yms5T014NEtpT21aaUQ3UXJ0c3M1eFNNVjVFeXRrOEpI?= =?utf-8?B?dVZFMjYvSit1S3hZalRxQmlZb2xPaU0wUWN1OHVlMXVZanJTVC9Gd3laeUVx?= =?utf-8?B?cjB0S202RUxmMS9WYmlxaEVXYmJPVEJuTVNKbVVmOUJydERkemFKM2VOcjBO?= =?utf-8?B?ekR3Rjcydy9tQk00OE9DR05zY2QzR3lKejNuK0JTS3JLZm0xV3ZQRk5mMVhy?= =?utf-8?B?QTZxeFpzYXJVR0E3NXdCd3o1eWtSWVJRN3laLzNnR0NMY1RuZUhXSG1DdG9E?= =?utf-8?B?Vk1sV0hjbitPK3pkQUhIVnNsWG1CcWJCZGhJQXBOQVlML3ZWWDkrV0NpYndq?= =?utf-8?B?bGFVTmlUZXZ5MjJLWEszdGxHRUYyTlZNRzhMald4dXllamZZcnJKdnJ2U1BW?= =?utf-8?B?UmRDWkljTnVaaWJZQ2Q4cnJmZnFibm5sdnJVbTh0Y2RZVnRIUXlxc2M2OCt3?= =?utf-8?B?K0JFaXZZZk5JVmhHaSt3RVc0bTFrUWFuOHZmYnNVa3VQcitpZFdEUzMyK2Yw?= =?utf-8?B?bUcydnhybGJKMHhzM3JJb3Azb2JhSGI2aldLRDUza3dMRnczTlRiUFdZV295?= =?utf-8?B?ajA2anJxL0kvTTNxL09YUXByVmpzODJQdGJmYVBWN3hkYm5zWGdUbU9Pbmth?= =?utf-8?B?RDlySzJlRW9RS1JIRStaMHJHYUNaYlRjNTVnancrN0g0MmJsYURYanQ4QmZC?= =?utf-8?B?UUdwWENBTDlPRkp3NElDWW9Lc2NuVmFxTm9XS09Pd08wbjNPVnYrdUU4M2NK?= =?utf-8?B?RVpwMnl6NGhYWkI0SEFDaForWXJWTnF5MWQ5cFhaaTgydU9hNGFpSm9xRjBo?= =?utf-8?B?V0J0T2dXdnBKWnhxMmc4bVVzWGVsdGplWnNvN0NjUlc4elBnOVVQbmRsMlhY?= =?utf-8?B?VFJOV09YTkpqb2U1dklpdDdvMVU5QlMxL0dNeFNIa2E4VDAwb2JldzcvTTFN?= =?utf-8?B?N2Q4ZTIxUkdJMmdYRUMwYkVKMFpNcnRNem5CNUIvTE9oZEQxdTNmc21vYW1K?= =?utf-8?B?RHhCUEhFUSs3L2JuczlZSFlLVGlRTXdNNG4xS1V0YTJ5NC8ycENmVlRGblFu?= =?utf-8?B?SkE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c9f5b9c-2a1e-41a0-15ad-08dc21cb7884 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2024 19:41:36.3194 (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: dkUsPWjBBTU2KbQiC5BheJylWjTR44Smg7zGn/t3G2dek3qv36NMQJtelNNVCNB/hA/dHgYs77Nd4ALpmYq7E1KNO3yt26tHs+Q+TgEcYrI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR11MB7534 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: DLRz3gxZlqZDZMJANIRZRaKUx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=wOcrMw0f; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SGkgR3VvLA0KDQpJIGFsc28gc2VlIE1hZGhhbiBoYXMgYmVlbiB3b3JraW5nIG9uIHRoaXMgc2Ft ZSBpc3N1ZS4NCg0KaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3RvcGljLzEwMzYyMDg1 MyMxMTQwODUNCg0KQ2FuIHlvdSBwbGVhc2UgY29vcmRpbmF0ZSB5b3VyIHBhdGNoZXMgd2l0aCBN YWRoYW4gc28gaXQgaXMgYSBzaW5nbGUgcGF0Y2ggc2VyaWVzLg0KDQpBbHNvLCBteSBmZWVkYmFj ayB0byBlbnRlciBhIEJaIGFuZCB1cGRhdGUgUkVGOiB3aXRoIHRoZSBsaW5rIHRvIHRoZSBCWiBo YXMgDQpub3QgYmVlbiBkb25lIHlldC4gIFBsZWFzZSBkbyB0aGF0IGZvciB0aGUgbmV4dCB1cGRh dGUuDQoNClRoYW5rcywNCg0KTWlrZQ0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gRnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDMwLCAyMDI0IDEwOjE4IEFNDQo+IFRvOiBYdSwgR3Vv WCA8Z3VveC54dUBpbnRlbC5jb20+OyBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBMaXUsIFpoaWd1YW5nIDx6aGlndWFu Zy5saXVAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzFdIE1kZVBr ZzpVcGRhdGVkIHRoZSBjb21tZW50cyBvZg0KPiBFRklfRklSTVdBUkVfTUFOQUdFTUVOVF9QUk9U T0NPTA0KPiANCj4gSGkgR3VvLA0KPiANCj4gT25lIGNvbW1lbnQgYmVsb3cuDQo+IA0KPiBNaWtl DQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFh1LCBH dW9YIDxndW94Lnh1QGludGVsLmNvbT4NCj4gPiBTZW50OiBNb25kYXksIEphbnVhcnkgMjksIDIw MjQgMTE6MTggUE0NCj4gPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgZ2FvbGltaW5nDQo+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gQ2M6IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBp bnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQ a2c6VXBkYXRlZCB0aGUgY29tbWVudHMgb2YNCj4gPiBFRklfRklSTVdBUkVfTUFOQUdFTUVOVF9Q Uk9UT0NPTA0KPiA+DQo+ID4gSGkgTWljaGFlbCwNCj4gPg0KPiA+IFRoYW5rcyBmb3IgeW91ciBz dWdnZXN0aW9ucy4NCj4gPg0KPiA+IDEuIEluIGVkazIgcmVwbyB0aGVyZSBhcmUgdHdvIGltcGxl bWVudGF0aW9ucyBmb3IgRmlybXdhcmUgTWFuYWdlbWVudA0KPiA+IFByb3RvY29sLg0KPiA+ICAg MS4xIEluIGVkazJcRm1wRGV2aWNlUGtnXEZtcER4ZVxGbXBEeGUuYywgZnVuY3Rpb24NCj4gR2V0 VGhlSW1hZ2VJbmZvKCk6DQo+ID4gICAgIC8vDQo+ID4gICAgIC8vIENoZWNrIHRoZSBidWZmZXIg c2l6ZQ0KPiA+ICAgICAvLyBOT1RFOiBDaGVjayB0aGlzIGZpcnN0IHNvIGNhbGxlciBjYW4gZ2V0 IHRoZSBuZWNlc3NhcnkgbWVtb3J5DQo+ID4gc2l6ZSBpdCBtdXN0IGFsbG9jYXRlLg0KPiA+ICAg ICAvLw0KPiA+ICAgICBpZiAoKkltYWdlSW5mb1NpemUgPCAoc2l6ZW9mIChFRklfRklSTVdBUkVf SU1BR0VfREVTQ1JJUFRPUikpKSB7DQo+ID4gICAgICAgKkltYWdlSW5mb1NpemUgPSBzaXplb2Yg KEVGSV9GSVJNV0FSRV9JTUFHRV9ERVNDUklQVE9SKTsNCj4gPiAgICAgICBERUJVRyAoKERFQlVH X1ZFUkJPU0UsICJGbXBEeGUoJXMpOiBHZXRJbWFnZUluZm8oKSAtDQo+IEltYWdlSW5mb1NpemUN Cj4gPiBpcyB0byBzbWFsbC5cbiIsIG1JbWFnZUlkTmFtZSkpOw0KPiA+ICAgICAgIFN0YXR1cyA9 IEVGSV9CVUZGRVJfVE9PX1NNQUxMOw0KPiA+ICAgICAgIGdvdG8gY2xlYW51cDsNCj4gPiAgICAg fQ0KPiA+DQo+ID4gICAgIC8vDQo+ID4gICAgIC8vIENvbmZpcm0gdGhhdCBidWZmZXIgaXNuJ3Qg bnVsbA0KPiA+ICAgICAvLw0KPiA+ICAgICBpZiAoICAoSW1hZ2VJbmZvID09IE5VTEwpIHx8IChE ZXNjcmlwdG9yVmVyc2lvbiA9PSBOVUxMKSB8fA0KPiA+IChEZXNjcmlwdG9yQ291bnQgPT0gTlVM TCkgfHwgKERlc2NyaXB0b3JTaXplID09IE5VTEwpDQo+ID4gICAgICAgIHx8IChQYWNrYWdlVmVy c2lvbiA9PSBOVUxMKSkNCj4gPiAgICAgew0KPiA+ICAgICAgIERFQlVHICgoREVCVUdfRVJST1Is ICJGbXBEeGUoJXMpOiBHZXRJbWFnZUluZm8oKSAtIFBvaW50ZXINCj4gPiBQYXJhbWV0ZXIgaXMg TlVMTC5cbiIsIG1JbWFnZUlkTmFtZSkpOw0KPiA+ICAgICAgIFN0YXR1cyA9IEVGSV9JTlZBTElE X1BBUkFNRVRFUjsNCj4gPiAgICAgICBnb3RvIGNsZWFudXA7DQo+ID4gICAgIH0NCj4gPiAgICAg SW4gdGhlIGxpbmUgNDk3IHRvIDQ5OCwgaXQgaXMgbWlzc2VkIHRoZSBqdWRnbWVudCBvZg0KPiA+ IFBhY2thZ2VWZXJzaW9uTmFtZSBidXQgdGhlcmUgaXMgYSBjb21tZW50IGluIGxpbmUgNTI5ICIg Ly8gRG8gbm90DQo+IHVwZGF0ZQ0KPiA+IFBhY2thZ2VWZXJzaW9uTmFtZSBzaW5jZSBpdCBpcyBu b3Qgc3VwcG9ydGVkIGluIHRoaXMgaW5zdGFuY2UuIg0KPiA+ICAgICBTbywgZG8gd2UgbmVlZCB0 byBhZGQgdGhlIGp1ZGdtZW50IG9mIFBhY2thZ2VWZXJzaW9uTmFtZSBpbiB0aGlzDQo+ID4gZnVu Y3Rpb24/DQo+IA0KPiBZZXMuICBUaGUgY2hlY2sgbmVlZHMgdG8gYmUgYWRkZWQgZm9yIFBhY2th Z2VWZXJzaW9uTmFtZSBiZWluZyBOVUxMIGZvcg0KPiB0aGlzIHByb3RvY29sIHNlcnZpY2UgdG8g YmUgY29uZm9ybWFudCB3aXRoIHRoZSBVRUZJIFNwZWNpZmljYXRpb24uDQo+IA0KPiBUaGUgZmFj dCB0aGF0IHRoaXMgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgdXBkYXRlDQo+IFBh Y2thZ2VWZXJzaW9uTmFtZQ0KPiBjb250ZW50cyBkb2VzIG5vdCBjaGFuZ2Ugd2hhdCBhIGNvbmZv cm1hbmNlIHRlc3QgdGhhdCBjaGVja3MgdGhlDQo+IGJlaGF2aW9yDQo+IG9mIGEgTlVMTCBwYXJh bWV0ZXIgdmFsdWUgd291bGQgY29uY2x1ZGUgdGhhdCB0aGUgc2VydmljZSBkb2VzIG5vdA0KPiBm b2xsb3cNCj4gdGhlIHNwZWMuDQo+IA0KPiA+DQo+ID4gICAxLjIgSW4NCj4gPg0KPiBlZGsyXFNp Z25lZENhcHN1bGVQa2dcVW5pdmVyc2FsXFN5c3RlbUZpcm13YXJlVXBkYXRlXFN5c3RlbUZpcm13 YXJlQ29tbW8NCj4gPiBuRHhlLmMsIGZ1bmN0aW9uIEZtcEdldEltYWdlSW5mbygpOg0KPiA+ICAg ICAgICAgIGlmIChJbWFnZUluZm9TaXplID09IE5VTEwpIHsNCj4gPiAgICAgICAgICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4gICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAg ICAgaWYgKCpJbWFnZUluZm9TaXplIDwgc2l6ZW9mIChFRklfRklSTVdBUkVfSU1BR0VfREVTQ1JJ UFRPUikgKg0KPiA+IFN5c3RlbUZtcFByaXZhdGUtPkRlc2NyaXB0b3JDb3VudCkgew0KPiA+ICAg ICAgICAgICAgKkltYWdlSW5mb1NpemUgPSBzaXplb2YgKEVGSV9GSVJNV0FSRV9JTUFHRV9ERVND UklQVE9SKSAqDQo+ID4gU3lzdGVtRm1wUHJpdmF0ZS0+RGVzY3JpcHRvckNvdW50Ow0KPiA+ICAg ICAgICAgICAgcmV0dXJuIEVGSV9CVUZGRVJfVE9PX1NNQUxMOw0KPiA+ICAgICAgICAgfQ0KPiA+ DQo+ID4gICAgICAgICBpZiAoKEltYWdlSW5mbyA9PSBOVUxMKSB8fA0KPiA+ICAgICAgICAgICAo RGVzY3JpcHRvclZlcnNpb24gPT0gTlVMTCkgfHwNCj4gPiAgICAgICAgICAgKERlc2NyaXB0b3JD b3VudCA9PSBOVUxMKSB8fA0KPiA+ICAgICAgICAgICAoRGVzY3JpcHRvclNpemUgPT0gTlVMTCkg fHwNCj4gPiAgICAgICAgICAgKFBhY2thZ2VWZXJzaW9uID09IE5VTEwpIHx8DQo+ID4gICAgICAg ICAgIChQYWNrYWdlVmVyc2lvbk5hbWUgPT0gTlVMTCkpDQo+ID4gICAgICAgIHsNCj4gPiAgICAg ICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ICAgICAgICB9DQo+ID4gICAg IFRoZSBpbXBsZW1lbnRhdGlvbiBhbHJlYWR5IGluY2x1ZGVkIHRoZSByZXF1aXJlZCBjb2RlIGNo YW5nZXMuDQo+ID4NCj4gPiAgMi4gSW4gZWRrMi1wbGF0Zm9ybXMgcmVwbyB0aGVyZSBpcyBvbmx5 IG9uZSBpbXBsZW1lbnRhdGlvbiBmb3INCj4gRmlybXdhcmUNCj4gPiBNYW5hZ2VtZW50IFByb3Rv Y29sLg0KPiA+ICAgICAgSW4gdGhlIGZpbGUgTWljcm9jb2RlRm1wLmMsIGZ1bmN0aW9uIEZtcEdl dEltYWdlSW5mbygpOg0KPiA+ICAgICAgSWYgKEltYWdlSW5mb1NpemUgPT0gTlVMTCkgew0KPiA+ ICAgICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiA+ICAgICAgfQ0KPiA+ICAg ICAgaWYgKCpJbWFnZUluZm9TaXplIDwgc2l6ZW9mKEVGSV9GSVJNV0FSRV9JTUFHRV9ERVNDUklQ VE9SKSAqDQo+ID4gTWljcm9jb2RlRm1wUHJpdmF0ZS0+RGVzY3JpcHRvckNvdW50KSB7DQo+ID4g ICAgICAgICpJbWFnZUluZm9TaXplID0gc2l6ZW9mKEVGSV9GSVJNV0FSRV9JTUFHRV9ERVNDUklQ VE9SKSAqDQo+ID4gTWljcm9jb2RlRm1wUHJpdmF0ZS0+RGVzY3JpcHRvckNvdW50Ow0KPiA+ICAg ICAgICByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEw7DQo+ID4gICAgICB9DQo+ID4gICAgICBp ZiAoSW1hZ2VJbmZvID09IE5VTEwgfHwNCj4gPiAgICAgICAgIERlc2NyaXB0b3JWZXJzaW9uID09 IE5VTEwgfHwNCj4gPiAgICAgICAgIERlc2NyaXB0b3JDb3VudCA9PSBOVUxMIHx8DQo+ID4gICAg ICAgICBEZXNjcmlwdG9yU2l6ZSA9PSBOVUxMIHx8DQo+ID4gICAgICAgICBQYWNrYWdlVmVyc2lv biA9PSBOVUxMIHx8DQo+ID4gICAgICAgICBQYWNrYWdlVmVyc2lvbk5hbWUgPT0gTlVMTCkgew0K PiA+ICAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ID4gICAgIH0NCj4gPiAg ICBUaGUgaW1wbGVtZW50YXRpb24gYWxyZWFkeSBpbmNsdWRlZCB0aGUgcmVxdWlyZWQgY29kZSBj aGFuZ2VzLg0KPiA+DQo+ID4gVGhhbmtzDQo+ID4gWHUgR3VvDQo+ID4NCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDIzLCAyMDI0IDc6 MDggQU0NCj4gPiBUbzogWHUsIEd1b1ggPGd1b3gueHVAaW50ZWwuY29tPjsgZ2FvbGltaW5nDQo+ IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4gQ2M6IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBLaW5uZXksIE1p Y2hhZWwgRA0KPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBS RTogW2VkazItZGV2ZWxdIFtQQVRDSCAxLzFdIE1kZVBrZzpVcGRhdGVkIHRoZSBjb21tZW50cyBv Zg0KPiA+IEVGSV9GSVJNV0FSRV9NQU5BR0VNRU5UX1BST1RPQ09MDQo+ID4NCj4gPiBIaSBHdW8s DQo+ID4NCj4gPiBUaGFuayB5b3UgZm9yIHN0YXJ0aW5nIHRoaXMgdGFzayB0byB1cGRhdGUgRmly bXdhcmUgTWFuYWdlbWVudA0KPiBQcm90b2NvbC4NCj4gPg0KPiA+IFRoZXJlIGFyZSBhZGRpdGlv bmFsIHRhc2tzIHRvIG1ha2Ugc3VyZSBhbGwgcmVxdWlyZWQgY29kZSBjaGFuZ2VzIGFyZQ0KPiA+ IGFsc28gaW1wbGVtZW50ZWQgZm9yIGEgc3BlY2lmaWNhdGlvbiB1cGRhdGUgbGlrZSB0aGlzLg0K PiA+DQo+ID4gKiBDcmVhdGUgYSBUaWFub0NvcmUgQnVnemlsbGEgdGhhdCBkZXNjcmliZXMgdGhl IHNwZWNpZmljYXRpb24gdXBkYXRlDQo+ID4gICBuZWVkZWQgd2l0aCBsaW5rcyB0byB0aGUgcHVi bGljIGRvY3VtZW50cyB3aXRoIHRoZSByZXF1aXJlZA0KPiA+ICAgc3BlY2lmaWNhdGlvbiB1cGRh dGUuDQo+ID4NCj4gPiAqIFJldmlldy91cGRhdGUgZWRrMiByZXBvIGluY2x1ZGUgZmlsZXMuDQo+ ID4NCj4gPiAqIFJldmlldy91cGRhdGUgZnVuY3Rpb24gaGVhZGVycyBvZiB0aGUgaW1wbGVtZW50 YXRpb25zIG9mIHRoZQ0KPiA+ICAgRmlybXdhcmUgTWFuYWdlbWVudCBQcm90b2NvbCBpbiB0aGUg ZWRrMiByZXBvLg0KPiA+DQo+ID4gKiBSZXZpZXcvdXBkYXRlIGxvZ2ljIGluIGltcGxlbWVudGF0 aW9ucyBvZiB0aGUgRmlybXdhcmUNCj4gPiAgIE1hbmFnZW1lbnQgUHJvdG9jb2wgaW4gdGhlIGVk azIgcmVwbyB0byBtYWtlIHN1cmUgYWxsIGVycm9yDQo+ID4gICByZXR1cm4gY29uZGl0aW9ucyBh cmUgY2hlY2tlZC4NCj4gPg0KPiA+ICogUmV2aWV3L3VwZGF0ZSBmdW5jdGlvbiBoZWFkZXJzIG9m IHRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlDQo+ID4gICBGaXJtd2FyZSBNYW5hZ2VtZW50IFBy b3RvY29sIGluIHRoZSBlZGsyLXBsYXRmb3JtcyByZXBvLg0KPiA+DQo+ID4gKiBSZXZpZXcvdXBk YXRlIGxvZ2ljIGluIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgRmlybXdhcmUNCj4gPiAgIE1hbmFn ZW1lbnQgUHJvdG9jb2wgaW4gdGhlIGVkazItcGxhdGZvcm1zIHJlcG8gdG8gbWFrZSBzdXJlDQo+ ID4gICBhbGwgZXJyb3IgcmV0dXJuIGNvbmRpdGlvbnMgYXJlIGNoZWNrZWQuDQo+ID4NCj4gPiAq IFJldmlldy91cGRhdGUgdGVzdCBjYXNlcyBlZGsyLXRlc3QgcmVwbyBmb3IgdGhlIFVFRkkgU0NU cyBmb3INCj4gPiAgIHRoZXNlIGVycm9yIHJldHVybiBjb25kaXRpb25zLg0KPiA+DQo+ID4NCj4g PiBUaGUgIlJFRiIgaW4gdGhlIGNvbW1pdCBtZXNzYWdlIHNob3VsZCBiZSBhIGxpbmsgdG8gdGhl IFRpYW5vQ29yZQ0KPiA+IEJ1Z3ppbGxhLiAgVGhlIHJlZmVyZW5jZSB0byB0aGUgc3BlY2lmaWNh dGlvbiBpcyBhbHNvIHJlcXVpcmVkLCBidXQNCj4gPiBzaG91bGQgYmUgaW4gdGhlIHRleHQgb2Yg dGhlIGNvbW1pdCBtZXNzYWdlLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+DQo+ID4gTWlrZQ0KPiA+ DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBYdSwg R3VvWCA8Z3VveC54dUBpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBTdW5kYXksIEphbnVhcnkgMjEs IDIwMjQgOTozNyBQTQ0KPiA+ID4gVG86IGdhb2xpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29t LmNuPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBMaXUsIFpoaWd1YW5nDQo+ID4gPiA8emhpZ3Vh bmcubGl1QGludGVsLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI IDEvMV0gTWRlUGtnOlVwZGF0ZWQgdGhlIGNvbW1lbnRzIG9mDQo+ID4gPiBFRklfRklSTVdBUkVf TUFOQUdFTUVOVF9QUk9UT0NPTA0KPiA+ID4NCj4gPiA+IEhpIExpbWluZywNCj4gPiA+ICAgSSBj cmVhdGVkIGEgUFI6IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9wdWxsLzUxODIs IGNvdWxkDQo+ID4gPiB5b3UgaGVscCBwdXNoIGl0ID8NCj4gPiA+DQo+ID4gPiBUaGFua3MNCj4g PiA+IFh1IEd1bw0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiBGcm9tOiBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+IFNlbnQ6 IFR1ZXNkYXksIEphbnVhcnkgMTYsIDIwMjQgMTA6MjAgUE0NCj4gPiA+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgWHUsIEd1b1ggPGd1b3gueHVAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IExpdSwgWmhpZ3VhbmcN Cj4gPiA+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDog5Zue5aSNOiBb ZWRrMi1kZXZlbF0gW1BBVENIIDEvMV0gTWRlUGtnOlVwZGF0ZWQgdGhlIGNvbW1lbnRzDQo+IG9m DQo+ID4gPiBFRklfRklSTVdBUkVfTUFOQUdFTUVOVF9QUk9UT0NPTA0KPiA+ID4NCj4gPiA+IEkg YW0gT0sgZm9yIHRoaXMgY2hhbmdlLiBSZXZpZXdlZC1ieTogTGltaW5nIEdhbw0KPiA+ID4gPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+DQo+ID4gPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2 LS0tLS0NCj4gPiA+ID4g5Y+R5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IOS7o+ihqCBYdSwgR3VvWA0KPiA+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjTl ubQx5pyIOeaXpSAxNzoyNA0KPiA+ID4gPiDmlLbku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4gPiA+IOaKhOmAgTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47 IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4gPiA+IOS4u+mimDog UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6VXBkYXRlZCB0aGUgY29tbWVudHMg b2YNCj4gPiA+ID4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJPVE9DT0wNCj4gPiA+ID4NCj4g PiA+ID4gSGkgYWxsLCBhbnkgY29tbWVudHMgYWJvdXQgdGhpcyBwYXRjaD8NCj4gPiA+ID4NCj4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRr Mi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gR3VvWA0K PiA+ID4gPiBYdQ0KPiA+ID4gPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDI1LCAyMDIzIDk6MjEg QU0NCj4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+IENjOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+ ID4gPiA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZw0KPiA8emhpZ3Vh bmcubGl1QGludGVsLmNvbT47DQo+ID4gPiA+IExpLCBZaTEgPHlpMS5saUBpbnRlbC5jb20+DQo+ ID4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6VXBkYXRlZCB0 aGUgY29tbWVudHMgb2YNCj4gPiA+ID4gRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJPVE9DT0wN Cj4gPiA+ID4NCj4gPiA+ID4gMS5Gb3IgRUZJX0ZJUk1XQVJFX01BTkFHRU1FTlRfUFJPVE9DT0wu R2V0SW1hZ2UoKToNCj4gPiA+ID4gQWRkIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UgYXQgdGhlIGVu ZCBvZiB0aGUgSW1hZ2UgcGFyYW1ldGVyDQo+ID4gPiBkZXNjcmlwdGlvbi4NCj4gPiA+ID4gIk1h eSBiZSBOVUxMIHdpdGggYSB6ZXJvIEltYWdlU2l6ZSBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhl IHNpemUNCj4gb2YNCj4gPiA+ID4gdGhlIGJ1ZmZlciBuZWVkZWQiLg0KPiA+ID4gPg0KPiA+ID4g PiBNb2RpZnkgdGhlIGRlc2NyaXB0aW9uIG9mICJFRklfSU5WQUxJRF9QQVJBTUVURVIiIHJldHVy biBjb2RlIGFzDQo+ID4gPiA+ICJUaGUgSW1hZ2VTaXplIGlzIG5vdCB0b28gc21hbGwgYW5kIElt YWdlIGlzIE5VTEwuIg0KPiA+ID4gPg0KPiA+ID4gPiAyLkZvciBFRklfRklSTVdBUkVfTUFOQUdF TUVOVF9QUk9UT0NPTC5HZXRJbWFnZUluZm8oKToNCj4gPiA+ID4gQWRkIHRoZSBmb2xsb3dpbmcg c2VudGVuY2UgYXQgdGhlIGVuZCBvZiB0aGUgSW1hZ2VJbmZvIHBhcmFtZXRlcg0KPiA+ID4gPiBk ZXNjcmlwdGlvbi4iTWF5IGJlIE5VTEwgd2l0aCBhIHplcm8gSW1hZ2VJbmZvU2l6ZSBpbiBvcmRl ciB0bw0KPiA+ID4gPiBkZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBuZWVkZWQiLg0K PiA+ID4gPg0KPiA+ID4gPiBNb2RpZnkgdGhlIGRlc2NyaXB0aW9uIG9mICJFRklfSU5WQUxJRF9Q QVJBTUVURVIiIHJldHVybiBjb2RlIGFzDQo+ID4gPiA+ICJUaGUgSW1hZ2VJbmZvU2l6ZSBpcyBu b3QgdG9vIHNtYWxsIGFuZCBJbWFnZSBpcyBOVUxMLiIgYW5kIGFkZA0KPiBuZXcNCj4gPiA+ID4g ZGVzY3JpcHRpb25zIGZvciAiRUZJX0lOVkFMSURfUEFSQU1FVEVSIiByZXR1cm4gY29kZS4NCj4g PiA+ID4NCj4gPiA+ID4gUkVGOiBVRUZJIFNwZWMgMi43QiBDaGFwdGVyIDIzLjEuDQo+ID4gPiA+ DQo+ID4gPiA+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT4NCj4gPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4g PiA+ID4gQ2M6IFpoaWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiA+ID4g Q2M6IFlpIExpIDx5aTEubGlAaW50ZWwuY29tPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBHdW9Y IFh1IDxndW94Lnh1QGludGVsLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBNZGVQa2cvSW5j bHVkZS9Qcm90b2NvbC9GaXJtd2FyZU1hbmFnZW1lbnQuaCB8IDEzICsrKysrKysrKysrLS0NCj4g PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0K PiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvRmly bXdhcmVNYW5hZ2VtZW50LmgNCj4gPiA+ID4gYi9NZGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9GaXJt d2FyZU1hbmFnZW1lbnQuaA0KPiA+ID4gPiBpbmRleCBmMzcwNjdkZjM0NTUuLjkzYzhiNzY1OGUx YSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvRmlybXdhcmVN YW5hZ2VtZW50LmgNCj4gPiA+ID4gKysrIGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wvRmlybXdh cmVNYW5hZ2VtZW50LmgNCj4gPiA+ID4gQEAgLTI5Myw2ICsyOTMsOCBAQCBFRklfU1RBVFVTDQo+ ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gY29udGFpbiB0 aGUgaW1hZ2UocykNCj4gPiA+ID4gaW5mb3JtYXRpb24gaWYgdGhlIGJ1ZmZlciB3YXMgdG9vIHNt YWxsLg0KPiA+ID4gPiAgICBAcGFyYW1baW4sIG91dF0gSW1hZ2VJbmZvICAgICAgICAgIEEgcG9p bnRlciB0byB0aGUgYnVmZmVyIGluDQo+ID4gd2hpY2gNCj4gPiA+ID4gZmlybXdhcmUgcGxhY2Vz IHRoZSBjdXJyZW50IGltYWdlKHMpDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW5mb3JtYXRpb24uIFRoZSBpbmZvcm1hdGlvbg0KPiA+ID4gPiBpcyBhbiBh cnJheSBvZiBFRklfRklSTVdBUkVfSU1BR0VfREVTQ1JJUFRPUnMuDQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIE5VTEwgd2l0aCBhIHplcm8NCj4g PiA+ID4gSW1hZ2VJbmZvU2l6ZSBpbiBvcmRlciB0byBkZXRlcm1pbmUgdGhlIHNpemUgb2YgdGhl DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIG5l ZWRlZC4NCj4gPiA+ID4gICAgQHBhcmFtW291dF0gICAgIERlc2NyaXB0b3JWZXJzaW9uICBBIHBv aW50ZXIgdG8gdGhlIGxvY2F0aW9uIGluDQo+ID4gPiB3aGljaA0KPiA+ID4gPiBmaXJtd2FyZSBy ZXR1cm5zIHRoZSB2ZXJzaW9uIG51bWJlcg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUNCj4gPiA+ID4gRUZJX0ZJUk1XQVJF X0lNQUdFX0RFU0NSSVBUT1IuDQo+ID4gPiA+ICAgIEBwYXJhbVtvdXRdICAgICBEZXNjcmlwdG9y Q291bnQgICAgQSBwb2ludGVyIHRvIHRoZSBsb2NhdGlvbiBpbg0KPiA+ID4gPiB3aGljaCBmaXJt d2FyZSByZXR1cm5zIHRoZSBudW1iZXIgb2YgQEAgLTMxMyw3ICszMTUsMTIgQEANCj4gRUZJX1NU QVRVUw0KPiA+ID4gPiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgIFRoZSBk ZXZpY2Ugd2FzIHN1Y2Nlc3NmdWxseQ0KPiA+ID4gPiB1cGRhdGVkIHdpdGggdGhlIG5ldyBpbWFn ZS4NCj4gPiA+ID4gICAgQHJldHZhbCBFRklfQlVGRkVSX1RPT19TTUFMTCAgICAgICBUaGUgSW1h Z2VJbmZvIGJ1ZmZlciB3YXMgdG9vDQo+ID4gPiA+IHNtYWxsLiBUaGUgY3VycmVudCBidWZmZXIg c2l6ZQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRl ZCB0byBob2xkIHRoZSBpbWFnZShzKQ0KPiA+ID4gPiBpbmZvcm1hdGlvbiBpcyByZXR1cm5lZCBp biBJbWFnZUluZm9TaXplLg0KPiA+ID4gPiAtICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRF UiAgICAgIEltYWdlSW5mb1NpemUgaXMgTlVMTC4NCj4gPiA+ID4gKyAgQHJldHZhbCBFRklfSU5W QUxJRF9QQVJBTUVURVIgICAgICBJbWFnZUluZm9TaXplIGlzIG5vdCB0b28NCj4gc21hbGwNCj4g PiA+ID4gYW5kIEltYWdlSW5mbyBpcyBOVUxMLg0KPiA+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgICAgIEltYWdlSW5mb1NpemUgaXMgbm9uLXplcm8NCj4gYW5kDQo+ID4g PiA+IERlc2NyaXB0b3JWZXJzaW9uIGlzIE5VTEwuDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSICAgICAgSW1hZ2VJbmZvU2l6ZSBpcyBub24temVybw0KPiBhbmQNCj4g PiA+ID4gRGVzY3JpcHRvckNvdW50IGlzIE5VTEwuDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSICAgICAgSW1hZ2VJbmZvU2l6ZSBpcyBub24temVybw0KPiBhbmQNCj4g PiA+ID4gRGVzY3JpcHRvclNpemUgaXMgTlVMTC4NCj4gPiA+ID4gKyAgQHJldHZhbCBFRklfSU5W QUxJRF9QQVJBTUVURVIgICAgICBJbWFnZUluZm9TaXplIGlzIG5vbi16ZXJvDQo+IGFuZA0KPiA+ ID4gPiBQYWNrYWdlVmVyc2lvbiBpcyBOVUxMLg0KPiA+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgICAgIEltYWdlSW5mb1NpemUgaXMgbm9uLXplcm8NCj4gYW5kDQo+ID4g PiA+IFBhY2thZ2VWZXJzaW9uTmFtZSBpcyBOVUxMLg0KPiA+ID4gPiAgICBAcmV0dmFsIEVGSV9E RVZJQ0VfRVJST1IgICAgICAgICAgIFZhbGlkIGluZm9ybWF0aW9uIGNvdWxkIG5vdA0KPiBiZQ0K PiA+ID4gPiByZXR1cm5lZC4gUG9zc2libGUgY29ycnVwdGVkIGltYWdlLg0KPiA+ID4gPg0KPiA+ ID4gPiAgKiovDQo+ID4gPiA+IEBAIC0zNDAsNiArMzQ3LDggQEAgRUZJX1NUQVRVUw0KPiA+ID4g PiAgICBAcGFyYW1baW5dICAgICAgSW1hZ2VJbmRleCAgICAgQSB1bmlxdWUgbnVtYmVyIGlkZW50 aWZ5aW5nIHRoZQ0KPiA+ID4gPiBmaXJtd2FyZSBpbWFnZShzKSB3aXRoaW4gdGhlIGRldmljZS4N Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgaXMg YmV0d2VlbiAxIGFuZA0KPiA+ID4gPiBEZXNjcmlwdG9yQ291bnQuDQo+ID4gPiA+ICAgIEBwYXJh bVtvdXRdICAgICBJbWFnZSAgICAgICAgICBQb2ludHMgdG8gdGhlIGJ1ZmZlciB3aGVyZSB0aGUN Cj4gPiA+ID4gY3VycmVudCBpbWFnZSBpcyBjb3BpZWQgdG8uDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBNYXkgYmUgTlVMTCB3aXRoIGEgemVybw0KPiA+ID4gPiBJ bWFnZVNpemUgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mIHRoZQ0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIG5lZWRlZC4NCj4gPiA+ID4g ICAgQHBhcmFtW2luLCBvdXRdIEltYWdlU2l6ZSAgICAgIE9uIGVudHJ5LCBwb2ludHMgdG8gdGhl IHNpemUgb2YNCj4gPiB0aGUNCj4gPiA+ID4gYnVmZmVyIHBvaW50ZWQgdG8gYnkgSW1hZ2UsIGlu IGJ5dGVzLg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT24gcmV0 dXJuLCBwb2ludHMgdG8gdGhlIGxlbmd0aA0KPiBvZg0KPiA+ID4gPiB0aGUgaW1hZ2UsIGluIGJ5 dGVzLg0KPiA+ID4gPg0KPiA+ID4gPiBAQCAtMzQ3LDcgKzM1Niw3IEBAIEVGSV9TVEFUVVMNCj4g PiA+ID4gICAgQHJldHZhbCBFRklfQlVGRkVSX1RPT19TTUFMTCAgIFRoZSBidWZmZXIgc3BlY2lm aWVkIGJ5DQo+IEltYWdlU2l6ZQ0KPiA+IGlzDQo+ID4gPiA+IHRvbyBzbWFsbCB0byBob2xkIHRo ZQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UuIFRoZSBj dXJyZW50IGJ1ZmZlciBzaXplDQo+ID4gPiA+IG5lZWRlZCB0byBob2xkIHRoZSBpbWFnZSBpcyBy ZXR1cm5lZA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gSW1h Z2VTaXplLg0KPiA+ID4gPiAtICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgVGhlIElt YWdlIHdhcyBOVUxMLg0KPiA+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAg VGhlIEltYWdlU2l6ZSBpcyBub3QgdG9vIHNtYWxsDQo+IGFuZA0KPiA+ID4gPiBJbWFnZSBpcyBO VUxMLg0KPiA+ID4gPiAgICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICAgVGhlIGN1cnJl bnQgaW1hZ2UgaXMgbm90IGNvcGllZA0KPiB0bw0KPiA+ID4gPiB0aGUgYnVmZmVyLg0KPiA+ID4g PiAgICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIG9wZXJhdGlvbiBpcyBub3Qg c3VwcG9ydGVkLg0KPiA+ID4gPiAgICBAcmV0dmFsIEVGSV9TRUNVUklUWV9WSU9MQVRJT04gVGhl IG9wZXJhdGlvbiBjb3VsZCBub3QgYmUNCj4gPiA+ID4gcGVyZm9ybWVkIGR1ZSB0byBhbiBhdXRo ZW50aWNhdGlvbiBmYWlsdXJlLg0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAyLjI5LjIud2luZG93cy4z DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IA0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQoNCg0KCi09 LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1l c3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTQ4MjUpOiBo dHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTQ4MjUKTXV0ZSBUaGlzIFRv cGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDM4OTg3NjUvNzY4NjE3NgpHcm91cCBPd25lcjog ZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91 cHMuaW8vZy9kZXZlbC9sZWF2ZS8xMjM2NzExMS83Njg2MTc2LzE5MTM0NTYyMTIveHl6enkgW3Jl YmVjY2FAb3BlbmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=