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 DD25DD80550 for ; Thu, 7 Sep 2023 07:57:41 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=Dnc4V0Z3eZul8jNTRWBOeqcqP0CL8sKbdLuimjXAXHM=; 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=1694073460; v=1; b=RI1HrjyrKgVhEsRys6fTx7NcuWRj36bfN8BFDbQgTWmd0wYFkijSlvavfQk1zOH6fLfAIdak lBLJZGCYLSpottysfE6GeaH6VZfEJ1SLOoAJTdu/DkdPDKFaE9XfLP9uFsLdpETAJ/z5kiPwxAO W3ONsO2Q6x2angJrN4OyXy8I= X-Received: by 127.0.0.2 with SMTP id 5W0WYY7687511xHKc7fMhCS4; Thu, 07 Sep 2023 00:57:40 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web11.8238.1694073459797200836 for ; Thu, 07 Sep 2023 00:57:39 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10825"; a="377202348" X-IronPort-AV: E=Sophos;i="6.02,234,1688454000"; d="scan'208";a="377202348" X-Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2023 00:57:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10825"; a="812044283" X-IronPort-AV: E=Sophos;i="6.02,234,1688454000"; d="scan'208";a="812044283" X-Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 07 Sep 2023 00:57:33 -0700 X-Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Sep 2023 00:57:34 -0700 X-Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 7 Sep 2023 00:57:33 -0700 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 7 Sep 2023 00:57:33 -0700 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.174) 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.27; Thu, 7 Sep 2023 00:57:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kJPWjLwi7TLUG/NLlTwH/tFWRDRZVtAzif0YlzooMGfeWAkgaOuCJbV59qcmkeUr89y5SoI7T0fPCsplmnwEOzjnaUqssi1T7fC1EIfSuP/BwRWifRxnB5ZHPMwjoGW99Io+XkMcs6+rnCrBQIAoOE9hXZkgmaiQ3cXxy/7ngRhSjBtAgwTotVJK0Ua8S7IQKbvOcnrwZwS/L5+k0BIS0Izm9IebJz77mQM7+2zSbteEKEWCR1rfiOkIOCyMPcN+4416G6PCYkV8toIb+R8rtMtotvW8NUdOf/jFsvkan+2ifp3qUwb8h61c0qxL6Q4UICHNiVtCVg3GCoEcl+HUtw== 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=j11emF+McyNuoVA3sSdgc44+8+ih38KK9tG4awI1vWQ=; b=T8v3phpyPAau5Iwq+JYdnBMBLT2cD+gFdojVf+iG1s6Q64y2Ka0XSPkpLPZc9NBydQ+a6yqN7Z/Ueom6im/kpVOeYzM1VbWOCEz3SS1S4l5sz42kMQBxet7ypIax05orPvLckCwUy34bxb+GVACay1/s8KK29cGK8W74EgY/jhw6Y0AND5oaQeOHjR+7gesnFnY9reVUNAN80OyREG3wSJT5be+OJEzNnFZxNOjS6tHzhO9RRLstqPTwM9KoKjoVK94fjNIXbLKbINFkRVPm3H3wxz84+sFd5cv18lY/cHNrwcDZhrOUB6V+Ab7BFfexvKwfspUYjfK+yo+2sRZ+2A== 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 DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by SA1PR11MB8326.namprd11.prod.outlook.com (2603:10b6:806:379::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.36; Thu, 7 Sep 2023 07:57:30 +0000 X-Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::38c3:ed7c:3562:2e18%4]) with mapi id 15.20.6745.035; Thu, 7 Sep 2023 07:57:30 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "Wu, Hao A" , Mike Maslenkin CC: "Henz, Patrick" Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Index: AQHZzseBJIO8HXAamkWgXd40zbxjr7AOZHvggABS3cCAAGb9AIAAAivQgAACW+A= Date: Thu, 7 Sep 2023 07:57:30 +0000 Message-ID: References: <177B4AD1F8C3A6A2.8497@groups.io> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|SA1PR11MB8326:EE_ x-ms-office365-filtering-correlation-id: 5d178785-8763-4086-a716-08dbaf781606 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: u8R9sRMd7VEAaCZhjmPWod6jCCKZ0C6ISFLEB9j9h5evrINpCPrvsYZUlxNf8TnvTSp8ID2aAXPdjJwIoUd98LNPGiiQ3I1lA7zBiUKoSqzA+LjOiZzOqtBk+ToVUZMjeZVit8QdUNNv/CjvlHgGO1D8yTuietmViHyarSXLUzwomXrcOY4Z9ugBe6IbJVqwhgLmshdQunkYxhlmcRRTEr3AeowtZW8WJt9tVGAwywK8wbFbD4x4Y/7f+wMia8Hz8UcR4BRQCyyUHsO1wBOGCa/tGSPVoWsCUkY+uCpgI1LxTCb/lFryujDbycNboRDg/tPQ+v6QX2HahZnjT/jST0qEKfusmCEvMd9qAdTZBOZIHQAP+6FPNsBJZi+sHYX3kb0d5AXZRAzx4d0HbtTcoA/3Zd5KcO1NSqm17d7c0+qdpNh6stRIp53f9aEAVR1bC76c4PVzqHGBrC/S/UiG3H8JvbOFAdZci46UHDBWZu83x7Q8pOK6vXwGpAnAxrLSJeBLbYw+kKe457J6EOuKuzUJWOsFAs/Pn+f2r/BG//1qjPJAg4W7OXWcHFpm72zJc90BK9yzfbzPiqRa4mEkPCHIdTPPbwH9Nv7NkFNl5KYgET0A5rq3/XTSjeNVbfuflBV+Pzv0u0sy10s7HpSIzQ== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VlNWN2dQb09sNHh4YUc5aDI0VWE3MEYwd3UrMVRmR1JHL09uN1FMLzJjYjNX?= =?utf-8?B?c3BWYXRFUmJkNER4bHVBT2dVbWJmdXJ6dXhzbWdsRUpXTkh6OFNEUkdKWXlO?= =?utf-8?B?WWRSb2dtTnlyYzkyYTAxaCt1ekVlZmFneWhJRURQSFFYd2pmQUJ4aFpERklW?= =?utf-8?B?V3ZVcXVaLzFTSHVxOHlyeVN3QnhjR0pRRTJVekNMb3RvR2NyUDY1NC9XZkIr?= =?utf-8?B?d3FQazN6S0FGMUpldU9RZ1RqeVJvUE95UjllbUxZcHd4WEZiclBvZUNKbll1?= =?utf-8?B?Tkk1QWNSWXpHYjhHMTFaYldKZ2lJZXdNalNpZ2cxMkMxYnRaRVFZRnNXS25a?= =?utf-8?B?TjQwTzdxUEJLTjZTeWNKb3VVTzdXK3BSN255UzdDVThIT0t1QnNib1JGNS81?= =?utf-8?B?SVdCdkExY3RqN01WTUMzSTNJYzhyek0wWXREOUxzdStUb3NvNVl2KzgzdXdM?= =?utf-8?B?eEtVeXRYR3RuVEN2MHA5cCtvQTRQLytoazIyNVIzMzJkd1l1S2t6aTh0NEpO?= =?utf-8?B?bjhJTFdpTCtsOG9qVHRrVk5zbFMwU25JZ1pESEszWWpNK0hhcmNlc3NndzZo?= =?utf-8?B?dkJZMmh5ME53djVOTldKSk1NSDhuclFPVFQwcDdlVzJEb0xlY0lyYUV2TWlK?= =?utf-8?B?U2M4Mjg4Tk5FVkZ3K0o3U3BiWnpXMzJCMU5IOGJIc3NQc1luTllEdi9CK2d5?= =?utf-8?B?NzlUbXoyN2RWcmdWNjFHalRISE1KT2NmcWFkTlUxVDFzNlVBbFBjbE10R0Yx?= =?utf-8?B?TFhjMjEvWVhJZWtrdHd5SzdoQ21CYU12UE02cGM1bldWZmF3SVd1VzI1OW1l?= =?utf-8?B?TS9uaG4yT2xCeW5PR2JTdnJJUnlDWFNnd01kYW9KNmh2OHV2TTd3UEtzRmpm?= =?utf-8?B?QW5sTktFZ0hXVGZGVUhqQXdXcFBRd0xrMGhjSTRDR2t6NHpWVmxHbWU2VGVh?= =?utf-8?B?cGp1TWNKSUl3dURtUGpqeEQ3cG5ZQld3SjNlNkZ2TjYzczZtSTVHOGQzZjVS?= =?utf-8?B?WkFPQ1F1NG9sZ1BnemRzOFBESmZaNHVQRXBqZVZZVk1ZY3pYRllUeTNFdXNs?= =?utf-8?B?SFRaempWcm5XK3JKcmR0ZFBFN1JmZ3RRT1JGNjlIYUlvVlZNWExhVlYrWGIz?= =?utf-8?B?Ykc1d0x1aHVEbjBYZE9uaFkvUjJaWk9HdWtURGN1NFI4NUF1Z2d2cUh1ck9R?= =?utf-8?B?ZmJDcGNGL00xZEE3TDVEVGUrV28yNGo1R3RQM1pLNTA4SzRnUGE0M1p5RkdR?= =?utf-8?B?ZnF1SE5HOTFzdHg0NTBXdUprbmJKU1BxcE5Jdzd2WExvK084NlFZei9QbHVo?= =?utf-8?B?TUFRcm1BdjBQdUpGTkltYVViVWpCQTRqZU41a3VBejNnOVoyRzBLK1JRV1N3?= =?utf-8?B?ZHp2aG94SEQ2ZktmaXNuMDdlSVhBNUtyU3hiZWRHTE1mS1ZkNTF5bnlkdk5j?= =?utf-8?B?SUcrUlpNWUFBb3M4Yll2RXZHMmpUcENYRUdsVmJvSjF0L0QzeVVQYy9XWWRC?= =?utf-8?B?ZWNJSlAzOVpxT3NSeHFibEFSL2NkR1VUWFRVeUdqOWphOXR0ZXBJZnRHbFpa?= =?utf-8?B?SGEyV1BKOW56MmJGdTJ5aXJueW5LSCswSnhzeEZodVZxOXRvanBYYmRIWE9q?= =?utf-8?B?ZzFBMERRUjZ0YzZDOWpHZUVUTzNSOWc5dmRWV2dJVEJPNXlBeFJOblBwMFI4?= =?utf-8?B?YTBJZDdlUisyQUxRNDl2THNFaHdmQnZlZDlKVTBPSnFyazNtMzVpNi9WR015?= =?utf-8?B?Q1Zjb25sbGJUa2Y3WXA0L2JiOEM1YjdkKzcvbHErSzFUZlZobVR1U0Vpd0lK?= =?utf-8?B?dUhXZlhSZk1sWU9QMm0xVUQ2QzlaZHlLTFV2RmdPR3l3MzJUQTU2aE5xRkxz?= =?utf-8?B?ZWVBNmUyUVhocThBOGpjYWVXZkk0Y1VwU1pPV0p5UjNMZE02Z1VwbHNkbTRG?= =?utf-8?B?TDdqZE4rRmVHQzJuc2JZS0ZHbXNIbGRsR0JMM2NaajJNaHppMmdGZTBlNy95?= =?utf-8?B?Qm0xTjNuTnAxc1kydW5wR1JKd3dtdEZuU1R6UG9VNHpXaDJJbDFBTUoveUk1?= =?utf-8?B?SnVXbERHU2FrVDJOL3lxeFBQWHhQaDduUjUvZz09?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d178785-8763-4086-a716-08dbaf781606 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2023 07:57:30.3408 (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: tBKghSNUWw2hsonpEfhj/4T593Tepq89DjZK589J5MDealcToFhB2Rx4NeGgdLVXlD94AntPQRUULoNrBLOcEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB8326 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,hao.a.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: Fox4N2cvKn6cMKNBAGWohKHqx7686176AA= 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=RI1Hrjyr; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") U3BlYWtpbmcgb2YgUGNBdENoaXBzZXRQa2cvTGlicmFyeS9BY3BpVGltZXJMaWIsIHRoZSBpbXBs ZW1lbnRhdGlvbiBvZiBiZWxvdyBpbnN0YW5jZXM6DQoqIFBlaUFjcGlUaW1lckxpYi5pbmYNCiog RHhlQWNwaVRpbWVyTGliLmluZg0KKiBTdGFuZGFsb25lTW1BY3BpVGltZXJMaWIuaW5mDQp3aWxs IG5vdCBjYWxjdWxhdGUgdGhlIFRTQyBmcmVxdWVuY3kgdXBvbiBldmVyeSBjYWxsIG9mIEdldFBl cmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMoKS4NCg0KQmVzdCBSZWdhcmRzLA0KSGFvIFd1DQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMu aW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgV3UsIEhhbw0KPiBBDQo+IFNl bnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAyMyAzOjQ4IFBNDQo+IFRvOiBNaWtlIE1hc2xl bmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g Q2M6IEhlbnosIFBhdHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZQ0KPiBQZXJm b3JtYW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KPiANCj4gSSBkbyBub3QgaGF2ZSBzdHJv bmcgb3BpbmlvbiBvbiB0aGlzIGNvbnNpZGVyaW5nIGl0IGlzIGFuIElPIGRyaXZlci4NCj4gVGhl IGNhbGwgb2YgR2V0VGltZUluTmFub1NlY29uZCgpIGlzIGFsc28gbGlrZWx5IHRvIGludm9rZQ0K PiBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzKCkgY2FsbC4NCj4gDQo+IEkgd2lsbCBs ZXQgdGhlIHBhdGNoIG93bmVyIHRvIGRlY2lkZSBvbiB0aGUgb3BlbiByYWlzZWQgYmVsb3cuDQo+ IA0KPiBCZXN0IFJlZ2FyZHMsDQo+IEhhbyBXdQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+IEZyb206IE1pa2UgTWFzbGVua2luIDxtaWtlLm1hc2xlbmtpbkBnbWFpbC5j b20+DQo+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDIzIDM6MzYgUE0NCj4gPiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPg0K PiA+IENjOiBIZW56LCBQYXRyaWNrIDxwYXRyaWNrLmhlbnpAaHBlLmNvbT4NCj4gPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZQ0K PiA+IFBlcmZvcm1hbmNlIFRpbWVyIGZvciBYSENJIFRpbWVvdXRzDQo+ID4NCj4gPiBIZWxsbyBI YW8gV3UsDQo+ID4NCj4gPiBJc24ndCBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzICgm U3RhcnRWYWx1ZSwgJkVuZFZhbHVlKSBjYWxsDQo+ID4gdG9vICJoZWF2eSIgZm9yIFhIQ0kgcGF0 aHM/DQo+ID4gTWF5IGJlIGl0J3MgYmV0dGVyIHRvIGNhY2hlIHRpbWVyIGRpcmVjdGlvbiBvbmNl Pw0KPiA+IEknbSBhc2tpbmcgaW4gYSBjb250ZXh0IG9mIFBjQXRDaGlwc2V0UGtnL0xpYnJhcnkv QWNwaVRpbWVyTGliDQo+ID4gaW5zdGFuY2UgdXNlZCBieSBhIG51bWJlciBvZiBJbnRlbCdzIHBs YXRmb3JtIGluIGVkay1wbGF0Zm9ybXMuDQo+ID4gRm9yIHRoaXMgIGxpYnJhcnkgR2V0UGVyZm9y bWFuY2VDb3VudGVyUHJvcGVydGllcyBmaW5hbGx5IGNhbGxzDQo+ID4gSW50ZXJuYWxDYWxjdWxh dGVUc2NGcmVxdWVuY3ksIHRoYXQgaXNuJ3Qgc2ltcGxlLg0KPiA+DQo+ID4gUmVnYXJkcywNCj4g PiBNaWtlDQo+ID4NCj4gPiBPbiBUaHUsIFNlcCA3LCAyMDIzIGF0IDQ6MjfigK9BTSBXdSwgSGFv IEEgPGhhby5hLnd1QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gU29ycnkgZm9yIHRo ZSBsYXRlIHJlc3BvbnNlLg0KPiA+ID4gUmV2aWV3ZWQtYnk6IEhhbyBBIFd1IDxoYW8uYS53dUBp bnRlbC5jb20+DQo+ID4gPg0KPiA+ID4gQmVzdCBSZWdhcmRzLA0KPiA+ID4gSGFvIFd1DQo+ID4g Pg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ ID4gPiBIZW56LCBQYXRyaWNrDQo+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywg MjAyMyA0OjM3IEFNDQo+ID4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiBT dWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6 IFVzZQ0KPiA+ID4gPiBQZXJmb3JtYW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KPiA+ID4g Pg0KPiA+ID4gPiBJIHNlbnQgdGhpcyBwYXRjaCBvdXQgYSBmZXcgd2Vla3MgYWdvIG5vdyBidXQg aGF2ZW4ndCBzZWVuIGENCj4gPiA+ID4gcmVwbHksIGp1c3QgY2hlY2tpbmcgaW4gdG8gbWFrZSBz dXJlIGl0IGRpZG4ndCBnZXQgbWlzc2VkLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4g PiA+IFBhdHJpY2sgSGVueg0KPiA+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4gPiBIZW56LCBQYXRyaWNrDQo+ID4gPiA+IFNlbnQ6 IE1vbmRheSwgQXVndXN0IDE0LCAyMDIzIDEwOjUyIEFNDQo+ID4gPiA+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPiA+ID4gPiBDYzogSGVueiwgUGF0cmljayA8cGF0cmljay5oZW56QGhwZS5j b20+DQo+ID4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjJdIE1kZU1vZHVsZVBr Zy9YaGNpRHhlOiBVc2UNCj4gPiA+ID4gUGVyZm9ybWFuY2UgVGltZXIgZm9yIFhIQ0kgVGltZW91 dHMNCj4gPiA+ID4NCj4gPiA+ID4gUkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9Mjk0OA0KPiA+ID4gPg0KPiA+ID4gPiBYaGNpRHhlIHVzZXMgdGhlIHRp bWVyIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGJvb3Qgc2VydmljZXMNCj4gPiA+ID4g dGFibGUgdG8gZGV0ZWN0IHRpbWVvdXQgY29uZGl0aW9ucy4gVGhpcyBicmVha3MgdGhlIGRyaXZl cidzDQo+ID4gPiA+IEV4aXRCb290U2VydmljZXMgY2FsbCBiYWNrLCBhcyBDb3JlRXhpdEJvb3RT ZXJ2aWNlcyBoYWx0cyB0aGUNCj4gPiA+ID4gdGltZXIgYmVmb3JlIHNpZ25hbGluZyB0aGUgRXhp dEJvb3RTZXJ2aWNlcyBldmVudC4gSWYgdGhlIGhvc3QNCj4gPiA+ID4gY29udHJvbGxlciBmYWls cyB0byBoYWx0IGluIHRoZSBjYWxsIGJhY2ssIHRoZSB0aW1lb3V0IGNvbmRpdGlvbg0KPiA+ID4g PiB3aWxsIG5ldmVyIG9jY3VyIGFuZCB0aGUgYm9vdCBnZXRzIHN0dWNrIGluIGFuIGluZGVmaW5p dGUgc3Bpbg0KPiA+ID4gPiBsb29wLiBVc2UgdGhlIGZyZWUgcnVubmluZyB0aW1lciBwcm92aWRl ZCBieSBUaW1lckxpYiB0byBjYWxjdWxhdGUNCj4gPiA+ID4gdGltZW91dHMsIGF2b2lkaW5nDQo+ ID4gdGhlIHBvdGVudGlhbCBoYW5nLg0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQ YXRyaWNrIEhlbnogPHBhdHJpY2suaGVuekBocGUuY29tPg0KPiA+ID4gPiBSZXZpZXdlZC1ieToN Cj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2ku YyAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiAgTWRlTW9kdWxlUGtnL0J1 cy9QY2kvWGhjaUR4ZS9YaGNpLmggICAgICB8IDIyICsrKysrKysrDQo+ID4gPiA+ICBNZGVNb2R1 bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mIHwgIDIgKw0KPiA+ID4gPiAgTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMgICB8IDY3ICsrKysrKysrKy0tLS0tLS0t LS0tLS0tDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5j IHwgNjgNCj4gPiA+ID4gKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ICA1IGZpbGVz IGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkNCj4gPiA+ID4NCj4g PiA+ID4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ ID4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+ID4gaW5k ZXggNjI2ODJkZDI3Yy4uMWRjYmUyMDUxMiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxl UGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1 cy9QY2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+ID4gQEAgLTEsNiArMSw3IEBADQo+ID4gPiA+ICAv KiogQGZpbGUNCj4gPiA+ID4gICAgVGhlIFhIQ0kgY29udHJvbGxlciBkcml2ZXIuDQo+ID4gPiA+ DQo+ID4gPiA+ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2Ug RGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4gPiA+ICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDIyLCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiByZXNlcnZlZC48QlI+DQo+ID4g PiA+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ID4g Pg0KPiA+ID4gPiBAQCAtMjI5NCwzICsyMjk1LDU4IEBAIFhoY0RyaXZlckJpbmRpbmdTdG9wICgN Cj4gPiA+ID4NCj4gPiA+ID4gICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gPiAgfQ0KPiA+ ID4gPiArDQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgQ29tcHV0ZXMgYW5kIHJldHVybnMgdGhl IGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcyBzaW5jZQ0KPiA+ID4gPiArICBQcmV2aW91c1Rp Y2suIFRoZSB2YWx1ZSBvZiBQcmV2aW91c1RpY2sgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUNCj4g PiA+ID4gKyAgY3VycmVudCBwZXJmb3JtYW5jZSBjb3VudGVyIHZhbHVlLg0KPiA+ID4gPiArDQo+ ID4gPiA+ICsgIEBwYXJhbSAgUHJldmlvdXNUaWNrICAgIFBvaW50ZXIgdG8gUHJldmlvdXNUaWNr IGNvdW50Lg0KPiA+ID4gPiArICBAcmV0dXJuIFRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29u ZHMgc2luY2UgUHJldmlvdXNDb3VudC4NCj4gPiA+ID4gKyAgICAgICAgICBQcmV2aW91c0NvdW50 IGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIGN1cnJlbnQgcGVyZm9ybWFuY2UNCj4gPiA+ID4gKyAg ICAgICAgICBjb3VudGVyIHZhbHVlLg0KPiA+ID4gPiArKiovDQo+ID4gPiA+ICtVSU5UNjQNCj4g PiA+ID4gK1hoY0dldEVsYXBzZWRUaW1lICgNCj4gPiA+ID4gKyAgSU4gT1VUIFVJTlQ2NCAgKlBy ZXZpb3VzVGljaw0KPiA+ID4gPiArICApDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsgIFVJTlQ2NCAg U3RhcnRWYWx1ZTsNCj4gPiA+ID4gKyAgVUlOVDY0ICBFbmRWYWx1ZTsNCj4gPiA+ID4gKyAgVUlO VDY0ICBDdXJyZW50VGljazsNCj4gPiA+ID4gKyAgVUlOVDY0ICBEZWx0YTsNCj4gPiA+ID4gKw0K PiA+ID4gPiArICBHZXRQZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzICgmU3RhcnRWYWx1ZSwg JkVuZFZhbHVlKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICBDdXJyZW50VGljayA9IEdldFBlcmZv cm1hbmNlQ291bnRlciAoKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArICAvLw0KPiA+ID4gPiArICAv LyBEZXRlcm1pbmUgaWYgdGhlIGNvdW50ZXIgaXMgY291bnRpbmcgdXAgb3IgZG93biAgLy8gIGlm DQo+ID4gPiA+ICsgKFN0YXJ0VmFsdWUgPCBFbmRWYWx1ZSkgew0KPiA+ID4gPiArICAgIC8vDQo+ ID4gPiA+ICsgICAgLy8gQ291bnRlciBjb3VudHMgdXB3YXJkcywgY2hlY2sgZm9yIGFuIG92ZXJm bG93IGNvbmRpdGlvbg0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgaWYgKCpQcmV2aW91 c1RpY2sgPiBDdXJyZW50VGljaykgew0KPiA+ID4gPiArICAgICAgRGVsdGEgPSAoRW5kVmFsdWUg LSAqUHJldmlvdXNUaWNrKSArIEN1cnJlbnRUaWNrOw0KPiA+ID4gPiArICAgIH0gZWxzZSB7DQo+ ID4gPiA+ICsgICAgICBEZWx0YSA9IEN1cnJlbnRUaWNrIC0gKlByZXZpb3VzVGljazsNCj4gPiA+ ID4gKyAgICB9DQo+ID4gPiA+ICsgIH0gZWxzZSB7DQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4g KyAgICAvLyBDb3VudGVyIGNvdW50cyBkb3dud2FyZHMsIGNoZWNrIGZvciBhbiB1bmRlcmZsb3cg Y29uZGl0aW9uDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICBpZiAoKlByZXZpb3VzVGlj ayA8IEN1cnJlbnRUaWNrKSB7DQo+ID4gPiA+ICsgICAgICBEZWx0YSA9IChTdGFydFZhbHVlIC0g Q3VycmVudFRpY2spICsgKlByZXZpb3VzVGljazsNCj4gPiA+ID4gKyAgICB9IGVsc2Ugew0KPiA+ ID4gPiArICAgICAgRGVsdGEgPSAqUHJldmlvdXNUaWNrIC0gQ3VycmVudFRpY2s7DQo+ID4gPiA+ ICsgICAgfQ0KPiA+ID4gPiArICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgLy8NCj4gPiA+ID4g KyAgLy8gU2V0IFByZXZpb3VzVGljayB0byBDdXJyZW50VGljayAgLy8gICpQcmV2aW91c1RpY2sg PQ0KPiA+ID4gPiArIEN1cnJlbnRUaWNrOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIHJldHVybiBH ZXRUaW1lSW5OYW5vU2Vjb25kIChEZWx0YSk7IH0NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZU1v ZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiA+IGIvTWRlTW9kdWxlUGtnL0J1 cy9QY2kvWGhjaUR4ZS9YaGNpLmgNCj4gPiA+ID4gaW5kZXggY2EyMjNiZDIwYy4uNzdmZWI2NjY0 NyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNp LmgNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmgNCj4g PiA+ID4gQEAgLTIsNiArMiw3IEBADQo+ID4gPiA+DQo+ID4gPiA+ICAgIFByb3ZpZGVzIHNvbWUg ZGF0YSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMgdXNlZCBieSB0aGUgWEhDSSBob3N0DQo+ID4gPiA+ IGNvbnRyb2xsZXIgZHJpdmVyLg0KPiA+ID4gPg0KPiA+ID4gPiArKEMpIENvcHlyaWdodCAyMDIz IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiA+ID4gPiAg Q29weXJpZ2h0IChjKSAyMDExIC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMN Cj4gPiA+ID4gcmVzZXJ2ZWQuPEJSPiBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlv bi48QlI+DQo+ID4gPiA+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudCBAQCAtMjYsNiArMjcsNyBAQA0KPiA+ID4gPiBTUERYLQ0KPiA+ID4gPiBMaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICNpbmNsdWRlDQo+ID4gPiA+IDxMaWJyYXJ5 L1VlZmlMaWIuaD4gICNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+ICAjaW5jbHVkZQ0KPiA+ ID4gPiA8TGlicmFyeS9SZXBvcnRTdGF0dXNDb2RlTGliLmg+DQo+ID4gPiA+ICsjaW5jbHVkZSA8 TGlicmFyeS9UaW1lckxpYi5oPg0KPiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgPEluZHVzdHJ5 U3RhbmRhcmQvUGNpLmg+DQo+ID4gPiA+DQo+ID4gPiA+IEBAIC0zNyw2ICszOSwxMCBAQCB0eXBl ZGVmIHN0cnVjdCBfVVNCX0RFVl9DT05URVhUDQo+ID4gVVNCX0RFVl9DT05URVhUOw0KPiA+ID4g PiAjaW5jbHVkZSAiQ29tcG9uZW50TmFtZS5oIg0KPiA+ID4gPiAgI2luY2x1ZGUgIlVzYkhjTWVt LmgiDQo+ID4gPiA+DQo+ID4gPiA+ICsvLw0KPiA+ID4gPiArLy8gQ29udmVydHMgYSBjb3VudCBm cm9tIG1pY3Jvc2Vjb25kcyB0byBuYW5vc2Vjb25kcyAvLyAjZGVmaW5lDQo+ID4gPiA+ICtYSENf TUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORChUaW1lKSAgKChVSU5UNjQpKFRpbWUpICoNCj4gMTAw MCkNCj4gPiA+ID4gIC8vDQo+ID4gPiA+ICAvLyBUaGUgdW5pdCBpcyBtaWNyb3NlY29uZCwgc2V0 dGluZyBpdCBhcyAxdXMuDQo+ID4gPiA+ICAvLw0KPiA+ID4gPiBAQCAtNzIwLDQgKzcyNiwyMCBA QCBYaGNBc3luY0lzb2Nocm9ub3VzVHJhbnNmZXIgKA0KPiA+ID4gPiAgICBJTiAgICAgVk9JRCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkNvbnRleHQNCj4gPiA+ID4gICAgKTsNCj4g PiA+ID4NCj4gPiA+ID4gKy8qKg0KPiA+ID4gPiArICBDb21wdXRlcyBhbmQgcmV0dXJucyB0aGUg ZWxhcHNlZCB0aW1lIGluIG5hbm9zZWNvbmRzIHNpbmNlDQo+ID4gPiA+ICsgIFByZXZpb3VzVGlj ay4gVGhlIHZhbHVlIG9mIFByZXZpb3VzVGljayBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZQ0KPiA+ ID4gPiArICBjdXJyZW50IHBlcmZvcm1hbmNlIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiA+ICsNCj4g PiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sgICAgUG9pbnRlciB0byBQcmV2aW91c1RpY2sg Y291bnQuDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSBjYWxsaW5n IHRoaXMgZnVuY3Rpb24uDQo+ID4gPiA+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBu YW5vc2Vjb25kcyBzaW5jZSBQcmV2aW91c0NvdW50Lg0KPiA+ID4gPiArICAgICAgICAgIFByZXZp b3VzQ291bnQgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCBwZXJmb3JtYW5jZQ0KPiA+ ID4gPiArICAgICAgICAgIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiA+ICsqKi8NCj4gPiA+ID4gK1VJ TlQ2NA0KPiA+ID4gPiArWGhjR2V0RWxhcHNlZFRpbWUgKA0KPiA+ID4gPiArICBJTiBPVVQgVUlO VDY0ICAqUHJldmlvdXNUaWNrDQo+ID4gPiA+ICsgICk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gICNl bmRpZg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9Y aGNpRHhlLmluZg0KPiA+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaUR4 ZS5pbmYNCj4gPiA+ID4gaW5kZXggNTg2NWQ4NjgyMi4uMThlZjg3OTE2YSAxMDA2NDQNCj4gPiA+ ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4g PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mDQo+ID4gPiA+ IEBAIC0zLDYgKzMsNyBAQA0KPiA+ID4gPiAgIyAgSXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNl cyBvZiBtb25pdG9yaW5nIHRoZSBzdGF0dXMgb2YgYWxsDQo+ID4gPiA+IHBvcnRzIGFuZCB0cmFu c2ZlcnJpbmcgICMgIENvbnRyb2wsIEJ1bGssIEludGVycnVwdCBhbmQNCj4gPiA+ID4gSXNvY2hy b25vdXMgcmVxdWVzdHMgdG8gdGhvc2UgYXR0YWNoZWQgdXNiIExTL0ZTL0hTL1NTIGRldmljZXMu DQo+ID4gPiA+ICAjDQo+ID4gPiA+ICsjICAoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNr YXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQNCj4gPiA+ID4gK0xQPEJSPg0KPiA+ID4gPiAgIyAg Q29weXJpZ2h0IChjKSAyMDExIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMN Cj4gPiA+ID4gcmVzZXJ2ZWQuPEJSPiAgIyAgIw0KPiA+ID4gPiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCBAQCAtNTQsNiArNTUsNyBAQA0KPiA+ID4gPiAgICBC YXNlTWVtb3J5TGliDQo+ID4gPiA+ICAgIERlYnVnTGliDQo+ID4gPiA+ICAgIFJlcG9ydFN0YXR1 c0NvZGVMaWINCj4gPiA+ID4gKyAgVGltZXJMaWINCj4gPiA+ID4NCj4gPiA+ID4gIFtHdWlkc10N Cj4gPiA+ID4gICAgZ0VmaUV2ZW50RXhpdEJvb3RTZXJ2aWNlc0d1aWQgICAgICAgICAgICAgICAg ICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIw0KPiA+ID4gPiBFdmVudA0KPiA+ID4gPiBkaWZmIC0t Z2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4gYi9N ZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lSZWcuYw0KPiA+ID4gPiBpbmRleCA1NzAw ZmM1ZmI4Li4wN2U1Nzc3MmI2IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVz L1BjaS9YaGNpRHhlL1hoY2lSZWcuYw0KPiA+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Bj aS9YaGNpRHhlL1hoY2lSZWcuYw0KPiA+ID4gPiBAQCAtMiw2ICsyLDcgQEANCj4gPiA+ID4NCj4g PiA+ID4gICAgVGhlIFhIQ0kgcmVnaXN0ZXIgb3BlcmF0aW9uIHJvdXRpbmVzLg0KPiA+ID4gPg0K PiA+ID4gPiArKEMpIENvcHlyaWdodCAyMDIzIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERl dmVsb3BtZW50IExQPEJSPg0KPiA+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxNywgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+ID4g PiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ID4N Cj4gPiA+ID4gQEAgLTQxNywxNSArNDE4LDE0IEBAIFhoY0NsZWFyT3BSZWdCaXQgKA0KPiA+ID4g PiAgICBXYWl0IHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIncyBiaXQgYXMgc3BlY2lmaWVkIGJ5IEJp dA0KPiA+ID4gPiAgICB0byBiZWNvbWUgc2V0IChvciBjbGVhcikuDQo+ID4gPiA+DQo+ID4gPiA+ IC0gIEBwYXJhbSAgWGhjICAgICAgICAgICAgICAgICAgICBUaGUgWEhDSSBJbnN0YW5jZS4NCj4g PiA+ID4gLSAgQHBhcmFtICBPZmZzZXQgICAgICAgICAgICAgICAgIFRoZSBvZmZzZXQgb2YgdGhl IG9wZXJhdGlvbiByZWdpc3Rlci4NCj4gPiA+ID4gLSAgQHBhcmFtICBCaXQgICAgICAgICAgICAg ICAgICAgIFRoZSBiaXQgb2YgdGhlIHJlZ2lzdGVyIHRvIHdhaXQgZm9yLg0KPiA+ID4gPiAtICBA cGFyYW0gIFdhaXRUb1NldCAgICAgICAgICAgICAgV2FpdCB0aGUgYml0IHRvIHNldCBvciBjbGVh ci4NCj4gPiA+ID4gLSAgQHBhcmFtICBUaW1lb3V0ICAgICAgICAgICAgICAgIFRoZSB0aW1lIHRv IHdhaXQgYmVmb3JlIGFib3J0IChpbg0KPiBtaWxsaXNlY29uZCwNCj4gPiA+ID4gbXMpLg0KPiA+ ID4gPiArICBAcGFyYW0gIFhoYyAgICAgICAgICBUaGUgWEhDSSBJbnN0YW5jZS4NCj4gPiA+ID4g KyAgQHBhcmFtICBPZmZzZXQgICAgICAgVGhlIG9mZnNldCBvZiB0aGUgb3BlcmF0aW9uIHJlZ2lz dGVyLg0KPiA+ID4gPiArICBAcGFyYW0gIEJpdCAgICAgICAgICBUaGUgYml0IG9mIHRoZSByZWdp c3RlciB0byB3YWl0IGZvci4NCj4gPiA+ID4gKyAgQHBhcmFtICBXYWl0VG9TZXQgICAgV2FpdCB0 aGUgYml0IHRvIHNldCBvciBjbGVhci4NCj4gPiA+ID4gKyAgQHBhcmFtICBUaW1lb3V0ICAgICAg VGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgYWJvcnQgKGluIG1pbGxpc2Vjb25kLA0KPiBtcykuDQo+ ID4gPiA+DQo+ID4gPiA+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgYml0 IHN1Y2Nlc3NmdWxseSBjaGFuZ2VkIGJ5IGhvc3QNCj4gPiBjb250cm9sbGVyLg0KPiA+ID4gPiAt ICBAcmV0dmFsIEVGSV9USU1FT1VUICAgICAgICAgICAgVGhlIHRpbWUgb3V0IG9jY3VycmVkLg0K PiA+ID4gPiAtICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgTWVtb3J5IGZvciB0aGUg dGltZXIgZXZlbnQgY291bGQNCj4gPiBub3QNCj4gPiA+ID4gYmUgYWxsb2NhdGVkLg0KPiA+ID4g PiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICBUaGUgYml0IHN1Y2Nlc3NmdWxseSBjaGFuZ2VkIGJ5 IGhvc3QgY29udHJvbGxlci4NCj4gPiA+ID4gKyAgQHJldHZhbCBFRklfVElNRU9VVCAgVGhlIHRp bWUgb3V0IG9jY3VycmVkLg0KPiA+ID4gPg0KPiA+ID4gPiAgKiovDQo+ID4gPiA+ICBFRklfU1RB VFVTDQo+ID4gPiA+IEBAIC00MzcsNTQgKzQzNywzNSBAQCBYaGNXYWl0T3BSZWdCaXQgKA0KPiA+ ID4gPiAgICBJTiBVSU5UMzIgICAgICAgICAgICAgVGltZW91dA0KPiA+ID4gPiAgICApDQo+ID4g PiA+ICB7DQo+ID4gPiA+IC0gIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4gPiA+ID4gLSAgRUZJX0VW RU5UICAgVGltZW91dEV2ZW50Ow0KPiA+ID4gPiAtDQo+ID4gPiA+IC0gIFRpbWVvdXRFdmVudCA9 IE5VTEw7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgVGltZW91dFRpbWU7DQo+ID4gPiA+ICsgIFVJTlQ2 NCAgRWxhcHNlZFRpbWU7DQo+ID4gPiA+ICsgIFVJTlQ2NCAgVGltZURlbHRhOw0KPiA+ID4gPiAr ICBVSU5UNjQgIEN1cnJlbnRUaWNrOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoVGltZW91dCA9 PSAwKSB7DQo+ID4gPiA+ICAgICAgcmV0dXJuIEVGSV9USU1FT1VUOw0KPiA+ID4gPiAgICB9DQo+ ID4gPiA+DQo+ID4gPiA+IC0gIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQgKA0KPiA+ID4gPiAt ICAgICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg VFBMX0NBTExCQUNLLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiA+ID4g LSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAmVGlt ZW91dEV2ZW50DQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiAtDQo+ID4g PiA+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gLSAgICBnb3RvIERPTkU7 DQo+ID4gPiA+IC0gIH0NCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICBTdGF0dXMgPSBnQlMtPlNldFRp bWVyICgNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgIFRpbWVvdXRFdmVudCwNCj4gPiA+ID4g LSAgICAgICAgICAgICAgICAgIFRpbWVyUmVsYXRpdmUsDQo+ID4gPiA+IC0gICAgICAgICAgICAg ICAgICBFRklfVElNRVJfUEVSSU9EX01JTExJU0VDT05EUyAoVGltZW91dCkNCj4gPiA+ID4gLSAg ICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KPiA+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4g PiArICBUaW1lb3V0VGltZSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ID4gKChV SU5UNjQpVGltZW91dA0KPiA+ID4gPiAqDQo+ID4gPiA+ICsgWEhDXzFfTUlMTElTRUNPTkQpOyAg RWxhcHNlZFRpbWUgPSAwOyAgQ3VycmVudFRpY2sgPQ0KPiA+ID4gPiArIEdldFBlcmZvcm1hbmNl Q291bnRlciAoKTsNCj4gPiA+ID4NCj4gPiA+ID4gICAgZG8gew0KPiA+ID4gPiAgICAgIGlmIChY SENfUkVHX0JJVF9JU19TRVQgKFhoYywgT2Zmc2V0LCBCaXQpID09IFdhaXRUb1NldCkgew0KPiA+ ID4gPiAtICAgICAgU3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+IC0gICAgICBnb3RvIERP TkU7DQo+ID4gPiA+ICsgICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+ICAgICAgfQ0K PiA+ID4gPg0KPiA+ID4gPiAgICAgIGdCUy0+U3RhbGwgKFhIQ18xX01JQ1JPU0VDT05EKTsNCj4g PiA+ID4gLSAgfSB3aGlsZSAoRUZJX0VSUk9SIChnQlMtPkNoZWNrRXZlbnQgKFRpbWVvdXRFdmVu dCkpKTsNCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICBTdGF0dXMgPSBFRklfVElNRU9VVDsNCj4gPiA+ ID4gKyAgICBUaW1lRGVsdGEgPSBYaGNHZXRFbGFwc2VkVGltZSAoJkN1cnJlbnRUaWNrKTsNCj4g PiA+ID4gKyAgICAvLyBFbnN1cmUgdGhhdCBFbGFwc2VkVGltZSBpcyBhbHdheXMgaW5jcmVtZW50 ZWQgdG8gYXZvaWQNCj4gPiA+ID4gKyBpbmRlZmluaXRlDQo+ID4gPiA+IGhhbmdzDQo+ID4gPiA+ ICsgICAgaWYgKFRpbWVEZWx0YSA9PSAwKSB7DQo+ID4gPiA+ICsgICAgICBUaW1lRGVsdGEgPSBY SENfTUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORA0KPiA+ID4gPiAoWEhDXzFfTUlDUk9TRUNPTkQp Ow0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gLURPTkU6DQo+ID4gPiA+IC0gIGlm IChUaW1lb3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4gPiAtICAgIGdCUy0+Q2xvc2VFdmVudCAo VGltZW91dEV2ZW50KTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiArICAgIEVsYXBzZWRUaW1lICs9 IFRpbWVEZWx0YTsNCj4gPiA+ID4gKyAgfSB3aGlsZSAoRWxhcHNlZFRpbWUgPCBUaW1lb3V0VGlt ZSk7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIHJldHVybiBTdGF0dXM7DQo+ID4gPiA+ICsgIHJldHVy biBFRklfVElNRU9VVDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gIC8qKg0KPiA+ID4g PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0K PiA+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVNjaGVkLmMNCj4gPiA+ ID4gaW5kZXggNTM0MjFlNjRhOC4uN2Q0YjdhNzY5ZCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gPiArKysgYi9NZGVN b2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jDQo+ID4gPiA+IEBAIC0yLDYgKzIs NyBAQA0KPiA+ID4gPg0KPiA+ID4gPiAgICBYSENJIHRyYW5zZmVyIHNjaGVkdWxpbmcgcm91dGlu ZXMuDQo+ID4gPiA+DQo+ID4gPiA+ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJk IEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFA8QlI+DQo+ID4gPiA+ICBDb3B5cmlnaHQgKGMpIDIw MTEgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ID4gPiByZXNlcnZl ZC48QlI+IENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4gIENvcHlyaWdo dA0KPiA+ID4gPiAoQykgMjAyMiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPiBAQA0KPiA+ID4gPiAtDQo+ID4gMTI3NiwxNSArMTI3NywxNCBAQCBF WElUOg0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgIEV4ZWN1dGUgdGhlIHRyYW5zZmVyIGJ5IHBv bGxpbmcgdGhlIFVSQi4gVGhpcyBpcyBhIHN5bmNocm9ub3VzDQo+IG9wZXJhdGlvbi4NCj4gPiA+ ID4NCj4gPiA+ID4gLSAgQHBhcmFtICBYaGMgICAgICAgICAgICAgICAgICAgIFRoZSBYSENJIElu c3RhbmNlLg0KPiA+ID4gPiAtICBAcGFyYW0gIENtZFRyYW5zZmVyICAgICAgICAgICAgVGhlIGV4 ZWN1dGVkIFVSQiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yDQo+ID4gbm90Lg0KPiA+ID4gPiAtICBA cGFyYW0gIFVyYiAgICAgICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRlLg0KPiA+ID4g PiAtICBAcGFyYW0gIFRpbWVvdXQgICAgICAgICAgICAgICAgVGhlIHRpbWUgdG8gd2FpdCBiZWZv cmUgYWJvcnQsIGluDQo+IG1pbGxpc2Vjb25kLg0KPiA+ID4gPiArICBAcGFyYW0gIFhoYyAgICAg ICAgICAgICAgIFRoZSBYSENJIEluc3RhbmNlLg0KPiA+ID4gPiArICBAcGFyYW0gIENtZFRyYW5z ZmVyICAgICAgIFRoZSBleGVjdXRlZCBVUkIgaXMgZm9yIGNtZCB0cmFuc2ZlciBvcg0KPiBub3Qu DQo+ID4gPiA+ICsgIEBwYXJhbSAgVXJiICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRl Lg0KPiA+ID4gPiArICBAcGFyYW0gIFRpbWVvdXQgICAgICAgICAgIFRoZSB0aW1lIHRvIHdhaXQg YmVmb3JlIGFib3J0LCBpbiBtaWxsaXNlY29uZC4NCj4gPiA+ID4NCj4gPiA+ID4gLSAgQHJldHVy biBFRklfREVWSUNFX0VSUk9SICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRyYW5z ZmVyDQo+IGVycm9yLg0KPiA+ID4gPiAtICBAcmV0dXJuIEVGSV9USU1FT1VUICAgICAgICAgICAg VGhlIHRyYW5zZmVyIGZhaWxlZCBkdWUgdG8gdGltZSBvdXQuDQo+ID4gPiA+IC0gIEByZXR1cm4g RUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgdHJhbnNmZXIgZmluaXNoZWQgT0suDQo+ID4gPiA+ IC0gIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBNZW1vcnkgZm9yIHRoZSB0aW1lciBl dmVudCBjb3VsZA0KPiA+IG5vdA0KPiA+ID4gPiBiZSBhbGxvY2F0ZWQuDQo+ID4gPiA+ICsgIEBy ZXR1cm4gRUZJX0RFVklDRV9FUlJPUiAgVGhlIHRyYW5zZmVyIGZhaWxlZCBkdWUgdG8gdHJhbnNm ZXIgZXJyb3IuDQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX1RJTUVPVVQgICAgICAgVGhlIHRyYW5z ZmVyIGZhaWxlZCBkdWUgdG8gdGltZSBvdXQuDQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NF U1MgICAgICAgVGhlIHRyYW5zZmVyIGZpbmlzaGVkIE9LLg0KPiA+ID4gPg0KPiA+ID4gPiAgKiov DQo+ID4gPiA+ICBFRklfU1RBVFVTDQo+ID4gPiA+IEBAIC0xMjk5LDEyICsxMjk5LDE0IEBAIFho Y0V4ZWNUcmFuc2ZlciAoDQo+ID4gPiA+ICAgIFVJTlQ4ICAgICAgIFNsb3RJZDsNCj4gPiA+ID4g ICAgVUlOVDggICAgICAgRGNpOw0KPiA+ID4gPiAgICBCT09MRUFOICAgICBGaW5pc2hlZDsNCj4g PiA+ID4gLSAgRUZJX0VWRU5UICAgVGltZW91dEV2ZW50Ow0KPiA+ID4gPiArICBVSU5UNjQgICAg ICBUaW1lb3V0VGltZTsNCj4gPiA+ID4gKyAgVUlOVDY0ICAgICAgRWxhcHNlZFRpbWU7DQo+ID4g PiA+ICsgIFVJTlQ2NCAgICAgIFRpbWVEZWx0YTsNCj4gPiA+ID4gKyAgVUlOVDY0ICAgICAgQ3Vy cmVudFRpY2s7DQo+ID4gPiA+ICAgIEJPT0xFQU4gICAgIEluZGVmaW5pdGVUaW1lb3V0Ow0KPiA+ ID4gPg0KPiA+ID4gPiAgICBTdGF0dXMgICAgICAgICAgICA9IEVGSV9TVUNDRVNTOw0KPiA+ID4g PiAgICBGaW5pc2hlZCAgICAgICAgICA9IEZBTFNFOw0KPiA+ID4gPiAtICBUaW1lb3V0RXZlbnQg ICAgICA9IE5VTEw7DQo+ID4gPiA+ICAgIEluZGVmaW5pdGVUaW1lb3V0ID0gRkFMU0U7DQo+ID4g PiA+DQo+ID4gPiA+ICAgIGlmIChDbWRUcmFuc2Zlcikgew0KPiA+ID4gPiBAQCAtMTMyMiwzNCAr MTMyNCwxNCBAQCBYaGNFeGVjVHJhbnNmZXIgKA0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoVGlt ZW91dCA9PSAwKSB7DQo+ID4gPiA+ICAgICAgSW5kZWZpbml0ZVRpbWVvdXQgPSBUUlVFOw0KPiA+ ID4gPiAtICAgIGdvdG8gUklOR0RPT1JCRUxMOw0KPiA+ID4gPiAtICB9DQo+ID4gPiA+IC0NCj4g PiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQo+ID4gPiA+IC0gICAgICAgICAg ICAgICAgICBFVlRfVElNRVIsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUUExfQ0FMTEJB Q0ssDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgTlVMTCwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICZUaW1lb3V0RXZlbnQN Cj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+ID4g ICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAtICBTdGF0dXMgPSBnQlMtPlNldFRpbWVyICgNCj4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgIFRpbWVvdXRFdmVudCwNCj4gPiA+ID4gLSAgICAgICAgICAg ICAgICAgIFRpbWVyUmVsYXRpdmUsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBFRklfVElN RVJfUEVSSU9EX01JTExJU0VDT05EUyAoVGltZW91dCkNCj4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgICk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0K PiA+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiAtDQo+ID4gPiA+ IC1SSU5HRE9PUkJFTEw6DQo+ID4gPiA+ICAgIFhoY1JpbmdEb29yQmVsbCAoWGhjLCBTbG90SWQs IERjaSk7DQo+ID4gPiA+DQo+ID4gPiA+ICsgIFRpbWVvdXRUaW1lID0gWEhDX01JQ1JPU0VDT05E X1RPX05BTk9TRUNPTkQNCj4gPiAoKFVJTlQ2NClUaW1lb3V0DQo+ID4gPiA+ICoNCj4gPiA+ID4g KyBYSENfMV9NSUxMSVNFQ09ORCk7ICBFbGFwc2VkVGltZSA9IDA7ICBDdXJyZW50VGljayA9DQo+ ID4gPiA+ICsgR2V0UGVyZm9ybWFuY2VDb3VudGVyICgpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAg IGRvIHsNCj4gPiA+ID4gICAgICBGaW5pc2hlZCA9IFhoY0NoZWNrVXJiUmVzdWx0IChYaGMsIFVy Yik7DQo+ID4gPiA+ICAgICAgaWYgKEZpbmlzaGVkKSB7DQo+ID4gPiA+IEBAIC0xMzU3LDIyICsx MzM5LDIyIEBAIFJJTkdET09SQkVMTDoNCj4gPiA+ID4gICAgICB9DQo+ID4gPiA+DQo+ID4gPiA+ ICAgICAgZ0JTLT5TdGFsbCAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPiA+ID4gPiAtICB9IHdoaWxl IChJbmRlZmluaXRlVGltZW91dCB8fCBFRklfRVJST1IgKGdCUy0+Q2hlY2tFdmVudA0KPiA+ID4g PiAoVGltZW91dEV2ZW50KSkpOw0KPiA+ID4gPiArICAgIFRpbWVEZWx0YSA9IFhoY0dldEVsYXBz ZWRUaW1lICgmQ3VycmVudFRpY2spOw0KPiA+ID4gPiArICAgIC8vIEVuc3VyZSB0aGF0IEVsYXBz ZWRUaW1lIGlzIGFsd2F5cyBpbmNyZW1lbnRlZCB0byBhdm9pZA0KPiA+ID4gPiArIGluZGVmaW5p dGUNCj4gPiA+ID4gaGFuZ3MNCj4gPiA+ID4gKyAgICBpZiAoVGltZURlbHRhID09IDApIHsNCj4g PiA+ID4gKyAgICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ ID4gPiA+IChYSENfMV9NSUNST1NFQ09ORCk7DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPg0KPiA+ ID4gPiAtRE9ORToNCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4g PiAtICAgIFVyYi0+UmVzdWx0ID0gRUZJX1VTQl9FUlJfTk9URVhFQ1VURTsNCj4gPiA+ID4gLSAg fSBlbHNlIGlmICghRmluaXNoZWQpIHsNCj4gPiA+ID4gKyAgICBFbGFwc2VkVGltZSArPSBUaW1l RGVsdGE7DQo+ID4gPiA+ICsgIH0gd2hpbGUgKEluZGVmaW5pdGVUaW1lb3V0IHx8IEVsYXBzZWRU aW1lIDwgVGltZW91dFRpbWUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGlmICghRmluaXNoZWQp IHsNCj4gPiA+ID4gICAgICBVcmItPlJlc3VsdCA9IEVGSV9VU0JfRVJSX1RJTUVPVVQ7DQo+ID4g PiA+ICAgICAgU3RhdHVzICAgICAgPSBFRklfVElNRU9VVDsNCj4gPiA+ID4gICAgfSBlbHNlIGlm IChVcmItPlJlc3VsdCAhPSBFRklfVVNCX05PRVJST1IpIHsNCj4gPiA+ID4gICAgICBTdGF0dXMg PSBFRklfREVWSUNFX0VSUk9SOw0KPiA+ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+IC0gIGlm IChUaW1lb3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4gPiAtICAgIGdCUy0+Q2xvc2VFdmVudCAo VGltZW91dEV2ZW50KTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiAtDQo+ID4gPiA+ICAgIHJldHVy biBTdGF0dXM7DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+IC0tDQo+ID4gPiA+IDIuMzQu MQ0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+DQo+ID4gPg0KPiANCj4gDQo+IA0KPiANCg0KDQoKLT0tPS09LT0tPS09LT0t PS09LT0tPS0KR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2VudCB0 byB0aGlzIGdyb3VwLgpWaWV3L1JlcGx5IE9ubGluZSAoIzEwODM2NCk6IGh0dHBzOi8vZWRrMi5n cm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzEwODM2NApNdXRlIFRoaXMgVG9waWM6IGh0dHBzOi8v Z3JvdXBzLmlvL210LzEwMDczOTUwOC83Njg2MTc2Ckdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBl ZGsyLmdyb3Vwcy5pbwpVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVs L3Vuc3ViIFtyZWJlY2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09LT0tPS09LT0tPS0KCg0K