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 37F78A0546; Wed, 7 Apr 2021 09:43:27 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A656614104D; Wed, 7 Apr 2021 09:43:26 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2076.outbound.protection.outlook.com [40.107.220.76]) by mails.dpdk.org (Postfix) with ESMTP id 8E8FF407FF for ; Wed, 7 Apr 2021 09:43:24 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z+8NCZKjLSfPEZ+RL6tNKxHBzPF3UD9IXXukTczCdpBfqmW6+su/hkoev2ZkGSyO8s0GusW1zYczRHzJJ7ORU43YoR628NjASAggAJP/DOJ+pwY/v2pl14pEhZ+d2UnDG85atouDkxp5gCVxjl5QtEHiEDLFCKDQHzulQUNlafcuD0mbr///uCpjAVdAUzBdAsFJubE4F5jEB81immD5rKTVwu+bVwle0USGkGp5rByfPdLIrT0/oqk0iS9jurncU4M/Gv5J2l1zseoOE7WVac+3cp6Qef9r6XtHs6TlP+tF30dtKDX1KZP5VI6+7WaaA52Zph9QBQIJCvBxfvI/Kw== 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=qrMLSGdVBhBuo1AsBinoduoSSw5MaVRQFo+TsKPJxNg=; b=C1hMkrCMUiPYf5xxStjKs9DVtDYLXQ5G1RGwT+Wn37ABNKKAFmRECUbLl3/jJiBFVl8UhZTRSs/Ws4OQvBDtGyDg5L4aLFdjciCgUsCm4nOVwksEno6+ZLu8W8Ux3lhsY5dE3qhT6noTHWqkFr8FKOWOPiGIAieOBbjHErLpi7GJt+55Vw+v4Az6Ir6aZZwxAST8v3Rr/v0aI50HI1Wd/wRE9kLoCdkHuqRLgcJkNqIjQBddLAnIV4ruWE04b5EiK2pdTAkkFyNZM9apEq6uhWAD9y3fjav4nfORO4KeEf9qSKF0jqw7QXz4/YCN9SAZgNyk9lBMWJ6zCUE8B7H4lw== 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=qrMLSGdVBhBuo1AsBinoduoSSw5MaVRQFo+TsKPJxNg=; b=ddaiocdMj0AQUha7Tq4uCLqvFx5rvbRUmAqcUa3UHswweURiDTKljS1ZZVATKKazYtGG0TswJN3NecPGStkhyZB/7TjILgmna5zo8mxIVJj6EhZ0sFOdnNrEaFI5FeKRHgaWyuJ+cxpnW2/1BfcViKleGMIymZU3ohHPZi65K6eyM0GKni4DdVoBcARFtBfW2CijvZiga02OaS7KJ44cEBL2AzNF7z3cmSDiZtXjBWAJmnO80eg8EMM+78pKlNfyvgNzEK4zcmicD76FQvADZAt55Adkh+hrDXifDfSXdUayVU8GvDgg8yslubBK5y3nE9bOoXHp2a0Ba8u7qlqc/w== Received: from MN2PR12MB2909.namprd12.prod.outlook.com (2603:10b6:208:103::13) by MN2PR12MB3470.namprd12.prod.outlook.com (2603:10b6:208:d0::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27; Wed, 7 Apr 2021 07:43:22 +0000 Received: from MN2PR12MB2909.namprd12.prod.outlook.com ([fe80::7cbc:e499:e936:7408]) by MN2PR12MB2909.namprd12.prod.outlook.com ([fe80::7cbc:e499:e936:7408%7]) with mapi id 15.20.3999.032; Wed, 7 Apr 2021 07:43:22 +0000 From: Bing Zhao To: Andrew Rybchenko , Ori Kam , NBU-Contact-Thomas Monjalon , "ferruh.yigit@intel.com" CC: "dev@dpdk.org" Thread-Topic: [RFC] ethdev: introduce conntrack flow action and item Thread-Index: AQHXHy5pJ9Yo/yDEhUy/6w16dYeFVKqoq7ww Date: Wed, 7 Apr 2021 07:43:22 +0000 Message-ID: References: <1616052616-344969-1-git-send-email-bingz@nvidia.com> <9ad370a3-ebb7-8c15-9cdb-ec0b35a9bd3e@oktetlabs.ru> In-Reply-To: <9ad370a3-ebb7-8c15-9cdb-ec0b35a9bd3e@oktetlabs.ru> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [103.150.130.69] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ef7c0f9b-1865-443d-d894-08d8f998d1c9 x-ms-traffictypediagnostic: MN2PR12MB3470: 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:655; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Py9/QiGRngdrnqqGZd8blx4AvI2KmXDiQ1LrxNu5JL8pbjkCT2lqxspTpzD67R8KZqp3CE0WiSHoP36w/+GaF76iKmncIfx6Uxi/6e83vdoX65kPhh3AUQJdoo1y2fV7BVvBVh8UsJ2/4sFZdKUnkSSjYI/zIzJs2+xhgqhOilupHKbr2pQCyhFboUIhf6yHi+T7eezuYN3qSVPF/MNDLQ6mMs/GN1ggXx6d0NNhTOfBWUQUlu/9uUXgf1eO8GoIeZ2QFWLwguK6y6LkdNd5qUFihJCQPUv/jWm25krSt46MMMhQAUY31PqS8QK4ct/GS421DGGB0WjkmIChFo6klTu7BEgbZJROqkffnWxOMr+IeS3UoHNgkNilvtwwkMLMk/JUHLs/CR/qTXW7fE1dlQQNIok1dSXWeSIjWgAI/77YHo8KPWvZ+YF5Q0JQENm2i0nghKmA1+KW3ro0OYi7ETNrWENREDQfP19VferA97Q5v0uBoSh/FsYXkH2kAXq9WunTfHYsuQE1dHQlvROGkwuiZ++HLMo9pQd5pAcxJk5ug2A7PR7G9ABg49AmgYIhtEyhJUKfCNUmQJG8UKjm5jAzlAK2a03tYb1ZXBAJExxRitZQChn29pXofUn8EQdNzq+6yypqV0RruH1UJv9YRdT3Q3d+ETOYHyqb/fowjq/P9w6BEVe8hMVzTAJqh9Tr x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB2909.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(346002)(136003)(39860400002)(376002)(396003)(478600001)(76116006)(86362001)(110136005)(71200400001)(66556008)(8676002)(52536014)(83380400001)(7696005)(66446008)(66476007)(33656002)(55016002)(9686003)(26005)(186003)(64756008)(53546011)(316002)(30864003)(38100700001)(6506007)(5660300002)(2906002)(66946007)(4326008)(8936002)(21314003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?WnB0K0QxcElrbjFKOWxzY1p0UjRtYmp3dHd4L0tXY25kaWQ2MWpJcnJ6aUlx?= =?utf-8?B?d0xGNnY1THNXdGIySE1qWGllTXp1SDBFQ3IyeVpyS3hpNnhCWGdGWllRUlZ5?= =?utf-8?B?QW00Ny9lS0E1QXpZMzM1cVp5TmptYkFhMUpHbEVLazJCdTRBZDd5ZUVXdEVT?= =?utf-8?B?eTFnS1pCNnpVTVFYWml2ZUE3L1laUnBzYkMxMUZRSEswZzdleEZpUlJHSWtO?= =?utf-8?B?b1hMM25ZdHowRXRCQTZnakVoMUlHWnlBWXJibzlKek4wQWJXdFgvMHJRVTZX?= =?utf-8?B?VTVlQnEyOFRiM1NYN3NMaGFxYkNMMWZCSVR5MERBKzVUbUloRW9uK1R5T3Q5?= =?utf-8?B?T0hoZW9rSjcwKy9ibWs3dTZ6V2E0NWtPa2RTVnNpWnFzeUVObml6TlZZOHlE?= =?utf-8?B?NmxPd2xKYUhSbURjOXdaMTU4UW92Z2Joa0kxM2NqUkQ3U1U3VUtsYWFnRmdi?= =?utf-8?B?VSt4MVNKYzh2TjI2S2kzc0c4ZTZCeFFWQTQ1bjlhSTRoREJSd21KeUNQZ0Ry?= =?utf-8?B?YmZFTkkzRG1WUDcvRjRMd0ErMHlRcUJMVDhHVTZ2VnozNTY2OVBXZDdYTndz?= =?utf-8?B?MkxkV1J2SFdiWFh2RzdnRUVWRzRqczBYRU9FOFdlVVdsY1FtSmc2b2FZSDlG?= =?utf-8?B?U3ByaExJU0hMK0dtMzFwb1pUTitUYmQvcTRFaEU5aUw4WnZWeUtXNzd6cU1q?= =?utf-8?B?b08vaFBMTGJZVEFidDZ2Q2dOcFJHb3FNekVFQ0lacVM0MDFWRjJMTE54MlVU?= =?utf-8?B?SDZGVUd1RlQ1N3ZXRGV6UHlROUFvOUtLblcrcUYxN2FWZDNiK1NCbHlBTGlP?= =?utf-8?B?alRzekVPUG9tbWUwWHo1RmJmNFU1KzVJT0VtZloxbVdHclA4dlMzS0xoT3hz?= =?utf-8?B?TXg3SytuMGpJb0ZWeitsNEZtUFVZSGVMcUQyTEhRQUhCZGRnKytueFJHNG9S?= =?utf-8?B?OTc4bnk4TnZCNGo5MkFLdGsvQmRZeW1HNnFDN3QrT0dZWUFVV1NjOGxrK3hB?= =?utf-8?B?Wm53dFBnNDg3YVZGaW5hbXFTN0cwYlVwM3F3YmNHM09jejJ6ek9wOHMwSWd5?= =?utf-8?B?UTFSLzd0N0hKY2h2Qis3ekt0ckRhZERxWUJEbkt5RUNNTGZVcWh0WnNnTVF6?= =?utf-8?B?akdkK21qVUQ3UmRtZm45M2ptY2U1ejFBYUpjSXEzcnpQQjFycytIR2JIVXlD?= =?utf-8?B?UGtTVXRMYUdEbFJNbTBIR1h0Um9QMXVZWURmYWxqS1pzWW1EQkNiV1JpUmhB?= =?utf-8?B?Q1RJRVp1M2Z4ZFNZeGVGVll6WHBRekFIcjVEdWJlajlEQ3NhVzFlblppQ3Q4?= =?utf-8?B?S3hFQ0VoSi9lS3MrV0FFOUZ5aG1mVmhXK3crdTdkU1EyY0MxNSt0c204UTd5?= =?utf-8?B?blpDb1hvT25KRmNpT3MzcEZtdE44djV1VEdicnBDeXpCcVpqRHdnaTJuL2Jo?= =?utf-8?B?TGNMOFpxSWNWR016ZmF3Nnc5R1QzRFR5S2hrSCs4cnVEdmtkR0xSVEdIbFF6?= =?utf-8?B?TmEwaFROaDVwVXJiMXZaMnpEbVI1ekI2aW1iR2o1d0FacXJOdjVMdUNIVXNL?= =?utf-8?B?YmcvSjVRYVAwaGwzaVhPTVJ3VzNHYWZGWGo5ZkNjTEJlcTBoOUJlTUJENDNY?= =?utf-8?B?bm5yUllwcmEwMEN3MjI4Q21va1kwczgrNWxsMkFoZkVmMGhTamxaNHM5aGly?= =?utf-8?B?dHdPQ1Nwbm9lWjBmSjZBNWpBVitJS0hkNS91cXRZMy9jQWNDbDJwUUNidklM?= =?utf-8?Q?ZADbkR/Z0eUHJhMvL/1kjk9ny6z2xUJhqQzyrtZ?= 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: MN2PR12MB2909.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef7c0f9b-1865-443d-d894-08d8f998d1c9 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Apr 2021 07:43:22.1807 (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: 0wGdJ0JotFlOO13thcikfSlrleGLITlzngO+RSm9EfgcdO312/BtGbCteNxQ7aUDLZmreP7zv9hJSv+UPlqIUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3470 Subject: Re: [dpdk-dev] [RFC] ethdev: introduce conntrack flow action and item 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" SGkgQW5kcmV3LA0KU29ycnkgZm9yIHRoZSBsYXRlIHJlcGx5Lg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5yeWJjaGVua29A b2t0ZXRsYWJzLnJ1Pg0KPiBTZW50OiBNb25kYXksIE1hcmNoIDIyLCAyMDIxIDExOjE3IFBNDQo+ IFRvOiBCaW5nIFpoYW8gPGJpbmd6QG52aWRpYS5jb20+OyBPcmkgS2FtIDxvcmlrYUBudmlkaWEu Y29tPjsgTkJVLQ0KPiBDb250YWN0LVRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5l dD47DQo+IGZlcnJ1aC55aWdpdEBpbnRlbC5jb20NCj4gQ2M6IGRldkBkcGRrLm9yZw0KPiBTdWJq ZWN0OiBSZTogW1JGQ10gZXRoZGV2OiBpbnRyb2R1Y2UgY29ubnRyYWNrIGZsb3cgYWN0aW9uIGFu ZCBpdGVtDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBv ciBhdHRhY2htZW50cw0KPiANCj4gDQo+IE9uIDMvMTgvMjEgMTA6MzAgQU0sIEJpbmcgWmhhbyB3 cm90ZToNCj4gPiBUaGlzIGNvbW1pdCBpbnRyb2R1Y2VkIHRoZSBjb25udHJhY2sgYWN0aW9uIGFu ZCBpdGVtLg0KPiA+DQo+ID4gVXN1YWxseSB0aGUgSFcgb2ZmbG9hZGluZyBpcyBzdGF0ZWxlc3Mu IEZvciBzb21lIHN0YXRlZnVsDQo+IG9mZmxvYWRpbmcNCj4gPiBsaWtlIGEgVENQIGNvbm5lY3Rp b24sIEhXIG1vZHVsZSB3aWxsIGhlbHAgcHJvdmlkZSB0aGUgYWJpbGl0eSBvZg0KPiBhDQo+ID4g ZnVsbCBvZmZsb2FkaW5nIHcvbyBTVyBwYXJ0aWNpcGF0aW9uIGFmdGVyIHRoZSBjb25uZWN0aW9u IHdhcw0KPiA+IGVzdGFibGlzaGVkLg0KPiA+DQo+ID4gVGhlIGJhc2ljIHVzYWdlIGlzIHRoYXQg aW4gdGhlIGZpcnN0IGZsb3cgdGhlIGFwcGxpY2F0aW9uIHNob3VsZA0KPiBhZGQNCj4gPiB0aGUg Y29ubnRyYWNrIGFjdGlvbiBhbmQgaW4gdGhlIGZvbGxvd2luZyBmbG93KHMpIHRoZSBhcHBsaWNh dGlvbg0KPiA+IHNob3VsZCB1c2UgdGhlIGNvbm50cmFjayBpdGVtIHRvIG1hdGNoIG9uIHRoZSBy ZXN1bHQuDQo+ID4NCj4gPiBBIFRDUCBjb25uZWN0aW9uIGhhcyB0d28gZGlyZWN0aW9ucyB0cmFm ZmljLiBUbyBzZXQgYSBjb25udHJhY2sNCj4gYWN0aW9uDQo+ID4gY29udGV4dCBjb3JyZWN0bHks IGluZm9ybWF0aW9uIGZyb20gcGFja2V0cyBvZiBib3RoIGRpcmVjdGlvbnMgYXJlDQo+ID4gcmVx dWlyZWQuDQo+ID4NCj4gPiBUaGUgY29ubnRyYWNrIGFjdGlvbiBzaG91bGQgYmUgY3JlYXRlZCBv biBvbmUgcG9ydCBhbmQgc3VwcGx5IHRoZQ0KPiBwZWVyDQo+ID4gcG9ydCBhcyBhIHBhcmFtZXRl ciB0byB0aGUgYWN0aW9uLiBBZnRlciBjb250ZXh0IGNyZWF0aW5nLCBpdA0KPiBjb3VsZA0KPiA+ IG9ubHkgYmUgdXNlZCBiZXR3ZWVuIHRoZSBwb3J0cyAoZHVhbC1wb3J0IG1vZGUpIG9yIGEgc2lu Z2xlIHBvcnQuDQo+IFRoZQ0KPiA+IGFwcGxpY2F0aW9uIHNob3VsZCBtb2RpZnkgdGhlIGFjdGlv biB2aWEgYWN0aW9uX2N0eF91cGRhdGUNCj4gaW50ZXJmYWNlDQo+ID4gYmVmb3JlIGVhY2ggdXNl IGluIGR1YWwtcG9ydCBtb2RlLCBpbiBvcmRlciB0byBzZXQgdGhlIGNvcnJlY3QNCj4gPiBkaXJl Y3Rpb24gZm9yIHRoZSBmb2xsb3dpbmcgcnRlIGZsb3cuDQo+IA0KPiBTb3JyeSwgYnV0ICJ1cGRh dGUgaW50ZXJmYWNlIGJlZm9yZSBlYWNoIHVzZSIgc291bmRzIGZyaWdodGVuaW5nLg0KPiBNYXkg YmUgSSBzaW1wbHkgZG9uJ3QgdW5kZXJzdGFuZCBhbGwgcmVhc29ucyBiZWhpbmQuDQoNClNvcnJ5 IGZvciB0aGUgdW5jbGVhcmVkIGRlc2NyaXB0aW9uIGFuZCB0aGUgImVhY2ggdXNlIGluIGR1YWwt cG9ydCBtb2RlIiBzaG91bGQgYmUgInNpbmdsZS1wb3J0IG1vZGUiLiBJdCBpcyBhIHN1Z2dlc3Rp b24gYnV0IG5vdCBhIG11c3QsIGRlcGVuZGluZyBvbiB0aGUgSFcuIEJ1dCB1c3VhbGx5LCBzaW5j ZSBjb25uZWN0aW9uIHRyYWNraW5nIGlzIGEgYmktZGlyZWN0aW9uYWwgYWN0aW9uIGFuZCBzaG91 bGQgYmUgdXNlZCBieSBvcmlnaW5hbCBhbmQgcmVwbHkgZGlyZWN0aW9uIGZsb3dzLg0KRm9yIGR1 YWwtcG9ydHMgbW9kZSwgdXN1YWxseSB0aGUgb3JpZ2luYWwgdHJhZmZpYyBhbmQgcmVwbHkgdHJh ZmZpYyB3aWxsIGNvbWUgZnJvbSBkaWZmZXJlbnQgcG9ydHMsIHRoZSBTVyBjb3VsZCBkaXN0aW5n dWlzaCB0aGVtIGltcGxpY2l0bHkuDQpCdXQgaW4gc2luZ2xlLXBvcnQgbW9kZSwgbGlrZSBpbiBh IGdhdGV3YXkgc2NlbmFyaW8sIGFsbCB0aGUgdHJhZmZpYyBhcmUgaW5ncmVzcyBhbmQgZ28gaW50 byB0aGUgc2FtZSBwb3J0LCBpdCBpcyBoYXJkIHRvIGRpc3Rpbmd1aXNoIHRoZSBkaXJlY3Rpb24u DQpUaGUgdXBkYXRlIG9mIHRoZSBhY3Rpb24gd2lsbCBiZSBqdXN0IGluIFNXIGxldmVsLCBvciBt YXliZSBpbiB0aGUgSFcgbGV2ZWwsIGRlcGVuZHMgb24gdGhlIE5JQyBmZWF0dXJlcy4NCklmIHRo ZSBuZXh0IHNldmVyYWwgZmxvd3MgdG8gYmUgY3JlYXRlZCB3aXRoIHRoaXMgYWN0aW9uIGNvbnRl eHQgYXJlIGZvciB0aGUgc2FtZSBkaXJlY3Rpb24sIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBj YWxsIHN1Y2ggQVBJLiBPbmx5IHdoZW4gdXNpbmcgaXQgZm9yIGFuIG9wcG9zaXRlIGRpcmVjdGlv biwgdGhlIGludGVyZmFjZSB3aWxsIGJlIGNhbGxlZC4NCkFsc28sIGlmIHNvbWUgY2hhbmdpbmcg b2YgdGhlIGFjdGlvbiBjb250ZXh0IGlzIG5lZWRlZCwgbGlrZSB0aGUgc2VxL0FDSy93aW5kb3cs IHRoZW4gdGhlIGludGVyZmFjZSBpcyBhbHNvIG5lZWRlZC4NCg0KPiANCj4gPiBRdWVyeSB3aWxs IGJlIHN1cHBvcnRlZCB2aWEgYWN0aW9uX2N0eF9xdWVyeSBpbnRlcmZhY2UsIGFib3V0IHRoZQ0K PiA+IGN1cnJlbnQgcGFja2V0cyBpbmZvcm1hdGlvbiBhbmQgY29ubmVjdGlvbiBzdGF0dXMuDQo+ ID4NCj4gPiBGb3IgdGhlIHBhY2tldHMgcmVjZWl2ZWQgZHVyaW5nIHRoZSBjb25udHJhY2sgc2V0 dXAsIGl0IGlzDQo+IHN1Z2dlc3RlZA0KPiA+IHRvIHJlLWluamVjdCB0aGUgcGFja2V0cyBpbiBv cmRlciB0byB0YWtlIGZ1bGwgYWR2YW50YWdlIG9mIHRoZQ0KPiA+IGNvbm50cmFjay4gT25seSB0 aGUgdmFsaWQgcGFja2V0cyBzaG91bGQgcGFzcyB0aGUgY29ubnRyYWNrLA0KPiBwYWNrZXRzDQo+ ID4gd2l0aCBpbnZhbGlkIFRDUCBpbmZvcm1hdGlvbiwgbGlrZSBvdXQgb2Ygd2luZG93LCBvciB3 aXRoIGludmFsaWQNCj4gPiBoZWFkZXIsIGxpa2UgbWFsZm9ybWVkLCBzaG91bGQgbm90IHBhc3Mu DQo+ID4NCj4gPiBUZXN0cG1kIGNvbW1hbmQgbGluZSBleGFtcGxlOg0KPiA+DQo+ID4gc2V0IGNv bm50cmFjayBbaW5kZXhdIGVuYWJsZSBpcyAxIGxhc3Rfc2VxIGlzIHh4eCBsYXN0IGFjayBpcyB4 eHgNCj4gLw0KPiA+IC4uLiAvIG9yaWdfZGlyIHdpbl9zY2FsZSBpcyB4eHggc2VudF9lbmQgaXMg eHh4IG1heF93aW4gaXMgeHh4IC4uLg0KPiAvDQo+ID4gcnBseV9kaXIgLi4uIC8gZW5kIGZsb3cg YWN0aW9uX2N0eCBbQ1RYXSBjcmVhdGUgaW5ncmVzcyAuLi4gLw0KPiA+IGNvbm50cmFjayBpcyBb aW5kZXhdIC8gZW5kIGZsb3cgY3JlYXRlIDAgZ3JvdXAgWCBpbmdyZXNzDQo+IHBhdHRlcm5zIC4u Lg0KPiA+IC8gdGNwIC8gZW5kIGFjdGlvbnMgYWN0aW9uX2N0eCBbQ1RYXSAvIGp1bXAgZ3JvdXAg WSAvIGVuZCBmbG93DQo+IGNyZWF0ZQ0KPiA+IDAgZ3JvdXAgWSBpbmdyZXNzIHBhdHRlcm5zIC4u LiAvIGN0IGlzIFtWYWxpZF0gLyBlbmQgYWN0aW9ucyBxdWV1ZQ0KPiA+IGluZGV4IFtoYWlycGlu IHF1ZXVlXSAvIGVuZA0KDQpAQW5kcmV3IEBPcmkNCklzIHN1Y2ggY29tbWFuZCBsaW5lIGludGVy ZmFjZSBPSyBmcm9tIHlvdXIgcG9pbnRzIG9mIHZpZXc/DQoNCj4gPg0KPiA+IFNpZ25lZC1vZmYt Ynk6IEJpbmcgWmhhbyA8YmluZ3pAbnZpZGlhLmNvbT4NCj4gPiAtLS0NCj4gPiAgbGliL2xpYnJ0 ZV9ldGhkZXYvcnRlX2Zsb3cuaCB8IDE5MQ0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiBiL2xpYi9s aWJydGVfZXRoZGV2L3J0ZV9mbG93LmggaW5kZXggNjY5ZTY3N2U5MS4uYjJlNGYwNzUxYSAxMDA2 NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gKysrIGIvbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IEBAIC01NTAsNiArNTUwLDE1IEBAIGVudW0g cnRlX2Zsb3dfaXRlbV90eXBlIHsNCj4gPiAgICAgICAgKiBTZWUgc3RydWN0IHJ0ZV9mbG93X2l0 ZW1fZ2VuZXZlX29wdA0KPiA+ICAgICAgICAqLw0KPiA+ICAgICAgIFJURV9GTE9XX0lURU1fVFlQ RV9HRU5FVkVfT1BULA0KPiA+ICsNCj4gPiArICAgICAvKioNCj4gPiArICAgICAgKiBbTUVUQV0N Cj4gPiArICAgICAgKg0KPiA+ICsgICAgICAqIE1hdGNoZXMgY29ubnRyYWNrIHN0YXRlLg0KPiA+ ICsgICAgICAqDQo+ID4gKyAgICAgICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX2Nvbm50cmFj ay4NCj4gPiArICAgICAgKi8NCj4gPiArICAgICBSVEVfRkxPV19JVEVNX1RZUEVfQ09OTlRSQUNL LA0KPiA+ICB9Ow0KPiA+DQo+ID4gIC8qKg0KPiA+IEBAIC0xNjU0LDYgKzE2NjMsNDkgQEAgcnRl X2Zsb3dfaXRlbV9nZW5ldmVfb3B0X21hc2sgPSB7ICB9Ow0KPiAjZW5kaWYNCj4gPg0KPiA+ICsv KioNCj4gPiArICogVGhlIHBhY2tldCBpcyB3aXRoIHZhbGlkLg0KPiA+ICsgKi8NCj4gPiArI2Rl ZmluZSBSVEVfRkxPV19DT05OVFJBQ0tfRkxBR19TVEFURV9WQUxJRCAoMSA8PCAwKQ0KPiANCj4g SXQgc291bmRzIGxpa2UgY29ubnRyYWNrIHN0YXRlIGlzIHZhbGlkLCBidXQgbm90IHBhY2tldCBp cyB2YWxpZA0KPiBmcm9tIGNvbm50cmFjayBwb2ludCBvZiB2aWV3LiBNYXkgYmU6DQo+IFJURV9G TE9XX0NPTk5UUkFDS19GTEFHX1BLVF9WQUxJRD8gT3IgX1ZBTElEX1BLVCB0byBnbyB3aXRoIF9C QURfUEtULg0KDQpUaGUgb3JpZ2luYWwgaWRlYSBvZiB0aGlzIGlzIHRoZSBzdGF0ZSBpcyB2YWxp ZCBhZnRlciB0aGUgcGFja2V0IGludGVncml0eSBjaGVja2luZy4NCjEuIGlmIHNvbWUgZmllbGRz IG9mIHRoZSBwYWNrZXQgaXRzZWxmIGhhcyBhbiBlcnJvciwgX0JBRF9QS1QsIGFuZCB0aGUgcGFj a2V0IHdpbGwgbm90IGJlIGNoZWNrZWQgYnkgdGhlIEhXLg0KVGhlbg0KMi4gaWYgcGFzc2VkIHRo ZSBIVyBjb25uZWN0aW9uIHRyYWNraW5nIG1vZHVsZSwgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQg X1ZBTElELg0KMy4gaWYgbm90IHBhc3NlZCB0aGUgSFcgbW9kdWxlIGNoZWNraW5nLCBlLmcuLCBv dXQgb2Ygd2luZG93LCB0aGVuIGl0IHNob3VsZCBiZSBjb25zaWRlcmVkIElOVkFMSUQgc3RhdGUg b3IgRVJST1Igc3RhdGUuDQpCdXQgeWVzLCB0aGUgbmFtZSBzaG91bGQgYmUgbW9yZSBjbGVhciB0 byBkZXNjcmliZSB0aGVtc2VsdmVzLg0KDQo+IA0KPiA+ICsvKioNCj4gPiArICogVGhlIHN0YXRl IG9mIHRoZSBjb25uZWN0aW9uIHdhcyBjaGFuZ2VkLg0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBS VEVfRkxPV19DT05OVFJBQ0tfRkxBR19TVEFURV9DSEFOR0VEICgxIDw8IDEpDQo+ID4gKy8qKg0K PiA+ICsgKiBFcnJvciBzdGF0ZSB3YXMgZGV0ZWN0ZWQgb24gdGhpcyBwYWNrZXQgZm9yIHRoaXMg Y29ubmVjdGlvbi4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgUlRFX0ZMT1dfQ09OTlRSQUNLX0ZM QUdfRVJST1IgKDEgPDwgMikNCj4gPiArLyoqDQo+ID4gKyAqIFRoZSBIVyBjb25uZWN0aW9uIHRy YWNraW5nIG1vZHVsZSBpcyBkaXNhYmxlZC4NCj4gPiArICogSXQgY2FuIGJlIGR1ZSB0byBhcHBs aWNhdGlvbiBjb21tYW5kIG9yIGFuIGludmFsaWQgc3RhdGUuDQo+ID4gKyAqLw0KPiA+ICsjZGVm aW5lIFJURV9GTE9XX0NPTk5UUkFDS19GTEFHX0RJU0FCTEVEICgxIDw8IDMpDQo+ID4gKy8qKg0K PiA+ICsgKiBUaGUgcGFja2V0IGNvbnRhaW5zIHNvbWUgYmFkIGZpZWxkKHMpLg0KPiA+ICsgKi8N Cj4gPiArI2RlZmluZSBSVEVfRkxPV19DT05OVFJBQ0tfRkxBR19CQURfUEtUICgxIDw8IDQpDQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICogQHdhcm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFM OiB0aGlzIHN0cnVjdHVyZSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3INCj4gbm90aWNlDQo+ID4g KyAqDQo+ID4gKyAqIFJURV9GTE9XX0lURU1fVFlQRV9DT05OVFJBQ0sNCj4gPiArICoNCj4gPiAr ICogTWF0Y2hlcyB0aGUgc3RhdGUgb2YgYSBwYWNrZXQgYWZ0ZXIgaXQgcGFzc2VkIHRoZSBjb25u ZWN0aW9uDQo+ID4gK3RyYWNraW5nDQo+ID4gKyAqIGV4YW1pbmF0aW9uLiBUaGUgc3RhdGUgaXMg YSBiaXQgbWFzayBvZiBvbmUNCj4gPiArUlRFX0ZMT1dfQ09OTlRSQUNLX0ZMQUcqDQo+ID4gKyAq IG9yIGEgcmVhc29uYWJsZSBjb21iaW5hdGlvbiBvZiB0aGVzZSBiaXRzLg0KPiA+ICsgKi8NCj4g PiArc3RydWN0IHJ0ZV9mbG93X2l0ZW1fY29ubnRyYWNrIHsNCj4gPiArICAgICB1aW50MzJfdCBm bGFnczsNCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qKiBEZWZhdWx0IG1hc2sgZm9yIFJURV9GTE9X X0lURU1fVFlQRV9DT05OVFJBQ0suICovICNpZm5kZWYNCj4gPiArX19jcGx1c3BsdXMgc3RhdGlj IGNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX2Nvbm50cmFjaw0KPiA+ICtydGVfZmxvd19pdGVt X2Nvbm50cmFja19tYXNrID0gew0KPiA+ICsgICAgIC5mbGFncyA9IDB4ZmZmZmZmZmYsDQo+ID4g K307DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAqIE1hdGNoaW5nIHBhdHRl cm4gaXRlbSBkZWZpbml0aW9uLg0KPiA+ICAgKg0KPiA+IEBAIC0yMjM2LDYgKzIyODgsMTcgQEAg ZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ID4gICAgICAgICogU2VlIHN0cnVjdCBydGVf Zmxvd19hY3Rpb25fbW9kaWZ5X2ZpZWxkLg0KPiA+ICAgICAgICAqLw0KPiA+ICAgICAgIFJURV9G TE9XX0FDVElPTl9UWVBFX01PRElGWV9GSUVMRCwNCj4gPiArDQo+ID4gKyAgICAgLyoqDQo+ID4g KyAgICAgICogW01FVEFdDQo+ID4gKyAgICAgICoNCj4gPiArICAgICAgKiBFbmFibGUgdHJhY2tp bmcgYSBUQ1AgY29ubmVjdGlvbiBzdGF0ZS4NCj4gPiArICAgICAgKg0KPiA+ICsgICAgICAqIFNl bmQgcGFja2V0IHRvIEhXIGNvbm5lY3Rpb24gdHJhY2tpbmcgbW9kdWxlIGZvcg0KPiBleGFtaW5h dGlvbi4NCj4gPiArICAgICAgKg0KPiA+ICsgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX2Nvbm50cmFjay4NCj4gPiArICAgICAgKi8NCj4gPiArICAgICBSVEVfRkxPV19BQ1RJT05f VFlQRV9DT05OVFJBQ0ssDQo+ID4gIH07DQo+ID4NCj4gPiAgLyoqDQo+ID4gQEAgLTI4MjgsNiAr Mjg5MSwxMzQgQEAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9zZXRfZHNjcCB7DQo+ID4gICAqLw0K PiA+ICBzdHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbjsNCj4gPg0KPiA+ICsvKioNCj4gPiAr ICogVGhlIHN0YXRlIG9mIGEgVENQIGNvbm5lY3Rpb24uDQo+ID4gKyAqLw0KPiA+ICtlbnVtIHJ0 ZV9mbG93X2Nvbm50cmFja19zdGF0ZSB7DQo+ID4gKyAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX1NU QVRFX1NZTl9SRUNWLA0KPiA+ICsgICAgIC8qKjwgU1lOLUFDSyBwYWNrZXQgd2FzIHNlZW4uICov DQo+IA0KPiBNYXkgSSBzdWdnZXN0IHRvIHB1dCBjb21tZW50cyBiZWZvcmUgZW51bSBtZW1iZXIu IElNSE8gaXQgaXMgbW9yZQ0KPiByZWFkYWJsZS4gQ29tbWVudCBhZnRlciBtYWtlcyBzZW5zZSBp ZiBpdCBpcyBvbiB0aGUgc2FtZSBsaW5lLA0KPiBvdGhlcndpc2UsIGl0IGlzIGJldHRlciB0byB1 c2UgY29tbWVudHMgYmVmb3JlIGNvZGUuDQoNClN1cmUsIEkgd2lsbCBjaGFuZ2UgaXQgaW4gdGhl IHBhdGNoIGl0c2VsZi4NCg0KPiANCj4gPiArICAgICBSVEVfRkxPV19DT05OVFJBQ0tfU1RBVEVf RVNUQUJMSVNIRUQsDQo+ID4gKyAgICAgLyoqPCAzLXdheSBoYW5kc2hhcmsgd2FzIGRvbmUuICov DQo+ID4gKyAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX1NUQVRFX0ZJTl9XQUlULA0KPiA+ICsgICAg IC8qKjwgRmlyc3QgRklOIHBhY2tldCB3YXMgcmVjZWl2ZWQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rp b24uDQo+ICovDQo+ID4gKyAgICAgUlRFX0ZMT1dfQ09OTlRSQUNLX1NUQVRFX0NMT1NFX1dBSVQs DQo+ID4gKyAgICAgLyoqPCBGaXJzdCBGSU4gd2FzIEFDS2VkLiAqLw0KPiA+ICsgICAgIFJURV9G TE9XX0NPTk5UUkFDS19TVEFURV9MQVNUX0FDSywNCj4gPiArICAgICAvKio8IEFmdGVyIHNlY29u ZCBGSU4sIHdhaXRpbmcgZm9yIHRoZSBsYXN0IEFDSy4gKi8NCj4gPiArICAgICBSVEVfRkxPV19D T05OVFJBQ0tfU1RBVEVfVElNRV9XQUlULA0KPiA+ICsgICAgIC8qKjwgU2Vjb25kIEZJTiB3YXMg QUNLZWQsIGNvbm5lY3Rpb24gd2FzIGNsb3NlZC4gKi8gfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ ICsgKiBUaGUgbGFzdCBwYXNzZWQgVENQIHBhY2tldCBmbGFncyBvZiBhIGNvbm5lY3Rpb24uDQo+ ID4gKyAqLw0KPiA+ICtlbnVtIHJ0ZV9mbG93X2Nvbm50cmFja19pbmRleCB7DQo+IA0KPiBTb3Jy eSwgSSBkb24ndCB1bmRlcnN0YW5kIHdoeSBpdCBpcyBuYW1lZCBjb25udHJhY2tfaW5kZXguDQoN Ck1heSBmbGFnIHdpbGwgYmUgYSBiZXR0ZXIgbmFtZSBpbnN0ZWFkIG9mIGluZGV4PyBPciBhbnkg b3RoZXIgc3VnZ2VzdGlvbj8NCg0KPiANCj4gPiArICAgICBSVEVfRkxPV19DT05OVFJBQ0tfSU5E RVhfTk9ORSA9IDAsIC8qKjwgTm8gRmxhZy4gKi8NCj4gPiArICAgICBSVEVfRkxPV19DT05OVFJB Q0tfSU5ERVhfU1lOID0gKDEgPDwgMCksIC8qKjwgV2l0aCBTWU4gZmxhZy4NCj4gKi8NCj4gPiAr ICAgICBSVEVfRkxPV19DT05OVFJBQ0tfSU5ERVhfU1lOX0FDSyA9ICgxIDw8IDEpLCAvKio8IFdp dGgNCj4gU1lOK0FDSyBmbGFnLiAqLw0KPiA+ICsgICAgIFJURV9GTE9XX0NPTk5UUkFDS19JTkRF WF9GSU4gPSAoMSA8PCAyKSwgLyoqPCBXaXRoIEZJTiBmbGFnLg0KPiAqLw0KPiA+ICsgICAgIFJU RV9GTE9XX0NPTk5UUkFDS19JTkRFWF9BQ0sgPSAoMSA8PCAzKSwgLyoqPCBXaXRoIEFDSyBmbGFn Lg0KPiAqLw0KPiA+ICsgICAgIFJURV9GTE9XX0NPTk5UUkFDS19JTkRFWF9SU1QgPSAoMSA8PCA0 KSwgLyoqPCBXaXRoIFJTVCBmbGFnLg0KPiAqLw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArLyoqDQo+ ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBzdHJ1Y3R1cmUg bWF5IGNoYW5nZSB3aXRob3V0IHByaW9yDQo+IG5vdGljZQ0KPiA+ICsgKg0KPiA+ICsgKiBDb25m aWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIGVhY2ggZGlyZWN0aW9uIG9mIGEgVENQDQo+IGNvbm5l Y3Rpb24uDQo+ID4gKyAqLw0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfdGNwX2Rpcl9wYXJhbSB7DQo+ ID4gKyAgICAgdWludDMyX3Qgc2NhbGU6NDsgLyoqPCBUQ1Agd2luZG93IHNjYWxpbmcgZmFjdG9y LCAweEYgdG8NCj4gZGlzYWJsZS4gKi8NCj4gPiArICAgICB1aW50MzJfdCBjbG9zZV9pbml0aWF0 ZWQ6MTsgLyoqPCBUaGUgRklOIHdhcyBzZW50IGJ5IHRoaXMNCj4gZGlyZWN0aW9uLiAqLw0KPiA+ ICsgICAgIHVpbnQzMl90IGxhc3RfYWNrX3NlZW46MTsNCj4gPiArICAgICAvKio8IEFuIEFDSyBw YWNrZXQgaGFzIGJlZW4gcmVjZWl2ZWQgYnkgdGhpcyBzaWRlLiAqLw0KPiANCj4gU2FtZSBoZXJl IGFib3V0IGNvbW1lbnRzIGFmdGVyIGZpZWxkcy4NCg0KV2lsbCBjaGFuZ2UgdGhlbSBhbGwuDQoN Cj4gDQo+ID4gKyAgICAgdWludDMyX3QgZGF0YV91bmFja2VkOjE7DQo+ID4gKyAgICAgLyoqPCBJ ZiBzZXQsIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIHVuYWNrZWQgZGF0YSBvZiB0aGUNCj4gY29u bmVjdGlvbi4gKi8NCj4gPiArICAgICB1aW50MzJfdCBzZW50X2VuZDsNCj4gPiArICAgICAvKio8 IE1heGltYWwgdmFsdWUgb2Ygc2VxdWVuY2UgKyBwYXlsb2FkIGxlbmd0aCBvdmVyIHNlbnQNCj4g PiArICAgICAgKiBwYWNrZXRzIChuZXh0IEFDSyBmcm9tIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24p Lg0KPiA+ICsgICAgICAqLw0KPiA+ICsgICAgIHVpbnQzMl90IHJlcGx5X2VuZDsNCj4gPiArICAg ICAvKio8IE1heGltYWwgdmFsdWUgb2YgKEFDSyArIHdpbmRvdyBzaXplKSBvdmVyIHJlY2VpdmVk DQo+IHBhY2tldCArIGxlbmd0aA0KPiA+ICsgICAgICAqIG92ZXIgc2VudCBwYWNrZXQgKG1heGlt YWwgc2VxdWVuY2UgY291bGQgYmUgc2VudCkuDQo+ID4gKyAgICAgICovDQo+ID4gKyAgICAgdWlu dDMyX3QgbWF4X3dpbjsNCj4gPiArICAgICAvKio8IE1heGltYWwgdmFsdWUgb2YgYWN0dWFsIHdp bmRvdyBzaXplIG92ZXIgc2VudCBwYWNrZXRzLg0KPiAqLw0KPiA+ICsgICAgIHVpbnQzMl90IG1h eF9hY2s7DQo+ID4gKyAgICAgLyoqPCBNYXhpbWFsIHZhbHVlIG9mIEFDSyBvdmVyIHNlbnQgcGFj a2V0cy4gKi8gfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBA YiBFWFBFUklNRU5UQUw6IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvcg0K PiBub3RpY2UNCj4gPiArICoNCj4gPiArICogUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQ09OTlRSQUNL DQo+ID4gKyAqDQo+ID4gKyAqIENvbmZpZ3VyYXRpb24gYW5kIGluaXRpYWwgc3RhdGUgZm9yIHRo ZSBjb25uZWN0aW9uIHRyYWNraW5nDQo+IG1vZHVsZS4NCj4gPiArICogVGhpcyBzdHJ1Y3R1cmUg Y291bGQgYmUgdXNlZCBmb3IgYm90aCBzZXR0aW5nIGFuZCBxdWVyeS4NCj4gPiArICovDQo+ID4g K3N0cnVjdCBydGVfZmxvd19hY3Rpb25fY29ubnRyYWNrIHsNCj4gPiArICAgICB1aW50MTZfdCBw ZWVyX3BvcnQ7IC8qKjwgVGhlIHBlZXIgcG9ydCBudW1iZXIsIGNhbiBiZSB0aGUNCj4gc2FtZSBw b3J0LiAqLw0KPiA+ICsgICAgIHVpbnQzMl90IGlzX29yaWdpbmFsX2RpcjoxOw0KPiA+ICsgICAg IC8qKjwgRGlyZWN0aW9uIG9mIHRoaXMgY29ubmVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgZmxvdywg dGhlDQo+IHZhbHVlIG9ubHkNCj4gPiArICAgICAgKiBhZmZlY3RzIHRoZSBzdWJzZXF1ZW50IGZs b3dzIGNyZWF0aW9uLg0KPiA+ICsgICAgICAqLw0KPiANCj4gYW5kIGhlcmUgdG9vbA0KDQpXaWxs IGNoYW5nZSB0aGVtIGFsbCBpbiB0aGUgcGF0Y2guDQoNCj4gDQo+ID4gKyAgICAgdWludDMyX3Qg ZW5hYmxlOjE7DQo+ID4gKyAgICAgLyoqPCBFbmFibGUgLyBkaXNhYmxlIHRoZSBjb25udHJhY2sg SFcgbW9kdWxlLiBXaGVuIGRpc2FibGVkLA0KPiB0aGUNCj4gPiArICAgICAgKiByZXN1bHQgd2ls bCBhbHdheXMgYmUgUlRFX0ZMT1dfQ09OTlRSQUNLX0ZMQUdfRElTQUJMRUQuDQo+ID4gKyAgICAg ICogSW4gdGhpcyBzdGF0ZSB0aGUgSFcgd2lsbCBhY3QgYXMgcGFzc3Rocm91Z2guDQo+ID4gKyAg ICAgICovDQo+IA0KPiBEb2VzIGl0IGRpc2FibGUgZW50aXJlIGNvbm50cmFjayBIVyBtb2R1bGUg Zm9yIGFsbCBmbG93cz8NCj4gSXQgc291bmRzIGxpa2UgdGhpcy4gSWYgc28gLSBjb25mdXNpbmcu DQoNClllcywgZm9yIGFsbCB0aGUgZmxvd3MgdGhhdCB1c2luZyB0aGlzIGNvbm5lY3Rpb24gdHJh Y2tpbmcgY29udGV4dC4gQnV0IGZvciB0aGUgcmVtYWluaW5nIGZsb3dzIHdoaWNoIHVzZSBvdGhl ciBDVCBjb250ZXh0cywgdGhleSB3aWxsIG5vdCBiZSBpbXBhY3RlZC4NCg0KPiANCj4gPiArICAg ICB1aW50MzJfdCBsaXZlX2Nvbm5lY3Rpb246MTsNCj4gPiArICAgICAvKio8IEF0IGxlYXN0IG9u ZSBhY2sgd2FzIHNlZW4sIGFmdGVyIHRoZSBjb25uZWN0aW9uIHdhcw0KPiBlc3RhYmxpc2hlZC4g Ki8NCj4gPiArICAgICB1aW50MzJfdCBzZWxlY3RpdmVfYWNrOjE7DQo+ID4gKyAgICAgLyoqPCBF bmFibGUgc2VsZWN0aXZlIEFDSyBvbiB0aGlzIGNvbm5lY3Rpb24uICovDQo+ID4gKyAgICAgdWlu dDMyX3QgY2hhbGxlbmdlX2Fja19wYXNzZWQ6MTsNCj4gPiArICAgICAvKio8IEEgY2hhbGxlbmdl IGFjayBoYXMgcGFzc2VkLiAqLw0KPiA+ICsgICAgIHVpbnQzMl90IGxhc3RfZGlyZWN0aW9uOjE7 DQo+ID4gKyAgICAgLyoqPCAxOiBUaGUgbGFzdCBwYWNrZXQgaXMgc2VlbiB0aGF0IGNvbWVzIGZy b20gdGhlIG9yaWdpbmFsDQo+IGRpcmVjdGlvbi4NCj4gPiArICAgICAgKiAwOiBGcm9tIHRoZSBy ZXBseSBkaXJlY3Rpb24uDQo+ID4gKyAgICAgICovDQo+ID4gKyAgICAgdWludDMyX3QgbGliZXJh bF9tb2RlOjE7DQo+ID4gKyAgICAgLyoqPCBObyBUQ1AgY2hlY2sgd2lsbCBiZSBkb25lIGV4Y2Vw dCB0aGUgc3RhdGUgY2hhbmdlLiAqLw0KPiA+ICsgICAgIGVudW0gcnRlX2Zsb3dfY29ubnRyYWNr X3N0YXRlIHN0YXRlOw0KPiA+ICsgICAgIC8qKjwgVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNv bm5lY3Rpb24uICovDQo+ID4gKyAgICAgdWludDhfdCBtYXhfYWNrX3dpbmRvdzsNCj4gPiArICAg ICAvKio8IFNjYWxpbmcgZmFjdG9yIGZvciBtYXhpbWFsIGFsbG93ZWQgQUNLIHdpbmRvdy4gKi8N Cj4gPiArICAgICB1aW50OF90IHJldHJhbnNtaXNzaW9uX2xpbWl0Ow0KPiA+ICsgICAgIC8qKjwg TWF4aW1hbCBhbGxvd2VkIG51bWJlciBvZiByZXRyYW5zbWlzc2lvbiB0aW1lcy4gKi8NCj4gPiAr ICAgICBzdHJ1Y3QgcnRlX2Zsb3dfdGNwX2Rpcl9wYXJhbSBvcmlnaW5hbF9kaXI7DQo+ID4gKyAg ICAgLyoqPCBUQ1AgcGFyYW1ldGVycyBvZiB0aGUgb3JpZ2luYWwgZGlyZWN0aW9uLiAqLw0KPiA+ ICsgICAgIHN0cnVjdCBydGVfZmxvd190Y3BfZGlyX3BhcmFtIHJlcGx5X2RpcjsNCj4gPiArICAg ICAvKio8IFRDUCBwYXJhbWV0ZXJzIG9mIHRoZSByZXBseSBkaXJlY3Rpb24uICovDQo+ID4gKyAg ICAgdWludDE2X3QgbGFzdF93aW5kb3c7DQo+ID4gKyAgICAgLyoqPCBUaGUgd2luZG93IHZhbHVl IG9mIHRoZSBsYXN0IHBhY2tldCBwYXNzZWQgdGhpcw0KPiBjb25udHJhY2suICovDQo+ID4gKyAg ICAgZW51bSBydGVfZmxvd19jb25udHJhY2tfaW5kZXggbGFzdF9pbmRleDsNCj4gPiArICAgICB1 aW50MzJfdCBsYXN0X3NlcTsNCj4gPiArICAgICAvKio8IFRoZSBzZXF1ZW5jZSBvZiB0aGUgbGFz dCBwYWNrZXQgcGFzc2VkIHRoaXMgY29ubnRyYWNrLg0KPiAqLw0KPiA+ICsgICAgIHVpbnQzMl90 IGxhc3RfYWNrOw0KPiA+ICsgICAgIC8qKjwgVGhlIGFja25vd2xlZGdlbWVudCBvZiB0aGUgbGFz dCBwYWNrZXQgcGFzc2VkIHRoaXMNCj4gY29ubnRyYWNrLiAqLw0KPiA+ICsgICAgIHVpbnQzMl90 IGxhc3RfZW5kOw0KPiA+ICsgICAgIC8qKjwgVGhlIHRvdGFsIHZhbHVlIEFDSyArIHBheWxvYWQg bGVuZ3RoIG9mIHRoZSBsYXN0IHBhY2tldA0KPiBwYXNzZWQNCj4gPiArICAgICAgKiB0aGlzIGNv bm50cmFjay4NCj4gPiArICAgICAgKi8NCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg KiBSVEVfRkxPV19BQ1RJT05fVFlQRV9DT05OVFJBQ0sNCj4gPiArICoNCj4gPiArICogV3JhcHBl ciBzdHJ1Y3R1cmUgZm9yIHRoZSBjb250ZXh0IHVwZGF0ZSBpbnRlcmZhY2UuDQo+ID4gKyAqIFBv cnRzIGNhbm5vdCBzdXBwb3J0IHVwZGF0aW5nLCBhbmQgdGhlIG9ubHkgdmFsaWQgc29sdXRpb24g aXMNCj4gdG8NCj4gPiArICogZGVzdHJveSB0aGUgb2xkIGNvbnRleHQgYW5kIGNyZWF0ZSBhIG5l dyBvbmUgaW5zdGVhZC4NCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfZmxvd19tb2RpZnlfY29u bnRyYWNrIHsNCj4gPiArICAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2Nvbm50cmFjayBuZXdf Y3Q7DQo+ID4gKyAgICAgLyoqPCBOZXcgY29ubmVjdGlvbiB0cmFja2luZyBwYXJhbWV0ZXJzIHRv IGJlIHVwZGF0ZWQuICovDQo+IA0KPiBhbmQgaGVyZQ0KDQpXaWxsIGNoYW5nZSB0aGVtIGFsbCBp biB0aGUgZm9ybWFsIHBhdGNoLg0KDQo+IA0KPiA+ICsgICAgIHVpbnQzMl90IGRpcmVjdGlvbjox OyAvKio8IFRoZSBkaXJlY3Rpb24gZmllbGQgd2lsbCBiZQ0KPiB1cGRhdGVkLiAqLw0KPiA+ICsg ICAgIHVpbnQzMl90IHN0YXRlOjE7DQo+ID4gKyAgICAgLyoqPCBBbGwgdGhlIG90aGVyIGZpZWxk cyBleGNlcHQgZGlyZWN0aW9uIHdpbGwgYmUgdXBkYXRlZC4NCj4gKi8NCj4gPiArICAgICB1aW50 MzJfdCByZXNlcnZlZDozMDsgLyoqPCBSZXNlcnZlZCBiaXRzIGZvciB0aGUgZnV0dXJlDQo+IHVz YWdlLg0KPiA+ICsqLyB9Ow0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAqIEZpZWxkIElEcyBmb3Ig TU9ESUZZX0ZJRUxEIGFjdGlvbi4NCj4gPiAgICovDQo+ID4NCg0K