From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 67232A0524; Thu, 6 May 2021 13:22:02 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D392E410DB; Thu, 6 May 2021 13:22:01 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2052.outbound.protection.outlook.com [40.107.244.52]) by mails.dpdk.org (Postfix) with ESMTP id EBEF740040; Thu, 6 May 2021 13:21:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZGXOTHEYQZuOJj5RBVgYJQJYk32qNhPyILneUbedTV5E5SOqF3FtPTGgaLTa+yvEVK5iAKqlVCviQWpPsEj8G3mQnbFxk4iCfamj4oK9+MdviCtm/EcDk3RjQXdHfR0JIe7MrJu1dGAJb5HCvk9nyxxhs4/8CqeB57KC7L85nYWqX2SHnbmEX5nSp1E8s68lVX+0J7/soYmU/4NkQoxiCyx9cR+zeD9SaTn3DfGZePfz4s96bLfR50Ie3x5HFfFSy0yoIUKuHiPqP6PG2jwo9efF9P9qJtmElqfu9IV96ZsxFMUzXSOfTcd/R5XpsNRJR/Tsehzi7eCA4m5EbteZNg== 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=dbc+wYpNQBDZhoPAk75FjBUlCYvHHOeQg9GV+v1JyFs=; b=CoyTe/MJmh4azfqj8WPugkRUNp+7ViUSbaKQgXAW02n5LUNddazB8OlCR9bUvZgwO1oPGWDU/TuGCG8C5F2lzIPWzTbU8mieY+k4IyA9yCCT66Yk+l6PA0KEH+2mRukzZ7obS0rcpdKQP+rF4qi2kFXZNaBVYg+/TUj9jMs0VzYNYzxR6zVeCS/7qYp+spAGzL4V7nHfvPGoW81gy9UiBr/c4aGFYDqVAJeIrPOYLofhUWQ/6d6bKUa1bzB93G4Y5yXQyD4SnK5xwPHzB8ksrB3jqkwlVC8UMCd2zzfPcfKX98vf/QSjd3ub0CBQvpi/rdOS1mbltTy6qTa9ryERPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dbc+wYpNQBDZhoPAk75FjBUlCYvHHOeQg9GV+v1JyFs=; b=RIx80yRvjQlQDwbvBThxHaOfJ0eVb3zwMMspDM8lh8aUBUieOZmGOYnJzGNuEy9ApG8V4a4nQBgUp1/LgCfx1pYGjMwnbMOYbnXA6yARXQ6CrV/qjys8DRbV5eUCMkdOtj9BX2Z4Xah+4gfuntkqHtK8VDPJOMt+RuYh7Zn0TXqrgIKBHE2mas7CqodHBPaFLWzQZUSsM2LkzU4z29ZX28j2l8rP1g33Fi7/csGHWVGNw61AH+tMvVgpO57ItwXRO03WIWMgY0GNgAnshQFVqA9Fd0Z1a3difz9EK2HsmOJ94ElDglNRgAEgUYyMCk3ahQuIx8eaTjfVc0BLdWSHmQ== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM5PR12MB1628.namprd12.prod.outlook.com (2603:10b6:4:7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.38; Thu, 6 May 2021 11:21:58 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::c595:e3bc:686c:16a4]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::c595:e3bc:686c:16a4%5]) with mapi id 15.20.4087.044; Thu, 6 May 2021 11:21:58 +0000 From: Slava Ovsiienko To: Feifei Wang , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8cWFxZYWyFpJUm7yYF997hX4qqwqlRAgAFnd4CACkdrsIAAwjqAgAAa6QCAAAXPQIAADmqAgBjDdYCAAIjB8A== Date: Thu, 6 May 2021 11:21:57 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: aa8dfd2f-22de-456a-d26f-08d910812957 x-ms-traffictypediagnostic: DM5PR12MB1628: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: z56G9zc5Vpgl5ZAIyPYjseHE4pds+58dCMw2TPz+MR+RHIb5RKP+umd8W4p8bk1A38qbRB7WG2Xbcuqo1NX78wdYf5Q8c0XUMGwSCV4ZlvAzcSZL3NtF/r9SDRGKT6xYhC3f7gJhDqE2LOtXo0zs8E4nW5qfNrG+1S0IDYLaLQMmiJVXhRUY/0q9Udb91xZQJbQFcpb/4MsTHvPQHomxuJwqUy/GbvqXdW7HhdtnxkJ9+wOa7Pq6BcwIxbIrLheTzRSLKmvMw/HDDu7v7vqP5k00lMSBzLC8jURgFMi/vCSmAuoG1bCP+UhJLKAolLxn+2mQQ13L2ZT4uGAwgZmJGQs0ZGpdT/hun7tZOhGsbq2uW59yIoAusGAdFtwWdnf9WCJPXxck8G2DLrW4ueRLGVrPTIRkNc+ppFo8g5WBvuH+Z5E/pQWpk0rdVcn1veUTmWYVaDSFNf92BK/gC//balAWI8KQCGlh6QRejAWLcZgPjGg4EQ5O6Ry20FfXQzp2fePEkDfviwsxg2Fqzx9hNwqMLl4htDTi/ZtfWTbginN0+Kw7dWKLrIdg38wBdqLQhkf7fsV3Nx3oEh2jous16UfToQJkjUePia08akfmEcg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(396003)(346002)(366004)(376002)(136003)(52536014)(26005)(64756008)(478600001)(66556008)(9686003)(6636002)(2906002)(30864003)(6506007)(66946007)(5660300002)(86362001)(7696005)(110136005)(316002)(66446008)(66476007)(8676002)(76116006)(38100700002)(71200400001)(186003)(8936002)(54906003)(33656002)(55016002)(53546011)(83380400001)(122000001)(4326008)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?eUZpcCtKUzhDUXpnWXM1YUV6WmhZM1lIUUY1eHBTcFpXN2Q0cUFhTDRrYXNS?= =?utf-8?B?bFR4UEtRQXFIYllQL2xPTmVEeVp5SlRwUWw1MVh6OFJYSzhWNU9nclhyWUg0?= =?utf-8?B?aDhMYjY2RkJoZnVldCttUVBVOW5ERElVd1ZFOHpzdllqR2VhUEJvNGpDRzd4?= =?utf-8?B?bVFIOWwvWmF4dkM0S09IYjVyMkREenB3bGd4TVgzVFZPek9JK3Y3b1RLRFd5?= =?utf-8?B?bmVMcjl5Mm9FUXR3aEQ2WGt5NGhKLzhtNUpVejFlYW9wM1YwVHFsTzhrd3lL?= =?utf-8?B?WnI3SnFNRDIveENLZ0tZdzNnZmEyZVNsUnRYd0pqV0xkdm84OHdPNlJsTldo?= =?utf-8?B?Zzl0dnZTWW53RHRxQmR0a0tCWnNVQXJBVnpCNXBOWnEwWlpaeW5BeGlEdWx5?= =?utf-8?B?SHNlMUNhWEZ5bWpzeEt0WnNKbzR0TmpkM0dRSDVIZ1RLQmMwK0VRVlY3MnNM?= =?utf-8?B?RlhnWXZiWXYzU09jZXN2b3A2aytNTDdLcmZSS1h0TXg3VnZ5ajJIdlFGV21W?= =?utf-8?B?Vk1vNStuVjdaSVpTVWQ1K0t3MWg5b0R1WU5BYnAyaDMrV1VscUk2eU1xajYx?= =?utf-8?B?L1BKeXdKWHQrM0ZianVmTlF4Q0xpUmhNLzNmN09EOTlRVUVQZ1F3K3BnNGV3?= =?utf-8?B?YnZ4TXovVFA5b3ArYkJRcnhFakFmMGgxcDZrOWZxZGxRaU9pNmNpTnVvUzYr?= =?utf-8?B?RmJPa0hlMW5ETWtTZ0EvNmdaaWpYUG5Qa09OVjdLeExmRFVFNmRkcmY0bzBo?= =?utf-8?B?WmpQeDVTZk9HcFd2YWJIRXVtWVJ1cXZHMjRNSmY5bE5tS0dkREhZSnhCWHVI?= =?utf-8?B?eVMraTdNclJ0Nkt3ODlkY2J3REJXVURLc3MyZHJYbXlTTjhEZXY3OGxTczNz?= =?utf-8?B?ZlMwNnhyWkx3V3dWU2htV3NndXk3a2ZMRWd1YU5UWTlxUmJTQ0hNZ3lqQzIr?= =?utf-8?B?N3pkY0IzNUdwdXBKbGdaTGpGQ214OFBxZjlSeWw4MnN1Q3BYamNCMTcrNkR2?= =?utf-8?B?U2hkelp4WWc5VHA4YVZ1bVErRzBGZm1ETjFZQzlrK3U4dk9iZlN1bHlYSG1P?= =?utf-8?B?cFZkempoSFpTN1IreTZZMDFZbVZGWUI2TnFWWDBZOWhBVk01bXFJMSsreHFN?= =?utf-8?B?UVAwU2l4OTJDc0UxNUw5K0dkNll2NWUyU2UyT3Y3MCtFOTNkd28rdk41bDhm?= =?utf-8?B?RStFdmxleG5leXZuYk9jSEhwMTk5bnBhUE1YOGJPN3N4bEZHeXR3a0RCeGt6?= =?utf-8?B?VXdOODFWcFhnVno1eWt3amh6dkcwcmFIcjlxWGtPQjZ6ZVNOQUFSd3VDRVRk?= =?utf-8?B?MkZKMThEVHV5RWZIcGhQQ2ZJSXY4bUR2eW5DU1gxTWU1ZWRYak9pY1Vmb3VZ?= =?utf-8?B?aC9wYWI2MWw2dFJKUmc3U0RxVmxKenFwL2YvczBTZWxjdGx2NWpJRkVjRXBG?= =?utf-8?B?RU9uNTNNYmZVajMvd0tXNlByZFdQY1RrajJqOFVwR3NNRFo1dVFYSWVxM1dN?= =?utf-8?B?Q0hIM05reWR5MW5QUzUzSUM2a2kzNStPdmVNNzdyOE1rVFRyYW03aDFoRWt2?= =?utf-8?B?MmFmL2d4cVpZQ1k4VDNmY1dWR2gra2hsY1laTHl4M2tRV0p3WDFTNVY5MFRt?= =?utf-8?B?dE00ZG1YOFYxdzNwVWk4bFJtam9xL3B0YW1UeVAzd0diOUdpbkxjTEhZOFdK?= =?utf-8?B?VDNML2ZhcHpsR0VDYk5ZYWhmbFExUWdiZkdTcm00dnVrSE5QN2tWL1h0Z2RQ?= =?utf-8?Q?ddRBofgFO5JJKGmKhM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa8dfd2f-22de-456a-d26f-08d910812957 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2021 11:21:57.8643 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9Ecj9+pkVYcazWVG3VTeCfxL0L7hf9WwCD6+jewZMgCQDmrcu4tgiWkP4DTiKuRe64PpnNGMxAgusIf+VYC65Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1628 Subject: Re: [dpdk-dev] [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksIEZlaWZlaQ0KDQpTb3JyeSwgSSBkbyBub3QgZm9sbG93IHdoeSB3ZSBzaG91bGQgZ2V0IHJp ZCBvZiB0aGUgbGFzdCAoYWZ0ZXIgZGV2X2dlbiB1cGRhdGUpIHdtYi4NCldlJ3ZlIHJlYnVpbHQg dGhlIGdsb2JhbCBjYWNoZSwgd2Ugc2hvdWxkIG5vdGlmeSBvdGhlciBhZ2VudHMgaXQncyBoYXBw ZW5lZCBhbmQNCnRoZXkgc2hvdWxkIGZsdXNoIGxvY2FsIGNhY2hlcy4gU28sIGRldl9nZW4gY2hh bmdlIHNob3VsZCBiZSBtYWRlIHZpc2libGUNCnRvIG90aGVyIGFnZW50cyB0byB0cmlnZ2VyIHRo aXMgYWN0aXZpdHkgYW5kIHRoZSBzZWNvbmQgd21iIGlzIGhlcmUgdG8gZW5zdXJlIHRoaXMuDQoN Ck9uZSBtb3JlIHBvaW50LCBkdWUgdG8gcmVnaXN0ZXJpbmcgbmV3L2Rlc3Ryb3lpbmcgZXhpc3Rp bmcgTVIgaW52b2x2ZXMgRlcgKHZpYSBrZXJuZWwpIGNhbGxzLA0KaXQgdGFrZXMgc28gbWFueSBD UFUgY3ljbGVzIHRoYXQgd2UgY291bGQgbmVnbGVjdCB3bWIgb3ZlcmhlYWQgYXQgYWxsLg0KDQpB bHNvLCByZWdhcmRpbmcgdGhpczoNCg0KID4gPiBBbm90aGVyIHF1ZXN0aW9uIHN1ZGRlbmx5IG9j Y3VycmVkIHRvIG1lLCBpbiBvcmRlciB0byBrZWVwIHRoZQ0KID4gPiBvcmRlciB0aGF0IHJlYnVp bGRpbmcgZ2xvYmFsIGNhY2hlIGJlZm9yZSB1cGRhdGluZyDigJ1kZXZfZ2Vu4oCcLCB0aGUNCiA+ ID4gd21iIHNob3VsZCBiZSBiZWZvcmUgdXBkYXRpbmcgImRldl9nZW4iIHJhdGhlciB0aGFuIGFm dGVyIGl0Lg0KID4gPiBPdGhlcndpc2UsIGluIHRoZSBvdXQtb2Ytb3JkZXIgcGxhdGZvcm1zLCBj dXJyZW50IG9yZGVyIGNhbm5vdCBiZSBrZXB0Lg0KDQppdCBpcyBub3QgY2xlYXIgd2h5IG9yZGVy aW5nIGlzIGltcG9ydGFudCAtIGdsb2JhbCBjYWNoZSB1cGRhdGUgYW5kIGRldl9nZW4gY2hhbmdl IA0KaGFwcGVuIHVuZGVyIHNwaW5sb2NrIHByb3RlY3Rpb24sIHNvIG9ubHkgdGhlIGxhc3Qgd21i ICBpcyBtZWFuaW5nZnVsLg0KDQpUbyBzdW1tYXJpemUsIGluIG15IG9waW5pb246DQotIGlmIHlv dSBzZWUgc29tZSBpc3N1ZSB3aXRoIG9yZGVyaW5nIG9mIGdsb2JhbCBjYWNoZSB1cGRhdGUvZGV2 X2dlbiBzaWduYWxsaW5nLA0KICBjb3VsZCB5b3UsIHBsZWFzZSwgZWxhYm9yYXRlPyBJJ20gbm90 IHN1cmUgd2Ugc2hvdWxkIG1haW50YWluIGFuIG9yZGVyIChkdWUgdG8gc3BpbmxvY2sgcHJvdGVj dGlvbikNCi0gdGhlIGxhc3QgcnRlX3NtcF93bWIoKSBhZnRlciBkZXZfZ2VuIGluY3JlbWVudGlu ZyBzaG91bGQgYmUga2VwdCBpbnRhY3QNCg0KV2l0aCBiZXN0IHJlZ2FyZHMsDQpTbGF2YQ0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZlaWZlaSBXYW5nIDxGZWlmZWku V2FuZzJAYXJtLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIE1heSA2LCAyMDIxIDU6NTINCj4gVG86 IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ IDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0K PiBDYzogZGV2QGRwZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVp ZmVuZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0KPiBT dWJqZWN0OiDlm57lpI06IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBmaXggcmVidWlsZCBidWcg Zm9yIE1lbW9yeSBSZWdpb24NCj4gY2FjaGUNCj4gDQo+IEhpLCBTbGF2YQ0KPiANCj4gV291bGQg eW91IGhhdmUgbW9yZSBjb21tZW50cyBhYm91dCB0aGlzIHBhdGNoPw0KPiBGb3IgbXkgc2lnaHQs IG9ubHkgb25lIHdtYiBiZWZvcmUgImRldl9nZW4iIHVwZGF0aW5nIGlzIGVub3VnaCB0bw0KPiBz eW5jaHJvbml6ZS4NCj4gDQo+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHlvdXIgYXR0ZW50aW9uLg0K PiANCj4gDQo+IEJlc3QgUmVnYXJkcw0KPiBGZWlmZWkNCj4gDQo+ID4gLS0tLS3pgq7ku7bljp/k u7YtLS0tLQ0KPiA+IOWPkeS7tuS6ujogRmVpZmVpIFdhbmcNCj4gPiDlj5HpgIHml7bpl7Q6IDIw MjHlubQ05pyIMjDml6UgMTY6NDINCj4gPiDmlLbku7bkuro6IFNsYXZhIE92c2lpZW5rbyA8dmlh Y2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ID4gPG1hdGFuQG52aWRpYS5jb20+ OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+ID4g5oqE6YCBOiBkZXZAZHBk ay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnOyBSdWlmZW5nIFdhbmcNCj4g PiA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiDkuLvpopg6IOWb nuWkjTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5 IFJlZ2lvbg0KPiA+IGNhY2hlDQo+ID4NCj4gPiBIaSwgU2xhdmENCj4gPg0KPiA+IEkgdGhpbmsg dGhlIHNlY29uZCB3bWIgY2FuIGJlIHJlbW92ZWQuDQo+ID4gQXMgSSBrbm93LCB3bWIgaXMganVz dCBhIGJhcnJpZXIgdG8ga2VlcCB0aGUgb3JkZXIgYmV0d2VlbiB3cml0ZSBhbmQgd3JpdGUuDQo+ ID4gYW5kIGl0IGNhbm5vdCB0ZWxsIHRoZSBDUFUgd2hlbiBpdCBzaG91bGQgY29tbWl0IHRoZSBj aGFuZ2VzLg0KPiA+DQo+ID4gSXQgaXMgdXN1YWxseSB1c2VkIGJlZm9yZSBndWFyZCB2YXJpYWJs ZSB0byBrZWVwIHRoZSBvcmRlciB0aGF0DQo+ID4gdXBkYXRpbmcgZ3VhcmQgdmFyaWFibGUgYWZ0 ZXIgc29tZSBjaGFuZ2VzLCB3aGljaCB5b3Ugd2FudCB0byByZWxlYXNlLA0KPiBoYXZlIGJlZW4g ZG9uZS4NCj4gPg0KPiA+IEZvciBleGFtcGxlLCBmb3IgdGhlIHdtYiAgYWZ0ZXIgZ2xvYmFsIGNh Y2hlIHVwZGF0ZS9iZWZvcmUgYWx0ZXJpbmcNCj4gPiBkZXZfZ2VuLCBpdCBjYW4gZW5zdXJlIHRo ZSBvcmRlciB0aGF0IHVwZGF0aW5nIGdsb2JhbCBjYWNoZSBiZWZvcmUNCj4gPiBhbHRlcmluZw0K PiA+IGRldl9nZW46DQo+ID4gMSlJZiBvdGhlciBhZ2VudCBsb2FkIHRoZSBjaGFuZ2VkICJkZXZf Z2VuIiwgaXQgY2FuIGtub3cgdGhlIGdsb2JhbA0KPiA+IGNhY2hlIGhhcyBiZWVuIHVwZGF0ZWQu DQo+ID4gMilJZiBvdGhlciBhZ2VudHMgbG9hZCB0aGUgdW5jaGFuZ2VkLCAiZGV2X2dlbiIsIGl0 IG1lYW5zIHRoZSBnbG9iYWwNCj4gPiBjYWNoZSBoYXMgbm90IGJlZW4gdXBkYXRlZCwgYW5kIHRo ZSBsb2NhbCBjYWNoZSB3aWxsIG5vdCBiZSBmbHVzaGVkLg0KPiA+DQo+ID4gQXMgYSByZXN1bHQs IHdlIHVzZSAgd21iIGFuZCBndWFyZCB2YXJpYWJsZSAiZGV2X2dlbiIgdG8gZW5zdXJlIHRoZQ0K PiA+IGdsb2JhbCBjYWNoZSB1cGRhdGluZyBpcyAidmlzaWJsZSIuDQo+ID4gVGhlICJ2aXNpYmxl IiBtZWFucyB3aGVuIHVwZGF0aW5nIGd1YXJkIHZhcmlhYmxlICJkZXZfZ2VuIiBpcyBrbm93biBi eQ0KPiA+IG90aGVyIGFnZW50cywgdGhleSBhbHNvIGNhbiBjb25maXJtIGdsb2JhbCBjYWNoZSBo YXMgYmVlbiB1cGRhdGVkIGluDQo+ID4gdGhlIG1lYW53aGlsZS4gVGh1cywganVzdCBvbmUgd21i IGJlZm9yZSBhbHRlcmluZyAgZGV2X2dlbiBjYW4gZW5zdXJlDQo+IHRoaXMuDQo+ID4NCj4gPiBC ZXN0IFJlZ2FyZHMNCj4gPiBGZWlmZWkNCj4gPg0KPiA+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0t LQ0KPiA+ID4g5Y+R5Lu25Lq6OiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5j b20+DQo+ID4gPiDlj5HpgIHml7bpl7Q6IDIwMjHlubQ05pyIMjDml6UgMTU6NTQNCj4gPiA+IOaU tuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgTWF0YW4gQXpyYWQN Cj4gPiA+IDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEu Y29tPg0KPiA+ID4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxl QGRwZGsub3JnOyBSdWlmZW5nDQo+IFdhbmcNCj4gPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47 IG5kIDxuZEBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZA0KPiA+ID4gPG5kQGFybS5jb20+ DQo+ID4gPiDkuLvpopg6IFJFOiBbUEFUQ0ggdjEgMy80XSBuZXQvbWx4NTogZml4IHJlYnVpbGQg YnVnIGZvciBNZW1vcnkgUmVnaW9uDQo+ID4gPiBjYWNoZQ0KPiA+ID4NCj4gPiA+IEhpLCBGZWlm ZWkNCj4gPiA+DQo+ID4gPiBJbiBteSBvcGluaW9uLCB0aGVyZSBzaG91bGQgYmUgMiBiYXJyaWVy czoNCj4gPiA+ICAtIGFmdGVyIGdsb2JhbCBjYWNoZSB1cGRhdGUvYmVmb3JlIGFsdGVyaW5nIGRl dl9nZW4sIHRvIGVuc3VyZSB0aGUNCj4gPiA+IGNvcnJlY3Qgb3JkZXINCj4gPiA+ICAtIGFmdGVy IGFsdGVyaW5nIGRldl9nZW4gdG8gbWFrZSB0aGlzIGNoYW5nZSB2aXNpYmxlIGZvciBvdGhlcg0K PiA+ID4gYWdlbnRzIGFuZCB0byB0cmlnZ2VyIGxvY2FsIGNhY2hlIHVwZGF0ZQ0KPiA+ID4NCj4g PiA+IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+ID4gU2xhdmENCj4gPiA+DQo+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEZlaWZlaSBXYW5nIDxGZWlmZWku V2FuZzJAYXJtLmNvbT4NCj4gPiA+ID4gU2VudDogVHVlc2RheSwgQXByaWwgMjAsIDIwMjEgMTA6 MzANCj4gPiA+ID4gVG86IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47 IE1hdGFuIEF6cmFkDQo+ID4gPiA+IDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8 c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBuZCA8bmRAYXJt LmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZw0KPiBXYW5nDQo+ID4gPiA+IDxSdWlmZW5n LldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+Ow0KPiBuZA0K PiA+ID4gPiA8bmRAYXJtLmNvbT4NCj4gPiA+ID4gU3ViamVjdDog5Zue5aSNOiBbUEFUQ0ggdjEg My80XSBuZXQvbWx4NTogZml4IHJlYnVpbGQgYnVnIGZvciBNZW1vcnkNCj4gPiA+ID4gUmVnaW9u IGNhY2hlDQo+ID4gPiA+DQo+ID4gPiA+IEhpLCBTbGF2YQ0KPiA+ID4gPg0KPiA+ID4gPiBBbm90 aGVyIHF1ZXN0aW9uIHN1ZGRlbmx5IG9jY3VycmVkIHRvIG1lLCBpbiBvcmRlciB0byBrZWVwIHRo ZQ0KPiA+ID4gPiBvcmRlciB0aGF0IHJlYnVpbGRpbmcgZ2xvYmFsIGNhY2hlIGJlZm9yZSB1cGRh dGluZyDigJ1kZXZfZ2Vu4oCcLCB0aGUNCj4gPiA+ID4gd21iIHNob3VsZCBiZSBiZWZvcmUgdXBk YXRpbmcgImRldl9nZW4iIHJhdGhlciB0aGFuIGFmdGVyIGl0Lg0KPiA+ID4gPiBPdGhlcndpc2Us IGluIHRoZSBvdXQtb2Ytb3JkZXIgcGxhdGZvcm1zLCBjdXJyZW50IG9yZGVyIGNhbm5vdCBiZSBr ZXB0Lg0KPiA+ID4gPg0KPiA+ID4gPiBUaHVzLCB3ZSBzaG91bGQgY2hhbmdlIHRoZSBjb2RlIGFz Og0KPiA+ID4gPiBhKSByZWJ1aWxkIGdsb2JhbCBjYWNoZTsNCj4gPiA+ID4gYikgcnRlX3NtcF93 bWIoKTsNCj4gPiA+ID4gYykgdXBkYXRpbmcgZGV2X2dlbg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0 IFJlZ2FyZHMNCj4gPiA+ID4gRmVpZmVpDQo+ID4gPiA+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0t LQ0KPiA+ID4gPiA+IOWPkeS7tuS6ujogRmVpZmVpIFdhbmcNCj4gPiA+ID4gPiDlj5HpgIHml7bp l7Q6IDIwMjHlubQ05pyIMjDml6UgMTM6NTQNCj4gPiA+ID4gPiDmlLbku7bkuro6IFNsYXZhIE92 c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+ID4gPiA+ID4g PG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+ ID4gPiA+ID4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRw ZGsub3JnOyBSdWlmZW5nDQo+ID4gPiBXYW5nDQo+ID4gPiA+ID4gPFJ1aWZlbmcuV2FuZ0Bhcm0u Y29tPjsgbmQgPG5kQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiA+ID4gPiDkuLvpopg6 IOWbnuWkjTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVt b3J5DQo+ID4gUmVnaW9uDQo+ID4gPiA+ID4gY2FjaGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEhp LCBTbGF2YQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzIHZlcnkgbXVjaCBmb3IgeW91ciBl eHBsYW5hdGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgY2FuIHVuZGVyc3RhbmQgdGhlIGFw cCBjYW4gd2FpdCBhbGwgbWJ1ZnMgYXJlIHJldHVybmVkIHRvIHRoZQ0KPiA+ID4gPiA+IG1lbW9y eSBwb29sLCBhbmQgdGhlbiBpdCBjYW4gZnJlZSB0aGlzIG1idWZzLCBJIGFncmVlIHdpdGggdGhp cy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFzIGEgcmVzdWx0LCBJIHdpbGwgcmVtb3ZlIHRoZSBi dWcgZml4IHBhdGNoIGZyb20gdGhpcyBzZXJpZXMNCj4gPiA+ID4gPiBhbmQganVzdCByZXBsYWNl IHRoZSBzbXAgYmFycmllciB3aXRoIEMxMSB0aHJlYWQgZmVuY2UuIFRoYW5rcw0KPiA+ID4gPiA+ IHZlcnkgbXVjaCBmb3IgeW91ciBwYXRpZW50IGV4cGxhbmF0aW9uIGFnYWluLg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+ID4gRmVpZmVpDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiA+ID4gPiA+IOWPkeS7tuS6ujog U2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVzbGF2b0BudmlkaWEuY29tPg0KPiA+ID4gPiA+ID4g5Y+R 6YCB5pe26Ze0OiAyMDIx5bm0NOaciDIw5pelIDI6NTENCj4gPiA+ID4gPiA+IOaUtuS7tuS6ujog RmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgTWF0YW4gQXpyYWQNCj4gPiA+ID4g PiA+IDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29t Pg0KPiA+ID4gPiA+ID4g5oqE6YCBOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3Rh YmxlQGRwZGsub3JnOw0KPiBSdWlmZW5nDQo+ID4gPiA+IFdhbmcNCj4gPiA+ID4gPiA+IDxSdWlm ZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0KPiA+ID4gPiA+ID4g5Li76aKYOiBS RTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5DQo+ ID4gPiA+ID4gPiBSZWdpb24gY2FjaGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBIaSwgRmVp ZmVpDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUGxlYXNlLCBzZWUgYmVsb3cNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAuLi4uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEhpLCBG ZWlmZWkNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFNvcnJ5LCBJIGRvIG5vdCBm b2xsb3cgd2hhdCB0aGlzIHBhdGNoIGZpeGVzLiBEbyB3ZSBoYXZlDQo+ID4gPiA+ID4gPiA+ID4g c29tZSBpc3N1ZS9idWcgd2l0aCBNUiBjYWNoZSBpbiBwcmFjdGljZT8NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgYnVnIHdoaWNoIGlzIGJhc2VkIG9u IGxvZ2ljYWwNCj4gPiA+ID4gPiA+ID4gZGVkdWN0aW9uLCBhbmQgaXQgZG9lc24ndCBhY3R1YWxs eSBoYXBwZW4uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiBFYWNoIFR4IHF1ZXVlIGhhcyBpdHMgb3duIGRlZGljYXRlZCAibG9jYWwiIGNhY2hlIGZvciBN UnMNCj4gPiA+ID4gPiA+ID4gPiB0byBjb252ZXJ0IGJ1ZmZlciBhZGRyZXNzIGluIG1idWZzIGJl aW5nIHRyYW5zbWl0dGVkIHRvDQo+ID4gPiA+ID4gPiA+ID4gTEtleXMgKEhXLXJlbGF0ZWQgZW50 aXR5DQo+ID4gPiA+ID4gPiA+ID4gaGFuZGxlKSBhbmQgdGhlICJnbG9iYWwiIGNhY2hlIGZvciBh bGwgTVIgcmVnaXN0ZXJlZCBvbiB0aGUNCj4gZGV2aWNlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gQUZBSUssIGhvdyBjb252ZXJzaW9uIGhhcHBlbnMgaW4gZGF0YXBhdGg6DQo+ ID4gPiA+ID4gPiA+ID4gLSBjaGVjayB0aGUgbG9jYWwgcXVldWUgY2FjaGUgZmx1c2ggcmVxdWVz dA0KPiA+ID4gPiA+ID4gPiA+IC0gbG9va3VwIGluIGxvY2FsIGNhY2hlDQo+ID4gPiA+ID4gPiA+ ID4gLSBpZiBub3QgZm91bmQ6DQo+ID4gPiA+ID4gPiA+ID4gLSBhY3F1aXJlIGxvY2sgZm9yIGds b2JhbCBjYWNoZSByZWFkIGFjY2Vzcw0KPiA+ID4gPiA+ID4gPiA+IC0gbG9va3VwIGluIGdsb2Jh bCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+IC0gcmVsZWFzZSBsb2NrIGZvciBnbG9iYWwgY2FjaGUN Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEhvdyBjYWNoZSB1cGRhdGUgb24gbWVt b3J5IGZyZWVpbmcvdW5yZWdpc3RlcmluZyBoYXBwZW5zOg0KPiA+ID4gPiA+ID4gPiA+IC0gYWNx dWlyZSBsb2NrIGZvciBnbG9iYWwgY2FjaGUgd3JpdGUgYWNjZXNzDQo+ID4gPiA+ID4gPiA+ID4g LSBbYV0gcmVtb3ZlIHJlbGV2YW50IE1ScyBmcm9tIHRoZSBnbG9iYWwgY2FjaGUNCj4gPiA+ID4g PiA+ID4gPiAtIFtiXSBzZXQgbG9jYWwgY2FjaGVzIGZsdXNoIHJlcXVlc3QNCj4gPiA+ID4gPiA+ ID4gPiAtIGZyZWUgZ2xvYmFsIGNhY2hlIGxvY2sNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHlvdXIgcGF0Y2ggc3dhcHMgW2FdIGFu ZCBbYl0sDQo+ID4gPiA+ID4gPiA+ID4gYW5kIGxvY2FsIGNhY2hlcyBmbHVzaCBpcyByZXF1ZXN0 ZWQgZWFybGllci4gV2hhdCBwcm9ibGVtIGRvZXMgaXQNCj4gc29sdmU/DQo+ID4gPiA+ID4gPiA+ ID4gSXQgaXMgbm90IHN1cHBvc2VkIHRoZXJlIGFyZSBpbiBkYXRhcGF0aCBzb21lIG1idWZzDQo+ ID4gPiA+ID4gPiA+ID4gcmVmZXJlbmNpbmcgdG8gdGhlIG1lbW9yeSBiZWluZyBmcmVlZC4gQXBw bGljYXRpb24gbXVzdA0KPiA+ID4gPiA+ID4gPiA+IGVuc3VyZSB0aGlzIGFuZCBtdXN0IG5vdCBh bGxvY2F0ZSBuZXcgbWJ1ZnMgZnJvbSB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gbWVtb3J5IHJlZ2lv bnMNCj4gPiA+IGJlaW5nIGZyZWVkLg0KPiA+ID4gPiA+ID4gPiA+IEhlbmNlLCB0aGUgbG9va3Vw cyBmb3IgdGhlc2UgTVJzIGluIGNhY2hlcyBzaG91bGQgbm90IG9jY3VyLg0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiBGb3IgeW91ciBmaXJzdCBwb2ludCB0aGF0LCBhcHBsaWNhdGlvbiBj YW4gdGFrZSBjaGFyZ2Ugb2YNCj4gPiA+ID4gPiA+ID4gcHJldmVudGluZyBNUiBmcmVlZCBtZW1v cnkgYmVpbmcgYWxsb2NhdGVkIHRvIGRhdGEgcGF0aC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gRG9lcyBpdCBtZWFucyB0aGF0IElmIHRoZXJlIGlzIGFuIGVtZXJnZW5jeSBvZiBNUiBm cmFnbWVudCwNCj4gPiA+ID4gPiA+ID4gc3VjaCBhcyBob3RwbHVnLCB0aGUgYXBwbGljYXRpb24g bXVzdCBpbmZvcm0gdGhlZGF0YSBwYXRoIGluDQo+ID4gPiA+ID4gPiA+IGFkdmFuY2UsIGFuZCB0 aGlzIG1lbW9yeSB3aWxsIG5vdCBiZSBhbGxvY2F0ZWQsIGFuZCB0aGVuIHRoZQ0KPiA+ID4gPiA+ ID4gPiBjb250cm9sIHBhdGggd2lsbCBmcmVlIHRoaXMgbWVtb3J5PyBJZiBhcHBsaWNhdGlvbiAg Y2FuIGRvDQo+ID4gPiA+ID4gPiA+IGxpa2UgdGhpcywgSSBhZ3JlZSB0aGF0IHRoaXMgYnVnDQo+ ID4gPiA+ID4gY2Fubm90IGhhcHBlbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBY3R1YWxs eSwgIHRoaXMgaXMgdGhlIG9ubHkgY29ycmVjdCB3YXkgZm9yIGFwcGxpY2F0aW9uIHRvIG9wZXJh dGUuDQo+ID4gPiA+ID4gPiBMZXQncyBzdXBwb3NlIHdlIGhhdmUgc29tZSBtZW1vcnkgYXJlYSB0 aGF0IGFwcGxpY2F0aW9uIHdhbnRzDQo+ID4gPiA+ID4gPiB0bw0KPiA+ID4gZnJlZS4NCj4gPiA+ ID4gPiA+IEFMTCByZWZlcmVuY2VzIHRvIHRoaXMgYXJlYSBtdXN0IGJlIHJlbW92ZWQuIElmIHdl IGhhdmUgc29tZQ0KPiA+ID4gPiA+ID4gbWJ1ZnMgYWxsb2NhdGVkIGZyb20gdGhpcyBhcmVhLCBp dCBtZWFucyB0aGF0IHdlIGhhdmUgbWVtb3J5DQo+ID4gPiA+ID4gPiBwb29sIGNyZWF0ZWQNCj4g PiA+ID4gdGhlcmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2hhdCBhcHBsaWNhdGlvbiBz aG91bGQgZG86DQo+ID4gPiA+ID4gPiAtIG5vdGlmeSBhbGwgaXRzIGNvbXBvbmVudHMvYWdlbnRz IHRoZSBtZW1vcnkgYXJlYSBpcyBnb2luZyB0bw0KPiA+ID4gPiA+ID4gYmUgZnJlZWQNCj4gPiA+ ID4gPiA+IC0gYWxsIGNvbXBvbmVudHMvYWdlbnRzIGZyZWUgdGhlIG1idWZzIHRoZXkgbWlnaHQg b3duDQo+ID4gPiA+ID4gPiAtIFBNRCBtaWdodCBub3Qgc3VwcG9ydCBmcmVlaW5nIGZvciBzb21l IG1idWZzIChmb3IgZXhhbXBsZQ0KPiA+ID4gPiA+ID4gYmVpbmcgc2VudCBhbmQgYXdhaXRpbmcg Zm9yIGNvbXBsZXRpb24pLCBzbyBhcHAgc2hvdWxkIGp1c3QNCj4gPiA+ID4gPiA+IHdhaXQNCj4g PiA+ID4gPiA+IC0gd2FpdCB0aWxsIGFsbCBtYnVmcyBhcmUgcmV0dXJuZWQgdG8gdGhlIG1lbW9y eSBwb29sIChieQ0KPiA+ID4gPiA+ID4gbW9uaXRvcmluZyBhdmFpbGFibGUgb2JqID09IHBvb2wg c2l6ZSkNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBPdGhlcndpc2UgLSBpdCBpcyBkYW5nZXJv dXMgdG8gZnJlZSB0aGUgbWVtb3J5LiBUaGVyZSBhcmUganVzdA0KPiA+ID4gPiA+ID4gc29tZSBt YnVmcyBzdGlsbCBhbGxvY2F0ZWQsIGl0IGlzIHJlZ2FyZGxlc3MgdG8gYnVmIGFkZHJlc3MgdG8N Cj4gPiA+ID4gPiA+IE1SIHRyYW5zbGF0aW9uLiBXZSBqdXN0IGNhbid0IGZyZWUgdGhlIG1lbW9y eSAtIHRoZSBtYXBwaW5nDQo+ID4gPiA+ID4gPiB3aWxsIGJlIGRlc3Ryb3llZCBhbmQgbWlnaHQg Y2F1c2UgdGhlIHNlZ21lbnRhdGlvbiBmYXVsdCBieSBTVw0KPiA+ID4gPiA+ID4gb3Igc29tZSBI VyBpc3N1ZXMgb24gRE1BIGFjY2VzcyB0byB1bm1hcHBlZCBtZW1vcnkuICBJdCBpcw0KPiA+ID4g PiA+ID4gdmVyeSBnZW5lcmljIHNhZmV0eSBhcHByb2FjaCAtIGRvIG5vdCBmcmVlIHRoZSBtZW1v cnkgdGhhdCBpcyBzdGlsbCBpbg0KPiB1c2UuDQo+ID4gPiA+ID4gPiBIZW5jZSwgYXQgdGhlIG1v bWVudCBvZiBmcmVlaW5nIGFuZCB1bnJlZ2lzdGVyaW5nIHRoZSBNUiwNCj4gPiA+ID4gPiA+IHRo ZXJlIE1VU1QgQkUgTk8gYW55DQo+ID4gPiA+ID4gbWJ1ZnMgaW4gZmxpZ2h0IHJlZmVyZW5jaW5n IHRvIHRoZSBhZGRyZXNzZXMgYmVpbmcgZnJlZWQuDQo+ID4gPiA+ID4gPiBObyB0cmFuc2xhdGlv biB0byBNUiBiZWluZyBpbnZhbGlkYXRlZCBjYW4gaGFwcGVuLg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGb3Igb3RoZXIgc2lkZSwgdGhlIGNhY2hlIGZsdXNo IGhhcyBuZWdhdGl2ZSBlZmZlY3QgLSB0aGUNCj4gPiA+ID4gPiA+ID4gPiBsb2NhbCBjYWNoZSBp cyBnZXR0aW5nIGVtcHR5IGFuZCBjYW4ndCBwcm92aWRlIHRyYW5zbGF0aW9uDQo+ID4gPiA+ID4g PiA+ID4gZm9yIG90aGVyIHZhbGlkIChub3QgYmVpbmcgcmVtb3ZlZCkgTVJzLCBhbmQgdGhlDQo+ ID4gPiA+ID4gPiA+ID4gdHJhbnNsYXRpb24gaGFzIHRvIGxvb2sgdXAgaW4gdGhlIGdsb2JhbCBj YWNoZSwgdGhhdCBpcw0KPiA+ID4gPiA+ID4gPiA+IGxvY2tlZCBub3cgZm9yIHJlYnVpbGRpbmcs IHRoaXMgY2F1c2VzIHRoZSBkZWxheXMgaW4NCj4gPiA+ID4gPiA+ID4gPiBkYXRhcGF0Y2gNCj4g PiA+ID4gPiA+ID4gb24gYWNxdWlyaW5nIGdsb2JhbCBjYWNoZSBsb2NrLg0KPiA+ID4gPiA+ID4g PiA+IFNvLCBJIHNlZSBzb21lIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBhY3QuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IElmIGFib3ZlIGFzc3VtcHRpb24gaXMgdHJ1ZSwgd2UgY2Fu IGdvIHRvIHlvdXIgc2Vjb25kIHBvaW50Lg0KPiA+ID4gPiA+ID4gPiBJIHRoaW5rIHRoaXMgaXMg YSBwcm9ibGVtIG9mIHRoZSB0cmFkZW9mZiBiZXR3ZWVuIGNhY2hlDQo+ID4gPiA+ID4gPiA+IGNv aGVyZW5jZSBhbmQNCj4gPiA+ID4gPiA+IHBlcmZvcm1hbmNlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBJIGNhbiB1bmRlcnN0YW5kIHlvdXIgbWVhbmluZyB0aGF0IHRob3VnaCBnbG9i YWwgY2FjaGUgaGFzDQo+ID4gPiA+ID4gPiA+IGJlZW4gY2hhbmdlZCwgd2Ugc2hvdWxkIGtlZXAg dGhlIHZhbGlkIE1SIGluIGxvY2FsIGNhY2hlIGFzDQo+ID4gPiA+ID4gPiA+IGxvbmcgYXMgcG9z c2libGUgdG8gZW5zdXJlIHRoZSBmYXN0IHNlYXJjaGluZyBzcGVlZC4NCj4gPiA+ID4gPiA+ID4g SW4gdGhlIG1lYW53aGlsZSwgdGhlIGxvY2FsIGNhY2hlIGNhbiBiZSByZWJ1aWx0IGxhdGVyIHRv DQo+ID4gPiA+ID4gPiA+IHJlZHVjZSBpdHMgd2FpdGluZyB0aW1lIGZvciBhY3F1aXJpbmcgdGhl IGdsb2JhbCBjYWNoZSBsb2NrLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBIb3dldmVy LCAgdGhpcyBtZWNoYW5pc20ganVzdCBlbnN1cmVzIHRoZSBwZXJmb3JtYW5jZQ0KPiA+ID4gPiA+ ID4gPiB1bmNoYW5nZWQgZm9yIHRoZSBmaXJzdCBmZXcgbWJ1ZnMuDQo+ID4gPiA+ID4gPiA+IER1 cmluZyB0aGUgbmV4dCBtYnVmcyBsa2V5IHNlYXJjaGluZyBhZnRlciAnZGV2X2dlbicNCj4gPiA+ ID4gPiA+ID4gdXBkYXRlZCwgaXQgaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIHVwZGF0ZSB0aGUgbG9j YWwgY2FjaGUuDQo+ID4gPiA+ID4gPiA+IEFuZCB0aGUgcGVyZm9ybWFuY2UgY2FuIGZpcnN0bHkg cmVkdWNlIGFuZCB0aGVuIHJldHVybnMuDQo+ID4gPiA+ID4gPiA+IFRodXMsIG5vIG1hdHRlciB3 aGV0aGVyIHRoZXJlIGlzIHRoaXMgcGF0Y2ggb3Igbm90LCAgdGhlDQo+ID4gPiA+ID4gPiA+IHBl cmZvcm1hbmNlIHdpbGwgaml0dGVyIGluIGEgY2VydGFpbiBwZXJpb2Qgb2YNCj4gPiA+ID4gdGlt ZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBMb2NhbCBjYWNoZSBzaG91bGQgYmUgdXBkYXRl ZCB0byByZW1vdmUgTVJzIG5vIGxvbmdlciB2YWxpZC4NCj4gPiA+ID4gPiA+IEJ1dCB3ZSBqdXN0 IGZsdXNoIHRoZSBlbnRpcmUgY2FjaGUuDQo+ID4gPiA+ID4gPiBMZXQncyBzdXBwb3NlIHdlIGhh dmUgdmFsaWQgTVIwLCBNUjEsIGFuZCBub3QgdmFsaWQgTVJYIGluDQo+ID4gPiA+ID4gPiBsb2Nh bA0KPiA+IGNhY2hlLg0KPiA+ID4gPiA+ID4gQW5kIHRoZXJlIGFyZSB0cmFmZmljIGluIHRoZSBk YXRhcGF0aCBmb3IgTVIwIGFuZCBNUjEsIGFuZCBubw0KPiA+ID4gPiA+ID4gdHJhZmZpYyBmb3Ig TVJYIGFueW1vcmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMSkgSWYgd2UgZG8gYXMgeW91 IHByb3Bvc2U6DQo+ID4gPiA+ID4gPiBhKSB0YWtlIGEgbG9jaw0KPiA+ID4gPiA+ID4gYikgcmVx dWVzdCBmbHVzaCBsb2NhbCBjYWNoZSBmaXJzdCAtIGFsbCBNUjAsIE1SMSwgTVJYIHdpbGwgYmUN Cj4gPiA+ID4gPiA+IHJlbW92ZWQgb24gdHJhbnNsYXRpb24gaW4gZGF0YXBhdGgNCj4gPiA+ID4g PiA+IGMpIHVwZGF0ZSBnbG9iYWwgY2FjaGUsDQo+ID4gPiA+ID4gPiBkKSBmcmVlIGxvY2sNCj4g PiA+ID4gPiA+IEFsbCB0aGUgdHJhZmZpYyBmb3IgdmFsaWQgTVIwLCBNUjEgQUxXQVlTIHdpbGwg YmUgYmxvY2tlZCBvbg0KPiA+ID4gPiA+ID4gbG9jayB0YWtlbiBmb3IgY2FjaGUgdXBkYXRlIHNp bmNlIHBvaW50IGIpIHRpbGwgcG9pbnQgZCkuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMikg SWYgd2UgZG8gYXMgaXQgaXMgaW1wbGVtZW50ZWQgbm93Og0KPiA+ID4gPiA+ID4gYSkgdGFrZSBh IGxvY2sNCj4gPiA+ID4gPiA+IGIpIHVwZGF0ZSBnbG9iYWwgY2FjaGUNCj4gPiA+ID4gPiA+IGMp IHJlcXVlc3QgZmx1c2ggbG9jYWwgY2FjaGUNCj4gPiA+ID4gPiA+IGQpIGZyZWUgbG9jaw0KPiA+ ID4gPiA+ID4gVGhlIHRyYWZmaWMgTUlHSFQgYmUgbG9ja2VkIE9OTFkgZm9yIE1ScyBub24tZXhp c3RpbmcgaW4gbG9jYWwNCj4gPiA+ID4gPiA+IGNhY2hlIChub3QgaGFwcGVucyBmb3IgTVIwIGFu ZCBNUjEsIG11c3Qgbm90IGhhcHBlbiBmb3IgTVJYKSwNCj4gPiA+ID4gPiA+IGFuZCBwcm9iYWJp bGl0eSBzaG91bGQgYmUgbWlub3IuIEFuZCBsb2NrIG1pZ2h0IGhhcHBlbiBzaW5jZQ0KPiA+ID4g PiA+ID4gYykgdGlsbA0KPiA+ID4gPiA+ID4gZCkNCj4gPiA+ID4gPiA+IC0gcXVpdGUgc2hvcnQg cGVyaW9kIG9mIHRpbWUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTdW1tYXJ5LCB0aGUgZGlm ZmVyZW5jZSBiZXR3ZWVuIDEpIGFuZCAyKQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IExvY2sg cHJvYmFiaWxpdHk6DQo+ID4gPiA+ID4gPiAtIDEpIGxvY2sgQUxXQVlTIGhhcHBlbiBmb3IgQU5Z IE1SIHRyYW5zbGF0aW9uIGFmdGVyIGIpLA0KPiA+ID4gPiA+ID4gICAyKSBsb2NrIE1JR0hUIGhh cHBlbiwgZm9yIGNhY2hlIG1pc3MgT05MWSwgYWZ0ZXIgYykNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBMb2NrIGR1cmF0aW9uOg0KPiA+ID4gPiA+ID4gLSAxKSBsb2NrIHNpbmNlIGIpIHRpbGwg ZCksDQo+ID4gPiA+ID4gPiAgIDIpIGxvY2sgc2luY2UgYykgdGlsbCBkKSwgdGhhdCBzZWVtcyB0 byBiZSAgbXVjaCBzaG9ydGVyLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gRmluYWxseSwgaW4gY29uY2x1c2lvbiwgSSB0ZW5kIHRvIHRoaW5rIHRoYXQgdGhlIGJv dHRvbQ0KPiA+ID4gPiA+ID4gPiBsYXllciBjYW4gZG8gbW9yZSB0aGluZ3MgdG8gZW5zdXJlIHRo ZSBjb3JyZWN0IGV4ZWN1dGlvbiBvZg0KPiA+ID4gPiA+ID4gPiB0aGUgcHJvZ3JhbSwgd2hpY2gg bWF5IGhhdmUgYSBuZWdhdGl2ZSBpbXBhY3Qgb24gdGhlDQo+ID4gPiA+ID4gPiA+IHBlcmZvcm1h bmNlIGluIGEgc2hvcnQgdGltZSwgYnV0IGluIHRoZSBsb25nIHJ1biwgdGhlDQo+ID4gPiA+ID4g PiA+IHBlcmZvcm1hbmNlIHdpbGwgZXZlbnR1YWxseQ0KPiA+ID4gY29tZSBiYWNrLg0KPiA+ID4g PiA+ID4gPiBGdXJ0aGVybW9yZSwgbWF5YmUgd2Ugc2hvdWxkIHBheSBhdHRlbnRpb24gdG8gdGhl DQo+ID4gPiA+ID4gPiA+IHBlcmZvcm1hbmNlIGluIHRoZSBzdGFibGUgcGVyaW9kLCBhbmQgdHJ5 IG91ciBiZXN0IHRvIGVuc3VyZQ0KPiA+ID4gPiA+ID4gPiB0aGUgY29ycmVjdG5lc3Mgb2YgdGhl IHByb2dyYW0gaW4gY2FzZSBvZg0KPiA+ID4gPiA+ID4gZW1lcmdlbmNpZXMuDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gSWYgd2UgaGF2ZSBzb21lIG1idWZzIHN0aWxsIGFsbG9jYXRlZCBpbiBt ZW1vcnkgYmVpbmcgZnJlZWQgLQ0KPiA+ID4gPiA+ID4gdGhlcmUgaXMgbm90aGluZyB0byBzYXkg YWJvdXQgY29ycmVjdG5lc3MsIGl0IGlzIHRvdGFsbHkNCj4gPiA+ID4gPiA+IGluY29ycmVjdC4g SW4gbXkgb3Bpbmlvbiwgd2Ugc2hvdWxkIG5vdCB0aGluayBob3cgdG8gbWl0aWdhdGUNCj4gPiA+ ID4gPiA+IHRoaXMgaW5jb3JyZWN0IGJlaGF2aW9yLCB3ZSBzaG91bGQgbm90IGVuY291cmFnZSBh cHBsaWNhdGlvbg0KPiA+ID4gPiA+ID4gZGV2ZWxvcGVycyB0byBmb2xsb3cgdGhlIHdyb25nDQo+ ID4gPiA+ID4gYXBwcm9hY2hlcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBXaXRoIGJlc3Qg cmVnYXJkcywNCj4gPiA+ID4gPiA+IFNsYXZhDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiBCZXN0IFJlZ2FyZHMNCj4gPiA+ID4gPiA+ID4gRmVpZmVpDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+ ID4gU2xhdmENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+IEZyb206IEZlaWZlaSBXYW5nIDxmZWlm ZWkud2FuZzJAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBNYXJj aCAxOCwgMjAyMSA5OjE5DQo+ID4gPiA+ID4gPiA+ID4gPiBUbzogTWF0YW4gQXpyYWQgPG1hdGFu QG52aWRpYS5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ID4gPiA+ID4gPiA+ID4gPiA8c2hhaGFmc0Bu dmlkaWEuY29tPjsgU2xhdmEgT3ZzaWllbmtvDQo+ID4gPiA+ID4gPiA+ID4gPiA8dmlhY2hlc2xh dm9AbnZpZGlhLmNvbT47IFlvbmdzZW9rIEtvaA0KPiA+ID4gPiA+ID4gPiA+ID4gPHlza29oQG1l bGxhbm94LmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kQGFybS5j b207IEZlaWZlaSBXYW5nDQo+ID4gPiA+ID4gPiA8ZmVpZmVpLndhbmcyQGFybS5jb20+Ow0KPiA+ ID4gPiA+ID4gPiA+ID4gc3RhYmxlQGRwZGsub3JnOyBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcud2Fu Z0Bhcm0uY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogW1BBVENIIHYxIDMvNF0gbmV0 L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3INCj4gPiA+ID4gPiA+ID4gPiA+IE1lbW9yeSBSZWdp b24gY2FjaGUNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiAnZGV2X2dlbicg aXMgYSB2YXJpYWJsZSB0byBpbmZvcm0gb3RoZXIgY29yZXMgdG8gZmx1c2gNCj4gPiA+ID4gPiA+ ID4gPiA+IHRoZWlyIGxvY2FsIGNhY2hlIHdoZW4gZ2xvYmFsIGNhY2hlIGlzIHJlYnVpbHQuDQo+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gSG93ZXZlciwgaWYgJ2Rldl9nZW4n IGlzIHVwZGF0ZWQgYWZ0ZXIgZ2xvYmFsIGNhY2hlIGlzDQo+ID4gPiA+ID4gPiA+ID4gPiByZWJ1 aWx0LCBvdGhlciBjb3JlcyBtYXkgbG9hZCBhIHdyb25nIG1lbW9yeSByZWdpb24gbGtleQ0KPiA+ ID4gPiA+ID4gPiA+ID4gdmFsdWUgZnJvbSBvbGQgbG9jYWwNCj4gPiA+ID4gPiA+ID4gY2FjaGUu DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gVGltZXNsb3QgICAgICAgIG1h aW4gY29yZSAgICAgICAgICAgICAgIHdvcmtlciBjb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiAgIDEg ICAgICAgICByZWJ1aWxkIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gICAyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQgdW5jaGFuZ2VkIGRldl9nZW4NCj4gPiA+ ID4gPiA+ID4gPiA+ICAgMyAgICAgICAgICAgIHVwZGF0ZSBkZXZfZ2VuDQo+ID4gPiA+ID4gPiA+ ID4gPiAgIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vayB1cCBvbGQgbG9j YWwgY2FjaGUNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGcm9tIHRoZSBl eGFtcGxlIGFib3ZlLCB3ZSBjYW4gc2VlIHRoYXQgdGhvdWdoIGdsb2JhbA0KPiA+ID4gPiA+ID4g PiA+ID4gY2FjaGUgaXMgcmVidWlsdCwgZHVlIHRvIHRoYXQgZGV2X2dlbiBpcyBub3QgdXBkYXRl ZCwNCj4gPiA+ID4gPiA+ID4gPiA+IHRoZSB3b3JrZXIgY29yZSBtYXkgbG9vayB1cCBvbGQgY2Fj aGUgdGFibGUgYW5kIHJlY2VpdmUNCj4gPiA+ID4gPiA+ID4gPiA+IGEgd3JvbmcgbWVtb3J5IHJl Z2lvbg0KPiA+ID4gPiBsa2V5IHZhbHVlLg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+IFRvIGZpeCB0aGlzLCB1cGRhdGluZyAnZGV2X2dlbicgc2hvdWxkIGJlIG1vdmVkIGJl Zm9yZQ0KPiA+ID4gPiA+ID4gPiA+ID4gcmVidWlsZGluZyBnbG9iYWwgY2FjaGUgdG8gaW5mb3Jt IHdvcmtlciBjb3JlcyB0byBmbHVzaA0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlaXIgbG9jYWwgY2Fj aGUgd2hlbiBnbG9iYWwgY2FjaGUgc3RhcnQgcmVidWlsZGluZy4NCj4gPiA+ID4gPiA+ID4gPiA+ IEFuZCB3bWIgY2FuIGVuc3VyZSB0aGUgc2VxdWVuY2Ugb2YgdGhpcw0KPiA+ID4gPiA+ID4gPiA+ IHByb2Nlc3MuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gRml4ZXM6IDk3 NGYxZTdlZjE0NiAoIm5ldC9tbHg1OiBhZGQgbmV3IG1lbW9yeSByZWdpb24NCj4gPiA+ID4gPiA+ ID4gPiA+IHN1cHBvcnQiKQ0KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0K PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFN1Z2dlc3RlZC1ieTogUnVpZmVu ZyBXYW5nIDxydWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IEZlaWZlaSBXYW5nIDxmZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4g PiA+IFJldmlld2VkLWJ5OiBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9uZXQvbWx4NS9t bHg1X21yLmMgfCAzNw0KPiA+ID4gPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiA+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNl cnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiA+ID4g PiA+ID4gPiA+IGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMgaW5kZXgNCj4gPiA+ID4gPiA+ ID4gPiA+IGRhNGU5MWZjMi4uN2NlMWQzZTY0IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gLS0t IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvbmV0L21seDUvbWx4NV9tci5jDQo+ID4gPiA+ID4gPiA+ID4gPiBAQCAtMTAzLDIwICsx MDMsMTggQEANCj4gbWx4NV9tcl9tZW1fZXZlbnRfZnJlZV9jYihzdHJ1Y3QNCj4gPiA+ID4gPiA+ ID4gPiA+IG1seDVfZGV2X2N0eF9zaGFyZWQgKnNoLA0KPiA+ID4gPiA+ID4gPiA+ID4gIAkJcmVi dWlsZCA9IDE7DQo+ID4gPiA+ID4gPiA+ID4gPiAgCX0NCj4gPiA+ID4gPiA+ID4gPiA+ICAJaWYg KHJlYnVpbGQpIHsNCj4gPiA+ID4gPiA+ID4gPiA+IC0JCW1seDVfbXJfcmVidWlsZF9jYWNoZSgm c2gtPnNoYXJlX2NhY2hlKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsJCSsrc2gtPnNoYXJlX2NhY2hl LmRldl9nZW47DQo+ID4gPiA+ID4gPiA+ID4gPiArCQlERUJVRygiYnJvYWRjYXN0aW5nIGxvY2Fs IGNhY2hlIGZsdXNoLA0KPiBnZW49JWQiLA0KPiA+ID4gPiA+ID4gPiA+ID4gKwkJCXNoLT5zaGFy ZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ ICAJCS8qDQo+ID4gPiA+ID4gPiA+ID4gPiAgCQkgKiBGbHVzaCBsb2NhbCBjYWNoZXMgYnkgcHJv cGFnYXRpbmcgaW52YWxpZGF0aW9uDQo+ID4gPiA+ID4gYWNyb3NzIGNvcmVzLg0KPiA+ID4gPiA+ ID4gPiA+ID4gLQkJICogcnRlX3NtcF93bWIoKSBpcyBlbm91Z2ggdG8gc3luY2hyb25pemUgdGhp cw0KPiA+ID4gPiA+IGV2ZW50LiBJZg0KPiA+ID4gPiA+ID4gPiA+ID4gb25lIG9mDQo+ID4gPiA+ ID4gPiA+ID4gPiAtCQkgKiBmcmVlZCBtZW1zZWdzIGlzIHNlZW4gYnkgb3RoZXIgY29yZSwgdGhh dCBtZWFucw0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gbWVtc2VnDQo+ID4gPiA+ ID4gPiA+ID4gPiAtCQkgKiBoYXMgYmVlbiBhbGxvY2F0ZWQgYnkgYWxsb2NhdG9yLCB3aGljaCB3 aWxsIGNvbWUNCj4gPiA+ID4gPiBhZnRlciB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiAtCQkgKiBm cmVlIGNhbGwuIFRoZXJlZm9yZSwgdGhpcyBzdG9yZSBpbnN0cnVjdGlvbg0KPiA+ID4gPiA+IChp bmNyZW1lbnRpbmcNCj4gPiA+ID4gPiA+ID4gPiA+IC0JCSAqIGdlbmVyYXRpb24gYmVsb3cpIHdp bGwgYmUgZ3VhcmFudGVlZCB0byBiZSBzZWVuDQo+ID4gPiA+ID4gYnkgb3RoZXINCj4gPiA+ID4g PiA+ID4gPiA+IGNvcmUNCj4gPiA+ID4gPiA+ID4gPiA+IC0JCSAqIGJlZm9yZSB0aGUgY29yZSBz ZWVzIHRoZSBuZXdseSBhbGxvY2F0ZWQgbWVtb3J5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gKwkJICog cnRlX3NtcF93bWIoKSBpcyB0byBrZWVwIHRoZSBvcmRlciB0aGF0DQo+IGRldl9nZW4NCj4gPiA+ ID4gPiA+ID4gPiA+IHVwZGF0ZWQgYmVmb3JlDQo+ID4gPiA+ID4gPiA+ID4gPiArCQkgKiByZWJ1 aWxkaW5nIGdsb2JhbCBjYWNoZS4gVGhlcmVmb3JlLCBvdGhlcg0KPiBjb3JlIGNhbg0KPiA+ID4g PiA+IGZsdXNoDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGVpcg0KPiA+ID4gPiA+ID4gPiA+ID4gKwkJ ICogbG9jYWwgY2FjaGUgb24gdGltZS4NCj4gPiA+ID4gPiA+ID4gPiA+ICAJCSAqLw0KPiA+ID4g PiA+ID4gPiA+ID4gLQkJKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ID4g PiA+IC0JCURFQlVHKCJicm9hZGNhc3RpbmcgbG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ ID4gPiA+ID4gPiA+ID4gPiAtCQkgICAgICBzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4g PiA+ID4gPiA+ID4gPiAgCQlydGVfc21wX3dtYigpOw0KPiA+ID4gPiA+ID4gPiA+ID4gKwkJbWx4 NV9tcl9yZWJ1aWxkX2NhY2hlKCZzaC0+c2hhcmVfY2FjaGUpOw0KPiA+ID4gPiA+ID4gPiA+ID4g IAl9DQo+ID4gPiA+ID4gPiA+ID4gPiAgCXJ0ZV9yd2xvY2tfd3JpdGVfdW5sb2NrKCZzaC0+c2hh cmVfY2FjaGUucndsb2NrKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4gPiA+ID4g PiBAQCAtNDA3LDIwICs0MDUsMTkgQEAgbWx4NV9kbWFfdW5tYXAoc3RydWN0DQo+ID4gcnRlX3Bj aV9kZXZpY2UNCj4gPiA+ID4gPiA+ID4gKnBkZXYsDQo+ID4gPiA+ID4gPiA+ID4gdm9pZA0KPiA+ ID4gPiA+ID4gPiA+ID4gKmFkZHIsDQo+ID4gPiA+ID4gPiA+ID4gPiAgCW1seDVfbXJfZnJlZSht ciwgc2gtPnNoYXJlX2NhY2hlLmRlcmVnX21yX2NiKTsNCj4gPiA+ID4gPiA+ID4gPiA+ICAJREVC VUcoInBvcnQgJXUgcmVtb3ZlIE1SKCVwKSBmcm9tIGxpc3QiLCBkZXYtPmRhdGEtDQo+ID4gPiA+ ID4gPnBvcnRfaWQsDQo+ID4gPiA+ID4gPiA+ID4gPiAgCSAgICAgICh2b2lkICopbXIpOw0KPiA+ ID4gPiA+ID4gPiA+ID4gLQltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7 DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiArCSsrc2gtPnNoYXJlX2Nh Y2hlLmRldl9nZW47DQo+ID4gPiA+ID4gPiA+ID4gPiArCURFQlVHKCJicm9hZGNhc3RpbmcgbG9j YWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4gPiA+ID4gPiA+ID4gPiArCQlzaC0+c2hhcmVf Y2FjaGUuZGV2X2dlbik7DQo+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiAg CS8qDQo+ID4gPiA+ID4gPiA+ID4gPiAgCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9wYWdh dGluZyBpbnZhbGlkYXRpb24gYWNyb3NzIGNvcmVzLg0KPiA+ID4gPiA+ID4gPiA+ID4gLQkgKiBy dGVfc21wX3dtYigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0aGlzIGV2ZW50LiBJZg0KPiA+ ID4gPiA+IG9uZSBvZg0KPiA+ID4gPiA+ID4gPiA+ID4gLQkgKiBmcmVlZCBtZW1zZWdzIGlzIHNl ZW4gYnkgb3RoZXIgY29yZSwgdGhhdCBtZWFucyB0aGUNCj4gPiA+ID4gPiBtZW1zZWcNCj4gPiA+ ID4gPiA+ID4gPiA+IC0JICogaGFzIGJlZW4gYWxsb2NhdGVkIGJ5IGFsbG9jYXRvciwgd2hpY2gg d2lsbCBjb21lIGFmdGVyIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+IC0JICogZnJlZSBjYWxsLiBU aGVyZWZvcmUsIHRoaXMgc3RvcmUgaW5zdHJ1Y3Rpb24gKGluY3JlbWVudGluZw0KPiA+ID4gPiA+ ID4gPiA+ID4gLQkgKiBnZW5lcmF0aW9uIGJlbG93KSB3aWxsIGJlIGd1YXJhbnRlZWQgdG8gYmUg c2VlbiBieSBvdGhlcg0KPiA+ID4gPiA+IGNvcmUNCj4gPiA+ID4gPiA+ID4gPiA+IC0JICogYmVm b3JlIHRoZSBjb3JlIHNlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuDQo+ID4gPiA+ID4g PiA+ID4gPiArCSAqIHJ0ZV9zbXBfd21iKCkgaXMgdG8ga2VlcCB0aGUgb3JkZXIgdGhhdCBkZXZf Z2VuDQo+ID4gPiA+ID4gdXBkYXRlZA0KPiA+ID4gPiA+ID4gPiA+ID4gYmVmb3JlDQo+ID4gPiA+ ID4gPiA+ID4gPiArCSAqIHJlYnVpbGRpbmcgZ2xvYmFsIGNhY2hlLiBUaGVyZWZvcmUsIG90aGVy IGNvcmUgY2FuDQo+ID4gPiA+ID4gPiA+ID4gPiArZmx1c2gNCj4gPiA+ID4gPiB0aGVpcg0KPiA+ ID4gPiA+ID4gPiA+ID4gKwkgKiBsb2NhbCBjYWNoZSBvbiB0aW1lLg0KPiA+ID4gPiA+ID4gPiA+ ID4gIAkgKi8NCj4gPiA+ID4gPiA+ID4gPiA+IC0JKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsN Cj4gPiA+ID4gPiA+ID4gPiA+IC0JREVCVUcoImJyb2FkY2FzdGluZyBsb2NhbCBjYWNoZSBmbHVz aCwgZ2VuPSVkIiwNCj4gPiA+ID4gPiA+ID4gPiA+IC0JICAgICAgc2gtPnNoYXJlX2NhY2hlLmRl dl9nZW4pOw0KPiA+ID4gPiA+ID4gPiA+ID4gIAlydGVfc21wX3dtYigpOw0KPiA+ID4gPiA+ID4g PiA+ID4gKwltbHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gPiA+ ID4gPiA+ID4gPiAgCXJ0ZV9yd2xvY2tfcmVhZF91bmxvY2soJnNoLT5zaGFyZV9jYWNoZS5yd2xv Y2spOw0KPiA+ID4gPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ID4gPiA+ICB9 DQo+ID4gPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiA+ID4gMi4yNS4xDQoNCg==