From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4BE9DC433EF for ; Thu, 3 Mar 2022 14:35:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234080AbiCCOgW (ORCPT ); Thu, 3 Mar 2022 09:36:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39402 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230193AbiCCOgU (ORCPT ); Thu, 3 Mar 2022 09:36:20 -0500 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70077.outbound.protection.outlook.com [40.107.7.77]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B067188841 for ; Thu, 3 Mar 2022 06:35:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XlPGaIGwcysl78kX6x12oAsMHmcR0mk5TD72MSa1P9LgwTvdGsAu4ql8tZndF5gyrn2gdoRJ4yKbvFRwUPeCT8mInOdUVnP9sTVhN8H3H/l1z4YDkXP3j4sQXOCchcQ9dr2XdkSQHyRgbUdNSb9br99seC7iYJGMJfvg4eM+xAJaSFT7i/EhAMpHVGufrGZJjHZfOectYeaxv0S4Iqu/I/OEb6jTaVTIn5sXr1mWDJeU83KiMMo1bNrMQA5gbKxVs8NIl6AyNoS1QBKIYswfaU8OhMxltkoAtrUJOx1iYdCMnJbwDlH9WQMKu3rEd7v24Vf43PdpJZJmfDcrQi+3Og== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=77WRloGznHPuMVgCP2EmgIluMWWd6qjVViNs1TTt390=; b=IUReOo1nwileadAz6FBRDM+5brMRG1/sMtgYJdU/W9rrDV0YgqbnFJ33DsnDFZF2sv1K/4adTV9P8pQhGCbJY1JYb+Xo+hubcAsag8MIzdLjPgTbjVbTKUv2xSH5cJwg4WdEed29uepw9MxrNhrr4bYcAW9MUgyLF7KbgrRCJg76YZuysy0Dh0v3qwH9O1g2iddMLwt1GNIqStmEIkA48r4P1eD/d4ju/VZd2lBr6Yjrkd5J/myKNcFE0wvzW2ImsvzcHhoK4zekOqKjppsia6//Al+y0RPhm0mQ6sAn/PVQW+e7OibkLph6acJYA2iSyVXV/+baLBgFoCdWUfdXow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=77WRloGznHPuMVgCP2EmgIluMWWd6qjVViNs1TTt390=; b=iz1EVgZRu2hvd4Q1MpkJYFcA3lDbSCEcWav+Dd2JcBJ7TUyT7Bcr0CyoS2EFAC1whpQ86gOSdNtmBgzjk+7sF7cdZbeRHsF97WrLvovbvx2WSGlrBK3SMJF9IMVm/9zfR47ilPvIiI1PpAyWU3d28QG5KRIc8Ytz003GOoHXMFg= Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by DB9PR04MB8409.eurprd04.prod.outlook.com (2603:10a6:10:244::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 3 Mar 2022 14:35:30 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::ac0c:d5d:aaa9:36]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::ac0c:d5d:aaa9:36%4]) with mapi id 15.20.5017.027; Thu, 3 Mar 2022 14:35:30 +0000 From: Vladimir Oltean To: =?utf-8?B?QWx2aW4gxaBpcHJhZ2E=?= CC: "netdev@vger.kernel.org" , Jakub Kicinski , "David S. Miller" , Florian Fainelli , Andrew Lunn , Vivien Didelot , Vladimir Oltean , Ido Schimmel , Tobias Waldekranz , Claudiu Manoil , Alexandre Belloni , "UNGLinuxDriver@microchip.com" Subject: Re: [PATCH net-next 00/10] DSA unicast filtering Thread-Topic: [PATCH net-next 00/10] DSA unicast filtering Thread-Index: AQHYLmnKbqJ8uFqvo0eudldhc5/zKaytuwiA Date: Thu, 3 Mar 2022 14:35:30 +0000 Message-ID: <20220303143529.jitz7x2d2ehp7jlh@skbuf> References: <20220302191417.1288145-1-vladimir.oltean@nxp.com> <87wnhbdyee.fsf@bang-olufsen.dk> <20220303131820.4qzrcrdtx7tlhaei@skbuf> <87h78fdsnn.fsf@bang-olufsen.dk> In-Reply-To: <87h78fdsnn.fsf@bang-olufsen.dk> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f4025a5c-a2ea-40ce-b0f8-08d9fd231168 x-ms-traffictypediagnostic: DB9PR04MB8409:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t72O4WQJFl6lU7RGn2YzP/tz6BWyhtaOMk0D0olQEUiN8YQGDRk+kMzsx0+Ve+LTXWY743yE4Bel0oYnEDn5DAVM6twLLoWV+NhqYnNsGW1TG3D/H9PDeJE81gdGPdh4kKBZkQsgA9/w06yPv9y/pofMBQiS9RNGs/azswFMubW9BGNr5X5v2lBKVObDInugiindWcK46n+222piOPU8AdIfqmZN4nW5WKh2byA3iuyUCo4b/EmPmUapuV3z0z2+KPjN99zUM3I7FVX1Y+i7fabzyeiO7BTdpzS0fJ+/GkP+9g8TsXzdABs7B57Raq2cpOCOMnTcbkoBxs1gWHNifuQYp7SvG7jXPmpopkTAekjT8J+I7eEijwpY4C92tIr3iFN0gZWqoOX8B4QQctyqa3PeLpHmsVpTll0OAUkCdqJNaMw9QD861jSm9WWr4oZ3GRJdiJEF+zizotWzEbB6oA4akjbYwNOyw87HvSJfNsl8uxXjA4XQ4wcvDrd/mWINhxYUvwEPmR9y9vqpb3uBwHim2DbWN1H1qYdDW5KcLzSo9xuHDZOh/I6mvQ1CqjvLxk8YBKQDlTUb2wbgCsmhLE9ImqGbjpwapJ+c/1QyiHISbU1rTEWRSwZrdf7GjrGUa3raAi0ZCgFrTzmcYa1SKG4kqXQ8yb4tkVxoAxbUusgljzWfr1SlUGIjaQ51dEUMsBHfwWxOfPZMdLe4tdZejg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5136.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(7916004)(4636009)(366004)(38070700005)(122000001)(54906003)(6916009)(26005)(86362001)(1076003)(8936002)(44832011)(2906002)(83380400001)(66446008)(33716001)(66574015)(76116006)(66946007)(66556008)(5660300002)(186003)(64756008)(66476007)(7416002)(8676002)(4326008)(6506007)(38100700002)(71200400001)(498600001)(6512007)(6486002)(9686003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V0FoT1FmVWhjclowYTBMcTBkS2psM0RObVo2Nk1IMXlRNW9BSTUzUGFlSWpC?= =?utf-8?B?ZzhYVU4xZnVwaTZpNUJaVlhrbWh6Q2JLMkdzWThqekRTSTJHeGhWSVpqTEZO?= =?utf-8?B?YVg2aC9nc01qQU45MGdRTU5IcnU0dkxSVnpmMUtuc002VmEzd1d6RGRaVnJy?= =?utf-8?B?bjY2VEVkZHA2ZFFTdGUwMG0xdnlGQ3YvVW5lYjFHdFlQMVNKYTdlb3B5VTFq?= =?utf-8?B?TXpNUGg3UnRvei9oSUFpaUZuQXhCeGJxMWp1MW9TU05xblFkVjdkTGJqWFR0?= =?utf-8?B?WjYyekt1MHQzZTg5NTVoVE1EcGo5dXdQa2dxU0JEeFQvMEw4QkxiaFFaWUEr?= =?utf-8?B?WEpZQ3VZVk5ZdWR2UUFlN3ZwM0hpeFpZV1hXWGVKQVVETVIvbmpsVUJhZEln?= =?utf-8?B?Q3Brbmh5MUxYQUh0bFoyM29ueEhwZGlxZXNvUSs2b3F5TCtGWFpraFpGMVlH?= =?utf-8?B?RExWN1JaUHZyT0I3eE1HekFYUnZQMkI1T1VKVzN1dmpyT0YwR1hBUElpNXFC?= =?utf-8?B?TjYyWGNZUm00ZDFqNURZZVU2Y2lHdFdldzYrQ21oc2wvYjVyNUZueGR5Z21n?= =?utf-8?B?L1JHMkRmbXgzRkowb2o1Y2h3RUFZQ0xvalRBZnMzNWhXYmhES2xNMmsrMnBk?= =?utf-8?B?UDZuUUo2ZTVwN3lJb0Q4K3VNd1drZVdWd2JkaENtZTJabldvYzEvL0lHTzYv?= =?utf-8?B?NS9tMXI4ZExVV1ppem1VR3BGUmw5blFPNDVRbEcvQml0QVM0S1NheXRDRVJx?= =?utf-8?B?NXRYVWF0d2VlL09tT29HNXUzN0xoRGpmem9DU05RRWlFZyt6OUthZXNCNlpU?= =?utf-8?B?VU1LM291THBML3ErYWRIUFFVRkVhV1hLN09pc0UveU9ZYjN2a0VXQXhCRVc0?= =?utf-8?B?Q3k1YnFQd1lwTHZyTXRVWHNCS21hSTJDcVQ0Z0kvajdwN1BBcVVOM05XckNy?= =?utf-8?B?MVVKaXlKODJRd09kN2pySHloRFZ1RncvdStzTE9mTGhPWklHcUw3VnFHN3JP?= =?utf-8?B?eEJCaEVVY21HU0d2NXZnYkpLcnZUMXdIVEM1VHZFdkhJdDdyeFNBeHZRRm9n?= =?utf-8?B?UTMwNm9OMWkyMjRtaWQ0blVFWFZOdE1TWHhlN0YwMzdmRzdLOVBMVVFQVVAv?= =?utf-8?B?U0kyeUk2Qm53Qi9EK0UvYnFQS3htQUpuandid3JRa01jRmpVeFFmN2k1TC96?= =?utf-8?B?SGZ1dGNjbzRNTkdnYmp6ZHB1Q1J4N2NGZ0NjQmZYeDNPMUNqVnE2UFROY0RS?= =?utf-8?B?N05DZ25kU0dZeTBWa3ZjbzFjcUNJTGNieTQ4ZEU4aVcrYWdrZENyZ3hWbERQ?= =?utf-8?B?bDhpdXlENExtMGdlYzcrZUdEeWFCZVB3U1Q0RGNGUGduclhBZzNkeVR6cnIz?= =?utf-8?B?cEFubHg4SjRTNzROMm1KaEVoY0diankzdUt6WWd5U3E0dnRlbm84SkJoV0JJ?= =?utf-8?B?bERzakVwU2hxTHJMN2JQQnJlazdUWmJPUklxd0pwcktxanhpWG51TnduSGZy?= =?utf-8?B?RVRnazczQ25uS2VjQ3RvOUE3ZlBOWFFCNUdEalNwb25zem5jYy9jU0g5WnFH?= =?utf-8?B?UVY3M1IwdEV6NDB1akMrWFREWUtEMFdPSXM3bEdYS2ZyNUx6b05KZWJacVQv?= =?utf-8?B?UjdiVWUwTFF6RTRWTk82TzZ2czNYazNPK2hRakh6QnhvVjJHd3d2R3cwaDk4?= =?utf-8?B?OW5TUFA4dXZnU0NqdFNubW9zdW9rNnl6N1lVdFZOSUFxNFlkbDFweFA3ZnpW?= =?utf-8?B?bEJpNkNRL20zM2V4Q044MWxTS0Q4dzZ2bldVK3BJM2haUnhkNFVVbjRZSzRO?= =?utf-8?B?TTBFRXh2dE5EOWk2RkFzaWtVUHJyVUpFVUJPbFViWjVVTVhxQ2IyaGE1ZUpw?= =?utf-8?B?SUZucGtFRGxXMDNTNytEMUZsNVo3Mkk4dlNoK2FLRWN4dDB2N0hVZFV4MC9X?= =?utf-8?B?TjVtOXNUTk5yTkJ6Z284bE04OHFObk9lekdPVTF2eEx5VlZEL0dTeHFpdUlX?= =?utf-8?B?Z283Q05hNU1leHZ2MTB4THY0Q0lSQlN3YjZ3L0RIY2VTOVcySVIvWUFxSzF5?= =?utf-8?B?b3g4Q3dMUFU3bmt0M2ZqeWlXM1p6UHJBOEtmbkloYUtVZlQyUTQveW95TzlT?= =?utf-8?B?M1VQTFJNenUvWWdRWkZRRlpXU1FEQ3RZUlg4MTlRWm5waFpMVzdiTTdGUlk1?= =?utf-8?Q?hPr3jk7m7hxoR/LjrFx7LGc=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <74BDC66B868BDC4999AD0E2DB8C96415@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4025a5c-a2ea-40ce-b0f8-08d9fd231168 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2022 14:35:30.5986 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Q2QIGEWy/6jp9GgqHNQgraNBg7Q7dfzrq9snZjGqvr8AeMhVPNONeHxQd9U9NUdp2WmNgK14Gagr+Q/Ed8hSIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8409 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org T24gVGh1LCBNYXIgMDMsIDIwMjIgYXQgMDI6MjA6MjlQTSArMDAwMCwgQWx2aW4gxaBpcHJhZ2Eg d3JvdGU6DQo+IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFuQG54cC5jb20+IHdyaXRl czoNCj4gDQo+ID4gSGkgQWx2aW4sDQo+ID4NCj4gPiBPbiBUaHUsIE1hciAwMywgMjAyMiBhdCAx MjoxNjoyNlBNICswMDAwLCBBbHZpbiDilLzDoWlwcmFnYSB3cm90ZToNCj4gPj4gSGkgVmxhZGlt aXIsDQo+ID4+IA0KPiA+PiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29t PiB3cml0ZXM6DQo+ID4+IA0KPiA+PiA+IFRoaXMgc2VyaWVzIGRvZXNuJ3QgYXR0ZW1wdCBhbnl0 aGluZyBleHRyZW1lbHkgYnJhdmUsIGl0IGp1c3QgY2hhbmdlcw0KPiA+PiA+IHRoZSB3YXkgaW4g d2hpY2ggc3RhbmRhbG9uZSBwb3J0cyB3aGljaCBzdXBwb3J0IEZEQiBpc29sYXRpb24gd29yay4N Cj4gPj4gPg0KPiA+PiA+IFVwIHVudGlsIG5vdywgRFNBIGhhcyByZWNvbW1lbmRlZCB0aGF0IHN3 aXRjaCBkcml2ZXJzIGNvbmZpZ3VyZQ0KPiA+PiA+IHN0YW5kYWxvbmUgcG9ydHMgaW4gYSBzZXBh cmF0ZSBWSUQvRklEIHdpdGggbGVhcm5pbmcgZGlzYWJsZWQsIGFuZCB3aXRoDQo+ID4+ID4gdGhl IENQVSBwb3J0IGFzIHRoZSBvbmx5IGRlc3RpbmF0aW9uLCByZWFjaGVkIHRyaXZpYWxseSB2aWEg Zmxvb2RpbmcuDQo+ID4+ID4gVGhhdCB3b3JrcywgZXhjZXB0IHRoYXQgc3RhbmRhbG9uZSBwb3J0 cyB3aWxsIGRlbGl2ZXIgYWxsIHBhY2tldHMgdG8gdGhlDQo+ID4+ID4gQ1BVLiBXZSBjYW4gbGV2 ZXJhZ2UgdGhlIGhhcmR3YXJlIEZEQiBhcyBhIE1BQyBEQSBmaWx0ZXIsIGFuZCBkaXNhYmxlDQo+ ID4+ID4gZmxvb2RpbmcgdG93YXJkcyB0aGUgQ1BVIHBvcnQsIHRvIGZvcmNlIHRoZSBkcm9wcGlu ZyBvZiBwYWNrZXRzIHdpdGgNCj4gPj4gPiB1bmtub3duIE1BQyBEQS4NCj4gPj4gPg0KPiA+PiA+ IFdlIGhhbmRsZSBwb3J0IHByb21pc2N1aXR5IGJ5IHJlLWVuYWJsaW5nIGZsb29kaW5nIHRvd2Fy ZHMgdGhlIENQVSBwb3J0Lg0KPiA+PiA+IFRoaXMgaXMgcmVsZXZhbnQgYmVjYXVzZSB0aGUgYnJp ZGdlIHB1dHMgaXRzIGF1dG9tYXRpYyAobGVhcm5pbmcgKw0KPiA+PiA+IGZsb29kaW5nKSBwb3J0 cyBpbiBwcm9taXNjdW91cyBtb2RlLCBhbmQgdGhpcyBtYWtlcyBzb21lIHRoaW5ncyB3b3JrDQo+ ID4+ID4gYXV0b21hZ2ljYWxseSwgbGlrZSBmb3IgZXhhbXBsZSBicmlkZ2luZyB3aXRoIGEgZm9y ZWlnbiBpbnRlcmZhY2UuDQo+ID4+ID4gV2UgZG9uJ3QgZGVsdmUgeWV0IGludG8gdGhlIHRlcnJp dG9yeSBvZiBtYW5hZ2luZyBDUFUgZmxvb2RpbmcgbW9yZQ0KPiA+PiA+IGFnZ3Jlc3NpdmVseSB3 aGlsZSB1bmRlciBhIGJyaWRnZS4NCj4gPj4gPg0KPiA+PiA+IFRoZSBvbmx5IHN3aXRjaCBkcml2 ZXIgdGhhdCBiZW5lZml0cyBmcm9tIHRoaXMgd29yayByaWdodCBub3cgaXMgdGhlDQo+ID4+ID4g TlhQIExTMTAyOEEgc3dpdGNoIChmZWxpeCkuIFRoZSBvdGhlcnMgbmVlZCB0byBpbXBsZW1lbnQg RkRCIGlzb2xhdGlvbg0KPiA+PiA+IGZpcnN0LCBiZWZvcmUgRFNBIGlzIGdvaW5nIHRvIGluc3Rh bGwgZW50cmllcyB0byB0aGUgcG9ydCdzIHN0YW5kYWxvbmUNCj4gPj4gPiBkYXRhYmFzZS4gT3Ro ZXJ3aXNlLCB0aGVzZSBlbnRyaWVzIG1pZ2h0IGNvbGxpZGUgd2l0aCBicmlkZ2UgRkRCL01EQg0K PiA+PiA+IGVudHJpZXMuDQo+ID4+ID4NCj4gPj4gPiBUaGlzIHdvcmsgd2FzIGRvbmUgbWFpbmx5 IHRvIGhhdmUgYWxsIHRoZSByZXF1aXJlZCBmZWF0dXJlcyBpbiBwbGFjZQ0KPiA+PiA+IGJlZm9y ZSBzb21lYm9keSBzdGFydHMgc2VyaW91c2x5IGFyY2hpdGVjdGluZyBEU0Egc3VwcG9ydCBmb3Ig bXVsdGlwbGUNCj4gPj4gPiBDUFUgcG9ydHMuIE90aGVyd2lzZSBpdCBpcyBtdWNoIG1vcmUgZGlm ZmljdWx0IHRvIGJvbHQgdGhlc2UgZmVhdHVyZXMgb24NCj4gPj4gPiB0b3Agb2YgbXVsdGlwbGUg Q1BVIHBvcnRzLg0KPiA+PiANCj4gPj4gU28sIHByZXZpb3VzbHkgRkRCIGVudHJpZXMgd2VyZSBv bmx5IGluc3RhbGxlZCBvbiBicmlkZ2VkIHBvcnRzLiBOb3cgeW91DQo+ID4+IGFsc28gd2FudCB0 byBpbnN0YWxsIEZEQiBlbnRyaWVzIG9uIHN0YW5kYWxvbmUgcG9ydHMgc28gdGhhdCBmbG9vZGlu Zw0KPiA+PiBjYW4gYmUgZGlzYWJsZWQgb24gc3RhbmRhbG9uZSBwb3J0cyBmb3IgdGhlIHJlYXNv bnMgc3RhdGVkIGluIHlvdXIgY292ZXINCj4gPj4gbGV0dGVyLg0KPiA+DQo+ID4gTm90ICJvbiBz dGFuZGFsb25lIHBvcnRzIiwgYnV0IG9uIHRoZSBDUFUgcG9ydHMsIGZvciB0aGUgc3RhbmRhbG9u ZQ0KPiA+IHBvcnRzJyBhZGRyZXNzZXMuIE90aGVyd2lzZSwgeWVzLg0KPiA+DQo+ID4+IFRvIGlt cGxlbWVudCBGREIgaXNvbGF0aW9uIGluIGEgRFNBIGRyaXZlciwgYSB0eXBpY2FsIGFwcHJvYWNo IG1pZ2h0IGJlDQo+ID4+IHRvIHVzZSBhIGZpbHRlciBJRCAoRklEKSBmb3IgdGhlIEZEQiBlbnRy aWVzIHRoYXQgaXMgdW5pcXVlIHBlcg0KPiA+PiBicmlkZ2UuIFRoYXQgaXMsIHNpbmNlIEZEQiBl bnRyaWVzIHdlcmUgb25seSBhZGRlZCBvbiBicmlkZ2VkIHBvcnRzDQo+ID4+ICh0aHJvdWdoIGxl YXJuaW5nIG9yIHN0YXRpYyBlbnRyaWVzIGFkZGVkIGJ5IHNvZnR3YXJlKSwgdGhlIERTQSBkcml2 ZXINCj4gPj4gY291bGQgcmVhZGlseSB1c2UgdGhlIGJyaWRnZV9udW0gb2YgdGhlIGJyaWRnZSB0 aGF0IGlzIGJlaW5nIG9mZmxvYWRlZA0KPiA+PiB0byBzZWxlY3QgdGhlIEZJRC4gVGhlIHNhbWUg YnJpZGdlX251bS9GSUQgd291bGQgYmUgdXNlZCBieSB0aGUgaGFyZHdhcmUNCj4gPj4gZm9yIGxv b2t1cC9sZWFybmluZyBvbiB0aGUgZ2l2ZW4gcG9ydC4NCj4gPg0KPiA+IFllcyBhbmQgbm8uICJG SUQiIGlzIGEgZG91YmxlLWVkZ2VkIHN3b3JkLCBpdCB3aWxsIGFjdHVhbGx5IGRlcGVuZCB1cG9u DQo+ID4gaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uIEZJRCBpbiBnZW5lcmFsIGlzIGEgbWVjaGFu aXNtIGZvciBGREINCj4gPiBwYXJ0aXRpb25pbmcuIElmIHRoZSBWSUQtPkZJRCB0cmFuc2xhdGlv biBpcyBrZXllZCBvbmx5IGJ5IFZJRCwgdGhlbiB0aGUNCj4gPiBvbmx5IGludGVuZGVkIHVzZSBj YXNlIGZvciB0aGF0IGlzIHRvIHN1cHBvcnQgc2hhcmVkIFZMQU4gbGVhcm5pbmcsDQo+ID4gd2hl cmUgYWxsIFZJRHMgdXNlIHRoZSBzYW1lIEZJRCAoPT4gdGhlIHNhbWUgZGF0YWJhc2UgZm9yIGFk ZHJlc3NlcykuDQo+ID4gVGhpcyBpc24ndCB2ZXJ5IGludGVyZXN0aW5nIGZvciB1cy4NCj4gPiBJ ZiB0aGUgVklELT5GSUQgdHJhbnNsYXRpb24gaXMga2V5ZWQgYnkge3BvcnQsIFZJRH0sIGl0IGlz IHRoZW4gcG9zc2libGUNCj4gPiB0byBtYWtlIFZJRHMgb24gZGlmZmVyZW50IHBvcnRzIChwYXJ0 IG9mIGRpZmZlcmVudCBicmlkZ2VzKSB1c2UNCj4gPiBkaWZmZXJlbnQgRklEcywgYW5kIHRoYXQg aXMgd2hhdCBpcyBpbnRlcmVzdGluZy4NCj4gPg0KPiA+PiBJZiB0aGUgYWJvdmUgZ2VuZXJhbCBz dGF0ZW1lbnRzIGFyZSBjb3JyZWN0LWlzaCwgdGhlbiBteSBxdWVzdGlvbiBoZXJlDQo+ID4+IGlz OiB3aGF0IHNob3VsZCBiZSB0aGUgRklEIC0gb3Igb3RoZXIgZXF1aXZhbGVudCB1bmlxdWUgaWRl bnRpZmllciB1c2VkDQo+ID4+IGJ5IHRoZSBoYXJkd2FyZSBmb3IgRkRCIGlzb2xhdGlvbiAtIHdo ZW4gdGhlIHBvcnQgaXMgbm90IG9mZmxvYWRpbmcgYQ0KPiA+PiBicmlkZ2UsIGJ1dCBpcyBzdGFu ZGFsb25lPyBJZiBGREIgaXNvbGF0aW9uIGlzIGltcGxlbWVudGVkIGluIGhhcmR3YXJlDQo+ID4+ IHdpdGggc29tZXRoaW5nIGxpa2UgRklEcywgdGhlbiBkbyBhbGwgc3RhbmRhbG9uZSBwb3J0cyBu ZWVkIHRvIGhhdmUgYQ0KPiA+PiB1bmlxdWUgRklEPw0KPiA+DQo+ID4gTm90IG5lY2Vzc2FyaWx5 LCBhbHRob3VnaCBhcyBmYXIgYXMgdGhlIERTQSBjb3JlIGlzIGNvbmNlcm5lZCwgd2UgdHJlYXQN Cj4gPiBkcml2ZXJzIHN1cHBvcnRpbmcgRkRCIGlzb2xhdGlvbiBhcyB0aG91Z2ggZWFjaCBwb3J0 IGhhcyBpdHMgb3duIGRhdGFiYXNlLg0KPiA+IEZvciBleGFtcGxlLCB0aGUgc2phMTEwNSBkcml2 ZXIgcmVhbGx5IGhhcyB1bmlxdWUgVklEcyAoPT4gRklEcykgcGVyDQo+ID4gc3RhbmRhbG9uZSBw b3J0LCBzbyBpZiB3ZSBkaWRuJ3QgdHJlYXQgaXQgdGhhdCB3YXksIGl0IHdvdWxkbid0IHdvcmsu DQo+IA0KPiBJIHRoaW5rIEknbSBub3QgcXVpdGUgZ3Jva2tpbmcgd2hhdCBpdCBtZWFucyBmb3Ig YSBwb3J0IHRvIGhhdmUgaXRzIG93bg0KPiBkYXRhYmFzZS4gQWJvdmUgeW91IGNvcnJlY3RlZCBt ZSBieSBzdGF0aW5nIHRoYXQgdGhpcyBwYXRjaHNldCBkb2VzIG5vdA0KPiBpbnN0YWxsIEZEQiBl bnRyaWVzICJvbiBzdGFuZGFsb25lIHBvcnRzIiwgYnV0IG9uIHRoZSBDUFUgcG9ydHMuIFRoZSB3 YXkNCj4gSSBwYXJzZSB0aGlzIGlzOiB5b3UgYXJlIGFkZGluZyBhbiBGREIgZW50cnkgdG8gdGhl IGRhdGFiYXNlIG9mIHRoZQ0KPiBDUFUgcG9ydC4NCg0KTm8uIEkgYW0gYWRkaW5nIGFuIEZEQiBl bnRyeSBfdG93YXJkc18gdGhlIENQVSBwb3J0Lg0KDQpQZXJoYXBzIEkgbmVlZCB0byBjbGFyaWZ5 IHdoYXQgSSBtZWFuIGJ5IGEgImRhdGFiYXNlIi4gSXQgaXMgYSBjb25zdHJ1Y3QNCnVzZWQgYnkg RFNBIHRvIGRlbm90ZSAid2hpY2ggc3Vic2V0IG9mIHBvcnRzIHNob3VsZCBtYXRjaCB0aGlzIGVu dHJ5Ii4NClRoZSBlbnRyaWVzIGZyb20gdGhlIGRhdGFiYXNlIG9mIGEgcG9ydCBzaG91bGQgb25s eSBiZSBtYXRjaGVkIGJ5IHRoYXQNCnBvcnQgd2hlbiBpdCBvcGVyYXRlcyBhcyBzdGFuZGFsb25l LiBOb3QgYnkgb3RoZXIgcG9ydHMsIG5vdCBieSBicmlkZ2VkDQpwb3J0cy4NClRoZSBlbnRyaWVz IGZyb20gdGhlIGRhdGFiYXNlIG9mIGEgYnJpZGdlIHNob3VsZCBvbmx5IGJlIG1hdGNoZWQgYnkg dGhlDQpwb3J0cyBpbiB0aGF0IGJyaWRnZS4gTm90IGJ5IHBvcnRzIGluIG90aGVyIGJyaWRnZXMs IG5vdCBieSBzdGFuZGFsb25lDQpwb3J0cy4NClRoZSBlbnRyaWVzIGZyb20gdGhlIGRhdGFiYXNl IG9mIGEgTEFHIHNob3VsZCBvbmx5IGJlIG1hdGNoZWQgYnkgdGhlDQpwb3J0cyBpbiB0aGF0IExB Ry4NCg0KVGhlIEZEQiBlbnRyaWVzIGFkZGVkIGhlcmUgYmVsb25nIHRvIHRoZSBkYXRhYmFzZSBv ZiBhIHN0YW5kYWxvbmUgcG9ydC4NClRoaXMgaXMgbmVjZXNzYXJ5LCBiZWNhdXNlIGNsYXNzaWZ5 aW5nIHRoZSBwYWNrZXQgdG8gYSBGSUQgaXMgZG9uZSBvbg0KdGhlIGluZ3Jlc3MgKD0+IHN0YW5k YWxvbmUpIHBvcnQuIEJ1dCB0aGUgZGVzdGluYXRpb24gaXMgdGhlIENQVSBwb3J0Lg0KDQpBbGwg c2hhcmVkIChEU0EgYW5kIENQVSkgcG9ydHMgc2VydmUgbXVsdGlwbGUgZGF0YWJhc2VzLg0KDQo+ IEJ1dCBob3cgd291bGQgdGhhdCBoZWxwIHdpdGggdGhlICJsaW5lIHNpZGUgdG8gQ1BVIHNpZGUi DQo+IGRpcmVjdGlvbj8gV2hlbiBhIHBhY2tldCBmcm9tIHRoZSAibGluZSBzaWRlIiBlbnRlcnMg b25lIG9mIHRoZQ0KPiAoc3RhbmRhbG9uZSkgdXNlciBwb3J0cywgdGhlIHN3aXRjaCB3b3VsZCBh cHBlYWwgdG8gdGhlIGZvcndhcmRpbmcNCj4gZGF0YWJhc2Ugb2YgdGhhdCBwb3J0LCBub3QgdGhl IENQVSBwb3J0LCBubz8gU28gaG93IGRvZXMgaXQgaGVscCB0bw0KPiBpbnN0YWxsIEZEQiBlbnRy aWVzIG9uIHRoZSBDUFUgcG9ydChzKT8NCg0KU2VlIGFib3ZlLiBUaGlzIGlzIGV4YWN0bHkgd2h5 IHdlIHBhc3MgdGhlIHN0cnVjdCBkc2FfZGIgYXMgYXJndW1lbnQgdG8NCi5wb3J0X2ZkYl9hZGQo KSwgYW5kIHdoeSB5b3UgY2FuJ3QganVzdCBkZWR1Y2UgdGhlIGRhdGFiYXNlIGZyb20gdGhlDQpw cm92aWRlZCAicG9ydCIgYXJndW1lbnQuIFRoZSBDUFUgcG9ydCBtdXN0IHNlcnZlIHRoZSBkYXRh YmFzZXMgb2YNCnN0YW5kYWxvbmUgcG9ydHMuDQoNCj4gQmFzaWNhbGx5IGZvciBhIHN3aXRjaCB3 aXRoIHR3byBwb3J0cywgc3dwMCBhbmQgc3dwMSwgd2l0aCBNQUMgYWRkcmVzc2VzDQo+IGZvbyBh bmQgYmFyIHJlc3BlY3RpdmVseSwgd2Ugd2FudCB0aGUgZm9sbG93aW5nIEZEQiBlbnRyaWVzIHRv IGJlDQo+IGluc3RhbGxlZCB3aGVuIGJvdGggcG9ydHMgYXJlIGluIHN0YW5kYWxvbmUgbW9kZToN Cj4gDQo+ICAgICBNQUMgfCBWSUQgfCBQT1JUDQo+ICAgICAtLS0tKy0tLS0tKy0tLS0tLS0tLS0t LS0NCj4gICAgIGZvbyB8ICAwICB8IGNwdV9wb3J0X251bQ0KPiAgICAgYmFyIHwgIDAgIHwgY3B1 X3BvcnRfbnVtDQo+IA0KPiBTdWNoIHRoYXQsIHdoZW4gc3dwMCByZWNlaXZlcyBhIHBhY2tldCB3 aXRoIE1BQyBEQSAnZm9vJywgaXQga25vd3MgdG8NCj4gZm9yd2FyZCB0aGF0IHBhY2tldCB0byBj cHVfcG9ydF9udW0sIGkuZS4gdG93YXJkcyB0aGUgQ1BVIHBvcnQsIGluc3RlYWQNCj4gb2YgZmxv b2RpbmcvZHJvcHBpbmcvdHJhcHBpbmcgaXQuIEFuZCBkaXR0byBmb3Igc3dwMiBhbmQgJ2Jhcicu IFJpZ2h0Pw0KPiANCj4gTm93IERTQSBhc3N1bWVzIHRoYXQgZWFjaCBwb3J0IGhhcyBpdHMgb3du IGZvcndhcmRpbmcgZGF0YWJhc2UsIHNvIGxldA0KPiBtZSBhbm5vdGF0ZSBob3cgSSBzZWUgdGhh dCBieSBhZGRpbmcgYW5vdGhlciBjb2x1bW4gIlBPUlQgREIiOg0KPiANCj4gICAgIE1BQyB8IFZJ RCB8IFBPUlQgICAgICAgICB8IFBPUlQgREINCj4gICAgIC0tLS0rLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0NCj4gICAgIGZvbyB8ICAwICB8IGNwdV9wb3J0X251bSB8IHN3cDBf cG9ydF9udW0gIFsqXQ0KPiAgICAgYmFyIHwgIDAgIHwgY3B1X3BvcnRfbnVtIHwgc3dwMV9wb3J0 X251bSAgWyoqXQ0KPiANCj4gVGhpcyBjb2RpZmllcyBiZXR0ZXIgdGhhdCB0aGUgZW50cnkgZm9y ICdmb28nIHNob3VsZCwgaWRlYWxseSwgb25seSBiZQ0KPiB1c2VkIGJ5IHRoZSBzd2l0Y2ggd2hl biBpdCByZWNlaXZlcyBhIHBhY2tldCBmcm9tICdmb28nIG9uIHN3cDAsIGJ1dCBub3QNCj4gaWYg aXQncyByZWNlaXZlZCBvbiBzd3AxLCBldGMuIEludGVybmFsbHkgdGhpcyBtaWdodCBiZSB3ZWFr ZW5lZCB0byB0aGUNCj4gc2FtZSB1bmRlcmx5aW5nIEZJRCwgYnV0IGFzIHlvdSBhbHJlYWR5IHBv aW50ZWQgb3V0LCB0aGlzIGlzIGFjY2VwdGFibGUuDQo+IA0KPiBPdmVyYWxsIHRoaXMgc2VlbXMg bG9naWNhbCBhbmQgT0sgdG8gbWUsIGJ1dCBJIGNhbid0IHJlY29uY2lsZSBpdCB3aXRoDQo+IHlv dXIgc3RhdGVtZW50IHRoYXQgdGhlIEZEQiBlbnRyaWVzIGluIHF1ZXN0aW9uIGFyZSBpbnN0YWxs ZWQgIm9uIHRoZQ0KPiBDUFUgcG9ydCIuIFdvdWxkbid0IHRoYXQgbG9vayBsaWtlIHRoaXM/DQo+ IA0KPiAgICAgTUFDIHwgVklEIHwgUE9SVCAgICAgICAgIHwgUE9SVCBEQg0KPiAgICAgLS0tLSst LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tDQo+ICAgICBmb28gfCAgMCAgfCBjcHVf cG9ydF9udW0gfCBjcHVfcG9ydF9udW0NCj4gICAgIGJhciB8ICAwICB8IGNwdV9wb3J0X251bSB8 IGNwdV9wb3J0X251bQ0KPiANCj4gLi4uIHdoaWNoIHNlZW1zIHdyb25nLg0KDQpTZWUgYWJvdmUu IEJhc2ljYWxseSwgd2hlbiBJIHNheSAiaW5zdGFsbCBhIEZEQiBlbnRyeSBvbiBwb3J0IFgiLCBJ IG1lYW4NCiJpbnN0YWxsIGl0IGFuZCBtYWtlIGl0IHBvaW50IHRvd2FyZHMgcG9ydCBYIi4gTWF5 YmUgSSBzaG91bGQgYmUgbW9yZQ0Kc3BlY2lmaWMuDQoNCj4gSSdtIHN1c3BlY3RpbmcvaG9waW5n IHRoYXQgbXkgYWJvdmUgbWlzdW5kZXJzdGFuZGluZyBpcyBqdXN0IGEgbWF0dGVyDQo+IG9mIHRl cm1pbm9sb2d5LiBGb3IgdGhlIHNha2Ugb2YgZW1waGFzaXMsIGFsbG93IG1lIHRvIGRlc2NyaWJl IGluIHBsYWluDQo+IEVuZ2xpc2ggdGhlIEZEQiBlbnRyaWVzIFsqXSBhbmQgWyoqXSBhYm92ZToN Cj4gDQo+ICBbKl0gYWRkIGFuIEZEQiBlbnRyeSBvbiBzd3AwIHdoZXJlIFt0aGUgaG9zdC9zdGF0 aW9uPyB3aXRoXSBNQUMgYWRkcmVzcw0KPiAgICAgICdmb28nIGlzIGJlaGluZCB0aGUgQ1BVIHBv cnQgb24gVklEIDANCj4gWyoqXSBhZGQgYW4gRkRCIGVudHJ5IG9uIHN3cDEgd2hlcmUgW3RoZSBo b3N0L3N0YXRpb24/IHdpdGhdIE1BQyBhZGRyZXNzDQo+ICAgICAgJ2JhcicgaXMgYmVoaW5kIHRo ZSBDUFUgcG9ydCBvbiBWSUQgMA0KPiANCj4gTWVyZWx5IGFuIGF0dGVtcHQsIGFuZCBwZXJoYXBz IG5vdCBpZGlvbWF0aWMsIGJ1dCBub3cgeW91IGNhbiB0ZWxsIG1lDQo+IHdoYXQncyB3cm9uZyBp biBkZXNjcmliaW5nIGl0IHRoYXQgd2F5IDotKQ0KDQpQZXJoYXBzOg0KDQpbKl0gIGFkZCBhbiBG REIgZW50cnkgdG8gdGhlIHN3aXRjaCwgd2l0aCBNQUMgYWRkcmVzcyAnZm9vJywgd2hpY2ggY2Fu DQogICAgIG9ubHkgYmUgbWF0Y2hlZCBmb3IgcGFja2V0cyBpbmdyZXNzaW5nIHN3cDAgaW4gc3Rh bmRhbG9uZSBtb2RlDQogICAgIChpLmUuIGlzIGluIHN3cDAncyBwb3J0IGRhdGFiYXNlKSwgd2hv c2UgZGVzdGluYXRpb24gaXMgdGhlIENQVQ0KICAgICBwb3J0DQoNClsqKl0gc2FtZSB0aGluZywg anVzdCByZXBsYWNlICdmb28nIHdpdGggJ2JhcicsIGFuZCAnc3dwMCcgd2l0aCAnc3dwMSc=