From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.51]) by mx.groups.io with SMTP id smtpd.web10.79648.1684116025355482828 for ; Sun, 14 May 2023 19:00:25 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=Uk5DYHOd; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.93.51, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BGHbrh06BJFDInArGg7zjC5u/9pQ3A63cPN8eFF62dgHx0LJ0tQDlQU4IFG65sFls/DGCiNb0bDCmYl0veHU6nmS7/z2mSK6YJOpC1JSFKJKKpFPoyMRav9w+CFfzNN5JFTeE6oGXShQ40FH5NbW8m4v301sw/jSYqmDBuFkaRYXkT1ME/gCjBDKgNP8PMPPU0oGiHgGXnXTyfbIM7XDMYYrkLsiSZdHZTsBn2t3PfvsFvUQaIH1QvPV9YbLztsS5Xpe5zL2dTDvwcF1Wlk4FHhgRLZQ3/2NiJKBWmG39tW3y4E58CeW2gAsZjS4xzZvl3WuL46Skrs/VsYX5xbJLw== 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=3ovLzTRF+FwzMnFbtuURWPV1XqUAY4dLi4YP3j/+doI=; b=TtSyc8lct2eszD4K9STE2bNOzBBftI6Nr5LXMYBwi51/31QYsgNuZ9wdGI6AfakhlJuwANo23YuvJ47ELJWxmOEZeRVbCanIqq7jZR8WmFUSx/cQyEqqgx4zS770c4U/A3jutCOlaPXC52yPP9DBPsYTSJSEQNDMAg1g88p2UL1rRM/QHQx2GUi14EGGe3SWexHyF3TPe+x0WruDh74g1Fnhyn8eeqb71UbwE4y4tZZfA8VwCjKp9aHXP1RmYa9v1AO2TVJe22+kTY3cUmZzbn+qLZtrHXA2D8ZJzsTFkOVAlojbQlIS+E4JXUn6nQHS2u1ZPi7Lk3kPhS98Vb1CuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3ovLzTRF+FwzMnFbtuURWPV1XqUAY4dLi4YP3j/+doI=; b=Uk5DYHOdeQl2NbDnL6sMG6Yj8V+0mmxRFpbembYCcb4ksdSpCpKx1iZDZajRWa+Zb8OPPfRdLz1vub7K4f/vWudxveYfENKAII2Xf01+as1KRx6zpjl+V8EQ8wut/6+Gaocl+BDbBEh8CW6v14dUYgZOSjvkEVB+WqDWIjqgANA= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DM4PR12MB6637.namprd12.prod.outlook.com (2603:10b6:8:bb::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Mon, 15 May 2023 02:00:22 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::edb0:bed8:c650:5040%5]) with mapi id 15.20.6387.029; Mon, 15 May 2023 02:00:22 +0000 From: "Chang, Abner" To: Tinh Nguyen , "devel@edk2.groups.io" CC: Isaac Oram , "Attar, AbdulLateef (Abdul Lateef)" , Nickle Wang , Tinh Nguyen Subject: Re: [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiFrb: IPMI FRB Driver Thread-Topic: [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiFrb: IPMI FRB Driver Thread-Index: AQHZhoPEl2lpOFtG4Ue2aY42cygMcq9alHDw Date: Mon, 15 May 2023 02:00:22 +0000 Message-ID: References: <20230513123327.1496-1-abner.chang@amd.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-15T02:00:18Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=5501337a-b503-4ab5-b92c-67feca2f2e93; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|DM4PR12MB6637:EE_ x-ms-office365-filtering-correlation-id: c09e3b75-bfdc-4cfb-fc07-08db54e8248b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nrfFtFT2GCa1+mFF75sjQgh/5XStRrlUYgqaZwc0wBSXO+c7KtSHWxVfkX4vfEplrmzWd2M3GYizlEKGi2UYlJNdMNZcmUXQQevmGqQ657L7FKX8LLUgikOKkgZnHkCrGnzzy1L7W8LiSn8k81HD4wAYZ5LAsmVHFgrpSaQu8oANHyoRc2gR6g2wntUqu6zCg8BTZ4m9VW1j1Hzlbd7x/0AhSR882xNKLIX6ptFglZ9KTKGLMy9dkWXHAxvlS82kzr83Gc862kNl8kSLZWBwZYAIlJXFd0hWMO9YGAQdq1NqVYjpq7YQD5cRm2x2qaw1wQ3MA/XtY7Hsyh9fiBl9VxXxIX/6cErLYE4IhleEBywDvcsRA7BmtUC+PNEfts3T0ZmwC0RUtpC4cqaj+Q14H8ztU0RXO3b/+SH3wPTBonKakq44GpZVqO10xgJZlTYjNYzH+uWJ8CsxkEYvGHnjbXFFW1hRl7Kz/itCxKdj8BwO/inRJCFG6joBp1sJBWBZQqDWuqkQY0EpHQfcVQvXRUYYgRmGDJ0EO3+uvFPPwIZ30aUEwnkRkMUrddwsQuDm6ounnw8bc1pcVNmI9VAajaVlcM8MP08rud6zjpm+lc+ur0n+k2rJt28df+Y0aYN9 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(396003)(39860400002)(376002)(366004)(136003)(451199021)(54906003)(110136005)(19627235002)(478600001)(66556008)(66476007)(66446008)(64756008)(4326008)(66946007)(76116006)(71200400001)(7696005)(316002)(296002)(2906002)(55016003)(8936002)(8676002)(41300700001)(30864003)(5660300002)(26005)(52536014)(122000001)(33656002)(86362001)(38100700002)(38070700005)(83380400001)(186003)(53546011)(9686003)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UDRscERYSzJEVStidzVnaEJkR0VWSFhHZ29yRnE2NUdibVkyaUIrYi9zTlYz?= =?utf-8?B?dmU3R0QvSFh0WnFwUytDQnlIclp6WDlDbm9WSmx2NEx3dXJpZlFrbGF3Si9o?= =?utf-8?B?UUN2dnpHd1pBR3J4Y2NZNGc1WUt4ZkdiV0wzd1JoYjFJMmduTDh5UzA3V0lH?= =?utf-8?B?MzhuaWNCU25ZNGJUMDNlVjVOQkEzUElUOEpteTVjcmRWekMrQkx2dUVRRGUw?= =?utf-8?B?empNUG9QQkZXbmJpbzZIM1V2ejFmSWNmOU1kY3lMSFpMaDJMRzFtejNFWWNZ?= =?utf-8?B?N0h6bm5iU3JrN0xiZ0YwVHR4djV2MEtNU0NONG1EYm1lSGJhbU1HV2k3ZVJm?= =?utf-8?B?enhBRklWNTRDQVU2dEpuanpFUW1TU0cwaUF0dng3SXVvNTRpT1l3Qkh1SlRQ?= =?utf-8?B?a1p4ekxVYm41OWRkWWQxRWZFZWVGK203NGZBY3VqOTRKWW45cGlZMTNkTVpF?= =?utf-8?B?ZUVXbmt1aytqSEZibVlWWWg3Z0J1RDVxSWY3a3pJRXVzWFBrTUVnM1hwVk1a?= =?utf-8?B?NWp0VlhNa1A5a0trSlpldllnYTVTMUcxaVZPYnEvS1RETXJVcDBzd0dMRk5v?= =?utf-8?B?enR6QWhVK0E1K3U4ZWNORnJ2c1IwSDhZUFR1SnJPUEpSR0plMFlBY2p1Tnp4?= =?utf-8?B?RFlteGkwVWNOWjNxVDdrUGNSTk9YVU9FRS96RVR6K3BBbTZrM05rTE56ZklY?= =?utf-8?B?cloxOFNWUldVK21RdFNkSlZpTEdUemhVZUVFeVo5YkNuMUY0TFV1Mi8rTTRm?= =?utf-8?B?N1JjTDZOd0NmQ2puVEo1TldEUU5jek5qQlBmNm5NWVBUa2pTMUlJRCtGNWNi?= =?utf-8?B?MnpMazlkMURXb29weENhQmxhc1NuMUNlQ2t4MTUvSEhYWldGb2dJMmRmMVNl?= =?utf-8?B?eFZuNWVxRnZXWE5vTmhhemRlR0VGOEZudUdKOTNxaXExbXhHb1lIVVR5VzJT?= =?utf-8?B?d0tEaVlCRlBkaEd6NUQ3aHQ1dVYrSk8yYTEvcm80cCtpOExMdHhwTnhYcFph?= =?utf-8?B?TDl6M213WUJndXUwYnIvM1NwRWxtalZHOHEvTmptMWQ1NDRmRkQxYllldEF5?= =?utf-8?B?Qi91N1pvVkovUHA0NEdPbzltcEEzZDMxQ3B0WFJ1Rk5ScmpoNUYzNTVYKzk0?= =?utf-8?B?RlNBMXg5T0h5L25NVzlBcldPOXlEaFpJbVh1N04vaUV6VWJOQ0UzdmVJN3ho?= =?utf-8?B?SThsNjJSLzBtcG51WFVmSXpoSm5ac04yamZZZUxOYVpqQlA0ZDN0cHFxWHRk?= =?utf-8?B?SWFVQUhLSy9GdzVLRHhOVVJxTWVQL0FrY1RIOGVtTTNLczNaWkpHTm1wZ2Rt?= =?utf-8?B?R1ZzQ3htc3J4TlliUlBFUXU3SXRQTkw5QkhiTlhCZ1llQ1FkK1d5SzAzckZz?= =?utf-8?B?dXlnTUhCajlnTVk2NnVRc2ljYlZDNUFHUGVVWDVLTXg5amJGTXdqOVlJdkEz?= =?utf-8?B?NjRnSEw5U2NQUm5aYmFEWDNWRTdFcUpJcHV4TWY3ZlhrZmpVWmNNVFg3QkNl?= =?utf-8?B?ZXI3L3diYUVYNEFwQWpTM2tFU1Z3a0FEVEhESFU3d1RnQ0ZYM2dRbDlUZE55?= =?utf-8?B?VnJTVjdKcVFTdzhKYjViZ2tqRmJXeDFYN0NOa25SS1ZqOERjbkZZclpjTkts?= =?utf-8?B?YWExa0NINHU4dXNUbEk5YkhEdGlmMFdFUlpwdTRTeVcxRktWNXdlK3FoaFps?= =?utf-8?B?UHYxbi9JSGtoalNBZEt1U3JiTkVaTWdDYkluejV4cEd5bUtEcGNoRklzOG0v?= =?utf-8?B?eS9mbHQ5ZklvYWIxeFVmMnZHZWhDWFdCVk5hMUs5UktlcnlTUG1GRjFwUUor?= =?utf-8?B?MFRVcitwTnFodU8zK0pRWnQ3WkloQkVmeGEyUWpYblM2MXlFYzZ2V1h4Tk5w?= =?utf-8?B?cGJxMk5yaTdTVGNYRFZsNFYyR2c5SFhvK25LU2k1SVp3VDdZRkdXZG1rUGNv?= =?utf-8?B?Slh5NFhXM09raGlySUdFcWFCN0tmQUxmeWNZYk9OVWFLaEFscElzYlh3TGxr?= =?utf-8?B?Ym5RY3ZuY1BGYjh1R0tPbkxYaTJXZVQ5UTAyaTk4V05FTHlMQ1UxeWZKTE1R?= =?utf-8?B?Q09ra0N2QktsMlVQbUFKNHYwbGlUS3V0SXVVbGZHeFAzaVkyQWptYXRGYmJn?= =?utf-8?Q?e0cc=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c09e3b75-bfdc-4cfb-fc07-08db54e8248b X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 02:00:22.4771 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oeGQO33HL3plHQxPza6V04Lsaf9ascCHJJK0FoqG6FnyGdf9oXe+nJxhnrEZ72t2EBjoUwiq0+JLpdzq6pFXPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6637 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 W0FNRCBPZmZpY2lhbCBVc2UgT25seSAtIEdlbmVyYWxdDQoNClRoYW5rcyBUaW5oLCB0aGF0IHR5 cG8gaXMgY29ycmVjdGVkLiBKdXN0IEkgYW0gbm90IGdvaW5nIHRvIHNlbmQgYW5vdGhlciB2ZXJz aW9uIG9mIHBhdGNoIHNldCBmb3IgdGhpcyBjaGFuZ2UgZm9yIHJldmlldy4NCkFibmVyDQoNCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGluaCBOZ3V5ZW4gPHRpbmhuZ3V5 ZW5AYW1wZXJlbWFpbC5vbm1pY3Jvc29mdC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgTWF5IDE1LCAy MDIzIDEyOjQ3IEFNDQo+IFRvOiBDaGFuZywgQWJuZXIgPEFibmVyLkNoYW5nQGFtZC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVs LmNvbT47IEF0dGFyLCBBYmR1bExhdGVlZiAoQWJkdWwgTGF0ZWVmKQ0KPiA8QWJkdWxMYXRlZWYu QXR0YXJAYW1kLmNvbT47IE5pY2tsZSBXYW5nIDxuaWNrbGV3QG52aWRpYS5jb20+OyBUaW5oDQo+ IE5ndXllbiA8dGluaG5ndXllbkBvcy5hbXBlcmVjb21wdXRpbmcuY29tPg0KPiBTdWJqZWN0OiBS ZTogW2VkazItcGxhdGZvcm1zXVtQQVRDSCAxLzJdIE1hbmFnZWFiaWxpdHlQa2cvSXBtaUZyYjog SVBNSQ0KPiBGUkIgRHJpdmVyDQo+IA0KPiBDYXV0aW9uOiBUaGlzIG1lc3NhZ2Ugb3JpZ2luYXRl ZCBmcm9tIGFuIEV4dGVybmFsIFNvdXJjZS4gVXNlIHByb3Blcg0KPiBjYXV0aW9uIHdoZW4gb3Bl bmluZyBhdHRhY2htZW50cywgY2xpY2tpbmcgbGlua3MsIG9yIHJlc3BvbmRpbmcuDQo+IA0KPiAN Cj4gUmV2aWV3ZWQtYnk6IFRpbmggTmd1eWVuIDx0aW5obmd1eWVuQG9zLmFtcGVyZWNvbXB1dGlu Zy5jb20+DQo+IA0KPiBUaGVyZSBpcyBhIG1pbm9yIHR5cG8gdGhhdCBJIGNvbW1lbnRlZCBvbiBi ZWxvdy4NCj4gDQo+IA0KPiBPbiAxMy8wNS8yMDIzIDE5OjMzLCBhYm5lci5jaGFuZ0BhbWQuY29t IHdyb3RlOg0KPiA+IEZyb206IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiA+ DQo+ID4gSXBtaUZyYiBpcyBjbG9uZWQgZnJvbQ0KPiA+IGVkazItcGxhdGZvcm1zL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvDQo+ID4gSXBtaUZlYXR1cmVQa2cvRnJiIGluIG9y ZGVyIHRvIGNvbnNvbGlkYXRlDQo+ID4gZWRrMiBzeXN0ZW0gbWFuYWdlYWJpbGl0eSBzdXBwb3J0 IGluIG9uZSBwbGFjZS4NCj4gPiBVbmN1c3RpZnkgaXMgYXBwbGllZCB0byBDIGZpbGVzIGFuZCBu byBmdW5jdGlvbmFsaXRpZXMNCj4gPiBhcmUgY2hhbmdlZCBpbiB0aGlzIHBhdGNoLg0KPiA+DQo+ ID4gV2Ugd2lsbCBzdGlsbCBrZWVwIHRoZSBvbmUgdW5kZXIgSXBtaUZlYXR1cmVQa2cvRnJiDQo+ ID4gdW50aWwgdGhlIHJlZmVyZW5jZSB0byB0aGlzIGluc3RhbmNlIGFyZSByZW1vdmVkIGZyb20N Cj4gPiBwbGF0Zm9ybXMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBBYm5lciBDaGFuZyA8YWJu ZXIuY2hhbmdAYW1kLmNvbT4NCj4gPiBDYzogSXNhYWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVs LmNvbT4NCj4gPiBDYzogQWJkdWwgTGF0ZWVmIEF0dGFyIDxhYmRhdHRhckBhbWQuY29tPg0KPiA+ IENjOiBOaWNrbGUgV2FuZyA8bmlja2xld0BudmlkaWEuY29tPg0KPiA+IENjOiBUaW5oIE5ndXll biA8dGluaG5ndXllbkBvcy5hbXBlcmVjb21wdXRpbmcuY29tPg0KPiA+IC0tLQ0KPiA+ICAgLi4u L01hbmFnZWFiaWxpdHlQa2cvTWFuYWdlYWJpbGl0eVBrZy5kZWMgICAgIHwgICA1ICsNCj4gPiAg IC4uLi9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJEeGUuaW5mICAgICAgICAgICAgICB8ICAzNyArKysN Cj4gPiAgIC4uLi9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJQZWkuaW5mICAgICAgICAgICAgICB8ICAz NyArKysNCj4gPiAgIC4uLi9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJEeGUuYyAgICAgICAgICAgICAg ICB8IDIxMiArKysrKysrKysrKysrKysrKysNCj4gPiAgIC4uLi9Vbml2ZXJzYWwvSXBtaUZyYi9G cmJQZWkuYyAgICAgICAgICAgICAgICB8ICA4NyArKysrKysrDQo+ID4gICA1IGZpbGVzIGNoYW5n ZWQsIDM3OCBpbnNlcnRpb25zKCspDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVy ZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJEeGUuaW5mDQo+ID4gICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwv SXBtaUZyYi9GcmJQZWkuaW5mDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gRmVhdHVyZXMv TWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJEeGUuYw0KPiA+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+IEZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlG cmIvRnJiUGVpLmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5 UGtnL01hbmFnZWFiaWxpdHlQa2cuZGVjDQo+IGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9N YW5hZ2VhYmlsaXR5UGtnLmRlYw0KPiA+IGluZGV4IDM4ODEzYzVmNDguLmIwY2EwMTA5NGEgMTAw NjQ0DQo+ID4gLS0tIGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9NYW5hZ2VhYmlsaXR5UGtn LmRlYw0KPiA+ICsrKyBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvTWFuYWdlYWJpbGl0eVBr Zy5kZWMNCj4gPiBAQCAtODAsMyArODAsOCBAQA0KPiA+DQo+IGdNYW5hZ2VhYmlsaXR5UGtnVG9r ZW5TcGFjZUd1aWQuUGNkTWFuYWdlYWJpbGl0eUR4ZU1jdHBFbmFibGV8RkFMU0UNCj4gfEJPT0xF QU58MHgxMDAwMDAwNQ0KPiA+DQo+IGdNYW5hZ2VhYmlsaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNk TWFuYWdlYWJpbGl0eUR4ZVBsZG1TbWJpb3NUcmFuc2YNCj4gZXJFbmFibGV8RkFMU0V8Qk9PTEVB TnwweDEwMDAwMDA2DQo+ID4NCj4gPiArW1BjZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4XQ0KPiA+ ICsNCj4gZ01hbmFnZWFiaWxpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RGUkIyRW5hYmxlZEZsYWd8 VFJVRXxCT09MRUFOfDANCj4geDIwMDAwMDAxDQo+ID4gKyAgIyMgVGhpcyBpcyB0aGUgdGltZW91 dCB2YWx1ZSBpbiBtaWxsaXNlY29uZHMsIGRlZmF1bHQgc2V0IHRvIDM2MA0KPiBtaWxsaXNlY29u ZHMNCj4gPiArICAjIEBQcm9tcHQgSVBNSSBGYXVsdCBSZXNpbGllbnQgQm9vdGluZyB0aW1lb3V0 IHZhbHVlIGluIG1pbGxpc2Vjb25kcy4NCj4gPiArDQo+IGdNYW5hZ2VhYmlsaXR5UGtnVG9rZW5T cGFjZUd1aWQuUGNkRlJCVGltZW91dFZhbHVlfDM2MHxVSU5UMTZ8MHgyMA0KPiAwMDAwMDINCj4g PiBkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZy Yi9GcmJEeGUuaW5mDQo+IGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBt aUZyYi9GcmJEeGUuaW5mDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAw MDAwMDAwLi5hZTU3ZmU3Njk3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ZlYXR1cmVz L01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlGcmIvRnJiRHhlLmluZg0KPiA+IEBAIC0w LDAgKzEsMzcgQEANCj4gPiArIyMjIEBmaWxlDQo+ID4gKyMgQ29tcG9uZW50IGRlc2NyaXB0aW9u IGZpbGUgZm9yIElQTUkgRlJCLg0KPiA+ICsjDQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE4IC0g MjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsj DQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g PiArIw0KPiA+ICsjIyMNCj4gPiArDQo+ID4gK1tkZWZpbmVzXQ0KPiA+ICsgIElORl9WRVJTSU9O ICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPiA+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgID0gRnJi RHhlDQo+ID4gKyAgRklMRV9HVUlEICAgICAgICAgICAgPSBBMTQyQ0VFNS05OUQ1LTRFQ0YtOTQz RS1EOEYwREUzMDUyQUENCj4gPiArICBNT0RVTEVfVFlQRSAgICAgICAgICA9IERYRV9EUklWRVIN Cj4gPiArICBWRVJTSU9OX1NUUklORyAgICAgICA9IDEuMA0KPiA+ICsgIEVOVFJZX1BPSU5UICAg ICAgICAgID0gRnJiRHhlRW50cnlQb2ludA0KPiA+ICsNCj4gPiArW1NvdXJjZXNdDQo+ID4gKyAg RnJiRHhlLmMNCj4gPiArDQo+ID4gK1tQYWNrYWdlc10NCj4gPiArICBNYW5hZ2VhYmlsaXR5UGtn L01hbmFnZWFiaWxpdHlQa2cuZGVjDQo+ID4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4gPiArICBN ZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsNCj4gPiArW0xpYnJhcnlDbGFzc2Vz XQ0KPiA+ICsgIFVlZmlMaWINCj4gPiArICBCYXNlTWVtb3J5TGliDQo+ID4gKyAgRGVidWdMaWIN Cj4gPiArICBJcG1pQ29tbWFuZExpYg0KPiA+ICsgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiAr ICBQY2RMaWINCj4gPiArICBVZWZpQm9vdFNlcnZpY2VzVGFibGVMaWINCj4gPiArICBVZWZpRHJp dmVyRW50cnlQb2ludA0KPiA+ICsNCj4gPiArW0RlcGV4XQ0KPiA+ICsgIFRSVUUNCj4gPiBkaWZm IC0tZ2l0IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJQ ZWkuaW5mDQo+IGIvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZyYi9G cmJQZWkuaW5mDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw Li44OWQ2MzNmMzJlDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ZlYXR1cmVzL01hbmFn ZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlGcmIvRnJiUGVpLmluZg0KPiA+IEBAIC0wLDAgKzEs MzcgQEANCj4gPiArIyMjIEBmaWxlDQo+ID4gKyMgQ29tcG9uZW50IGRlc2NyaXB0aW9uIGZpbGUg Zm9yIElQTUkgRlJCIFBFSU0uDQo+ID4gKyMNCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTggLSAy MDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyMN Cj4gPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ICsjDQo+ID4gKyMjIw0KPiA+ICsNCj4gPiArW2RlZmluZXNdDQo+ID4gKyAgSU5GX1ZFUlNJT04g ICAgICAgICAgPSAweDAwMDEwMDA1DQo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgPSBGcmJQ ZWkNCj4gPiArICBGSUxFX0dVSUQgICAgICAgICAgICA9IDdDQUFFMUE3LTBCMzctNEVFQS1BNDMy LTJGMjAzREE2RjI4OA0KPiA+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgID0gUEVJTQ0KPiA+ICsg IFZFUlNJT05fU1RSSU5HICAgICAgID0gMS4wDQo+ID4gKyAgRU5UUllfUE9JTlQgICAgICAgICAg PSBJbml0aWFsaXplRnJiUGVpDQo+ID4gKw0KPiA+ICtbU291cmNlc10NCj4gPiArICBGcmJQZWku Yw0KPiA+ICsNCj4gPiArW1BhY2thZ2VzXQ0KPiA+ICsgIE1hbmFnZWFiaWxpdHlQa2cvTWFuYWdl YWJpbGl0eVBrZy5kZWMNCj4gPiArICBNZGVQa2cvTWRlUGtnLmRlYw0KPiA+ICsNCj4gPiArW0xp YnJhcnlDbGFzc2VzXQ0KPiA+ICsgIEJhc2VNZW1vcnlMaWINCj4gPiArICBEZWJ1Z0xpYg0KPiA+ ICsgIElwbWlDb21tYW5kTGliDQo+ID4gKyAgUGNkTGliDQo+ID4gKyAgUGVpbUVudHJ5UG9pbnQN Cj4gPiArDQo+ID4gK1tQY2RdDQo+ID4gKyAgZ01hbmFnZWFiaWxpdHlQa2dUb2tlblNwYWNlR3Vp ZC5QY2RGUkIyRW5hYmxlZEZsYWcNCj4gPiArICBnTWFuYWdlYWJpbGl0eVBrZ1Rva2VuU3BhY2VH dWlkLlBjZEZSQlRpbWVvdXRWYWx1ZQ0KPiA+ICsNCj4gPiArW0RlcGV4XQ0KPiA+ICsgIFRSVUUN Cj4gPiBkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvTWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBt aUZyYi9GcmJEeGUuYw0KPiBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lw bWlGcmIvRnJiRHhlLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAw MDAwMDAuLjQ2Zjc0MWVlZDENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvRmVhdHVyZXMv TWFuYWdlYWJpbGl0eVBrZy9Vbml2ZXJzYWwvSXBtaUZyYi9GcmJEeGUuYw0KPiA+IEBAIC0wLDAg KzEsMjEyIEBADQo+ID4gKy8qKiBAZmlsZQ0KPiA+ICsgICAgSVBNSSBGYXVsdCBSZXNpbGllbnQg Qm9vdGluZyBEcml2ZXIuDQo+ID4gKw0KPiA+ICtDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDE5LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gK1NQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gKw0KPiA+ICsqKi8NCj4g PiArDQo+ID4gKyNpbmNsdWRlIDxQaUR4ZS5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9VZWZp Qm9vdFNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIu aD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ICsjaW5jbHVk ZSA8TGlicmFyeS9VZWZpTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9j YXRpb25MaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+DQo+ID4gKyNpbmNs dWRlIDxMaWJyYXJ5L0lwbWlDb21tYW5kTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0 YW5kYXJkL0lwbWkuaD4NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoaXMgcm91dGluZSBkaXNh YmxlcyB0aGUgc3BlY2lmaWVkIEZSQiB0aW1lci4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklf U1RBVFVTICBFRklfU1VDQ0VTUyAgICAgIEZSQiB0aW1lciB3YXMgZGlzYWJsZWQNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgIEVGSV9BQk9SVEVEICAgICAgVGltZXIgd2FzIGFscmVhZHkgc3Rv cHBlZA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgRUZJX1VOU1VQUE9SVEVEICBUaGlzIHR5 cGUgb2YgRlJCIHRpbWVyIGlzIG5vdCBzdXBwb3J0ZWQuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiAr RUZJX1NUQVRVUw0KPiA+ICtFZmlEaXNhYmxlRnJiICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKQ0K PiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsN Cj4gPiArICBJUE1JX1NFVF9XQVRDSERPR19USU1FUl9SRVFVRVNUICAgU2V0V2F0Y2hkb2dUaW1l cjsNCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGxldGlvbkNv ZGU7DQo+ID4gKyAgSVBNSV9HRVRfV0FUQ0hET0dfVElNRVJfUkVTUE9OU0UgIEdldFdhdGNoZG9n VGltZXI7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IElwbWlHZXRXYXRjaGRvZ1RpbWVyICgmR2V0 V2F0Y2hkb2dUaW1lcik7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsg ICAgcmV0dXJuIFN0YXR1czsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8g Q2hlY2sgaWYgdGltZXIgaXMgc3RpbGwgcnVubmluZywgaWYgbm90IGFib3J0IGRpc2FibGUgcm91 dGluZS4NCj4gPiArICAvLw0KPiA+ICsgIGlmIChHZXRXYXRjaGRvZ1RpbWVyLlRpbWVyVXNlLkJp dHMuVGltZXJSdW5uaW5nID09IDApIHsNCj4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4g PiArICB9DQo+ID4gKw0KPiA+ICsgIFplcm9NZW0gKCZTZXRXYXRjaGRvZ1RpbWVyLCBzaXplb2Yg KFNldFdhdGNoZG9nVGltZXIpKTsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEp1c3QgZmxpcCB0aGUg VGltZXIgVXNlIGJpdC4gVGhpcyBzaG91bGQgcmVsZWFzZSB0aGUgdGltZXIuDQo+ID4gKyAgLy8N Cj4gPiArICBTZXRXYXRjaGRvZ1RpbWVyLlRpbWVyVXNlLkJpdHMuVGltZXJSdW5uaW5nICAgID0g MDsNCj4gPiArICBTZXRXYXRjaGRvZ1RpbWVyLlRpbWVyVXNlLkJpdHMuVGltZXJVc2UgICAgICAg ID0NCj4gSVBNSV9XQVRDSERPR19USU1FUl9CSU9TX0ZSQjI7DQo+ID4gKyAgU2V0V2F0Y2hkb2dU aW1lci5UaW1lclVzZUV4cGlyYXRpb25GbGFnc0NsZWFyICY9IH5CSVQyOw0KPiA+ICsgIFNldFdh dGNoZG9nVGltZXIuVGltZXJVc2VFeHBpcmF0aW9uRmxhZ3NDbGVhciB8PSBCSVQxIHwgQklUNDsN Cj4gPiArDQo+ID4gKyAgU3RhdHVzID0gSXBtaVNldFdhdGNoZG9nVGltZXIgKCZTZXRXYXRjaGRv Z1RpbWVyLA0KPiAmQ29tcGxldGlvbkNvZGUpOw0KPiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4g K30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoaXMgZnVuY3Rpb24gZGlzYWJsZXMgRlJCMi4g VGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCBlYWNoIHRpbWUgdGhlDQo+ID4gKyAgRUZJX0VWRU5U X1NJR05BTF9SRUFEWV9UT19CT09UIGdldHMgc2lnbmFsZWQNCj4gPiArDQo+ID4gKyAgQHBhcmFt W2luXSBFdmVudCAgICBUaGUgaGFuZGxlIG9mIGNhbGxiYWNrIGV2ZW50Lg0KPiA+ICsgIEBwYXJh bVtpbl0gQ29udGV4dCAgVGhpcyBzaG91bGQgYmUgTlVMTCBtZWFucyBubyBjb250ZXh0IGFzc29j aWF0ZWQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhpcyBldmVudC4NCj4gPiAr DQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtEaXNhYmxlRlJCMkhhbmRs ZXIgKA0KPiA+ICsgIElOIEVGSV9FVkVOVCAgRXZlbnQsDQo+ID4gKyAgSU4gVk9JRCAgICAgICAq Q29udGV4dA0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIh ISEgZW50ZXIgRGlzYWJsZUZSQjJIYW5kbGVyKCkhISFcbiIpKTsNCj4gPiArDQo+ID4gKyAgRWZp RGlzYWJsZUZyYiAoKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVGhpcyBmdW5j dGlvbiBjaGVja3MgdGhlIFdhdGNoZG9nIHRpbWVyIGV4cGlyYXRpb24gZmxhZ3MgYW5kDQo+ID4g KyAgcmVwb3J0IHRoZSBraW5kIG9mIHdhdGNoZG9nIHRpbWVvdXQgb2NjdXJyZWQgdG8gdGhlIEVy cm9yDQo+ID4gKyAgTWFuYWdlci4NCj4gPiArDQo+ID4gKyAgQHJldHZhbCBFRklfU1RBVFVTICBF RklfU1VDQ0VTUyAgVGltZW91dCBzdGF0dXMgaXMgY2hlY2tlZCBhbmQNCj4gY2xlYXJlZC4NCj4g PiArICAgICAgICAgICAgICAgICAgICAgIEVGSV9FUlJPUiAgICBUaGVyZSB3YXMgYW4gZXJyb3Ig d2hlbiBjaGVjayBhbmQgY2xlYXINCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aW1lb3V0IHN0YXR1cy4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICtFRklfU1RBVFVTDQo+ ID4gK0NoZWNrRm9yQW5kUmVwb3J0RXJyb3JzICgNCj4gPiArICBWT0lEDQo+ID4gKyAgKQ0KPiA+ ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4g PiArICBJUE1JX0dFVF9XQVRDSERPR19USU1FUl9SRVNQT05TRSAgR2V0V2F0Y2hkb2dUaW1lcjsN Cj4gPiArICBJUE1JX1NFVF9XQVRDSERPR19USU1FUl9SRVFVRVNUICAgU2V0V2F0Y2hkb2dUaW1l cjsNCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcGxldGlvbkNv ZGU7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gR2V0IHRoZSBXYXRjaGRvZyB0aW1lciBp bmZvIHRvIGZpbmQgb3V0IHdoYXQga2luZCBvZiB0aW1lciBleHBpcmF0aW9uDQo+IG9jY3VycmVk Lg0KPiA+ICsgIC8vDQo+ID4gKyAgU3RhdHVzID0gSXBtaUdldFdhdGNoZG9nVGltZXIgKCZHZXRX YXRjaGRvZ1RpbWVyKTsNCj4gPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAg ICByZXR1cm4gU3RhdHVzOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBJ ZiBGUkIyIEZhaWx1cmUgb2NjdXJyZWQsIHJlcG9ydCBpdCB0byB0aGUgZXJyb3IgbWFuYWdlciBh bmQgbG9nIGEgU0VMLg0KPiA+ICsgIC8vDQo+ID4gKyAgaWYgKChHZXRXYXRjaGRvZ1RpbWVyLlRp bWVyVXNlRXhwaXJhdGlvbkZsYWdzQ2xlYXIgJiBCSVQxKSAhPSAwKSB7DQo+ID4gKyAgICAvLw0K PiA+ICsgICAgLy8gUmVwb3J0IHRoZSBGUkIyIHRpbWUtb3V0IGVycm9yDQo+ID4gKyAgICAvLw0K PiA+ICsgIH0gZWxzZSBpZiAoKEdldFdhdGNoZG9nVGltZXIuVGltZXJVc2VFeHBpcmF0aW9uRmxh Z3NDbGVhciAmIEJJVDMpICE9IDApDQo+IHsNCj4gPiArICAgIC8vDQo+ID4gKyAgICAvLyBSZXBv cnQgdGhlIE9TIFdhdGNoZG9nIHRpbWVyIGZhaWx1cmUNCj4gPiArICAgIC8vDQo+ID4gKyAgfQ0K PiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIE5lZWQgdG8gY2xlYXIgVGltZXIgZXhwaXJhdGlv biBmbGFncyBhZnRlciBjaGVja2luZy4NCj4gPiArICAvLw0KPiA+ICsgIFplcm9NZW0gKCZTZXRX YXRjaGRvZ1RpbWVyLCBzaXplb2YgKFNldFdhdGNoZG9nVGltZXIpKTsNCj4gPiArICBTZXRXYXRj aGRvZ1RpbWVyLlRpbWVyVXNlICAgICAgICAgICAgICAgICAgICAgID0gR2V0V2F0Y2hkb2dUaW1l ci5UaW1lclVzZTsNCj4gPiArICBTZXRXYXRjaGRvZ1RpbWVyLlRpbWVyQWN0aW9ucyAgICAgICAg ICAgICAgICAgID0NCj4gR2V0V2F0Y2hkb2dUaW1lci5UaW1lckFjdGlvbnM7DQo+ID4gKyAgU2V0 V2F0Y2hkb2dUaW1lci5QcmV0aW1lb3V0SW50ZXJ2YWwgICAgICAgICAgICA9DQo+IEdldFdhdGNo ZG9nVGltZXIuUHJldGltZW91dEludGVydmFsOw0KPiA+ICsgIFNldFdhdGNoZG9nVGltZXIuVGlt ZXJVc2VFeHBpcmF0aW9uRmxhZ3NDbGVhciAgPQ0KPiBHZXRXYXRjaGRvZ1RpbWVyLlRpbWVyVXNl RXhwaXJhdGlvbkZsYWdzQ2xlYXI7DQo+ID4gKyAgU2V0V2F0Y2hkb2dUaW1lci5Jbml0aWFsQ291 bnRkb3duVmFsdWUgICAgICAgICA9DQo+IEdldFdhdGNoZG9nVGltZXIuSW5pdGlhbENvdW50ZG93 blZhbHVlOw0KPiA+ICsgIFNldFdhdGNoZG9nVGltZXIuVGltZXJVc2UuQml0cy5UaW1lclJ1bm5p bmcgICAgPSAxOw0KPiA+ICsgIFNldFdhdGNoZG9nVGltZXIuVGltZXJVc2VFeHBpcmF0aW9uRmxh Z3NDbGVhciB8PSBCSVQxIHwgQklUMiB8IEJJVDM7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IElw bWlTZXRXYXRjaGRvZ1RpbWVyICgmU2V0V2F0Y2hkb2dUaW1lciwNCj4gJkNvbXBsZXRpb25Db2Rl KTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAgVGhpcyByb3V0aW5lIGlzIGJ1aWx0IG9ubHkgd2hlbiBERUJVR19NT0RFIGlzIGVu YWJsZWQuICBJdCBpcyB1c2VkDQo+ID4gKyAgdG8gcmVwb3J0IHRoZSBzdGF0dXMgb2YgRlJCMiB3 aGVuIHRoZSBGUkIyIGRyaXZlciBpcyBpbnN0YWxsZWQuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwg RUZJX1NUQVRVUyAgRUZJX1NVQ0NFU1MgIEFsbCBpbmZvIHdhcyByZXRyaWV2ZWQgYW5kIHJlcG9y dGVkDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBFRklfRVJST1IgICAgVGhlcmUgd2FzIGFu IGVycm9yIGR1cmluZyBpbmZvIHJldHJpZXZhbA0KPiA+ICsNCj4gPiArKiovDQo+ID4gK0VGSV9T VEFUVVMNCj4gPiArUmVwb3J0RnJiMlN0YXR1cyAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4g PiArew0KPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ ID4gKyAgSVBNSV9HRVRfV0FUQ0hET0dfVElNRVJfUkVTUE9OU0UgIEdldFdhdGNoZG9nVGltZXI7 DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gR2V0IHRoZSBXYXRjaGRvZyB0aW1lciBpbmZv IHRvIGZpbmQgb3V0IHdoYXQga2luZCBvZiB0aW1lciBleHBpcmF0aW9uDQo+IG9jY3VycmVkLg0K PiA+ICsgIC8vDQo+ID4gKyAgU3RhdHVzID0gSXBtaUdldFdhdGNoZG9nVGltZXIgKCZHZXRXYXRj aGRvZ1RpbWVyKTsNCj4gPiArICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gKyAgICBE RUJVRyAoKERFQlVHX0lORk8sICJGYWlsZWQgdG8gZ2V0IFdhdGNoZG9nIFRpbWVyIGluZm8gZnJv bQ0KPiBCTUMuXG4iKSk7DQo+ID4gKyAgICByZXR1cm4gU3RhdHVzOw0KPiA+ICsgIH0NCj4gPiAr DQo+ID4gKyAgLy8NCj4gPiArICAvLyBDaGVjayBpZiB0aW1lciBpcyBydW5uaW5nLCByZXBvcnQg c3RhdHVzIHRvIERFQlVHX01PREUgb3V0cHV0Lg0KPiA+ICsgIC8vDQo+ID4gKyAgaWYgKEdldFdh dGNoZG9nVGltZXIuVGltZXJVc2UuQml0cy5UaW1lclJ1bm5pbmcgPT0gMSkgew0KPiA+ICsgICAg REVCVUcgKChERUJVR19JTkZPLCAiRlJCMiBUaW1lciBpcyBydW5uaW5nLlxuIikpOw0KPiA+ICsg IH0gZWxzZSB7DQo+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICJGUkIyIFRpbWVyIGlzIG5v dCBydW5uaW5nLlxuIikpOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgcmV0dXJuIEVGSV9TVUND RVNTOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBUaGUgZW50cnkgcG9pbnQgb2Yg dGhlIElwbWkgRmF1bHQgUmVzaWxpZW50IEJvb3RpbmcgRFhFIGRyaXZlci4NCj4gPiArDQo+ID4g KyAgQHBhcmFtW2luXSBJbWFnZUhhbmRsZSAtIEhhbmRsZSBvZiB0aGlzIGRyaXZlciBpbWFnZQ0K PiA+ICsgIEBwYXJhbVtpbl0gU3lzdGVtVGFibGUgLSBUYWJsZSBjb250YWluaW5nIHN0YW5kYXJk IEVGSSBzZXJ2aWNlcw0KPiA+ICsNCj4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgIC0gSVBN SSBQcm90b2NvbCBpcyBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5Lg0KPiA+ICsgIEByZXR2YWwgT3Ro ZXJ3aXNlICAgICAgLSBPdGhlciBlcnJvcnMuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArRUZJX1NU QVRVUw0KPiA+ICtFRklBUEkNCj4gPiArRnJiRHhlRW50cnlQb2ludCAoDQo+ID4gKyAgSU4gRUZJ X0hBTkRMRSAgICAgICAgSW1hZ2VIYW5kbGUsDQo+ID4gKyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAg KlN5c3RlbVRhYmxlDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX0VWRU5UICAgUmVhZHlU b0Jvb3RFdmVudDsNCj4gPiArICBFRklfU1RBVFVTICBTdGF0dXM7DQo+ID4gKw0KPiA+ICsgIENo ZWNrRm9yQW5kUmVwb3J0RXJyb3JzICgpOw0KPiA+ICsgIFJlcG9ydEZyYjJTdGF0dXMgKCk7DQo+ ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gUmVnaXN0ZXIgdGhlIGV2ZW50IHRvIERpc2FibGUg RlJCMiBiZWZvcmUgQm9vdC4NCj4gPiArICAvLw0KPiA+ICsgIFN0YXR1cyA9IEVmaUNyZWF0ZUV2 ZW50UmVhZHlUb0Jvb3RFeCAoDQo+ID4gKyAgICAgICAgICAgICBUUExfTk9USUZZLA0KPiA+ICsg ICAgICAgICAgICAgRGlzYWJsZUZSQjJIYW5kbGVyLA0KPiA+ICsgICAgICAgICAgICAgTlVMTCwN Cj4gPiArICAgICAgICAgICAgICZSZWFkeVRvQm9vdEV2ZW50DQo+ID4gKyAgICAgICAgICAgICAp Ow0KPiA+ICsNCj4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdpdCBh L0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cvVW5pdmVyc2FsL0lwbWlGcmIvRnJiUGVpLmMNCj4g Yi9GZWF0dXJlcy9NYW5hZ2VhYmlsaXR5UGtnL1VuaXZlcnNhbC9JcG1pRnJiL0ZyYlBlaS5jDQo+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi40MzFjYWMxN2Jj DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL0ZlYXR1cmVzL01hbmFnZWFiaWxpdHlQa2cv VW5pdmVyc2FsL0lwbWlGcmIvRnJiUGVpLmMNCj4gPiBAQCAtMCwwICsxLDg3IEBADQo+ID4gKy8q KiBAZmlsZQ0KPiA+ICsgICAgSVBNSSBGYXVsdCBSZXNpbGllbnQgQm9vdGluZyAoRlJCKSBQRUlN Lg0KPiA+ICsNCj4gPiArQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsjaW5j bHVkZSA8UGlQZWkuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gPiAr I2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFy eS9Jb0xpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiArI2luY2x1 ZGUgPExpYnJhcnkvSXBtaUNvbW1hbmRMaWIuaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxJbmR1 c3RyeVN0YW5kYXJkL0lwbWkuaD4NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoaXMgZnVuY3Rp b24gc2V0cyB3dGNoZG9nIHRpbWVyIGZvciBGYWlsdCBSZXNpbGllbnQgQm9vdGluZw0KPiB3YXRj aGRvZw0KPiA+ICsgIGFjY29yZGluZyB0byBGcmIyRW5hYmxlZC4NCj4gPiArDQo+ID4gKyAgQHBh cmFtIFtpbl0gIEZyYjJFbmFibGVkICBXaGV0aGVyIHRvIGVuYWJsZSBGUkIyIHRpbWVvdXQNCj4g PiArDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK1NldFdhdGNoRG9nVGltZXIgKA0KPiA+ICsg IElOIEJPT0xFQU4gIEZyYjJFbmFibGVkDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX1NU QVRVUyAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gPiArICBJUE1JX1NFVF9XQVRD SERPR19USU1FUl9SRVFVRVNUICAgRnJiVGltZXI7DQo+ID4gKyAgSVBNSV9HRVRfV0FUQ0hET0df VElNRVJfUkVTUE9OU0UgIEdldFdhdGNoZG9nVGltZXI7DQo+ID4gKyAgVUlOVDggICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvbXBsZXRpb25Db2RlOw0KPiA+ICsNCj4gPiArICBTdGF0dXMg PSBJcG1pR2V0V2F0Y2hkb2dUaW1lciAoJkdldFdhdGNoZG9nVGltZXIpOw0KPiA+ICsgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9DQo+ID4gKw0K PiA+ICsgIGlmIChGcmIyRW5hYmxlZCkgew0KPiA+ICsgICAgWmVyb01lbSAoJkZyYlRpbWVyLCBz aXplb2YgKEZyYlRpbWVyKSk7DQo+ID4gKyAgICAvLyBCeXRlIDENCj4gPiArICAgIEZyYlRpbWVy LlRpbWVyVXNlLkJpdHMuVGltZXJVc2UgPQ0KPiBJUE1JX1dBVENIRE9HX1RJTUVSX0JJT1NfRlJC MjsNCj4gPiArICAgIC8vIEJ5dGUgMg0KPiA+ICsgICAgRnJiVGltZXIuVGltZXJBY3Rpb25zLlVp bnQ4ID0gMDsgICAgLy8gTm9ybWFsQm9vdCwgTm9UaW1lT3V0SW50ZXJydXB0Lg0KPiBpLmUgbm8g YWN0aW9uIHdoZW4gQk1DIHdhdGNoZG9nIHRpbWVvdXQNCj4gPiArICAgIC8vIEJ5dGUgMw0KPiA+ ICsgICAgRnJiVGltZXIuUHJldGltZW91dEludGVydmFsID0gMDsNCj4gPiArICAgIC8vIEJ5dGUg NA0KPiA+ICsgICAgRnJiVGltZXIuVGltZXJVc2VFeHBpcmF0aW9uRmxhZ3NDbGVhciB8PSBCSVQx OyAgLy8gc2V0DQo+IEZyYjJFeHBpcmF0aW9uRmxhZw0KPiA+ICsNCj4gPiArICAgIC8vIERhdGEg Qnl0ZSA1LzYNCj4gPiArICAgIEZyYlRpbWVyLkluaXRpYWxDb3VudGRvd25WYWx1ZSA9IFBjZEdl dDE2IChQY2RGUkJUaW1lb3V0VmFsdWUpICoNCj4gMTA7DQo+ID4gKw0KPiA+ICsgICAgLy8gU2V0 IEJNQyB3YXRjaGRvZyB0aW1lcg0KPiA+ICsgICAgU3RhdHVzID0gSXBtaVNldFdhdGNoZG9nVGlt ZXIgKCZGcmJUaW1lciwgJkNvbXBsZXRpb25Db2RlKTsNCj4gPiArICAgIFN0YXR1cyA9IElwbWlS ZXNldFdhdGNoZG9nVGltZXIgKCZDb21wbGV0aW9uQ29kZSk7DQo+ID4gKyAgfQ0KPiA+ICt9DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICBUaGUgZW50cnkgcG9pbnQgb2YgdGhlIElwbWkgRmF1bHQg UmVzaWxpZW50IEJvb3RpbmcgUEVJTS4NCj4gPiArDQo+ID4gKyAgQHBhcmFtIFtpbl0gIEZpbGVI YW5kbGUgIEhhbmRsZSBvZiB0aGUgZmlsZSBiZWluZyBpbnZva2VkLg0KPiA+ICsgIEBwYXJhbSBb aW5dICBQZWlTZXJ2aWNlcyBEZXNjcmliZXMgdGhlIGxpc3Qgb2YgcG9zc2libGUgUEVJIFNlcnZp Y2VzLg0KPiA+ICsNCj4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgSW5kaWNhdGVzIHRoYXQg SXBtaSBpbml0aWFsaXphdGlvbiBjb21wbGV0ZWQNCj4gc3VjY2Vzc2Z1bGx5Lg0KPiA+ICsgIEBy ZXR2YWwgT3RoZXJzICAgICAgICBJbmRpY2F0ZXMgdGhhdCBJcG1pIGluaXRpYWxpemF0aW9uIGNv dWxkIG5vdCBjb21wbGV0ZQ0KPiBzdWNjZXNzZnVsbHkuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiAr RUZJX1NUQVRVUw0KPiA+ICtFRklBUEkNCj4gPiArSW5pdGlhbGl6ZUZyYlBlaSAoDQo+ID4gKyAg SU4gICAgICAgRUZJX1BFSV9GSUxFX0hBTkRMRSAgRmlsZUhhbmRsZSwNCj4gPiArICBJTiBDT05T VCBFRklfUEVJX1NFUlZJQ0VTICAgICAqKlBlaVNlcnZpY2VzDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ ID4gKyAgQk9PTEVBTiAgRnJiMkVuYWJsZWQ7DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8g SWYgd2UgYXJlIGJvb3Rpbmcgd2l0aCBkZWZhdWx0cywgdGhlbiBtYWtlIHN1cmUgRlJCMiBpcyBl bmFibGVkLg0KPiA+ICsgIC8vDQo+ID4gKyAgRnJiMkVuYWJsZWQgPSBQY2RHZXRCb29sIChQY2RG UkIyRW5hYmxlZEZsYWcpOw0KPiA+ICsNCj4gPiArICBTZXRXYXRjaERvZ1RpbWVyIChGcmIyRW5h YmxlZCk7DQo+ID4gKw0KPiA+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiArfQ0K