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 A4D09A0548; Thu, 1 Apr 2021 16:22:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2986614134D; Thu, 1 Apr 2021 16:22:30 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2078.outbound.protection.outlook.com [40.107.220.78]) by mails.dpdk.org (Postfix) with ESMTP id 4C6AC1412BA for ; Thu, 1 Apr 2021 16:22:29 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nHjCdkhffC8ssTbIARrB1nm6vQTQdH+9BcOzvTGd6HI9Yz0K/HQ1g5nOEwkLVqdUOtMQqnJdXAg4CSpq+OOUqsx5BizF5Zvp327bxVwoI5W2y3lTziw/A38kQS2iBLeln/qSKm7vQAYaoQcXEMKIBNmDkiXAv5wyq/BQ0Z4TEjVswvws/+VNUY9UmJgi6VfJPzHTUv7IrpRjun/LmafNNjZfhaqCS4FYfmvwvA8fBC6IA0uB0k/lVG9pTo4RUSEaDDYnGUvt9Ccig/0bLMSsbbO1pvSxqm4cYFhylY6Le9D90Yc361QQnOPE6N9tv/wNNK/USiPeAesEiXf3m6GPKw== 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=5Th6otQcApOP3V35AavrRlV4eUtI8vv2f3JRmPZWvZY=; b=i4baqV1c+gIWmgC2Al7WUbP6yYAg+SKvP3LjC2O64dr+joA++hX02/78c7MI0TtQl3DTx5ZA9H4rhErjxcqyc1uV+Rm4exsvGXDzXUwh4FZPjzyuxisL6tGaDeaLgvgmJYul8pPtVEac+u6R2z6bNW3zZ5cBYcJII4a7LvkJKs5binm3m3azgMKCc5whQdQRiJAvNNA+r8NIKNA/bT6VFhRncnt36t5aI5HsL1x2l7MHYxoe+DLYQGy1Vs1S9ep0eTtPYqM9ZpS3QmM3TgQDYSm05oCH0cm7wOHcxtzKBrW2YIpdslxlKgcU/LMWEJL05EUjdYwkZ4MFBFOMoY54pg== 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=5Th6otQcApOP3V35AavrRlV4eUtI8vv2f3JRmPZWvZY=; b=n935aEnAWYhHOJ8F/hq4T6oOLMhheCsGZmbk/OXJ3jAKMnEL5NKwNN+nfi37btAWdqgAs1V5ruhg+7iM4KrQmnibDpxKMa7/9UPv4hjMGjlF7sgAWKtY9ro00siJ2mUJbvp9GnrL6iYGOPPJ5xKvPadHdYij4PcYiYXgGycqWubZ5CVGqoSZmlBb/nLF098YvNv3Z2drkvBhazME8wQ5BniD7LtkrxmbS6rrr4ZKa/iyCuSAsnvtiOhj0bsK/jaYIAcJbF5FQXWPUOXxeUP1AyKx0ywanfH27a+03q0wiB9/RTOlkwZJGjpOpUYzlY1Jcz+6WIipVRyDmwZfGtuHyg== Received: from DM6PR12MB4987.namprd12.prod.outlook.com (2603:10b6:5:163::31) by DM6PR12MB2987.namprd12.prod.outlook.com (2603:10b6:5:3b::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Thu, 1 Apr 2021 14:22:26 +0000 Received: from DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308]) by DM6PR12MB4987.namprd12.prod.outlook.com ([fe80::f5ce:c5a8:6aec:e308%7]) with mapi id 15.20.3977.033; Thu, 1 Apr 2021 14:22:26 +0000 From: Ori Kam To: "Dumitrescu, Cristian" , Matan Azrad , Li Zhang , Slava Ovsiienko , Shahaf Shuler , "lironh@marvell.com" , "Singh, Jasvinder" , NBU-Contact-Thomas Monjalon , "Yigit, Ferruh" , Andrew Rybchenko , Jerin Jacob , Hemant Agrawal , Ajit Khaparde CC: "dev@dpdk.org" , Raslan Darawsheh , Roni Bar Yanai Thread-Topic: [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API Thread-Index: AQHXG9ThCjWYFO/rFESDEtwHBxgHMKqSGBmAgAI4P4CABmuVQIAAfFaAgAR9upCAAAoHAIAAAfHg Date: Thu, 1 Apr 2021 14:22:26 +0000 Message-ID: References: <20210318085815.804896-1-lizh@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [147.236.145.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 146242ec-8344-495a-22df-08d8f519933a x-ms-traffictypediagnostic: DM6PR12MB2987: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr 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: iw24iPtkRw+M4+XRjiEZfip3hcAQwqKUKv1zka83iT9wO5Ie13xdjGHgjMKEpRtDlgpSo51TRfjbds3nU6AsDCFTz3A8vlzqd3vEZ7L5ZUAcRwWhOOkHf+4bkQ1mee8/zyvhWyNMBbJdS+wU2TAPxDmjD61KQ0otwPSwajRKXCwTW9bTWnFmfLaK0WNxbHvWI2aMIo4M1Qp2wCUqtxBPT2fFF+9nyPTNIOTQOOUm/kQOB67+BwffPQuDuWZrtPy+br+oQ9VglLzQiemi8BavnU7VX1iZTCtzBCvaC1y+8538rXMDcks5dJSSe3VWaqekHTsWbgzDKxXlX+jZzv3WXvfIvfvAW2KqXb+FkmefiP+U7Du/JpFzvO9b6hI4t0nfcNH+opELAK4Z/WUI7dGh0ch5yFtZQ2c0VQXgHshumo3Vs0JMWs8/WRwSzuj8iTXgsh6WgBovLGKEa4kT3FPsoBbPShQfHHIe7edrsFyNpoGUAc5UHTLjuU65kRjZ7TY3yr3IN3ZiF1wL8r0FOH6CjvydIA03YgB3vHhOu8QGGDyGBY2uxLL5jx26zFzNiMxBxPFvbDxTLQSYyrlyfTq815FNtRDTEGQt4Tkx1aoK00+uuzLftWbGWRD0wTcaeBXPSahGcqP3m4z0feVfeBeci6z11NKhJo+i1InUBHirGaFMGppaWe5FPUpNGL+GBELP x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4987.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(396003)(136003)(39860400002)(366004)(921005)(66556008)(107886003)(8676002)(66946007)(30864003)(8936002)(86362001)(66476007)(76116006)(9686003)(38100700001)(7696005)(55016002)(7416002)(110136005)(83380400001)(54906003)(478600001)(4326008)(2906002)(26005)(5660300002)(53546011)(6506007)(316002)(186003)(71200400001)(33656002)(64756008)(66446008)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?c0JTYzNZb256QWxaZnZxV0JEeVJ0RVBoamRhclpFMU5FQngwQmxMT0w0dXdB?= =?utf-8?B?bkNOTEtzYzVtMFBvaHBIakhSeCt2MGZKd3V1Ui9xWlFZWkJRSlZvRng5b3FJ?= =?utf-8?B?eFRsdUMzcFBldTJuWDQwbTE3OTFtcjVPVlJLaC80Skl0d1YrdjVNN0IwYlVL?= =?utf-8?B?TUE2RHh5Y0tVM3BzSkR6TExjcEVMSS9YWDZvZ2QzeHRKcExta2dBOWNhbis3?= =?utf-8?B?eVR1aW4zbWhJOW9FZ25BODNkbzhBWnlqQnlyYnMyTDZhUndMOUFmWW0rR1Rm?= =?utf-8?B?b3E1UEdTejIwWG5Nd0hRMy94M3FCdlZpSEMxeGMyRzZOcUsrNDA5ZUpaaEdj?= =?utf-8?B?OUEyd3I5akZNeXlmRHdVaWVKc1lxcGtYeTJxMnVReEtjbDJqQ0c0RHptNW55?= =?utf-8?B?dHEyanZXVXhNWkt3VTVzV05aYlhjNHo3dng3NTArM2o1bzF0REJUdENRcFJF?= =?utf-8?B?OW1ZWXlmM1dHT1R2T3B5N04wTVFMK3ZFR2ZRVkpjbVZIZGdYai9ZREgrbElk?= =?utf-8?B?VitYQW5YVEg2bC95eld6M0p1S2k0NktjUGFkR3B0L0F1OXRvclNiWDQyVG5J?= =?utf-8?B?UTJDdEJKQk9Fa1lDUjFMTlJkMDk4MmMwdUljQkl4aE1mVFlOKzhlOHEvZ084?= =?utf-8?B?Z3VLekRFamxzUEVqZzE0UzlRSk1MS050WG9CWDRDZjNEcDBhV3ZyU2FabmVP?= =?utf-8?B?UW1VV21YdnFQeDlCVXdoUHNaaHVnVlRkVko2RzdSUmJCa29Mb1Evc0lKNE5M?= =?utf-8?B?dFdSRmtVR3VSaUViY1pnb09kYlhNM2FURlRIQlVyM3VsUTFUVGdqUmNXQTVw?= =?utf-8?B?Zy9xWnZGWWVuMERsdTNibVNDVmxxSG5XQVlWUC9hdWRyY29RSEMxS09UMWdw?= =?utf-8?B?cnJxZWFjYlZxdkJRQzZOUjFQbkN4UEx2RzlCOE5Ib1lwaFN2eWZtTXRpbThh?= =?utf-8?B?N2RNQVJoSEQzVlYyK0liWkp6VEhXRHBmTVUrYldLc1B1Vk5iSVdlZlpJQUQy?= =?utf-8?B?NGRSWlpyL09LbUhmSTBUTGtpVVFnQ0N3TFBZOGVOWGlaRTRQbk53N0J6TWxv?= =?utf-8?B?MHgrbzYzNTFsOUhPQlFJOHN6VlRob1JkNVUySXJITGhxUFErTVlIM2I2SG1C?= =?utf-8?B?NCtVTlNJekNZelp1WUZkYzZoYWcreDJ2MEhmRzhxYXNGUUMySDVaSnpDZy82?= =?utf-8?B?aTk0c3BOSlZpcWwyb3lRSVRDa3daZ1ZPYmtxbHBINTQ2cEJRV0pNZnRKVmJ3?= =?utf-8?B?Tjl2bkdxeWdqY3JUQWVZVzd6QVk3QUxjbVJzemFFTlo0dFdyeEdHVThZeEc4?= =?utf-8?B?RG5HVXhCampBcFJ2YnBBWGdBMnVWQTc3djFLM0ZUS1kzR1M5ejVJTWhUbm03?= =?utf-8?B?SnBzZ3gvK3Z3YkpRLzYybE1BM2lEQk8vK1RKKzQySWVWR2Nzc2twQlBvVno4?= =?utf-8?B?dk91aElPZHh5ZFI0VTltRGUrWHBmY3dhRlJPNnBYTHZ1Mk84cjM2M2dEUFZO?= =?utf-8?B?R2Zvd1o4ang0UXEwNGZDUkNaUjdSSWQ1WnloT2dMSUtnSzdqTUFYRXBEcmo0?= =?utf-8?B?cE9lQmR4VU1GQlgxT2NhT3VNMFN3Ym8zbEU5Vi9yTlowUFBRV2VKTzJCbmM1?= =?utf-8?B?R2JEbjRTUVNOS2VockNaOHYza1UwekVBeUZROXdnTnpEanFBeVo1QW15Rkxj?= =?utf-8?B?ajI5UFIzTkFlQ1pPSmh5YTdScWxucVlhRHNwYlZtU0w2TkdtV280V3BwY3pC?= =?utf-8?Q?YvCpYiFuUhzftsqgKb3Z279nnkFbbiwiDEWdIqc?= 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: DM6PR12MB4987.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 146242ec-8344-495a-22df-08d8f519933a X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Apr 2021 14:22:26.4014 (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: RfZl4l6BTXw/N4jYtM7uZO/ReiLCZJTMzXb4//FUABgcSzM5gWjSWQFPDmhJJnhUn4siMRYqT+/6qyHmxtwknw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2987 Subject: Re: [dpdk-dev] [PATCH 1/2] [RFC]: ethdev: add pre-defined meter policy API 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" SGkgQ3Jpc3RpYW4sDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBE dW1pdHJlc2N1LCBDcmlzdGlhbiA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+IA0K PiBIaSBPcmksDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTog T3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPiBIaSBDcmlzdGlhbiwNCj4gPg0KPiA+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IER1bWl0cmVzY3UsIENyaXN0 aWFuIDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNvbT4NCj4gPiA+IEhpIE9yaSwNCj4gPiA+ DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE9yaSBL YW0gPG9yaWthQG52aWRpYS5jb20+DQo+ID4gPiA+IEhpIEFsbCwNCj4gPiA+ID4NCj4gPiA+ID4g PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IE1hdGFuIEF6cmFk IDxtYXRhbkBudmlkaWEuY29tPg0KPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMS8yXSBb UkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmluZWQgbWV0ZXIgcG9saWN5DQo+ID4gQVBJDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBIaSBDcmlzdGlhbg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmsg eW91IGZvciB5b3VyIGltcG9ydGFudCByZXZpZXchDQo+ID4gPiA+ID4gSSBhZ3JlZSB3aXRoIGFs bCB5b3VyIGNvbW1lbnRzIGV4Y2VwdCBvbmUsIHBsZWFzZSBzZWUgaW5saW5lLg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gRnJvbTogRHVtaXRyZXNjdSwgQ3Jpc3RpYW4NCj4gPiA+ID4gPiA+IEhpIExp IGFuZCBNYXRhbiwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGFuayB5b3UgZm9yIHlvdXIg cHJvcG9zYWwsIHNvbWUgY29tbWVudHMgYmVsb3cuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g SSBhbSBhbHNvIGFkZGluZyBKZXJpbiBhbmQgSGVtYW50IHRvIHRoaXMgdGhyZWFkLCBhcyB0aGV5 IGFsc28NCj4gPiA+IHBhcnRpY2lwYXRlZA0KPiA+ID4gPiBpbg0KPiA+ID4gPiA+ID4gdGhlIGRl ZmluaXRpb24gb2YgdGhlIHJ0ZV9tdHIgQVBJIGluIDIwMTcuIEFsc28gQWppdCBleHByZXNzZWQg c29tZQ0KPiA+ID4gPiBpbnRlcmVzdCBpbg0KPiA+ID4gPiA+IGENCj4gPiA+ID4gPiA+IHByZXZp b3VzIGVtYWlsLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogTGkgWmhhbmcgPGxpemhAbnZpZGlhLmNvbT4N Cj4gPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDE4LCAyMDIxIDg6NTggQU0NCj4g PiA+ID4gPiA+ID4gVG86IGRla2VscEBudmlkaWEuY29tOyBvcmlrYUBudmlkaWEuY29tOw0KPiA+ IHZpYWNoZXNsYXZvQG52aWRpYS5jb207DQo+ID4gPiA+ID4gPiA+IG1hdGFuQG52aWRpYS5jb207 IHNoYWhhZnNAbnZpZGlhLmNvbTsgbGlyb25oQG1hcnZlbGwuY29tOw0KPiA+IFNpbmdoLA0KPiA+ ID4gPiA+ID4gPiBKYXN2aW5kZXIgPGphc3ZpbmRlci5zaW5naEBpbnRlbC5jb20+OyBUaG9tYXMg TW9uamFsb24NCj4gPiA+ID4gPiA+ID4gPHRob21hc0Btb25qYWxvbi5uZXQ+OyBZaWdpdCwgRmVy cnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4gPiA+ID4gQW5kcmV3DQo+ID4gPiA+ID4g PiA+IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5YmNoZW5rb0Bva3RldGxhYnMucnU+OyBEdW1pdHJlc2N1 LA0KPiA+IENyaXN0aWFuDQo+ID4gPiA+ID4gPiA+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVs LmNvbT4NCj4gPiA+ID4gPiA+ID4gQ2M6IGRldkBkcGRrLm9yZzsgcmFzbGFuZEBudmlkaWEuY29t OyByb25pYmFAbnZpZGlhLmNvbQ0KPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggMS8yXSBb UkZDXTogZXRoZGV2OiBhZGQgcHJlLWRlZmluZWQgbWV0ZXIgcG9saWN5DQo+ID4gQVBJDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEN1cnJlbnRseSwgdGhlIGZsb3cgbWV0ZXIgcG9saWN5 IGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgYWN0aW9ucw0KPiA+IHBlcg0KPiA+ID4gPiA+ID4g PiBjb2xvcjsgYWxzbyB0aGUgYWxsb3dlZCBhY3Rpb24gdHlwZXMgcGVyIGNvbG9yIGFyZSB2ZXJ5 IGxpbWl0ZWQuDQo+ID4gPiA+ID4gPiA+IEluIGFkZGl0aW9uLCB0aGUgcG9saWN5IGNhbm5vdCBi ZSBwcmUtZGVmaW5lZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRHVlIHRvIHRoZSBn cm93aW5nIGluIGZsb3cgYWN0aW9ucyBvZmZsb2FkIGFiaWxpdGllcyB0aGVyZSBpcyBhDQo+ID4g PiA+ID4gPiA+IHBvdGVudGlhbCBmb3IgdGhlIHVzZXIgdG8gdXNlIHZhcmlldHkgb2YgYWN0aW9u cyBwZXIgY29sb3IgZGlmZmVyZW50bHkuDQo+ID4gPiA+ID4gPiA+IFRoaXMgbmV3IG1ldGVyIHBv bGljeSBBUEkgY29tZXMgdG8gYWxsb3cgdGhpcyBwb3RlbnRpYWwgaW4gdGhlIG1vc3QNCj4gPiA+ ID4gPiA+ID4gZXRoZGV2IGNvbW1vbiB3YXkgdXNpbmcgcnRlX2Zsb3cgYWN0aW9uIGRlZmluaXRp b24uDQo+ID4gPiA+ID4gPiA+IEEgbGlzdCBvZiBydGVfZmxvdyBhY3Rpb25zIHdpbGwgYmUgcHJv dmlkZWQgYnkgdGhlIHVzZXIgcGVyIGNvbG9yIGluDQo+ID4gPiA+ID4gPiA+IG9yZGVyIHRvIGNy ZWF0ZSBhIG1ldGVyIHBvbGljeS4NCj4gPiA+ID4gPiA+ID4gSW4gYWRkaXRpb24sIHRoZSBBUEkg Zm9yY2VzIHRvIHByZS1kZWZpbmUgdGhlIHBvbGljeSBiZWZvcmUgdGhlDQo+ID4gbWV0ZXJzDQo+ ID4gPiA+ID4gPiA+IGNyZWF0aW9uIGluIG9yZGVyIHRvIGFsbG93IHNoYXJpbmcgb2Ygc2luZ2xl IHBvbGljeSB3aXRoIG11bHRpcGxlDQo+ID4gPiA+ID4gPiA+IG1ldGVycyBlZmZpY2llbnRseS4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gbWV0ZXJfcG9saWN5X2lkIGlzIGFkZGVkIGlu dG8gc3RydWN0IHJ0ZV9tdHJfcGFyYW1zLg0KPiA+ID4gPiA+ID4gPiBTbyB0aGF0IGl0IGNhbiBn ZXQgdGhlIHBvbGljeSBkdXJpbmcgdGhlIG1ldGVycyBjcmVhdGlvbi4NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gUG9saWN5IGlkIDAgaXMgZGVmYXVsdCBwb2xpY3kuIEFjdGlvbiBwZXIg Y29sb3IgYXMgYmVsb3c6DQo+ID4gPiA+ID4gPiA+IGdyZWVuIC0gbm8gYWN0aW9uLCB5ZWxsb3cg LSBubyBhY3Rpb24sIHJlZCAtIGRyb3ANCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQWxs b3cgY29sb3JpbmcgdGhlIHBhY2tldCB1c2luZyBhIG5ldyBydGVfZmxvd19hY3Rpb25fY29sb3Ig YXMNCj4gPiBjb3VsZA0KPiA+ID4gPiA+ID4gPiBiZSBkb25lIGJ5IHRoZSBvbGQgcG9saWN5IEFQ SSwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgcHJvcG9zYWwg ZXNzZW50aWFsbHkgaXMgdG8gZGVmaW5lIHRoZSBtZXRlciBwb2xpY3kgYmFzZWQgb24NCj4gPiBy dGVfZmxvdw0KPiA+ID4gPiA+IGFjdGlvbnMNCj4gPiA+ID4gPiA+IHJhdGhlciB0aGFuIGEgcmVk dWNlZCBhY3Rpb24gc2V0IGRlZmluZWQgc3BlY2lmaWNhbGx5IGp1c3QgZm9yIG1ldGVyDQo+ID4g b2JqZWN0Lg0KPiA+ID4gPiA+IFRoaXMNCj4gPiA+ID4gPiA+IG1ha2VzIHNlbnNlIHRvIG1lLg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhlIG5leHQgQVBJIGZ1bmN0aW9uIHdlcmUgYWRk ZWQ6DQo+ID4gPiA+ID4gPiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfYWRkDQo+ID4gPiA+ID4g PiA+IC0gcnRlX210cl9tZXRlcl9wb2xpY3lfZGVsZXRlDQo+ID4gPiA+ID4gPiA+IC0gcnRlX210 cl9tZXRlcl9wb2xpY3lfdXBkYXRlDQo+ID4gPiA+ID4gPiA+IC0gcnRlX210cl9tZXRlcl9wb2xp Y3lfdmFsaWRhdGUNCj4gPiA+ID4gPiA+ID4gVGhlIG5leHQgc3RydWN0IHdhcyBjaGFuZ2VkOg0K PiA+ID4gPiA+ID4gPiAtIHJ0ZV9tdHJfcGFyYW1zDQo+ID4gPiA+ID4gPiA+IC0gcnRlX210cl9j YXBhYmlsaXRpZXMNCj4gPiA+ID4gPiA+ID4gVGhlIG5leHQgQVBJIHdhcyBkZWxldGVkOg0KPiA+ ID4gPiA+ID4gPiAtIHJ0ZV9tdHJfcG9saWNlcl9hY3Rpb25zX3VwZGF0ZQ0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMaSBaaGFuZyA8bGl6aEBudmlkaWEuY29t Pg0KPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4gIGxpYi9saWJydGVfZXRoZGV2L3J0 ZV9mbG93LmggICAgICAgfCAgMTggKysrKw0KPiA+ID4gPiA+ID4gPiAgbGliL2xpYnJ0ZV9ldGhk ZXYvcnRlX210ci5jICAgICAgICB8ICA1NSArKysrKysrKy0tDQo+ID4gPiA+ID4gPiA+ICBsaWIv bGlicnRlX2V0aGRldi9ydGVfbXRyLmggICAgICAgIHwgMTY2ICsrKysrKysrKysrKysrKysrKysr LS0tLQ0KPiA+IC0tLS0tDQo+ID4gPiA+ID4gPiA+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfbXRy X2RyaXZlci5oIHwgIDQ1ICsrKysrKy0tDQo+ID4gPiA+ID4gPiA+ICA0IGZpbGVzIGNoYW5nZWQs IDIxMCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiA+ ID4gPiA+ID4gYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oIGluZGV4IDY2OWU2NzdlOTEu LjVmMzhhYTdmYTQNCj4gPiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4gPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9y dGVfZmxvdy5oDQo+ID4gPiA+ID4gPiA+IEBAIC0zMSw2ICszMSw3IEBADQo+ID4gPiA+ID4gPiA+ ICAjaW5jbHVkZSA8cnRlX2VjcHJpLmg+DQo+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8cnRlX21i dWYuaD4NCj4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxydGVfbWJ1Zl9keW4uaD4NCj4gPiA+ID4g PiA+ID4gKyNpbmNsdWRlIDxydGVfbWV0ZXIuaD4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ID4gPiA+ID4gPiAgZXh0ZXJuICJDIiB7DQo+ID4g PiA+ID4gPiA+IEBAIC0yMjM2LDYgKzIyMzcsMTMgQEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlw ZSB7DQo+ID4gPiA+ID4gPiA+ICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX21v ZGlmeV9maWVsZC4NCj4gPiA+ID4gPiA+ID4gICAgICAgICovDQo+ID4gPiA+ID4gPiA+ICAgICAg IFJURV9GTE9XX0FDVElPTl9UWVBFX01PRElGWV9GSUVMRCwNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPiArICAgICAvKioNCj4gPiA+ID4gPiA+ID4gKyAgICAgICogQ29sb3IgdGhlIHBh Y2tldCB0byByZWZsZWN0IHRoZSBtZXRlciBjb2xvciByZXN1bHQuDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAqDQo+ID4gPiA+ID4gPiA+ICsgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X2NvbG9yLg0KPiA+ID4gPiA+ID4gPiArICAgICAgKi8NCj4gPiA+ID4gPiA+ID4gKyAgICAgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfQ09sT1IsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVHlwbyBo ZXJlLCBpdCBzaG91bGQgYmUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQ09MT1IuDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPiBXaHkgZG8gd2UgbmVlZCB0aGlzIGFjdGlvbj8NCj4gPiA+DQo+ ID4gPiBXZSBuZWVkIHRoaXMgbmV3IHByb3Bvc2VkIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPTE9S IGFjdGlvbiB0bw0KPiA+IHNldCB0aGUNCj4gPiA+IHBhY2tldCBjb2xvciBpbiB0aGUgcGFja2V0 IG1idWYgKGkuZS4gaW4gdGhlIG1idWY6OnNjaGVkOmNvbG9yIGZpZWxkKSBpbiBvcmRlcg0KPiA+ IHRvDQo+ID4gPiB0ZWxsIHRoZSBsYXRlciBzdGFnZXMgb2YgdGhlIHBpcGVsaW5lIHdoYXQgdGhl IHBhY2tldCBjb2xvciBpcy4NCj4gPiA+DQo+ID4gPiA+IGlmIGl0IGlzIHRvIHNhdmUgdGhlIGNv bG9yIGl0IHNob3VsZCBiZSBkb25lIGJ5IHVzaW5nIG1hcmsvbWV0YWRhdGENCj4gPiA+DQo+ID4g PiBBcyBzdGF0ZWQgaW4gaXRzIGRlc2NyaXB0aW9uLCB0aGUgIFJURV9GTE9XX0FDVElPTl9UWVBF X01BUksgYWN0aW9uIElzDQo+ID4gPiBzZXR0aW5nIHRoZSBtYnVmOjpoYXNoLmZkaXIuaGkgZmll bGQsIHdoaWNoIGlzIHVzZWQgZm9yIGEgZGlmZmVyZW50IHB1cnBvc2UNCj4gPiB0aGF0IGlzDQo+ ID4gPiB1bnJlbGF0ZWQgdG8gdGhlIHBhY2tldCBjb2xvciwgd2hpY2ggaGFzIGl0cyBvd24gZmll bGQgd2l0aGluIHRoZSBtYnVmLg0KPiA+ID4NCj4gPg0KPiA+IEFncmVlLA0KPiA+DQo+ID4gPiA+ IE9yIGJ5IHRoZSBhY3Rpb24gb2YgbWV0ZXIuDQo+ID4gPg0KPiA+ID4gVGhlIG5ldyBwcm9wb3Nl ZCBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT0xPUiBhY3Rpb24gaXMgaW5kZWVkIGFuDQo+ID4gYWN0 aW9uDQo+ID4gPiBvZiB0aGUgbWV0ZXIgYW5kIG1ldGVyIG9ubHksIHJpZ2h0Pw0KPiA+ID4NCj4g PiA+IEZvciBleGFtcGxlIHlvdSBjYW4gc2VlDQo+ID4gPiA+IFJURV9GTE9XX0FDVElPTl9UWVBF X1NFQ1VSSVRZDQo+ID4gPiA+IFdoaWNoIGlmIGV4aXN0IHNhdmVzIHRoZSBzZXNzaW9uIGlkIHRv IGEgZGVkaWNhdGVkIG1idWYgZmllbGQuDQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gVGhlIG1ldGVy IHByb2Nlc3NpbmcgYW5kIGFjdGlvbiB0YWtlIHBsYWNlIGluZGVwZW5kZW50bHkgb2YgdGhlIHNl Y3VyaXR5DQo+ID4gQVBJOiBpdA0KPiA+ID4gY2FuIGJlIGVuYWJsZWQgd2hlbiB0aGUgc2VjdXJp dHkgQVBJIGlzIGRpc2FibGVkIGFuZCBpcyBub3QgY29uZGl0aW9uZWQgaW4NCj4gPiBhbnkNCj4g PiA+IHdheSBieSB0aGUgc2VjdXJpdHkgQVBJLiBUbyBiZSBob25lc3QsIEkgZG9uJ3QgdW5kZXJz dGFuZCB0aGUgY29ubmVjdGlvbg0KPiA+IHdpdGgNCj4gPiA+IHRoZSBzZWN1cml0eSBBUEkgdGhh dCB5b3UgYXJlIHRyeWluZyB0byBtYWtlIGhlcmUuDQo+ID4gPg0KPiA+DQo+ID4gU29ycnkgZm9y IG5vdCBiZWluZyBjbGVhciwNCj4gPiBJIGRpZG7igJl0IG1lYW4gdXNlIHRoZSBzZWN1cml0eSBh Y3Rpb24sIHdoYXQgSSBtZWFudCBpcyBqdXN0IGxpa2UgdGhlIHNlY3VyaXR5DQo+ID4gYWN0aW9u DQo+ID4gd2hpY2ggd2hlbiBnaXZlbiwgaXQgd2lsbCBzYXZlcyB0aGUgc2Vzc2lvbiBhbmQgcGFz cyBpdCB0byB0aGUgU1cgaW4gZGVkaWNhdGVkDQo+ID4gbWVtYmVyIGluIHRoZQ0KPiA+IG1idWYs IHRoZSBzYW1lIHdpdGggbWV0ZXIgaWYgdGhlIG1ldGVyIGFjdGlvbiBpcyBwcmVzZW50IHRoZW4N Cj4gPiB0aGUgUE1EIHNob3VsZCBrbm93IHRvIHNhdmUgdGhlIGNvbG9yIHZhbHVlIGFuZCBleHRy YWN0IGl0IHRvIHRoZSBjb3JyZWN0DQo+ID4gbWJ1ZiBtZW1iZXIuDQo+ID4NCj4gPiBEb2VzIHRo YXQgbWFrZSBzZW5zZT8NCj4gPg0KPiANCj4gWWVzLCBJIGRvZXMsIEkgZ3Vlc3Mgd2UgYXJlIHVz aW5nIHRoZSBzYW1lIHByaW5jaXBsZSBmb3IgdGhlIHByb3Bvc2VkDQo+IFJURV9GTE9XX0FDVElP Tl9UWVBFX0NPTE9SIGFjdGlvbiwgcmlnaHQ/DQo+IA0KDQpKdXN0IHRvIG1ha2Ugc3VyZSB3ZSBh cmUgdGFsa2luZyBhYm91dCB0aGUgc2FtZSB0aGluZy4NCkkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxk IGFkZCBhbnkgbmV3IGFjdGlvbiBmb3IgdGhpcy4NCk15IGlkZWEgaXMgdGhhdCB3aGVuIHRoZSBQ TUQgd2lsbCBzZWUgdGhlIGFjdGlvbiBSVEVfRkxPV19BQ1RJT05fVFlQRV9NRVRFUiwNCml0IHdp bGwgc2VuZCB0aGUgdHJhZmZpYyB0byB0aGUgbWV0ZXIsIGFuZCB3aWxsIGFsc28gaW4gdGhlIG9m IGNhc2UgdGhlIHBhY2tldCBiZWluZw0Kcm91dGVkIHRvIHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVw ZGF0ZSB0aGUgY29sb3IgbWVtYmVyIGluIHRoZSBtYnVmIHdpdGggY29sb3IgdmFsdWUuDQoNCj4g Pg0KPiA+ID4gPiA+ID4gPiAgfTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8qKg0K PiA+ID4gPg0KPiA+ID4gPiBbU25pcF0NCj4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgc3VnZ2VzdCB5 b3UgZG8gbm90IHJlZHVuZGFudGx5IHNwZWNpZnkgdGhlIHZhbHVlIG9mIHRoZSBkZWZhdWx0DQo+ ID4gcG9saWN5IElEDQo+ID4gPiA+IGluDQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiBjb21t ZW50LiBSZXBsYWNlIGJ5ICJEZWZhdWx0IHBvbGljeSBJRC4iDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICogQWN0aW9uIHBlciBjb2xvciBhcyBiZWxvdzoNCj4gPiA+ID4gPiA+ID4gKyAq IGdyZWVuIC0gbm8gYWN0aW9uLCB5ZWxsb3cgLSBubyBhY3Rpb24sIHJlZCAtIGRyb3ANCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGlzIGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbWUgYXMgdGhl IGRlZmF1bHQgcG9saWN5LiBUaGUgZGVmYXVsdA0KPiA+IHBvbGljeQ0KPiA+ID4gPiA+IHNob3Vs ZA0KPiA+ID4gPiA+ID4gYmUgIm5vIGNoYW5nZSIsIGkuZS4gZ3JlZW4gLT4gZ3JlZW4gKG5vIGNo YW5nZSksIHllbGxvdyAtPiB5ZWxsb3cgKG5vDQo+ID4gPiA+IGNoYW5nZSksDQo+ID4gPiA+ID4g PiByZWQgLT4gcmVkIChubyBjaGFuZ2UpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ2FuIHlvdSBl eHBsYWluIHdoeSBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8geW91Pw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gTWV0ZXIgd2l0aCAibm8gY2hhbmdlIiBmb3IgYWxsIGNvbG9ycyBoYXMgbm8gZWZmZWN0 IG9uIHRoZSBwYWNrZXRzIHNvIGl0DQo+ID4gaXMNCj4gPiA+ID4gPiByZWR1bmRhbnQgYWN0aW9u IHdoaWNoIGp1c3QgY29zdHMgcGVyZm9ybWFuY2UgYW5kIHJlc291cmNlcyAtDQo+ID4gcHJvYmFi bHkNCj4gPiA+ID4gbmV2ZXINCj4gPiA+ID4gPiBiZSB1c2VkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gVGhlIG1vc3QgY29tbW9uIHVzYWdlIGZvciBtZXRlciBpcyB0byBkcm9wIGFsbCB0aGUgcGFj a2V0cyBjb21lDQo+ID4gYWJvdmUNCj4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gZGVmaW5lZCByYXRl IGxpbWl0IC0gc28gaXQgbWFrZXMgc2Vuc2UgdG8gdGFrZSB0aGlzIGJlaGF2aW9yIGFzIGRlZmF1 bHQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSSBzdWdnZXN0IHdlIGF2b2lk IHRoZSAibm8gYWN0aW9uIiBzdGF0ZW1lbnQsIGFzIGl0IG1pZ2h0IGJlDQo+ID4gY29uZnVzaW5n Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTWF5YmUgImRvIG5vdGhpbmciIGlzIGJldHRlcj8NCj4g PiA+ID4gPg0KPiA+ID4gPiBNYXliZSBwYXNzdGhyb3VnaD8gT3IgaW4gcnRlX2Zsb3cgcGFzc3Ro cnUNCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBObywgd2UgbmVlZCB0byBzYXZlIHRoZSBwYWNrZXQg Y29sb3IgaW4gdGhlIHBhY2tldCBtYnVmDQo+ID4gKG1idWY6OnNjaGVkOmNvbG9yKSwNCj4gPiA+ IGFuZCB0aGUgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfUEFTU1RIUlUgYWN0aW9uIGlzIG5vdCBkb2lu ZyB0aGlzLg0KPiA+ID4NCj4gPg0KPiA+IFBsZWFzZSBzZWUgbXkgY29tbWVudCBhYm92ZS4NCj4g PiBUaGUgc2F2aW5nIG9mIGNvbG9yIHdpbGwgYmUgZG9uZSBhdXRvbWF0aWNhbGx5Lg0KPiANCj4g VGhlICJhdXRvbWF0aWNhbGx5IiBwYXJ0IG1pZ2h0IGJlIHRoZSBwcm9ibGVtIGZvciBzb21lIGFw cHMsIGxpa2UgdGhlIG9uZQ0KPiBNYXRhbiBpcyBkZXNjcmliaW5nLg0KPiANCj4gSWYgZm9yIGV4 YW1wbGUgYWxsIHRoYXQgdXNlciB3YW50cyBpcyB0byBkcm9wIGFsbCB0aGUgUkVEIHBhY2tldHMg aW1tZWRpYXRlbHkNCj4gd2l0aCBubyBuZWVkIHRvIGNvbnNpZGVyIHRoZSBwYWNrZXQgY29sb3Ig bGF0ZXIgaW4gdGhlIENQVSBhcHAsIHRoZW4gdGhlIHVzZXINCj4gcG9saWN5IGlzIHNpbXBseTog W0dSRUVOID0+IHBhc3MtdGhyb3VnaDsgWUVMTE9XID0+IHBhc3MtdGhyb3VnaDsgUkVEID0+DQo+ IGRyb3BdIHdpdGggbm8gbmVlZCB0byB1c2UgdGhlIFJURV9GTE9XX0FDVElPTl9UWVBFX0NPTE9S IGFjdGlvbiB0byBzZXQNCj4gdGhlIGNvbG9yIGluIHRoZSBtYnVmOjpzY2hlZDo6Y29sb3IgZmll bGQsIGFzIHRoZSBhcHAgZG9lcyBub3QgbmVlZCB0byBrbm93IHRoZQ0KPiBjb2xvci4gVGhpcyBp cyB0aGUgdXNlLWNhc2UgZGVzY3JpYmVkIGJ5IE1hdGFuLg0KPiANCj4gSWYgZm9yIGV4YW1wbGUg dGhlIHVzZXIgdXRpbGl6ZXMgdGhlIHBhY2tldCBjb2xvciBvbiB0aGUgQ1BVIGFwcCBhcyB0aGUg cGFja2V0DQo+IGRyb3AgcHJpb3JpdHkgaW4gY2FzZSBvZiBjb25nZXN0aW9uLCB0aGVuIHRoZSB1 c2VyIHBvbGljeSBpcyBzaW1wbHk6IFtHUkVFTiA9Pg0KPiBjb2xvcjsgWUVMTE9XID0+IGNvbG9y OyBSRUQgPT4gY29sb3JdLCBzbyB0aGUNCj4gUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQ09MT1IgYWN0 aW9uIGlzIHVzZWQgdG8gc2V0IHRoZSBjb2xvciBpbiB0aGUNCj4gbWJ1Zjo6c2NoZWQ6Y29sb3Ig ZmllbGQuIFRoaXMgaXMgdGhlIHVzZS1jYXNlIEkgZGVzY3JpYmVkIGluIGVhcmxpZXIgZW1haWxz Lg0KPiANCj4gU28gaXQgaXMgcHJvYmFibHkgdGhlIGJlc3Qgb3B0aW9uIHRvIGhhdmUgdGhlIHVz ZXIgdG8gZXhwbGljaXRseSBzZXQgLyBub3Qgc2V0IHRoZQ0KPiBSVEVfRkxPV19BQ1RJT05fVFlQ RV9DT0xPUiBhY3Rpb24gYXMgb3Bwb3NlZCB0byBoYXZlIHRoaXMgYWN0aW9uIGFsd2F5cw0KPiBl eGVjdXRlZCBhdXRvbWF0aWNhbGx5L2ltcGxpY2l0bHkuDQo+IA0KPiBNYWtlcyBzZW5zZT8NCj4g DQoNCkkgdGhpbmsgSSB1bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBzYXlpbmcgYnV0IEkgZG9uJ3Qg YWdyZWUsDQpGaXJzdCBJIGFzc3VtZSB0aGF0IHRoZSBtZXRlciBjb2xvciBpcyBkeW5hbWljIGZp ZWxkLCBpZiBub3QgdGhlDQphbnN3ZXIgd2lsbCBuZWVkIHNvbWUgc21hbGwgY2hhbmdlLg0KbGV0 cyBsb29rIGF0IHRoZSB1c2UgY2FzZXM6DQoxLiBUaGUgZmlyc3QgY2FzZSBvZiBkaXJlY3QgZHJv cDoNClRoZSBQTUQgIHNlZXMgdGhhdCB0aGUgZHluYW1pYyBjb2xvciB3YXMgbm90IHJlZ2lzdGVy ZWQgc28gaXQga25vd3MNCm5vdCB0byBzYW1lIG9yIHVwZGF0ZSB0aGUgZmllbGQuDQoyLiBTZWNv bmQgY2FzZSB0aGUgYXBwIHJlZ2lzdGVyIHRoZSBjb2xvciBmaWVsZCBhbmQgdGhlIHBtZA0Ka25v d3MgdGhhdCBpdCBuZWVkcyB0byBzYXZlIGl0IHdoZW4gbWV0ZXIgYWN0aW9uIHdhcyBzZXQuDQoN CkluIGFueSBjYXNlIHRoZSB3b3JzdCB0aGF0IHdpbGwgaGFwcGVuIGlzIHRoYXQgdGhlIFBNRCB3 aWxsIHN0b3JlIGEgdmFsdWUgdGhhdA0Kd2lsbCBub3QgYmUgY2hlY2tlZC4NCg0KQWxzbyBhZGRp bmcgYSBjb2xvciBhY3Rpb24gbWFrZXMgc2Vuc2Ugb25seSBpZiBJIGNhbiBtYXRjaCBvbiBpdCBs YXRlciBvbiwgYW5kIGZvciB0aGF0DQp3ZSBoYXZlIHJlZ2lzdGVycyB0YWdzLG1hcmsgYW5kIG1l dGFkYXRhLg0KDQpBbm90aGVyIGFwcHJvYWNoIGlzIHRvIHRvdGFsbHkgcmVtb3ZlIHRoZSBwb2xp Y3kgYW5kIGp1c3QgY3JlYXRlIG10cl9jb2xvcl9pdGVtLA0KVGhlbiB3aGVuIGFwcGxpY2F0aW9u IGlzc3VlcyB0aGUgbWV0ZXIgYWN0aW9uIHRoZSBjb2xvciB3aWxsIGJlIHNldCB0byB0aGUgY29s b3JfaXRlbQ0KV2hpY2ggdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgYWJsZSB0byBtYXRjaCBvbi4g DQpiYXNpY2FsbHkgdGhlIGFwcGxpY2F0aW9uIHdpbGwgY3JlYXRlIHRoZSBwb2xpY3kgdXNpbmcg cnRlIGZsb3cgZ3JvdXAgd2l0aCBydWxlcyB0aGF0IG1hdGNoZXMNCnRoZSBjb2xvci4NCg0KVGhp cyBpcyB0aGUgd2F5IEkgcmVhbGx5IHRoaW5rIGl0IHNob3VsZCBiZSBkb25lLCBidXQgd2UgY2Fu IG1vdmUgdG8gdGhpcyB3YXkgbGF0ZXIgb24uDQoNCiANCg0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgKiBJdCBjYW4gYmUgdXNlZCB3aXRob3V0IGNyZWF0aW5nIGl0IGJ5IHRoZQ0KPiA+ IHJ0ZV9tdHJfbWV0ZXJfcG9saWN5X2FkZA0KPiA+ID4gPiA+ID4gPiBmdW5jdGlvbi4NCj4gPiA+ ID4gPiA+ID4gKyAqLw0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0LA0KPiA+ID4gPiBP cmkNCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gQ3Jpc3RpYW4NCj4gPg0KPiA+IEJlc3Qs DQo+ID4gT3JpDQo+IA0KPiBSZWdhcmRzLA0KPiBDcmlzdGlhbg0KDQpCZXN0LA0KT3JpDQo=