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 0010EA00BE; Wed, 29 Apr 2020 14:52:50 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DA3E61DABF; Wed, 29 Apr 2020 14:52:50 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id B99791DA9F for ; Wed, 29 Apr 2020 14:52:48 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03TCop2Q027726; Wed, 29 Apr 2020 05:52:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=pfpt0818; bh=PDX6RvETZdxa/u895dl9oL2teuDO/OCA8HIJDggABP8=; b=qeJ+yS+Ap1xftPii/B9jGP0nS0iRibFWCQdEPXoPAZqKRyQOOXOQHGkVLY6WznVMggPm Um13GzSBLBIkWvQIcc/ZEKJUPpmIeYue0NDSV8HmJki3jsZviKM1GmceyO2iJyRjHgxA ZOl1W2pS+CMhI1Ss0+oofckRYD4FUsxsmDKfc8R9uf+mXVMNPY8zsKRbFev1dDQP6Sa1 6d6/rfu06/1sRqNUoD8CWjkApxk4kyzrmvqPm3f0zXrlPfQuHOHEJXnNF884kGwOVoLm BwfsKV0PF3pXnqLuc3dHjG/NdqllNGr3kTQt2Akew1k4LOs4kmtTzK/Mhd9uBds5bWmB yA== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 30mjjqhg7n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 29 Apr 2020 05:52:47 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 29 Apr 2020 05:52:46 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 29 Apr 2020 05:52:45 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.51) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 29 Apr 2020 05:52:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Re5d8c5OcxtBoxBSpHDY1ESqk60FTxDGLts2oObdJch8EtZZy/kebDt/VBIt/4vE2lYHJg4QjBYQNzSvRcvbCAKim2UZA0eC8b43EwzSNa6j8B+r6rbjLYlLNyfkPMTMq/bAU8KlBWSGHDC9VDk9XieWvJUCBVAhR9mAJ79wKqsCyZN0HVH79nPsjKGlWQz07nyIuVLMA1gpvahKSEllWBU0nlP6oy315l56y5E2a5kBKAT6H50MNTuIEQwL+ODPO+u7YK/rbQQYBTZYHb/TyFJEC5R0hmOyg6FRvdU6mzcEQSkCA4bV/xEPLWS+iMM0qxFvoppAaW3p0HPQsYICSw== 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=PDX6RvETZdxa/u895dl9oL2teuDO/OCA8HIJDggABP8=; b=OsQRSVsLcoICWGyQJpXCbDco3ZXxMboeuOf6ePXfq5q2epd0Rh5JPNYzk+HUPtGqWfzwDSequK+Pmh67ayFvXXsTRUYT5+55Es0RLJwW+fHyaM6S6bJJrUJr30oxKjaCNqC5gIW4EwEmRNg/mvmQ5JbyhILLyeN/7YJBjUHkCz1/aW32X6EbvNafW9Tym+R/6czHCh5w7T3E+ynhD/d1a4LfjF6dOYIfKcNwyogS/L9NJ5UAC441Y9Q0PYUC5YlRzqaWDfO+OmBeqK2IkIpn6RU39tnKokjwWFV7r3MGqNHBEV9sJufh7Px3PodQvw26JHULNPUI/L8k7jhKG1LMzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PDX6RvETZdxa/u895dl9oL2teuDO/OCA8HIJDggABP8=; b=duoU8aP3yv2dNfHwafSFF8C3xpr3253esw8yn3C1D/ZxuVV/AHT6Wf54DapvgFvONmRGyginUWSbF3ZcsixqIEkMNU+hfk8cebzU3LIe80bbnqYcJypGpf8ybvaMaLf3D+pBoRpxhD5LWKqWeZhzwyWY5PdpoT3tNEf4FInQNB8= Received: from BYAPR18MB2712.namprd18.prod.outlook.com (2603:10b6:a03:103::10) by BYAPR18MB2743.namprd18.prod.outlook.com (2603:10b6:a03:107::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.19; Wed, 29 Apr 2020 12:52:43 +0000 Received: from BYAPR18MB2712.namprd18.prod.outlook.com ([fe80::70bd:288b:c391:39ab]) by BYAPR18MB2712.namprd18.prod.outlook.com ([fe80::70bd:288b:c391:39ab%7]) with mapi id 15.20.2937.028; Wed, 29 Apr 2020 12:52:43 +0000 From: "Lukas Bartosik [C]" To: "Ananyev, Konstantin" , Anoob Joseph CC: "akhil.goyal@nxp.com" , "Nicolau, Radu" , Narayana Prasad Raju Athreya , "dev@dpdk.org" , "orika@mellanox.com" , "Doherty, Declan" , "Drost, MariuszX" , "Lu, Wenzhuo" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts Thread-Index: AQHWF+P57CtKSbQO7k+V1fCJwEinyKiDsFwAgAGn14CAAuHUAIAH4D0A Date: Wed, 29 Apr 2020 12:52:42 +0000 Message-ID: <741fab27-510d-a66e-25c1-5437985098bf@marvell.com> References: <1586345520-3205-1-git-send-email-lbartosik@marvell.com> <139b63ab-6ce0-1657-2754-37e1347143bc@marvell.com> <9bde6651-8dc2-30df-036e-a0670327b6a8@marvell.com> <97c667bb-e6fa-808b-107a-c94b5917aabc@marvell.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=marvell.com; x-originating-ip: [199.233.58.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 538bd866-edb3-4599-025e-08d7ec3c352f x-ms-traffictypediagnostic: BYAPR18MB2743: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-forefront-prvs: 03883BD916 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zu1AvCrx1vfH1ubBnR0lP0s7jCRz4z2Gu/JeYtoBeF88+1ElfS/gFPu2RAI3BlJPSmx2eoyXqj1Wh3CgR2DyH5i4Ey0CJzjkoC9ElH1pH9V0+8xQw+BuNbZLbvrJ97TFfnOdAt5h60ibb0yJM8wV7xKkSGmkW9NXVsrW9UsvnTnqTMdZVTXpv4CtQqUvH4VySu6XwA3xetEje43cvEEazWYjLzrPk5voLTFeR6t7IiDEsp9LHIb/+spoFBoZm4w4frOudYzxz5Agf7cTf7J2UzzIFHrvgnb0t1XHSBvksTVZ1/zjhL7Lp0OyuJkku1GwTkZVuCUXh70AE/wSO5lib2qDMvNTAt8K11oIVAF7wlPD9dcyr85oC+gdweTnEPaXGiv0OwI47be8WCSO8rHBHrl2mBZdFM70Peqpt0UIWX36GnYJvc0/dPHxRC3DRjARS+V9gvq/MGIhax3zHQn1APq+XWzcB2hsAwPml1dd3co8MDk+BJJfg2PqzglZqw2KD0R1Dc/PkIwci6tGzmonBw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR18MB2712.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(346002)(376002)(136003)(366004)(396003)(86362001)(316002)(6636002)(36756003)(186003)(71200400001)(19627235002)(6512007)(4326008)(2906002)(6486002)(53546011)(6506007)(31696002)(966005)(26005)(8676002)(8936002)(2616005)(31686004)(54906003)(64756008)(66446008)(66946007)(478600001)(5660300002)(66476007)(76116006)(66556008)(30864003)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: HSJifBr89k6VSTqm3aFz+7OI+JYDf8sPvFRbL+/ICr2a2dPAy77y/1JQ7TK+sAH0abO8g3v22FeJcW/ETG/xRON3YtVWCzNdDohe/bDMDrjVsYDd2Ih92jz5OZTzwZw3fyiopNDgYnxT+5fPuiMV1FNW/ja/B9f1UG05AjJBPTJqfa6kIZZeEIEPJ3gGAT3eFkhP12wmEx5R0ZwCBn1P5ehliv2ztZEJzZXQMvI/GFx7oNZopPPYjUXX/FUSHulPysIvAJX6TivXxt9nw8B/UljlWCemdF8NnQJewBFvlUbES13O8Y1T+GXYbwGUazUvnhH+sKwgzqshEqxoeOaw3iLR13N0J3q/sp4R3CclyN/d8CMA9Sf7KX/Kmgd+z1Lqk0CiC/5kvKBwK0uN7153cmsdhg6xpxoQKfQeH0ikheTB4UY1vyXqw2XnSTPUd/3sGtS06nOM4Ml9EpF2Skepdi/I1ux9a/cRx96bkRLNy0QiHcMEMKnxsuI5vtc+CxUT5P9icYelnHwxb+qZSCouYxV8mt78EZjoeiNzzZaPmLaIxjw0caqo1SmqlBPRHjWuxiv97q/gRWpNSJwLMNqX04sHx5vZTQt5N+crj7RDUThAdiwPKKvKkdBr+RtWYdnKhSFkl2uIZKY0ghHv649f2PFQt77HkmYuHhjK3dPsH9q8On9gdPkmNYBVrgAlmZ4ehA1UVGgGFuj5gD7C0tkWK7WlCAs9fI9qeprbqoXKz41At50suGSZu5hwyEyp4daO7Iq/s8ScBmWEkcBJ7XLG8zc3bx9odsJgc6TWd8s//6I= Content-Type: text/plain; charset="utf-8" Content-ID: <80D5B5F71A195A46B1953838C0564564@namprd18.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 538bd866-edb3-4599-025e-08d7ec3c352f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2020 12:52:42.8741 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wgegdf7bzfj0gX8HXVcqJDV8R0YGEYDXeT9RLXllRksufV0pdL19b26PPInU1rYjkoQxMcU5hJoDBVU5NZi7pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2743 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-29_05:2020-04-29, 2020-04-29 signatures=0 Subject: Re: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts 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" SGkgS29uc3RhbnRpbiwNCg0KUGxlYXNlIHNlZSBteSBhbnN3ZXIgYmVsb3cuDQoNClRoYW5rcywN Ckx1a2Fzeg0KDQpPbiAyNC4wNC4yMDIwIDE0OjM1LCBBbmFueWV2LCBLb25zdGFudGluIHdyb3Rl Og0KPj4+DQo+Pj4gSGkgTHVrYXMsDQo+Pj4NCj4+PiBBcG9sb2dpZXMgZm9yIGRlbGF5IHdpdGgg cmVzcG9uc2UuDQo+Pj4NCj4+Pj4gRG8geW91IGhhdmUgYW55IHRob3VnaHRzIGhvdyBib3RoIGNh c2VzIGNvdWxkIGJlIGNvdmVyZWQ6DQo+Pj4+IDEuIElubGluZSBub3QgYXBwbGllZCB0byBpbmJv dW5kIElQc2VjIHBrdHMgZm9yIHNob3J0IGR1cmF0aW9uIG9mIHRpbWUNCj4+Pj4gYWZ0ZXIgcnRl X2V0aF9kZXZfc3RhcnQoKSBidXQgYmVmb3JlIHNhX2luaXQoKSBpcyBleGVjdXRlZCAod2hpY2gg Y3JlYXRlcyBTQXMpLg0KPj4+PiAyLiBTQXMgbm90IHN1cnZpdmluZyBydGVfZXRoX2Rldl9zdGFy dCgpIG9uIGl4Z2JlIGRyaXZlci4NCj4+Pg0KPj4+IE5vLCByaWdodCBub3cgSSBkb24ndCBoYXZl IGFuIGlkZWEgaG93IGJvdGggY2FuIGJlIHNhdGlzZmllZC4NCj4+PiBBYm91dCAxKSAtIHdoeSBk byB5b3UgY29uc2lkZXIgdGhhdCBhcyBwcm9ibGVtPw0KPj4+IEFzIEkgdW5kZXJzdGFuZCB3aGVu IGlubGluZSBkZXZpY2UgaXMgc3RhcnRlZCBieSBub3QgcHJvcGVybHkgcHJvZ3JhbW1lZCB5ZXQs DQo+Pj4gdGhlc2UgcGFja2V0cyB3aWxsIGJlIHRyZWF0ZWQgYnkgZGV2aWNlIGFzIG5vbi1pcHNl YyBvbmVzIChqdXN0IHBsYWluLXRleHQNCj4+PiBwYWNrZXRzKS4NCj4+PiBUaGVuIGxhdGVyIGlu IGlwc2VjLXNlY2d3IFJYIHBhdGggdGhleSB3aWxsIHByb2JhYmx5IGJlIGp1c3QgZHJvcHBlZC4N Cj4+PiBTbyBubyBoYXJtIGhlcmUsIG5vPw0KPj4NCj4+IFtBbm9vYl0gWWVzLCB3aGVuIFNBcyBh cmUgbm90IHlldCBjcmVhdGVkIGFuZCBkZXZpY2UgaXMgc3RhcnRlZCB0aGVuIEhXIHRyZWF0cyBJ UHNlYyBwYWNrZXRzIGFzIGNsZWFyIHBhY2tldHMgYW5kIGRvZXMgbm90IGFwcGx5IGlubGluZSB0 bw0KPj4gdGhlbS4gVGhlIElQc2VjIHBhY2tldHMgYXJyaXZlIGF0IGFwcGxpY2F0aW9uIGxldmVs LiBUaGlzIHBvaW50cyBhdCBhIHNlcmlvdXMgaGFyZHdhcmUgaXNzdWUgYXMgYSBwYWNrZXQgaW50 ZW5kZWQgZm9yIElQc2VjIGhhcyByZWFjaGVkDQo+PiBhcHBsaWNhdGlvbiB3aXRob3V0IGJlaW5n IElQc2VjIHByb2Nlc3NlZC4gQXBwbGljYXRpb24gd291bGQgY2hlY2sgaWYgc2Vzc2lvbiBpcyBj cmVhdGVkIGFuZCBzaW5jZSB0aGUgc2Vzc2lvbiBpcyBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2YN Cj4+IHByb2Nlc3NpbmcgdGhlIHBhY2tldCAoaW4gdGhlIGFwcGxpY2F0aW9uKSwgaXQgd291bGQg bG9vayBsaWtlIGEgaGFyZHdhcmUgaXNzdWUgd2hlbiBpdCBpcyBqdXN0IGEgZmFsc2UgcG9zaXRp dmUuDQo+IA0KPiBJIHN0aWxsIG5vdCBzdXJlIHdoeSBpcyB0aGF0IGJpZyBkZWFsLCBidXQgb2ss IGNhbiB3ZSB0aGVuIGp1c3QgZG8NCj4gaXQgaW4gYSBkaWZmZXJlbnQgd2F5IGZvciBwb2xsIHZz IGV2ZW50IG1vZGUgZm9yIG5vdzoNCj4gZm9yIGV2ZW50IG1vZGUgZG8gZGV2X3N0YXJ0KCkgYWZ0 ZXIgc2FfaW5pdCgpLA0KPiBmb3IgcG9sbCBtb2RlIGxlYXZlIHRoaW5ncyBhcyBpdCAoZGV2X3N0 YXJ0KCksIHRoZW4gc2FfaW5pdCgpKS4NCj4gV291bGQgdGhhdCBhZGRyZXNzIHRoZSBpc3N1ZT8N Cj4gDQoNCltMdWthc3pdIFdlIHdvdWxkIHByZWZlciBub3QgdG8gc3BsaXQgYmVoYXZpb3VyIG9m IHBvbGwgYW5kIGV2ZW50IG1vZGVzIGJlY2F1c2Ugb2Ygd29ya2Fyb3VuZHMuDQpDdXJyZW50bHkg c2FfaW5pdCgpIGlzIGJlaW5nIGRvbmUgYWZ0ZXIgZGV2X3N0YXJ0KCkgYSByZXN1bHQgb2YgYSB3 b3JrYXJvdW5kIGZvciBpeGdiZSBkcml2ZXIuDQpJTUhPIGNvcnJlY3Qgb3JkZXIgaXMgdG8gY3Jl YXRlIGZsb3dzLCBTQXMgYW5kIGFzIGEgbGFzdCBzdGVwIGRvIGRldl9zdGFydCgpIHdoZW4gDQph bGwgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb24gaXMgaW4gcGxhY2UuIFdlIGNhbiB3YWl0IGZvciB0 aGUgZml4IGluIHRoZSBpeGdiZSBkcml2ZXIuDQoNCj4+Pg0KPj4+IEFib3V0IDIpIC0gbG9va2lu ZyBhdCBpeGdiZSBjb2RlLCBJIHRoaW5rIGl0IGNhbiBiZSBjaGFuZ2VkIHRvIG1ha2UgaXBzZWMg Zmxvd3MgdG8NCj4+PiBzdXJ2aXZlIGRldmljZSBzdGFydC9zdG9wICh0aG91Z2ggbW9zdCBsaWtl bHkgbm90IGluIDIwLjA1IHRpbWVmcmFtZSkuDQo+Pj4gU28gSSBhbSBub3Qgc3VyZSBzaG91bGQg d2UgZG8gaXQgYXQgYWxsLg0KPj4+IE9idmlvdXNseSBmb3IgaXhnYmUgKHdpdGggMUsgbWF4IFNB KSBpdCBpcyBub3QgYSBwcm9ibGVtIHRvIHNhdmUgZXh0cmEgaW5mbyBhYm91dA0KPj4+IEhXIGZs b3dzIGFuZCByZXN0b3JlIHRoZW0gYWZ0ZXIgc3RvcC9zdGFydC4NCj4+PiBUaG91Z2ggZm9yIG1v ZGVybiBkZXZpY2VzIHRoYXQgbWlnaHQgaGF2ZSBtaWxsaW9ucyBvZiBmbG93cyBtYWludGFpbmlu ZyBzdWNoDQo+Pj4gaW5mbyBpbiBQTUQgbWlnaHQgYmVjb21lIGEgc2lnbmlmaWNhbnQgb3Zlcmhl YWQuDQo+Pj4gQXMgZ2VuZXJpYyBxdWVzdGlvbiAtIGhvdyBQTUQgc2hvdWxkIGJlaGF2ZSBpbiBz dWNoIHNpdHVhdGlvbj8NCj4+PiBTaG91bGQgaXQgc3VwcG9ydCBmbG93cyBzdXJ2aXZhbCB0aHJv dWdoIGRldl9zdGFydC9kZXZfc3RvcCwgb3Igc2hvdWxkIGl0IGJlIGFwcA0KPj4+IHJlc3BvbnNp YmlsaXR5IHRvIHJlcHJvZ3JhbSBmbG93cyBhZnRlciBkZXYtc3RhcnQvZGV2X3N0b3AuDQo+Pg0K Pj4gW0Fub29iXSBJIGJlbGlldmUgdGhlIHNwZWMgdGFsa3MgYWJvdXQgdGhlIGJlaGF2aW9yIGR1 cmluZyBzdGFydC9zdG9wIGFuZCBpbml0aWFsaXphdGlvbi4NCj4+DQo+PiAiRmxvdyBydWxlcyBh cmUgbm90IG1haW50YWluZWQgYmV0d2VlbiBzdWNjZXNzaXZlIHBvcnQgaW5pdGlhbGl6YXRpb25z LiBBbiBhcHBsaWNhdGlvbiBleGl0aW5nIHdpdGhvdXQgcmVsZWFzaW5nIHRoZW0gYW5kIHJlc3Rh cnRpbmcgbXVzdCByZS0NCj4+IGNyZWF0ZSB0aGVtIGZyb20gc2NyYXRjaC4iDQo+Pg0KPj4gIlBN RHMsIG5vdCBhcHBsaWNhdGlvbnMsIGFyZSByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgZmxv dyBydWxlcyBjb25maWd1cmF0aW9uIHdoZW4gc3RvcHBpbmcgYW5kIHJlc3RhcnRpbmcgYSBwb3J0 IG9yIHBlcmZvcm1pbmcgb3RoZXINCj4+IGFjdGlvbnMgd2hpY2ggbWF5IGFmZmVjdCB0aGVtLiIN Cj4gDQo+IEJ1dCBpdCBhbHNvIHNheXM6DQo+IC0gRFBESyBkb2VzIG5vdCBrZWVwIHRyYWNrIG9m IGZsb3cgcnVsZXMgZGVmaW5pdGlvbnMgb3IgZmxvdyBydWxlIG9iamVjdHMNCj4+PiBhdXRvbWF0 aWNhbGx5Lg0KPj4+ICAgQXBwbGljYXRpb25zIG1heSBrZWVwIHRyYWNrIG9mIHRoZSBmb3JtZXIg YW5kIG11c3Qga2VlcCB0cmFjayBvZiB0aGUgbGF0dGVyLg0KPj4+ICAgUE1EcyBtYXkgYWxzbyBk byBpdCBmb3IgaW50ZXJuYWwgbmVlZHMsIGhvd2V2ZXIgdGhpcyBtdXN0IG5vdCBiZSByZWxpZWQg b24gYnkNCj4+PiBhcHBsaWNhdGlvbnMuDQo+IA0KPj4NCj4+IEZyb20gdGhlIGFib3ZlIHR3bywg Zm9sbG93aW5nIGlzIHdoYXQgSSBjb3VsZCBjb25jbHVkZSwNCj4+IDEuIEFjcm9zcyBpbml0aWFs aXphdGlvbnMgcnRlX2Zsb3cgcnVsZXMgYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXRhaW5lZC4N Cj4+IDIuIEFjcm9zcyByZXN0YXJ0cyAoZGV2IHN0YXJ0L3N0b3ApLCBQTURzIGhhdmUgdG8gZW5z dXJlIHJ0ZV9mbG93IHJ1bGVzIHN1cnZpdmUuDQo+IA0KPiBPaywgSSBnZXQgeW91ciBvcGluaW9u LCBidXQgSSB3b3VsZCBsaWtlIG1vcmUgaW5wdXQgZnJvbSB0aGUgcmVzdCBvZiB0aGUgY29tbXVu aXR5Lg0KPiBJbiBwYXJ0aWN1bGFyIGZyb20gUE1EL2Zsb3cvc2VjdXJpdHkgZGVzaWduZXJzL21h aW50YWluZXJzL3VzZXJzLg0KPiBTaG91bGQgUE1EIGJlIHJlc3BvbnNpYmxlIGZvciBrZWVwaW5n L3Jlc3RvcmluZyBhbGwgZmxvd3MgcnVsZXMgY29uZmlnIGFjY3Jvc3MNCj4gZGV2X3N0YXJ0L2Rl dl9zdG9wPw0KPiBJZiB5ZXMsIGRvZXMgYW55b25lIHNlZSBhbnkgaW1wbGljYXRpb25zIHdpdGgg dGhhdCBpbiB0ZXJtcyBvZjoNCj4gLSBpbmNyZWFzZWQgbWVtb3J5IGZvb3RwcmludA0KPiAtIHRp bWUgZGV2X3N0YXJ0IHdvdWxkIHRha2UNCj4gLSB0aW1lIGZsb3dfcnVsZV9hZGQvZGVsIHdpbGwg dGFrZQ0KPiAtIHBvc3NpYmxlIHN0b3Jpbmcgb2YgYXV0aC9jcnlwdG8ga2V5cyBpbnNpZGUgdGhl IFBNRA0KPiAgDQo+IEJUVywgSSBhc3N1bWUgdGhhdCBvY3Rlb250eDIgZG9lcyBrZWVwIGlwc2Vj IChhbGw/KSBmbG93IHJ1bGVzIGFjcm9zcyBkZXZfc3RhcnQvZGV2X3N0b3A/DQo+IElmIHNvLCBk b2VzIEhXIGNhbiBrZWVwIGl0LCBvciBQTUQgcmVzdG9yZXMgaXQgYXQgc3RhcnQ/DQo+IE9yIHlv dSBqdXN0IHJlbHkgb24gdGFibGUgc2hhcmVkIGJldHdlZW4gSFcgYW5kIFNXPyAgIA0KPiANCj4+ IEkgaGF2ZW4ndCBsb29rZWQgYXQgdGhlIGl4Z2JlIFBNRCB5ZXQsIGJ1dCB0ZWNobmljYWxseSBz dGFydC9zdG9wIHNob3VsZCBvbmx5IGJlIGFib3V0IHdoZXRoZXIgdGhlIGRldmljZSBpcyBydW5u aW5nLiANCj4gDQo+IE5vdCBvbmx5Lg0KPiBJdCBkb2VzIEhXIHJlc2V0L2luaXQsICBzdGFydHMg UlgvVFggcXVldWVzLCBzZWxlY3RzIFJYL1RYIGZ1bmN0aW9ucywNCj4gYXBwbGllcy9yZXN0b3Jl cyBzZXR0aW5ncyB0byBIVywgZXRjLiANCj4gDQo+PiBJIGJlbGlldmUgdGhlcmUgYXJlDQo+PiBv dGhlciBzZXR0aW5ncyBhbHNvIHdoaWNoIG5lZWQgdG8gYmUgcmV0YWluZWQgYmV0d2VlbiBzdGFy dC9zdG9wLg0KPj4NCj4+IEZyb20gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3Yy L3VybD91PWh0dHBzLTNBX19kb2MuZHBkay5vcmdfYXBpX3J0ZS01Ri01RmV0aGRldi01RjhoLmh0 bWwmZD1Ed0lHYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9U2NoUkhoRTdHTENqRVk0aTJh MWJ5akNfRnBXZ1JMdHE0LWtMdktwM184NCZtPXBzQVVKY0JTUVpTc21VWG94S3ZpWWROY28tZ29X aE01Znk3cmlMbjlXWkUmcz1BQ1N4Y0M4Z3hpeV9hdXRZSS1Pb1oxSkNGZFA4OWpDZ1ZDOVhBak05 SGg0JmU9IA0KPj4NCj4+IFBsZWFzZSBub3RlIHRoYXQgc29tZSBjb25maWd1cmF0aW9uIGlzIG5v dCBzdG9yZWQgYmV0d2VlbiBjYWxscyB0byBydGVfZXRoX2Rldl9zdG9wKCkvcnRlX2V0aF9kZXZf c3RhcnQoKS4gVGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHdpbGwNCj4+IGJlIHJldGFpbmVk Og0KPj4NCj4+IC0gTVRVDQo+PiAtIGZsb3cgY29udHJvbCBzZXR0aW5ncw0KPj4gLSByZWNlaXZl IG1vZGUgY29uZmlndXJhdGlvbiAocHJvbWlzY3VvdXMgbW9kZSwgYWxsLW11bHRpY2FzdCBtb2Rl LA0KPj4gICBoYXJkd2FyZSBjaGVja3N1bSBtb2RlLCBSU1MvVk1EUSBzZXR0aW5ncyBldGMuKQ0K Pj4gLSBWTEFOIGZpbHRlcmluZyBjb25maWd1cmF0aW9uDQo+PiAtIGRlZmF1bHQgTUFDIGFkZHJl c3MNCj4+IC0gTUFDIGFkZHJlc3NlcyBzdXBwbGllZCB0byBNQUMgYWRkcmVzcyBhcnJheQ0KPj4g LSBmbG93IGRpcmVjdG9yIGZpbHRlcmluZyBtb2RlIChidXQgbm90IGZpbHRlcmluZyBydWxlcykN Cj4+IC0gTklDIHF1ZXVlIHN0YXRpc3RpY3MgbWFwcGluZ3MNCj4+DQo+PiBGbG93IGRpcmVjdG9y IHJlZmVycyB0byBydGVfZmxvdywgcmlnaHQ/DQo+IA0KPiBZZXMsIGFuZCBpdCBzYXlzIG1vZGUs IG5vdCBydWxlcy4NCj4gIA0KPj4+IEkgbG9va2VkIHRocm91Z2ggUEcgZm9yIHJ0ZV9mbG93LCBh bmQgaXQgc2VlbXMgYSBiaXQgY29udmVyc2lvbmFsIGhlcmUgKGF0IGxlYXN0DQo+Pj4gZm9yIG1l KToNCj4+PiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMt DQo+Pj4gM0FfX2RvYy5kcGRrLm9yZ19ndWlkZXNfcHJvZy01Rmd1aWRlX3J0ZS0NCj4+PiA1RmZs b3cuaHRtbCZkPUR3SUdhUSZjPW5LaldlYzJiNlIwbU95UGF6N3h0ZlEmcj1qUGZCOHJ3d3ZpUlN4 eUxXcw0KPj4+IDJuNkItDQo+Pj4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09cFVhNlhIendWQTJJ UDdVRWU1Yjk4aG9zSG1IanhsTE9tbjNJeEgNCj4+PiBoWlFBQSZzPTJCTTRpeVNOeVMwc3Z6RzI2 QjBQaUc4aFFvQVQyY2xBdGt4aUpyeXRkYUkmZT0gICgxMS43KToNCj4+PiBGb3JtIG9uZSBzaWRl Og0KPj4+IC0gRFBESyBkb2VzIG5vdCBrZWVwIHRyYWNrIG9mIGZsb3cgcnVsZXMgZGVmaW5pdGlv bnMgb3IgZmxvdyBydWxlIG9iamVjdHMNCj4+PiBhdXRvbWF0aWNhbGx5Lg0KPj4+ICAgQXBwbGlj YXRpb25zIG1heSBrZWVwIHRyYWNrIG9mIHRoZSBmb3JtZXIgYW5kIG11c3Qga2VlcCB0cmFjayBv ZiB0aGUgbGF0dGVyLg0KPj4+ICAgUE1EcyBtYXkgYWxzbyBkbyBpdCBmb3IgaW50ZXJuYWwgbmVl ZHMsIGhvd2V2ZXIgdGhpcyBtdXN0IG5vdCBiZSByZWxpZWQgb24gYnkNCj4+PiBhcHBsaWNhdGlv bnMuDQo+Pj4gQnV0IGEgYml0IGJlbG93Og0KPj4+IC0gUE1Ecywgbm90IGFwcGxpY2F0aW9ucywg YXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyBmbG93IHJ1bGVzDQo+Pj4gY29uZmlndXJh dGlvbg0KPj4+ICAgIHdoZW4gc3RvcHBpbmcgYW5kIHJlc3RhcnRpbmcgYSBwb3J0IG9yIHBlcmZv cm1pbmcgb3RoZXIgYWN0aW9ucyB3aGljaCBtYXkNCj4+PiBhZmZlY3QgdGhlbS4NCj4+PiAgIFRo ZXkgY2FuIG9ubHkgYmUgZGVzdHJveWVkIGV4cGxpY2l0bHkgYnkgYXBwbGljYXRpb25zLg0KPj4+ DQo+Pj4gV291bGQgbGlrZSB0byBrbm93IHdoYXQgcnRlX2Zsb3cgbWFpbnRhaW5lcnMgYW5kIG90 aGVyIGludGVyZXN0ZWQgcGFydGllcyB0aGluaw0KPj4+IGFib3V0IGl0Pw0KPj4NCj4+IFtBbm9v Yl0gSSBkbyBhZ3JlZSB0aGF0IHRoZSBhYm92ZSB0d28gcG9pbnRzIGNhbiBiZSBtaXNsZWFkaW5n LiBCdXQgaXQgYWN0dWFsbHkgZGVzY3JpYmVzIHRoZSB1c2FnZSBvZiBydGVfZmxvdyBBUEkuDQo+ Pg0KPj4gMS4gIkRQREsgZG9lcyBub3Qga2VlcCB0cmFjayBvZiBmbG93IHJ1bGVzIGRlZmluaXRp b25zIG9yIGZsb3cgcnVsZSBvYmplY3RzIGF1dG9tYXRpY2FsbHkuIEFwcGxpY2F0aW9ucyBtYXkg a2VlcCB0cmFjayBvZiB0aGUgZm9ybWVyIGFuZA0KPj4gbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBs YXR0ZXIuIg0KPj4gRFBESyBydGVfZmxvdyBzcGVjIGRvZXNuJ3QgcHJvdmlkZSBhbiBBUEkgdG8g Y2hlY2sgaWYgYSBydWxlIGlzIGFscmVhZHkgY3JlYXRlZC4gQXBwbGljYXRpb24gaXMgY29uZmln dXJpbmcgaGFyZHdhcmUgcmVzb3VyY2VzIHVzaW5nIHJ0ZV9mbG93DQo+PiBhbmQgaXQgaGFzIHRv IGtlZXAgdHJhY2sgb2Ygd2hhdCBpcyBjb25maWd1cmVkLg0KPj4NCj4+IDIuICJQTURzLCBub3Qg YXBwbGljYXRpb25zLCBhcmUgcmVzcG9uc2libGUgZm9yIG1haW50YWluaW5nIGZsb3cgcnVsZXMg Y29uZmlndXJhdGlvbiB3aGVuIHN0b3BwaW5nIGFuZCByZXN0YXJ0aW5nIGEgcG9ydCBvciBwZXJm b3JtaW5nDQo+PiBvdGhlciBhY3Rpb25zIHdoaWNoIG1heSBhZmZlY3QgdGhlbS4iDQo+PiBJbiB0 aGlzIGNhc2UsIHdlIGFyZSB0YWxraW5nIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgaGFyZHdhcmUu IE9uY2UgdGhlIHJ1bGVzIGFyZSBjb25maWd1cmVkLCBpdCBzaG91bGQgc3Vydml2ZSBhY3Jvc3Mg c3RvcC1zdGFydC4gQXBwbGljYXRpb24gaXMNCj4+IG5vdCByZXF1aXJlZCB0byBkZXN0cm95IGFu ZCBjcmVhdGUgcnRlX2Zsb3dzIGluIHN1Y2ggY2FzZS4NCj4+DQo+PiBJbiBmaXJzdCBjYXNlLCB3 ZSBhcmUgdGFsa2luZyBhYm91dCBydGVfZmxvdyBvYmplY3RzICYgcnVsZXMgKGxpa2Ugc2Vzc2lv biBpbiBjYXNlIG9mIHJ0ZV9zZWN1cml0eSkgYW5kIGluIHRoZSBzZWNvbmQgd2UgYXJlIHRhbGtp bmcgYWJvdXQNCj4+IGhhcmR3YXJlIHN0YXRlLg0KPj4NCj4+IEkgdGhpbmsgdGhpcyBwYXRjaCBj YW4gYmUgZGVsYXllZCB0aWxsIGl4Z2JlIGNhbiBiZSBmaXhlZC4gSGF2aW5nIGl0IGluIDIwLjA4 IHRpbWVmcmFtZSBzaG91bGQgYmUgZmluZS4NCj4+DQo+Pj4NCj4+PiBLb25zdGFudGluDQo+Pj4N Cj4+Pj4NCj4+Pj4gVGhhbmtzLA0KPj4+PiBMdWthc3oNCj4+Pj4NCj4+Pj4gT24gMTYuMDQuMjAy MCAxNDoyOCwgTHVrYXMgQmFydG9zaWsgW0NdIHdyb3RlOg0KPj4+Pj4gSGkgS29uc3RhbnRpbiwN Cj4+Pj4+DQo+Pj4+PiBQbGVhc2Ugc2VlIG15IGFuc3dlciBiZWxvdy4NCj4+Pj4+DQo+Pj4+PiBU aGFua3MsDQo+Pj4+PiBMdWthc3oNCj4+Pj4+DQo+Pj4+PiBPbiAxNi4wNC4yMDIwIDAxOjQ3LCBB bmFueWV2LCBLb25zdGFudGluIHdyb3RlOg0KPj4+Pj4+IEV4dGVybmFsIEVtYWlsDQo+Pj4+Pj4N Cj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+Pj4gLS0tDQo+Pj4+Pj4NCj4+Pj4+Pg0KPj4+Pj4+IEhp IEx1a2FzeiwNCj4+Pj4+Pg0KPj4+Pj4+PiBIaSBLb25zdGFudGluLA0KPj4+Pj4+Pg0KPj4+Pj4+ PiBJbiB0aGlzIHBhdGNoIEkgbW92ZWQgdGhlIHNhX2luaXQoKSBiZWZvcmUgcnRlX2V0aF9kZXZf c3RhcnQoKSBpbg0KPj4+Pj4+PiBvcmRlciB0byBhdm9pZCBkcm9wcGluZyBvZiBJUHNlYyBwa3Rz IHdoZW4gYSB0cmFmZmljIGZsb3dzIGFuZCB0aGUgaXBzZWMtDQo+Pj4gc2VjZ3cgYXBwbGljYXRp b24gaXMgc3RhcnRlZC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSG93ZXZlciBJIHJlbWVtYmVyIHRoYXQg ZHVyaW5nIHJldmlldyBvZiBldmVudCBtb2RlIHBhdGNoZXMgeW91DQo+Pj4+Pj4+IG1lbnRpb25l ZCB0aGF0IG1vdmluZyBzYV9pbml0KCkgYmVmb3JlIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgaXMgYW4N Cj4+Pj4+Pj4gaXNzdWUgZm9yIG9uZSBvZiB0aGUgSW50ZWwgZHJpdmVycy4NCj4+Pj4+Pg0KPj4+ Pj4+IFllcywgSSB0aGluayBzby4NCj4+Pj4+PiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2lu dC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fbWFpbHMuZHBkay5vcmdfDQo+Pj4+Pj4gYXJjaGl2ZXNf ZGV2XzIwMTktDQo+Pj4+DQo+Pj4gMkREZWNlbWJlcl8xNTM5MDguaHRtbCZkPUR3SUdhUSZjPW5L aldlYzJiNlIwbU95UGF6N3h0ZlEmcj1TY2hSDQo+Pj4gSGhFN0dMQw0KPj4+PiBqRVk0aTJhMWJ5 akNfRnBXZ1JMdHE0LQ0KPj4+PiBrTHZLcDNfODQmbT13M3hoOTRPeDR4SWhhYmZFLQ0KPj4+IG5E MlZiRVdiaDJKVG1pc2NWTWI2cEpaY1lvJnM9OXJEdFJQR0syUUJEDQo+Pj4+IEFjWThWUWYwSFF6 WElOdFF6dWN3SXhVN0RCMk5ENXMmZT0NCj4+Pj4+PiBNb3ZpbmcgdGhhdCBwaWVjZSBvZiBjb2Rl IChkZXZfc3RhcnQpIGFmdGVyIHNhX2luaXQoKSBicmVha3MgaXhnYmUgaW5saW5lLQ0KPj4+IGNy eXB0byBzdXBwb3J0Lg0KPj4+Pj4+IEFzIEkgdW5kZXJzdGFuZCwgYmVjYXVzZSBjb25maWd1cmVk IGlwc2VjIGZsb3dzIGRvbid0IHBlcnNpc3QgZGV2X3N0YXJ0KCkuDQo+Pj4+Pj4gQXQgbGVhc3Qg Zm9yIGl4Z2JlIFBNRC4NCj4+Pj4+PiBBbnkgcmVhc29uIHdoeSB0byBtb3ZlIHRoYXQgY29kZSBh dCBhbGw/DQo+Pj4+Pj4NCj4+Pj4+DQo+Pj4+PiBbTHVrYXN6XSBXZSdyZSBvYnNlcnZpbmcgaXNz dWUgaW4gaW5saW5lIG1vZGUuIFdoZW4gdHJhZmZpYyBmbG93cw0KPj4+Pj4gYW5kIGlwc2VjLXNl Y2d3IGFwcGxpY2F0aW9uIGlzIHN0YXJ0ZWQgdGhlbiBmb3Igc2hvcnQgcGVyaW9kIG9mIHRpbWUN Cj4+Pj4+IGlubGluZSBpcyBub3QgYXBwbGllZCBieSBIVyBhbmQgSVBzZWMgcGFja2V0cyByZWFj aCB0aGUgYXBwbGljYXRpb24uDQo+Pj4+PiBUaGlzIGlzIGJlY2F1c2UNCj4+Pj4+IHNhX2luaXQo KSAod2hpY2ggY3JlYXRlcyBzZWN1cml0eSBhc3NvY2lhdGlvbnMgU0FzIGZvciBIVykgaXMgZXhl Y3V0ZWQgYWZ0ZXINCj4+PiBydGVfZXRoX2Rldl9zdGFydCgpLg0KPj4+Pj4gVGhhdCdzIHRoZSBy ZWFzb24gSSBtb3ZlZCB0aGUgY29kZS4gQW5kIHRoYXQgbW92ZW1lbnQgZml4ZXMgdGhlDQo+Pj4+ PiBpc3N1ZSBiZWNhdXNlIG5vdyBTQXMgYXJlIGFscmVhZHkgY3JlYXRlZCB3aGVuIGV0aCBwb3J0 cyBhcmUgc3RhcnRlZC4NCj4+Pj4+DQo+Pj4+PiBXb3VsZCBpdCBiZSBwb3NzaWJsZSB0byBmaXgg dGhlIGl4Z2JlIHNvIHRoYXQgU0FzIHdvdWxkIHN1cnZpdmUNCj4+PiBydGVfZXRoX2Rldl9zdGFy dCgpID8NCj4+Pj4+IERvIHlvdSBoYXZlIGFueSBvdGhlciBpZGVhIGhvdyB3ZSBjb3VsZCBjb3Zl ciBib3RoIGNhc2VzID8NCj4+Pj4+DQo+Pj4+Pj4gID4gSXMgdGhpcyBzdGlsbCB0aGUgY2FzZSA/ DQo+Pj4+Pj4NCj4+Pj4+PiBBRkFJSywgeWVzLg0KPj4+Pj4+IFRoYW5rcyBmb3IgYnJpbmdpbmcg aXQgdG8gYXR0ZW50aW9uLg0KPj4+Pj4+IEtvbnN0YW50aW4NCj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+ Pj4+DQo+Pj4+Pj4+IFRoYW5rcywNCj4+Pj4+Pj4gTHVrYXN6DQo+Pj4+Pj4+DQo+Pj4+Pj4+IE9u IDA4LjA0LjIwMjAgMTM6MzIsIEx1a2FzeiBCYXJ0b3NpayB3cm90ZToNCj4+Pj4+Pj4+IEluIGlu bGluZSBldmVudCBtb2RlIHdoZW4gdHJhZmZpYyBmbG93cyBhbmQgdGhlIGlwc2VjLXNlY2d3IGFw cA0KPj4+Pj4+Pj4gaXMgc3RhcnRlZCB0aGVuIGZvciBzaG9ydCBwZXJpb2Qgb2YgdGltZSBJUHNl YyBwYWNrZXRzIGFycml2ZSBhdA0KPj4+Pj4+Pj4gYXBwbGljYXRpb24gd2l0aG91dCBiZWluZyBk ZWNyeXB0ZWQgYW5kIGFyZSBkcm9wcGVkIGJ5IHRoZQ0KPj4+Pj4+Pj4gYXBwbGljYXRpb24uIFRo aXMgaGFwcGVucyBiZWNhdXNlIGV0aCBwb3J0cyBhcmUgc3RhcnRlZCBiZWZvcmUNCj4+Pj4+Pj4+ IGNyZWF0aW9uIG9mIGlubGluZSBzZXNzaW9ucyBhbmQgSVBzZWMgZmxvd3MuIFRoaXMgZml4IHJl YXJyYW5nZXMNCj4+Pj4+Pj4+IHRoZSBjb2RlIGluIHN1Y2ggYSB3YXkgdGhhdCBldGggcG9ydHMg YXJlIGFsd2F5cyBzdGFydGVkIGFmdGVyDQo+Pj4+Pj4+PiBjcmVhdGlvbiBvZiBpbmxpbmUgc2Vz c2lvbnMgYW5kIElQc2VjIGZsb3dzLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IENoYW5nZS1JZDogSWZk ZGM0NDYwODJmYjI4OTdmODE1NTk1MTdmOTBlMWVlNjAzZTEzZjMNCj4+Pj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IEx1a2FzeiBCYXJ0b3NpayA8bGJhcnRvc2lrQG1hcnZlbGwuY29tPg0KPj4+Pj4+Pj4g LS0tDQo+Pj4+Pj4+PiAgZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRfaGVscGVyLmMgfCAyNg0K Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIGV4YW1wbGVzL2lwc2VjLXNlY2d3 L2lwc2VjLXNlY2d3LmMgIHwNCj4+Pj4+Pj4+IDI2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0t DQo+Pj4+Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlv bnMoLSkNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvaXBzZWMtc2Vj Z3cvZXZlbnRfaGVscGVyLmMNCj4+Pj4+Pj4+IGIvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRf aGVscGVyLmMNCj4+Pj4+Pj4+IGluZGV4IDA3NmYxZjIuLmRhODYxZTQgMTAwNjQ0DQo+Pj4+Pj4+ PiAtLS0gYS9leGFtcGxlcy9pcHNlYy1zZWNndy9ldmVudF9oZWxwZXIuYw0KPj4+Pj4+Pj4gKysr IGIvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRfaGVscGVyLmMNCj4+Pj4+Pj4+IEBAIC0xNTI2 LDcgKzE1MjYsNiBAQCBpbnQzMl90DQo+Pj4+Pj4+PiAgZWhfZGV2c19pbml0KHN0cnVjdCBlaF9j b25mICpjb25mKSAgew0KPj4+Pj4+Pj4gIAlzdHJ1Y3QgZXZlbnRtb2RlX2NvbmYgKmVtX2NvbmY7 DQo+Pj4+Pj4+PiAtCXVpbnQxNl90IHBvcnRfaWQ7DQo+Pj4+Pj4+PiAgCWludCByZXQ7DQo+Pj4+ Pj4+Pg0KPj4+Pj4+Pj4gIAlpZiAoY29uZiA9PSBOVUxMKSB7DQo+Pj4+Pj4+PiBAQCAtMTU1OCwx NiArMTU1Nyw2IEBAIGVoX2RldnNfaW5pdChzdHJ1Y3QgZWhfY29uZiAqY29uZikNCj4+Pj4+Pj4+ ICAJLyogRGlzcGxheSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uICovDQo+Pj4+Pj4+PiAgCWVo X2Rpc3BsYXlfY29uZihjb25mKTsNCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiAtCS8qIFN0b3AgZXRoIGRl dmljZXMgYmVmb3JlIHNldHRpbmcgdXAgYWRhcHRlciAqLw0KPj4+Pj4+Pj4gLQlSVEVfRVRIX0ZP UkVBQ0hfREVWKHBvcnRfaWQpIHsNCj4+Pj4+Pj4+IC0NCj4+Pj4+Pj4+IC0JCS8qIFVzZSBvbmx5 IHRoZSBwb3J0cyBlbmFibGVkICovDQo+Pj4+Pj4+PiAtCQlpZiAoKGNvbmYtPmV0aF9wb3J0bWFz ayAmICgxIDw8IHBvcnRfaWQpKSA9PSAwKQ0KPj4+Pj4+Pj4gLQkJCWNvbnRpbnVlOw0KPj4+Pj4+ Pj4gLQ0KPj4+Pj4+Pj4gLQkJcnRlX2V0aF9kZXZfc3RvcChwb3J0X2lkKTsNCj4+Pj4+Pj4+IC0J fQ0KPj4+Pj4+Pj4gLQ0KPj4+Pj4+Pj4gIAkvKiBTZXR1cCBldmVudGRldiAqLw0KPj4+Pj4+Pj4g IAlyZXQgPSBlaF9pbml0aWFsaXplX2V2ZW50ZGV2KGVtX2NvbmYpOw0KPj4+Pj4+Pj4gIAlpZiAo cmV0IDwgMCkgew0KPj4+Pj4+Pj4gQEAgLTE1ODksMjEgKzE1NzgsNiBAQCBlaF9kZXZzX2luaXQo c3RydWN0IGVoX2NvbmYgKmNvbmYpDQo+Pj4+Pj4+PiAgCQlyZXR1cm4gcmV0Ow0KPj4+Pj4+Pj4g IAl9DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gLQkvKiBTdGFydCBldGggZGV2aWNlcyBhZnRlciBzZXR0 aW5nIHVwIGFkYXB0ZXIgKi8NCj4+Pj4+Pj4+IC0JUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0X2lk KSB7DQo+Pj4+Pj4+PiAtDQo+Pj4+Pj4+PiAtCQkvKiBVc2Ugb25seSB0aGUgcG9ydHMgZW5hYmxl ZCAqLw0KPj4+Pj4+Pj4gLQkJaWYgKChjb25mLT5ldGhfcG9ydG1hc2sgJiAoMSA8PCBwb3J0X2lk KSkgPT0gMCkNCj4+Pj4+Pj4+IC0JCQljb250aW51ZTsNCj4+Pj4+Pj4+IC0NCj4+Pj4+Pj4+IC0J CXJldCA9IHJ0ZV9ldGhfZGV2X3N0YXJ0KHBvcnRfaWQpOw0KPj4+Pj4+Pj4gLQkJaWYgKHJldCA8 IDApIHsNCj4+Pj4+Pj4+IC0JCQlFSF9MT0dfRVJSKCJGYWlsZWQgdG8gc3RhcnQgZXRoIGRldiAl ZCwgJWQiLA0KPj4+Pj4+Pj4gLQkJCQkgICBwb3J0X2lkLCByZXQpOw0KPj4+Pj4+Pj4gLQkJCXJl dHVybiByZXQ7DQo+Pj4+Pj4+PiAtCQl9DQo+Pj4+Pj4+PiAtCX0NCj4+Pj4+Pj4+IC0NCj4+Pj4+ Pj4+ICAJcmV0dXJuIDA7DQo+Pj4+Pj4+PiAgfQ0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IGRpZmYgLS1n aXQgYS9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1zZWNndy5jDQo+Pj4+Pj4+PiBiL2V4YW1w bGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMNCj4+Pj4+Pj4+IGluZGV4IDVmZGU0ZjcuLmUw M2JkODkgMTAwNjQ0DQo+Pj4+Pj4+PiAtLS0gYS9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1z ZWNndy5jDQo+Pj4+Pj4+PiArKysgYi9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1zZWNndy5j DQo+Pj4+Pj4+PiBAQCAtMjgyOSw2ICsyODI5LDE5IEBAIG1haW4oaW50MzJfdCBhcmdjLCBjaGFy ICoqYXJndikNCj4+Pj4+Pj4+ICAJaWYgKHJldCA8IDApDQo+Pj4+Pj4+PiAgCQlydGVfZXhpdChF WElUX0ZBSUxVUkUsICJlaF9kZXZzX2luaXQgZmFpbGVkLCBlcnI9JWRcbiIsIHJldCk7DQo+Pj4+ Pj4+Pg0KPj4+Pj4+Pj4gKwkvKiBSZXBsaWNhdGUgZWFjaCBjb250ZXh0IHBlciBzb2NrZXQgKi8N Cj4+Pj4+Pj4+ICsJZm9yIChpID0gMDsgaSA8IE5CX1NPQ0tFVFMgJiYgaSA8IHJ0ZV9zb2NrZXRf Y291bnQoKTsgaSsrKSB7DQo+Pj4+Pj4+PiArCQlzb2NrZXRfaWQgPSBydGVfc29ja2V0X2lkX2J5 X2lkeChpKTsNCj4+Pj4+Pj4+ICsJCWlmICgoc29ja2V0X2N0eFtzb2NrZXRfaWRdLm1idWZfcG9v bCAhPSBOVUxMKSAmJg0KPj4+Pj4+Pj4gKwkJCShzb2NrZXRfY3R4W3NvY2tldF9pZF0uc2FfaW4g PT0gTlVMTCkgJiYNCj4+Pj4+Pj4+ICsJCQkoc29ja2V0X2N0eFtzb2NrZXRfaWRdLnNhX291dCA9 PSBOVUxMKSkgew0KPj4+Pj4+Pj4gKwkJCXNhX2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwg c29ja2V0X2lkKTsNCj4+Pj4+Pj4+ICsJCQlzcDRfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRd LCBzb2NrZXRfaWQpOw0KPj4+Pj4+Pj4gKwkJCXNwNl9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9p ZF0sIHNvY2tldF9pZCk7DQo+Pj4+Pj4+PiArCQkJcnRfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRf aWRdLCBzb2NrZXRfaWQpOw0KPj4+Pj4+Pj4gKwkJfQ0KPj4+Pj4+Pj4gKwl9DQo+Pj4+Pj4+PiAr DQo+Pj4+Pj4+PiAgCS8qIHN0YXJ0IHBvcnRzICovDQo+Pj4+Pj4+PiAgCVJURV9FVEhfRk9SRUFD SF9ERVYocG9ydGlkKSB7DQo+Pj4+Pj4+PiAgCQlpZiAoKGVuYWJsZWRfcG9ydF9tYXNrICYgKDEg PDwgcG9ydGlkKSkgPT0gMCkgQEAgLTI4NjYsMTkNCj4+Pj4+Pj4+ICsyODc5LDYgQEAgbWFpbihp bnQzMl90IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPj4+Pj4+Pj4gIAkJCXJ0ZV9leGl0KEVYSVRfRkFJ TFVSRSwgImZhaWxlZCBhdCByZWFzc2VtYmxlIGluaXQiKTsNCj4+Pj4+Pj4+ICAJfQ0KPj4+Pj4+ Pj4NCj4+Pj4+Pj4+IC0JLyogUmVwbGljYXRlIGVhY2ggY29udGV4dCBwZXIgc29ja2V0ICovDQo+ Pj4+Pj4+PiAtCWZvciAoaSA9IDA7IGkgPCBOQl9TT0NLRVRTICYmIGkgPCBydGVfc29ja2V0X2Nv dW50KCk7IGkrKykgew0KPj4+Pj4+Pj4gLQkJc29ja2V0X2lkID0gcnRlX3NvY2tldF9pZF9ieV9p ZHgoaSk7DQo+Pj4+Pj4+PiAtCQlpZiAoKHNvY2tldF9jdHhbc29ja2V0X2lkXS5tYnVmX3Bvb2wg IT0gTlVMTCkgJiYNCj4+Pj4+Pj4+IC0JCQkoc29ja2V0X2N0eFtzb2NrZXRfaWRdLnNhX2luID09 IE5VTEwpICYmDQo+Pj4+Pj4+PiAtCQkJKHNvY2tldF9jdHhbc29ja2V0X2lkXS5zYV9vdXQgPT0g TlVMTCkpIHsNCj4+Pj4+Pj4+IC0JCQlzYV9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNv Y2tldF9pZCk7DQo+Pj4+Pj4+PiAtCQkJc3A0X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwg c29ja2V0X2lkKTsNCj4+Pj4+Pj4+IC0JCQlzcDZfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRd LCBzb2NrZXRfaWQpOw0KPj4+Pj4+Pj4gLQkJCXJ0X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lk XSwgc29ja2V0X2lkKTsNCj4+Pj4+Pj4+IC0JCX0NCj4+Pj4+Pj4+IC0JfQ0KPj4+Pj4+Pj4gLQ0K Pj4+Pj4+Pj4gIAljaGVja19hbGxfcG9ydHNfbGlua19zdGF0dXMoZW5hYmxlZF9wb3J0X21hc2sp Ow0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+ICAJLyogbGF1bmNoIHBlci1sY29yZSBpbml0IG9uIGV2ZXJ5 IGxjb3JlICovDQo+Pj4+Pj4+Pg==