Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp5665305ybl; Tue, 14 Jan 2020 12:52:57 -0800 (PST) X-Google-Smtp-Source: APXvYqzxpsP1fOqfUGFYp6nDZ3JROa27lRWUexwCbAc+l1gqbASUlIJGDKGlZGgVkihYZgOb3f7t X-Received: by 2002:a9d:4c82:: with SMTP id m2mr176283otf.199.1579035177685; Tue, 14 Jan 2020 12:52:57 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1579035177; cv=pass; d=google.com; s=arc-20160816; b=u8Bi3jrDxfUaez6nhV0hLoPYluW0bu5dU00nVaL4kQHqgoCENIxSnP2Xnh5Jgj/3mN GzFo1eyumBAMqOTuMc2/I9T1zgmqL/yL/h6tnxQw5lGa5vvGd2fYgONldbnY5EriLkfr e59yWCo/U7iZVgJNlrRuvCWbd1c9+D86fTIVuBd/q7h4x1GwZWNh0Fm6KpKW1a+VmydZ Wxof6JCDDQJotI+2o1HachjTrBuZXIF4vpIKDo562/pmS5sADuuXL9pbSnOXAoSQyBvt nKTVgqYFg9skz0N/FZhfaljnGEQpFcpiro15ycLWflEa+Vr9V8+VjfMt+5v3vrOqawV3 i6KA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender: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=0JohIVae0Es9uN0LEK7AVENXnnI8CR6UWsnpkolV/jQ=; b=ht3cS7TMZEnb36PQ2N6FMBsJx57fY5AKalngtUyJOistXbKEzAqHXg+nsAktpNAFtc YENbp9T4fxkQIgY5pK2hk8KMpbh3NJ+nYosf2VjsCPjUpnGDs0oAWJKQpE+M/lh+ZrNM o6ZLayPJVOdk8hmxbipbfIpkUjaQj4BHPaqj0DIOgIPzscpjnHaU1oC69X4Heqn/OGzQ 8qD3o8YyzjPrNCyl1W8mVuYPkPDcevDc/SHsfcVwftl0lUwQb7LblkZqc3mcMi+NbRPG 28/vZNJ7D3cHE7cyCwF9vfs+UtOw8iD6gFYWMjqzZuK9ZfmXjMxb517afyylAKRlyPLA zJ0w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=ToxlMWXT; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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 vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l14si7412418oii.37.2020.01.14.12.52.31; Tue, 14 Jan 2020 12:52:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=ToxlMWXT; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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 S1728731AbgANUwa (ORCPT + 99 others); Tue, 14 Jan 2020 15:52:30 -0500 Received: from mail-dm6nam12on2092.outbound.protection.outlook.com ([40.107.243.92]:33984 "EHLO NAM12-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728656AbgANUwa (ORCPT ); Tue, 14 Jan 2020 15:52:30 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K+uzdD2SQbBKiuL2lvJ0Gf+EvGx33O5bHEnYK9hR3Ko9KndKA15nsgnEE7D0MSwuM4WZucc2dAVjqjNn5D0Vfo67rCKHWt8g05s1UN2iEtarivHRuxDw/GV41+AHVGj9JSIvMEknczlczkrqxK7FJ3Nt2aX+uuslrATegay9GGpARNAkEJ+8uzVtgYeK3cOw2+KtBO4bRaiT2V20bANpCJYn9o/cJo0M4l5gzLWUDwwFz+OUABz8RGzlrP72La6333SBTi8S9tYs64lVpc58rL4S7kN9NI+pkOIGSWUXH12QDmAFiJA38BqBu234GQkanwia9Y8Jfy0KjN+0O0KcoQ== 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-SenderADCheck; bh=0JohIVae0Es9uN0LEK7AVENXnnI8CR6UWsnpkolV/jQ=; b=fYLMybrDh8XrpcX4Ukd6Jg4LoJN3AunVesMQ4a16ZnIz2ef1DzjvQEdParcCtKyhcJ1spu8OcSNqd68aJw6lGC/Fb2Az/OAdyNPJJc61Lz7MJ/oNc9mXhmTyj0Wbs4D4q7jZ5Cxnbh0lNJi/6nCrLnFjPaqi09bqGeR26rcUCmWzHezhNl4gvBXAgaB/cBixXIN7yk/77c8i4jVbr17X7Umh8N/M4ocVdeOCV7vvuCgxKmiubemiyzExSTwAS2v/2Wxew9rciPywDxQFMak+MPeQb10t1vgjXly0okdEo50/kgNo+jZJMYmZuT62368SU1yI4WujxlDPK+e/Dohskw== 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=0JohIVae0Es9uN0LEK7AVENXnnI8CR6UWsnpkolV/jQ=; b=ToxlMWXT4u+2U2HnA6PTXIqqZXGUZw3QEQ3wzoMTzW5yVUaQItcYpWQ+emKE+84A4qWdnsaWGDQC/MUcIygOjS0F4HXPo3xNgKk4W9nuQu1/Hw6DvH6HQZLzsbCEBKm3BxwydXiP+UbDd+MJZ80g7O8h3f7I6VkTI9GhD5+SLjs= Received: from DM5PR1301MB2108.namprd13.prod.outlook.com (10.174.186.34) by DM5PR1301MB2106.namprd13.prod.outlook.com (10.174.185.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.14; Tue, 14 Jan 2020 20:52:20 +0000 Received: from DM5PR1301MB2108.namprd13.prod.outlook.com ([fe80::2d32:cf4b:1b58:16ce]) by DM5PR1301MB2108.namprd13.prod.outlook.com ([fe80::2d32:cf4b:1b58:16ce%7]) with mapi id 15.20.2644.015; Tue, 14 Jan 2020 20:52:20 +0000 From: Trond Myklebust To: "aglo@umich.edu" CC: "linux-nfs@vger.kernel.org" Subject: Re: interrupted rpcs problem Thread-Topic: interrupted rpcs problem Thread-Index: AQHVx+xAF9geEgvaYEKYoTth6kuH4qfkYv+AgARkqICAAAtUAIAAFlKAgAAEV4CAACzHgIAADPCAgAFdtoCAACQbgA== Date: Tue, 14 Jan 2020 20:52:20 +0000 Message-ID: <1f7833103abdeb9976d5c0aa2f4c1f7c5f06edb4.camel@hammerspace.com> References: <3b89b01911b5149533e45478fdcec941a4f915ba.camel@hammerspace.com> <185a1505f75a36d852df7a9351d6bb776103c506.camel@hammerspace.com> <1538116fa0b35674da7242e9fadf19ddeca5e2c2.camel@hammerspace.com> In-Reply-To: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.40.189.247] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6cca81eb-a05a-45a5-8329-08d79933a623 x-ms-traffictypediagnostic: DM5PR1301MB2106: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 028256169F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(39830400003)(376002)(396003)(136003)(366004)(199004)(189003)(66476007)(3480700007)(5660300002)(6486002)(6512007)(30864003)(6916009)(6506007)(2616005)(53546011)(4326008)(66946007)(8936002)(2906002)(8676002)(26005)(186003)(86362001)(81166006)(478600001)(81156014)(64756008)(91956017)(66446008)(71200400001)(66556008)(316002)(76116006)(7116003)(36756003);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR1301MB2106;H:DM5PR1301MB2108.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YYUMKCiNnr3fNnx+G7JKRLJ5sAGO0VnhJSM6xbHNrLpEP0QYLVtUkCW8JSRC5jls65F3i0wsACxSNCJqg2OTHA99Ux8pCYfWXJ91IFes0a3N1ej61wMbUqxrvAmR1hlTqE27gBbu3TnmPzl1v1A2aWdcXqM0En4mirJmmSRQ+i1ZaMjw59UVJPZfRYzaTJCGvOZfdW9BqZcRPoC7Hck40R7sCrAGhCa44SZD28DzEwg20gM1lh4efymqKNlxvixFslepvAs7mKvRlV2CT+vYgfSQv3VWAwO3sNY8JvNC1b/cNNBHObFLlATwyq9LxFz0VOkgsHBI+guoP9YKPYiJvgqFJCzlxFDgYjM7eBXJVT2EazbIjPCE5wClOMCuoL6HJCpQ+kSrsB5nEd7OA6RJbQLIlU9Z8GzfwClTAdG8NAcvvyveCpFMTAhC624HacvN x-ms-exchange-transport-forked: True 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-Network-Message-Id: 6cca81eb-a05a-45a5-8329-08d79933a623 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2020 20:52:20.4122 (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: 1Vfn2GZTg55Z6ASw/Xt+t/WaIUYDNMWnts5hz+gseUmjY0940llpetG8SJZU3JJ45mlc6ZYp9LNPOuDo8zonJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1301MB2106 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVHVlLCAyMDIwLTAxLTE0IGF0IDEzOjQzIC0wNTAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90 ZToNCj4gT24gTW9uLCBKYW4gMTMsIDIwMjAgYXQgNDo1MSBQTSBUcm9uZCBNeWtsZWJ1c3QgPA0K PiB0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gT24gTW9uLCAyMDIwLTAxLTEz IGF0IDE2OjA1IC0wNTAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+IE9uIE1vbiwg SmFuIDEzLCAyMDIwIGF0IDE6MjQgUE0gVHJvbmQgTXlrbGVidXN0IDwNCj4gPiA+IHRyb25kbXlA aGFtbWVyc3BhY2UuY29tPiB3cm90ZToNCj4gPiA+ID4gT24gTW9uLCAyMDIwLTAxLTEzIGF0IDEz OjA5IC0wNTAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+ID4gPiBPbiBNb24sIEph biAxMywgMjAyMCBhdCAxMTo0OSBBTSBUcm9uZCBNeWtsZWJ1c3QNCj4gPiA+ID4gPiA8dHJvbmRt eUBoYW1tZXJzcGFjZS5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gTW9uLCAyMDIwLTAxLTEz IGF0IDExOjA4IC0wNTAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90ZToNCj4gPiA+ID4gPiA+ID4g T24gRnJpLCBKYW4gMTAsIDIwMjAgYXQgNDowMyBQTSBUcm9uZCBNeWtsZWJ1c3QgPA0KPiA+ID4g PiA+ID4gPiB0cm9uZG15QGhhbW1lcnNwYWNlLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+ID4g T24gRnJpLCAyMDIwLTAxLTEwIGF0IDE0OjI5IC0wNTAwLCBPbGdhIEtvcm5pZXZza2FpYQ0KPiA+ ID4gPiA+ID4gPiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gSGkgZm9sa3MsDQo+ID4gPiA+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IFdlIGFyZSBoYXZpbmcgYW4gaXNzdWUgd2l0 aCBhbiBpbnRlcnJ1cHRlZCBSUENzDQo+ID4gPiA+ID4gPiA+ID4gPiBhZ2Fpbi4NCj4gPiA+ID4g PiA+ID4gPiA+IEhlcmUncw0KPiA+ID4gPiA+ID4gPiA+ID4gd2hhdCBJDQo+ID4gPiA+ID4gPiA+ ID4gPiBzZWUgd2hlbiB4ZnN0ZXN0cyB3ZXJlIGN0cmwtYy1lZC4NCj4gPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+ID4gZnJhbWUgMzMyIFNFVEFUVFIgY2FsbCBzbG90PTAgc2VxaWQ9 MHgwMDAwMTNjYSAoSSdtDQo+ID4gPiA+ID4gPiA+ID4gPiBhc3N1bWluZw0KPiA+ID4gPiA+ID4g PiA+ID4gdGhpcw0KPiA+ID4gPiA+ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+ID4gPiA+IGludGVy cnVwdGVkIGFuZCByZWxlYXNlZCkNCj4gPiA+ID4gPiA+ID4gPiA+IGZyYW1lIDMzMyBDTE9TRSBj YWxsIHNsb3Q9MCBzZXFpZD0weDAwMDAxM2NiICAob25seQ0KPiA+ID4gPiA+ID4gPiA+ID4gd2F5 DQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHNsb3QNCj4gPiA+ID4g PiA+ID4gPiA+IGNvdWxkDQo+ID4gPiA+ID4gPiA+ID4gPiBiZSBmcmVlIGJlZm9yZSB0aGUgcmVw bHkgaWYgaXQgd2FzIGludGVycnVwdGVkLA0KPiA+ID4gPiA+ID4gPiA+ID4gcmlnaHQ/DQo+ID4g PiA+ID4gPiA+ID4gPiBPdGhlcndpc2UNCj4gPiA+ID4gPiA+ID4gPiA+IHdlDQo+ID4gPiA+ID4g PiA+ID4gPiBzaG91bGQgbmV2ZXIgaGF2ZSB0aGUgc2xvdCB1c2VkIGJ5IG1vcmUgdGhhbiBvbmUN Cj4gPiA+ID4gPiA+ID4gPiA+IG91dHN0YW5kaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBSUEMpDQo+ ID4gPiA+ID4gPiA+ID4gPiBmcmFtZSAzMzQgcmVwbHkgdG8gMzMzIHdpdGggU0VRX01JU19PUkRF UkVEIChJJ20NCj4gPiA+ID4gPiA+ID4gPiA+IGFzc3VtaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBz ZXJ2ZXINCj4gPiA+ID4gPiA+ID4gPiA+IHJlY2VpdmVkIGZyYW1lIDMzMyBiZWZvcmUgMzMyKQ0K PiA+ID4gPiA+ID4gPiA+ID4gZnJhbWUgMzM2IENMT1NFIGNhbGwgc2xvdD0wIHNlcWlkPTB4MDAw MDEzY2EgKD8/PyB3aHkNCj4gPiA+ID4gPiA+ID4gPiA+IGRpZA0KPiA+ID4gPiA+ID4gPiA+ID4g d2UNCj4gPiA+ID4gPiA+ID4gPiA+IGRlY3JlbWVudGVkIGl0LiBJIG1lYW4gSSBrbm93IHdoeSBp dCdzIGluIHRoZSBjdXJyZW50DQo+ID4gPiA+ID4gPiA+ID4gPiBjb2RlIDotDQo+ID4gPiA+ID4g PiA+ID4gPiAvICkNCj4gPiA+ID4gPiA+ID4gPiA+IGZyYW1lIDMzNyByZXBseSB0byAzMzYgU0VR VUVOQ0Ugd2l0aCBFUlJfREVMQVkNCj4gPiA+ID4gPiA+ID4gPiA+IGZyYW1lIDMzOSByZXBseSB0 byAzMzIgU0VUQVRUUiB3aGljaCBub2JvZHkgaXMNCj4gPiA+ID4gPiA+ID4gPiA+IHdhaXRpbmcN Cj4gPiA+ID4gPiA+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gZnJhbWUgNTQzIENMT1NF IGNhbGwgc2xvdD0wIHNlcWlkPTB4MDAwMDEzY2EgKHJldHJ5DQo+ID4gPiA+ID4gPiA+ID4gPiBh ZnRlcg0KPiA+ID4gPiA+ID4gPiA+ID4gd2FpdGluZw0KPiA+ID4gPiA+ID4gPiA+ID4gZm9yDQo+ ID4gPiA+ID4gPiA+ID4gPiBlcnJfZGVsYXkpDQo+ID4gPiA+ID4gPiA+ID4gPiBmcmFtZSA1NDQg cmVwbHkgdG8gNTQzIHdpdGggU0VUQVRUUiAob3V0IG9mIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g Y2FjaGUpLg0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBXaGF0IHRoaXMg bGVhZHMgdG8gaXM6IGZpbGUgaXMgbmV2ZXIgY2xvc2VkIG9uIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gc2VydmVyLg0KPiA+ID4gPiA+ID4gPiA+ID4gQ2FuJ3QNCj4gPiA+ID4gPiA+ID4gPiA+IHJl bW92ZSBpdC4gVW5tb3VudCBmYWlscyB3aXRoIENMSURfQlVTWS4NCj4gPiA+ID4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiA+ID4gSSBiZWxpZXZlIHRoYXQncyB0aGUgcmVzdWx0IG9mIGNvbW1p dA0KPiA+ID4gPiA+ID4gPiA+ID4gMzQ1M2Q1NzA4YjMzZWZlNzZmNDBlY2ExYzBlZDYwOTIzMDk0 Yjk3MS4NCj4gPiA+ID4gPiA+ID4gPiA+IFdlIHVzZWQgdG8gaGF2ZSBjb2RlIHRoYXQgYnVtcGVk IHRoZSBzZXF1ZW5jZSB1cCB3aGVuDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ ID4gPiA+IHNsb3QNCj4gPiA+ID4gPiA+ID4gPiA+IHdhcw0KPiA+ID4gPiA+ID4gPiA+ID4gaW50 ZXJydXB0ZWQgYnV0IGFmdGVyIHRoZSBjb21taXQgIk5GU3Y0LjE6IEF2b2lkDQo+ID4gPiA+ID4g PiA+ID4gPiBmYWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gcmV0cmllcw0KPiA+ID4gPiA+ID4gPiA+ ID4gd2hlbg0KPiA+ID4gPiA+ID4gPiA+ID4gUlBDIGNhbGxzIGFyZSBpbnRlcnJ1cHRlZCIuDQo+ ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gPiA+IENvbW1pdCBoYXMgdGhpcyAiVGhl IG9idmlvdXMgZml4IGlzIHRvIGJ1bXAgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBzZXF1ZW5jZQ0K PiA+ID4gPiA+ID4gPiA+ID4gbnVtYmVyDQo+ID4gPiA+ID4gPiA+ID4gPiBwcmUtZW1wdGl2ZWx5 IGlmIGFuDQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgUlBDIGNhbGwgaXMgaW50ZXJydXB0ZWQsIGJ1 dCBpbiBvcmRlciB0byBkZWFsDQo+ID4gPiA+ID4gPiA+ID4gPiB3aXRoDQo+ID4gPiA+ID4gPiA+ ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IGNvcm5lcg0KPiA+ID4gPiA+ID4gPiA+ID4gY2Fz ZXMNCj4gPiA+ID4gPiA+ID4gPiA+ICAgICB3aGVyZSB0aGUgaW50ZXJydXB0ZWQgY2FsbCBpcyBu b3QgYWN0dWFsbHkNCj4gPiA+ID4gPiA+ID4gPiA+IHJlY2VpdmVkDQo+ID4gPiA+ID4gPiA+ID4g PiBhbmQNCj4gPiA+ID4gPiA+ID4gPiA+IHByb2Nlc3NlZA0KPiA+ID4gPiA+ID4gPiA+ID4gYnkN Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICB0aGUgc2VydmVyLCB3ZSBuZWVkIHRvIGludGVycHJldCB0 aGUgZXJyb3INCj4gPiA+ID4gPiA+ID4gPiA+IE5GUzRFUlJfU0VRX01JU09SREVSRUQNCj4gPiA+ ID4gPiA+ID4gPiA+ICAgICBhcyBhIHNpZ24gdGhhdCB3ZSBuZWVkIHRvIGVpdGhlciB3YWl0IG9y IGxvY2F0ZSBhDQo+ID4gPiA+ID4gPiA+ID4gPiBjb3JyZWN0DQo+ID4gPiA+ID4gPiA+ID4gPiBz ZXF1ZW5jZQ0KPiA+ID4gPiA+ID4gPiA+ID4gICAgIG51bWJlciB0aGF0IGxpZXMgYmV0d2VlbiB0 aGUgdmFsdWUgd2Ugc2VudCwgYW5kDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ ID4gPiA+IGxhc3QNCj4gPiA+ID4gPiA+ID4gPiA+IHZhbHVlDQo+ID4gPiA+ID4gPiA+ID4gPiB0 aGF0DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgd2FzIGFja2VkIGJ5IGEgU0VRVUVOQ0UgY2FsbCBv biB0aGF0IHNsb3QuIg0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gPiBJZiB3 ZSBjYW4ndCBubyBsb25nZXIganVzdCBidW1wIHRoZSBzZXF1ZW5jZSB1cCwgSQ0KPiA+ID4gPiA+ ID4gPiA+ID4gZG9uJ3QNCj4gPiA+ID4gPiA+ID4gPiA+IHRoaW5rDQo+ID4gPiA+ID4gPiA+ID4g PiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IGNvcnJlY3QgYWN0aW9uIGlzIHRvIGF1dG9tYXRpY2Fs bHkgYnVtcCBpdCBkb3duIChhcw0KPiA+ID4gPiA+ID4gPiA+ID4gcGVyDQo+ID4gPiA+ID4gPiA+ ID4gPiBleGFtcGxlDQo+ID4gPiA+ID4gPiA+ID4gPiBoZXJlKT8NCj4gPiA+ID4gPiA+ID4gPiA+ IFRoZSBjb21taXQgZG9lc24ndCBkZXNjcmliZSB0aGUgY29ybmVyIGNhc2Ugd2hlcmUgaXQNCj4g PiA+ID4gPiA+ID4gPiA+IHdhcw0KPiA+ID4gPiA+ID4gPiA+ID4gbmVjZXNzYXJ5IHRvDQo+ID4g PiA+ID4gPiA+ID4gPiBidW1wIHRoZSBzZXF1ZW5jZSB1cC4gSSB3b25kZXIgaWYgd2UgY2FuIHJl dHVybiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IGtub3dsZWRnZQ0KPiA+ID4gPiA+ID4gPiA+ID4g b2YNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gaW50ZXJydXB0ZWQg c2xvdCBhbmQgbWFrZSBhIGRlY2lzaW9uIGJhc2VkIG9uIHRoYXQgYXMNCj4gPiA+ID4gPiA+ID4g PiA+IHdlbGwgYXMNCj4gPiA+ID4gPiA+ID4gPiA+IHdoYXRldmVyDQo+ID4gPiA+ID4gPiA+ID4g PiB0aGUgb3RoZXIgY29ybmVyIGNhc2UgaXMuDQo+ID4gPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4g PiA+ID4gPiA+IEkgZ3Vlc3Mgd2hhdCBJJ20gZ2V0dGluZyBpcywgY2FuIHNvbWVib2R5IChUcm9u ZCkNCj4gPiA+ID4gPiA+ID4gPiA+IHByb3ZpZGUNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ ID4gPiA+ID4gPiA+ID4gaW5mbw0KPiA+ID4gPiA+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gPiA+ ID4gPiB0aGUgY29ybmVyIGNhc2UgZm9yIHRoaXMgdGhhdCBwYXRjaCB3YXMgY3JlYXRlZC4gSQ0K PiA+ID4gPiA+ID4gPiA+ID4gY2FuDQo+ID4gPiA+ID4gPiA+ID4gPiBzZWUgaWYNCj4gPiA+ID4g PiA+ID4gPiA+IEkNCj4gPiA+ID4gPiA+ID4gPiA+IGNhbg0KPiA+ID4gPiA+ID4gPiA+ID4gZml4 IHRoZSAiY29tbW9uIiBjYXNlIHdoaWNoIGlzIG5vdyBicm9rZW4gYW5kIG5vdA0KPiA+ID4gPiA+ ID4gPiA+ID4gYnJlYWsNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4g Y29ybmVyDQo+ID4gPiA+ID4gPiA+ID4gPiBjYXNlLi4uLg0KPiA+ID4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgbm8gcHVyZSBjbGllbnQg c2lkZSBzb2x1dGlvbiBmb3IgdGhpcyBwcm9ibGVtLg0KPiA+ID4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gPiA+IFRoZSBjaGFuZ2Ugd2FzIG1hZGUgYmVjYXVzZSBpZiB5b3UgaGF2ZSBtdWx0aXBs ZQ0KPiA+ID4gPiA+ID4gPiA+IGludGVycnVwdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiBvZg0KPiA+ ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+IFJQQyBjYWxsLCB0aGVuIHRoZSBjbGll bnQgaGFzIHRvIHNvbWVob3cgZmlndXJlIG91dA0KPiA+ID4gPiA+ID4gPiA+IHdoYXQNCj4gPiA+ ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBjb3JyZWN0DQo+ID4gPiA+ID4gPiA+ID4g c2xvdCBudW1iZXIgaXMuIElmIGl0IHN0YXJ0cyBsb3csIGFuZCB0aGVuIGdvZXMgaGlnaCwNCj4g PiA+ID4gPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiBz ZXJ2ZXIgaXMNCj4gPiA+ID4gPiA+ID4gPiBub3QgY2FjaGluZyB0aGUgYXJndW1lbnRzIGZvciB0 aGUgUlBDIGNhbGwgdGhhdCBpcyBpbg0KPiA+ID4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g PiA+IHNlc3Npb24NCj4gPiA+ID4gPiA+ID4gPiBjYWNoZSwgdGhlbiB3ZSB3aWxsIF9hbHdheXNf IGhpdCB0aGlzIGJ1ZyBiZWNhdXNlIHdlDQo+ID4gPiA+ID4gPiA+ID4gd2lsbA0KPiA+ID4gPiA+ ID4gPiA+IGFsd2F5cw0KPiA+ID4gPiA+ID4gPiA+IGhpdA0KPiA+ID4gPiA+ID4gPiA+IHRoZSBy ZXBsYXkgb2YgdGhlIGxhc3QgZW50cnkuDQo+ID4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ ID4gQXQgbGVhc3QgaWYgd2Ugc3RhcnQgaGlnaCwgYW5kIGl0ZXJhdGUgYnkgbG93LCB0aGVuIHdl DQo+ID4gPiA+ID4gPiA+ID4gcmVkdWNlDQo+ID4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4g PiA+ID4gcHJvYmxlbSB0byBiZWluZyBhIHJhY2Ugd2l0aCB0aGUgcHJvY2Vzc2luZyBvZiB0aGUN Cj4gPiA+ID4gPiA+ID4gPiBpbnRlcnJ1cHRlZA0KPiA+ID4gPiA+ID4gPiA+IHJlcXVlc3QNCj4g PiA+ID4gPiA+ID4gPiBhcyBpdCBpcyBpbiB0aGlzIGNhc2UuDQo+ID4gPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiA+ID4gSG93ZXZlciwgYXMgSSBzYWlkLCB0aGUgcmVhbCBzb2x1dGlvbiBoZXJl IGhhcyB0bw0KPiA+ID4gPiA+ID4gPiA+IGludm9sdmUNCj4gPiA+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gPiBzZXJ2ZXIuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBPayBJ IHNlZSB5b3VyIHBvaW50IHRoYXQgaWYgdGhlIHNlcnZlciBjYWNoZWQgdGhlDQo+ID4gPiA+ID4g PiA+IGFyZ3VtZW50cywNCj4gPiA+ID4gPiA+ID4gdGhlbg0KPiA+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gc2VydmVyIHdvdWxkIHRlbGwgdGhhdCAybmQgcnBjIHVzaW5nIHRoZSBzYW1l IHNsb3Qrc2VxaWQNCj4gPiA+ID4gPiA+ID4gaGFzDQo+ID4gPiA+ID4gPiA+IGRpZmZlcmVudA0K PiA+ID4gPiA+ID4gPiBhcmdzIGFuZCB3b3VsZCBub3QgdXNlIHRoZSByZXBsYXkgY2FjaGUuDQo+ ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiBIb3dldmVyLCBJIHdvbmRlciBpZiB0aGUgY2xp ZW50IGNhbiBkbyBiZXR0ZXIuIENhbid0IHdlDQo+ID4gPiA+ID4gPiA+IGJlDQo+ID4gPiA+ID4g PiA+IG1vcmUNCj4gPiA+ID4gPiA+ID4gYXdhcmUNCj4gPiA+ID4gPiA+ID4gb2Ygd2hlbiB3ZSBh cmUgaW50ZXJydXB0aW5nIHRoZSBycGM/IEZvciBpbnN0YW5jZSwgaWYgd2UNCj4gPiA+ID4gPiA+ ID4gYXJlDQo+ID4gPiA+ID4gPiA+IGludGVycnVwdGVkIGFmdGVyIHdlIHN0YXJ0ZWQgdG8gd2Fp dCBvbiB0aGUgUlBDLCBkb2Vzbid0DQo+ID4gPiA+ID4gPiA+IGl0DQo+ID4gPiA+ID4gPiA+IG1l YW4NCj4gPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+IHJwYyBpcyBzZW50IG9uIHRoZSBu ZXR3b3JrIGFuZCBzaW5jZSBuZXR3b3JrIGlzIHJlbGlhYmxlDQo+ID4gPiA+ID4gPiA+IHRoZW4N Cj4gPiA+ID4gPiA+ID4gc2VydmVyDQo+ID4gPiA+ID4gPiA+IG11c3QgaGF2ZSBjb25zdW1lZCB0 aGUgc2VxaWQgZm9yIHRoYXQgc2xvdCAoaW4gdGhpcyBjYXNlDQo+ID4gPiA+ID4gPiA+IGluY3Jl bWVudA0KPiA+ID4gPiA+ID4gPiBzZXFpZCk/IFRoYXQncyB0aGUgY2FzZSB0aGF0J3MgZmFpbGlu ZyBub3cuDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAiUmVsaWFi bGUgdHJhbnNwb3J0IiBkb2VzIG5vdCBtZWFuIHRoYXQgYSBjbGllbnQga25vd3Mgd2hhdA0KPiA+ ID4gPiA+ID4gZ290DQo+ID4gPiA+ID4gPiByZWNlaXZlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBz ZXJ2ZXIgYW5kIHdoYXQgZGlkbid0LiBBbGwNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4g Y2xpZW50DQo+ID4gPiA+ID4gPiBrbm93cyBpcyB0aGF0IGlmIHRoZSBjb25uZWN0aW9uIGlzIHN0 aWxsIHVwLCB0aGVuIHRoZSBUQ1ANCj4gPiA+ID4gPiA+IGxheWVyDQo+ID4gPiA+ID4gPiB3aWxs DQo+ID4gPiA+ID4gPiBrZWVwIHJldHJ5aW5nIHRyYW5zbWlzc2lvbiBvZiB0aGUgcmVxdWVzdC4g VGhlcmUgYXJlIHBsZW50eQ0KPiA+ID4gPiA+ID4gb2YNCj4gPiA+ID4gPiA+IGVycm9yDQo+ID4g PiA+ID4gPiBzY2VuYXJpb3Mgd2hlcmUgdGhlIGNsaWVudCBnZXRzIG5vIGluZm9ybWF0aW9uIGJh Y2sgYXMgdG8NCj4gPiA+ID4gPiA+IHdoZXRoZXINCj4gPiA+ID4gPiA+IG9yDQo+ID4gPiA+ID4g PiBub3QgdGhlIGRhdGEgd2FzIHJlY2VpdmVkIGJ5IHRoZSBzZXJ2ZXIgKGUuZy4gZHVlIHRvIGxv c3QNCj4gPiA+ID4gPiA+IEFDS3MpLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBGdXJ0aGVy bW9yZSwgaWYgYSBSUEMgY2FsbCBpcyBpbnRlcnJ1cHRlZCBvbiB0aGUgY2xpZW50LA0KPiA+ID4g PiA+ID4gZWl0aGVyDQo+ID4gPiA+ID4gPiBkdWUNCj4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4g PiBhIHRpbWVvdXQgb3IgYSBzaWduYWwsDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gV2hhdCB0aW1l b3V0IGFyZSB5b3UgcmVmZXJyaW5nIHRvIGhlcmUgc2luY2UgNC4xIHJjcCBjYW4ndA0KPiA+ID4g PiA+IHRpbWVvdXQuIEkNCj4gPiA+ID4gPiB0aGluayBpdCBvbmx5IGxlYXZlcyBhIHNpZ25hbC4N Cj4gPiA+ID4gDQo+ID4gPiA+IElmIHlvdSB1c2UgJ3NvZnQnIG9yICdzb2Z0ZXJyJyBtb3VudCBv cHRpb25zLCB0aGVuIE5GU3Y0LjEgd2lsbA0KPiA+ID4gPiB0aW1lDQo+ID4gPiA+IG91dCB3aGVu IHRoZSBzZXJ2ZXIgaXMgYmVpbmcgdW5yZXNwb25zaXZlLiBUaGF0IGJlaGF2aW91ciBpcw0KPiA+ ID4gPiBkaWZmZXJlbnQNCj4gPiA+ID4gdG8gdGhlIGJlaGF2aW91ciB1bmRlciBhIHNpZ25hbCwg YnV0IGhhcyB0aGUgc2FtZSBlZmZlY3Qgb2YNCj4gPiA+ID4gaW50ZXJydXB0aW5nIHRoZSBSUEMg Y2FsbCB3aXRob3V0IHVzIGJlaW5nIGFibGUgdG8ga25vdyBpZiB0aGUNCj4gPiA+ID4gc2VydmVy DQo+ID4gPiA+IHJlY2VpdmVkIHRoZSBkYXRhLg0KPiA+ID4gPiANCj4gPiA+ID4gPiA+IHRoZW4g aXQgYWxtb3N0IGFsd2F5cyBlbmRzIHVwIGJyZWFraW5nIHRoZQ0KPiA+ID4gPiA+ID4gY29ubmVj dGlvbiBpbiBvcmRlciB0byBhdm9pZCBjb3JydXB0aW9uIG9mIHRoZSBkYXRhIHN0cmVhbQ0KPiA+ ID4gPiA+ID4gKGJ5DQo+ID4gPiA+ID4gPiBpbnRlcnJ1cHRpbmcgdGhlIHRyYW5zbWlzc2lvbiBi ZWZvcmUgdGhlIGVudGlyZSBSUEMgY2FsbA0KPiA+ID4gPiA+ID4gaGFzDQo+ID4gPiA+ID4gPiBi ZWVuDQo+ID4gPiA+ID4gPiBzZW50KS4gWW91IGdlbmVyYWxseSBoYXZlIHRvIGJlIGx1Y2t5IHRv IHNlZSB0aGUNCj4gPiA+ID4gPiA+IHRpbWVvdXQvc2lnbmFsDQo+ID4gPiA+ID4gPiBvY2N1cg0K PiA+ID4gPiA+ID4gb25seSB3aGVuIGFsbCB0aGUgUlBDIGNhbGxzIGJlaW5nIGNhbmNlbGxlZCBo YXZlIGV4YWN0bHkNCj4gPiA+ID4gPiA+IGZpdA0KPiA+ID4gPiA+ID4gaW50bw0KPiA+ID4gPiA+ ID4gdGhlDQo+ID4gPiA+ID4gPiBzb2NrZXQgYnVmZmVyLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IFdvdWxkbid0IGEgcmV0cmFuc21pc3Npb24gKGR1ZSB0byBhIGNvbm5lY3Rpb24gcmVzZXQgZm9y DQo+ID4gPiA+ID4gd2hhdGV2ZXINCj4gPiA+ID4gPiByZWFzb24pIGJlIGRpZmZlcmVudCBhbmQg ZG9lc24ndCBpbnZvbHZlIHJlcHJvY2Vzc2luZyBvZiB0aGUNCj4gPiA+ID4gPiBzbG90Lg0KPiA+ ID4gPiANCj4gPiA+ID4gSSdtIG5vdCB0YWxraW5nIGFib3V0IHJldHJhbnNtaXNzaW9ucyBoZXJl LiBJJ20gdGFsa2luZyBvbmx5DQo+ID4gPiA+IGFib3V0DQo+ID4gPiA+IE5GU3Y0LnggUlBDIGNh bGxzIHRoYXQgc3VmZmVyIGEgZmF0YWwgaW50ZXJydXB0aW9uIChpLmUuIG5vDQo+ID4gPiA+IHJl dHJhbnNtaXNzaW9uKS4NCj4gPiA+ID4gDQo+ID4gPiA+ID4gPiBGaW5hbGx5LCBqdXN0IGJlY2F1 c2UgdGhlIHNlcnZlcidzIFRDUCBsYXllciBBQ0tlZCByZWNlaXB0DQo+ID4gPiA+ID4gPiBvZg0K PiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiBSUEMNCj4gPiA+ID4gPiA+IGNhbGwgZGF0YSwg dGhhdCBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgd2lsbCBwcm9jZXNzIHRoYXQNCj4gPiA+ID4gPiA+ IGNhbGwuDQo+ID4gPiA+ID4gPiBUaGUNCj4gPiA+ID4gPiA+IGNvbm5lY3Rpb24gY291bGQgYnJl YWsgYmVmb3JlIHRoZSBjYWxsIGlzIHJlYWQgb3V0IG9mIHRoZQ0KPiA+ID4gPiA+ID4gcmVjZWl2 aW5nDQo+ID4gPiA+ID4gPiBzb2NrZXQsIG9yIHRoZSBzZXJ2ZXIgbWF5IGxhdGVyIGRlY2lkZSB0 byBkcm9wIGl0IG9uIHRoZQ0KPiA+ID4gPiA+ID4gZmxvb3INCj4gPiA+ID4gPiA+IGFuZA0KPiA+ ID4gPiA+ID4gYnJlYWsgdGhlIGNvbm5lY3Rpb24uDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IElPVzogdGhlIFJQQyBwcm90b2NvbCBoZXJlIGlzIG5vdCB0aGF0ICJyZWxpYWJsZSB0cmFuc3Bv cnQNCj4gPiA+ID4gPiA+IGltcGxpZXMNCj4gPiA+ID4gPiA+IHByb2Nlc3NpbmcgaXMgZ3VhcmFu dGVlZCIuIEl0IGlzIHJhdGhlciB0aGF0ICJjb25uZWN0aW9uIGlzDQo+ID4gPiA+ID4gPiBzdGls bA0KPiA+ID4gPiA+ID4gdXANCj4gPiA+ID4gPiA+IGltcGxpZXMgcHJvY2Vzc2luZyBtYXkgZXZl bnR1YWxseSBvY2N1ciIuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gImV2ZW50dWFsbHkgb2NjdXIi IG1lYW5zIHRoYXQgaXRzIHByb2Nlc3Mgb2YgdGhlIHJwYyBpcw0KPiA+ID4gPiA+IGd1YXJhbnRl ZWQNCj4gPiA+ID4gPiAiaW4NCj4gPiA+ID4gPiB0aW1lIi4gQWdhaW4gdW5sZXNzIHRoZSBjbGll bnQgaXMgYnJva2VuLCB3ZSBjYW4ndCBoYXZlIG1vcmUNCj4gPiA+ID4gPiB0aGFuDQo+ID4gPiA+ ID4gYW4NCj4gPiA+ID4gPiBpbnRlcnJ1cHRlZCBycGMgKHRoYXQgaGFzIG5vdGhpbmcgd2FpdGlu ZykgYW5kIHRoZSBuZXh0IHJwYw0KPiA+ID4gPiA+IChib3RoDQo+ID4gPiA+ID4gb2YNCj4gPiA+ ID4gPiB3aGljaCB3aWxsIGJlIHJlLXRyYW5zbWl0dGVkIGlmIGNvbm5lY3Rpb24gaXMgZHJvcHBl ZCkgZ29pbmcNCj4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+IHNlcnZlci4N Cj4gPiA+ID4gPiANCj4gPiA+ID4gPiBDYW4gd2UgZGlzdGluZ3Vpc2ggYmV0d2VlbiBpbnRlcnJ1 cHRlZCBkdWUgdG8gcmUtdHJhbnNtaXNzaW9uIA0KPiA+ID4gPiA+IGFuZA0KPiA+ID4gPiA+IGlu dGVycnVwdGVkIGR1ZSB0byBjdHJsLWMgb2YgdGhlIHRocmVhZD8gSWYgd2UgY2FuJ3QsIHRoZW4N Cj4gPiA+ID4gPiBJJ2xsDQo+ID4gPiA+ID4gc3RvcA0KPiA+ID4gPiA+IGFyZ3VpbmcgdGhhdCBj bGllbnQgY2FuIGRvIGJldHRlci4NCj4gPiA+ID4gDQo+ID4gPiA+IFRoZXJlIGlzIG5vICJpbnRl cnJ1cHRlZCBkdWUgdG8gcmUtdHJhbnNtaXNzaW9uIiBjYXNlLiBXZSBvbmx5DQo+ID4gPiA+IHJl dHJhbnNtaXQgTkZTdjQgcmVxdWVzdHMgaWYgdGhlIFRDUCBjb25uZWN0aW9uIGJyZWFrcy4NCj4g PiA+ID4gDQo+ID4gPiA+IEFzIGZhciBhcyBJJ20gY29uY2VybmVkLCB0aGlzIGRpc2N1c3Npb24g aXMgb25seSBhYm91dA0KPiA+ID4gPiBpbnRlcnJ1cHRpb25zDQo+ID4gPiA+IHRoYXQgY2F1c2Ug dGhlIFJQQyBjYWxsIHRvIGJlIGFiYW5kb25lZCAoaS5lLiBmYXRhbCB0aW1lb3V0cw0KPiA+ID4g PiBhbmQNCj4gPiA+ID4gc2lnbmFscykuDQo+ID4gPiA+IA0KPiA+ID4gPiA+IEJ1dCByaWdodCBu b3cgd2UgYXJlIGxlZnQgaW4gYSBiYWQgc3RhdGUuIENsaWVudCBsZWF2ZXMNCj4gPiA+ID4gPiBv cGVuZWQNCj4gPiA+ID4gPiBzdGF0ZQ0KPiA+ID4gPiA+IG9uIHRoZSBzZXJ2ZXIgYW5kIHdpbGwg bm90IGFsbG93IGZvciBmaWxlcyB0byBiZSBkZWxldGVkLiBJDQo+ID4gPiA+ID4gdGhpbmsNCj4g PiA+ID4gPiBpbg0KPiA+ID4gPiA+IGNhc2UgdGhlICJuZXh0IHJwYyIgaXMgdGhlIHdyaXRlIHRo YXQgd2lsbCBuZXZlciBiZSBjb21wbGV0ZWQNCj4gPiA+ID4gPiBpdA0KPiA+ID4gPiA+IHdvdWxk DQo+ID4gPiA+ID4gbGVhdmUgdGhlIG1hY2hpbmUgaW4gYSBodW5nIHN0YXRlLiBJIGp1c3QgZG9u J3Qgc2VlIGhvdyBjYW4NCj4gPiA+ID4gPiB5b3UNCj4gPiA+ID4gPiBqdXN0aWZ5IHRoYXQgaGF2 aW5nIHRoZSBjdXJyZW50IGNvZGUgaXMgYW55IGJldHRlciB0aGFuDQo+ID4gPiA+ID4gaGF2aW5n DQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gc29sdXRpb24gdGhhdCB3YXMgdGhlcmUgYmVmb3Jl Lg0KPiA+ID4gPiANCj4gPiA+ID4gVGhhdCdzIGEgZ2VuZXJhbCBwcm9ibGVtIHdpdGggYWxsb3dp bmcgaW50ZXJydXB0aW9ucyB0aGF0IGlzDQo+ID4gPiA+IGxhcmdlbHkNCj4gPiA+ID4gb3J0aG9n b25hbCB0byB0aGUgcXVlc3Rpb24gb2Ygd2hpY2ggc3RyYXRlZ3kgd2UgY2hvb3NlIHdoZW4NCj4g PiA+ID4gcmVzeW5jaHJvbmlzaW5nIHRoZSBzbG90IG51bWJlcnMgYWZ0ZXIgYW4gaW50ZXJydXB0 aW9uIGhhcw0KPiA+ID4gPiBvY2N1cnJlZC4NCj4gPiA+ID4gDQo+ID4gPiANCj4gPiA+IEknbSBy ZS1yZWFkaW5nIHRoZSBzcGVjIGFuZCBpbiBzZWN0aW9uIDIuMTAuNi4yIHdlIGhhdmUgIkENCj4g PiA+IHJlcXVlc3Rlcg0KPiA+ID4gTVVTVCB3YWl0IGZvciBhIHJlcGx5IHRvIGEgcmVxdWVzdCBi ZWZvcmUgdXNpbmcgdGhlIHNsb3QgZm9yDQo+ID4gPiBhbm90aGVyDQo+ID4gPiByZXF1ZXN0Ii4g QXJlIHdlIGV2ZW4gbGVnYWxseSB1c2luZyB0aGUgc2xvdCB3aGVuIHdlIGhhdmUgYW4NCj4gPiA+ IGludGVycnVwdGVkIHNsb3Q/DQo+ID4gPiANCj4gPiANCj4gPiBZb3UgY2FuIGNlcnRhaW5seSBh cmd1ZSB0aGF0LiBIb3dldmVyIHRoZSBmYWN0IHRoYXQgdGhlIHNwZWMgZmFpbHMNCj4gPiB0bw0K PiA+IGFkZHJlc3MgdGhlIGlzc3VlIGRvZXNuJ3QgaW1wbHkgbGFjayBvZiBuZWVkLiBJIGhhdmUg d29ya2xvYWRzIG9uDQo+ID4gbXkNCj4gPiBvd24gc3lzdGVtcyB0aGF0IHdvdWxkIGNhdXNlIG1h am9yIGRpc3J1cHRpb24gaWYgSSBkaWQgbm90IGFsbG93DQo+ID4gdGhlbQ0KPiA+IHRvIHRpbWUg b3V0IHdoZW4gdGhlIHNlcnZlciBpcyB1bmF2YWlsYWJsZSAoZS5nLiB3aXRoIG1lbW9yeQ0KPiA+ IGZpbGxpbmcgdXANCj4gPiB3aXRoIGRpcnR5IHBhZ2VzIHRoYXQgY2FuJ3QgYmUgY2xlYW5lZCku DQo+ID4gDQo+ID4gSU9XOiBJJ20gcXVpdGUgaGFwcHkgdG8gbWFrZSBhIGJlc3QgZWZmb3J0IGF0 dGVtcHQgdG8gbWVldCB0aGF0DQo+ID4gcmVxdWlyZW1lbnQsIGJ5IG1ha2luZyAnaGFyZCcgbW91 bnRzIHRoZSBkZWZhdWx0LCBhbmQgYnkgbWFraW5nDQo+ID4gc2lnbmFsbGluZyBiZSBhIGZhdGFs IG9wZXJhdGlvbi4gSG93ZXZlciBJJ20gdW53aWxsaW5nIHRvIG1ha2UgaXQNCj4gPiBpbXBvc3Np YmxlIHRvIGZpeCB1cCBteSBzeXN0ZW0gd2hlbiB0aGUgc2VydmVyIGlzIHVucmVzcG9uc2l2ZSBq dXN0DQo+ID4gYmVjYXVzZSB0aGUgcHJvdG9jb2wgaXMgbGF6eSBhYm91dCBwcm92aWRpbmcgZm9y IHRoYXQgYWJpbGl0eS4NCj4gDQo+IEknbSBqdXN0IHRyeWluZyB0byB0aGluayBvZiBvcHRpb25z Lg0KPiANCj4gSGVyZSdzIHdoYXQncyBib3RoZXJpbmcgbWUuIFllcyBteSBzZXJ2ZXIgbGlzdCBp cyBsaW1pdGVkIGJ1dCBuZWl0aGVyDQo+IExpbnV4IG5vdCBOZXRhcHAgc2VydmVycyBpbXBsZW1l bnRzIGFyZ3VtZW50IGNhY2hpbmcgZm9yIHJlcGxheSBjYWNoZQ0KPiBkdWUgdG8gcGVyZm9ybWFu Y2UgaGl0LiBZZXMgcGVyaGFwcyB0aGV5IHNob3VsZCBidXQgdGhlIHByb2JsZW0gaXMNCj4gdGhl eSBjdXJyZW50bHkgZG9uJ3QgYW5kIGN1c3RvbWVyIHByb2JhYmx5IGRlc2VydmUgdGhlIGJlc3Qg c29sdXRpb24NCj4gZ2l2ZW4gZXhpc3RpbmcgY29uc3RyYWludHMuIERvIHdlIGhhdmUgc3VjaCBh IHNvbHV0aW9uPyBDYW4geW91IGFyZ3VlDQo+IHRoYXQgdGhlIG51bWJlciBvZiBwcm9ibGVtcyBz b2x2ZWQgYnkgdGhlIGN1cnJlbnQgc29sdXRpb24gaXMgaGlnaGVyDQo+IHRoYW4gYnkgdGhlIG90 aGVyIHNvbHV0aW9uLiBXaXRoIHRoZSBjdXJyZW50IHNvbHV0aW9uLCB3ZSBoYXZlDQo+IChzaWxl bnQpIGRhdGEgY29ycnVwdGlvbiBhbmQgcmVzb3VyY2UgbGVha2FnZSBvbiB0aGUgc2VydmVyLiBJ IHRoaW5rDQo+IHRoYXQncyBhIHByZXR0eSBiaWcgcHJvYmxlbS4gV2hhdCdzIHdvcnNlIHNpbGVu dCBkYXRhIGNvcnJ1cHRpb24gb3IgYQ0KPiBodW5nIGNsaWVudCBiZWNhdXNlIGl0IGtlZXBzIHNl bmRpbmcgc2FtZSBvcHMgYW5kIGtlZXBzIGdldHRpbmcNCj4gU0VRX01JU09SREVSRUQgKHRoYXQn cyBhIHJhdGhlciBiaWcgcHJvYmxlbSB0b28gYnV0IHdvcmsgYXJvdW5kcw0KPiBleGlzdA0KPiB0 byBwcmV2ZW50IGRhdGEgY29ycnVwdGlvbi9sb3NzLiBsaWtlIGZvcmNpbmcgdGhlIGNsaWVudCB0 bw0KPiByZS1uZWdvdGlhdGUgdGhlIHNlc3Npb24pLg0KPg0KPiBVbnRpbCBzZXJ2ZXJzIGNhdGNo IHVwIHdpdGggYWRkcmVzc2luZyBmYWxzZSByZXRyaWVzLCB3aGF0J3MgdGhlIGJlc3QNCj4gc29s dXRpb24gdGhlIGNsaWVudCBjYW4gaGF2ZS4NCg0KSWYgSSBrbmV3IG9mIGEgYmV0dGVyIGNsaWVu dCBzaWRlIHNvbHV0aW9uLCBJIHdvdWxkIGFscmVhZHkgaGF2ZQ0KaW1wbGVtZW50ZWQgaXQuDQoN Cj4gU2lsZW50IGRhdGEgY29ycnVwdGlvbiBpcyBpbiBwbmZzIGJlY2F1c2UgdGhlIHdyaXRlcyBh cmUgYWxsb3dlZCB0bw0KPiBsZWF2ZSBpbnRlcnJ1cHRlZCBzbG90IGR1ZSB0byBhIHRpbWVvdXQu IEFsdGVybmF0aXZlbHksIEkgcHJvcG9zZSB0bw0KPiB0aGVuIG1ha2UgcG5mcyB3cml0ZXMgc2Ft ZSBhcyB0aGUgbm9ybWFsIHdyaXRlcy4gSXQgd2lsbCByZW1vdmUgdGhlDQo+IGRhdGEgY29ycnVw dGlvbiBwcm9ibGVtLiBJdCB3b3VsZCBzdGlsbCBoYXZlIHJlc291cmNlIGxlYWthZ2UgYnV0DQo+ IHRoYXQNCj4gc2VlbXMgbGlrZSBhIGJpdCBiZXR0ZXIgdGhhbiBkYXRhIGNvcnJ1cHRpb24uDQoN CkhvdyBvZnRlbiBkb2VzIHRoaXMgcHJvYmxlbSBhY3R1YWxseSBvY2N1ciBpbiB0aGUgZmllbGQ/ DQoNClRoZSBwb2ludCBpcyB0aGF0IGlmIHRoZSBpbnRlcnJ1cHRpb24gaXMgZHVlIHRvIGEgc2ln bmFsLCB0aGVuIHRoYXQgaXMNCmEgc2lnbmFsIHRoYXQgaXMgZmF0YWwgdG8gdGhlIGFwcGxpY2F0 aW9uLiBUaGF0J3Mgbm90IHNpbGVudA0KY29ycnVwdGlvbjsgd3JpdGVzIGFyZSBleHBlY3RlZCBu b3QgdG8gY29tcGxldGUgaW4gdGhhdCBraW5kIG9mDQpzaXR1YXRpb24uDQoNCklmIHRoZSBpbnRl cnJ1cHRpb24gaXMgZHVlIHRvIGEgc29mdCBtb3VudCB0aW1pbmcgb3V0LCB0aGVuIGl0IGlzDQpi ZWNhdXNlIHRoZSB1c2VyIGRlbGliZXJhdGVseSBjaG9zZSB0aGF0IG5vbi1kZWZhdWx0IHNldHRp bmcsIGFuZA0Kc2hvdWxkIGJlIGF3YXJlIG9mIHRoZSBjb25zZXF1ZW5jZXMuDQpOb3RlIHRoYXQg aW4gbmV3ZXIga2VybmVscywgdGhlc2Ugc29mdCB0aW1lb3V0cyBkbyBub3QgdHJpZ2dlciB1bmxl c3MNCnRoZSBuZXR3b3JrIGNvbm5lY3Rpb24gaXMgYWxzbyBkb3duLCBzbyB0aGVyZSBpcyBhbHJl YWR5IGEgcmVjb3ZlcnkNCnByb2Nlc3MgcmVxdWlyZWQgdG8gcmUtZXN0YWJsaXNoIHRoZSBuZXR3 b3JrIGNvbm5lY3Rpb24gYmVmb3JlIGFueQ0KZnVydGhlciByZXF1ZXN0cyBjYW4gYmUgc2VudC4N CkZ1cnRoZXJtb3JlLCB0aGUgYXBwbGljYXRpb24gc2hvdWxkIGFsc28gYmUgc2VlaW5nIGEgUE9T SVggZXJyb3Igd2hlbg0KZnN5bmMoKSBpcyBjYWxsZWQsIHNvIGFnYWluLCB0aGVyZSBzaG91bGQg YmUgbm8gc2lsZW50IGNvcnJ1cHRpb24uDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBO RlMgY2xpZW50IG1haW50YWluZXIsIEhhbW1lcnNwYWNlDQp0cm9uZC5teWtsZWJ1c3RAaGFtbWVy c3BhY2UuY29tDQoNCg0K