Received: by 2002:a05:6358:53a8:b0:117:f937:c515 with SMTP id z40csp4699013rwe; Mon, 17 Apr 2023 17:33:20 -0700 (PDT) X-Google-Smtp-Source: AKy350Z61A/wWqJHWAHY9aPN5Ni3C0VaGIL5itf3yf13AH089yuzOp201ouQOyJ2F7s6VUt8afD/ X-Received: by 2002:a05:6a20:729f:b0:ee:a546:d439 with SMTP id o31-20020a056a20729f00b000eea546d439mr14216364pzk.38.1681777999836; Mon, 17 Apr 2023 17:33:19 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1681777999; cv=pass; d=google.com; s=arc-20160816; b=UhXHmpQbW3HmC0Nj0VaL4V8zxM8gpG86IFwbL+lHF0Q3gbmxJ7hY0EF0jciyUCZYlY gJ2YR65OnDYAnvZ9fmP1mFvlE1LuHGJzWm/Io0fiIcnrLvvg0gyehVpGDK9kRYF04qhR SBdabU3Ppcif8A0V+loM8t9hAOWCzu40vwcd6vw5scL0TTbR9BC4H8B8yunUyFEwn58W 9EblYJf2F0790dR9D2zDEPWdx87ES+feosB+jO9ryL/sULbGStJG1HZh1Uy689namsQt 4zcViC6FyIHomwysiSnQnlCvy1MxSkp3vjfgj2S/60G9rU4zD4xDGHzjHJfardsMaH8w FERA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=yzCVQxXp6d7ALMOYH0NWNL0p8Zt/FdUVTlRn2hOnQME=; b=rUuv+YMKtghkNBVFc6ezWAVt/aGImnBsugXEx7YRzIj2oheQXI/ojvelZxuyG1EwsT /jDy8IogFbfRjZajgNKlSoSQXS6NgFyS3Ky/WhQ1Va90PLlHG0ibUvISSMjQYUxDG5zN U/fMLAUDZkXrZQhn7rklwrRjhidUsSG1Sz4douyGuxnxHPAmlXIvSLWZHjUK2x7GVaoL 6JsdhSO29vjRdHfRWItOHUaiAWm5GLQLWuglmCtENFggIcw8VVezYGYfr/qOd0yUq+jK Zbp+c2ncOSYEndfgTZYoiYBQ1LPWF4VIhrS4UU/7bh108c95Hc03TR1AgWDpdOyV2Fx5 3HIw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b="MEjx42/F"; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z7-20020a63e547000000b0051ba2478f52si5468328pgj.524.2023.04.17.17.33.03; Mon, 17 Apr 2023 17:33:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b="MEjx42/F"; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229602AbjDRAXI (ORCPT + 99 others); Mon, 17 Apr 2023 20:23:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229575AbjDRAXH (ORCPT ); Mon, 17 Apr 2023 20:23:07 -0400 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 206CFE47 for ; Mon, 17 Apr 2023 17:23:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VDTVAvcnEa0T9XMQxJ2w/kZ7nVOZc4LO1IaxG+bG7JZfRUsoFRyMfstLuHbwXnAFoo0fb+1diLKb7tI6cDkpjFbP0z6P6XelR15VEmfE2kr2X1OPALc9Mf6uPbgVKiaFPlMjIYgr0nJ/tG6hAznDbZ97yQAMIq/yriVtcov5epJgMvxh+0EoqxbtmHQjHuYHTWR6B3xYoA1NdyeC213UkqopyQzN+56SmuObRjj0PNMGhZTCkXXM9j8KblTL9knr2MYdggXesKOFmuqRMcZo9jY6DUouEPyF0JA6KMmN0BL9Vy30m6LIodC5KC59qV2OVh/7r5XqW7M1eM6EibjcBQ== 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=yzCVQxXp6d7ALMOYH0NWNL0p8Zt/FdUVTlRn2hOnQME=; b=l59QtCXfYqIsKxmF2P4eb+CWZpoDWZfoVZM7HJZegxp6JE9eXh+JIeHyLaTt6gxWZLLLzs0fCd8yJHfs+d1mU+/yyoLmjmGko9Tf7rfkMdnhuqWFSQyKoqGDPS1SxUr6SCjil9WO94aS8evS/qduL9uNG9yQ1d5cDDzkAP6cMqZn9x4mYqQ21Dpwwf+w04PfJKKLCqI1noAJlQFjreWjXcKtSP+ZXIL5NZxXag1wPMQ55La5NSYo9e7nkB+00aEeeOP683x1hmrNUE06mbK9SfB7vJ7IOqHY6GIx8356NqeGWNrZmH0Af3CrLmkO1rzSOEK3weruRKdqOLamYlfryQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yzCVQxXp6d7ALMOYH0NWNL0p8Zt/FdUVTlRn2hOnQME=; b=MEjx42/FMJgwaf3foYOPWLR9f+adxyL8GOfeim4s02knYQJrrBk0CoTN58BDB+OdAHdU0pxFDmZsGdI70BpnQceL+2/hIoK098+a1+c5QhqrTNxvGKf6mNnsDFDX8+VNEaEMp0f2O1ygyHu5htwdW9EOIZbVIldb88R7uFofShs= Received: from CH0PR13MB5084.namprd13.prod.outlook.com (2603:10b6:610:111::7) by SA1PR13MB5564.namprd13.prod.outlook.com (2603:10b6:806:233::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Tue, 18 Apr 2023 00:23:01 +0000 Received: from CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::3627:d466:b0ae:1740]) by CH0PR13MB5084.namprd13.prod.outlook.com ([fe80::3627:d466:b0ae:1740%3]) with mapi id 15.20.6298.045; Tue, 18 Apr 2023 00:23:01 +0000 From: Trond Myklebust To: "dai.ngo@oracle.com" , "chuck.lever@oracle.com" CC: "linux-nfs@vger.kernel.org" , "jlayton@kernel.org" Subject: Re: [PATCH] SUNRPC: increase max timeout for rebind to handle NFS server restart Thread-Topic: [PATCH] SUNRPC: increase max timeout for rebind to handle NFS server restart Thread-Index: AQHZacp/6QlIRljOckmeDtcvLmj9Dq8wCLWAgAAOegCAAAHKAIAAARIAgAAAdQCAABaNgIAAEzmA Date: Tue, 18 Apr 2023 00:23:01 +0000 Message-ID: References: <1680924600-11171-1-git-send-email-dai.ngo@oracle.com> <8723e01c577e257c399e8d3b6e20bca6320964c3.camel@hammerspace.com> <19bf7b21-fc68-5281-e587-b7d290899456@oracle.com> <00fe5d5a-43b8-0f0e-2afe-ae68367f822d@oracle.com> In-Reply-To: <00fe5d5a-43b8-0f0e-2afe-ae68367f822d@oracle.com> Accept-Language: en-US, en-GB 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=hammerspace.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH0PR13MB5084:EE_|SA1PR13MB5564:EE_ x-ms-office365-filtering-correlation-id: af443123-e578-45b3-2a4f-08db3fa311bd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: W/wWC5nvawVp/tcxPgeJomse+DyF1uBHA4DgMAma/CvPRSgGC2KnkGdinVtOHQ8k4sQvNnOFhh3xuqTtC+pyAnV0Fd1zwRkqDURdedDehiOeFbgLbnxKu3whGTnlPq9jbNEg2vCcUZzLGymuRsqmgs9rRn2tXblaPoPfgzrSHdm2JspWaLRf95a7OHXO8IpOiFpFwJLeLHhEM/SXQQTTzpZax+CVoWgnq9gM678Ie26NLzyhitWnKN7Bwbmt2PgkRF1SfLduTt3bXpJYu/+fGu9hyf+rmi7+lOhwxE712m+HXPzbz9zwkmP8eOAMccKGyHc8PmVe8hnBV4qqea0HEmTUzwsYXBlioiHF7LqkOmglJx/Jes/mpVN8m5FFW8hY2XX1YzkXkdQXN5lKISO2NIitGcuQ1Gp0Soc6cdfgAUtV395JEWNh3g2wR7xq/qBrBhZ2scXagr2GREJSu8COHqk0LBHhgHuGL8sH0x0cUDddOiLA7cNvld2FIChPboB8Lqeb1FOudiuxfzewq+H10cxhkU/u92GY2lhj9eXmSBQwBFXaxIREYlSscBnsugwPsKdZf974KqwNCSl2umg2Qo9UHLb6OvaZCDTXife1kdbq/uCyY/0+gQHPSsljkoV2Cb8J4zDGOEHfao4ZXBWNEXs78Uu5KLMFOPfiplEsmyA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR13MB5084.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(346002)(376002)(366004)(39840400004)(396003)(451199021)(83380400001)(2616005)(6506007)(6512007)(53546011)(478600001)(6486002)(71200400001)(110136005)(54906003)(76116006)(66946007)(66476007)(66446008)(4326008)(64756008)(66556008)(316002)(86362001)(186003)(41300700001)(36756003)(8936002)(8676002)(5660300002)(2906002)(122000001)(38100700002)(38070700005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TitKSjZFVHZBWE4wcTJEUEg3SEdjbXhwbXRGdDUySEpXNk51YWZIMHl0dmh3?= =?utf-8?B?N1lmUU5TbmI5eG9OcEcwWkR5M3BzOUQ1RlpHZWl0dzFpZkVxVU9LS0JiSDZR?= =?utf-8?B?Q0h4dzh0RGY0RmhsRDdCN2JiSmY4dElzZ3ZGN05XUUh1ejVMT1lvb0ZaNmpF?= =?utf-8?B?QjlWRWwzbjlRWG9ZVk5iM3ozTFR3VnNDbW1hNm90U0pQVFN3aUp4bGZsbjB3?= =?utf-8?B?cjNSajFkelBFRnJCcEorR2wvbEIvcmNoS0dUc3l0NXhaSzVSc2ZmZWxTaTFl?= =?utf-8?B?SzgxOGFyOEYzeE5hK25aVk9tSVNmOUtpSm5xNEFCOHVYK1J5d2dIUlhxbUIw?= =?utf-8?B?UXZwenREaGJEbVMxd0FWeUZSYkRlMnpzdndRYTRuR3RZd3V6RThFbXNlellp?= =?utf-8?B?Q0x3VmdiL0tBT09CU0tMeXo3eEpVODFsMnN1SUdjcnR3YzhpNjhCMm5tcSt5?= =?utf-8?B?OHV0ejBHVERDRFc5ZytKWklaV2dRWUMwQXJyVVZUSVpodWRYdnhuWUR4czNH?= =?utf-8?B?UC93azNFR21SRmlCU3YvQ1VlR2JERFFocmEzQlJBSXV2b3N1bFA4N2FmNm5u?= =?utf-8?B?ZldGTVRJTjhZeDFtZDFPT3REWVpZenZsRUliQTkxVUZMVE1BT0UveHdwRC91?= =?utf-8?B?YU9yR3RnRGpKa0x4cmkyU294WDQ2Qnk2QmxUT09uajBYeVlYYXhRaTA4WjJz?= =?utf-8?B?TzRxdjlxK09vYWxlVUx0ZXozejNvckJkcXVxQTlBdjhOUUNNeFhaV2ZMNks0?= =?utf-8?B?WTdSRnRnQXQxQkhwdkNhaEhrQkRTdjdaNndjV0s2RUxBZkRQS2l5TDcyMVUz?= =?utf-8?B?R2JPZVNkeHRUa1pyNHYwZlMyRlhWdnYrUFgrOVBDQWswYklhNDR2OHptK21X?= =?utf-8?B?SFdnUFI3NjllTFhoeEVLaXF0Q3Y5Vjl2RVFBWUFPckxtOGZlbkludDF5NDhS?= =?utf-8?B?V0xOekplUE9oMGZacnE0QWFPaUFMazJYL3BNTnptTUJOUGdSNEllK1oyRXNQ?= =?utf-8?B?eUFrb1QrVWd5anA5WVIxRjJjQXM4MnFHdDR2bm9UR2JlcTh4ZjJQWDZpRWpu?= =?utf-8?B?dmkrUTN4RFlDNzVuRFh3Zzg1SUM5VVh0SVUrRmQ4N2loZlFFditnTDM3MTdD?= =?utf-8?B?bEhyY3ZOQ09RY3g0MnBpaGhYb1prank5YWtaMGY4eWxTc1pKblFrTDhRSWc4?= =?utf-8?B?anU0ZmtDUXh2OW1FdmxkdmVqVmkvQUtvMzlTWFpjanlWZHBTZXlNYUt4ZE4y?= =?utf-8?B?TitWSzVTRkhrRFVEYldSRTdDRTZFVzQvUE1YeEN3Z3RwRkl6RDVKWE9JekhJ?= =?utf-8?B?dDlBbVY5WnhYN1BYYjNORHp5TlJRN2owVzIvMkRQaGtEWU9kNi8zTGhYV3BZ?= =?utf-8?B?cHdmdEZKZE16TGRaTW1MQ3VYWGM3SnFWYmx4TVFaRVhaYzJlVDFEVEc2b01U?= =?utf-8?B?UHJGdVUzRzE5bTNIU0J6amgyUVFkaU9Zck92VXJwSXJ3U0gvRE5qcTJEV011?= =?utf-8?B?VzdFT3dnQTgxbkpPTlcxMXE3aEM4dFJSUlV2NkhYY0JaZEtDNU5hYzh3SDJw?= =?utf-8?B?VkovNVpKY0c3VENONTVUeFQ0UWFBZVp1R2hJNWgxSXZpRDFlSnRaVTVScXFK?= =?utf-8?B?OTZDZzRpQXdVMzVsZisvNS9acjFyUVpQTWRqOHFGbmtXODJYV0xyQUVScm95?= =?utf-8?B?MG9DbnlPZXRHVldPTzZkdWlCazQvWHFxZnBKLyszSnNVVThNYkFwSHk0azhZ?= =?utf-8?B?NkcxNFBwNVpmNndUc3JUK0pHMFZhYVgxZnZMNU8yK2o0bEgzRVZFeG1xSjU3?= =?utf-8?B?V2Fici80bG9MSU1mNjdqanN5b3ZoRWs5Z1RwMDhpTDVENFhHSmd6OHJ5WGR6?= =?utf-8?B?RFpFU2RXK3ZrT2o3NjBSdlBMc3V1ME1nNE8rYWVhZXh4L1k4Z01meEhLUGhT?= =?utf-8?B?Q1k2b3pNTkQ2M29HWDZzckljSHdzbHhTQXNnMW9OWWh0YW5iOHQwSlVjZGs1?= =?utf-8?B?OGlXdjBNNmlmaHRzcUN1Q2dELzhLOVliUHFHUkZtVWZQN2p4eTRwY1Erdnoz?= =?utf-8?B?TTJjb2JvVldUSXRtcnNkbVEwVjV3YmtMaEhsVW5tRCtkY1M3WHFBaktBOVhl?= =?utf-8?B?bExwYmtFNG5UaFpOaDZTQ1lmQUJuS0ZzaDZtWFoyY0lpY240VnJxdnQ1dXc2?= =?utf-8?B?aDljdVVTcy9SSXBONjRhRzQwVm9FM1ZESGdwRnBHNEUwNjZwVFBUQkJ5MkNG?= =?utf-8?B?dmphNGNuZFo1Q1dkcVoyNmxIK2ZnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR13MB5084.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af443123-e578-45b3-2a4f-08db3fa311bd X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2023 00:23:01.2402 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: DBgmdia4CnEPL5xvkk/A/zlU/WiJumZ8DCJDWuWZN65Jl2gO9VNE7rPpr53TqaYR1DoWv9Anv03nPr6do8oF0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB5564 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIzLTA0LTE3IGF0IDE2OjE0IC0wNzAwLCBkYWkubmdvQG9yYWNsZS5jb20gd3Jv dGU6DQo+IA0KPiBPbiA0LzE3LzIzIDI6NTMgUE0sIFRyb25kIE15a2xlYnVzdCB3cm90ZToNCj4g PiBPbiBNb24sIDIwMjMtMDQtMTcgYXQgMTQ6NTEgLTA3MDAsIGRhaS5uZ29Ab3JhY2xlLmNvbcKg d3JvdGU6DQo+ID4gPiBPbiA0LzE3LzIzIDI6NDggUE0sIFRyb25kIE15a2xlYnVzdCB3cm90ZToN Cj4gPiA+ID4gT24gTW9uLCAyMDIzLTA0LTE3IGF0IDIxOjQxICswMDAwLCBDaHVjayBMZXZlciBJ SUkgd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBBcHIgMTcsIDIwMjMsIGF0IDQ6NDkgUE0sIFRyb25k IE15a2xlYnVzdA0KPiA+ID4gPiA+ID4gPHRyb25kbXlAaGFtbWVyc3BhY2UuY29tPiB3cm90ZToN Cj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gT24gRnJpLCAyMDIzLTA0LTA3IGF0IDIwOjMwIC0w NzAwLCBEYWkgTmdvIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBDdXJyZW50bHkgY2FsbF9iaW5kX3N0 YXR1cyBwbGFjZXMgYSBoYXJkIGxpbWl0IG9mIDkNCj4gPiA+ID4gPiA+ID4gc2Vjb25kcw0KPiA+ ID4gPiA+ID4gPiBmb3INCj4gPiA+ID4gPiA+ID4gcmV0cmllcw0KPiA+ID4gPiA+ID4gPiBvbiBF QUNDRVMgZXJyb3IuIFRoaXMgbGltaXQgd2FzIGRvbmUgdG8gcHJldmVudCB0aGUgUlBDDQo+ID4g PiA+ID4gPiA+IHJlcXVlc3QNCj4gPiA+ID4gPiA+ID4gZnJvbQ0KPiA+ID4gPiA+ID4gPiBiZWlu ZyByZXRyaWVkIGZvcmV2ZXIgaWYgdGhlIHJlbW90ZSBzZXJ2ZXIgaGFzIHByb2JsZW0NCj4gPiA+ ID4gPiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+IG5ldmVyDQo+ID4gPiA+ID4gPiA+IGNvbWVzDQo+ ID4gPiA+ID4gPiA+IHVwDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBIb3dldmVyIHRo aXMgOSBzZWNvbmRzIHRpbWVvdXQgaXMgdG9vIHNob3J0LCBjb21wYXJpbmcgdG8NCj4gPiA+ID4g PiA+ID4gb3RoZXINCj4gPiA+ID4gPiA+ID4gUlBDDQo+ID4gPiA+ID4gPiA+IHRpbWVvdXRzIHdo aWNoIGFyZSBnZW5lcmFsbHkgaW4gbWludXRlcy4gVGhpcyBjYXVzZXMNCj4gPiA+ID4gPiA+ID4g aW50ZXJtaXR0ZW50DQo+ID4gPiA+ID4gPiA+IGZhaWx1cmUNCj4gPiA+ID4gPiA+ID4gd2l0aCBF SU8gb24gdGhlIGNsaWVudCBzaWRlIHdoZW4gdGhlcmUgYXJlIGxvdHMgb2YgTkxNDQo+ID4gPiA+ ID4gPiA+IGFjdGl2aXR5DQo+ID4gPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gTkZTIHNlcnZlciBpcyByZXN0YXJ0ZWQuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiBJbnN0ZWFkIG9mIHJlbW92aW5nIHRoZSBtYXggdGltZW91dCBmb3IgcmV0cnkg YW5kIHJlbHlpbmcNCj4gPiA+ID4gPiA+ID4gb24NCj4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ ID4gPiA+IFJQQw0KPiA+ID4gPiA+ID4gPiB0aW1lb3V0IG1lY2hhbmlzbSB0byBoYW5kbGUgdGhl IHJldHJ5LCB3aGljaCBjYW4gbGVhZCB0bw0KPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ ID4gUlBDDQo+ID4gPiA+ID4gPiA+IGJlaW5nDQo+ID4gPiA+ID4gPiA+IHJldHJpZWQgZm9yZXZl ciBpZiB0aGUgcmVtb3RlIE5MTSBzZXJ2aWNlIGZhaWxzIHRvIGNvbWUNCj4gPiA+ID4gPiA+ID4g dXAuDQo+ID4gPiA+ID4gPiA+IFRoaXMNCj4gPiA+ID4gPiA+ID4gcGF0Y2gNCj4gPiA+ID4gPiA+ ID4gc2ltcGx5IGluY3JlYXNlcyB0aGUgbWF4IHRpbWVvdXQgb2YgY2FsbF9iaW5kX3N0YXR1cyBm cm9tDQo+ID4gPiA+ID4gPiA+IDkNCj4gPiA+ID4gPiA+ID4gdG8gOTANCj4gPiA+ID4gPiA+ID4g c2Vjb25kcw0KPiA+ID4gPiA+ID4gPiB3aGljaCBzaG91bGQgYWxsb3cgZW5vdWdoIHRpbWUgZm9y IE5MTSB0byByZWdpc3RlciBhZnRlcg0KPiA+ID4gPiA+ID4gPiBhDQo+ID4gPiA+ID4gPiA+IHJl c3RhcnQsDQo+ID4gPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+ID4gPiBub3QgcmV0cnlpbmcgZm9y ZXZlciBpZiB0aGVyZSBpcyByZWFsIHByb2JsZW0gd2l0aCB0aGUNCj4gPiA+ID4gPiA+ID4gcmVt b3RlDQo+ID4gPiA+ID4gPiA+IHN5c3RlbS4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ IEZpeGVzOiAwYjc2MDExM2EzYTEgKCJOTE06IERvbid0IGhhbmcgZm9yZXZlciBvbiBOTE0NCj4g PiA+ID4gPiA+ID4gdW5sb2NrDQo+ID4gPiA+ID4gPiA+IHJlcXVlc3RzIikNCj4gPiA+ID4gPiA+ ID4gUmVwb3J0ZWQtYnk6IEhlbGVuIENoYW8gPGhlbGVuLmNoYW9Ab3JhY2xlLmNvbT4NCj4gPiA+ ID4gPiA+ID4gVGVzdGVkLWJ5OiBIZWxlbiBDaGFvIDxoZWxlbi5jaGFvQG9yYWNsZS5jb20+DQo+ ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IERhaSBOZ28gPGRhaS5uZ29Ab3JhY2xlLmNvbT4N Cj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+IMKgwqDCoGluY2x1ZGUvbGludXgvc3Vu cnBjL2NsbnQuaMKgIHwgMyArKysNCj4gPiA+ID4gPiA+ID4gwqDCoMKgaW5jbHVkZS9saW51eC9z dW5ycGMvc2NoZWQuaCB8IDQgKystLQ0KPiA+ID4gPiA+ID4gPiDCoMKgwqBuZXQvc3VucnBjL2Ns bnQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAyICstDQo+ID4gPiA+ID4gPiA+IMKgwqDCoG5l dC9zdW5ycGMvc2NoZWQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMyArKy0NCj4gPiA+ID4gPiA+ ID4gwqDCoMKgNCBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9zdW5ycGMvY2xudC5oDQo+ID4gPiA+ID4gPiA+IGIvaW5jbHVkZS9saW51eC9zdW5ycGMvY2xu dC5oDQo+ID4gPiA+ID4gPiA+IGluZGV4IDc3MGVmMmNiNTc3NS4uODFhZmM1ZWEyNjY1IDEwMDY0 NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9jbG50LmgNCj4gPiA+ ID4gPiA+ID4gKysrIGIvaW5jbHVkZS9saW51eC9zdW5ycGMvY2xudC5oDQo+ID4gPiA+ID4gPiA+ IEBAIC0xNjIsNiArMTYyLDkgQEAgc3RydWN0IHJwY19hZGRfeHBydF90ZXN0IHsNCj4gPiA+ID4g PiA+ID4gwqDCoMKgI2RlZmluZSBSUENfQ0xOVF9DUkVBVEVfUkVVU0VQT1JUwqDCoMKgwqDCoCAo MVVMIDw8IDExKQ0KPiA+ID4gPiA+ID4gPiDCoMKgwqAjZGVmaW5lIFJQQ19DTE5UX0NSRUFURV9D T05ORUNURUTCoMKgwqDCoMKgICgxVUwgPDwgMTIpDQo+ID4gPiA+ID4gPiA+IMKgwqAgDQo+ID4g PiA+ID4gPiA+ICsjZGVmaW5lwqDCoMKgwqDCoMKgwqAgUlBDX0NMTlRfUkVCSU5EX0RFTEFZwqDC oMKgwqDCoMKgwqDCoMKgwqAgMw0KPiA+ID4gPiA+ID4gPiArI2RlZmluZcKgwqDCoMKgwqDCoMKg IFJQQ19DTE5UX1JFQklORF9NQVhfVElNRU9VVMKgwqDCoMKgIDkwDQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gwqDCoMKgc3RydWN0IHJwY19jbG50ICpycGNfY3JlYXRlKHN0cnVjdCBy cGNfY3JlYXRlX2FyZ3MNCj4gPiA+ID4gPiA+ID4gKmFyZ3MpOw0KPiA+ID4gPiA+ID4gPiDCoMKg wqBzdHJ1Y3QgcnBjX2NsbnTCoMKgwqDCoMKgwqDCoCAqcnBjX2JpbmRfbmV3X3Byb2dyYW0oc3Ry dWN0DQo+ID4gPiA+ID4gPiA+IHJwY19jbG50ICosDQo+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b25zdCBzdHJ1Y3QNCj4gPiA+ID4gPiA+ID4gcnBjX3Byb2dyYW0gKiwNCj4gPiA+ID4gPiA+ID4g dTMyKTsNCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3VucnBjL3Nj aGVkLmgNCj4gPiA+ID4gPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oDQo+ID4g PiA+ID4gPiA+IGluZGV4IGI4Y2EzZWNhZjhkNy4uZTlkYzE0MmYxMGJiIDEwMDY0NA0KPiA+ID4g PiA+ID4gPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9zY2hlZC5oDQo+ID4gPiA+ID4gPiA+ ICsrKyBiL2luY2x1ZGUvbGludXgvc3VucnBjL3NjaGVkLmgNCj4gPiA+ID4gPiA+ID4gQEAgLTkw LDggKzkwLDggQEAgc3RydWN0IHJwY190YXNrIHsNCj4gPiA+ID4gPiA+ID4gwqDCoMKgI2VuZGlm DQo+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBjaGFywqDCoMKgwqDC oMKgwqDCoMKgwqAgdGtfcHJpb3JpdHkgOiAyLC8qIFRhc2sNCj4gPiA+ID4gPiA+ID4gcHJpb3Jp dHkNCj4gPiA+ID4gPiA+ID4gKi8NCj4gPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRrX2dhcmJfcmV0 cnkgOiAyLA0KPiA+ID4gPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRrX2NyZWRfcmV0cnkgOiAyLA0KPiA+ID4gPiA+ ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHRrX3JlYmluZF9yZXRyeSA6IDI7DQo+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGtfY3Jl ZF9yZXRyeSA6IDI7DQo+ID4gPiA+ID4gPiA+ICvCoMKgwqDCoMKgwqAgdW5zaWduZWQgY2hhcsKg wqDCoMKgwqDCoMKgwqDCoMKgIHRrX3JlYmluZF9yZXRyeTsNCj4gPiA+ID4gPiA+ID4gwqDCoMKg fTsNCj4gPiA+ID4gPiA+ID4gwqDCoCANCj4gPiA+ID4gPiA+ID4gwqDCoMKgdHlwZWRlZiB2b2lk wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgqcnBjX2FjdGlvbikoc3RydWN0 DQo+ID4gPiA+ID4gPiA+IHJwY190YXNrICopOw0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv bmV0L3N1bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuYw0KPiA+ID4gPiA+ID4gPiBpbmRl eCBmZDdlMWM2MzA0OTMuLjIyMjU3OGFmNmIwMSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEv bmV0L3N1bnJwYy9jbG50LmMNCj4gPiA+ID4gPiA+ID4gKysrIGIvbmV0L3N1bnJwYy9jbG50LmMN Cj4gPiA+ID4gPiA+ID4gQEAgLTIwNTMsNyArMjA1Myw3IEBAIGNhbGxfYmluZF9zdGF0dXMoc3Ry dWN0IHJwY190YXNrDQo+ID4gPiA+ID4gPiA+ICp0YXNrKQ0KPiA+ID4gPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh0YXNrLT50a19yZWJpbmRfcmV0cnkgPT0g MCkNCj4gPiA+ID4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdGFzay0+dGtfcmViaW5kX3JldHJ5LS07DQo+ID4gPiA+ID4gPiA+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJwY19kZWxheSh0YXNrLCAzKkhaKTsNCj4gPiA+ID4g PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcnBjX2RlbGF5KHRhc2ssIFJQQ19D TE5UX1JFQklORF9ERUxBWSAqDQo+ID4gPiA+ID4gPiA+IEhaKTsNCj4gPiA+ID4gPiA+ID4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIHJldHJ5X3RpbWVvdXQ7DQo+ID4g PiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIC1FTk9CVUZTOg0KPiA+ID4gPiA+ID4g PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJwY19kZWxheSh0YXNrLCBIWiA+ PiAyKTsNCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvc2NoZWQuYyBiL25l dC9zdW5ycGMvc2NoZWQuYw0KPiA+ID4gPiA+ID4gPiBpbmRleCBiZTU4N2EzMDhlMDUuLjVjMThh MzU3NTJhYSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvbmV0L3N1bnJwYy9zY2hlZC5jDQo+ ID4gPiA+ID4gPiA+ICsrKyBiL25ldC9zdW5ycGMvc2NoZWQuYw0KPiA+ID4gPiA+ID4gPiBAQCAt ODE3LDcgKzgxNyw4IEBAIHJwY19pbml0X3Rhc2tfc3RhdGlzdGljcyhzdHJ1Y3QNCj4gPiA+ID4g PiA+ID4gcnBjX3Rhc2sNCj4gPiA+ID4gPiA+ID4gKnRhc2spDQo+ID4gPiA+ID4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoCAvKiBJbml0aWFsaXplIHJldHJ5IGNvdW50ZXJzICovDQo+ID4gPiA+ID4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoCB0YXNrLT50a19nYXJiX3JldHJ5ID0gMjsNCj4gPiA+ID4g PiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgIHRhc2stPnRrX2NyZWRfcmV0cnkgPSAyOw0KPiA+ID4g PiA+ID4gPiAtwqDCoMKgwqDCoMKgIHRhc2stPnRrX3JlYmluZF9yZXRyeSA9IDI7DQo+ID4gPiA+ ID4gPiA+ICvCoMKgwqDCoMKgwqAgdGFzay0+dGtfcmViaW5kX3JldHJ5ID0NCj4gPiA+ID4gPiA+ ID4gUlBDX0NMTlRfUkVCSU5EX01BWF9USU1FT1VUIC8NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gPiBSUENfQ0xOVF9SRUJJTkRfREVMQVk7DQo+ID4gPiA+ID4gPiBXaHkgbm90IGp1c3Qg aW1wbGVtZW50IGFuIGV4cG9uZW50aWFsIGJhY2sgb2ZmPyBJZiB0aGUNCj4gPiA+ID4gPiA+IHNl cnZlcg0KPiA+ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+IHNsb3cNCj4gPiA+ID4gPiA+IHRvIGNv bWUgdXAsIHRoZW4gcG91bmRpbmcgdGhlIHJwY2JpbmQgc2VydmljZSBldmVyeSAzDQo+ID4gPiA+ ID4gPiBzZWNvbmRzDQo+ID4gPiA+ID4gPiBpc24ndA0KPiA+ID4gPiA+ID4gZ29pbmcgdG8gaGVs cC4NCj4gPiA+ID4gPiBFeHBvbmVudGlhbCBiYWNrb2ZmIGhhcyB0aGUgZGlzYWR2YW50YWdlIHRo YXQgb25jZSB3ZSd2ZQ0KPiA+ID4gPiA+IGdvdHRlbg0KPiA+ID4gPiA+IHRvIHRoZSBsb25nZXIg cmV0cnkgdGltZXMsIGl0J3MgZWFzeSBmb3IgYSBjbGllbnQgdG8gd2FpdA0KPiA+ID4gPiA+IHF1 aXRlDQo+ID4gPiA+ID4gc29tZSB0aW1lIGJlZm9yZSBpdCBub3RpY2VzIHRoZSByZWJpbmQgc2Vy dmljZSBpcyBhdmFpbGFibGUuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gQnV0IEkgaGF2ZSB0byB3 b25kZXIgaWYgcmV0cnlpbmcgZXZlcnkgMyBzZWNvbmRzIGlzIHVzZWZ1bCBpZg0KPiA+ID4gPiA+ IHRoZSByZXF1ZXN0IGlzIGdvaW5nIG92ZXIgVENQLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiBUaGUg cHJvYmxlbSBpc24ndCByZWxpYWJpbGl0eTogdGhpcyBpcyBoYW5kbGluZyBhIGNhc2Ugd2hlcmUg d2UNCj4gPiA+ID4gX2FyZV8NCj4gPiA+ID4gZ2V0dGluZyBhIHJlcGx5IGZyb20gdGhlIHNlcnZl ciwganVzdCBub3Qgb25lIHdlIHdhbnRlZC4gRUFDQ0VTDQo+ID4gPiA+IGhlcmUNCj4gPiA+ID4g bWVhbnMgdGhhdCB0aGUgcnBjYmluZCBzZXJ2ZXIgZGlkbid0IHJldHVybiBhIHZhbGlkIGVudHJ5 IGZvcg0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gc2VydmljZSB3ZSByZXF1ZXN0ZWQsIHByZXN1bWFi bHkgYmVjYXVzZSB0aGUgc2VydmljZSBoYXNuJ3QNCj4gPiA+ID4gYmVlbg0KPiA+ID4gPiByZWdp c3RlcmVkIHlldC4NCj4gPiA+IFRoYXQncyBjb3JyZWN0Lg0KPiA+ID4gDQo+ID4gPiA+IFNvIHll cywgYW4gZXhwb25lbnRpYWwgYmFjayBvZmYgaXMgYXBwcm9wcmlhdGUgaGVyZS4NCj4gPiA+IEkg dGhpbmsgQ2h1Y2sncyBwb2ludCBpcyBzdGlsbCB2YWxpZC4gSXQgbWFrZXMgdGhlIGNsaWVudCBh DQo+ID4gPiBsaXR0bGUNCj4gPiA+IG1vcmUNCj4gPiA+IHJlc3BvbnNpdmU7IGRvZXMgbm90IGhh dmUgdG8gd2FpdCB0aGF0IGxvbmcsIGFuZCB0aGUgb3ZlcmhlYWQgb2YNCj4gPiA+IGENCj4gPiA+ IFJQQw0KPiA+ID4gcmVxdWVzdCBldmVyeSAzIHNlY29uZHMgaXMgbm90IHRoYXQgc2lnbmlmaWNh bnQuDQo+ID4gSXQgaXMgd2hlbiB5b3UgZG8gaXQgMzAgdGltZXMgYmVmb3JlIGdpdmluZyB1cC4N Cj4gDQo+IFRoaXMgaXMgdHJ1ZSBmb3IgYSBkZWFkIE5GUyBzZXJ2ZXIsIHdlIHNhdmUgMjUgUlBD IGNhbGxzIGluIGEgcGVyaW9kDQo+IG9mIH45MCBzZWNvbmRzLg0KPiANCj4gSW4gdGhlIGNhc2Ug b2YgYSBoZWFkIGZhaWxvdmVyIGFuZCB0aGUgTkZTIHNlcnZpY2Ugb24gdGhlIHRha2VvdmVyDQo+ IGhlYWQgY2FuIHRha2UgdXAgdG8gMTUgc2Vjb25kcyB0byByZXN0YXJ0IHRvIHBpY2sgdXAgdGhl IG5ldyBleHBvcnRzDQo+IGZyb20gdGhlIGZhaWwgaGVhZCwgdGhlbiB0aGUgY2xpZW50IGNhbiBw b3RlbnRpYWxseSB3YWl0IHVwIHRvIH4yMA0KPiBzZWNvbmRzLCBhZnRlciB0aGUgTkZTIHNlcnZl ciBpcyByZWFkeSwgdG8gcmVzdW1lIG5vcm1hbCBvcGVyYXRpb24uDQo+IElNSE8sIGl0J3MgYSAn bG9uZycgdGltZSBhbmQgSSdkIHByaW9yaXRpemUgc3BlZWQgb3ZlciBzYXZpbmcgc29tZQ0KPiBv dmVyaGVhZC4NCj4gDQoNCnRhc2stPnRrX3JlYmluZF9yZXRyeSBpcyBfb25seV8gY2hhbmdlZCBp ZiB0aGUgcnBjYmluZCBzZXJ2ZXIgaXMgdXAgYW5kDQpydW5uaW5nLCBhbmQgcmV0dXJucyBhbiBl bXB0eSByZXBseSBiZWNhdXNlIHRoZSBzZXJ2aWNlIHdlJ3JlIGxvb2tpbmcNCnVwIGlzbid0IHJl Z2lzdGVyZWQuDQp0YXNrLT50a19yZWJpbmRfcmV0cnkgaXNuJ3QgY2hhbmdlZCBvbiBhbnkgcmVx dWVzdCB0aW1lb3V0LiBJdCBpc24ndA0KY2hhbmdlZCBvbiBhbnkgY29ubmVjdGlvbiBmYWlsdXJl LiBJdCBpc24ndCBjaGFuZ2VkIGJ5IGFueSBvdGhlciBjb2RlDQpwYXRoIGluIHRoZSBSUEMgY2xp ZW50Lg0KDQpTbyBub25lIG9mIHRoaXMgYXBwbGllcyB0byB0aGUgY2FzZSBvZiBhIGRlYWQgc2Vy dmVyLg0KDQpJdCBhcHBsaWVzIHRvIHRoZSBjYXNlIG9mIGEgbGl2ZSBzZXJ2ZXIsIHdoZXJlIHJw Y2JpbmQgaXMgcnVubmluZyBhbmQNCmFjY2Vzc2libGUgdG8gdGhlIGNsaWVudCBhbmQgd2hlcmUs IGZvciBzb21lIHJlYXNvbiBvciBhbm90aGVyLCBpdCBpcw0KdGFraW5nIGFuIGV4Y2VwdGlvbmFs bHkgbG9uZyB0aW1lIHRvIHJlZ2lzdGVyIHRoZSBzZXJ2aWNlIHdlIGFyZQ0KbG9va2luZyB1cCB0 aGUgcG9ydCBmb3IgKGVpdGhlciBOTE0gb3IgTkZTdjMpLg0KDQpTbyB3aGVyZSBhcmUgeW91IHNl ZWluZyB0aGlzIHByb2Nlc3MgdGFrZSA5MCBzZWNvbmRzPyBXaHkgZG8gd2UgbmVlZCB0bw0Kd2Fp dCBmb3IgdGhhdCBsb25nIGJlZm9yZSB3ZSBjYW4gZmluYWxseSBjb25jbHVkZSB0aGF0IHRoZSBw YXJ0aWN1bGFyDQpzZXJ2aWNlIGluIHF1ZXN0aW9uIGlzIG5vdCBnb2luZyB0byBjb21lIGJhY2sg dXA/DQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXIs IEhhbW1lcnNwYWNlDQp0cm9uZC5teWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tDQoNCg0K