Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C5F52C05027 for ; Mon, 6 Feb 2023 15:28:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230056AbjBFP17 (ORCPT ); Mon, 6 Feb 2023 10:27:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229645AbjBFP16 (ORCPT ); Mon, 6 Feb 2023 10:27:58 -0500 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2103.outbound.protection.outlook.com [40.107.244.103]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4753A72AB for ; Mon, 6 Feb 2023 07:27:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZFRhhfkPnFFWKEkTwLTCABmj/WXUjXJFKTAJy6i3mcANDzvqXrDn8P2OvlxP3LYxZS8rWTo09kilV917U+DpulsWyX72/qi9j5VTnWCIV1yrOsRMl9wAdvHKXI4teuuFvQq3CG48rTCe5EINAJFS/YGhfUHb5CLfsNAd+8UBm6YuxWgoHAxer0EFP5AknMQsxDy92O/kHd0qISdfoAdPIIR5OkvCcorRpKM2Dm/hscuvI+AakW9MR19sALPSlGZllYOWCiSlJUchXqvbFlDTwzqZ2cFEdwbxRwhLjJamZ0nc4ux5/JgLR6+i7dnKIKZThEW9j69iWw1wiIKB78s3zA== 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=2Xd5QDszphE0ccqhhLlXp2gVxLInLUVQLE9wAu+M3zM=; b=ifSHzy/RS7purlbkvS+nEAECbmNfkpu7UX3SjyHzXb7WnL3KMa4qcFS+SI8hNEPeTzWT/5BLqrBD8+AQWogz4t365/TZVPENKiVS/1RRNo1F0aUPILQVG9yyqMONpimf75nQ014I/+pi2gRwhvx0Jh+X3aS0j1l6afh4IGEwv2URVhC3IJr/bfu6fxI6CEP8gEeFOVniJv9nwIWa8T04Sr3qyclhtNRjw/qhLnxISGE0s1zTnQSOoNZcqx+cchimpnAHbg4niest2529y0gP9vMZjApPVstyl6UzKQbTA6QgrUoipBiIpq6Q74Sae5oTSfzVe1gScMxSp53/6VMV7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=boatrocker.com; dmarc=pass action=none header.from=boatrocker.com; dkim=pass header.d=boatrocker.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=boatrocker.onmicrosoft.com; s=selector2-boatrocker-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2Xd5QDszphE0ccqhhLlXp2gVxLInLUVQLE9wAu+M3zM=; b=3PPD1Yh6XeDUYkepHSO82kVZ2hy/fegWbrowZVkah5ZSrnSnggwmI+Auaui5STZhsvcXlJWA2ZCRV7NAy0JEPI1fjeEGP8cnWkrnfZJWWkM9zZjXpoLoJDtC3BCnSrxUCHh0FAhPrxe/6t8p/olIYwSphzmOBKH10F1+vIUybig= Received: from YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:69::7) by YQBPR0101MB5702.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:31::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34; Mon, 6 Feb 2023 15:27:52 +0000 Received: from YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM ([fe80::7303:f215:657e:1643]) by YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM ([fe80::7303:f215:657e:1643%4]) with mapi id 15.20.6064.034; Mon, 6 Feb 2023 15:27:52 +0000 From: Andrew Klaassen To: Andrew Klaassen , Jeff Layton , "linux-nfs@vger.kernel.org" Subject: RE: Trying to reduce NFSv4 timeouts to a few seconds on an established connection Thread-Topic: Trying to reduce NFSv4 timeouts to a few seconds on an established connection Thread-Index: AdkvR33g3mzLGSb7R/abGwkCKolj9QCUyz5AAA3zOxAAIFt1AACi9rVAAAFExoAAAB8OIAABI44AAJGeUGAAwz0wEA== Date: Mon, 6 Feb 2023 15:27:52 +0000 Message-ID: References: <654e3b7d15992d191b2b2338483f29aec8b10ee1.camel@kernel.org> <3c02bd2df703a68093db057c51086bbf767ffeb1.camel@kernel.org> <936efa478e786be19cb9715eba1941ebc4f94a1b.camel@kernel.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=boatrocker.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: YQBPR01MB10724:EE_|YQBPR0101MB5702:EE_ x-ms-office365-filtering-correlation-id: 1a24d4fd-3ec9-40ac-4c06-08db0856b67a x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230025)(39850400004)(366004)(376002)(346002)(396003)(136003)(451199018)(38070700005)(122000001)(38100700002)(33656002)(6506007)(186003)(26005)(55236004)(9686003)(76116006)(478600001)(86362001)(8676002)(66476007)(66556008)(66946007)(64756008)(83380400001)(7696005)(71200400001)(316002)(110136005)(2906002)(30864003)(44832011)(66446008)(5660300002)(55016003)(8936002)(52536014)(41300700001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: niYqwRikju2f97G9CUmn6BoN9VXah1OhiBfeDm6iRvQorVT6Hgq0clfs01+vYlVl4VdOMX8F0c7bjev9hFQnVrNT7NUtJ6KOlaeSvk0D4d4Y/qzIsGA4q+dKGUyrv87GJFFk4Jlaf2XAIbjaN16yNVXSJ3DU1At+m0EFAaFiaLu9yokPReuVUn0RIAXXujM5xWMUjsaLXuJXDPHyI+rf1qajKlkjj4sTnUn+etTz4l1Kfhd1aG7dUGApO38844OyLY0MnPij8I22ISoU43vHlTz+XknXjsvrw8JL2a94FSIU+BBoNHAtkjVpnR99POCd6pSLCFfFH1LugvF+0QxHnXNqzrfM+1giDvKg9csPiWKkfiaIgNfew0dc2OhmSTUriAf3/7Nh/0REwuRpiUFHupwjM5FEVyOf1RFOmOqia5GGA/karAmnojpJ8z//BA5/Yzo09yiHjca3/rFBbtY89W5rDwMftrlyi3xWTG02znPQh1+/f5fpyYm5j/stYRmhENjR2//Or5ioFQJ8K0Owy8YK2OqxWmQVAio4adVkfSHSURVOZSm58fE+5apKi+/X+0oGN5hT4gxZaFzlWs3PxwI7HhrQ+S4MwiEnp4fhXiAD0lExAJJy0WTjU0yqXFVCpQgGvUmU192VjXRCIio9XI6OHUfCD6j+j9+MCe1VZwztEY0ToQGHYQJ4Dg29bSvOlRgmcoamJSFqJCkeWncw8A== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MHNRU09lSlc0NzNiT0ljZUZPT0drM0dPSHJRdjZPRVRqOGtRcXRGakZMVDM0?= =?utf-8?B?NmVPUHhpZllHTW1KckVnd0hHSHJHYzBtUTkrR1RmaytMUlFUaGsxbkhlNlpU?= =?utf-8?B?cGpRbXpoN2NPcWovSnlKNnNza29ybWp2KzErRXo3d2JQb2U0SXVLdmNMbGRs?= =?utf-8?B?YmU1Q1RLRWdmYmVsREVnMnBPa1QwN0RTbFh5N3ljQ1R6b3lZazVVTWQwRitj?= =?utf-8?B?eDdxRHI4QnBFRWwxcmQ1SjVsblNDaFg4T2FIckovYndTWDJ5MEQ4anVUY0tK?= =?utf-8?B?bFBEbkhjU0xZeHdEQW8xQzlFSjNjdm5LdVhwRzZsK2xXL3Nqb0c3Szk0dllW?= =?utf-8?B?ME1meXF6UVp3UWlqTU9Kb0QwUGJWSDRYMEpTamZIVkRJUkczOGN0YXhQMEFh?= =?utf-8?B?WmJNeG9WcjQ2R3dJeW1hTmhLc0VFbkRrUWNMUXA1ZjRQUVRCdkJoOW52OEpW?= =?utf-8?B?THFuS1NlanpJZzFZZTMvSnVacWlZUzJ2cmdqK1RyR251bDZXblBKb3NCTFdz?= =?utf-8?B?ckpTT2ozT3llOHZyakNDUHFGdlRuT1puTWVzeWRicFBCRnJGQkFzU0ZXOTUx?= =?utf-8?B?WGhmaXFsT3JiQmJURU1hMkRxOVp3TDY3ZkZBclZ0WHM4UERXZzZrNVZLcjN2?= =?utf-8?B?VGpuaG9oR1kxU1doNThFY1FqSEU0QUpkcVgxUmVzUitFemJuNXNvU0traWI1?= =?utf-8?B?K3ZjQ0xDWGd0V3ZaTnkyUE1NdzljT29Db01sMzc1UGhUYlV0UVpNZlllNGtV?= =?utf-8?B?V0tJbERlS0xhWlZacUVRZ0M1WUMzY1VIcHlValFBUGJyd0ZJU0JRZXpOdU4v?= =?utf-8?B?a3JGSG5rOUQxRThNTllveXdqTWRnYWpibFAwTWU2L1lmTks0ZitCWitaM3c5?= =?utf-8?B?U25LdERLcjVaZWVrTmVmNnVkeWNJc25tYXp3ME94R1gzOFNhM1ZRSHZ0eSs0?= =?utf-8?B?eVhEM3ZKQTVFSzA5d0oyU1RDNVJRZ2tLNTJCRW9YdytZd1hmaTdnNDkxR2tU?= =?utf-8?B?UVR0SmRNcnJtaWQ1cGlhRG1nRFQ2anVzZHdzanJ5YU1xZDVJZ1FhbmxFRm1F?= =?utf-8?B?c1l6TTB4b1hmNjZpd3UxcDJ0bjlXOFA3bWRNOHNXSVhxREJPRjBIY2dLamZ4?= =?utf-8?B?alJQVCtiaFNRVmxSWGFvVnIrQVNCRkpVU1g1M0ZqbFhCSWt5KzJzL0pQOCtX?= =?utf-8?B?dy9TNzhHTGtzenB5TU0zTTlYSTNqZUd2TU5GT1lhWG5aMXpNaGpwZzhqV0Zk?= =?utf-8?B?Q1UxanlmdnRncGM3bjhFVFZoc3pVM2wxNE0zQnJRUzdUNXBFSkVLUG9uRk1v?= =?utf-8?B?MEVLZVpMNGY0aGJlS3MvbkJXazlTM05DOUxWTjBJQncvVjE4NVR2UnUrdWtW?= =?utf-8?B?YURwZ1lIYnNJMkFxbTdodnNGdXVzNTRob3ZocTJ5SnZFR2F0KzdRQnNuUU1N?= =?utf-8?B?bVhLcmMwbkNHQ2d1RmZXK3EzTEtpZ0l3U2RRM3UxcElkVXpPOFArV3hnRGJw?= =?utf-8?B?U3QybnEyVThzbGpkSlNCOEFWYytGczlxaWVxcE0yMTdwdTh6SW9ZN3FYcXdn?= =?utf-8?B?ZWxQakx0L1B6aldSQUpvMG5Ea2oyUFowNldzVUlTVUhjMGRic2F2UlZJVko4?= =?utf-8?B?dnovdTVxWk5ZYyt4K2hmVGgzaG1JbXRIbXpPbGxGdTlwQ2Z1dkZlSHFYVjVx?= =?utf-8?B?Nm5Jc1JwMjF0alZIazEzZ2RWMXgyRkpVNjU0dVk3a1h4bmlXelpQY2FtTDhG?= =?utf-8?B?ZGxsZVV4a0lmSXpHRis0RU1kcEp3d2N4TU1ZY2dteHNZemdNVjBuY2FqS3ZT?= =?utf-8?B?SE5raEk1MkRHQThsNmdrWmMzM3hpaDloUEFEb1BIS21waEphaTNXcGRVcEVn?= =?utf-8?B?Y0o2R0JJYUNhSHdLdElSS1lScEdTb3JsdWppQXpqSFROWmdQemhGS0N3dExN?= =?utf-8?B?cjNyNjRId2dWMFdsUkQ2TW5wQ0Y3VHNvWStmQm9IRmJpSmNFd3p2a2RKeHhI?= =?utf-8?B?NUZ5WXVNa3IzNnppOENKMXRTNmtBUldwTm9RSmtWcFFFdEFwSEtuMUlsMjBu?= =?utf-8?B?ZE9KQWhnOXMrMjE1dWVjdXROUnBiWVNwbzZDSld1MWdKY3QxL1NwdnpzY0c5?= =?utf-8?B?amREZkV3a3ZDRVZQT0k2Q2RqYXdGQStCQnVEVnNKZU0zTm9JSFpIcnpvR05E?= =?utf-8?B?Smc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: boatrocker.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YQBPR01MB10724.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 1a24d4fd-3ec9-40ac-4c06-08db0856b67a X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2023 15:27:52.4267 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fd92a966-cd05-4664-965e-b69e7529781a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qeNWFe4/kzCNtM3dmE4hIJ343P/9PTbmrmSwljVX5dshisQehyBwBS6dh+bJJ2lfD3dvVRcuFYrOJZSb6QgRYi2qBwOoaaZfIbVqZ2X6mCY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB5702 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org PiBGcm9tOiBBbmRyZXcgS2xhYXNzZW4gPGFuZHJldy5rbGFhc3NlbkBib2F0cm9ja2VyLmNvbT4N Cj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDIsIDIwMjMgMToxNiBQTQ0KPiANCj4gPiBGcm9t OiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPg0KPiA+IFNlbnQ6IE1vbmRheSwgSmFu dWFyeSAzMCwgMjAyMyAzOjMyIFBNDQo+ID4NCj4gPiBPbiBNb24sIDIwMjMtMDEtMzAgYXQgMjA6 MDMgKzAwMDAsIEFuZHJldyBLbGFhc3NlbiB3cm90ZToNCj4gPiA+ID4gRnJvbTogSmVmZiBMYXl0 b24gPGpsYXl0b25Aa2VybmVsLm9yZz4NCj4gPiA+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDMw LCAyMDIzIDI6NTYgUE0NCj4gPiA+ID4NCj4gPiA+ID4gT24gTW9uLCAyMDIzLTAxLTMwIGF0IDE5 OjMzICswMDAwLCBBbmRyZXcgS2xhYXNzZW4gd3JvdGU6DQo+ID4gPiA+ID4gPiBGcm9tOiBKZWZm IExheXRvbiA8amxheXRvbkBrZXJuZWwub3JnPg0KPiA+ID4gPiA+ID4gU2VudDogRnJpZGF5LCBK YW51YXJ5IDI3LCAyMDIzIDg6MzMgQU0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBPbiBUaHUs IDIwMjMtMDEtMjYgYXQgMjI6MDggKzAwMDAsIEFuZHJldyBLbGFhc3NlbiB3cm90ZToNCj4gPiA+ ID4gPiA+ID4gPiBGcm9tOiBBbmRyZXcgS2xhYXNzZW4gPGFuZHJldy5rbGFhc3NlbkBib2F0cm9j a2VyLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAyNiwgMjAy MyAxMDozMiBBTQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBBbmRy ZXcgS2xhYXNzZW4gPGFuZHJldy5rbGFhc3NlbkBib2F0cm9ja2VyLmNvbT4NCj4gPiA+ID4gPiA+ ID4gPiA+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAyMywgMjAyMyAxMTozMSBBTQ0KPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhlbGxvLA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+IFRoZXJlJ3MgYSBzcGVjaWZpYyBORlN2NCBtb3VudCBvbiBhIHNwZWNp ZmljIG1hY2hpbmUNCj4gPiA+ID4gPiA+ID4gPiA+IHdoaWNoIHdlJ2QgbGlrZSB0byB0aW1lb3V0 IGFuZCByZXR1cm4gYW4gZXJyb3IgYWZ0ZXIgYQ0KPiA+ID4gPiA+ID4gPiA+ID4gZmV3IHNlY29u ZHMgaWYgdGhlIHNlcnZlciBnb2VzIGF3YXkuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gSSd2ZSBjb25maXJtZWQgdGhlIGZvbGxvd2luZyBvbiB0d28gZGlmZmVyZW50IGtl cm5lbHMsDQo+ID4gPiA+ID4gPiA+ID4gPiA0LjE4LjAtDQo+ID4gPiA+ID4gPiA+ID4gPiAzNDgu MTIuMi5lbDhfNS54ODZfNjQgYW5kIDYuMS43LTIwMC5mYzM3Lng4Nl82NC4NCj4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJJ3ZlIGJlZW4gYWJsZSB0byBnZXQgYm90aCBhdXRv ZnMgYW5kIHRoZSBtb3VudCBjb21tYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiB0byBjb29wZXJhdGUs IHNvIHRoYXQgdGhlIG1vdW50IGF0dGVtcHQgZmFpbHMgYWZ0ZXIgYW4NCj4gPiA+ID4gPiA+ID4g PiA+IGFyYml0cmFyeSBudW1iZXIgb2Ygc2Vjb25kcy4NCj4gPiA+ID4gPiA+ID4gPiA+IFRoaXMg bW91bnQgY29tbWFuZCwgZm9yIGV4YW1wbGUsIHdpbGwgZmFpbCBhZnRlciA2DQo+ID4gPiA+ID4g PiA+ID4gPiBzZWNvbmRzLCBhcyBleHBlY3RlZCBiYXNlZCBvbiB0aGUNCj4gPiA+ID4gPiA+ID4g PiA+IHRpbWVvPTIwLHJldHJhbnM9MixyZXRyeT0wIG9wdGlvbnM6DQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gJCB0aW1lIHN1ZG8gbW91bnQgLXQgbmZzNCAtbw0KPiA+ID4g PiA+ID4gPiA+ID4gcncscmVsYXRpbWUsc3luYyx2ZXJzPTQuMixyc2l6ZT0xMzEwNzIsd3NpemU9 MTMxMDcyLG5hbWwNCj4gPiA+ID4gPiA+ID4gPiA+IGVuDQo+ID4gPiA+ID4gPiA+ID4gPiA9MjU1 DQo+ID4gPiA+ID4gPiA+ID4gPiAsYWNyDQo+ID4gPiA+ID4gPiA+ID4gPiBlZ21pDQo+ID4gPiA+ ID4gPiA+ID4gPiBuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID0wLGFjcmVn bWF4PTAsYWNkaXJtaW49MCxhY2Rpcm1heD0wLHNvZnQsbm9hYyxwcm90bz10Y3AsdGkNCj4gPiA+ ID4gPiA+ID4gPiBtZQ0KPiA+ID4gPiA+ID4gPiA+IG89MjANCj4gPiA+ID4gPiA+ID4gPiAscmV0 DQo+ID4gPiA+ID4gPiA+ID4gcmENCj4gPiA+ID4gPiA+ID4gPiA+IG4gcz0yLHJldHJ5PTAsc2Vj PXN5cyB0aG9yMDQ6L21udC90aG9yZnMwNCAgL21udC90aG9yMDQNCj4gPiA+ID4gPiA+ID4gPiA+ IG1vdW50Lm5mczQ6IENvbm5lY3Rpb24gdGltZWQgb3V0DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gcmVhbCAgICAwbTYuMDg0cw0KPiA+ID4gPiA+ID4gPiA+ID4gdXNlciAg ICAwbTAuMDA3cw0KPiA+ID4gPiA+ID4gPiA+ID4gc3lzICAgICAwbTAuMDE1cw0KPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEhvd2V2ZXIsIGlmIHRoZSBzaGFyZSBpcyBhbHJl YWR5IG1vdW50ZWQgYW5kIHRoZSBzZXJ2ZXINCj4gPiA+ID4gPiA+ID4gPiA+IGdvZXMgYXdheSwg dGhlIHRpbWVvdXQgaXMgYWx3YXlzIDIgbWludXRlcyBwbHVzIHRoZSB0aW1lDQo+ID4gPiA+ID4g PiA+ID4gPiBJIGV4cGVjdCBiYXNlZCBvbiB0aW1lbyBhbmQgcmV0cmFucy4gIEluIHRoaXMgY2Fz ZSwgMg0KPiA+ID4gPiA+ID4gPiA+ID4gbWludXRlcyBhbmQgNg0KPiA+ID4gPiA+ID4gPiA+ID4g c2Vjb25kczoNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAkIHRpbWUgbHMg L21udC90aG9yMDQNCj4gPiA+ID4gPiA+ID4gPiA+IGxzOiBjYW5ub3QgYWNjZXNzICcvbW50L3Ro b3IwNCc6IENvbm5lY3Rpb24gdGltZWQgb3V0DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gcmVhbCAgICAybTYuMDI1cw0KPiA+ID4gPiA+ID4gPiA+ID4gdXNlciAgICAwbTAu MDAzcw0KPiA+ID4gPiA+ID4gPiA+ID4gc3lzICAgICAwbTAuMDAwcw0KPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFdhdGNoaW5nIHRoZSBvdXRnb2luZyBwYWNrZXRzIGluIHRo ZSBzZWNvbmQgY2FzZSwgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBwYXR0ZXJuIGlzIGFsd2F5cyB0 aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHNhbWU6DQo+ID4gPiA+ID4gPiA+ID4gPiAgLSAwLjIgc2Vj b25kcyBiZXR3ZWVuIHRoZSBmaXJzdCB0d28sIHRoZW4gZG91YmxpbmcgZWFjaA0KPiA+ID4gPiA+ ID4gPiA+ID4gdGltZSB1bnRpbCB0aGUgdHdvIG1pbnV0ZSBtYXJrIGlzIGV4Y2VlZGVkIChzbyB0 aGUgbGFzdA0KPiA+ID4gPiA+ID4gPiA+ID4gTkZTIHBhY2tldCwgd2hpY2ggaXMgYWx3YXlzIHRo ZSAxMXRoIHBhY2tldCwgaXMgc2VudA0KPiA+ID4gPiA+ID4gPiA+ID4gYXJvdW5kIDE6NDUgYWZ0 ZXIgdGhlIGZpcnN0KS4NCj4gPiA+ID4gPiA+ID4gPiA+ICAtIFRoZW4gc29tZSBnZW5lcmljIHBh Y2tldHMgdGhhdCBzdGFydCBleGFjdGx5LWlzaCBvbg0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlIHR3 byBtaW51dGUgbWFyaywgMSBzZWNvbmQgYmV0d2VlbiB0aGUgZmlyc3QgdHdvLA0KPiA+ID4gPiA+ ID4gPiA+ID4gdGhlbiBkb3VibGluZyBlYWNoIHRpbWUuDQo+ID4gPiA+ID4gPiA+ID4gPiAoQnkN Cj4gPiA+ID4gPiA+ID4gPiA+IHRoaXMgdGltZSB0aGUgTkZTIGNvbW1hbmQgaGFzIGdpdmVuIHVw LikNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAxMToxMDoyMS44OTgzMDUg SVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6DQo+ID4gPiA+ID4gPiA+ID4gPiBG bGFncyBbUC5dLCBzZXEgMTQ0NTI6MTQ2NTIsIGFjayAxODU2MSwgd2luIDUwMSwgb3B0aW9ucw0K PiA+ID4gPiA+ID4gPiA+ID4gW25vcCxub3AsVFMgdmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA4MzQ4 ODk0ODMgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ ID4gPiA+ID4gPiA+IDM2MTQ5MDQyNTYNCj4gPiA+ID4gPiA+ID4gPiA+IDE5NiBnZXRhdHRyIGZo DQo+ID4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiA+IDExOjEwOjIyLjEw NTE4OSBJUCAxMC4zMC4xMy4yLjkxNiA+IDEwLjMxLjMuMTMuMjA0OToNCj4gPiA+ID4gPiA+ID4g PiA+IEZsYWdzIFtQLl0sIHNlcSAxNDQ1MjoxNDY1MiwgYWNrIDE4NTYxLCB3aW4gNTAxLCBvcHRp b25zDQo+ID4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA+ IDgzNDg4OTY5MCBlY3IgMTU4OTc2OTIwM10sIGxlbmd0aCAyMDA6IE5GUyByZXF1ZXN0IHhpZA0K PiA+ID4gPiA+ID4gPiA+ID4gMzYxNDkwNDI1Ng0KPiA+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0 dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiA+IDAsMi81Mw0KPiA+ID4gPiA+ID4gPiA+ID4gMTE6MTA6 MjIuMzEzMjkwIElQIDEwLjMwLjEzLjIuOTE2ID4gMTAuMzEuMy4xMy4yMDQ5Og0KPiA+ID4gPiA+ ID4gPiA+ID4gRmxhZ3MgW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEs IG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiA+IFtub3Asbm9wLFRTIHZhbA0KPiA+ID4gPiA+ID4g PiA+ID4gODM0ODg5ODk4IGVjciAxNTg5NzY5MjAzXSwgbGVuZ3RoIDIwMDogTkZTIHJlcXVlc3Qg eGlkDQo+ID4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gPiAxOTYg Z2V0YXR0ciBmaA0KPiA+ID4gPiA+ID4gPiA+ID4gMCwyLzUzDQo+ID4gPiA+ID4gPiA+ID4gPiAx MToxMDoyMi43MjEyNjkgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6DQo+ID4g PiA+ID4gPiA+ID4gPiBGbGFncyBbUC5dLCBzZXEgMTQ0NTI6MTQ2NTIsIGFjayAxODU2MSwgd2lu IDUwMSwgb3B0aW9ucw0KPiA+ID4gPiA+ID4gPiA+ID4gW25vcCxub3AsVFMgdmFsDQo+ID4gPiA+ ID4gPiA+ID4gPiA4MzQ4OTAzMDYgZWNyIDE1ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVx dWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiA+IDM2MTQ5MDQyNTYNCj4gPiA+ID4gPiA+ID4gPiA+ IDE5NiBnZXRhdHRyIGZoDQo+ID4gPiA+ID4gPiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4g PiA+IDExOjEwOjIzLjU2OTE5MiBJUCAxMC4zMC4xMy4yLjkxNiA+IDEwLjMxLjMuMTMuMjA0OToN Cj4gPiA+ID4gPiA+ID4gPiA+IEZsYWdzIFtQLl0sIHNlcSAxNDQ1MjoxNDY1MiwgYWNrIDE4NTYx LCB3aW4gNTAxLCBvcHRpb25zDQo+ID4gPiA+ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4g PiA+ID4gPiA+ID4gPiA+IDgzNDg5MTE1NCBlY3IgMTU4OTc2OTIwM10sIGxlbmd0aCAyMDA6IE5G UyByZXF1ZXN0IHhpZA0KPiA+ID4gPiA+ID4gPiA+ID4gMzYxNDkwNDI1Ng0KPiA+ID4gPiA+ID4g PiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiA+IDAsMi81Mw0KPiA+ID4gPiA+ ID4gPiA+ID4gMTE6MTA6MjUuMjMzMjEyIElQIDEwLjMwLjEzLjIuOTE2ID4gMTAuMzEuMy4xMy4y MDQ5Og0KPiA+ID4gPiA+ID4gPiA+ID4gRmxhZ3MgW1AuXSwgc2VxIDE0NDUyOjE0NjUyLCBhY2sg MTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiA+IFtub3Asbm9wLFRTIHZh bA0KPiA+ID4gPiA+ID4gPiA+ID4gODM0ODkyODE4IGVjciAxNTg5NzY5MjAzXSwgbGVuZ3RoIDIw MDogTkZTIHJlcXVlc3QgeGlkDQo+ID4gPiA+ID4gPiA+ID4gPiAzNjE0OTA0MjU2DQo+ID4gPiA+ ID4gPiA+ID4gPiAxOTYgZ2V0YXR0ciBmaA0KPiA+ID4gPiA+ID4gPiA+ID4gMCwyLzUzDQo+ID4g PiA+ID4gPiA+ID4gPiAxMToxMDoyOC40OTcyODIgSVAgMTAuMzAuMTMuMi45MTYgPiAxMC4zMS4z LjEzLjIwNDk6DQo+ID4gPiA+ID4gPiA+ID4gPiBGbGFncyBbUC5dLCBzZXEgMTQ0NTI6MTQ2NTIs IGFjayAxODU2MSwgd2luIDUwMSwgb3B0aW9ucw0KPiA+ID4gPiA+ID4gPiA+ID4gW25vcCxub3As VFMgdmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA4MzQ4OTYwODIgZWNyIDE1ODk3NjkyMDNdLCBsZW5n dGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiA+IDM2MTQ5MDQyNTYNCj4g PiA+ID4gPiA+ID4gPiA+IDE5NiBnZXRhdHRyIGZoDQo+ID4gPiA+ID4gPiA+ID4gPiAwLDIvNTMN Cj4gPiA+ID4gPiA+ID4gPiA+IDExOjEwOjM1LjAyNTIxOSBJUCAxMC4zMC4xMy4yLjkxNiA+IDEw LjMxLjMuMTMuMjA0OToNCj4gPiA+ID4gPiA+ID4gPiA+IEZsYWdzIFtQLl0sIHNlcSAxNDQ1Mjox NDY1MiwgYWNrIDE4NTYxLCB3aW4gNTAxLCBvcHRpb25zDQo+ID4gPiA+ID4gPiA+ID4gPiBbbm9w LG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA+IDgzNDkwMjYxMCBlY3IgMTU4OTc2OTIwM10s IGxlbmd0aCAyMDA6IE5GUyByZXF1ZXN0IHhpZA0KPiA+ID4gPiA+ID4gPiA+ID4gMzYxNDkwNDI1 Ng0KPiA+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ID4gPiA+ID4gPiA+IDAs Mi81Mw0KPiA+ID4gPiA+ID4gPiA+ID4gMTE6MTA6NDguMzM3MjAxIElQIDEwLjMwLjEzLjIuOTE2 ID4gMTAuMzEuMy4xMy4yMDQ5Og0KPiA+ID4gPiA+ID4gPiA+ID4gRmxhZ3MgW1AuXSwgc2VxIDE0 NDUyOjE0NjUyLCBhY2sgMTg1NjEsIHdpbiA1MDEsIG9wdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiA+ IFtub3Asbm9wLFRTIHZhbA0KPiA+ID4gPiA+ID4gPiA+ID4gODM0OTE1OTIyIGVjciAxNTg5NzY5 MjAzXSwgbGVuZ3RoIDIwMDogTkZTIHJlcXVlc3QgeGlkDQo+ID4gPiA+ID4gPiA+ID4gPiAzNjE0 OTA0MjU2DQo+ID4gPiA+ID4gPiA+ID4gPiAxOTYgZ2V0YXR0ciBmaA0KPiA+ID4gPiA+ID4gPiA+ ID4gMCwyLzUzDQo+ID4gPiA+ID4gPiA+ID4gPiAxMToxMToxNC40NDkzMDMgSVAgMTAuMzAuMTMu Mi45MTYgPiAxMC4zMS4zLjEzLjIwNDk6DQo+ID4gPiA+ID4gPiA+ID4gPiBGbGFncyBbUC5dLCBz ZXEgMTQ0NTI6MTQ2NTIsIGFjayAxODU2MSwgd2luIDUwMSwgb3B0aW9ucw0KPiA+ID4gPiA+ID4g PiA+ID4gW25vcCxub3AsVFMgdmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA4MzQ5NDIwMzQgZWNyIDE1 ODk3NjkyMDNdLCBsZW5ndGggMjAwOiBORlMgcmVxdWVzdCB4aWQNCj4gPiA+ID4gPiA+ID4gPiA+ IDM2MTQ5MDQyNTYNCj4gPiA+ID4gPiA+ID4gPiA+IDE5NiBnZXRhdHRyIGZoDQo+ID4gPiA+ID4g PiA+ID4gPiAwLDIvNTMNCj4gPiA+ID4gPiA+ID4gPiA+IDExOjEyOjA4LjcyMTI1MSBJUCAxMC4z MC4xMy4yLjkxNiA+IDEwLjMxLjMuMTMuMjA0OToNCj4gPiA+ID4gPiA+ID4gPiA+IEZsYWdzIFtQ Ll0sIHNlcSAxNDQ1MjoxNDY1MiwgYWNrIDE4NTYxLCB3aW4gNTAxLCBvcHRpb25zDQo+ID4gPiA+ ID4gPiA+ID4gPiBbbm9wLG5vcCxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA+IDgzNDk5NjMwNiBl Y3IgMTU4OTc2OTIwM10sIGxlbmd0aCAyMDA6IE5GUyByZXF1ZXN0IHhpZA0KPiA+ID4gPiA+ID4g PiA+ID4gMzYxNDkwNDI1Ng0KPiA+ID4gPiA+ID4gPiA+ID4gMTk2IGdldGF0dHIgZmgNCj4gPiA+ ID4gPiA+ID4gPiA+IDAsMi81Mw0KPiA+ID4gPiA+ID4gPiA+ID4gMTE6MTI6MjIuNTQ1Mzk0IElQ IDEwLjMwLjEzLjIuOTQyID4gMTAuMzEuMy4xMy4yMDQ5Og0KPiA+ID4gPiA+ID4gPiA+ID4gRmxh Z3MgW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4gPiA+ID4g PiA+ID4gPiA+IDE0NjAsc2Fja09LLFRTIHZhbA0KPiA+ID4gPiA+ID4gPiA+ID4gODM1MDEwMTMw IGVjciAwLG5vcCx3c2NhbGUgN10sIGxlbmd0aCAwDQo+ID4gPiA+ID4gPiA+ID4gPiAxMToxMjoy My41NzAxOTkgSVAgMTAuMzAuMTMuMi45NDIgPiAxMC4zMS4zLjEzLjIwNDk6DQo+ID4gPiA+ID4g PiA+ID4gPiBGbGFncyBbU10sIHNlcSAxMzc1MjU2OTUxLCB3aW4gNjQyNDAsIG9wdGlvbnMgW21z cw0KPiA+ID4gPiA+ID4gPiA+ID4gMTQ2MCxzYWNrT0ssVFMgdmFsDQo+ID4gPiA+ID4gPiA+ID4g PiA4MzUwMTExNTUgZWNyIDAsbm9wLHdzY2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4g PiA+IDExOjEyOjI1LjYxNzI4NCBJUCAxMC4zMC4xMy4yLjk0MiA+IDEwLjMxLjMuMTMuMjA0OToN Cj4gPiA+ID4gPiA+ID4gPiA+IEZsYWdzIFtTXSwgc2VxIDEzNzUyNTY5NTEsIHdpbiA2NDI0MCwg b3B0aW9ucyBbbXNzDQo+ID4gPiA+ID4gPiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ ID4gPiA+ID4gPiA+IDgzNTAxMzIwMiBlY3IgMCxub3Asd3NjYWxlIDddLCBsZW5ndGggMA0KPiA+ ID4gPiA+ID4gPiA+ID4gMTE6MTI6MjkuNjQ5MjE5IElQIDEwLjMwLjEzLjIuOTQyID4gMTAuMzEu My4xMy4yMDQ5Og0KPiA+ID4gPiA+ID4gPiA+ID4gRmxhZ3MgW1NdLCBzZXEgMTM3NTI1Njk1MSwg d2luIDY0MjQwLCBvcHRpb25zIFttc3MNCj4gPiA+ID4gPiA+ID4gPiA+IDE0NjAsc2Fja09LLFRT IHZhbA0KPiA+ID4gPiA+ID4gPiA+ID4gODM1MDE3MjM0IGVjciAwLG5vcCx3c2NhbGUgN10sIGxl bmd0aCAwDQo+ID4gPiA+ID4gPiA+ID4gPiAxMToxMjozNy45MDUyNzQgSVAgMTAuMzAuMTMuMi45 NDIgPiAxMC4zMS4zLjEzLjIwNDk6DQo+ID4gPiA+ID4gPiA+ID4gPiBGbGFncyBbU10sIHNlcSAx Mzc1MjU2OTUxLCB3aW4gNjQyNDAsIG9wdGlvbnMgW21zcw0KPiA+ID4gPiA+ID4gPiA+ID4gMTQ2 MCxzYWNrT0ssVFMgdmFsDQo+ID4gPiA+ID4gPiA+ID4gPiA4MzUwMjU0OTAgZWNyIDAsbm9wLHdz Y2FsZSA3XSwgbGVuZ3RoIDANCj4gPiA+ID4gPiA+ID4gPiA+IDExOjEyOjU0LjI4OTIxMiBJUCAx MC4zMC4xMy4yLjk0MiA+IDEwLjMxLjMuMTMuMjA0OToNCj4gPiA+ID4gPiA+ID4gPiA+IEZsYWdz IFtTXSwgc2VxIDEzNzUyNTY5NTEsIHdpbiA2NDI0MCwgb3B0aW9ucyBbbXNzDQo+ID4gPiA+ID4g PiA+ID4gPiAxNDYwLHNhY2tPSyxUUyB2YWwNCj4gPiA+ID4gPiA+ID4gPiA+IDgzNTA0MTg3NCBl Y3IgMCxub3Asd3NjYWxlIDddLCBsZW5ndGggMA0KPiA+ID4gPiA+ID4gPiA+ID4gMTE6MTM6MjYu NTQ1MzA0IElQIDEwLjMwLjEzLjIuOTQyID4gMTAuMzEuMy4xMy4yMDQ5Og0KPiA+ID4gPiA+ID4g PiA+ID4gRmxhZ3MgW1NdLCBzZXEgMTM3NTI1Njk1MSwgd2luIDY0MjQwLCBvcHRpb25zIFttc3MN Cj4gPiA+ID4gPiA+ID4gPiA+IDE0NjAsc2Fja09LLFRTIHZhbA0KPiA+ID4gPiA+ID4gPiA+ID4g ODM1MDc0MTMwIGVjciAwLG5vcCx3c2NhbGUgN10sIGxlbmd0aCAwDQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gSSB0cmllZCBjaGFuZ2luZyB0Y3BfcmV0cmllczIgYXMgc3Vn Z2VzdGVkIGluIGFub3RoZXINCj4gPiA+ID4gPiA+ID4gPiA+IHRocmVhZCBmcm9tIHRoaXMgbGlz dDoNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAjIGVjaG8gMyA+IC9wcm9j L3N5cy9uZXQvaXB2NC90Y3BfcmV0cmllczINCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gPiAuLi5idXQgaXQgbWFkZSBubyBkaWZmZXJlbmNlIG9uIGVpdGhlciBrZXJuZWwuICBU aGUgMg0KPiA+ID4gPiA+ID4gPiA+ID4gbWludXRlIHRpbWVvdXQgYWxzbyBkb2Vzbid0IHNlZW0g dG8gbWF0Y2ggd2l0aCB3aGF0IEknZA0KPiA+ID4gPiA+ID4gPiA+ID4gY2FsY3VsYXRlIGZyb20g dGhlIGluaXRpYWwgdmFsdWUgb2YgdGNwX3JldHJpZXMyLCB3aGljaA0KPiA+ID4gPiA+ID4gPiA+ ID4gc2hvdWxkIGdpdmUgYSBtdWNoIGhpZ2hlciB0aW1lb3V0Lg0KPiA+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiA+IFRoZSBvbmx5IGNsdWUgSSd2ZSBiZWVuIGFibGUgdG8gZmluZCBp cyBpbiB0aGUgcmV0cnk9bg0KPiA+ID4gPiA+ID4gPiA+ID4gZW50cnkgaW4gdGhlIE5GUw0KPiA+ ID4gPiA+ID4gPiA+ID4gbWFucGFnZToNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiAiIEZvciBUQ1AgdGhlIGRlZmF1bHQgaXMgMyBtaW51dGVzLCBidXQgc3lzdGVtIFRDUA0K PiA+ID4gPiA+ID4gPiA+ID4gY29ubmVjdGlvbiB0aW1lb3V0cyB3aWxsIHNvbWV0aW1lcyBsaW1p dCB0aGUgdGltZW91dCBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gZWFjaCByZXRyYW5zbWlzc2lvbiB0 byBhcm91bmQNCj4gPiA+ID4gPiA+ID4gPiA+IDINCj4gPiA+ID4gPiA+ID4gPiBtaW51dGVzLiIN Cj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBXaGF0IEknbSBub3QgYWJsZSB0 byBtYWtlIHNlbnNlIG9mOg0KPiA+ID4gPiA+ID4gPiA+ID4gIC0gVGhlIHJldHJ5IG9wdGlvbiBz YXlzIHRoYXQgaXQgYXBwbGllcyB0byBtb3VudA0KPiA+ID4gPiA+ID4gPiA+ID4gb3BlcmF0aW9u cywgbm90IHJlYWQvd3JpdGUgb3BlcmF0aW9ucy4gIEhvd2V2ZXIsIGluIHRoaXMNCj4gPiA+ID4g PiA+ID4gPiA+IGNhc2UgSSdtIHNlZWluZyB0aGUgMiBtaW51dGUgZGVsYXkgb24gcmVhZC93cml0 ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gb3BlcmF0aW9ucyBidXQgKm5vdCogbW91bnQgb3BlcmF0aW9u cy4NCj4gPiA+ID4gPiA+ID4gPiA+ICAtIEEgY291cGxlIG9mIGhvdXJzIG9mIHNlYXJjaGluZyBk aWRuJ3QgbGVhZCBtZSB0byBhbnkNCj4gPiA+ID4gPiA+ID4gPiA+IGtlcm5lbCBzZXR0aW5ncyB0 aGF0IHdvdWxkIHJlc3VsdCBpbiBhIDIgbWludXRlIHRpbWVvdXQuDQo+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gRG9lcyBhbnlvbmUgaGF2ZSBhbnkgY2x1ZXMgYWJvdXQgYSkg d2hhdCdzIGhhcHBlbmluZyBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+IGIpDQo+ID4gPiA+ID4gPiA+ ID4gPiBob3cgdG8gZ2V0IG91ciBkZXNpcmVkIGJlaGF2aW91ciBvZiBiZWluZyBhYmxlIHRvDQo+ ID4gPiA+ID4gPiA+ID4gPiBjb250cm9sIGJvdGggbW91bnQgYW5kIHJlYWQvd3JpdGUgdGltZW91 dHMgZG93biB0byBhIGZldw0KPiBzZWNvbmRzPw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+IFRoYW5rcy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgdGhv dWdodCB0aGF0IGNoYW5naW5nIFRDUF9SVE9fTUFYIGluIGluY2x1ZGUvbmV0L3RjcC5oDQo+ID4g PiA+ID4gPiA+ID4gZnJvbQ0KPiA+ID4gPiA+ID4gPiA+IDEyMCB0bw0KPiA+ID4gPiA+ID4gPiA+ IHNvbWV0aGluZyBzbWFsbGVyIGFuZCByZWNvbXBpbGluZyB0aGUga2VybmVsIHdvdWxkIGNoYW5n ZQ0KPiA+ID4gPiA+ID4gPiA+IHRoZSAyIG1pbnV0ZSB0aW1lb3V0LCBidXQgaXQgaGFkIG5vIGVm ZmVjdC4gIEknbSBnb2luZyB0bw0KPiA+ID4gPiA+ID4gPiA+IGtlZXAgcG9raW5nIHRocm91Z2gg dGhlIGtlcm5lbCBjb2RlIHRvIHNlZSBpZiB0aGVyZSdzIGENCj4gPiA+ID4gPiA+ID4gPiBrbm9i IEkgY2FuIHR1cm4gdG8gY2hhbmdlIHRoZSAyIG1pbnV0ZSB0aW1lb3V0LCBzbyB0aGF0IEkNCj4g PiA+ID4gPiA+ID4gPiBjYW4gYXQgbGVhc3QgdW5kZXJzdGFuZCB3aGVyZSBpdCdzIGNvbWluZyBm cm9tLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQW55IGhpbnRzIGFzIHRvIHdo ZXJlIEkgc2hvdWxkIGJlIGxvb2tpbmc/DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkg YmVsaWV2ZSBJJ3ZlIG1hZGUgc29tZSBwcm9ncmVzcyB3aXRoIHRoaXMgdG9kYXk6DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAtIENhbGxzIHRvIHJwY19jcmVhdGUoKSBmcm9tIGZzL25m cy9jbGllbnQuYyBhcmUgc2VuZGluZyBhbg0KPiA+ID4gPiA+ID4gPiBycGNfdGltZW91dCBzdHJ1 Y3Qgd2l0aCB0aGVpciBhcmdzLg0KPiA+ID4gPiA+ID4gPiAgLSBycGNfY3JlYXRlKCkgZG9lcyAq bm90KiBwYXNzIHRoZSB0aW1lb3V0IG9uIHRvDQo+ID4gPiA+ID4gPiA+IHhwcnRfY3JlYXRlX3Ry YW5zcG9ydCgpLCB3aGljaCB0aGVuIGNhbid0IHBhc3MgaXQgb24gdG8NCj4gPiA+ID4gPiA+ID4g eHNfc2V0dXBfdGNwKCkuDQo+ID4gPiA+ID4gPiA+ICAtIHhzX3NldHVwX3RjcCgpLCBoYXZpbmcg bm8gdGltZW91dCBwYXNzZWQgdG8gaXQsIHVzZXMNCj4gPiA+ID4gPiA+ID4geHNfdGNwX2RlZmF1 bHRfdGltZW91dCBpbnN0ZWFkLg0KPiA+ID4gPiA+ID4gPiAgLSBjaGFuZ2luZyB4c190Y3BfZGVm YXVsdF90aW1lb3V0IGNoYW5nZXMgdGhlICJscyIgdGltZW91dA0KPiA+ID4gPiA+ID4gPiBiZWhh dmlvdXIgSSBkZXNjcmliZWQgYWJvdmUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElu IHRoZW9yeSBhbGwgb2YgdGhpcyBtZWFucyB0aGF0IHRoZSB0aW1lb3V0IHNpbXBseSBuZWVkcyB0 bw0KPiA+ID4gPiA+ID4gPiBiZSBwYXNzZWQgdGhyb3VnaCBhbmQgdXNlZCBpbnN0ZWFkIG9mDQo+ ID4gPiA+ID4gPiA+IHhzX3RjcF9kZWZhdWx0X3RpbWVvdXQuICBJJ20gZ29pbmcgdG8gZ2l2ZSB0 aGlzIGEgdHJ5DQo+ID4gPiA+ID4gPiA+IHRvbW9ycm93Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IFRoYXQncyBhIGdyZWF0IHJvb3QtY2F1c2UgYW5hbHlzaXMuIFRo ZSBpbnRlcmxvY2tpbmcgdGltZW91dHMNCj4gPiA+ID4gPiA+IGludm9sdmVkIHdpdGggTkZTIGFu ZCBpdHMgc29ja2V0cyBjYW4gYmUgcmVhbGx5IGRpZmZpY3VsdCB0bw0KPiA+ID4gPiA+ID4gdW53 aW5kLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IElzIHRoZXJlIGEgd2F5IHRvIGF1dG9tYXRl IHRoaXMgdGVzdGNhc2U/IFRoYXQgbWlnaHQgYmUgbmljZQ0KPiA+ID4gPiA+ID4gdG8gaGF2ZSBp biB4ZnN0ZXN0cyBvciB0aGUgbmZzdGVzdCBzdWl0ZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IEhlcmUncyB3aGF0IEknbSBnb2luZyB0byB0cnkgZmlyc3Q7IEknbSBubyBDIHByb2dyYW1t ZXIsDQo+ID4gPiA+ID4gPiA+IHRob3VnaCwgc28gYW55IGFkdmljZSBvciBjb3JyZWN0aW9ucyB5 b3UgbWlnaHQgaGF2ZSB3b3VsZCBiZQ0KPiA+ID4gPiA+ID4gPiBhcHByZWNpYXRlZC4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhbmtzLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiBBbmRyZXcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL25l dC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmMgaW5kZXgNCj4gPiA+ID4gPiA+ID4g MGIwYjlmMWVlZDQ2Li4xMzUwYzFmNDg5ZjcgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBhL25l dC9zdW5ycGMvY2xudC5jDQo+ID4gPiA+ID4gPiA+ICsrKyBiL25ldC9zdW5ycGMvY2xudC5jDQo+ ID4gPiA+ID4gPiA+IEBAIC01MzIsNiArNTMyLDcgQEAgc3RydWN0IHJwY19jbG50ICpycGNfY3Jl YXRlKHN0cnVjdA0KPiA+ID4gPiA+ID4gPiBycGNfY3JlYXRlX2FyZ3MNCj4gPiA+ID4gPiA+ID4g KmFyZ3MpDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAuYWRkcmxlbiA9IGFyZ3MtPmFk ZHJzaXplLA0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgLnNlcnZlcm5hbWUgPSBhcmdz LT5zZXJ2ZXJuYW1lLA0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgLmJjX3hwcnQgPSBh cmdzLT5iY194cHJ0LA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgLnRpbWVvdXQgPSBh cmdzLT50aW1lb3V0LA0KPiA+ID4gPiA+ID4gPiAgICAgICAgIH07DQo+ID4gPiA+ID4gPiA+ICAg ICAgICAgY2hhciBzZXJ2ZXJuYW1lWzQ4XTsNCj4gPiA+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3Qg cnBjX2NsbnQgKmNsbnQ7IGRpZmYgLS1naXQNCj4gPiA+ID4gPiA+ID4gYS9uZXQvc3VucnBjL3hw cnRzb2NrLmMgYi9uZXQvc3VucnBjL3hwcnRzb2NrLmMgaW5kZXgNCj4gPiA+ID4gPiA+ID4gYWFh NWIyNzQxYjc5Li5hZGM3OWQ5NGI1OWUgMTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBhL25ldC9z dW5ycGMveHBydHNvY2suYw0KPiA+ID4gPiA+ID4gPiArKysgYi9uZXQvc3VucnBjL3hwcnRzb2Nr LmMNCj4gPiA+ID4gPiA+ID4gQEAgLTMwMDMsNyArMzAwMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcnBj X3hwcnQNCj4gPiA+ID4gPiA+ID4gKnhzX3NldHVwX3RjcChzdHJ1Y3QgeHBydF9jcmVhdGUgKmFy Z3MpDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgeHBydC0+aWRsZV90aW1lb3V0ID0gWFNfSURMRV9E SVNDX1RPOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgIHhwcnQtPm9wcyA9 ICZ4c190Y3Bfb3BzOw0KPiA+ID4gPiA+ID4gPiAtICAgICAgIHhwcnQtPnRpbWVvdXQgPSAmeHNf dGNwX2RlZmF1bHRfdGltZW91dDsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICB4cHJ0LT50aW1lb3V0 ID0gYXJncy0+dGltZW91dDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICB4 cHJ0LT5tYXhfcmVjb25uZWN0X3RpbWVvdXQgPSB4cHJ0LT50aW1lb3V0LQ0KPiA+ID4gPiA+ID4g PiA+dG9fbWF4dmFsOw0KPiA+ID4gPiA+ID4gPiAgICAgICAgIHhwcnQtPmNvbm5lY3RfdGltZW91 dCA9IHhwcnQtPnRpbWVvdXQtPnRvX2luaXR2YWwgKg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IExvb2tzIGxpa2UgeW91J3JlIHByb2JhYmx5IG9uIHRoZSByaWdodCB0 cmFjay4gWW91J3JlIG1pc3NpbmcNCj4gPiA+ID4gPiA+IGEgZmV3DQo+ID4gPiA+ID4gPiB0aGlu Z3M6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gWW91J2xsIG5lZWQgdG8gYWRkIGEgInRpbWVv dXQiIGZpZWxkIHRvIHN0cnVjdCB4cHJ0X2NyZWF0ZSBpbg0KPiA+ID4gPiA+ID4gaW5jbHVkZS9s aW51eC9zdW5ycGMveHBydC5oLCBhbmQgdGhlcmUgbWF5IGJlIHNvbWUgb3RoZXINCj4gPiA+ID4g PiA+IHBsYWNlcyB0aGF0IGVpdGhlciBuZWVkIHRvIHNldCB0aGUgdGltZW91dCBpbiB0aGF0IHN0 cnVjdHVyZSwNCj4gPiA+ID4gPiA+IG9yIGRvIHNvbWV0aGluZyB3aXRoIHRoYXQgZmllbGQgd2hl biBpdCdzIHNldC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBPbmNlIHlvdSBoYXZlIHNvbWV0 aGluZyB0aGF0IGZpeGVzIHlvdXIgcmVwcm9kdWNlciwgZ28gYWhlYWQNCj4gPiA+ID4gPiA+IGFu ZCBwb3N0IGl0IGFuZCB3ZSBjYW4gaGVscCB5b3Ugd29yayB0aHJvdWdoIHdoYXRldmVyIGNoYW5n ZXMNCj4gPiA+ID4gPiA+IG5lZWQgdG8gbWUgbWFkZQ0KPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4g bWFrZSBpdCB3b3JrLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IE5pY2Ugd29yayENCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIHRpcCwgdGhhdCB3YXMgaGVscGZ1bC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEN1cnJlbnRseSBJJ20gZmlnaHRpbmcgd2l0aCBrZXJuZWwgcmVj b21waWxhdGlvbi4gIEkgZGVjaWRlZCB0bw0KPiA+ID4gPiA+IG1ha2UgaXQgcXVpY2tlciBieSBz bGltbWluZyBkb3duIHRoZSBjb25maWcsIGJ1dCBhcHBhcmVudGx5IEkndmUNCj4gPiA+ID4gPiBh Y2hpZXZlZCBzb21ldGhpbmcgd2hpY2ggR29vZ2xlIGNsYWltcyBubyBvbmUgZWxzZSBoYXMgYWNo aWV2ZWQ6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBFcnJvcnMgb24ga2VybmVsIG1ha2UgbW9kdWxl c19pbnN0YWxsOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICBERVBNT0QgIC9saWIvbW9kdWxlcy82 LjIuMC1yYzUtc3VucnBjdGltZW8rDQo+ID4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21v ZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25m c3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ID4gbmZzNF9kaXNhYmxlX2lkbWFw cGluZw0KPiA+ID4gPiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0N Cj4gPiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtu b3duIHN5bWJvbA0KPiA+ID4gPiA+IG5mczRfbGFiZWxfYWxsb2MNCj4gPiA+ID4gPiBkZXBtb2Q6 IFdBUk5JTkc6IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+ID4gc3VucnBjdGltZW8r L2tlcm5lbC9mcy9uZnMvbmZzdjQua28gbmVlZHMgdW5rbm93biBzeW1ib2wNCj4gPiA+ID4gPiBz ZW5kX2ltcGxlbWVudGF0aW9uX2lkDQo+ID4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21v ZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25m c3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ID4gbmZzX2F0b21pY19vcGVuDQo+ ID4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4g PiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3lt Ym9sDQo+ID4gPiA+ID4gbmZzX2NsZWFyX3ZlcmlmaWVyX2RlbGVnYXRlZA0KPiA+ID4gPiA+IGRl cG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0NCj4gPiA+ID4gPiBzdW5ycGN0 aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ID4g PiA+IG5mczRfY2xpZW50X2lkX3VuaXF1aWZpZXINCj4gPiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6 IC9saWIvbW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+ID4gc3VucnBjdGltZW8rL2tlcm5lbC9m cy9uZnMvbmZzdjQua28gbmVlZHMgdW5rbm93biBzeW1ib2wNCj4gPiA+ID4gPiBuZnM0X2RlbnRy eV9vcGVyYXRpb25zDQo+ID4gPiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4y LjAtcmM1LQ0KPiA+ID4gPiA+IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5l ZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ID4gbmZzX2ZzY2FjaGVfb3Blbl9maWxlDQo+ID4g PiA+ID4gZGVwbW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiA+ IHN1bnJwY3RpbWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9s DQo+ID4gPiA+IG5mczRfZnNfdHlwZQ0KPiA+ID4gPiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9t b2R1bGVzLzYuMi4wLXJjNS0NCj4gPiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9u ZnN2NC5rbyBuZWVkcyB1bmtub3duIHN5bWJvbA0KPiA+ID4gPiA+IHJlY292ZXJfbG9zdF9sb2Nr cw0KPiA+ID4gPiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0NCj4g PiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3du IHN5bWJvbA0KPiA+ID4gPiA+IG5mc19jYWxsYmFja19ucl90aHJlYWRzDQo+ID4gPiA+ID4gZGVw bW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiA+IHN1bnJwY3Rp bWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ ID4gbWF4X3Nlc3Npb25fY2Jfc2xvdHMNCj4gPiA+ID4gPiBkZXBtb2Q6IFdBUk5JTkc6IC9saWIv bW9kdWxlcy82LjIuMC1yYzUtDQo+ID4gPiA+ID4gc3VucnBjdGltZW8rL2tlcm5lbC9mcy9uZnMv bmZzdjQua28gbmVlZHMgdW5rbm93biBzeW1ib2wNCj4gPiA+ID4gPiBtYXhfc2Vzc2lvbl9zbG90 cw0KPiA+ID4gPiA+IGRlcG1vZDogV0FSTklORzogL2xpYi9tb2R1bGVzLzYuMi4wLXJjNS0NCj4g PiA+ID4gPiBzdW5ycGN0aW1lbysva2VybmVsL2ZzL25mcy9uZnN2NC5rbyBuZWVkcyB1bmtub3du IHN5bWJvbA0KPiA+ID4gPiA+IG5mc19pZG1hcF9jYWNoZV90aW1lb3V0DQo+ID4gPiA+ID4gZGVw bW9kOiBXQVJOSU5HOiAvbGliL21vZHVsZXMvNi4yLjAtcmM1LQ0KPiA+ID4gPiA+IHN1bnJwY3Rp bWVvKy9rZXJuZWwvZnMvbmZzL25mc3Y0LmtvIG5lZWRzIHVua25vd24gc3ltYm9sDQo+ID4gPiA+ ID4gbmZzX2NhbGxiYWNrX3NldF90Y3Bwb3J0DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBFcnJvcnMg b24gbW9kdWxlIGxvYWQ6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBbICAgOTQuMDA4MjcxXSBuZnN2 NDogVW5rbm93biBzeW1ib2wgbmZzNF9kaXNhYmxlX2lkbWFwcGluZyAoZXJyIC0NCj4gPiA+ID4g PiAyKQ0KPiA+ID4gPiA+IFsgICA5NC4wMDgzMjFdIG5mc3Y0OiBVbmtub3duIHN5bWJvbCBuZnM0 X2xhYmVsX2FsbG9jIChlcnIgLTIpDQo+ID4gPiA+ID4gWyAgIDk0LjAwODQzNF0gbmZzdjQ6IFVu a25vd24gc3ltYm9sIHNlbmRfaW1wbGVtZW50YXRpb25faWQgKGVyciAtDQo+ID4gPiA+ID4gMikN Cj4gPiA+ID4gPiBbICAgOTQuMDA4NDQ2XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZzX2F0b21p Y19vcGVuIChlcnIgLTIpDQo+ID4gPiA+ID4gWyAgIDk0LjAwODQ2OF0gbmZzdjQ6IFVua25vd24g c3ltYm9sIG5mc19jbGVhcl92ZXJpZmllcl9kZWxlZ2F0ZWQNCj4gPiA+ID4gPiAoZXJyDQo+ID4g PiA+ID4gLTIpDQo+ID4gPiA+ID4gWyAgIDk0LjAwODQ3NV0gbmZzdjQ6IFVua25vd24gc3ltYm9s IG5mczRfY2xpZW50X2lkX3VuaXF1aWZpZXINCj4gPiA+ID4gPiAoZXJyIC0NCj4gPiA+ID4gPiAy KQ0KPiA+ID4gPiA+IFsgICA5NC4wMDg1MDFdIG5mc3Y0OiBVbmtub3duIHN5bWJvbCBuZnM0X2Rl bnRyeV9vcGVyYXRpb25zIChlcnIgLQ0KPiA+ID4gPiA+IDIpDQo+ID4gPiA+ID4gWyAgIDk0LjAw ODUyMV0gbmZzdjQ6IFVua25vd24gc3ltYm9sIG5mc19mc2NhY2hlX29wZW5fZmlsZSAoZXJyIC0N Cj4gPiA+ID4gPiAyKQ0KPiA+ID4gPiA+IFsgICA5NC4wMDg1NjZdIG5mc3Y0OiBVbmtub3duIHN5 bWJvbCBuZnM0X2ZzX3R5cGUgKGVyciAtMikNCj4gPiA+ID4gPiBbICAgOTQuMDA4NTk1XSBuZnN2 NDogVW5rbm93biBzeW1ib2wgcmVjb3Zlcl9sb3N0X2xvY2tzIChlcnIgLTIpDQo+ID4gPiA+ID4g WyAgIDk0LjAwODYzOV0gbmZzdjQ6IFVua25vd24gc3ltYm9sIG5mc19jYWxsYmFja19ucl90aHJl YWRzIChlcnINCj4gPiA+ID4gPiAtMikNCj4gPiA+ID4gPiBbICAgOTQuMDA4NjU0XSBuZnN2NDog VW5rbm93biBzeW1ib2wgbWF4X3Nlc3Npb25fY2Jfc2xvdHMgKGVyciAtMikNCj4gPiA+ID4gPiBb ICAgOTQuMDA4Njc4XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbWF4X3Nlc3Npb25fc2xvdHMgKGVy ciAtMikNCj4gPiA+ID4gPiBbICAgOTQuMDA4Njk0XSBuZnN2NDogVW5rbm93biBzeW1ib2wgbmZz X2lkbWFwX2NhY2hlX3RpbWVvdXQgKGVycg0KPiA+ID4gPiA+IC0yKQ0KPiA+ID4gPiA+IFsgICA5 NC4wMDg3MDldIG5mc3Y0OiBVbmtub3duIHN5bWJvbCBuZnNfY2FsbGJhY2tfc2V0X3RjcHBvcnQg KGVycg0KPiA+ID4gPiA+IC0yKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBzdXNwZWN0IEkndmUg dHVybmVkIHNvbWV0aGluZyBvZmYgaW4gdGhlIGNvbmZpZyB0aGF0IEkNCj4gPiA+ID4gPiBzaG91 bGRuJ3QgaGF2ZSwgYnV0IEknbSBub3Qgc3VyZSB3aGF0LiAgSSBzZWUgdGhhdCBvbmUgb2YgdGhl DQo+ID4gPiA+ID4gc3ltYm9scw0KPiA+ID4gPiA+IChuZnNfY2xlYXJfdmVyaWZpZXJfZGVsZWdh dGVkKSBpcyBpbiBpbmNsdWRlL2xpbnV4L25mc19mcy5oLCBhbmQNCj4gPiA+ID4gPiB0aGUgb3Ro ZXJzIGFyZSBkZWZpbmVkIGluIGZzL25mcy9uZnM0X2ZzLmgsIGZzL25mcy9zdXBlci5jLA0KPiA+ ID4gPiA+IGZzL25mcy9kaXIuYywgZnMvbmZzL2lub2RlLmMsIGZzL25mcy9mc2NhY2hlLmMsIGFu ZA0KPiA+ID4gPiA+IGZzL25mcy9mc19jb250ZXh0LmMuICBJJ20gY2hhbmdpbmcgY29uZmlnIG9w dGlvbnMgYW5kDQo+ID4gPiA+ID4gcmVjb21waWxpbmcgdG8gdHJ5IHRvIGZpZ3VyZSBvdXQgd2hh dCBJJ20gbWlzc2luZywgYnV0IGF0IGENCj4gPiA+ID4gPiBjb3VwbGUgb2YgaG91cnMgcGVyIGNv bXBpbGUgYW5kIG9ubHkgYSBjb3VwbGUgb2YgZGF5cyBhIHdlZWsgdG8NCj4gPiA+ID4gPiB3b3Jr IG9uIHRoaXMgaXQncyBzbG93IGdvaW5nLiAgQW55IGhpbnRzIGFzIHRvIHdoYXQgSSBtaWdodCBi ZQ0KPiA+ID4gPiA+IGRvaW5nIHdyb25nIHdvdWxkIGJlIGFwcHJlY2lhdGVkLiAg8J+Yig0KPiA+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IExvb2tzIGxpa2UgdGhlIEFCSSBnb3QgYnJva2VuIHdo ZW4geW91IHR1cm5lZCBvZmYgc29tZSBvcHRpb25zLg0KPiA+ID4gPg0KPiA+ID4gPiBHZW5lcmFs bHksIGlmIHlvdSBqdXN0IHdhbnQgdG8gYnVpbGQgYSBzaW5nbGUgbW9kdWxlLCB0aGVuIHlvdQ0K PiA+ID4gPiB3YW50IHRoZSAuY29uZmlnIHRvIGJlIF9leGFjdGx5XyB0aGUgb25lIHRoYXQgeW91 IHVzZWQgdG8gYnVpbGQNCj4gPiA+ID4gdGhlIGtlcm5lbCB5b3UncmUgZ29pbmcgdG8gcGx1ZyBp dCBpbnRvLiBUaGVuIHRvIGJ1aWxkIHRoZSBtb2R1bGVzDQo+ID4gPiA+IHVuZGVyIGZzL25mcyB5 b3UgY2FuDQo+ID4gPiA+IGRvOg0KPiA+ID4gPg0KPiA+ID4gPiAgICAgbWFrZSBtb2R1bGVzX3By ZXBhcmUNCj4gPiA+ID4gICAgIG1ha2UgTT1mcy9uZnMNCj4gPiA+ID4NCj4gPiA+ID4gLi4uYW5k IHRoZW4gZHJvcCB0aGUgcmVzdWx0aW5nIC5rbyBvYmplY3RzIGludG8gdGhlIHJpZ2h0IHBsYWNl IGluDQo+ID4gPiA+IC9saWIvbW9kdWxlcy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhdCBzYWlkLCBp dCBtYXkgYmUgc2ltcGxlciB0byBqdXN0IGJ1aWxkIGFuZCB3b3JrIHdpdGggYSB3aG9sZQ0KPiA+ ID4gPiBrZXJuZWwgZm9yIHRlc3RpbmcgcHVycG9zZXMuIFdvcmtpbmcgd2l0aCBhbiBpbmRpdmlk dWFsIGttb2QgY2FuDQo+ID4gPiA+IGJlIGEgYml0IHRyaWNreSB1bmxlc3MgeW91IGtub3cgd2hh dCB5b3UncmUgZG9pbmcuDQo+ID4gPiA+DQo+ID4gPiA+IE9uY2UgeW91IGRvIHRoZSBmaXJzdCwg c3Vic2VxdWVudCBidWlsZHMgc2hvdWxkIGJlIHJlYXNvbmFibHkgZmFzdC4NCj4gPiA+DQo+ID4g PiBJJ20gZ29pbmcgdG8gZ28gYmFjayB0byBhIGZ1bGwga2VybmVsIGJ1aWxkIHdpdGggbWFrZSBv bGRjb25maWcNCj4gPiA+IHVzaW5nIHRoZSBkaXN0cm8ncyBrZXJuZWwgY29uZmlnIHRvIHRyeSB0 byBhdm9pZCB0aGlzIGxhdGVzdCBpc3N1ZSwNCj4gPiA+IHRoZW4gdHJ5IHdoYXQgeW91J3ZlIHN1 Z2dlc3RlZCB0byBzcGVlZCB1cCByZWNvbXBpbGVzLg0KPiA+ID4NCj4gPiA+IFNpbmNlIG15IGNo YW5nZXMgYXJlIGluIG5ldC9zdW5ycGMsIHNob3VsZCBJIGJlIGRvaW5nIHNvbWV0aGluZyBsaWtl DQo+ID4gPiB0aGlzPw0KPiA+ID4NCj4gPiA+IG1ha2UgbW9kdWxlc19wcmVwYXJlDQo+ID4gPiBt YWtlIE09bmV0L3N1bnJwYw0KPiA+ID4gbWFrZSBNPWZzL25mcw0KPiA+ID4NCj4gPiA+IE9yIGRv IEkgbm90IG5lZWQgdG8gcmVjb21waWxlIG5mcyBpZiBJJ20gb25seSB0b3VjaGluZyB0aGUgaW50 ZXJuYWxzDQo+ID4gPiBvZiBzdW5ycGM/DQo+ID4gPg0KPiA+ID4gVGhhbmtzIGFnYWluLg0KPiA+ ID4NCj4gPiA+IEFuZHJldw0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4gWW91IHNob3Vs ZG4ndCBuZWVkIHRvIGJ1aWxkIGJvdGggKlVOTEVTUyogeW91IGNoYW5nZSB0aGUgQUJJLiBUaGF0 DQo+ID4gaW5jbHVkZXMgc3R1ZmYgbGlrZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIGFuIGV4cG9y dGVkIGZ1bmN0aW9uLCBvcg0KPiA+IHRoZSBzaXplIG9yIGxheW91dCBvZiBwYXJ0aWN1bGFyIHN0 cnVjdHVyZXMgb3IgYXJyYXlzIHRoYXQgYm90aA0KPiA+IG1vZHVsZXMgbWlnaHQgYmUgd29ya2lu ZyB3aXRoLCBldGMuLi4NCj4gPg0KPiA+IElmIHlvdSBkbyB0aGF0LCB0aGVuIHRoaW5ncyBjYW4g YnJlYWsgaW4gYWxsIHNvcnRzIG9mICJpbnRlcmVzdGluZyINCj4gPiB3YXlzIHRoYXQgY2FuIGJl IHZlcnkgaGFyZCB0byB0cmFjayBkb3duLiBXaXRob3V0IHNlZWluZyB5b3VyIHBhdGNoLA0KPiA+ IGl0J3MgaGFyZCB0byBrbm93IHdoZXRoZXIgeW91J3JlIGJyZWFraW5nIHRob3NlIHJ1bGVzIGhl cmUuIFlNTVYsIG9mDQo+IGNvdXJzZS4NCj4gPg0KPiA+IEFnYWluLCBkb2luZyBhIGZ1bGwga2Vy bmVsIGJ1aWxkIGlzIHRoZSBzYWZlc3Qgd2F5IHRvIGF2b2lkIHRoYXQgc29ydA0KPiA+IG9mIHRo aW5nLiBJJ2QgY291bmNpbCBhZ2FpbnN0IHNob3J0Y3V0cyBoZXJlIHVubGVzcyB5b3Uga25vdyB3 aGF0DQo+ID4geW91J3JlIGRvaW5nLiBMZXQgdGhlIG1hY2hpbmUgZG8gdGhlIHdvcmsuIDspDQo+ IA0KPiBJbiB0aGUgZW5kIEkgaGFkIHRvIGRvIGEgZnJlc2ggY29tcGlsZSB3aXRoIGEgZGlmZmVy ZW50IEVYVFJBVkVSU0lPTiB0byBnZXQNCj4gcmlkIG9mIHRoZSAiVW5rbm93biBzeW1ib2wiIGVy cm9ycy4gIEknbSBndWVzc2luZyBpdCBoYXMgc29tZXRoaW5nIHRvIGRvDQo+IHdpdGggbGVmdG92 ZXJzIGluIC9ib290IG9yIC9saWIvbW9kdWxlcyBmcm9tIGFuIG9sZCBidWlsZCwgYnV0IEkgZGlk bid0IHB1cnN1ZQ0KPiBpdC4NCj4gDQo+IEFmdGVyIGEgZmV3IHRyaWVzLCBJIGZpbmFsbHkgZ290 IGEgdmVyc2lvbiB0aGF0IGRpZG4ndCBwdXQgcmFuZG9tIHZhbHVlcyBpbiB0aGUNCj4gdGltZW91 dCBvciBtYWtlIHRoZSBrZXJuZWwgYmxvdyB1cC4gIE5vdyB0aGUgY29tcGlsZXIgZ2l2ZXMgbWUg YSB3YXJuaW5nDQo+IGFib3V0ICJhc3NpZ25tZW50IGRpc2NhcmRzIOKAmGNvbnN04oCZIHF1YWxp ZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUiLCBidXQgaXQNCj4gd29ya3MuICBJJ2QgYmUg aGFwcHkgdG8gZ2V0IGFkdmljZSBvbiBob3cgdG8gbWFrZSBpdCBiZXR0ZXIuICAoS2VlcGluZyBp bg0KPiBtaW5kIHRoYXQgSSdtIGZhciBmcm9tIGEgQyBwcm9ncmFtbWVyLiAgOi0pICkNCj4gDQo+ IEhlcmUncyB0aGUgcGF0Y2ggc28gZmFyOg0KPiANCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc3VucnBjL3hwcnQuaCBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaCBpbmRleA0KPiBi OWY1OWFhYmVlNTMuLjViN2ZkYWZmOTI2NyAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9z dW5ycGMveHBydC5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaA0KPiBAQCAt MzMzLDYgKzMzMyw3IEBAIHN0cnVjdCB4cHJ0X2NyZWF0ZSB7DQo+ICAgICAgICAgc3RydWN0IHN2 Y194cHJ0ICAgICAgICAgKmJjX3hwcnQ7ICAgICAgIC8qIE5GU3Y0LjEgYmFja2NoYW5uZWwgKi8N Cj4gICAgICAgICBzdHJ1Y3QgcnBjX3hwcnRfc3dpdGNoICAqYmNfeHBzOw0KPiAgICAgICAgIHVu c2lnbmVkIGludCAgICAgICAgICAgIGZsYWdzOw0KPiArICAgICAgIHN0cnVjdCBycGNfdGltZW91 dCAgICAgICp0aW1lb3V0OyAgICAgICAvKiB0aW1lb3V0IHBhcm1zICovDQo+ICB9Ow0KPiANCj4g IHN0cnVjdCB4cHJ0X2NsYXNzIHsNCj4gZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIv bmV0L3N1bnJwYy9jbG50LmMgaW5kZXgNCj4gMGIwYjlmMWVlZDQ2Li4xMzUwYzFmNDg5ZjcgMTAw NjQ0DQo+IC0tLSBhL25ldC9zdW5ycGMvY2xudC5jDQo+ICsrKyBiL25ldC9zdW5ycGMvY2xudC5j DQo+IEBAIC01MzIsNiArNTMyLDcgQEAgc3RydWN0IHJwY19jbG50ICpycGNfY3JlYXRlKHN0cnVj dCBycGNfY3JlYXRlX2FyZ3MNCj4gKmFyZ3MpDQo+ICAgICAgICAgICAgICAgICAuYWRkcmxlbiA9 IGFyZ3MtPmFkZHJzaXplLA0KPiAgICAgICAgICAgICAgICAgLnNlcnZlcm5hbWUgPSBhcmdzLT5z ZXJ2ZXJuYW1lLA0KPiAgICAgICAgICAgICAgICAgLmJjX3hwcnQgPSBhcmdzLT5iY194cHJ0LA0K PiArICAgICAgICAgICAgICAgLnRpbWVvdXQgPSBhcmdzLT50aW1lb3V0LA0KPiAgICAgICAgIH07 DQo+ICAgICAgICAgY2hhciBzZXJ2ZXJuYW1lWzQ4XTsNCj4gICAgICAgICBzdHJ1Y3QgcnBjX2Ns bnQgKmNsbnQ7DQo+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMgYi9uZXQvc3Vu cnBjL3hwcnRzb2NrLmMgaW5kZXgNCj4gYWFhNWIyNzQxYjc5Li4wMDExNTk2YmU0YWQgMTAwNjQ0 DQo+IC0tLSBhL25ldC9zdW5ycGMveHBydHNvY2suYw0KPiArKysgYi9uZXQvc3VucnBjL3hwcnRz b2NrLmMNCj4gQEAgLTIxNzQsNiArMjE3NCwxNyBAQCBzdGF0aWMgdm9pZCB4c190Y3Bfc2V0X3Nv Y2tldF90aW1lb3V0cyhzdHJ1Y3QNCj4gcnBjX3hwcnQgKnhwcnQsDQo+ICAgICAgICAgdW5zaWdu ZWQgaW50IGtlZXBjbnQ7DQo+ICAgICAgICAgdW5zaWduZWQgaW50IHRpbWVvOw0KPiANCj4gKyAg ICAgICBkcHJpbnRrKCJ4c190Y3Bfc2V0X3NvY2tldF90aW1lb3V0czogeHBydC0+dGltZW91dC0+ dG9faW5pdHZhbDoNCj4gJWx1XG4iLA0KPiArICAgICAgICAgICAgICAgeHBydC0+dGltZW91dC0+ dG9faW5pdHZhbCk7DQo+ICsgICAgICAgZHByaW50aygieHNfdGNwX3NldF9zb2NrZXRfdGltZW91 dHM6IHhwcnQtPnRpbWVvdXQtPnRvX21heHZhbDoNCj4gJWx1XG4iLA0KPiArICAgICAgICAgICAg ICAgeHBydC0+dGltZW91dC0+dG9fbWF4dmFsKTsNCj4gKyAgICAgICBkcHJpbnRrKCJ4c190Y3Bf c2V0X3NvY2tldF90aW1lb3V0czogeHBydC0+dGltZW91dC0+dG9faW5jcmVtZW50Og0KPiAlbHVc biIsDQo+ICsgICAgICAgICAgICAgICB4cHJ0LT50aW1lb3V0LT50b19pbmNyZW1lbnQpOw0KPiAr ICAgICAgIGRwcmludGsoInhzX3RjcF9zZXRfc29ja2V0X3RpbWVvdXRzOiB4cHJ0LT50aW1lb3V0 LT50b19yZXRyaWVzOg0KPiAldVxuIiwNCj4gKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQt PnRvX3JldHJpZXMpOw0KPiArICAgICAgIGRwcmludGsoInhzX3RjcF9zZXRfc29ja2V0X3RpbWVv dXRzOiB4cHJ0LT50aW1lb3V0LT50b19leHBvbmVudGlhbDoNCj4gJXVcbiIsDQo+ICsgICAgICAg ICAgICAgICB4cHJ0LT50aW1lb3V0LT50b19leHBvbmVudGlhbCk7DQo+ICsNCj4gICAgICAgICBz cGluX2xvY2soJnhwcnQtPnRyYW5zcG9ydF9sb2NrKTsNCj4gICAgICAgICBrZWVwaWRsZSA9IERJ Vl9ST1VORF9VUCh4cHJ0LT50aW1lb3V0LT50b19pbml0dmFsLCBIWik7DQo+ICAgICAgICAga2Vl cGNudCA9IHhwcnQtPnRpbWVvdXQtPnRvX3JldHJpZXMgKyAxOyBAQCAtMzAwMyw3ICszMDE0LDI0 IEBADQo+IHN0YXRpYyBzdHJ1Y3QgcnBjX3hwcnQgKnhzX3NldHVwX3RjcChzdHJ1Y3QgeHBydF9j cmVhdGUgKmFyZ3MpDQo+ICAgICAgICAgeHBydC0+aWRsZV90aW1lb3V0ID0gWFNfSURMRV9ESVND X1RPOw0KPiANCj4gICAgICAgICB4cHJ0LT5vcHMgPSAmeHNfdGNwX29wczsNCj4gLSAgICAgICB4 cHJ0LT50aW1lb3V0ID0gJnhzX3RjcF9kZWZhdWx0X3RpbWVvdXQ7DQo+ICsNCj4gKyAgICAgICBp ZiAoYXJncy0+dGltZW91dCkgew0KPiArICAgICAgICAgICAgICAgeHBydC0+dGltZW91dCA9IGtt YWxsb2Moc2l6ZW9mKHN0cnVjdCBycGNfdGltZW91dCksIEdGUF9LRVJORUwpOw0KPiArICAgICAg ICAgICAgICAgbWVtY3B5KHhwcnQtPnRpbWVvdXQsIGFyZ3MtPnRpbWVvdXQsIHNpemVvZihzdHJ1 Y3QgcnBjX3RpbWVvdXQpKTsNCj4gKyAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAg eHBydC0+dGltZW91dCA9ICZ4c190Y3BfZGVmYXVsdF90aW1lb3V0Ow0KPiArICAgICAgIH0NCj4g Kw0KPiArICAgICAgIGRwcmludGsoInhzX3NldHVwX3RjcDogeHBydC0+dGltZW91dC0+dG9faW5p dHZhbDogJWx1XG4iLA0KPiArICAgICAgICAgICAgICAgeHBydC0+dGltZW91dC0+dG9faW5pdHZh bCk7DQo+ICsgICAgICAgZHByaW50aygieHNfc2V0dXBfdGNwOiB4cHJ0LT50aW1lb3V0LT50b19t YXh2YWw6ICVsdVxuIiwNCj4gKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQtPnRvX21heHZh bCk7DQo+ICsgICAgICAgZHByaW50aygieHNfc2V0dXBfdGNwOiB4cHJ0LT50aW1lb3V0LT50b19p bmNyZW1lbnQ6ICVsdVxuIiwNCj4gKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQtPnRvX2lu Y3JlbWVudCk7DQo+ICsgICAgICAgZHByaW50aygieHNfc2V0dXBfdGNwOiB4cHJ0LT50aW1lb3V0 LT50b19yZXRyaWVzOiAldVxuIiwNCj4gKyAgICAgICAgICAgICAgIHhwcnQtPnRpbWVvdXQtPnRv X3JldHJpZXMpOw0KPiArICAgICAgIGRwcmludGsoInhzX3NldHVwX3RjcDogeHBydC0+dGltZW91 dC0+dG9fZXhwb25lbnRpYWw6ICV1XG4iLA0KPiArICAgICAgICAgICAgICAgeHBydC0+dGltZW91 dC0+dG9fZXhwb25lbnRpYWwpOw0KPiAgICAgICAgIHhwcnQtPm1heF9yZWNvbm5lY3RfdGltZW91 dCA9IHhwcnQtPnRpbWVvdXQtPnRvX21heHZhbDsNCj4gICAgICAgICB4cHJ0LT5jb25uZWN0X3Rp bWVvdXQgPSB4cHJ0LT50aW1lb3V0LT50b19pbml0dmFsICoNCg0KSSBoYXZlIGVsaW1pbmF0ZWQg dGhlIHdhcm5pbmdzIGFib3V0IGRpc2NhcmRpbmcgY29uc3QuICBIb3dldmVyLCBpdCBoYXMgcmVz dWx0ZWQgaW4gYSBjb3VwbGUgb2YgcXVlc3Rpb25zIHRoYXQgSSBob3BlIHNvbWVvbmUgY2FuIGFu c3dlcjoNCg0KIC0gSSdtIGFsbG9jYXRpbmcgbWVtb3J5LiAgSSBhc3N1bWUgdGhhdCBtZWFucyBJ IHNob3VsZCBmcmVlIGl0IHNvbWV3aGVyZS4gIEJ1dCB3aGVyZT8gIEluIHhwcnRfZGVzdHJveSgp LCB3aGljaCBhcHBlYXJzIHRvIGRvIGNsZWFudXA/ICBPciBpbiB4cHJ0X2Rlc3Ryb3lfY2IoKSwg d2hpY2ggaXMgY2FsbGVkIGZyb20geHBydF9kZXN0cm95KCkgYW5kIHdoaWNoIGZyZWVzIHhwcnQt PnNlcnZlcm5hbWU/ICBPciBzb21ld2hlcmUgZWxzZSBjb21wbGV0ZWx5Pw0KIC0gSWYgSSBmcmVl IHRoZSBhbGxvY2F0ZWQgbWVtb3J5LCB3aWxsIHRoYXQgY2F1c2UgYW55IHByb2JsZW1zIGluIHRo ZSBjYXNlcyB3aGVyZSBubyB0aW1lb3V0IGlzIHBhc3NlZCBpbiB2aWEgdGhlIGFyZ3MgYW5kIHRo ZSBzdGF0aWMgY29uc3Qgc3RydWN0IHhzX3RjcF9kZWZhdWx0X3RpbWVvdXQgaXMgYXNzaWduZWQg dG8geHBydC0+dGltZW91dD8NCiAtIElmIGZyZWVpbmcgdGhlIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGVmYXVsdCB3aWxsIGNhdXNlIGEgcHJvYmxlbSwgd2hhdCBzaG91bGQgSSBkbyBpbnN0ZWFkPyAg QWxsb2NhdGUgYW5kIG1lbWNweSBldmVuIHdoZW4gYXNzaWduaW5nIHRoZSBkZWZhdWx0PyAgQW5k IHdvdWxkIHRoYXQgbWVhbiBkb2luZyB0aGUgc2FtZSB0aGluZyBmb3IgYWxsIHRoZSBvdGhlciB0 cmFuc3BvcnRzIHRoYXQgYXJlIHNldHRpbmcgdGltZW91dHMgKGxvY2FsLCB1ZHAsIHRjcCwgYW5k IGJjX3RjcCk/DQoNClRoYW5rcyBmb3IgYW55b25lIHdobyBoYXMgYWR2aWNlLg0KDQpMYXRlc3Qg ZGlmZiBiZWxvdy4gIFRoYW5rcy4NCg0KQW5kcmV3DQoNCg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvc3VucnBjL3hwcnQuaCBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaA0KaW5kZXgg YjlmNTlhYWJlZTUzLi4wYjMwZGI5MTBhZjMgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3N1 bnJwYy94cHJ0LmgNCisrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3hwcnQuaA0KQEAgLTMzMyw2 ICszMzMsNyBAQCBzdHJ1Y3QgeHBydF9jcmVhdGUgew0KICAgICAgICBzdHJ1Y3Qgc3ZjX3hwcnQg ICAgICAgICAqYmNfeHBydDsgICAgICAgLyogTkZTdjQuMSBiYWNrY2hhbm5lbCAqLw0KICAgICAg ICBzdHJ1Y3QgcnBjX3hwcnRfc3dpdGNoICAqYmNfeHBzOw0KICAgICAgICB1bnNpZ25lZCBpbnQg ICAgICAgICAgICBmbGFnczsNCisgICAgICAgY29uc3Qgc3RydWN0IHJwY190aW1lb3V0ICp0aW1l b3V0OyAgICAgIC8qIHRpbWVvdXQgcGFybXMgKi8NCiB9Ow0KDQogc3RydWN0IHhwcnRfY2xhc3Mg ew0KZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvY2xudC5jIGIvbmV0L3N1bnJwYy9jbG50LmMNCmlu ZGV4IDBiMGI5ZjFlZWQ0Ni4uMTM1MGMxZjQ4OWY3IDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy9j bG50LmMNCisrKyBiL25ldC9zdW5ycGMvY2xudC5jDQpAQCAtNTMyLDYgKzUzMiw3IEBAIHN0cnVj dCBycGNfY2xudCAqcnBjX2NyZWF0ZShzdHJ1Y3QgcnBjX2NyZWF0ZV9hcmdzICphcmdzKQ0KICAg ICAgICAgICAgICAgIC5hZGRybGVuID0gYXJncy0+YWRkcnNpemUsDQogICAgICAgICAgICAgICAg LnNlcnZlcm5hbWUgPSBhcmdzLT5zZXJ2ZXJuYW1lLA0KICAgICAgICAgICAgICAgIC5iY194cHJ0 ID0gYXJncy0+YmNfeHBydCwNCisgICAgICAgICAgICAgICAudGltZW91dCA9IGFyZ3MtPnRpbWVv dXQsDQogICAgICAgIH07DQogICAgICAgIGNoYXIgc2VydmVybmFtZVs0OF07DQogICAgICAgIHN0 cnVjdCBycGNfY2xudCAqY2xudDsNCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMg Yi9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCmluZGV4IGFhYTViMjc0MWI3OS4uNDU3YjllMGQ3MmJh IDEwMDY0NA0KLS0tIGEvbmV0L3N1bnJwYy94cHJ0c29jay5jDQorKysgYi9uZXQvc3VucnBjL3hw cnRzb2NrLmMNCkBAIC0yOTgzLDYgKzI5ODMsNyBAQCBzdGF0aWMgc3RydWN0IHJwY194cHJ0ICp4 c19zZXR1cF90Y3Aoc3RydWN0IHhwcnRfY3JlYXRlICphcmdzKQ0KICAgICAgICBzdHJ1Y3QgcnBj X3hwcnQgKnhwcnQ7DQogICAgICAgIHN0cnVjdCBzb2NrX3hwcnQgKnRyYW5zcG9ydDsNCiAgICAg ICAgc3RydWN0IHJwY194cHJ0ICpyZXQ7DQorICAgICAgIHN0cnVjdCBycGNfdGltZW91dCAqdGlt ZW91dDsNCiAgICAgICAgdW5zaWduZWQgaW50IG1heF9zbG90X3RhYmxlX3NpemUgPSB4cHJ0X21h eF90Y3Bfc2xvdF90YWJsZV9lbnRyaWVzOw0KDQogICAgICAgIGlmIChhcmdzLT5mbGFncyAmIFhQ UlRfQ1JFQVRFX0lORklOSVRFX1NMT1RTKQ0KQEAgLTMwMDMsNyArMzAwNCwxNCBAQCBzdGF0aWMg c3RydWN0IHJwY194cHJ0ICp4c19zZXR1cF90Y3Aoc3RydWN0IHhwcnRfY3JlYXRlICphcmdzKQ0K ICAgICAgICB4cHJ0LT5pZGxlX3RpbWVvdXQgPSBYU19JRExFX0RJU0NfVE87DQoNCiAgICAgICAg eHBydC0+b3BzID0gJnhzX3RjcF9vcHM7DQotICAgICAgIHhwcnQtPnRpbWVvdXQgPSAmeHNfdGNw X2RlZmF1bHRfdGltZW91dDsNCisNCisgICAgICAgaWYgKGFyZ3MtPnRpbWVvdXQpIHsNCisgICAg ICAgICAgICAgICB0aW1lb3V0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHJwY190aW1lb3V0KSwg R0ZQX0tFUk5FTCk7DQorICAgICAgICAgICAgICAgbWVtY3B5KHRpbWVvdXQsIGFyZ3MtPnRpbWVv dXQsIHNpemVvZihzdHJ1Y3QgcnBjX3RpbWVvdXQpKTsNCisgICAgICAgICAgICAgICB4cHJ0LT50 aW1lb3V0ID0gdGltZW91dDsNCisgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICAgICB4cHJ0 LT50aW1lb3V0ID0gJnhzX3RjcF9kZWZhdWx0X3RpbWVvdXQ7DQorICAgICAgIH0NCg0KICAgICAg ICB4cHJ0LT5tYXhfcmVjb25uZWN0X3RpbWVvdXQgPSB4cHJ0LT50aW1lb3V0LT50b19tYXh2YWw7 DQogICAgICAgIHhwcnQtPmNvbm5lY3RfdGltZW91dCA9IHhwcnQtPnRpbWVvdXQtPnRvX2luaXR2 YWwgKg0KDQoNCg0KDQogDQo=