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 EF131A0A0C; Tue, 29 Jun 2021 02:07:51 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6EB154069F; Tue, 29 Jun 2021 02:07:51 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 242464068A for ; Tue, 29 Jun 2021 02:07:49 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10029"; a="208000892" X-IronPort-AV: E=Sophos;i="5.83,307,1616482800"; d="scan'208";a="208000892" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2021 17:07:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,307,1616482800"; d="scan'208";a="557755361" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 28 Jun 2021 17:07:47 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 28 Jun 2021 17:07:47 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Mon, 28 Jun 2021 17:07:47 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4 via Frontend Transport; Mon, 28 Jun 2021 17:07:47 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.4; Mon, 28 Jun 2021 17:07:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Gohef82UToy+CSUy0EC59zjwl7txc918CgYoOHsSEvvg5YOnlZ5Czp8pSHvW0AXtWzaCHjwlNH8EeLdompHVxJFsz+FlN0q6o9M29xAFZg2y1KRXkm+7miHNzWCM3120y00Wozrw4vcPHzMM6XP1ERokkRc08dGfI1kttFSUTJjKKVJvHHJ2hzO+Ovx9aY4GFriA51H9kKzGg9hebAAWrMharPXBUZJahtayMocKInCfqy5roFwnZ+s3c6OO2Lmvpqgquu+YbI9XQpEQlvikNNrMLs+X7IU0QluCBfp/1CiLT+ooKP4uTZHHtFXJCk4hnnaX2tqQIZf+TByuxAegrg== 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=Y4zoXEuHhQQRPsFRwg9JSPf+OCiPEuh3Fey8eZ4g5VI=; b=hIAdrFbtgwVokOqWQL1OevDU32NfPyGo8yRMyzB9YLK6K523ljB/ZQuhfNSH6CzJFu/kQRgy+08UQvko+gMi3JFEg5QNsE0N9+cy52vFGXDXP7d3cr1qRiauUkYwgEE51G/rZ35kwbVfb2iXi0kcFjhwWibJHblPzJyyZzsYCA1X3bxnRKcr9KwZhgDrahKNMr1oyZmdvMHKXdDyBzRoEvsNHTqP6BLm1WVvKIAAOZo16zV9y2gV8bP+jfW/qNhGD7WFUKkZlhDbWJxYYyLallvTkMRM16AzYlvKTLL5fO7+20Dp9grp/ZR8RIYVLHfvPlpEn6KgmM7Lf2T6EofccQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y4zoXEuHhQQRPsFRwg9JSPf+OCiPEuh3Fey8eZ4g5VI=; b=pc8VF/kc9R3lJpJbphds2Wyy3fhXJ6+i7vu4iY34K+5WMvBQpZBmSzPMY7SMIpq0OG1gc3J1Ci17wUz5/jrbbJ1ZVBkyqMlNIgmH281zu0wqS9T8xwyrg2uDuKEZ8ImrtAYpgZIw7tsPMpZf7eEjfP2XXryj9rETS3RKLeiQ8rY= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB4265.namprd11.prod.outlook.com (2603:10b6:5:1de::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Tue, 29 Jun 2021 00:07:44 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4264.026; Tue, 29 Jun 2021 00:07:44 +0000 From: "Ananyev, Konstantin" To: "Burakov, Anatoly" , "dev@dpdk.org" , "Hunt, David" CC: "Loftus, Ciara" Thread-Topic: [dpdk-dev] [PATCH v3 6/7] power: support monitoring multiple Rx queues Thread-Index: AQHXbBsO+Y6lPWDNwUKowUur7w9ha6spaDywgAAN2oCAAIWSUA== Date: Tue, 29 Jun 2021 00:07:44 +0000 Message-ID: References: <676eab0e1eb6c63acb170893675daa5a39eac29d.1624884053.git.anatoly.burakov@intel.com> <77f30ce1-40b0-b427-c0f9-359a350358a1@intel.com> In-Reply-To: <77f30ce1-40b0-b427-c0f9-359a350358a1@intel.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.255.184.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 35bc28d1-2e1d-4aba-65d4-08d93a91eb99 x-ms-traffictypediagnostic: DM6PR11MB4265: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6yaNGVJHKKpfk2SzSrYsZurLptq5vrQJqrUHRs9umRwqpO22lnfiZoGvc8TEPq74seP1IVJh+PoplDJRKaksY0efYUgv50nekEzj0wrdeNTVG8R23A7e9rTt8XqkqRdbJcCohc4B9usUYjZUfF8I7L4HxjTsjDlBvfUMxbWhgofhYaOZxJROLlcMa8EYRZKaB/Axywnq5+6KyPu22oGva0G6caUhllwHjvAjfrSmoNGUGkFt8gBOkhYbjT0QihgEkdOgsYgmyDwDi5OiYApS4xkoO5dAQmxrkQJ9RrUD9IyQ4KB62ld1Z1bPGPCPrOS/cJEaqmX3yHGtRheAdq8l34Q7LLfIIIpk3LpeD2cBvP7DKrBGbLw2uSBp1qKc6EjU9GPOrV/9lilQOHR/PpaMK6Mcgjloe2gkQM6FEZ87JyF+y8KywyoXdbgxUml8ba8zkTQVb9aGO+2UMJ5Nyssc4fdPN6URggYYxHPKmtbxiiMG6YYKAQoU/Ni+fAduJAc/KneT8hj3fE6kBkpa6NG0XOkXDlTGvpcD4oxDbTKgs7FwcqGGPQL7/zjteclqPSSD4E8xk0XrrwjU5GFtaWW02zbP9PK97qDzKQvuYEODvtQ+pGxQ1nYBVaZklKnXg3eeTiby0KiPU5xTR3SQWHLT5A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(136003)(376002)(39860400002)(346002)(396003)(478600001)(107886003)(38100700002)(83380400001)(33656002)(110136005)(316002)(186003)(7696005)(5660300002)(6636002)(8936002)(2906002)(9686003)(30864003)(4326008)(26005)(66446008)(66476007)(64756008)(86362001)(66556008)(71200400001)(55236004)(8676002)(122000001)(6506007)(52536014)(55016002)(76116006)(66946007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OU5DK2NUbnI5MVNFK1FsbG1reTVKQWo3MjNqeUVPUmM4Y2Z3K0huTDRNTTYv?= =?utf-8?B?TnNuRjBQYkFneDVUUTRRT0txWHhKbEE5TjFIOTBBU08zUGFybCt0RGNoYThS?= =?utf-8?B?QjNoQTA1RXpkd1RjSXJBMEJGQnJaSVI0Q2FmMjE0THcvS1BMamdRSnZLOW5N?= =?utf-8?B?VC9oUy9LN042TzVzSGxJeWliUmtCdncrdXdJNXA2QVBaZGN5N1JKNTBWZ2J4?= =?utf-8?B?Mzdsa1VYNkNyWnhINEVKQUxpNCsxZTlzMDU1WlludzNlYlc0OXlwZUZOVm9t?= =?utf-8?B?OEhPNHYyYVhxaDh3R2JvS0lmT0NESnZpRVhZWU9EOFRZSnU0d2R1cU1oVnkw?= =?utf-8?B?aWlTUWNVVDMweXVzcGpud09CT1RDRVVwWkdSQXBYWHN2bTQrWGFkQktDek00?= =?utf-8?B?TmIyZ1hSdXB0eHJJaWVydUNjQ0dpb1d1ZlZoMFFNMTgvZWhyMUhMeE9VRDVo?= =?utf-8?B?TFhJNVFaL0NSQlhkbnMwdnhoZlExOHZYWWJsQVFTa3BkQzhHaEhXZHpRU3ZJ?= =?utf-8?B?U3BZRXhlVkRQNk5nR1lOclFGRkJmZHRKanBPUGg2SnhGZ0tBNkhkRFl2MVNq?= =?utf-8?B?akdubUYwc1hRdlF1dTZ3aXpzL0VYRzh3cG5uNXFraEhBMWJBTHo3Z3dkVUc0?= =?utf-8?B?RldsQlMySUMvdUJIbXlycXFkblc2MDA1OHJlR2NHZ25WOXdta21rK3NvUTNE?= =?utf-8?B?d0tqMGxsdUVSMmwrT1hicEJocXlORjYycTBFNm5IMTUwNHMvbVZJbEtQcGtu?= =?utf-8?B?aDdiY1ZpMzBiSGJMTzU3dklXdmRHUGZiVEVhZXUyQjQvVEgxN1ZyN2gvUUhB?= =?utf-8?B?R1hpMXBoSXZ4YTl6bC8rVkZYdFovbVVERmxzR3lwdC9sMzRRdHZRTnF3dGha?= =?utf-8?B?WHpBeXdxL3hxejBlMExxQmhwSjZDeXRXN2o3bDZ3T3BrNUdmdzJVdnhLcFgr?= =?utf-8?B?eHlpaFNUdmI2WWhoYnFHMVFrK2kycGh0SG9US3RPYmJpV0VESXpDT21TUktB?= =?utf-8?B?MEdSUnpsbVAzc3c1RTBVZzAzTW1nQkxwdk1kZ1ArTDcxTWtZbG5RQi9DZ1lw?= =?utf-8?B?ZURRWVZmTE1vM2JEMHZsNU5sSDJFcVQrdVBHaUdDYk4rS0RLRmNpNks2RGlD?= =?utf-8?B?RE5yRmFwMWhhSVlGVXFxVk41ZzgzLzVqQUkvNFdWcjlTVWY2T1UwaHZsUDZI?= =?utf-8?B?N2dwQUNDczV3NERpeTlwU1F1d0hSY21XM2ErUHUrV0poZzE5WEtHSkFJZnIx?= =?utf-8?B?cE4zbjYzWUpTb2taekg0MXNiUS94OUVVaEc2TncxT0FtZmdac2owcXhybHdx?= =?utf-8?B?TWxSeDRTMXdWRjBtT1lvWHhMT1d1aXFlN0hZenp1SHJoYkxib2xrWGR3R1cz?= =?utf-8?B?NG9Qa1VpTWpmUUNIOWRXOHp4WjFiRU5NbEhPL3h2NnhoV0VwUFNWUXcreVhm?= =?utf-8?B?V05ORDhMK2NNRjduT0ozdFhVTEtYQWpEQWsrdDBZMlR3d29oYTdWL1hRSUZJ?= =?utf-8?B?OUNadDlxbmNIMXpLdll3VXp6K1RWTjVuVUliQ0FuYmVyS2VRc1ZRS0cwUFIw?= =?utf-8?B?U3U5TFFITFNQb3hPdW5KTHZEVDFxR0NseExQVi9JUEQxUUFBaVYwZ3Vqd3Zk?= =?utf-8?B?bHRqYWVjS3BNZjlKcjdMc05GVEVlUFNEQUdoYXQrdjhlZWlxR1A2MGFpMVFP?= =?utf-8?B?dlE1a2hybkljWGFwTXNnYjdYMGNKOUdieXp5VWdRbTNnbXVMbUZzRU4yRlZN?= =?utf-8?Q?RJ/Fa10IMb5e9jI3MkXyjT4FPrd55c0KyxgoBAr?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35bc28d1-2e1d-4aba-65d4-08d93a91eb99 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2021 00:07:44.4914 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pP5IcpxvgH8u7+7gso7MmGoFV3ac1Mh+y1SLlYdltTiveDv+lOnrnkE38wN2cAnB6iA15stnDDxtmfc3W0MJtidUggOBp6B8uHpYqK+lCUw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4265 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 6/7] power: support monitoring multiple Rx queues 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" DQoNCj4gPj4gVXNlIHRoZSBuZXcgbXVsdGktbW9uaXRvciBpbnRyaW5zaWMgdG8gYWxsb3cgbW9u aXRvcmluZyBtdWx0aXBsZSBldGhkZXYNCj4gPj4gUnggcXVldWVzIHdoaWxlIGVudGVyaW5nIHRo ZSBlbmVyZ3kgZWZmaWNpZW50IHBvd2VyIHN0YXRlLiBUaGUgbXVsdGkNCj4gPj4gdmVyc2lvbiB3 aWxsIGJlIHVzZWQgdW5jb25kaXRpb25hbGx5IGlmIHN1cHBvcnRlZCwgYW5kIHRoZSBVTVdBSVQg b25lDQo+ID4+IHdpbGwgb25seSBiZSB1c2VkIHdoZW4gbXVsdGktbW9uaXRvciBpcyBub3Qgc3Vw cG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogQW5hdG9s eSBCdXJha292IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4gICBk b2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdCB8ICA5ICsrLS0NCj4gPj4gICBsaWIv cG93ZXIvcnRlX3Bvd2VyX3BtZF9tZ210LmMgICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystDQo+ID4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRl L3Bvd2VyX21hbi5yc3QgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+ PiBpbmRleCBmYWMyYzE5NTE2Li4zMjQ1YTVlYmVkIDEwMDY0NA0KPiA+PiAtLS0gYS9kb2MvZ3Vp ZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+PiArKysgYi9kb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+PiBAQCAtMjIxLDEzICsyMjEsMTYgQEAgcG93ZXIgc2F2 aW5nIHdoZW5ldmVyIGVtcHR5IHBvbGwgY291bnQgcmVhY2hlcyBhIGNlcnRhaW4gbnVtYmVyLg0K PiA+PiAgIFRoZSAibW9uaXRvciIgbW9kZSBpcyBvbmx5IHN1cHBvcnRlZCBpbiB0aGUgZm9sbG93 aW5nIGNvbmZpZ3VyYXRpb25zIGFuZCBzY2VuYXJpb3M6DQo+ID4+DQo+ID4+ICAgKiBJZiBgYHJ0 ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3VwcG9ydCgpYGAgZnVuY3Rpb24gaW5kaWNhdGVzIHRoYXQN Cj4gPj4gKyAgYGBydGVfcG93ZXJfbW9uaXRvcl9tdWx0aSgpYGAgZnVuY3Rpb24gaXMgc3VwcG9y dGVkIGJ5IHRoZSBwbGF0Zm9ybSwgdGhlbg0KPiA+PiArICBtb25pdG9yaW5nIG11bHRpcGxlIEV0 aGVybmV0IFJ4IHF1ZXVlcyBmb3IgdHJhZmZpYyB3aWxsIGJlIHN1cHBvcnRlZC4NCj4gPj4gKw0K PiA+PiArKiBJZiBgYHJ0ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3VwcG9ydCgpYGAgZnVuY3Rpb24g aW5kaWNhdGVzIHRoYXQgb25seQ0KPiA+PiAgICAgYGBydGVfcG93ZXJfbW9uaXRvcigpYGAgaXMg c3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgdGhlbiBtb25pdG9yaW5nIHdpbGwgYmUNCj4gPj4g ICAgIGxpbWl0ZWQgdG8gYSBtYXBwaW5nIG9mIDEgY29yZSAxIHF1ZXVlICh0aHVzLCBlYWNoIFJ4 IHF1ZXVlIHdpbGwgaGF2ZSB0byBiZQ0KPiA+PiAgICAgbW9uaXRvcmVkIGZyb20gYSBkaWZmZXJl bnQgbGNvcmUpLg0KPiA+Pg0KPiA+PiAtKiBJZiBgYHJ0ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3Vw cG9ydCgpYGAgZnVuY3Rpb24gaW5kaWNhdGVzIHRoYXQgdGhlDQo+ID4+IC0gIGBgcnRlX3Bvd2Vy X21vbml0b3IoKWBgIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gbW9uaXRvciBtb2Rl IHdpbGwgbm90DQo+ID4+IC0gIGJlIHN1cHBvcnRlZC4NCj4gPj4gKyogSWYgYGBydGVfY3B1X2dl dF9pbnRyaW5zaWNzX3N1cHBvcnQoKWBgIGZ1bmN0aW9uIGluZGljYXRlcyB0aGF0IG5laXRoZXIg b2YgdGhlDQo+ID4+ICsgIHR3byBtb25pdG9yaW5nIGZ1bmN0aW9ucyBhcmUgc3VwcG9ydGVkLCB0 aGVuIG1vbml0b3IgbW9kZSB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQuDQo+ID4+DQo+ID4+ICAgKiBO b3QgYWxsIEV0aGVybmV0IGRldmljZXMgc3VwcG9ydCBtb25pdG9yaW5nLCBldmVuIGlmIHRoZSB1 bmRlcmx5aW5nDQo+ID4+ICAgICBwbGF0Zm9ybSBtYXkgc3VwcG9ydCB0aGUgbmVjZXNzYXJ5IENQ VSBpbnN0cnVjdGlvbnMuIFBsZWFzZSByZWZlciB0bw0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL3Bv d2VyL3J0ZV9wb3dlcl9wbWRfbWdtdC5jIGIvbGliL3Bvd2VyL3J0ZV9wb3dlcl9wbWRfbWdtdC5j DQo+ID4+IGluZGV4IDc3NjJjZDM5YjguLmFhYjJkNGYxZWUgMTAwNjQ0DQo+ID4+IC0tLSBhL2xp Yi9wb3dlci9ydGVfcG93ZXJfcG1kX21nbXQuYw0KPiA+PiArKysgYi9saWIvcG93ZXIvcnRlX3Bv d2VyX3BtZF9tZ210LmMNCj4gPj4gQEAgLTE1NSw2ICsxNTUsMjQgQEAgcXVldWVfbGlzdF9yZW1v dmUoc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcSkNCj4gPj4g ICAgICAgIHJldHVybiAwOw0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gK3N0YXRpYyBpbmxpbmUgaW50 DQo+ID4+ICtnZXRfbW9uaXRvcl9hZGRyZXNzZXMoc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLA0K PiA+PiArICAgICAgICAgICAgIHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kICpwbWMpDQo+ ID4+ICt7DQo+ID4+ICsgICAgIGNvbnN0IHN0cnVjdCBxdWV1ZV9saXN0X2VudHJ5ICpxbGU7DQo+ ID4+ICsgICAgIHNpemVfdCBpID0gMDsNCj4gPj4gKyAgICAgaW50IHJldDsNCj4gPj4gKw0KPiA+ PiArICAgICBUQUlMUV9GT1JFQUNIKHFsZSwgJmNmZy0+aGVhZCwgbmV4dCkgew0KPiA+PiArICAg ICAgICAgICAgIHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kICpjdXIgPSAmcG1jW2ldOw0K PiA+DQo+ID4gTG9va3MgbGlrZSB5b3UgbmV2ZXIgaW5jcmVtZW50ICdpJyB2YWx1ZSBpbnNpZGUg dGhhdCBmdW5jdGlvbi4NCj4gPiBBbHNvIGl0IHByb2JhYmx5IHdpbGwgYmUgc2FmZXIgdG8gYWRk ICdudW0nIHBhcmFtZXRlciB0byBjaGVjayB0aGF0DQo+ID4gd2Ugd2lsbCBuZXZlciBvdmVyLXJ1 biBwbWNbXSBib3VuZGFyaWVzLg0KPiANCj4gV2lsbCBmaXggaW4gdjQsIGdvb2QgY2F0Y2ghDQo+ IA0KPiA+DQo+ID4+ICsgICAgICAgICAgICAgY29uc3QgdW5pb24gcXVldWUgKnEgPSAmcWxlLT5x dWV1ZTsNCj4gPj4gKyAgICAgICAgICAgICByZXQgPSBydGVfZXRoX2dldF9tb25pdG9yX2FkZHIo cS0+cG9ydGlkLCBxLT5xaWQsIGN1cik7DQo+ID4+ICsgICAgICAgICAgICAgaWYgKHJldCA8IDAp DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+PiArICAgICB9DQo+ ID4+ICsgICAgIHJldHVybiAwOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICAgc3RhdGljIHZvaWQN Cj4gPj4gICBjYWxjX3RzYyh2b2lkKQ0KPiA+PiAgIHsNCj4gPj4gQEAgLTE4Myw2ICsyMDEsNDgg QEAgY2FsY190c2Modm9pZCkNCj4gPj4gICAgICAgIH0NCj4gPj4gICB9DQo+ID4+DQo+ID4+ICtz dGF0aWMgdWludDE2X3QNCj4gPj4gK2NsYl9tdWx0aXdhaXQodWludDE2X3QgcG9ydF9pZCwgdWlu dDE2X3QgcWlkeCwNCj4gPj4gKyAgICAgICAgICAgICBzdHJ1Y3QgcnRlX21idWYgKipwa3RzIF9f cnRlX3VudXNlZCwgdWludDE2X3QgbmJfcngsDQo+ID4+ICsgICAgICAgICAgICAgdWludDE2X3Qg bWF4X3BrdHMgX19ydGVfdW51c2VkLCB2b2lkICphZGRyIF9fcnRlX3VudXNlZCkNCj4gPj4gK3sN Cj4gPj4gKyAgICAgY29uc3QgdW5zaWduZWQgaW50IGxjb3JlID0gcnRlX2xjb3JlX2lkKCk7DQo+ ID4+ICsgICAgIGNvbnN0IHVuaW9uIHF1ZXVlIHEgPSB7LnBvcnRpZCA9IHBvcnRfaWQsIC5xaWQg PSBxaWR4fTsNCj4gPj4gKyAgICAgY29uc3QgYm9vbCBlbXB0eSA9IG5iX3J4ID09IDA7DQo+ID4+ ICsgICAgIHN0cnVjdCBwbWRfY29yZV9jZmcgKnFfY29uZjsNCj4gPj4gKw0KPiA+PiArICAgICBx X2NvbmYgPSAmbGNvcmVfY2ZnW2xjb3JlXTsNCj4gPj4gKw0KPiA+PiArICAgICAvKiBlYXJseSBl eGl0ICovDQo+ID4+ICsgICAgIGlmIChsaWtlbHkoIWVtcHR5KSkgew0KPiA+PiArICAgICAgICAg ICAgIHFfY29uZi0+ZW1wdHlfcG9sbF9zdGF0cyA9IDA7DQo+ID4+ICsgICAgIH0gZWxzZSB7DQo+ ID4+ICsgICAgICAgICAgICAgLyogZG8gd2UgY2FyZSBhYm91dCB0aGlzIHBhcnRpY3VsYXIgcXVl dWU/ICovDQo+ID4+ICsgICAgICAgICAgICAgaWYgKCFxdWV1ZV9pc19wb3dlcl9zYXZlKHFfY29u ZiwgJnEpKQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5iX3J4Ow0KPiA+DQo+ ID4gSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHRoZSBuZWVkIG9mICdzcGVjaWFsJyBwb3dlcl9z YXZlIHF1ZXVlIGhlcmUuLi4NCj4gPiBXaHkgd2UgY2FuJ3QganVzdCBoYXZlIGEgZnVuY3Rpb246 DQo+ID4NCj4gPiBnZXRfbnVtYmVyX29mX3F1ZXVlc193aG9zZV9zZXF1ZW50aWFsX2VtcHR5X3Bv bGxzX2xlc3NfdGhlbl90aHJlc2hvbGQoc3RydWN0IHBtZF9jb3JlX2NmZyAqbGNvcmVfY2ZnKSwN Cj4gPiBhbmQgdGhlbiBqdXN0Og0KPiA+DQo+ID4gLyogYWxsIHF1ZXVlcyBoYXZlIGF0IGxlYXN0 IEVNUFRZUE9MTF9NQVggc2VxdWVudGlhbCBlbXB0eSBwb2xscyAqLw0KPiA+IGlmIChnZXRfbnVt YmVyX29mX3F1ZXVlc193aG9zZV9zZXF1ZW50aWFsX2VtcHR5X3BvbGxzX2xlc3NfdGhlbl90aHJl c2hvbGQocV9jb25mKSA9PSAwKSB7DQo+ID4gICAgICAvKiBnbyBpbnRvIHBvd2VyLXNhdmUgbW9k ZSBoZXJlICovDQo+ID4gfQ0KPiANCj4gT2theSwgbGV0J3MgZ28gdGhyb3VnaCB0aGlzIHN0ZXAg Ynkgc3RlcCA6KQ0KPiANCj4gTGV0J3Mgc3VwcG9zZSB3ZSBoYXZlIHRocmVlIHF1ZXVlcyAtIHEw LCBxMSBhbmQgcTIuIFdlIHdhbnQgdG8gc2xlZXANCj4gd2hlbmV2ZXIgdGhlcmUncyBubyB0cmFm ZmljIG9uICphbGwgb2YgdGhlbSosIGhvd2V2ZXIgd2UgY2Fubm90IGtub3cNCj4gdGhhdCB1bnRp bCB3ZSBoYXZlIGNoZWNrZWQgYWxsIG9mIHRoZW0uDQo+IA0KPiBTbywgbGV0J3Mgc3VwcG9zZSB0 aGF0IHEwLCBxMSBhbmQgcTIgd2VyZSBlbXB0eSBhbGwgdGhpcyB0aW1lLCBidXQgbm93DQo+IHNv bWUgdHJhZmZpYyBhcnJpdmVkIGF0IHEyIHdoaWxlIHdlJ3JlIHN0aWxsIGNoZWNraW5nIHEwLiBX ZSBzZWUgdGhhdCBxMA0KPiBpcyBlbXB0eSwgYW5kIGFsbCBvZiB0aGUgcXVldWVzIHdlcmUgZW1w dHkgZm9yIHRoZSBsYXN0IE4gcG9sbHMsIHNvIHdlDQo+IHRoaW5rIHdlIHdpbGwgYmUgc2FmZSB0 byBzbGVlcCBhdCBxMCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgdHJhZmZpYyBoYXMNCj4ganVzdCBh cnJpdmVkIGF0IHEyLg0KPiBUaGlzIGlzIG5vdCBhbiBpc3N1ZSB3aXRoIE1PTklUT1IgbW9kZSBi ZWNhdXNlIHdlIHdpbGwgYmUgYWJsZSB0byBzZWUgaWYNCj4gY3VycmVudCBSeCByaW5nIGRlc2Ny aXB0b3IgaXMgYnVzeSBvciBub3QgdmlhIHRoZSBOSUMgY2FsbGJhY2ssICpidXQNCj4gdGhpcyBp cyBub3QgcG9zc2libGUqIHdpdGggUEFVU0UgYW5kIFNDQUxFIG1vZGVzLCBiZWNhdXNlIHRoZXkg ZG9uJ3QNCj4gaGF2ZSB0aGUgc25lYWt5IGxvb2thaGVhZCBmdW5jdGlvbiBvZiBNT05JVE9SISBT bywgd2l0aCBQQVVTRSBhbmQgU0NBTEUNCj4gbW9kZXMsIGl0IGlzIHBvc3NpYmxlIHRvIGVuZCB1 cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSB5b3UgKnRoaW5rKiB5b3UNCj4gZG9uJ3QgaGF2ZSBhbnkg dHJhZmZpYywgYnV0IHlvdSBhY3R1YWxseSBkbywgeW91IGp1c3QgaGF2ZW4ndCBjaGVja2VkDQo+ IHRoZSByZWxldmFudCBxdWV1ZSB5ZXQuDQoNCkkgdGhpbmsgc3VjaCBzaXR1YXRpb24gaXMgdW5h dm9pZGFibGUuDQpZZXMsIHRyYWZmaWMgY2FuIGFycml2ZSB0byAqYW55KiBxdWV1ZSBhdCAqYW55 KiB0aW1lLg0KV2l0aCB5b3VyIGV4YW1wbGUgYWJvdmUgLSB1c2VyIGNob29zZSBxMiBhcyAnc3Bl Y2lhbCcgcXVldWUsIGJ1dA0KdHJhZmZpYyBhY3R1YWxseSBhcnJpdmVzIG9uIHEwIG9yIHExLiAN CkFuZCB5ZXMsIGlmIHVzZXIgY2hvb3NlIFBBVVNFIG9yIFNDQUxFIG1ldGhvZHMgaGUgKmNhbiog bWlzcyB0aGUgdHJhZmZpYywgICANCmJlY2F1c2UgYXMgeW91IHNhaWQgZm9yIHRoZXNlIG1ldGhv ZHMgdGhlcmUgaXMgbm8gbm90aWZpY2F0aW9uIG1lY2hhbmlzbXMuDQpJIHRoaW5rIHRoZXJlIGFy ZSBqdXN0IHVuYXZvaWRhYmxlIGxpbWl0YXRpb25zIHdpdGggdGhlc2UgcG93ZXItc2F2ZSBtZXRo b2RzLiANCiANCj4gSW4gb3JkZXIgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nLCB3ZSBk byBub3Qgc2xlZXAgb24gZXZlcnkgcXVldWUsDQo+IGluc3RlYWQgd2Ugc2xlZXAgKm9uY2UqIHBl ciBsb29wLiANCg0KWWVzLCB0b3RhbGx5IGFncmVlIHdlIHNob3VsZG4ndCBzbGVlcCBvbiAqZXZl cnkqIHF1ZXVlLg0KV2UgbmVlZCB0byBnbyB0byBzbGVlcCB3aGVuIHRoZXJlIGlzIG5vIHRyYWZm aWMgb24gKmFueSogb2YgcXVldWVzIHdlIG1vbml0b3IuIA0KDQo+IFRoYXQgaXMsIHdlIGNoZWNr IHEwLCBjaGVjayBxMSwgY2hlY2sNCj4gcTIsIGFuZCBvbmx5IHRoZW4gd2UgZGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBzbGVlcCBvciBub3QuDQoNCj4gT2YgY291cnNlLCB3aXRoIHN1Y2ggc2No ZW1lIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIGUuZy4gc2xlZXAgaW4gcTINCj4gd2hpbGUgdGhl cmUncyB0cmFmZmljIHdhaXRpbmcgaW4gcTAsDQoNClllcywgZXhhY3RseS4NCg0KPiBidXQgd29y c3QgY2FzZSBpcyBsZXNzIGJhZCB3aXRoDQo+IHRoaXMgc2NoZW1lLCBiZWNhdXNlIHdlJ2xsIGJl IGRvaW5nIGF0IHdvcnN0IDEgZXh0cmEgc2xlZXAuDQoNCkhtbSwgSSB0aGluayBpdCB3b3VsZCBi ZSBvbmUgZXh0cmEgc2xlZXAgYW55d2F5Lg0KDQo+IFdoZXJlYXMgd2l0aCB3aGF0IHlvdSdyZSBz dWdnZXN0aW5nLCBpZiB3ZSBoYWQgZS5nLiAxMCBxdWV1ZXMgdG8gcG9sbCwNCj4gYW5kIHdlIGNo ZWNrZWQgcTEgYnV0IHRyYWZmaWMgaGFzIGp1c3QgYXJyaXZlZCBhdCBxMCwgd2UnbGwgYmUgc2xl ZXBpbmcNCj4gYXQgcTEsIHRoZW4gd2UnbGwgYmUgc2xlZXBpbmcgYXQgcTIsIHRoZW4gd2UnbGwg YmUgc2xlZXBpbmcgYXQgcTMsIHRoZW4NCj4gd2UnbGwgYmUgc2xlZXBpbmcgYXQgcTQsIHRoZW4g d2UnbGwgYmUgc2xlZXBpbmcgYXQgcTUuLi4uIGFuZCA5IHNsZWVwcw0KPiBsYXRlciB3ZSBmaW5h bGx5IHJlYWNoIHEwIGFuZCBmaW5kIG91dCBhZnRlciBhbGwgdGhpcyB0aW1lIHRoYXQgd2UNCj4g c2hvdWxkbid0IGhhdmUgc2xlcHQgaW4gdGhlIGZpcnN0IHBsYWNlLg0KDQpBaCBvaywgSSB0aGlu ayBJIHVuZGVyc3RhbmQgbm93IHdoYXQgeW91IGFyZSBzYXlpbmcuDQpTdXJlLCB0byBhdm9pZCBz dWNoIHNpdHVhdGlvbiwgd2UnbGwgbmVlZCB0byBtYWludGFpbiBleHRyYSBjb3VudGVycyBhbmQN CnVwZGF0ZSB0aGVtIHByb3Blcmx5IHdoZW4gd2UgZ28gdG8gc2xlZXAuICAgDQpJIHNob3VsZCBz dGF0ZSBpdCBjbGVhcmx5IGF0IHRoZSBiZWdpbm5pbmcuDQpJdCBtaWdodCBiZSBlYXNpZXIgdG8g ZXhwbGFpbiB3aGF0IEkgbWVhbnQgYnkgY29kZSBzbmlwcGV0Og0KDQpsY29yZV9jb25mIG5lZWRz IDIgY291bnRlcnM6DQp1aW50NjRfdCAgIG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcDsNCnVpbnQ2 NF90ICAgbmJfc2xlZXBzOw0KIA0KUGx1cyBlYWNoIHF1ZXVlIG5lZWRzIDIgY291bnRlcnM6DQp1 aW50NjRfdCBuYl9lbXB0eV9wb2xsczsNCnVpbnQ2NF90IG5iX3NsZWVwczsNCg0KTm93LCBhdCBy eF9jYWxsYmFjaygpOg0KDQovKiBjaGVjayBkaWQgc2xlZXAgaGFwcGVuIHNpbmNlIHByZXZpb3Vz IGNhbGwsDQogICAgIGlmIHllcywgdGhlbiByZXNldCBxdWV1ZSBjb3VudGVycyAqLw0KaWYgKHF1 ZXVlLT5uYl9zbGVlcHMgIT0gbGNvcmVfY29uZi0+bmJfc2xlZXBzKSB7DQogICAgcXVldWUtPm5i X3NsZWVwcyA9IGxjb3JlX2NvbmYtPm5iX3NsZWVwczsNCiAgICBxdWV1ZS0+bmJfZW1wdHlfcG9s bHMgPSAwOw0KfQ0KDQogLyogcGFja2V0IGFycml2ZWQsIHJlc2V0IGNvdW50ZXJzICovDQogaWYg KG5iX3J4ICE9IDApIHsNCiAgIC8qIHF1ZXVlIGlzIG5vdCAncmVhZHlfdG9fc2xlZXAnIGFueSBt b3JlICovDQogICBpZiAocXVldWUtPm5iX2VtcHR5X3BvbGxzID4gRU1QVFlQT0xMX01BWCkNCiAg ICAgICBsY29yZV9jb25mLT4gbmJfcXVldWVzX3JlYWR5X3RvX3NsZWVwLS07DQogICBxdWV1ZS0+ bmJfZW1wdHlfcG9sbHMgPSAwOw0KDQovKiBlbXB0eSBwb2xsICovDQp9IGVsc2Ugew0KICAgIC8q IHF1ZXVlIHJlYWNoZXMgRU1QVFlQT0xMX01BWCB0aHJlc2hvbGQsIG1hcmsgaXQgYXMgJ3JlYWR5 X3RvX3NsZWVwJyAqLyANCiAgICBpZiAocXVldWUtPm5iX2VtcHR5X3BvbGxzID09IEVNUFRZUE9M TF9NQVgpDQogICAgICAgbGNvcmVfY29uZi0+IG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcCsrOw0K ICAgIHF1ZXVlLT5uYl9lbXB0eV9wb2xscysrOw0KfQ0KDQogICAvKiBubyB0cmFmZmljIG9uIGFu eSBxdWV1ZSBmb3IgYXQgbGVhc3QgRU1QVFlQT0xMX01BWCBpdGVyYXRpb25zICovDQogICBpZiAo bGNvcmVfY29uZi0+IG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcCA9PSBsY29yZV9jb25mLT5uX3F1 ZXVlcykgew0KICAgICAgLyogdXBkYXRlIGNvdW50ZXJzIGFuZCBzbGVlcCAqLw0KICAgICAgbGNv cmVfY29uZi0+bmJfc2xlZXBzKys7DQogICAgICBsY29yZV9jb25mLT4gbmJfcXVldWVzX3JlYWR5 X3RvX3NsZWVwID0gMDsNCiAgICAgIGdvdG9fc2xlZXAoKTsNCiAgIH0NCn0NCg0KPiBIb3BlZnVs bHkgeW91IGdldCB0aGUgcG9pbnQgbm93IDopDQo+IA0KPiBTbywgdGhlIGlkZWEgaGVyZSBpcywg Zm9yIGFueSBOIHF1ZXVlcywgc2xlZXAgb25seSBvbmNlLCBub3QgTiB0aW1lcy4NCj4gDQo+ID4N Cj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgIC8qDQo+ID4+ICsgICAgICAgICAgICAgICogd2Ug Y2FuIGluY3JlbWVudCB1bmNvbmRpdGlvbmFsbHkgaGVyZSBiZWNhdXNlIGlmIHRoZXJlIHdlcmUN Cj4gPj4gKyAgICAgICAgICAgICAgKiBub24tZW1wdHkgcG9sbHMgaW4gb3RoZXIgcXVldWVzIGFz c2lnbmVkIHRvIHRoaXMgY29yZSwgd2UNCj4gPj4gKyAgICAgICAgICAgICAgKiBkcm9wcGVkIHRo ZSBjb3VudGVyIHRvIHplcm8gYW55d2F5Lg0KPiA+PiArICAgICAgICAgICAgICAqLw0KPiA+PiAr ICAgICAgICAgICAgIHFfY29uZi0+ZW1wdHlfcG9sbF9zdGF0cysrOw0KPiA+PiArICAgICAgICAg ICAgIGlmICh1bmxpa2VseShxX2NvbmYtPmVtcHR5X3BvbGxfc3RhdHMgPiBFTVBUWVBPTExfTUFY KSkgew0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9y X2NvbmQgcG1jW1JURV9NQVhfRVRIUE9SVFNdOw0KPiA+DQo+ID4gSSB0aGluayB5b3UgbmVlZCBo ZXJlOg0KPiA+IHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kIHBtY1txX2NvbmYtPm5fcXVl dWVzXTsNCj4gDQo+IEkgdGhpbmsgVkxBJ3MgYXJlIGdlbmVyYWxseSBhZ3JlZWQgdXBvbiB0byBi ZSB1bnNhZmUsIHNvIGknbSBhdm9pZGluZw0KPiB0aGVtIGhlcmUuDQoNCldvbmRlciB3aHk/DQpU aGVzZSBkYXlzIERQREsgdXNlcyBWTEEgaW4gZG96ZW5zIG9mIHBsYWNlcy4uLg0KQnV0IGlmIHlv dSdkIGxpa2UgdG8gYXZvaWQgVkxBIC0geW91IGNhbiB1c2UgYWxsb2NhKCksDQpvciBoYXZlIGxj b3JlX2NvbmYtPnBtY1tdIGFuZCByZWFsbG9jKCkgaXQgd2hlbiBuZXcgcXVldWUgaXMNCmFkZGVk L3JlbW92ZWQgZnJvbSB0aGUgbGlzdC4NCg0KPiANCj4gPg0KPiA+DQo+ID4+ICsgICAgICAgICAg ICAgICAgICAgICB1aW50MTZfdCByZXQ7DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgICAgICAgICAg ICAgIC8qIGdhdGhlciBhbGwgbW9uaXRvcmluZyBjb25kaXRpb25zICovDQo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICByZXQgPSBnZXRfbW9uaXRvcl9hZGRyZXNzZXMocV9jb25mLCBwbWMpOw0K PiA+PiArDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApDQo+ID4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wb3dlcl9tb25pdG9yX211bHRpKHBtYywN Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxX2NvbmYtPm5fcXVl dWVzLCBVSU5UNjRfTUFYKTsNCj4gPj4gKyAgICAgICAgICAgICB9DQo+ID4+ICsgICAgIH0NCj4g Pj4gKw0KPiA+PiArICAgICByZXR1cm4gbmJfcng7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gICBz dGF0aWMgdWludDE2X3QNCj4gPj4gICBjbGJfdW13YWl0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQx Nl90IHFpZHgsIHN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMgX19ydGVfdW51c2VkLA0KPiA+PiAgICAg ICAgICAgICAgICB1aW50MTZfdCBuYl9yeCwgdWludDE2X3QgbWF4X3BrdHMgX19ydGVfdW51c2Vk LA0KPiA+PiBAQCAtMzQ4LDE0ICs0MDgsMTkgQEAgc3RhdGljIGludA0KPiA+PiAgIGNoZWNrX21v bml0b3Ioc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcWRhdGEp DQo+ID4+ICAgew0KPiA+PiAgICAgICAgc3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQgZHVt bXk7DQo+ID4+ICsgICAgIGJvb2wgbXVsdGltb25pdG9yX3N1cHBvcnRlZDsNCj4gPj4NCj4gPj4g ICAgICAgIC8qIGNoZWNrIGlmIHJ0ZV9wb3dlcl9tb25pdG9yIGlzIHN1cHBvcnRlZCAqLw0KPiA+ PiAgICAgICAgaWYgKCFnbG9iYWxfZGF0YS5pbnRyaW5zaWNzX3N1cHBvcnQucG93ZXJfbW9uaXRv cikgew0KPiA+PiAgICAgICAgICAgICAgICBSVEVfTE9HKERFQlVHLCBQT1dFUiwgIk1vbml0b3Jp bmcgaW50cmluc2ljcyBhcmUgbm90IHN1cHBvcnRlZFxuIik7DQo+ID4+ICAgICAgICAgICAgICAg IHJldHVybiAtRU5PVFNVUDsNCj4gPj4gICAgICAgIH0NCj4gPj4gKyAgICAgLyogY2hlY2sgaWYg bXVsdGktbW9uaXRvciBpcyBzdXBwb3J0ZWQgKi8NCj4gPj4gKyAgICAgbXVsdGltb25pdG9yX3N1 cHBvcnRlZCA9DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbnRyaW5z aWNzX3N1cHBvcnQucG93ZXJfbW9uaXRvcl9tdWx0aTsNCj4gPj4NCj4gPj4gLSAgICAgaWYgKGNm Zy0+bl9xdWV1ZXMgPiAwKSB7DQo+ID4+ICsgICAgIC8qIGlmIHdlJ3JlIGFkZGluZyBhIG5ldyBx dWV1ZSwgZG8gd2Ugc3VwcG9ydCBtdWx0aXBsZSBxdWV1ZXM/ICovDQo+ID4+ICsgICAgIGlmIChj ZmctPm5fcXVldWVzID4gMCAmJiAhbXVsdGltb25pdG9yX3N1cHBvcnRlZCkgew0KPiA+PiAgICAg ICAgICAgICAgICBSVEVfTE9HKERFQlVHLCBQT1dFUiwgIk1vbml0b3JpbmcgbXVsdGlwbGUgcXVl dWVzIGlzIG5vdCBzdXBwb3J0ZWRcbiIpOw0KPiA+PiAgICAgICAgICAgICAgICByZXR1cm4gLUVO T1RTVVA7DQo+ID4+ICAgICAgICB9DQo+ID4+IEBAIC0zNzEsNiArNDM2LDEzIEBAIGNoZWNrX21v bml0b3Ioc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcWRhdGEp DQo+ID4+ICAgICAgICByZXR1cm4gMDsNCj4gPj4gICB9DQo+ID4+DQo+ID4+ICtzdGF0aWMgaW5s aW5lIHJ0ZV9yeF9jYWxsYmFja19mbg0KPiA+PiArZ2V0X21vbml0b3JfY2FsbGJhY2sodm9pZCkN Cj4gPj4gK3sNCj4gPj4gKyAgICAgcmV0dXJuIGdsb2JhbF9kYXRhLmludHJpbnNpY3Nfc3VwcG9y dC5wb3dlcl9tb25pdG9yX211bHRpID8NCj4gPj4gKyAgICAgICAgICAgICBjbGJfbXVsdGl3YWl0 IDogY2xiX3Vtd2FpdDsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAgIGludA0KPiA+PiAgIHJ0ZV9w b3dlcl9ldGhkZXZfcG1nbXRfcXVldWVfZW5hYmxlKHVuc2lnbmVkIGludCBsY29yZV9pZCwgdWlu dDE2X3QgcG9ydF9pZCwNCj4gPj4gICAgICAgICAgICAgICAgdWludDE2X3QgcXVldWVfaWQsIGVu dW0gcnRlX3Bvd2VyX3BtZF9tZ210X3R5cGUgbW9kZSkNCj4gPj4gQEAgLTQzNCw3ICs1MDYsNyBA QCBydGVfcG93ZXJfZXRoZGV2X3BtZ210X3F1ZXVlX2VuYWJsZSh1bnNpZ25lZCBpbnQgbGNvcmVf aWQsIHVpbnQxNl90IHBvcnRfaWQsDQo+ID4+ICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKQ0K PiA+PiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kOw0KPiA+Pg0KPiA+PiAtICAgICAg ICAgICAgIGNsYiA9IGNsYl91bXdhaXQ7DQo+ID4+ICsgICAgICAgICAgICAgY2xiID0gZ2V0X21v bml0b3JfY2FsbGJhY2soKTsNCj4gPj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ICAgICAg ICBjYXNlIFJURV9QT1dFUl9NR01UX1RZUEVfU0NBTEU6DQo+ID4+ICAgICAgICAgICAgICAgIC8q IGNoZWNrIGlmIHdlIGNhbiBhZGQgYSBuZXcgcXVldWUgKi8NCj4gPj4gLS0NCj4gPj4gMi4yNS4x DQo+ID4NCj4gDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+IEFuYXRvbHkNCg==