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 AEC35A0350; Mon, 29 Jun 2020 22:57:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F35701BF5B; Mon, 29 Jun 2020 22:57:36 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50089.outbound.protection.outlook.com [40.107.5.89]) by dpdk.org (Postfix) with ESMTP id D6C0B1BF5A for ; Mon, 29 Jun 2020 22:57:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XJDLas4i3j2XFSTIaBXm8aVl3NKvLWK6SKX+uvmeou1xqgsqh3Bnanuq0ovlsdJ1ATS7dzJVaynfDy0mpqus90EAwb8vWePd2krrKVZzATyG3k7XPawV5nlPtilHEaOdd3K8FcLOP3LzCAE/k/WDC3ttBjADDWiEsZJKH9TFCNqNVtPurDV6oAxT1D8eVh701zaNqgpW0cA+OL+yGewBCIQY2PkDGfEnUHIE+br9+kQSn9tICX3KQI56FO7UXOjszZXrfl3s2Ff+ux5EQGNHt0Gg0UXZJOudgHYLPO7omb7DXwnXYeq4CfZ9pu9rLF5Fa5QlvapE/HGDbTzk3Za6fQ== 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=UeJsYWBlWEJTz2p9nyqTu6NXXb+mxbVcBpOW4uxF6po=; b=BOHOPEfKTCmMUzAdIp7yflj5tZtjXMwPFq2jHg0xRfJWTPkLENLhhWnvZJTxfrmea3+n4LcFX0y/fevKO2+AidG+JmCe9/6SfhO5Mc8/1/DbbzkSbt9Ql4fk493O7bWz1qENnPzMXnU7J5O6bPpZ45S7QN0fV/rc0PGtxb+g72YFRg/Lh7oFXOCCKTjPpDxuoaZTPncdSL2O+RN/oNfpyJJG4hXVPoifQdW7kHcf2oz7lopeqBGoESUvAJyyiJ43O09GhFoNDC0SWbzgRI8P9f7ca0sZiaJlu7QehOypEOGNzvydUuxhWsIFbYOYcD3cAq7ylp2NLhAQqPF60+03yA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UeJsYWBlWEJTz2p9nyqTu6NXXb+mxbVcBpOW4uxF6po=; b=lO5Eqjm1n++3ZcrNikYzI20Kh7oDXLR8fZI/MgEhP69GqUFsTB8z/cgJjSLcccsxXLfymBN+x1QHT1yhbXToCKuWEBenLcGZJacgytdWHXWBPKHP0g10RO44WJ4b24EUuFDqrYDe33xMAFsxK+Z4h4fDH1JamOHh1/Gjcz8Q/QQ= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by DB7PR07MB4009.eurprd07.prod.outlook.com (2603:10a6:5:d::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.12; Mon, 29 Jun 2020 20:57:34 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::a188:9ec1:cd8d:23]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::a188:9ec1:cd8d:23%4]) with mapi id 15.20.3153.018; Mon, 29 Jun 2020 20:57:34 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: Dan Gora CC: "dev@dpdk.org" , David Marchand , Jerin Jacob Thread-Topic: [PATCH v4 2/2] eal: emulate glibc getentropy for initial random seed Thread-Index: AQHWGP/4FfHexizbjkmQtR5yKPmC6qjvvcyAgACNvYCAADJIgA== Date: Mon, 29 Jun 2020 20:57:34 +0000 Message-ID: <6b3ed1c9-5488-d745-863f-10d55e6adb77@ericsson.com> References: <20200421195446.1730-1-dg@adax.com> <20200422234255.7066-1-dg@adax.com> <20200422234255.7066-3-dg@adax.com> In-Reply-To: Accept-Language: sv-SE, en-US Content-Language: sv-SE X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.8.1 authentication-results: adax.com; dkim=none (message not signed) header.d=none;adax.com; dmarc=none action=none header.from=ericsson.com; x-originating-ip: [95.204.215.13] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1c82eeeb-2569-4300-5a73-08d81c6f0c6b x-ms-traffictypediagnostic: DB7PR07MB4009: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 044968D9E1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XknggEgpzFfE8tkghrj8hsd7ZSwCY7s1gI+RAt2IU7wGy5E97qzQHl+a78VWLTNTAc8jAPPBeh5uB/Xv6L84tBjW13CBss11lyfvr3g0fkNKXgnYBJUvP7uuRKHxDhiApD5jyqLKNyabfDlH3/rc0/3wa4hs5TOjmbtUx+IOQInFKFYiSM7OCqjqtNFiU3zPU/435M5pIz4ubx5uozbgVKSj0er6wG+eB0HZgkQGDmixR1ZdGXNfcuL/cw0g+UV8PLuEOdr30b4OQPo9ZbpUkzyO75xq2XLSbn6zZzYx/ft3l9mbzZ1Ppdto/uiirYt5gI7HE+fdoUSVGcH5k5tK7x9zYFxp+JK6WPxuGr5hCVsYAXfsYUEhQpxX5DS99wF1dz2VjT919qjrkygwk7WOAJ23/tjtAW/3gvEW4sBl+V2Om/hvWQM2xLY4VVybVRmDDIKV6/jpFMNZpvUFYACAiw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(366004)(376002)(396003)(39860400002)(346002)(6506007)(8936002)(478600001)(26005)(53546011)(85202003)(6512007)(2906002)(5660300002)(85182001)(83380400001)(31696002)(6916009)(966005)(86362001)(6486002)(2616005)(8676002)(66446008)(36756003)(186003)(76116006)(31686004)(4326008)(54906003)(71200400001)(66556008)(64756008)(66476007)(316002)(66946007)(66574015)(43740500002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: et0z8k3VYHfzvstiJN/ilISUmqlLf0eN1ftrzBQJdjbbsfroA1jtsRN44epRmX5gRZKG6GGAbI8Xu/V+icshfWJUVjFIuZYMno0lsYm64xP2wQSlB+N/8E6mZssGU7E+ukDdl189RRrJueur6oqtVpqkVAkOHIwx0ajTcqZCY5IOuvJaObcm+EZdqAelVx0G9W29uRqORdXU4uutsPkFrIxUhL+BO5U4LIEaxJEyNZlCSAG4NQuUJt5DHVZqIehhCgmoQww0pVoy4M7sQMAmlv+YUJh+kvdudn78IsHW0MJg3UPhq91w2ciHfHlABeC4ja1pSwimXlc0GyOtcIqDDGEgplorrv3ZBMMtcB2AQS+Al5L9PZAPJOKKiYjnJyDeLxH2sXfvHJqTBHopYY+7oiFH7sRyl/xsK3gi09jbevTfPPcvggjeIxrcTtYJpbN8PEgPxZlHlLq+F1LiDWO2xi+wHcMlpWIr5aPghs5zDGuRWDhvzJJgMQqMraG+f1mc x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c82eeeb-2569-4300-5a73-08d81c6f0c6b X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 20:57:34.7505 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZiO5LAVgq+QZThWP7oWlBIbtkcNq+iGyTUCW0RLLN80vkpfX7UW5oWbKUtZhOZp13iB1zHdFaur2SkK1EU1MvfZ0d9oZpGaeWxyMdKk/7xs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR07MB4009 Subject: Re: [dpdk-dev] [PATCH v4 2/2] eal: emulate glibc getentropy for initial random seed 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" T24gMjAyMC0wNi0yOSAxOTo1NywgRGFuIEdvcmEgd3JvdGU6DQo+IE9uIE1vbiwgSnVuIDI5LCAy MDIwIGF0IDY6MzAgQU0gTWF0dGlhcyBSw7ZubmJsb20NCj4gPG1hdHRpYXMucm9ubmJsb21AZXJp Y3Nzb24uY29tPiB3cm90ZToNCj4+IE9uIDIwMjAtMDQtMjMgMDE6NDIsIERhbiBHb3JhIHdyb3Rl Og0KPj4+IFRoZSBnZXRlbnRyb3B5KCkgZnVuY3Rpb24gd2FzIGludHJvZHVjZWQgaW50byBnbGli YyB2Mi4yNSBhbmQgc28gaXMNCj4+PiBub3QgYXZhaWxhYmxlIG9uIGFsbCBzdXBwb3J0ZWQgcGxh dGZvcm1zLiAgUHJldmlvdXNseSwgaWYgRFBESyB3YXMNCj4+PiBjb21waWxlZCAodXNpbmcgbWVz b24pIG9uIGEgc3lzdGVtIHdoaWNoIGhhcyBnZXRlbnRyb3B5KCksIGl0IHdvdWxkDQo+Pj4gaW50 cm9kdWNlIGEgZGVwZW5kZW5jeSBvbiBnbGliYyB2Mi4yNSB3aGljaCB3b3VsZCBwcmV2ZW50IHRo YXQgYmluYXJ5DQo+Pj4gZnJvbSBydW5uaW5nIG9uIGEgc3lzdGVtIHdpdGggYW4gb2xkZXIgZ2xp YmMuICBTaW1pbGFybHkgaWYgRFBESyB3YXMNCj4+PiBjb21waWxlZCBvbiBhIHN5c3RlbSB3aGlj aCBkaWQgbm90IGhhdmUgZ2V0ZW50cm9weSgpLCBnZXRlbnRyb3B5KCkNCj4+PiBjb3VsZCBub3Qg YmUgdXNlZCBldmVuIGlmIHRoZSBleGVjdXRpb24gc3lzdGVtIHN1cHBvcnRlZCBpdC4NCj4+Pg0K Pj4+IEludHJvZHVjZSBhIG5ldyBzdGF0aWMgZnVuY3Rpb24sIF9fcnRlX2dldGVudHJvcHkoKSB0 byBlbXVsYXRlIHRoZQ0KPj4+IGdsaWJjIGdldGVudHJvcHkoKSBmdW5jdGlvbiBieSByZWFkaW5n IGZyb20gL2Rldi91cmFuZG9tIHRvIHJlbW92ZQ0KPj4+IHRoaXMgZGVwZW5kZW5jeSBvbiB0aGUg Z2xpYmMgdmVyc2lvbi4NCj4+Pg0KPj4+IFNpbmNlIF9fcnRlX2dlbmVudHJvcHkoKSBzaG91bGQg bmV2ZXIgZmFpbCwgdGhlIHJkc2VlZCBtZXRob2QgaXMNCj4+PiB0cmllZCBmaXJzdC4NCj4+Pg0K Pj4+IFNpZ25lZC1vZmYtYnk6IERhbiBHb3JhIDxkZ0BhZGF4LmNvbT4NCj4+PiAtLS0NCj4+PiAg ICBsaWIvbGlicnRlX2VhbC9jb21tb24vcnRlX3JhbmRvbS5jIHwgNjIgKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tDQo+Pj4gICAgbGliL2xpYnJ0ZV9lYWwvbWVzb24uYnVpbGQgICAgICAg ICB8ICAzIC0tDQo+Pj4gICAgMiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxMSBk ZWxldGlvbnMoLSkNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2VhbC9jb21tb24v cnRlX3JhbmRvbS5jIGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL3J0ZV9yYW5kb20uYw0KPj4+IGlu ZGV4IDJjODRjODUyNy4uZjA0M2FkZjAzIDEwMDY0NA0KPj4+IC0tLSBhL2xpYi9saWJydGVfZWFs L2NvbW1vbi9ydGVfcmFuZG9tLmMNCj4+PiArKysgYi9saWIvbGlicnRlX2VhbC9jb21tb24vcnRl X3JhbmRvbS5jDQo+Pj4gQEAgLTcsNiArNyw3IEBADQo+Pj4gICAgI2VuZGlmDQo+Pj4gICAgI2lu Y2x1ZGUgPHN0ZGxpYi5oPg0KPj4+ICAgICNpbmNsdWRlIDx1bmlzdGQuaD4NCj4+PiArI2luY2x1 ZGUgPGZjbnRsLmg+DQo+Pj4NCj4+PiAgICAjaW5jbHVkZSA8cnRlX2JyYW5jaF9wcmVkaWN0aW9u Lmg+DQo+Pj4gICAgI2luY2x1ZGUgPHJ0ZV9jeWNsZXMuaD4NCj4+PiBAQCAtMTc2LDIwICsxNzcs NjEgQEAgcnRlX3JhbmRfbWF4KHVpbnQ2NF90IHVwcGVyX2JvdW5kKQ0KPj4+ICAgICAgICByZXR1 cm4gcmVzOw0KPj4+ICAgIH0NCj4+Pg0KPj4+ICsvKiBFbXVsYXRlIGdsaWJjIGdldGVudHJvcHko KSB1c2luZyAvZGV2L3VyYW5kb20gKi8NCj4+PiArc3RhdGljIGludA0KPj4+ICtfX3J0ZV9nZXRl bnRyb3B5KHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkNCj4+PiArew0KPj4+ICsgICAgIHVp bnQ4X3QgKnN0YXJ0ID0gYnVmZmVyOw0KPj4+ICsgICAgIHVpbnQ4X3QgKmVuZDsNCj4+PiArICAg ICBzc2l6ZV90IGJ5dGVzOw0KPj4+ICsgICAgIGludCBmZDsNCj4+PiArICAgICBpbnQgcmMgPSAt MTsNCj4+PiArDQo+Pj4gKyAgICAgaWYgKGxlbmd0aCA+IDI1Nikgew0KPj4+ICsgICAgICAgICAg ICAgZXJybm8gPSBFSU87DQo+Pg0KPj4gRmlyc3Qgb2YgYWxsOyBvbmx5IHRoZSByZXR1cm4gY29k ZSBpcyBuZWVkZWQsIHNvIHdoeSBib3RoZXIgd2l0aCBlcnJubz8NCj4+IElmIHlvdSB3b3VsZCwg SSBzdXNwZWN0IGl0IHNob3VsZCBiZSBydGVfZXJybm8gYW5kIG5vdCBlcnJubyAod2hpY2ggaXMN Cj4+IGFscmVhZHkgc2V0KS4NCj4gQmVjYXVzZSwgYXMgSSB0aG91Z2h0IHRoYXQgSSBjbGVhcmx5 IGV4cGxhaW5lZCBpbiB0aGUgcHJldmlvdXMgZW1haWwNCj4gaW4gdGhpcyB0aHJlYWQ6DQo+DQo+ IGh0dHBzOi8vcHJvdGVjdDIuZmlyZWV5ZS5jb20vdjEvdXJsP2s9NjRlZWJmNzAtM2E0ZTVmZTQt NjRlZWZmZWItODZkMjExNGVhYjJmLWU5MDc3ZWNhMGE0ZGQyYWImcT0xJmU9MjM2MGQ1Y2QtMGI3 MC00YWE5LTg2ZjEtZjcyNzgyOTg2YjI3JnU9aHR0cHMlM0ElMkYlMkZ3d3cubWFpbC1hcmNoaXZl LmNvbSUyRmRldiU0MGRwZGsub3JnJTJGbXNnMTY0NjQ2Lmh0bWwNCj4NCj4gdGhpcyBmdW5jdGlv biBpcyBlbXVsYXRpbmcgdGhlIGdldGVudHJvcHkoKSBzeXN0ZW0gY2FsbC4gIFNpbmNlIHdlDQo+ IHdhbnQgaXQgdG8gaGF2ZSB0byB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgZ2V0ZW50cm9weSgpIGFu ZCBzaW5jZQ0KPiBnZXRlbnRyb3B5KCkgaXMgYSBzeXN0ZW0gY2FsbCwgaXQgY2xlYXJzIGFuZCBz ZXRzIGVycm5vLCBqdXN0IGxpa2UNCj4gZ2V0ZW50cm9weSgpOg0KDQoNClNpbmNlIHlvdSd2ZSBy ZXBsYWNlZCBnZXRlbnRyb3B5KCkgYWx0b2dldGhlciBmb3IgYWxsIGJ1aWxkcywgdGhlcmUncyBu byANCm5lZWQgdG8gYmUgQVBJLWNvbXBhdGlibGUuIEp1c3QgZG8gYW4gYXMtc2ltcGxlLWFzLXBv c3NpYmxlIGZ1bmN0aW9uIA0KdGhhdCByZWFkcyA4IGJ5dGVzIGZyb20gL2Rldi91cmFuZG9tLg0K DQoNCj4gaHR0cHM6Ly9wcm90ZWN0Mi5maXJlZXllLmNvbS92MS91cmw/az03ZDA4ZWU5NC0yM2E4 MGUwMC03ZDA4YWUwZi04NmQyMTE0ZWFiMmYtMGQ3YzVjMmI5ZmZhOTg3NCZxPTEmZT0yMzYwZDVj ZC0wYjcwLTRhYTktODZmMS1mNzI3ODI5ODZiMjcmdT1odHRwcyUzQSUyRiUyRnNvdXJjZXdhcmUu b3JnJTJGZ2l0JTJGJTNGcCUzRGdsaWJjLmdpdCUzQmElM0RibG9iJTNCZiUzRHN5c2RlcHMlMkZ1 bml4JTJGc3lzdiUyRmxpbnV4JTJGZ2V0ZW50cm9weS5jJTNCaCUzRDE3Nzg2MzJmZjFmMWZkNzcw MTk0MDFjM2ZiYWExNjRjMTY3MjQ4YjAlM0JoYiUzRDkyZGNhYTNlMmY3YmYwZjdmMWMwNGNkMmZi NmEzMTdkZjFhNGUyMjUNCj4NCj4+DQo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gLTE7DQo+Pj4g KyAgICAgfQ0KPj4+ICsNCj4+PiArICAgICBmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9fUkRP TkxZKTsNCj4+PiArICAgICBpZiAoZmQgPCAwKSB7DQo+Pj4gKyAgICAgICAgICAgICBlcnJubyA9 IEVOT0RFVjsNCj4+DQo+PiBTZWUgYWJvdmUuDQo+Pg0KPj4NCj4+PiArICAgICAgICAgICAgIHJl dHVybiAtMTsNCj4+PiArICAgICB9DQo+Pj4gKw0KPj4+ICsgICAgIGVuZCA9IHN0YXJ0ICsgbGVu Z3RoOw0KPj4+ICsgICAgIHdoaWxlIChzdGFydCA8IGVuZCkgew0KPj4+ICsgICAgICAgICAgICAg Ynl0ZXMgPSByZWFkKGZkLCBzdGFydCwgZW5kIC0gc3RhcnQpOw0KPj4+ICsgICAgICAgICAgICAg aWYgKGJ5dGVzIDwgMCkgew0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoZXJybm8gPT0g RUlOVFIpDQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VwcG9zZWRseSBj YW5ub3QgYmUgaW50ZXJydXB0ZWQgYnkNCj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKiBhIHNpZ25hbCwgYnV0IGp1c3QgaW4gY2FzZS4uLg0KPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBlbHNlDQo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+Pj4gKyAgICAgICAgICAgICB9DQo+Pj4gKyAgICAg ICAgICAgICBpZiAoYnl0ZXMgPT0gMCkgew0KPj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBu byBtb3JlIGJ5dGVzIGF2YWlsYWJsZSwgc2hvdWxkIG5vdCBoYXBwZW4gdW5kZXINCj4+PiArICAg ICAgICAgICAgICAgICAgICAgICogbm9ybWFsIGNpcmN1bXN0YW5jZXMuDQo+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAqLw0KPj4+ICsgICAgICAgICAgICAgICAgICAgICBlcnJubyA9IEVJTzsN Cj4+PiArICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+Pj4gKyAgICAgICAgICAgICB9 DQo+Pj4gKyAgICAgICAgICAgICBzdGFydCArPSBieXRlczsNCj4+PiArICAgICB9DQo+Pg0KPj4g VGhlcmUncyBubyBuZWVkIGZvciB0aGlzIGxvb3AuIEEgL2Rldi91cmFuZG9tIHJlYWQoKSBpcyBn dWFyYW50ZWVkIHRvDQo+PiByZXR1cm4gYXMgbWFueSBieXRlcyBhcyByZXF1ZXN0ZWQsIHVwIHRv IDI1NiBieXRlcy4gU2VlIHJhbmRvbSg0KSBmb3INCj4+IGRldGFpbHMuDQo+IEl0IGNhbid0IGJl IGludGVycnVwdGVkIGJ5IGEgc2lnbmFsPyAgQXJlIHlvdSBfc3VyZV8gdGhhdCBpdCBjYW5ub3QN Cj4gcmV0dXJuIGxlc3MgdGhhbiB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBieXRlcyBhbmQgaGFz IGJlZW4gdGhhdCB3YXMNCj4gZm9yZXZlciBhbmQgYWx3YXlzPyAgV2h5IGRvZXMgZ2V0ZW50cm9w eSgpIGNoZWNrIHRoaXMgdGhlbj8gIEluIHRoZQ0KPiBjYXNlIHdoZXJlIGl0IGRvZXMgbm90IGZh aWwgdGhpcyBlcnJvciBjaGVja2luZyBtYWtlcyBubyBkaWZmZXJlbmNlDQo+IG90aGVyIHRoYW4g YSBjb3VwbGUgZXh0cmEgaW5zdHJ1Y3Rpb25zLiAgSW4gdGhlIGNhc2UgdGhhdCBpdCBkb2VzLCBp dA0KPiBzYXZlcyB5b3VyIGJhY29uLg0KDQoNClRoZSByYW5kb20oNCkgbWFudWFsIHBhZ2Ugc2F5 cyBpdCBjYW4ndCBiZSBpbnRlcnJ1cHRlZCBmb3Igc21hbGwgDQpyZXF1ZXN0cywgd2hpY2ggc2Vl bXMgdG8gaG9sZCB0cnVlIGZvciBMaW51eCAzLjE3IGFuZCBsYXRlci4gSSBkb24ndCANCmtub3cg dGhlIGhvd3MgYW5kIHdoeXMgb2YgZ2xpYmMgZ2V0ZW50cm9weSgpLiBTdHVkeWluZyBMR1BMIGNv ZGUgYmVmb3JlIA0KaW1wbGVtZW50aW5nIEJTRCBsaWNlbnNlZCBjb2RlIHBlcmZvcm1pbmcgdGhl IHNhbWUgZnVuY3Rpb24gbWlnaHQgbm90IGJlIA0KdGhlIGJlc3Qgb2YgaWRlYXMuDQoNCg0KPj4N Cj4+PiArICAgICByYyA9IDA7DQo+Pj4gKyAgICAgZXJybm8gPSAwOw0KPj4NCj4+IFdoeSBhcmUg eW91IGNoYW5naW5nIGVycm5vPyBZb3Ugc2hvdWxkIG5ldmVyIHRvdWNoIGVycm5vIG9uIHN1Y2Nl c3MuDQo+IEJlY2F1c2UgZ2V0ZW50cm9weSgpIGRvZXMgYW5kIHdlIGFyZSBlbXVsYXRpbmcgZ2V0 ZW50cm9weSgpIGFuZCB3YW50DQo+IHRvIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzOg0KPiBodHRw czovL3Byb3RlY3QyLmZpcmVleWUuY29tL3YxL3VybD9rPTQ0NTQ2YmFhLTFhZjQ4YjNlLTQ0NTQy YjMxLTg2ZDIxMTRlYWIyZi1iYzJkMmE2OTVlZDMxY2RjJnE9MSZlPTIzNjBkNWNkLTBiNzAtNGFh OS04NmYxLWY3Mjc4Mjk4NmIyNyZ1PWh0dHBzJTNBJTJGJTJGc291cmNld2FyZS5vcmclMkZnaXQl MkYlM0ZwJTNEZ2xpYmMuZ2l0JTNCYSUzRGJsb2IlM0JmJTNEc3lzZGVwcyUyRnVuaXglMkZzeXN2 JTJGbGludXglMkZnZXRlbnRyb3B5LmMlM0JoJTNEMTc3ODYzMmZmMWYxZmQ3NzAxOTQwMWMzZmJh YTE2NGMxNjcyNDhiMCUzQmhiJTNEOTJkY2FhM2UyZjdiZjBmN2YxYzA0Y2QyZmI2YTMxN2RmMWE0 ZTIyNQ0KPg0KPj4NCj4+PiArb3V0Og0KPj4+ICsgICAgIGNsb3NlKGZkKTsNCj4+PiArICAgICBy ZXR1cm4gcmM7DQo+Pj4gK30NCj4+PiArDQo+Pj4gICAgc3RhdGljIHVpbnQ2NF90DQo+Pj4gICAg X19ydGVfcmFuZG9tX2luaXRpYWxfc2VlZCh2b2lkKQ0KPj4+ICAgIHsNCj4+PiAtI2lmZGVmIFJU RV9MSUJFQUxfVVNFX0dFVEVOVFJPUFkNCj4+PiAtICAgICBpbnQgZ2VfcmM7DQo+Pj4gICAgICAg IHVpbnQ2NF90IGdlX3NlZWQ7DQo+Pj4NCj4+PiAtICAgICBnZV9yYyA9IGdldGVudHJvcHkoJmdl X3NlZWQsIHNpemVvZihnZV9zZWVkKSk7DQo+Pj4gLQ0KPj4+IC0gICAgIGlmIChnZV9yYyA9PSAw KQ0KPj4+IC0gICAgICAgICAgICAgcmV0dXJuIGdlX3NlZWQ7DQo+Pj4gLSNlbmRpZg0KPj4+ICAg ICNpZiBkZWZpbmVkKFJURV9BUkNIX1g4NikNCj4+PiAtICAgICAvKiBmaXJzdCBmYWxsYmFjazog cmRzZWVkIGluc3RydWN0aW9uLCBpZiBhdmFpbGFibGUgKi8NCj4+PiAgICAgICAgaWYgKHJ0ZV9j cHVfZ2V0X2ZsYWdfZW5hYmxlZChSVEVfQ1BVRkxBR19SRFNFRUQpKSB7DQo+Pj4gICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IHJkc2VlZF9sb3c7DQo+Pj4gICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHJkc2VlZF9oaWdoOw0KPj4+IEBAIC0yMDAsNiArMjQyLDEwIEBAIF9fcnRlX3JhbmRv bV9pbml0aWFsX3NlZWQodm9pZCkNCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCh1aW50NjRfdClyZHNlZWRfaGlnaCA8PCAzMik7DQo+Pj4gICAgICAgIH0NCj4+PiAgICAjZW5k aWYNCj4+PiArICAgICAvKiBmaXJzdCBmYWxsYmFjazogcmVhZCBmcm9tIC9kZXYvdXJhbmRvbS4u ICovDQo+Pg0KPj4gUmVtb3ZlICIuLiIuDQo+ICpzaWdoKi4uLi4uDQo+DQo+IHRoYW5rcw0KPg0K PiBkYW4NCg0KDQo=