From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E3EA9A0566; Tue, 10 Mar 2020 18:00:04 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3FF601BFF9; Tue, 10 Mar 2020 18:00:04 +0100 (CET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2071.outbound.protection.outlook.com [40.107.22.71]) by dpdk.org (Postfix) with ESMTP id BFE8D1BFF7 for ; Tue, 10 Mar 2020 18:00:02 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dLTO/jU7E0gAEdbBq9IrjAD125QX04jRVdTEYUonY7LmdLAbvlRKxBhf+I2eVrnP8dluXHy8XpJd1gmGzIQ5v736PXCiVsNHts7ux029B9/nndE8979FVOUWskSpMIxrh91ODnNXfACkvSAtFz31WEEE2nnyj8o1q96YRMckriTt3aAURYE8CUchWHAAm5GJdRxPrRIe14pi0LSO2hXR10k9T/C1bu/iWwjzciWZl7tZbFkokxxWiK4IrxGQmrKBAg/F9IzyQ7gaOGjTU3PwUyxknXxn5j8NIpwa5iQHDRjQOBgLnBNidjb6jIKUPAPturBh8Fkyyu46vR/YVJ0pJQ== 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=nzHCEB7HVOG139inUlXxkMkp3G/IqkEBCZwB2UWd0Rk=; b=lqqG+IV9a6PWECSiJS8iQ2qSP2zmEQybGpi+kMIbcAexeGPbyFwfAuuwBVlqB1e6dy19BEbNFiJiWZbuaRTwiL8kPdda/3y+d1aL8kZn4xQN+f8XagWyyJ/rOttJdqSj8lxjr30R1xOvQ5lOeFoxZINm4L+VyCs6TWEyZzoWS8ScCrPSqI2fMjwqoO3+Ans5+O6ylfuDsnEsCFRwhj+FBnNErgudxpr7HJTbRRPMXQmhCon67S2sgIAN8xIV+2/G5C7+NgbCFTtVpduAlfD3fffxMDleodkf7tEMMKKWn1vSTG5IySo0FWYShs4K6Zv1pJQx53VX3vdVHe0akr46IA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nzHCEB7HVOG139inUlXxkMkp3G/IqkEBCZwB2UWd0Rk=; b=sdXtfCwWg4iXOvRxHUCfd7O9tIU+b3uZAOJTR+6nLFdQUsV9WrlWztVmQqtXJzkwAT3bjWCMz2TMQZ4FQkg3pBrQ7fn3soW1hUS8zPURzh7PaCCDGASqLL4MaJHo0P4Gruvzo7MomU+vCQxK3NSL02I2UySCq/axkY6ErCsu4xE= Received: from AM6PR05MB5176.eurprd05.prod.outlook.com (20.177.196.158) by AM6PR05MB5571.eurprd05.prod.outlook.com (20.177.189.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.17; Tue, 10 Mar 2020 17:00:01 +0000 Received: from AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::80e9:7eb9:e770:941d]) by AM6PR05MB5176.eurprd05.prod.outlook.com ([fe80::80e9:7eb9:e770:941d%7]) with mapi id 15.20.2793.018; Tue, 10 Mar 2020 17:00:01 +0000 From: Ori Kam To: Pavan Nikhilesh Bhagavatula , Jerin Jacob Kollanukkaran , "xiang.w.wang@intel.com" CC: "dev@dpdk.org" , Shahaf Shuler , "hemant.agrawal@nxp.com" , Opher Reviv , Alex Rosenbaum , Dovrat Zifroni , Prasun Kapoor , "nipun.gupta@nxp.com" , "bruce.richardson@intel.com" , "yang.a.hong@intel.com" , "harry.chang@intel.com" , "gu.jian1@zte.com.cn" , "shanjiangh@chinatelecom.cn" , "zhangy.yun@chinatelecom.cn" , "lixingfu@huachentel.com" , "wushuai@inspur.com" , "yuyingxia@yxlink.com" , "fanchenggang@sunyainfo.com" , "davidfgao@tencent.com" , "liuzhong1@chinaunicom.cn" , "zhaoyong11@huawei.com" , "oc@yunify.com" , "jim@netgate.com" , "hongjun.ni@intel.com" , "j.bromhead@titan-ic.com" , "deri@ntop.org" , "fc@napatech.com" , "arthur.su@lionic.com" , Thomas Monjalon Thread-Topic: [dpdk-dev] [RFC v6] regexdev: introduce regexdev subsystem Thread-Index: AQHV9sdcdMFlu1KoGkKsbOahinpZ8KhB1coAgAApxrCAAAcPgIAAAbjA Date: Tue, 10 Mar 2020 17:00:01 +0000 Message-ID: References: <20190627155036.56940-1-jerinj@marvell.com> <1583836353-42867-1-git-send-email-orika@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [185.175.35.255] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 83361c77-cd82-423a-96ee-08d7c514791a x-ms-traffictypediagnostic: AM6PR05MB5571:|AM6PR05MB5571: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 033857D0BD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(39860400002)(136003)(366004)(376002)(346002)(189003)(199004)(8676002)(478600001)(52536014)(64756008)(66946007)(186003)(8936002)(54906003)(81166006)(76116006)(110136005)(66556008)(66476007)(66446008)(316002)(86362001)(81156014)(5660300002)(55016002)(26005)(33656002)(4326008)(71200400001)(9686003)(7696005)(53546011)(2906002)(6506007)(7416002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5571; H:AM6PR05MB5176.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uOaM07UReEqAO5jwEuxIKE1eCo6YIKzbG8WvVVr7LdKUFvQcRGRhNqDfN3y9pIKRRz/P9C4Gd+uZ2KdymIAorKKRCxn4p55w4+LNj5WI7tKW3esRkjf5mMWInnQEtMqiYsvcWR1/vdrDJkVwX3Vwtl4B+lXypuZQQ084fC/slGN5qYXCbDx4YpxzqRF4pHOGQnyi9Obwk9GeWmudqHcm/UayOYM+Qe4XfzEpW1lf51ouQ3UuJT7pv7qoLAAVnEu0zGZvL3gKH5UKnyTUDdK+ZYG1re1nKk/cHe8Hsvu2JZQAmrPn8rIsysbbnBuSDNIdFXeC+vO+ZvPP+7Gi40ZWS21RLq4T/JzRTz/ufnc+gKihx/R4xJlSmBKKmIqsDF9dMEiHFgIizhu2rXuvcxT4Hy3lRShHMD+oilfMcNv8aP5RRfSrH/uME8x61qUFHstk x-ms-exchange-antispam-messagedata: ERtUooOoFlMa4+7hVEQ59Kuyn8631lqyJYSDDFO4HGetxlFQi0fXPgVM5eoElDOmaM/4zrWOhqmBO7F43DBwCdAZrrpgW69ImsCsWwnKWWLKUJno6/GZyhid60AIfqynYEBvR++W3Vo/l7nlBp8q9A== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83361c77-cd82-423a-96ee-08d7c514791a X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Mar 2020 17:00:01.6568 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0W3vFZd4ztCK6gLpTHJ42w33bp9Eyq4d6IdkMlH7qdxwir9GBbkYMXL7L15s2WzQh9nFRyg7D260cpMnJPZ/9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5571 Subject: Re: [dpdk-dev] [RFC v6] regexdev: introduce regexdev subsystem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" SGkgUGF2YW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IDxk ZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZh dHVsYQ0KPiBTZW50OiBUdWVzZGF5LCBNYXJjaCAxMCwgMjAyMCA2OjM3IFBNDQo+IFRvOiBPcmkg S2FtIDxvcmlrYUBtZWxsYW5veC5jb20+OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+IDxq ZXJpbmpAbWFydmVsbC5jb20+OyB4aWFuZy53LndhbmdAaW50ZWwuY29tDQo+IENjOiBkZXZAZHBk ay5vcmc7IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29tPjsNCj4gaGVtYW50LmFn cmF3YWxAbnhwLmNvbTsgT3BoZXIgUmV2aXYgPG9waGVyQG1lbGxhbm94LmNvbT47IEFsZXgNCj4g Um9zZW5iYXVtIDxhbGV4ckBtZWxsYW5veC5jb20+OyBEb3ZyYXQgWmlmcm9uaSA8ZG92cmF0QG1h cnZlbGwuY29tPjsNCj4gUHJhc3VuIEthcG9vciA8cGthcG9vckBtYXJ2ZWxsLmNvbT47IG5pcHVu Lmd1cHRhQG54cC5jb207DQo+IGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tOyB5YW5nLmEuaG9u Z0BpbnRlbC5jb207IGhhcnJ5LmNoYW5nQGludGVsLmNvbTsNCj4gZ3UuamlhbjFAenRlLmNvbS5j bjsgc2hhbmppYW5naEBjaGluYXRlbGVjb20uY247DQo+IHpoYW5neS55dW5AY2hpbmF0ZWxlY29t LmNuOyBsaXhpbmdmdUBodWFjaGVudGVsLmNvbTsgd3VzaHVhaUBpbnNwdXIuY29tOw0KPiB5dXlp bmd4aWFAeXhsaW5rLmNvbTsgZmFuY2hlbmdnYW5nQHN1bnlhaW5mby5jb207DQo+IGRhdmlkZmdh b0B0ZW5jZW50LmNvbTsgbGl1emhvbmcxQGNoaW5hdW5pY29tLmNuOw0KPiB6aGFveW9uZzExQGh1 YXdlaS5jb207IG9jQHl1bmlmeS5jb207IGppbUBuZXRnYXRlLmNvbTsNCj4gaG9uZ2p1bi5uaUBp bnRlbC5jb207IGouYnJvbWhlYWRAdGl0YW4taWMuY29tOyBkZXJpQG50b3Aub3JnOw0KPiBmY0Bu YXBhdGVjaC5jb207IGFydGh1ci5zdUBsaW9uaWMuY29tOyBUaG9tYXMgTW9uamFsb24NCj4gPHRo b21hc0Btb25qYWxvbi5uZXQ+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtSRkMgdjZdIHJl Z2V4ZGV2OiBpbnRyb2R1Y2UgcmVnZXhkZXYgc3Vic3lzdGVtDQo+IA0KPiBIaSBPcmksDQo+ID4N Cj4gPkhpIFBhdmFuLA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBQYXZhbiBOaWto aWxlc2gNCj4gPkJoYWdhdmF0dWxhDQo+ID4+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEwLCAyMDIw IDM6NDIgUE0NCj4gPj4gVG86IE9yaSBLYW0gPG9yaWthQG1lbGxhbm94LmNvbT47IEplcmluIEph Y29iIEtvbGxhbnVra2FyYW4NCj4gPj4gPGplcmluakBtYXJ2ZWxsLmNvbT47IHhpYW5nLncud2Fu Z0BpbnRlbC5jb20NCj4gPj4gQ2M6IGRldkBkcGRrLm9yZzsgU2hhaGFmIFNodWxlciA8c2hhaGFm c0BtZWxsYW5veC5jb20+Ow0KPiA+PiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBPcGhlciBSZXZp diA8b3BoZXJAbWVsbGFub3guY29tPjsNCj4gPkFsZXgNCj4gPj4gUm9zZW5iYXVtIDxhbGV4ckBt ZWxsYW5veC5jb20+OyBEb3ZyYXQgWmlmcm9uaQ0KPiA+PGRvdnJhdEBtYXJ2ZWxsLmNvbT47DQo+ ID4+IFByYXN1biBLYXBvb3IgPHBrYXBvb3JAbWFydmVsbC5jb20+OyBuaXB1bi5ndXB0YUBueHAu Y29tOw0KPiA+PiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgeWFuZy5hLmhvbmdAaW50ZWwu Y29tOw0KPiA+aGFycnkuY2hhbmdAaW50ZWwuY29tOw0KPiA+PiBndS5qaWFuMUB6dGUuY29tLmNu OyBzaGFuamlhbmdoQGNoaW5hdGVsZWNvbS5jbjsNCj4gPj4gemhhbmd5Lnl1bkBjaGluYXRlbGVj b20uY247IGxpeGluZ2Z1QGh1YWNoZW50ZWwuY29tOw0KPiA+d3VzaHVhaUBpbnNwdXIuY29tOw0K PiA+PiB5dXlpbmd4aWFAeXhsaW5rLmNvbTsgZmFuY2hlbmdnYW5nQHN1bnlhaW5mby5jb207DQo+ ID4+IGRhdmlkZmdhb0B0ZW5jZW50LmNvbTsgbGl1emhvbmcxQGNoaW5hdW5pY29tLmNuOw0KPiA+ PiB6aGFveW9uZzExQGh1YXdlaS5jb207IG9jQHl1bmlmeS5jb207IGppbUBuZXRnYXRlLmNvbTsN Cj4gPj4gaG9uZ2p1bi5uaUBpbnRlbC5jb207IGouYnJvbWhlYWRAdGl0YW4taWMuY29tOyBkZXJp QG50b3Aub3JnOw0KPiA+PiBmY0BuYXBhdGVjaC5jb207IGFydGh1ci5zdUBsaW9uaWMuY29tOyBU aG9tYXMgTW9uamFsb24NCj4gPj4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+ID4+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtSRkMgdjZdIHJlZ2V4ZGV2OiBpbnRyb2R1Y2UgcmVnZXhkZXYNCj4g PnN1YnN5c3RlbQ0KPiA+Pg0KPiA+PiBIaSBPcmksDQo+ID4+DQo+ID4+IDxzbmlwPg0KPiA+Pg0K PiA+PiA+Kw0KPiA+PiA+Ky8qKg0KPiA+PiA+KyAqIFRoZSBnZW5lcmljICpydGVfcmVnZXhfb3Bz KiBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgUmVnRXgNCj4gPmF0dHJpYnV0ZXMNCj4gPj4gPisgKiBm b3IgZW5xdWV1ZSBhbmQgZGVxdWV1ZSBvcGVyYXRpb24uDQo+ID4+ID4rICovDQo+ID4+ID4rc3Ry dWN0IHJ0ZV9yZWdleF9vcHMgew0KPiA+PiA+KwkvKiBXMCAqLw0KPiA+PiA+Kwl1aW50MTZfdCBy ZXFfZmxhZ3M7DQo+ID4+ID4rCS8qKjwgUmVxdWVzdCBmbGFncyBmb3IgdGhlIFJlZ0V4IG9wcy4N Cj4gPj4gPisJICogQHNlZSBSVEVfUkVHRVhfT1BTX1JFUV8qDQo+ID4+ID4rCSAqLw0KPiA+PiA+ Kwl1aW50MTZfdCByc3BfZmxhZ3M7DQo+ID4+ID4rCS8qKjwgUmVzcG9uc2UgZmxhZ3MgZm9yIHRo ZSBSZWdFeCBvcHMuDQo+ID4+ID4rCSAqIEBzZWUgUlRFX1JFR0VYX09QU19SU1BfKg0KPiA+PiA+ KwkgKi8NCj4gPj4gPisJdWludDE2X3QgbmJfYWN0dWFsX21hdGNoZXM7DQo+ID4+ID4rCS8qKjwg VGhlIHRvdGFsIG51bWJlciBvZiBhY3R1YWwgbWF0Y2hlcyBkZXRlY3RlZCBieSB0aGUNCj4gPj4g PlJlZ2V4IGRldmljZS4qLw0KPiA+PiA+Kwl1aW50MTZfdCBuYl9tYXRjaGVzOw0KPiA+PiA+Kwkv Kio8IFRoZSB0b3RhbCBudW1iZXIgb2YgbWF0Y2hlcyByZXR1cm5lZCBieSB0aGUgUmVnRXgNCj4g Pj4gPmRldmljZSBmb3IgdGhpcw0KPiA+PiA+KwkgKiBzY2FuLiBUaGUgc2l6ZSBvZiAqcnRlX3Jl Z2V4X29wczo6bWF0Y2hlcyogemVybyBsZW5ndGggYXJyYXkNCj4gPj4gPndpbGwgYmUNCj4gPj4g PisJICogdGhpcyB2YWx1ZS4NCj4gPj4gPisJICoNCj4gPj4gPisJICogQHNlZSBzdHJ1Y3QgcnRl X3JlZ2V4X29wczo6bWF0Y2hlcywgc3RydWN0DQo+ID4+ID5ydGVfcmVnZXhfbWF0Y2gNCj4gPj4g PisJICovDQo+ID4+ID4rDQo+ID4+ID4rCS8qIFcxICovDQo+ID4+ID4rCXN0cnVjdCBydGVfbWJ1 ZiAqbWJ1ZjsgLyoqPCBzb3VyY2UgbWJ1ZiwgdG8gc2VhcmNoIGluLiAqLw0KPiA+Pg0KPiA+PiBX aGlsZSBpbXBsZW1lbnRpbmcgcGNyZTIgU1cgZHJpdmVyIEkgY2FtZSBhY3Jvc3MgYW4gb2RkaXR5 IHdoZXJlDQo+ID5oYXZpbmcNCj4gPj4gbWJ1ZiBhbG9uZQ0KPiA+PiB3b3VsZG7igJl0IHN1ZmZp Y2UsIHdlIG5lZWQgdG8gaGF2ZSBzY2FuIHN0YXJ0IG9mZnNldCBhbmQgc2NhbiBsZW5ndGggYXMN Cj4gPmdlbmVyYWxseQ0KPiA+PiB3ZSB3b3VsZCBza2lwIHRoZQ0KPiA+PiBMMi9MMyBoZWFkZXIu DQo+ID4+DQo+ID4NCj4gPlllcyB5b3UgYXJlIGNvcnJlY3QsIGluIG1vc3QgY2FzZXMgdGhlIGFw cGxpY2F0aW9uIHdpbGwgbmVlZA0KPiA+bm90IHRoZSBhbGwgbWJ1ZiBvciBpdCB3aWxsIGNvbm5l Y3QgbnVtYmVyIG9mIG1idWYuDQo+ID5UaGlzIGNhbiBiZSBhY2NoaXZlZCBieSBtb2RpZnlpbmcg dGhlIG1idWYgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgZGF0YQ0KPiA+c3RhcnQsIGFuZCBkZWNy ZWFzZSB0aGUgbGVuLg0KPiANCj4gV291bGRu4oCZdCB0aGF0IGNvbXBsaWNhdGUgVHhpbmcgdGhl IHBhY2tldCBsYXRlciBvbiBhZnRlciBkZXF1ZXVlIGZyb20gcmVnZXggaWYNCj4gdGhlIHVzZXIg ZGVjaWRlcyB0byBkbyBzbz8uDQo+IEluc3RlYWQgd2UgY2FuIGhhdmUgdHdvIGZpZWxkcyBpbiBy dGVfcmVnZXhfb3BzIGZvciBzdG9yaW5nIHNjYW5fc3RhcnRfb2Zmc2V0DQo+IGFuZA0KPiBzY2Fu X3NpemUNCj4gDQpUaGUgdXNlciB3aWxsIG5lZWQgdG8gcmV0dXJuIHRoZSBwYWNrZXQgdG8gdGhl IG9yaWdpbmFsIHN0YXRlLiAgSSBhZ3JlZSB0aGF0DQp0aGF0IGl0IGlzIGEgYml0IGhhcmRlciBm b3IgdGhlIGFwcGxpY2F0aW9uIChidXQgbm90IGJ5IG11Y2gpLiBCdXQgaW4gYW55IGNhc2UgdGhl IHVzZXIga25vd3MNCnRoZSBzaXplIGhlIHJlbW92ZWQgc28gd2hlbiBkb25lIGhlIGp1c3QgbmVl ZCB0byByZXR1cm4gdG8gdGhlIG9yaWdpbmFsIHZhbHVlLg0Kb24gdGhlIG90aGVyIGVuZCBpdCBz YXZlIHRoZSB1c2VyIHRoZSB3b3JraW5nIHdpdGggaW92IHN0cnVjdHMuDQoNClJlZ2FyZGluZyB5 b3VyIGlkZWEgYWJvdXQgc3RhcnRfb2Zmc2V0IGFuZCBzY2FuX3NpemUuIEl0IGlzIGEgbmljZSBp ZGVhLA0KQnV0IEkgZG9uJ3QgdGhpbmsgaXQgaXMgd29ydGggaXQsIHNpbmNlIHRoZSBzdGFydF9v ZmZzZXQgaXMganVzdCB3aGF0IHRoZSB1c2VyDQpuZWVkcyB0byBrZWVwIGluIG9yZGVyIHRvIHJl dHVybiB0aGUgbWJ1ZiB0byBvcmlnaW5hbCBzdGF0ZS4NCkFsc28gaWYgdGhlIHVzZXIgd2FudHMg dG8gY29tYmluZSBudW1iZXIgb2YgbWVzc2FnZXMsIGhlIGNhbid0IHVzZSB0aGlzDQphcHByb2Fj aCAgc2luY2UgaGUgd2lsbCBuZWVkIHRvIHJlbW92ZSB0aGUgaGVhZGVyIGFsc28gZnJvbSB0aGUg c2Vjb25kDQptZXNzYWdlIGFuZCBiaW5kIHRoZSB0d28gbWVzc2FnZXMuIFNvIGluIGFueSBjYXNl IHRoZSB1c2VyIG11c3QgaGF2ZSBzb21lDQpsb2dpYy4NCg0KPiA+SW4gb25lIG9mIHRoZSBwcmV2 aW91cyB2ZXJzaW9uIHdlIHVzZWQgYnVmZmVyIGFkZHJlc3MgYW5kIGlvdiB0byBzb2x2ZQ0KPiA+ dGhpcyBpc3N1ZS4gQnV0IGluIG9yZGVyIHRvIGtlZXAgdGhlIEFQSSB0aGUgc2FtZSBhcyBjcnlw dG8gd2UgZGVjaWRlZA0KPiA+dG8gZ28NCj4gPndpdGggbWJ1Zi4NCj4gDQo+IFRoZSBnZW5lcmFs IGlkZWEgd2FzIHRvIHNhdmUgY3ljbGVzIGNvbnZlcnRpbmcgbWJ1ZiBhbmQgY2hhaW4gb2YgbWJ1 ZiB0byBpb3YNCj4gYW5kIGJhY2sgbm90DQo+IGp1c3QgdG8gc3RheSBpbiBsaW5lIHdpdGggY3J5 cHRvLg0KPiANCg0KSSBhZ3JlZSBhbmQgdGhpcyB3YXMgYWxzbyBteSBtYWluIHRoaW5raW5nIGJ1 dCBKZXJpbiBhbmQgb3RoZXIgY29tbXVuaXR5IG1lbWJlcnMgcmFpc2VkIA0KdGhpcyBhcHByb2Fj aC4NCkVhY2ggYXBwcm9hY2ggaGFzIGFkdmFudGFnZXMgYW5kIGRpc2FkdmFudGFnZXMuDQpJZiB0 aGUgdXNlciB3YW50cyBoZSBjYW4ganVzdCBnaXZlIHRoZSBhbGwgbWJ1Zi4gQWxzbyBzaW5jZSBh dCBsZWFzdCBpbiBzb21lDQpjYXNlcyB0aGUgcmVnZXggd2lsbCBiZSBkb25lIGFmdGVyIGNyeXB0 byBpdCBtYWtlIHNlbnNlIHRvIHVzZSB0aGUgc2FtZSBzdHJ1Y3RzLg0KVGhlcmUgaXMgYWxzbyB0 aGUgYWR2YW50YWdlIG9mIHNoYXJpbmcgY29kZSBiZXR3ZWVuIGFsbCB0aGUgZHJpdmVycy4gKG5l dC9jcnlwdG8vcmVnZXgpDQp3aGljaCBjYW4gYmUgZG9uZSB3aGVuIHVzaW5nIG1idWYuIChmb3Ig ZXhhbXBsZSBtZW1vcnkgcmVnaXN0cmF0aW9uKQ0KDQo+ID5UaGlzIEFQSSBpcyBleHBlcmltZW50 YWwgYW5kIGJhc2VkIG9uIHRoZSB1c2FnZSB3ZSBtaWdodCBjaGFuZ2UgaXQgdG8NCj4gPmlvdi4N Cj4gPg0KPiA+PiA+Kw0KPiA+PiA+KwkvKiBXMiAqLw0KPiA+PiA+Kwl1aW50MTZfdCBncm91cF9p ZDA7DQo+ID4+ID4rCS8qKjwgRmlyc3QgZ3JvdXBfaWQgdG8gbWF0Y2ggdGhlIHJ1bGUgYWdhaW5z dC4gQXQgbWluaW11bSBvbmUNCj4gPj4gPmdyb3VwDQo+ID4+ID4rCSAqIHNob3VsZCBiZSB2YWxp ZC4gQmVoYXZpb3VyIGlzIHVuZGVmaW5lZCBub24gb2YgdGhlIGdyb3VwcyBhcmUNCj4gPj4gPnZh bGlkLg0KPiA+PiA+KwkgKg0KPiA+PiA+KwkgKiBAc2VlIFJURV9SRUdFWF9PUFNfUkVRX0dST1VQ X0lEMF9WQUxJRF9GDQo+ID4+ID4rCSAqLw0KPiA+PiA+Kwl1aW50MTZfdCBncm91cF9pZDE7DQo+ ID4+ID4rCS8qKjwgU2Vjb25kIGdyb3VwX2lkIHRvIG1hdGNoIHRoZSBydWxlIGFnYWluc3QuDQo+ ID4+ID4rCSAqDQo+ID4+ID4rCSAqIEBzZWUgUlRFX1JFR0VYX09QU19SRVFfR1JPVVBfSUQxX1ZB TElEX0YNCj4gPj4gPisJICovDQo+ID4+ID4rCXVpbnQxNl90IGdyb3VwX2lkMjsNCj4gPj4gPisJ LyoqPCBUaGlyZCBncm91cF9pZCB0byBtYXRjaCB0aGUgcnVsZSBhZ2FpbnN0Lg0KPiA+PiA+Kwkg Kg0KPiA+PiA+KwkgKiBAc2VlIFJURV9SRUdFWF9PUFNfUkVRX0dST1VQX0lEMl9WQUxJRF9GDQo+ ID4+ID4rCSAqLw0KPiA+PiA+Kwl1aW50MTZfdCBncm91cF9pZDM7DQo+ID4+ID4rCS8qKjwgRm9y dGggZ3JvdXBfaWQgdG8gbWF0Y2ggdGhlIHJ1bGUgYWdhaW5zdC4NCj4gPj4gPisJICoNCj4gPj4g PisJICogQHNlZSBSVEVfUkVHRVhfT1BTX1JFUV9HUk9VUF9JRDNfVkFMSURfRg0KPiA+PiA+Kwkg Ki8NCj4gPj4gPisNCj4gPj4gPisJLyogVzMgKi8NCj4gPj4gPisJUlRFX1NURF9DMTENCj4gPj4g PisJdW5pb24gew0KPiA+PiA+KwkJdWludDY0X3QgdXNlcl9pZDsNCj4gPj4gPisJCS8qKjwgQXBw bGljYXRpb24gc3BlY2lmaWMgb3BhcXVlIHZhbHVlLiBBbiBhcHBsaWNhdGlvbg0KPiA+PiA+bWF5 IHVzZQ0KPiA+PiA+KwkJICogdGhpcyBmaWVsZCB0byBob2xkIGFwcGxpY2F0aW9uIHNwZWNpZmlj IHZhbHVlIHRvIHNoYXJlDQo+ID4+ID4rCQkgKiBiZXR3ZWVuIGRlcXVldWUgYW5kIGVucXVldWUg b3BlcmF0aW9uLg0KPiA+PiA+KwkJICogSW1wbGVtZW50YXRpb24gc2hvdWxkIG5vdCBtb2RpZnkg dGhpcyBmaWVsZC4NCj4gPj4gPisJCSAqLw0KPiA+PiA+KwkJdm9pZCAqdXNlcl9wdHI7DQo+ID4+ ID4rCQkvKio8IFBvaW50ZXIgcmVwcmVzZW50YXRpb24gb2YgKnVzZXJfaWQqICovDQo+ID4+ID4r CX07DQo+ID4+ID4rDQo+ID4+ID4rCS8qIFc0ICovDQo+ID4+ID4rCXN0cnVjdCBydGVfcmVnZXhf bWF0Y2ggbWF0Y2hlc1tdOw0KPiA+PiA+KwkvKio8IFplcm8gbGVuZ3RoIGFycmF5IHRvIGhvbGQg dGhlIG1hdGNoIHR1cGxlcy4NCj4gPj4gPisJICogVGhlIHN0cnVjdCBydGVfcmVnZXhfb3BzOjpu Yl9tYXRjaGVzIHZhbHVlIGhvbGRzIHRoZQ0KPiA+PiA+bnVtYmVyIG9mDQo+ID4+ID4rCSAqIGVs ZW1lbnRzIGluIHRoaXMgYXJyYXkuDQo+ID4+ID4rCSAqDQo+ID4+ID4rCSAqIEBzZWUgc3RydWN0 IHJ0ZV9yZWdleF9vcHM6Om5iX21hdGNoZXMNCj4gPj4gPisJICovDQo+ID4+ID4rfTsNCj4gPj4g PisNCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBQYXZhbi4NCj4gPg0KPiA+VGhhbmtzLA0KPiA+ T3JpDQo=